[U-Boot] [PATCH] dm: gpio: pca953x: introduce driver model support for pca953x

Peng Fan
2016-04-11T05:47:55Z

On Sat, Apr 09, 2016 at 12:33:34PM -0600, Simon Glass wrote:
>On 18 March 2016 at 03:54, Peng Fan <van.freenix@gmail.com> wrote:
>> Introduce a new driver that supports driver model for pca953x.
>> The pca953x chips are used as I2C I/O expanders.
>> This driver is designed to support the following chips:
>> "
>> 4 bits: pca9536, pca9537
>> 8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554,
>> pca9556, pca9557, pca9574, tca6408, xra1202
>> 16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575,
>> tca6416
>> 24 bits: tca6424
>> 40 bits: pca9505, pca9698
>> "
>> But for now this driver only supports max 24 bits and pca953x compatible
>> chips. pca957x compatible chips are not supported now.
>> These can be addressed when we need to add such support for the different
>> chips.
>> This driver has been tested on i.MX6 SoloX Sabreauto board with max7310
>> i2c expander using gpio command as following:
>>
>> =>gpio status -a
>> Bank gpio at 48:
>> gpio at 480: input: 1 [ ]
>> => gpio clear gpio at 480
>> gpio: pin gpio at 480 (gpio 224) value is 0
>> => gpio status -a
>> Bank gpio at 48:
>> gpio at 480: output: 0 [ ]
>
>Don't you think 480 is confusing? Perhaps you should have gpio at 48_ as
>the bank name? Also I think you should support a gpio-bank-name
>property in the node, to allow a sensible name to be provided.

480 is added by gpio uclass driver I think.
The dts is copied from Linux side. I'd not change the dts, will try to
see how to introudce a sensible name here.

Thanks,
Peng.

>
>>
>> => dm tree:
>> i2c [ ] | | `-- i2c at 021a8000
>> gpio [ ] | | |-- gpio at 30
>> gpio [ ] | | `-- gpio at 32
>>
>> Signed-off-by: Peng Fan <van.freenix@gmail.com>
>> Cc: Simon Glass <sjg@chromium.org>
>> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
>> Cc: Wenyou Yang <wenyou.yang@atmel.com>
>> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
>> Cc: Purna Chandra Mandal <purna.mandal@microchip.com>
>> Cc: Thomas Chou <thomas@wytron.com.tw>
>> Cc: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
>> Cc: Andrea Scian <andrea.scian@dave.eu>
>> Cc: Michal Simek <michal.simek@xilinx.com>
>> Cc: Stefano Babic <sbabic@denx.de>
>> Cc: Fabio Estevam <fabio.estevam@nxp.com>
>> ---
>> drivers/gpio/Kconfig | 23 +++
>> drivers/gpio/Makefile | 2 +
>> drivers/gpio/pca953x_gpio.c | 349 ++++++++++++++++++++++++++++++++++++++++++++
>> 3 files changed, 374 insertions(+)
>> create mode 100644 drivers/gpio/pca953x_gpio.c
>
>One nit - there is no need to check for chip being NULL as it cannot be.
>
>Acked-by: Simon Glass <sjg@chromium.org>