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

Simon Glass
2016-04-09T18:33:34Z

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.

>
> => 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>