public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/21] dm: Support GPIO device tree bindings in the uclass
@ 2015-01-06  3:05 Simon Glass
  2015-01-06  3:05 ` [U-Boot] [PATCH 01/21] dm: gpio: Bring in GPIO device tree binding Simon Glass
                   ` (21 more replies)
  0 siblings, 22 replies; 49+ messages in thread
From: Simon Glass @ 2015-01-06  3:05 UTC (permalink / raw)
  To: u-boot

At present U-Boot sort-of supports the standard way of reading GPIOs from
device tree nodes, but the support is incomplete, a bit clunky and only
works for GPIO bindings where #gpio-cells is 2.

Also, this support can now be built into the uclass, rather than parked in
a separate file.

Add support for requesting GPIOs based on a list in a device tree node, by
looking up the phandles. Convert existing boards and remove the old code.

As a side-effect, we now no-longer need to include <asm/gpio.h> in fdtdec.h,
a problem reported by Masahiro and others.

This series is tested on boards as follows, with the objective being to cover
each code path:

seaboard
--------
LCD comes up, USB host shows partitions, NAND can read/write. Both internal
MMC and external SD card partition can be read. Ejecting external SD card is
detected

Tegra20 (SeaBoard) # gpio status
Bank B:
B2: output: 1 [x] panel.nvidia,lvds-shutdown-gpios

Bank C:
C6: output: 1 [x] panel.nvidia,panel-vdd-gpios

Bank D:
D0: output: 0 [x] usb at c5000000.nvidia,vbus-gpio
D4: output: 1 [x] panel.nvidia,backlight-enable-gpios

Bank H:
H1: input: 0 [x] sdhci at c8000400.wp-gpios
H3: output: 1 [x] nand-controller at 70008000.nvidia,wp-gpios

Bank I:
I5: input: 0 [x] sdhci at c8000400.cd-gpios
I6: output: 1 [x] sdhci at c8000400.power-gpios

Bank W:
W0: output: 1 [x] panel.nvidia,backlight-vdd-gpios

pit
---
LCD comes up, internal MMC and external uSD cards can show a partition list.
EC works and the interrupt line behaves as expected. USB stick can display
a partition list.

pi
--
EC works correctly.


Simon Glass (21):
  dm: gpio: Bring in GPIO device tree binding
  dm: exynos: Bring in GPIO device tree binding
  dm: tegra: Bring in GPIO device tree binding
  dm: fdt: Add a function to decode phandles with arguments
  dm: gpio: Add a native driver model API
  dm: gpio: Add a driver GPIO translation method
  dm: gpio: Add better functions to request GPIOs
  dm: gpio: Mark the old GPIO API deprecated
  dm: demo: Add a simple GPIO demonstration
  dm: cros_ec: Remove use of fdtdec GPIO support
  dm: tegra: Add a GPIO translation function
  dm: exynos: Add a GPIO translation function
  dm: tegra: video: Remove use of fdtdec GPIO support
  dm: tegra: nand: Remove use of fdtdec GPIO support
  dm: zynq: Remove inline gpio functions
  dm: mmc: Remove use of fdtdec GPIO support
  dm: usb: Remove use of fdtdec GPIO support
  dm: spi: Remove use of fdtdec GPIO support
  dm: tegra: dts: Use TEGRA_GPIO() macro for all GPIOs
  dm: exynos: dts: Use GPIO bank phandles for GPIOs
  dm: fdt: Remove the old GPIO functions

 arch/arm/dts/exynos4.dtsi                          |   7 -
 arch/arm/dts/exynos4210-origen.dts                 |   2 +-
 arch/arm/dts/exynos4210-trats.dts                  |   4 +-
 arch/arm/dts/exynos4210-universal_c210.dts         |  12 +-
 arch/arm/dts/exynos4412-odroid.dts                 |   2 +-
 arch/arm/dts/exynos4412-trats2.dts                 |   6 +-
 arch/arm/dts/exynos5.dtsi                          |   4 +-
 arch/arm/dts/exynos5250-smdk5250.dts               |   2 +-
 arch/arm/dts/exynos5250-snow.dts                   |  10 +-
 arch/arm/dts/exynos5420-peach-pit.dts              |   8 +-
 arch/arm/dts/exynos5422-odroidxu3.dts              |   2 +-
 arch/arm/dts/exynos5800-peach-pi.dts               |  10 +-
 arch/arm/dts/tegra114-dalmore.dts                  |   5 +-
 arch/arm/dts/tegra124-jetson-tk1.dts               |   9 +-
 arch/arm/dts/tegra124-venice2.dts                  |   9 +-
 arch/arm/dts/tegra20-colibri_t20_iris.dts          |  10 +-
 arch/arm/dts/tegra20-harmony.dts                   |  28 +-
 arch/arm/dts/tegra20-medcom-wide.dts               |   9 +-
 arch/arm/dts/tegra20-paz00.dts                     |  18 +-
 arch/arm/dts/tegra20-seaboard.dts                  |  22 +-
 arch/arm/dts/tegra20-tamonten.dtsi                 |   9 +-
 arch/arm/dts/tegra20-tec.dts                       |   9 +-
 arch/arm/dts/tegra20-trimslice.dts                 |   8 +-
 arch/arm/dts/tegra20-ventana.dts                   |  18 +-
 arch/arm/dts/tegra20-whistler.dts                  |   2 +-
 arch/arm/dts/tegra30-apalis.dts                    |  10 +-
 arch/arm/dts/tegra30-beaver.dts                    |  10 +-
 arch/arm/dts/tegra30-cardhu.dts                    |   8 +-
 arch/arm/dts/tegra30-colibri.dts                   |   6 +-
 arch/arm/dts/tegra30-tamonten.dtsi                 |   4 +-
 arch/arm/include/asm/arch-pantheon/gpio.h          |   0
 arch/arm/include/asm/arch-tegra/tegra_mmc.h        |   7 +-
 arch/arm/include/asm/arch-tegra20/display.h        |   9 +-
 arch/arm/include/asm/arch-zynq/gpio.h              |  15 -
 arch/sandbox/dts/sandbox.dts                       |  11 +-
 common/cmd_demo.c                                  |  29 +-
 doc/device-tree-bindings/gpio/gpio-samsung.txt     |  41 +++
 doc/device-tree-bindings/gpio/gpio.txt             | 211 +++++++++++
 .../gpio/nvidia,tegra20-gpio.txt                   |  40 +++
 drivers/demo/demo-shape.c                          |  71 ++++
 drivers/demo/demo-uclass.c                         |  20 ++
 drivers/gpio/gpio-uclass.c                         | 396 +++++++++++++++++----
 drivers/gpio/s5p_gpio.c                            |  13 +-
 drivers/gpio/sandbox.c                             |  20 ++
 drivers/gpio/tegra_gpio.c                          |  18 +
 drivers/misc/cros_ec.c                             |  24 +-
 drivers/mmc/s5p_sdhci.c                            |  20 +-
 drivers/mmc/tegra_mmc.c                            |  36 +-
 drivers/mtd/nand/tegra_nand.c                      |   9 +-
 drivers/spi/soft_spi.c                             |  62 ++--
 drivers/usb/host/ehci-exynos.c                     |  10 +-
 drivers/usb/host/ehci-tegra.c                      |  38 +-
 drivers/usb/host/xhci-exynos5.c                    |  10 +-
 drivers/video/tegra.c                              |  54 ++-
 include/asm-generic/gpio.h                         | 265 ++++++++++++++
 include/cros_ec.h                                  |   3 +-
 include/dm-demo.h                                  |   4 +
 include/fdtdec.h                                   | 116 +++---
 include/sdhci.h                                    |   6 +-
 lib/fdtdec.c                                       | 195 +++++-----
 test/dm/gpio.c                                     |  69 +++-
 test/dm/test.dts                                   |  11 +-
 62 files changed, 1561 insertions(+), 535 deletions(-)
 create mode 100644 arch/arm/include/asm/arch-pantheon/gpio.h
 create mode 100644 doc/device-tree-bindings/gpio/gpio-samsung.txt
 create mode 100644 doc/device-tree-bindings/gpio/gpio.txt
 create mode 100644 doc/device-tree-bindings/gpio/nvidia,tegra20-gpio.txt

