Re: [RFC PATCH] gpio-pca953x driver and PCA9536 chip

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 09/06/2015 12:15 AM, Linus Walleij wrote:
> Adding linux-gpio and some people that have been patching
> this driver to TO-line.
> 
> Grygorii et al, does this look correct? Anyone who can test and
> send a patch for mainline?
> 
> Yours,
> Linus Walleij
> 
> On Mon, Aug 31, 2015 at 4:26 PM, Janusz Użycki
> <j.uzycki@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>> Hi,
>>
>> The driver sets register #02 (inversion) to 0x01 instead of 0x00 on my
>> board.
>> Reason: device_pca953x_init() does not initialize val buffer because NBANK()
>> returns
>> for PCA9536 ngpio=4 value 0 instead of 1.
>>
>> My proposed code-patch for 3.14.17 is below.
>> Because I don't work on stable/next I can't deliver complete/ready patch.
>> Please for comments.
>>
>> best regards
>> Janusz
>>
>> --- a/drivers/gpio/gpio-pca953x.c
>> +++ b/drivers/gpio/gpio-pca953x.c
>> @@ -75,7 +75,7 @@ MODULE_DEVICE_TABLE(i2c, pca953x_id);
>>   #define MAX_BANK 5
>>   #define BANK_SZ 8
>>
>> -#define NBANK(chip) (chip->gpio_chip.ngpio / BANK_SZ)
>> +#define NBANK(chip) DIV_ROUND_UP(chip->gpio_chip.ngpio, BANK_SZ)
>>
>>   struct pca953x_chip {
>>          unsigned gpio_start;

Seems yes, but I can't test it - have no such HW now.
As per code, NBANK(chip) expected to return number of 8-bit banks, but now
it returns NBANK-1.

Additional info:
- Corresponding code was changed by  Gregory CLEMENT
  commit: f5f0b7aa897ebf6b0d077356a787526212460dd7


-- 
regards,
-grygorii
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux