summaryrefslogtreecommitdiff
path: root/drivers/gpio
AgeCommit message (Collapse)Author
2016-05-27dm: gpio: pca953x: Support PCA953X with 40 GPIOs[email protected]
A DM driver for PCA953x was recently introduced by Peng Fan, which lacked support for the 40 GPIO versions. This patch adds support for these chips. Signed-off-by: Mario Six <[email protected]> Reviewed-by: Peng Fan <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2016-05-26sunxi: gpio: convert bind() to use driver dataStephen Warren
Now that the DM core sets driver_data before calling bind(), this driver can make use of driver_data to determine the set of child devices to create, rather than manually re-implementing the matching logic in code. Cc: Hans de Goede <[email protected]> Signed-off-by: Stephen Warren <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Hans de Goede <[email protected]>
2016-05-24gpio: zynq: Add support for reading gpio pin stateMichal Simek
Add zynq_gpio_get_function() which return status on gpio pin. This function enables gpio status command. Signed-off-by: Michal Simek <[email protected]>
2016-05-17gpio: exynos(s5p): remove gpio_xlate routineEric Nelson
With the addition of GPIO_ACTIVE_LOW parsing in gpio-uclass, the Exynos/S5P gpio driver doesn't need a custom xlate routine. Signed-off-by: Eric Nelson <[email protected]> Acked-by: Simon Glass <[email protected]> Acked-by: Minkyu Kang <[email protected]>
2016-05-17gpio: rk: remove gpio_xlate routineEric Nelson
With the addition of GPIO_ACTIVE_LOW parsing in gpio-uclass, the Rockchip gpio driver doesn't need a custom xlate routine. Signed-off-by: Eric Nelson <[email protected]> Acked-by: Simon Glass <[email protected]>
2016-05-17gpio: pic32: remove gpio_xlate routineEric Nelson
With the addition of GPIO_ACTIVE_LOW parsing in gpio-uclass, the pic32 gpio driver doesn't need a custom xlate routine. Signed-off-by: Eric Nelson <[email protected]> Acked-by: Simon Glass <[email protected]> Reviewed-by: Purna Chandra Mandal <[email protected]>
2016-05-17gpio: omap: remove gpio_xlate routineEric Nelson
With the addition of GPIO_ACTIVE_LOW parsing in gpio-uclass, the omap gpio driver doesn't need a custom xlate routine. Signed-off-by: Eric Nelson <[email protected]> Acked-by: Simon Glass <[email protected]>
2016-05-17gpio: intel_broadwell: remove gpio_xlate routineEric Nelson
With the addition of GPIO_ACTIVE_LOW parsing in gpio-uclass, the intel_broadwell driver doesn't need a custom xlate routine. Signed-off-by: Eric Nelson <[email protected]> Acked-by: Simon Glass <[email protected]>
2016-05-17dm: gpio: add a default gpio xlate routineEric Nelson
Many drivers use a common form of offset + flags for device tree nodes. e.g.: <&gpio1 2 GPIO_ACTIVE_LOW> This patch adds a common implementation of this type of parsing and calls it when a gpio driver doesn't supply its' own xlate routine. This will allow removal of the driver-specific versions in a handful of drivers and simplify the addition of new drivers. Signed-off-by: Eric Nelson <[email protected]> Reviewed-by: Stephen Warren <[email protected]> Acked-by: Simon Glass <[email protected]>
2016-05-17dm: gpio: introduce 74x164 driverPeng Fan
Introduce driver to support "fairchild,74hc595" devices. 1. Take linux drivers/drivers/gpio/gpio-74x164.c as reference. 2. Following the naming used in Linux driver with gen_7x164 as the prefix. 3. Enable CONFIG_DM_74X164 to use this driver. 4. Follow Documentation/devicetree/bindings/gpio/gpio-74x164.txt to add device nodes 5. Tested on i.MX6 UltraLite with 74LV595 using gpio command and oscillograph. Signed-off-by: Peng Fan <[email protected]> Cc: Simon Glass <[email protected]> Cc: Masahiro Yamada <[email protected]> Cc: Chin Liang See <[email protected]> Cc: Bhuvanchandra DV <[email protected]> Cc: Daniel Schwierzeck <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Stefano Babic <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2016-05-17dm: gpio: pca953x: introduce driver model support for pca953xPeng Fan
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 <[email protected]> Cc: Simon Glass <[email protected]> Cc: Masahiro Yamada <[email protected]> Cc: Wenyou Yang <[email protected]> Cc: Daniel Schwierzeck <[email protected]> Cc: Purna Chandra Mandal <[email protected]> Cc: Thomas Chou <[email protected]> Cc: Bhuvanchandra DV <[email protected]> Cc: Andrea Scian <[email protected]> Cc: Michal Simek <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Fabio Estevam <[email protected]> Acked-by: Simon Glass <[email protected]> Tested-by: Michal Simek <[email protected]> #on ZynqMP zcu102
2016-04-18drivers/gpio/pm8916_gpio.c: Make pid be uint32_tTom Rini
If get_dev_addr fails it will return FDT_ADDR_T_NONE and: >>> "priv->pid == 4294967295U" is always false regardless of the values of its operands. This occurs as the logical operand of if. Cc: Mateusz Kulikowski <[email protected]> Reported-by: Coverity (CID: 143913) Signed-off-by: Tom Rini <[email protected]>
2016-04-13Merge branch 'master' of git://www.denx.de/git/u-boot-microblazeTom Rini
2016-04-13GPIO: pca953x: Remove compilation warnings on arm64Michal Simek
Warnings: w+../drivers/gpio/pca953x.c: In function ‘do_pca953x’: w+../drivers/gpio/pca953x.c:220:5: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] w+../drivers/gpio/pca953x.c:233:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] Signed-off-by: Michal Simek <[email protected]>
2016-04-13zynqmp: Kconfig: Enable ZYNQ_GPIO for ZynqMPSiva Durga Prasad Paladugu
Enable ZYNQ_GPIO for ZynqMP using Kconfig. It enables the GPIO driver support for ZynqMP. Signed-off-by: Siva Durga Prasad Paladugu <[email protected]> Signed-off-by: Michal Simek <[email protected]>
2016-04-13gpio: zynqmp: Add GPIO driver support for ZynqMPSiva Durga Prasad Paladugu
Add GPIO driver support for ZynqMP platform Signed-off-by: Siva Durga Prasad Paladugu <[email protected]> Signed-off-by: Michal Simek <[email protected]>
2016-04-13gpio: zynq: Move the definitions to driver fileSiva Durga Prasad Paladugu
Move all the gpio definitions to driver file as there is no use of them in other files. Signed-off-by: Siva Durga Prasad Paladugu <[email protected]> Signed-off-by: Michal Simek <[email protected]>
2016-04-13gpio: zynq: Remove non driver model codeSiva Durga Prasad Paladugu
Remove non driver model support as it moved to driver model. Dont need non driver model anymore. Signed-off-by: Siva Durga Prasad Paladugu <[email protected]> Signed-off-by: Michal Simek <[email protected]>
2016-04-13gpio: Kconfig: Enable Zynq GPIO driver using kconfigSiva Durga Prasad Paladugu
Enable DM GPIO and ZYNQ GPIO using kconfig instead of the board config file. Signed-off-by: Siva Durga Prasad Paladugu <[email protected]> Signed-off-by: Michal Simek <[email protected]>
2016-04-13gpio: zynq: Convert Zynq GPIO to driver modelSiva Durga Prasad Paladugu
Convert Zynq GPIO driver to driver model Signed-off-by: Siva Durga Prasad Paladugu <[email protected]> Signed-off-by: Michal Simek <[email protected]>
2016-04-12gpio: mvebu_gpio: Add missing out value set to gpio_direction_output()Stefan Roese
This patch adds the missing configuration of the output value to the gpio_direction_output() function. Without this, calling gpio_direction_output() does not set the out-value at all and only configures the gpio as output. Signed-off-by: Stefan Roese <[email protected]> Cc: Kevin Smith <[email protected]> Reviewed-by: Kevin Smith <[email protected]>
2016-04-01gpio: Add support for Qualcomm PM8916 gpiosMateusz Kulikowski
This driver supports GPIOs present on PM8916 PMIC. There are 2 device drivers inside: - GPIO driver (4 "generic" GPIOs) - Keypad driver that presents itself as GPIO with 2 inputs (power and reset) Signed-off-by: Mateusz Kulikowski <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]>
2016-04-01gpio: Add support for Qualcomm gpio controllerMateusz Kulikowski
Add support for gpio controllers on Qualcomm Snapdragon devices. This devices are usually called Top Level Mode Multiplexing in Qualcomm documentation. Signed-off-by: Mateusz Kulikowski <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]>
2016-04-01Merge branch 'master' of http://git.denx.de/u-boot-sunxiTom Rini
2016-04-01gpio: uniphier: use devm_get_addr() to get base addressMasahiro Yamada
Currently, fdtdec_get_addr_size() does not support the address translation, so it cannot handle device trees with non-straight "ranges" properties. (This would be a problem with DTS for UniPhier ARMv8 SoCs.) Signed-off-by: Masahiro Yamada <[email protected]>
2016-03-31sunxi: axp: Generalize register macros for VBUS drive GPIOChen-Yu Tsai
VBUS drive is supported on AXP221 and later PMICs. Rework the macros so we can support this on later PMICs without too much work. Signed-off-by: Chen-Yu Tsai <[email protected]> Reviewed-by: Hans de Goede <[email protected]> Signed-off-by: Hans de Goede <[email protected]>
2016-03-25Merge git://www.denx.de/git/u-boot-marvellTom Rini
2016-03-24gpio: Add DM GPIO driver for Marvell MVEBUStefan Roese
This patch adds a DM GPIO driver for the Marvell MVEBU SoCs. There are other non-DM drivers that might be used on these platforms. But this patch creates a new DM driver. Which will be used by all Armada XP/38x boards. Other MVEBU SoC (Kirkwood / Orion) may follow once they support DM as well. Signed-off-by: Stefan Roese <[email protected]> Cc: Dirk Eibach <[email protected]> Cc: Phil Sutter <[email protected]> Cc: Kevin Smith <[email protected]> Cc: Luka Perkov <[email protected]> Cc: Tom Rini <[email protected]> Reviewed-by: Kevin Smith <[email protected]> Tested-by: Kevin Smith <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2016-03-23sunxi: Add a bunch of missing compatible strings to sunxi_gpio.cHans de Goede
The kernel has different compatible strings for the pio block because the pin-muxing is different on all the different SoCs, but sunxi_gpio.c only support the basic gpio functionality, which is identical everywhere. Add the missing compatible strings for various SoC models. Signed-off-by: Hans de Goede <[email protected]> Acked-by: Ian Campbell <[email protected]>
2016-03-17x86: broadwell: Add a GPIO driverSimon Glass
Add a GPIO driver for the GPIO peripheral found on broadwell devices. Signed-off-by: Simon Glass <[email protected]> Acked-by: Bin Meng <[email protected]>
2016-03-17x86: Drop all the old pin configuration codeSimon Glass
We don't need this anymore - we can use device tree and the new pinconfig driver instead. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2016-03-17x86: gpio: Allow the pinctrl driver to set up the pin configSimon Glass
Rather than setting up the pin configuration in the GPIO driver, use the new pinctrl driver to do it. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2016-03-17x86: gpio: Correct GPIO setup orderingSimon Glass
The Intel GPIO driver can set up the GPIO pin mapping when the first GPIO is probed. However, it assumes that the first GPIO to be probed is in the first GPIO bank. If this is not the case then the init will write to the wrong registers. Fix this. Also add a note that this code is deprecated. We should move to using device tree instead. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2016-03-17gpio: Use const where possibleSimon Glass
Some functions do not change the struct gpio_desc parameter. Update these to use const so this is clear. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2016-03-17gpio: Add a function to obtain a GPIO vector valueSimon Glass
We can use GPIOs as binary digits for reading 'strapping' values. Each GPIO is assigned a single bit and can be set high or low on the circuit board. We already have a legacy function for reading these values. Add one that supports driver model. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2016-03-14dm: Use uclass_first_device_err() where it is usefulSimon Glass
Use this new function in places where it simplifies the code. Signed-off-by: Simon Glass <[email protected]>
2016-02-29gpio: uniphier: add driver for UniPhier GPIO controllerMasahiro Yamada
This GPIO controller device is used on UniPhier SoCs. Signed-off-by: Masahiro Yamada <[email protected]> Acked-by: Simon Glass <[email protected]>
2016-02-24stm32: add support for stm32f7 & stm32f746 discovery boardVikas Manocha
This patch adds support for stm32f7 family & stm32f746 board. Signed-off-by: Vikas Manocha <[email protected]>
2016-02-24gpio: stm32_gpio: move base addresses to the soc fileVikas Manocha
Base addresses for GPIOs could be different for different socs, this patch moves the base addresses from driver to the soc specific location. Signed-off-by: Vikas Manocha <[email protected]>
2016-02-24gpio: stm32_gpio: move clock config from driver to boardVikas Manocha
This patch removes the gpio clock enable from gpio driver & move it in the board code, making it possible to use the gpio driver with other socs. Signed-off-by: Vikas Manocha <[email protected]>
2016-02-16tegra: gpio: Show the GPIO value for outputsSimon Glass
The tegra GPIO controller has two ways of reading the value of a GPIO. It can supply the 'input' value (which is the value read from the pin) and the 'output' value (which is the value being driven from the pin. With a GPIO set to output mode, the 'input' value is always low which is not very useful. This has the unfortunate result that setting a GPIO high still leaves it showing as low in the 'gpio status' command. Adjust the driver to check which direction the GPIO is set to, then read the value from the appropriate register: 'input' for input GPIOs, 'output' for output GPIOs. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Joe Hershberger <[email protected]> Signed-off-by: Tom Warren <[email protected]>
2016-02-08Merge branch '[email protected]' of git://git.denx.de/u-boot-stagingTom Rini
2016-02-06Use correct spelling of "U-Boot"Bin Meng
Correct spelling of "U-Boot" shall be used in all written text (documentation, comments in source files etc.). Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Minkyu Kang <[email protected]>
2016-02-05x86: ich6_gpio: Convert to use proper DM APIBin Meng
At present this GPIO driver still uses the legacy PCI API. Now that we have proper PCH drivers we can use those to obtain the information we need. While the device tree has nodes for the GPIO peripheral it is not in the right place. It should be on the PCI bus as a sub-peripheral of the PCH device. Update the device tree files to show the GPIO controller within the PCH, so that PCI access works as expected. This also adds '#address-cells' and '#size-cells' to the PCH node. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]>
2016-02-02dm: vybrid_gpio: Drop legacy codeBhuvanchandra DV
All boards using this driver are with device tree support, hence drop the legacy code in driver to have a pure DT solution. Signed-off-by: Bhuvanchandra DV <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2016-02-01drivers: gpio: add driver for Microchip PIC32 GPIO controller.Purna Chandra Mandal
In PIC32 GPIO controller is part of PIC32 pin controller. PIC32 has ten independently programmable ports and each with multiple pins. Each of these pins can be configured and used as GPIO, provided they are not in use for other peripherals. Signed-off-by: Purna Chandra Mandal <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Daniel Schwierzeck <[email protected]>
2016-01-25bug.h: move BUILD_BUG_* defines to include/linux/bug.hMasahiro Yamada
BUILD_BUG_* macros have been defined in several headers. It would be nice to collect them in include/linux/bug.h like Linux. This commit is cherry-picking useful macros from include/linux/bug.h of Linux 4.4. I did not import BUILD_BUG_ON_MSG() because it would not work if it is used with include/common.h in U-Boot. I'd like to postpone it until the root cause (the "error()" macro in include/common.h causes the name conflict with "__attribute__((error()))") is fixed. Signed-off-by: Masahiro Yamada <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-01-21rockchip: gpio: Implement the get_function() methodSimon Glass
Provide this method so that 'gpio status' works fully. It now shows whether a pin is used for input, output or some other function. Signed-off-by: Simon Glass <[email protected]>
2016-01-21rockchip: gpio: Read the GPIO value correctlySimon Glass
This function should return 0 or 1, not a mask. Fix it. Signed-off-by: Simon Glass <[email protected]>
2016-01-20dm: gpio: Allow the uclass to work without printf()Simon Glass
For SPL we don't really need sprintf() and with tiny-printf this is not available. Allow this to be dropped in SPL when using tiny-printf. Signed-off-by: Simon Glass <[email protected]>