u-boot-brain/drivers/gpio
Peng Fan 037734393e dm: gpio: pca953x: introduce driver model support for pca953x
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@30_:
gpio@30_0: input: 1 [ ]

=> dm tree:
 i2c         [   ]    |   |   `-- i2c@021a8000
 gpio        [   ]    |   |       |-- gpio@30
 gpio        [   ]    |   |       `-- gpio@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>
Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Michal Simek <michal.simek@xilinx.com> #on ZynqMP zcu102
2016-05-17 09:54:43 -06:00
..
adi_gpio2.c blackfin: Move machine specific gpio_port_t structure back to blackfin arch folder. 2013-11-04 16:50:46 +08:00
altera_pio.c altera_pio: change ioremap to map_physmem 2015-11-18 21:18:30 +08:00
at91_gpio.c dm: core: Add dev_get_uclass_priv() to access uclass private data 2015-04-16 19:27:42 -06:00
atmel_pio4.c gpio: atmel: Add the PIO4 driver support 2015-11-30 22:27:52 +01:00
axp_gpio.c sunxi: axp: Generalize register macros for VBUS drive GPIO 2016-03-31 17:03:52 +02:00
bcm2835_gpio.c dm: core: Add dev_get_uclass_priv() to access uclass private data 2015-04-16 19:27:42 -06:00
da8xx_gpio.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
db8500_gpio.c Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
dwapb_gpio.c gpio: Add DW APB GPIO driver 2015-08-23 11:56:20 +02:00
gpio-uclass.c gpio: Use const where possible 2016-03-17 10:27:22 +08:00
gpio-uniphier.c gpio: uniphier: use devm_get_addr() to get base address 2016-04-01 00:17:19 +09:00
hi6220_gpio.c dm: gpio: hi6220: Add a hi6220 GPIO driver model driver. 2015-08-12 20:47:58 -04:00
intel_broadwell_gpio.c x86: broadwell: Add a GPIO driver 2016-03-17 10:27:26 +08:00
intel_ich6_gpio.c x86: Drop all the old pin configuration code 2016-03-17 10:27:25 +08:00
Kconfig dm: gpio: pca953x: introduce driver model support for pca953x 2016-05-17 09:54:43 -06:00
kona_gpio.c gpio: kona: Add Kona gpio driver 2014-02-22 19:30:27 +01:00
kw_gpio.c gpio: make local functions static 2014-10-25 07:02:01 -04:00
lpc32xx_gpio.c gpio: lpc32xx: fix issues with port3 gpio 2015-09-11 17:15:34 -04:00
Makefile dm: gpio: pca953x: introduce driver model support for pca953x 2016-05-17 09:54:43 -06:00
mpc83xx_gpio.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
msm_gpio.c gpio: Add support for Qualcomm gpio controller 2016-04-01 17:18:07 -04:00
mvebu_gpio.c gpio: mvebu_gpio: Add missing out value set to gpio_direction_output() 2016-04-12 11:13:33 +02:00
mvgpio.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
mvgpio.h mvgpio: remove CONFIG_SHEEVA_88SV331xV5 dependency 2015-04-23 13:59:18 -04:00
mvmfp.c gpio: mvmfp: support newer MFP bit definitions 2015-04-23 13:59:18 -04:00
mxc_gpio.c imx: mxc_gpio: add support for imx7d SoC 2015-09-02 15:31:33 +02:00
mxs_gpio.c gpio: mxs: add name_to_gpio() function 2016-01-07 17:54:16 +01:00
omap_gpio.c drivers: gpio: omap: add support for parsing additional gpio parameters 2015-10-22 14:44:02 -04:00
pca953x_gpio.c dm: gpio: pca953x: introduce driver model support for pca953x 2016-05-17 09:54:43 -06:00
pca953x.c GPIO: pca953x: Remove compilation warnings on arm64 2016-04-13 18:29:06 +02:00
pca9698.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
pic32_gpio.c drivers: gpio: add driver for Microchip PIC32 GPIO controller. 2016-02-01 22:14:00 +01:00
pm8916_gpio.c drivers/gpio/pm8916_gpio.c: Make pid be uint32_t 2016-04-18 17:11:42 -04:00
rk_gpio.c dm: Use uclass_first_device_err() where it is useful 2016-03-14 15:34:50 -06:00
s3c2440_gpio.c gpio: s3c: Fix the GPIO driver 2015-05-06 17:00:58 +09:00
s5p_gpio.c gpio: s5p: call: dev_get_addr() instead of fdtdec_get_addr() 2015-10-03 14:39:19 +01:00
sandbox.c dm: core: Add dev_get_uclass_priv() to access uclass private data 2015-04-16 19:27:42 -06:00
sh_pfc.c gpio: sh-pfc: fix gpio input read 2015-08-31 17:26:03 +09:00
spear_gpio.c gpio: spear_gpio: Fix gpio_set_value() implementation 2014-07-04 21:37:29 +02:00
stm32_gpio.c stm32: add support for stm32f7 & stm32f746 discovery board 2016-02-24 18:43:57 -05:00
sunxi_gpio.c sunxi: Add a bunch of missing compatible strings to sunxi_gpio.c 2016-03-23 22:04:13 +01:00
sx151x.c Add support for SX151x SPI GPIO Expanders 2013-11-08 09:39:13 -05:00
tca642x.c gpio: tca642x: Add the tca642x gpio expander driver 2013-07-30 09:21:42 -04:00
tegra_gpio.c tegra: gpio: Show the GPIO value for outputs 2016-02-16 09:17:50 -07:00
vybrid_gpio.c dm: vybrid_gpio: Drop legacy code 2016-02-02 21:36:10 +01:00
xilinx_gpio.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
zynq_gpio.c gpio: zynqmp: Add GPIO driver support for ZynqMP 2016-04-13 18:29:06 +02:00