10b11dbf7SMasahiro Yamada# 20b11dbf7SMasahiro Yamada# GPIO infrastructure and drivers 30b11dbf7SMasahiro Yamada# 40b11dbf7SMasahiro Yamada 50b11dbf7SMasahiro Yamadamenu "GPIO Support" 60b11dbf7SMasahiro Yamada 7da333ae7SMasahiro Yamadaconfig DM_GPIO 8da333ae7SMasahiro Yamada bool "Enable Driver Model for GPIO drivers" 9da333ae7SMasahiro Yamada depends on DM 10da333ae7SMasahiro Yamada help 11f94a1bedSSimon Glass Enable driver model for GPIO access. The standard GPIO 12f94a1bedSSimon Glass interface (gpio_get_value(), etc.) is then implemented by 13f94a1bedSSimon Glass the GPIO uclass. Drivers provide methods to query the 14f94a1bedSSimon Glass particular GPIOs that they provide. The uclass interface 15f94a1bedSSimon Glass is defined in include/asm-generic/gpio.h. 16606f7047SAlbert ARIBAUD \(3ADEV\) 1788d5ecf4SThomas Chouconfig ALTERA_PIO 1888d5ecf4SThomas Chou bool "Altera PIO driver" 1988d5ecf4SThomas Chou depends on DM_GPIO 2088d5ecf4SThomas Chou help 2188d5ecf4SThomas Chou Select this to enable PIO for Altera devices. Please find 2288d5ecf4SThomas Chou details on the "Embedded Peripherals IP User Guide" of Altera. 2388d5ecf4SThomas Chou 24e30a70c2SMarek Vasutconfig DWAPB_GPIO 25e30a70c2SMarek Vasut bool "DWAPB GPIO driver" 26e30a70c2SMarek Vasut depends on DM && DM_GPIO 27e30a70c2SMarek Vasut default n 28e30a70c2SMarek Vasut help 29e30a70c2SMarek Vasut Support for the Designware APB GPIO driver. 30e30a70c2SMarek Vasut 312c62c56aSWenyou Yangconfig ATMEL_PIO4 322c62c56aSWenyou Yang bool "ATMEL PIO4 driver" 332c62c56aSWenyou Yang depends on DM 342c62c56aSWenyou Yang default n 352c62c56aSWenyou Yang help 362c62c56aSWenyou Yang Say yes here to support the Atmel PIO4 driver. 372c62c56aSWenyou Yang The PIO4 is new version of Atmel PIO controller, which manages 382c62c56aSWenyou Yang up to 128 fully programmable input/output lines. Each I/O line 392c62c56aSWenyou Yang may be dedicated as a general purpose I/O or be assigned to 402c62c56aSWenyou Yang a function of an embedded peripheral. 412c62c56aSWenyou Yang 4264b17977SSimon Glassconfig INTEL_BROADWELL_GPIO 4364b17977SSimon Glass bool "Intel Broadwell GPIO driver" 4464b17977SSimon Glass depends on DM 4564b17977SSimon Glass help 4664b17977SSimon Glass This driver supports Broadwell U devices which have an expanded 4764b17977SSimon Glass GPIO feature set. The difference is large enough to merit a separate 4864b17977SSimon Glass driver from the common Intel ICH6 driver. It supports a total of 4964b17977SSimon Glass 95 GPIOs which can be configured from the device tree. 5064b17977SSimon Glass 51606f7047SAlbert ARIBAUD \(3ADEV\)config LPC32XX_GPIO 52606f7047SAlbert ARIBAUD \(3ADEV\) bool "LPC32XX GPIO driver" 53606f7047SAlbert ARIBAUD \(3ADEV\) depends on DM 54606f7047SAlbert ARIBAUD \(3ADEV\) default n 55606f7047SAlbert ARIBAUD \(3ADEV\) help 56606f7047SAlbert ARIBAUD \(3ADEV\) Support for the LPC32XX GPIO driver. 57d79c50afSSimon Glass 58*81a87e18SMateusz Kulikowskiconfig MSM_GPIO 59*81a87e18SMateusz Kulikowski bool "Qualcomm GPIO driver" 60*81a87e18SMateusz Kulikowski depends on DM_GPIO 61*81a87e18SMateusz Kulikowski default n 62*81a87e18SMateusz Kulikowski help 63*81a87e18SMateusz Kulikowski Support GPIO controllers on Qualcomm Snapdragon family of SoCs. 64*81a87e18SMateusz Kulikowski This controller have single bank (default name "soc"), every 65*81a87e18SMateusz Kulikowski gpio has it's own set of registers. 66*81a87e18SMateusz Kulikowski Only simple GPIO operations are supported (get/set, change of 67*81a87e18SMateusz Kulikowski direction and checking pin function). 68*81a87e18SMateusz Kulikowski Supported devices: 69*81a87e18SMateusz Kulikowski - APQ8016 70*81a87e18SMateusz Kulikowski - MSM8916 71*81a87e18SMateusz Kulikowski 721f8f7730SSimon Glassconfig ROCKCHIP_GPIO 731f8f7730SSimon Glass bool "Rockchip GPIO driver" 741f8f7730SSimon Glass depends on DM_GPIO 751f8f7730SSimon Glass help 761f8f7730SSimon Glass Support GPIO access on Rockchip SoCs. The GPIOs are arranged into 771f8f7730SSimon Glass a number of banks (different for each SoC type) each with 32 GPIOs. 781f8f7730SSimon Glass The GPIOs for a device are defined in the device tree with one node 791f8f7730SSimon Glass for each bank. 801f8f7730SSimon Glass 81d79c50afSSimon Glassconfig SANDBOX_GPIO 82d79c50afSSimon Glass bool "Enable sandbox GPIO driver" 83d79c50afSSimon Glass depends on SANDBOX && DM && DM_GPIO 84d79c50afSSimon Glass help 85d79c50afSSimon Glass This driver supports some simulated GPIOs which can be adjusted 86d79c50afSSimon Glass using 'back door' functions like sandbox_gpio_set_value(). Then the 87d79c50afSSimon Glass GPIOs can be inspected through the normal get_get_value() 88d79c50afSSimon Glass interface. The purpose of this is to allow GPIOs to be used as 89d79c50afSSimon Glass normal in sandbox, perhaps with test code actually driving the 90d79c50afSSimon Glass behaviour of those GPIOs. 91d79c50afSSimon Glass 92d79c50afSSimon Glassconfig SANDBOX_GPIO_COUNT 93d79c50afSSimon Glass int "Number of sandbox GPIOs" 94d79c50afSSimon Glass depends on SANDBOX_GPIO 95d79c50afSSimon Glass default 128 96d79c50afSSimon Glass help 97d79c50afSSimon Glass The sandbox driver can support any number of GPIOs. Generally these 98d79c50afSSimon Glass are specified using the device tree. But you can also have a number 99d79c50afSSimon Glass of 'anonymous' GPIOs that do not belong to any device or bank. 100d79c50afSSimon Glass Select a suitable value depending on your needs. 101d348a943SBhuvanchandra DV 102b9a66b63SMasahiro Yamadaconfig GPIO_UNIPHIER 103b9a66b63SMasahiro Yamada bool "UniPhier GPIO" 104b9a66b63SMasahiro Yamada depends on ARCH_UNIPHIER 105b9a66b63SMasahiro Yamada help 106b9a66b63SMasahiro Yamada Say yes here to support UniPhier GPIOs. 107b9a66b63SMasahiro Yamada 108d348a943SBhuvanchandra DVconfig VYBRID_GPIO 109d348a943SBhuvanchandra DV bool "Vybrid GPIO driver" 110d348a943SBhuvanchandra DV depends on DM 111d348a943SBhuvanchandra DV default n 112d348a943SBhuvanchandra DV help 113d348a943SBhuvanchandra DV Say yes here to support Vybrid vf610 GPIOs. 1140b11dbf7SMasahiro Yamada 115386d934eSPurna Chandra Mandalconfig PIC32_GPIO 116386d934eSPurna Chandra Mandal bool "Microchip PIC32 GPIO driver" 117386d934eSPurna Chandra Mandal depends on DM_GPIO && MACH_PIC32 118386d934eSPurna Chandra Mandal default y 119386d934eSPurna Chandra Mandal help 120386d934eSPurna Chandra Mandal Say yes here to support Microchip PIC32 GPIOs. 121386d934eSPurna Chandra Mandal 122704d9a64SStefan Roeseconfig MVEBU_GPIO 123704d9a64SStefan Roese bool "Marvell MVEBU GPIO driver" 124704d9a64SStefan Roese depends on DM_GPIO && ARCH_MVEBU 125704d9a64SStefan Roese default y 126704d9a64SStefan Roese help 127704d9a64SStefan Roese Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs. 128704d9a64SStefan Roese 1290b11dbf7SMasahiro Yamadaendmenu 130