
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