This adds the PRCM clocks and reset controls to the A80 dtsi.

The list of apbs clock gates is incomplete. Tests show that bits 0~20
are mutable. We will need documents from Allwinner to complete the
support.

Also update clock and reset phandles for r_uart.

Signed-off-by: Chen-Yu Tsai <w...@csie.org>
---
 arch/arm/boot/dts/sun9i-a80.dtsi | 64 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 63 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi
index d3dece2eea72..f0869ff8006f 100644
--- a/arch/arm/boot/dts/sun9i-a80.dtsi
+++ b/arch/arm/boot/dts/sun9i-a80.dtsi
@@ -169,6 +169,14 @@
                                             "usb_phy2", "usb_hsic_12M";
                };
 
+               pll3: clk@06000008 {
+                       /* placeholder until implemented */
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-rate = <0>;
+                       clock-output-names = "pll3";
+               };
+
                pll4: clk@0600000c {
                        #clock-cells = <0>;
                        compatible = "allwinner,sun9i-a80-pll4-clk";
@@ -751,13 +759,67 @@
                        interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               prcm@08001400 {
+                       compatible = "allwinner,sun9i-a80-prcm";
+                       reg = <0x08001400 0x200>;
+
+                       cpus_clk: cpus_clk {
+                               compatible = "allwinner,sun9i-a80-cpus-clk";
+                               #clock-cells = <0>;
+                               clocks = <&osc32k>, <&osc24M>, <&pll4>, <&pll3>;
+                               clock-output-names = "cpus";
+                       };
+
+                       ahbs: ahbs_clk {
+                               compatible = "fixed-factor-clock";
+                               #clock-cells = <0>;
+                               clock-div = <1>;
+                               clock-mult = <1>;
+                               clocks = <&cpus_clk>;
+                               clock-output-names = "ahbs";
+                       };
+
+                       apbs: apbs_clk {
+                               compatible = "allwinner,sun8i-a23-apb0-clk";
+                               #clock-cells = <0>;
+                               clocks = <&ahbs>;
+                               clock-output-names = "apbs";
+                       };
+
+                       apbs_gates: apbs_gates_clk {
+                               compatible = 
"allwinner,sun9i-a80-apbs-gates-clk";
+                               #clock-cells = <1>;
+                               clocks = <&apbs>;
+                               clock-output-names = "apbs_pio", "apbs_ir",
+                                               "apbs_timer", "apbs_rsb",
+                                               "apbs_uart", "apbs_1wire",
+                                               "apbs_i2c0", "apbs_i2c1",
+                                               "apbs_ps2_0", "apbs_ps2_1",
+                                               "apbs_dma", "apbs_i2s0",
+                                               "apbs_i2s1", "apbs_twd";
+                       };
+
+                       r_ir_clk: r_ir_clk {
+                               #clock-cells = <0>;
+                               compatible = "allwinner,sun4i-a10-mod0-clk";
+                               clocks = <&osc32k>, <&osc24M>;
+                               clock-output-names = "r_ir";
+                       };
+
+                       apbs_rst: apbs_rst {
+                               compatible = "allwinner,sun6i-a31-clock-reset";
+                               #reset-cells = <1>;
+                       };
+               };
+
                r_uart: serial@08002800 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0x08002800 0x400>;
                        interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
                        reg-shift = <2>;
                        reg-io-width = <4>;
-                       clocks = <&osc24M>;
+                       clocks = <&apbs_gates 4>;
+                       resets = <&apbs_rst 4>;
                        status = "disabled";
                };
        };
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to