This series adds support for the D1's CCU and R_CCU. I attempted to hook up clock parents the "right" way, not using global names. To accomplish that, I added several new macros. I am open to comments on this approach. It looks a bit messier, but seems like it could be less prone to errors. Samuel Holland (6): dt-bindings: clk: Add compatibles for D1 CCUs clk: sunxi-ng: div: Add macros using clk_parent_data and clk_hw clk: sunxi-ng: mp: Add macros using clk_parent_data and clk_hw clk: sunxi-ng: mux: Add macros using clk_parent_data and clk_hw clk: sunxi-ng: gate: Add macros for gates with fixed dividers clk: sunxi-ng: Add support for the D1 SoC clocks .../clock/allwinner,sun4i-a10-ccu.yaml | 4 + drivers/clk/sunxi-ng/Kconfig | 10 + drivers/clk/sunxi-ng/Makefile | 4 + drivers/clk/sunxi-ng/ccu-sun20i-d1-r.c | 140 ++ drivers/clk/sunxi-ng/ccu-sun20i-d1-r.h | 17 + drivers/clk/sunxi-ng/ccu-sun20i-d1.c | 1390 +++++++++++++++++ drivers/clk/sunxi-ng/ccu-sun20i-d1.h | 15 + drivers/clk/sunxi-ng/ccu_div.h | 78 + drivers/clk/sunxi-ng/ccu_gate.h | 32 +- drivers/clk/sunxi-ng/ccu_mp.h | 49 + drivers/clk/sunxi-ng/ccu_mux.h | 33 + include/dt-bindings/clock/sun20i-d1-ccu.h | 156 ++ include/dt-bindings/clock/sun20i-d1-r-ccu.h | 19 + include/dt-bindings/reset/sun20i-d1-ccu.h | 77 + include/dt-bindings/reset/sun20i-d1-r-ccu.h | 16 + 15 files changed, 2039 insertions(+), 1 deletion(-) create mode 100644 drivers/clk/sunxi-ng/ccu-sun20i-d1-r.c create mode 100644 drivers/clk/sunxi-ng/ccu-sun20i-d1-r.h create mode 100644 drivers/clk/sunxi-ng/ccu-sun20i-d1.c create mode 100644 drivers/clk/sunxi-ng/ccu-sun20i-d1.h create mode 100644 include/dt-bindings/clock/sun20i-d1-ccu.h create mode 100644 include/dt-bindings/clock/sun20i-d1-r-ccu.h create mode 100644 include/dt-bindings/reset/sun20i-d1-ccu.h create mode 100644 include/dt-bindings/reset/sun20i-d1-r-ccu.h -- 2.32.0