[U-Boot] [RFC 00/35] sunxi: Add initial CLK, RESET support

Jagan Teki jagan at amarulasolutions.com
Mon Jul 16 11:28:15 UTC 2018


This is series is trying to add initial support for CLK and RESET
drivers for Allwinner SoC's with USB as a starting IP.

Linux handle both clock and reset as ccu with common DT bindings,
but besides that U-Boot handle them separately with individual
generic uclass functions. So we need have a separate drivers for
CLK and RESET with common DT binding.

This series is trying to resolve this by binding the reset driver
from CLK driver .bind call. First of all the CLK driver will probe
based on DT compatible and the .bind call of CLK driver will bind 
the respective reset driver based on uclass driver name.

I would prefer USB can be initial IP to go, since it doesn't rely on 
dm pinctrl or any other dm stuff require.

Tested this on A64, H5, H3 but I still need to have closer look
on other SoCs.

All these changes available at u-boot-sunxi/clk

Suggestions,
Jagan.

Andre Przywara (1):
  sunxi: clk: add DM clock driver template for the A64 SoC

Jagan Teki (34):
  clk: Kconfig: Ascending order to sub directiory kconfigs
  net: sun8i_emac: Make proper order for include files
  mtd: sunxi_nand_spl: Make proper order for include files
  dt-bindings: reset: Sync sun4i-a10-ccu.h from Linux
  dt-bindings: clock: Sync sun5i-ccu.h from Linux
  dt-bindings: reset: Sync sun5i-ccu.h from Linux
  dt-bindings: clock: Sync sun6i-a31-ccu.h from Linux
  dt-bindings: reset: Sync sun6i-a31-ccu.h from Linux
  clk: sunxi: Add Kconfig entry
  clk: sunxi: a64: Add disable function
  clk: sunxi: a64: Implement USB clocks
  reset: sunxi: Add DM reset driver template for the A64 SoC
  reset: sunxi: a64: Bind reset from clock driver
  reset: Add default request ops
  reset: sunxi: a64: Implement USB resets
  clk: sunxi: Add initial CLK driver for H3_H5
  reset: sunxi: Add initial RESET driver for H3_H5
  clk: sunxi: Add initial CLK driver for A10/A20
  reset: sunxi: Add initial RESET driver for A10/A20
  clk: sunxi: Add initial CLK driver for A10s/A13
  reset: sunxi: Add initial RESET driver for A10s/A13
  clk: sunxi: Add initial CLK driver for A31/A31s
  reset: sunxi: Add initial RESET driver for A31/A31s
  clk: sunxi: Add initial CLK driver for A23
  reset: sunxi: Add initial RESET driver for A23
  clk: sunxi: a23: Add CLK support for A33
  reset: sunxi: a23: Add RESET support A33
  clk: sunxi: Add initial CLK driver for A83T
  reset: sunxi: Add initial RESET driver for A83T
  sunxi: Enable CLK and RESET
  musb-new: sunxi: Use CLK and RESET support
  phy: sun4i-usb: Use CLK and RESET support
  sunxi: usb: Switch to Generic host controllers
  usb: host: Drop [e-o]hci-sunxi drivers

 arch/arm/include/asm/arch-sunxi/clock.h       |   8 +
 arch/arm/mach-sunxi/Kconfig                   |  18 ++
 configs/A10-OLinuXino-Lime_defconfig          |   1 +
 configs/A10s-OLinuXino-M_defconfig            |   1 +
 configs/A13-OLinuXinoM_defconfig              |   1 +
 configs/A13-OLinuXino_defconfig               |   1 +
 configs/A20-OLinuXino-Lime2-eMMC_defconfig    |   1 +
 configs/A20-OLinuXino-Lime2_defconfig         |   1 +
 configs/A20-OLinuXino-Lime_defconfig          |   1 +
 configs/A20-Olimex-SOM204-EVB_defconfig       |   2 +
 configs/Auxtek-T003_defconfig                 |   1 +
 configs/Auxtek-T004_defconfig                 |   1 +
 configs/Bananapi_defconfig                    |   1 +
 configs/Bananapi_m2m_defconfig                |   1 +
 configs/Bananapro_defconfig                   |   1 +
 configs/CHIP_defconfig                        |   1 +
 configs/CHIP_pro_defconfig                    |   1 +
 configs/CSQ_CS908_defconfig                   |   1 +
 configs/Colombus_defconfig                    |   1 +
 configs/Cubieboard2_defconfig                 |   1 +
 configs/Cubieboard_defconfig                  |   1 +
 configs/Cubietruck_plus_defconfig             |   1 +
 configs/Hummingbird_A31_defconfig             |   1 +
 configs/Itead_Ibox_A20_defconfig              |   1 +
 configs/Linksprite_pcDuino3_Nano_defconfig    |   1 +
 configs/Linksprite_pcDuino3_defconfig         |   1 +
 configs/Linksprite_pcDuino_defconfig          |   1 +
 configs/MK808C_defconfig                      |   1 +
 configs/Marsboard_A10_defconfig               |   1 +
 configs/Mele_A1000G_quad_defconfig            |   1 +
 configs/Mele_A1000_defconfig                  |   1 +
 configs/Mele_I7_defconfig                     |   1 +
 configs/Mele_M3_defconfig                     |   1 +
 configs/Mele_M5_defconfig                     |   1 +
 configs/Mele_M9_defconfig                     |   1 +
 configs/Mini-X_defconfig                      |   1 +
 configs/Orangepi_defconfig                    |   1 +
 configs/Orangepi_mini_defconfig               |   1 +
 configs/Sinlinx_SinA31s_defconfig             |   1 +
 configs/Sinlinx_SinA33_defconfig              |   1 +
 configs/Sinovoip_BPI_M2_Plus_defconfig        |   1 +
 configs/Sinovoip_BPI_M2_defconfig             |   1 +
 configs/Sinovoip_BPI_M3_defconfig             |   1 +
 configs/Wexler_TAB7200_defconfig              |   1 +
 configs/Wobo_i5_defconfig                     |   1 +
 configs/a64-olinuxino_defconfig               |   1 +
 configs/ba10_tv_box_defconfig                 |   1 +
 configs/bananapi_m1_plus_defconfig            |   1 +
 configs/bananapi_m64_defconfig                |   1 +
 configs/ga10h_v1_1_defconfig                  |   1 +
 configs/h8_homlet_v2_defconfig                |   1 +
 configs/i12-tvbox_defconfig                   |   1 +
 configs/icnova-a20-swac_defconfig             |   1 +
 configs/inet1_defconfig                       |   1 +
 configs/inet_q972_defconfig                   |   1 +
 configs/jesurun_q5_defconfig                  |   1 +
 configs/libretech_all_h3_cc_h2_plus_defconfig |   1 +
 configs/libretech_all_h3_cc_h3_defconfig      |   1 +
 configs/libretech_all_h3_cc_h5_defconfig      |   1 +
 configs/mixtile_loftq_defconfig               |   1 +
 configs/mk802_a10s_defconfig                  |   1 +
 configs/mk802_defconfig                       |   1 +
 configs/mk802ii_defconfig                     |   1 +
 configs/nanopi_a64_defconfig                  |   1 +
 configs/nanopi_m1_defconfig                   |   1 +
 configs/nanopi_m1_plus_defconfig              |   1 +
 configs/nanopi_neo2_defconfig                 |   1 +
 configs/nanopi_neo_air_defconfig              |   1 +
 configs/nanopi_neo_defconfig                  |   1 +
 configs/nanopi_neo_plus2_defconfig            |   1 +
 configs/orangepi_2_defconfig                  |   1 +
 configs/orangepi_lite_defconfig               |   1 +
 configs/orangepi_one_defconfig                |   1 +
 configs/orangepi_pc2_defconfig                |   1 +
 configs/orangepi_pc_defconfig                 |   1 +
 configs/orangepi_pc_plus_defconfig            |   1 +
 configs/orangepi_plus2e_defconfig             |   1 +
 configs/orangepi_plus_defconfig               |   1 +
 configs/orangepi_prime_defconfig              |   1 +
 configs/orangepi_r1_defconfig                 |   1 +
 configs/orangepi_win_defconfig                |   1 +
 configs/orangepi_zero_defconfig               |   1 +
 configs/orangepi_zero_plus2_defconfig         |   1 +
 configs/orangepi_zero_plus_defconfig          |   1 +
 configs/parrot_r16_defconfig                  |   1 +
 configs/pine64_plus_defconfig                 |   1 +
 configs/r7-tv-dongle_defconfig                |   1 +
 configs/sopine_baseboard_defconfig            |   1 +
 configs/sun8i_a23_evb_defconfig               |   1 +
 configs/sunxi_Gemei_G9_defconfig              |   1 +
 configs/tbs_a711_defconfig                    |   1 +
 drivers/clk/Kconfig                           |   9 +-
 drivers/clk/Makefile                          |   1 +
 drivers/clk/sunxi/Kconfig                     |  60 +++++
 drivers/clk/sunxi/Makefile                    |  15 ++
 drivers/clk/sunxi/clk_a10.c                   | 105 ++++++++
 drivers/clk/sunxi/clk_a10s.c                  | 105 ++++++++
 drivers/clk/sunxi/clk_a23.c                   | 113 +++++++++
 drivers/clk/sunxi/clk_a31.c                   | 130 ++++++++++
 drivers/clk/sunxi/clk_a64.c                   | 141 +++++++++++
 drivers/clk/sunxi/clk_a83t.c                  | 120 +++++++++
 drivers/clk/sunxi/clk_h3.c                    | 131 ++++++++++
 drivers/clk/sunxi/clk_sunxi.c                 |  39 +++
 drivers/mtd/nand/sunxi_nand_spl.c             |   4 +-
 drivers/net/sun8i_emac.c                      |   8 +-
 drivers/phy/allwinner/phy-sun4i-usb.c         |  63 +++--
 drivers/reset/Kconfig                         |   2 +
 drivers/reset/Makefile                        |   1 +
 drivers/reset/reset-uclass.c                  |  10 +-
 drivers/reset/sunxi/Kconfig                   |  61 +++++
 drivers/reset/sunxi/Makefile                  |  13 +
 drivers/reset/sunxi/reset_a10.c               |  95 +++++++
 drivers/reset/sunxi/reset_a10s.c              |  93 +++++++
 drivers/reset/sunxi/reset_a23.c               | 111 +++++++++
 drivers/reset/sunxi/reset_a31.c               | 123 +++++++++
 drivers/reset/sunxi/reset_a64.c               | 115 +++++++++
 drivers/reset/sunxi/reset_a83t.c              | 117 +++++++++
 drivers/reset/sunxi/reset_h3.c                | 121 +++++++++
 drivers/usb/host/Kconfig                      |   2 +
 drivers/usb/host/Makefile                     |   2 -
 drivers/usb/host/ehci-sunxi.c                 | 204 ---------------
 drivers/usb/host/ohci-sunxi.c                 | 233 ------------------
 drivers/usb/musb-new/sunxi.c                  |  82 +++---
 include/configs/sun4i.h                       |   4 -
 include/configs/sun50i.h                      |   5 -
 include/configs/sun5i.h                       |   4 -
 include/configs/sun6i.h                       |   4 -
 include/configs/sun7i.h                       |   4 -
 include/configs/sun8i.h                       |   4 -
 include/configs/sunxi-common.h                |   1 -
 include/dt-bindings/clock/sun5i-ccu.h         | 106 ++++++++
 include/dt-bindings/clock/sun6i-a31-ccu.h     | 191 ++++++++++++++
 include/dt-bindings/reset/sun4i-a10-ccu.h     |  69 ++++++
 include/dt-bindings/reset/sun5i-ccu.h         |  32 +++
 include/dt-bindings/reset/sun6i-a31-ccu.h     | 106 ++++++++
 scripts/config_whitelist.txt                  |   2 -
 136 files changed, 2549 insertions(+), 528 deletions(-)
 create mode 100644 drivers/clk/sunxi/Kconfig
 create mode 100644 drivers/clk/sunxi/Makefile
 create mode 100644 drivers/clk/sunxi/clk_a10.c
 create mode 100644 drivers/clk/sunxi/clk_a10s.c
 create mode 100644 drivers/clk/sunxi/clk_a23.c
 create mode 100644 drivers/clk/sunxi/clk_a31.c
 create mode 100644 drivers/clk/sunxi/clk_a64.c
 create mode 100644 drivers/clk/sunxi/clk_a83t.c
 create mode 100644 drivers/clk/sunxi/clk_h3.c
 create mode 100644 drivers/clk/sunxi/clk_sunxi.c
 create mode 100644 drivers/reset/sunxi/Kconfig
 create mode 100644 drivers/reset/sunxi/Makefile
 create mode 100644 drivers/reset/sunxi/reset_a10.c
 create mode 100644 drivers/reset/sunxi/reset_a10s.c
 create mode 100644 drivers/reset/sunxi/reset_a23.c
 create mode 100644 drivers/reset/sunxi/reset_a31.c
 create mode 100644 drivers/reset/sunxi/reset_a64.c
 create mode 100644 drivers/reset/sunxi/reset_a83t.c
 create mode 100644 drivers/reset/sunxi/reset_h3.c
 delete mode 100644 drivers/usb/host/ehci-sunxi.c
 delete mode 100644 drivers/usb/host/ohci-sunxi.c
 create mode 100644 include/dt-bindings/clock/sun5i-ccu.h
 create mode 100644 include/dt-bindings/clock/sun6i-a31-ccu.h
 create mode 100644 include/dt-bindings/reset/sun4i-a10-ccu.h
 create mode 100644 include/dt-bindings/reset/sun5i-ccu.h
 create mode 100644 include/dt-bindings/reset/sun6i-a31-ccu.h

-- 
2.17.1



More information about the U-Boot mailing list