-- 
2.2.0.rc0.207.ga3a616c

^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2015-01-15 14:56 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-06  3:05 [U-Boot] [PATCH 0/21] dm: Support GPIO device tree bindings in the uclass Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 01/21] dm: gpio: Bring in GPIO device tree binding Simon Glass
2015-01-15  4:38   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 02/21] dm: exynos: " Simon Glass
2015-01-15  4:38   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 03/21] dm: tegra: " Simon Glass
2015-01-15  4:39   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 04/21] dm: fdt: Add a function to decode phandles with arguments Simon Glass
2015-01-15  4:39   ` Simon Glass
2015-01-15  7:29   ` Masahiro Yamada
2015-01-15 14:55     ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 05/21] dm: gpio: Add a native driver model API Simon Glass
2015-01-15  4:39   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 06/21] dm: gpio: Add a driver GPIO translation method Simon Glass
2015-01-15  4:39   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 07/21] dm: gpio: Add better functions to request GPIOs Simon Glass
2015-01-15  4:39   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 08/21] dm: gpio: Mark the old GPIO API deprecated Simon Glass
2015-01-15  4:39   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 09/21] dm: demo: Add a simple GPIO demonstration Simon Glass
2015-01-15  4:40   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 10/21] dm: cros_ec: Remove use of fdtdec GPIO support Simon Glass
2015-01-15  4:40   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 11/21] dm: tegra: Add a GPIO translation function Simon Glass
2015-01-15  4:40   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 12/21] dm: exynos: " Simon Glass
2015-01-15  4:40   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 13/21] dm: tegra: video: Remove use of fdtdec GPIO support Simon Glass
2015-01-15  4:40   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 14/21] dm: tegra: nand: " Simon Glass
2015-01-15  4:40   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 15/21] dm: zynq: Remove inline gpio functions Simon Glass
2015-01-15  4:40   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 16/21] dm: mmc: Remove use of fdtdec GPIO support Simon Glass
2015-01-15  4:40   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 17/21] dm: usb: " Simon Glass
2015-01-15  4:40   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 18/21] dm: spi: " Simon Glass
2015-01-15  4:40   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 19/21] dm: tegra: dts: Use TEGRA_GPIO() macro for all GPIOs Simon Glass
2015-01-15  4:40   ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 20/21] dm: exynos: dts: Use GPIO bank phandles for GPIOs Simon Glass
2015-01-07  2:44   ` Minkyu Kang
2015-01-15  4:40     ` Simon Glass
2015-01-06  3:05 ` [U-Boot] [PATCH 21/21] dm: fdt: Remove the old GPIO functions Simon Glass
2015-01-15  4:40   ` Simon Glass
2015-01-15  7:28   ` Masahiro Yamada
2015-01-15 14:56     ` Simon Glass
2015-01-13  4:19 ` [U-Boot] [PATCH 0/21] dm: Support GPIO device tree bindings in the uclass Simon Glass

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox