[RFC PATCH 00/23] sunxi: Add and use a pinctrl driver

Samuel Holland samuel at sholland.org
Thu Oct 21 06:55:17 CEST 2021


This series resolves some longstanding TODOs by implementing a pinctrl
driver for sunxi platforms and converting DM drivers to use it.

I am sending this as RFC because I have only tested this on a limited
amount of hardware, and there are quite a few magic numbers involved,
so it is likely I missed something. Also, I'm not sure the how best to
split up the patches by subsystem, or if that is necessary.

This series depends on the sunxi-gpio series I just sent.


Samuel Holland (23):
  sunxi: pinctrl: Create the driver skeleton
  sunxi: pinctrl: Implement pin muxing functions
  sunxi: pinctrl: Implement get_pin_muxing function
  sunxi: pinctrl: Implement pin configuration
  pinctrl: sunxi: Add UART pinmuxes
  sunxi: Skip non-DM UART pin setup when PINCTRL=y
  pinctrl: sunxi: Add sun4i EMAC pinmuxes
  net: sunxi_emac: Remove non-DM pin setup
  pinctrl: sunxi: Add sunxi GMAC pinmuxes
  sunxi: Remove non-DM GMAC pin setup
  pinctrl: sunxi: Add sun8i EMAC pinmuxes
  net: sun8i_emac: Remove non-DM pin setup
  pinctrl: sunxi: Add I2C pinmuxes
  sunxi: Remove options and setup code for I2C2-I2C4
  sunxi: Remove non-DM I2C clock/pin setup from U-Boot
  i2c: sun6i_p2wi: Only do non-DM pin setup for non-DM I2C
  i2c: sun8i_rsb: Only do non-DM pin setup for non-DM I2C
  pinctrl: sunxi: Add MMC pinmuxes
  sunxi: Remove non-DM MMC pin setup
  pinctrl: sunxi: a64: Add the PWM pinmux
  pwm: sunxi: Remove non-DM pin setup
  pinctrl: sunxi: Add SPI0 pinmuxes
  spi: sun4i_spi: Remove non-DM pin setup

 MAINTAINERS                                   |   1 +
 arch/arm/Kconfig                              |   1 +
 arch/arm/include/asm/arch-sunxi/gpio.h        |  18 +-
 arch/arm/include/asm/arch-sunxi/i2c.h         |  11 +-
 arch/arm/mach-sunxi/Kconfig                   |  22 --
 arch/arm/mach-sunxi/board.c                   |   2 +
 board/sunxi/board.c                           |  67 ------
 board/sunxi/gmac.c                            |  55 -----
 drivers/gpio/sunxi_gpio.c                     | 130 +-----------
 drivers/i2c/sun6i_p2wi.c                      |   6 +-
 drivers/i2c/sun8i_rsb.c                       |  40 ++--
 drivers/net/sun8i_emac.c                      |  90 --------
 drivers/net/sunxi_emac.c                      |   5 -
 drivers/pinctrl/Kconfig                       |   1 +
 drivers/pinctrl/Makefile                      |   2 +-
 drivers/pinctrl/sunxi/Kconfig                 | 122 +++++++++++
 drivers/pinctrl/sunxi/Makefile                |  26 +++
 drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c     |  53 +++++
 drivers/pinctrl/sunxi/pinctrl-sun50i-a64-r.c  |  38 ++++
 drivers/pinctrl/sunxi/pinctrl-sun50i-a64.c    |  51 +++++
 drivers/pinctrl/sunxi/pinctrl-sun50i-h5.c     |  50 +++++
 drivers/pinctrl/sunxi/pinctrl-sun50i-h6-r.c   |  38 ++++
 drivers/pinctrl/sunxi/pinctrl-sun50i-h6.c     |  49 +++++
 drivers/pinctrl/sunxi/pinctrl-sun50i-h616-r.c |  38 ++++
 drivers/pinctrl/sunxi/pinctrl-sun50i-h616.c   |  47 +++++
 drivers/pinctrl/sunxi/pinctrl-sun5i-a13.c     |  53 +++++
 drivers/pinctrl/sunxi/pinctrl-sun6i-a31-r.c   |  38 ++++
 drivers/pinctrl/sunxi/pinctrl-sun6i-a31.c     |  53 +++++
 drivers/pinctrl/sunxi/pinctrl-sun7i-a20.c     |  57 +++++
 drivers/pinctrl/sunxi/pinctrl-sun8i-a23-r.c   |  38 ++++
 drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c     |  47 +++++
 drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c     |  49 +++++
 drivers/pinctrl/sunxi/pinctrl-sun8i-a83t-r.c  |  38 ++++
 drivers/pinctrl/sunxi/pinctrl-sun8i-a83t.c    |  50 +++++
 drivers/pinctrl/sunxi/pinctrl-sun8i-h3-r.c    |  38 ++++
 drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c      |  50 +++++
 drivers/pinctrl/sunxi/pinctrl-sun8i-v3s.c     |  54 +++++
 drivers/pinctrl/sunxi/pinctrl-sun9i-a80-r.c   |  39 ++++
 drivers/pinctrl/sunxi/pinctrl-sun9i-a80.c     |  48 +++++
 drivers/pinctrl/sunxi/pinctrl-sunxi.c         | 196 ++++++++++++++++++
 drivers/pinctrl/sunxi/pinctrl-sunxi.h         |  21 ++
 drivers/pwm/sunxi_pwm.c                       |  11 -
 drivers/spi/spi-sunxi.c                       |  83 --------
 43 files changed, 1414 insertions(+), 512 deletions(-)
 create mode 100644 drivers/pinctrl/sunxi/Kconfig
 create mode 100644 drivers/pinctrl/sunxi/Makefile
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-a64-r.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-a64.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-h5.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-h6-r.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-h6.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-h616-r.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-h616.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun5i-a13.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun6i-a31-r.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun6i-a31.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun7i-a20.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-a23-r.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-a83t-r.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-a83t.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-h3-r.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-v3s.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun9i-a80-r.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun9i-a80.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sunxi.c
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sunxi.h

-- 
2.32.0



More information about the U-Boot mailing list