Commit 18091360 authored by Olof Johansson's avatar Olof Johansson

Merge tag 'sunxi-dt-for-3.15' of https://github.com/mripard/linux into next/dt

Allwinner DT patches for 3.15, take 1 from Maxime Ripard:
  - Add SPI controllers for all the SoCs
  - Add various missing aliases
  - Add USB clocks nodes
  - Addition of the GMAC support
  - Introduction of the pcDuino board
  - A few DT cleanup patches: change of compatibles,

* tag 'sunxi-dt-for-3.15' of https://github.com/mripard/linux: (33 commits)
  ARM: sun6i: dt: Fix mod0 compatible
  ARM: dts: sun7i: Enable the SPI controllers of the A20-olinuxino-micro
  ARM: dt: sun7i: Add SPI muxing options
  ARM: dt: sun5i: Add A13 SPI controller nodes
  ARM: dt: sun5i: Add A10s SPI controller nodes
  ARM: dt: sun4i: Add A10 SPI controller nodes
  ARM: dt: sun7i: Add A20 SPI controller nodes
  ARM: sun4i: dt: Remove grouping + simple-bus compatible for regulators
  ARM: sunxi: dt: Convert to the new clock compatibles
  ARM: sun7i: add arch timer node
  ARM: sun7i: dt: Add bindings for USB clocks
  ARM: sun5i: dt: Add bindings for USB clocks
  ARM: sun4i: dt: Add bindings for USB clocks
  ARM: dts: sun7i: Add ethernet alias for GMAC
  ARM: dts: sun7i: a20-olinuxino-micro: Enable GMAC instead of EMAC
  ARM: dts: sun7i: cubieboard2: Enable GMAC instead of EMAC
  ARM: dts: sun7i: cubietruck: Enable the GMAC
  ARM: dts: sun7i: Add pin muxing options for the GMAC
  ARM: dts: sun7i: Add GMAC controller node to sun7i DTSI
  ARM: dts: sun7i: Add GMAC clock node to sun7i DTSI
  ...
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents b989e36a 225b0216
...@@ -322,6 +322,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ ...@@ -322,6 +322,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += \
sun4i-a10-cubieboard.dtb \ sun4i-a10-cubieboard.dtb \
sun4i-a10-mini-xplus.dtb \ sun4i-a10-mini-xplus.dtb \
sun4i-a10-hackberry.dtb \ sun4i-a10-hackberry.dtb \
sun4i-a10-pcduino.dtb \
sun5i-a10s-olinuxino-micro.dtb \ sun5i-a10s-olinuxino-micro.dtb \
sun5i-a13-olinuxino.dtb \ sun5i-a13-olinuxino.dtb \
sun5i-a13-olinuxino-micro.dtb \ sun5i-a13-olinuxino-micro.dtb \
......
...@@ -80,18 +80,14 @@ blue { ...@@ -80,18 +80,14 @@ blue {
}; };
}; };
regulators { reg_emac_3v3: emac-3v3 {
compatible = "simple-bus"; compatible = "regulator-fixed";
pinctrl-names = "default";
reg_emac_3v3: emac-3v3 { pinctrl-0 = <&emac_power_pin_a1000>;
compatible = "regulator-fixed"; regulator-name = "emac-3v3";
pinctrl-names = "default"; regulator-min-microvolt = <3300000>;
pinctrl-0 = <&emac_power_pin_a1000>; regulator-max-microvolt = <3300000>;
regulator-name = "emac-3v3"; enable-active-high;
regulator-min-microvolt = <3300000>; gpio = <&pio 7 15 0>;
regulator-max-microvolt = <3300000>;
enable-active-high;
gpio = <&pio 7 15 0>;
};
}; };
}; };
...@@ -54,16 +54,12 @@ uart0: serial@01c28000 { ...@@ -54,16 +54,12 @@ uart0: serial@01c28000 {
}; };
}; };
regulators { reg_emac_3v3: emac-3v3 {
compatible = "simple-bus"; compatible = "regulator-fixed";
regulator-name = "emac-3v3";
reg_emac_3v3: emac-3v3 { regulator-min-microvolt = <3300000>;
compatible = "regulator-fixed"; regulator-max-microvolt = <3300000>;
regulator-name = "emac-3v3"; enable-active-high;
regulator-min-microvolt = <3300000>; gpio = <&pio 7 19 0>;
regulator-max-microvolt = <3300000>;
enable-active-high;
gpio = <&pio 7 19 0>;
};
}; };
}; };
/*
* Copyright 2014 Zoltan HERPAI
* Zoltan HERPAI <wigyori@uid0.hu>
*
* The code contained herein is licensed under the GNU General Public
* License. You may obtain a copy of the GNU General Public License
* Version 2 or later at the following locations:
*
* http://www.opensource.org/licenses/gpl-license.html
* http://www.gnu.org/copyleft/gpl.html
*/
/dts-v1/;
/include/ "sun4i-a10.dtsi"
/ {
model = "LinkSprite pcDuino";
compatible = "linksprite,a10-pcduino", "allwinner,sun4i-a10";
soc@01c00000 {
emac: ethernet@01c0b000 {
pinctrl-names = "default";
pinctrl-0 = <&emac_pins_a>;
phy = <&phy1>;
status = "okay";
};
mdio@01c0b080 {
status = "okay";
phy1: ethernet-phy@1 {
reg = <1>;
};
};
uart0: serial@01c28000 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins_a>;
status = "okay";
};
i2c0: i2c@01c2ac00 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;
status = "okay";
};
};
};
This diff is collapsed.
...@@ -18,6 +18,10 @@ / { ...@@ -18,6 +18,10 @@ / {
aliases { aliases {
ethernet0 = &emac; ethernet0 = &emac;
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
serial3 = &uart3;
}; };
cpus { cpus {
...@@ -47,44 +51,48 @@ dummy: dummy { ...@@ -47,44 +51,48 @@ dummy: dummy {
clock-frequency = <0>; clock-frequency = <0>;
}; };
osc24M: osc24M@01c20050 { osc24M: clk@01c20050 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-osc-clk"; compatible = "allwinner,sun4i-a10-osc-clk";
reg = <0x01c20050 0x4>; reg = <0x01c20050 0x4>;
clock-frequency = <24000000>; clock-frequency = <24000000>;
clock-output-names = "osc24M";
}; };
osc32k: osc32k { osc32k: clk@0 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "fixed-clock"; compatible = "fixed-clock";
clock-frequency = <32768>; clock-frequency = <32768>;
clock-output-names = "osc32k";
}; };
pll1: pll1@01c20000 { pll1: clk@01c20000 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-pll1-clk"; compatible = "allwinner,sun4i-a10-pll1-clk";
reg = <0x01c20000 0x4>; reg = <0x01c20000 0x4>;
clocks = <&osc24M>; clocks = <&osc24M>;
clock-output-names = "pll1";
}; };
pll4: pll4@01c20018 { pll4: clk@01c20018 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-pll1-clk"; compatible = "allwinner,sun4i-a10-pll1-clk";
reg = <0x01c20018 0x4>; reg = <0x01c20018 0x4>;
clocks = <&osc24M>; clocks = <&osc24M>;
clock-output-names = "pll4";
}; };
pll5: pll5@01c20020 { pll5: clk@01c20020 {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun4i-pll5-clk"; compatible = "allwinner,sun4i-a10-pll5-clk";
reg = <0x01c20020 0x4>; reg = <0x01c20020 0x4>;
clocks = <&osc24M>; clocks = <&osc24M>;
clock-output-names = "pll5_ddr", "pll5_other"; clock-output-names = "pll5_ddr", "pll5_other";
}; };
pll6: pll6@01c20028 { pll6: clk@01c20028 {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun4i-pll6-clk"; compatible = "allwinner,sun4i-a10-pll6-clk";
reg = <0x01c20028 0x4>; reg = <0x01c20028 0x4>;
clocks = <&osc24M>; clocks = <&osc24M>;
clock-output-names = "pll6_sata", "pll6_other", "pll6"; clock-output-names = "pll6_sata", "pll6_other", "pll6";
...@@ -93,21 +101,23 @@ pll6: pll6@01c20028 { ...@@ -93,21 +101,23 @@ pll6: pll6@01c20028 {
/* dummy is 200M */ /* dummy is 200M */
cpu: cpu@01c20054 { cpu: cpu@01c20054 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-cpu-clk"; compatible = "allwinner,sun4i-a10-cpu-clk";
reg = <0x01c20054 0x4>; reg = <0x01c20054 0x4>;
clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>; clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
clock-output-names = "cpu";
}; };
axi: axi@01c20054 { axi: axi@01c20054 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-axi-clk"; compatible = "allwinner,sun4i-a10-axi-clk";
reg = <0x01c20054 0x4>; reg = <0x01c20054 0x4>;
clocks = <&cpu>; clocks = <&cpu>;
clock-output-names = "axi";
}; };
axi_gates: axi_gates@01c2005c { axi_gates: clk@01c2005c {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun4i-axi-gates-clk"; compatible = "allwinner,sun4i-a10-axi-gates-clk";
reg = <0x01c2005c 0x4>; reg = <0x01c2005c 0x4>;
clocks = <&axi>; clocks = <&axi>;
clock-output-names = "axi_dram"; clock-output-names = "axi_dram";
...@@ -115,12 +125,13 @@ axi_gates: axi_gates@01c2005c { ...@@ -115,12 +125,13 @@ axi_gates: axi_gates@01c2005c {
ahb: ahb@01c20054 { ahb: ahb@01c20054 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-ahb-clk"; compatible = "allwinner,sun4i-a10-ahb-clk";
reg = <0x01c20054 0x4>; reg = <0x01c20054 0x4>;
clocks = <&axi>; clocks = <&axi>;
clock-output-names = "ahb";
}; };
ahb_gates: ahb_gates@01c20060 { ahb_gates: clk@01c20060 {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun5i-a10s-ahb-gates-clk"; compatible = "allwinner,sun5i-a10s-ahb-gates-clk";
reg = <0x01c20060 0x8>; reg = <0x01c20060 0x8>;
...@@ -136,12 +147,13 @@ ahb_gates: ahb_gates@01c20060 { ...@@ -136,12 +147,13 @@ ahb_gates: ahb_gates@01c20060 {
apb0: apb0@01c20054 { apb0: apb0@01c20054 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-apb0-clk"; compatible = "allwinner,sun4i-a10-apb0-clk";
reg = <0x01c20054 0x4>; reg = <0x01c20054 0x4>;
clocks = <&ahb>; clocks = <&ahb>;
clock-output-names = "apb0";
}; };
apb0_gates: apb0_gates@01c20068 { apb0_gates: clk@01c20068 {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun5i-a10s-apb0-gates-clk"; compatible = "allwinner,sun5i-a10s-apb0-gates-clk";
reg = <0x01c20068 0x4>; reg = <0x01c20068 0x4>;
...@@ -152,19 +164,21 @@ apb0_gates: apb0_gates@01c20068 { ...@@ -152,19 +164,21 @@ apb0_gates: apb0_gates@01c20068 {
apb1_mux: apb1_mux@01c20058 { apb1_mux: apb1_mux@01c20058 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-apb1-mux-clk"; compatible = "allwinner,sun4i-a10-apb1-mux-clk";
reg = <0x01c20058 0x4>; reg = <0x01c20058 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&osc32k>; clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
clock-output-names = "apb1_mux";
}; };
apb1: apb1@01c20058 { apb1: apb1@01c20058 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-apb1-clk"; compatible = "allwinner,sun4i-a10-apb1-clk";
reg = <0x01c20058 0x4>; reg = <0x01c20058 0x4>;
clocks = <&apb1_mux>; clocks = <&apb1_mux>;
clock-output-names = "apb1";
}; };
apb1_gates: apb1_gates@01c2006c { apb1_gates: clk@01c2006c {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun5i-a10s-apb1-gates-clk"; compatible = "allwinner,sun5i-a10s-apb1-gates-clk";
reg = <0x01c2006c 0x4>; reg = <0x01c2006c 0x4>;
...@@ -176,7 +190,7 @@ apb1_gates: apb1_gates@01c2006c { ...@@ -176,7 +190,7 @@ apb1_gates: apb1_gates@01c2006c {
nand_clk: clk@01c20080 { nand_clk: clk@01c20080 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c20080 0x4>; reg = <0x01c20080 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "nand"; clock-output-names = "nand";
...@@ -184,7 +198,7 @@ nand_clk: clk@01c20080 { ...@@ -184,7 +198,7 @@ nand_clk: clk@01c20080 {
ms_clk: clk@01c20084 { ms_clk: clk@01c20084 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c20084 0x4>; reg = <0x01c20084 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "ms"; clock-output-names = "ms";
...@@ -192,7 +206,7 @@ ms_clk: clk@01c20084 { ...@@ -192,7 +206,7 @@ ms_clk: clk@01c20084 {
mmc0_clk: clk@01c20088 { mmc0_clk: clk@01c20088 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c20088 0x4>; reg = <0x01c20088 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "mmc0"; clock-output-names = "mmc0";
...@@ -200,7 +214,7 @@ mmc0_clk: clk@01c20088 { ...@@ -200,7 +214,7 @@ mmc0_clk: clk@01c20088 {
mmc1_clk: clk@01c2008c { mmc1_clk: clk@01c2008c {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c2008c 0x4>; reg = <0x01c2008c 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "mmc1"; clock-output-names = "mmc1";
...@@ -208,7 +222,7 @@ mmc1_clk: clk@01c2008c { ...@@ -208,7 +222,7 @@ mmc1_clk: clk@01c2008c {
mmc2_clk: clk@01c20090 { mmc2_clk: clk@01c20090 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c20090 0x4>; reg = <0x01c20090 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "mmc2"; clock-output-names = "mmc2";
...@@ -216,7 +230,7 @@ mmc2_clk: clk@01c20090 { ...@@ -216,7 +230,7 @@ mmc2_clk: clk@01c20090 {
ts_clk: clk@01c20098 { ts_clk: clk@01c20098 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c20098 0x4>; reg = <0x01c20098 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "ts"; clock-output-names = "ts";
...@@ -224,7 +238,7 @@ ts_clk: clk@01c20098 { ...@@ -224,7 +238,7 @@ ts_clk: clk@01c20098 {
ss_clk: clk@01c2009c { ss_clk: clk@01c2009c {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c2009c 0x4>; reg = <0x01c2009c 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "ss"; clock-output-names = "ss";
...@@ -232,7 +246,7 @@ ss_clk: clk@01c2009c { ...@@ -232,7 +246,7 @@ ss_clk: clk@01c2009c {
spi0_clk: clk@01c200a0 { spi0_clk: clk@01c200a0 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c200a0 0x4>; reg = <0x01c200a0 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "spi0"; clock-output-names = "spi0";
...@@ -240,7 +254,7 @@ spi0_clk: clk@01c200a0 { ...@@ -240,7 +254,7 @@ spi0_clk: clk@01c200a0 {
spi1_clk: clk@01c200a4 { spi1_clk: clk@01c200a4 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c200a4 0x4>; reg = <0x01c200a4 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "spi1"; clock-output-names = "spi1";
...@@ -248,7 +262,7 @@ spi1_clk: clk@01c200a4 { ...@@ -248,7 +262,7 @@ spi1_clk: clk@01c200a4 {
spi2_clk: clk@01c200a8 { spi2_clk: clk@01c200a8 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c200a8 0x4>; reg = <0x01c200a8 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "spi2"; clock-output-names = "spi2";
...@@ -256,15 +270,24 @@ spi2_clk: clk@01c200a8 { ...@@ -256,15 +270,24 @@ spi2_clk: clk@01c200a8 {
ir0_clk: clk@01c200b0 { ir0_clk: clk@01c200b0 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c200b0 0x4>; reg = <0x01c200b0 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "ir0"; clock-output-names = "ir0";
}; };
usb_clk: clk@01c200cc {
#clock-cells = <1>;
#reset-cells = <1>;
compatible = "allwinner,sun5i-a13-usb-clk";
reg = <0x01c200cc 0x4>;
clocks = <&pll6 1>;
clock-output-names = "usb_ohci0", "usb_phy";
};
mbus_clk: clk@01c2015c { mbus_clk: clk@01c2015c {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c2015c 0x4>; reg = <0x01c2015c 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "mbus"; clock-output-names = "mbus";
...@@ -277,6 +300,28 @@ soc@01c00000 { ...@@ -277,6 +300,28 @@ soc@01c00000 {
#size-cells = <1>; #size-cells = <1>;
ranges; ranges;
spi0: spi@01c05000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x01c05000 0x1000>;
interrupts = <10>;
clocks = <&ahb_gates 20>, <&spi0_clk>;
clock-names = "ahb", "mod";
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
spi1: spi@01c06000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x01c06000 0x1000>;
interrupts = <11>;
clocks = <&ahb_gates 21>, <&spi1_clk>;
clock-names = "ahb", "mod";
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
emac: ethernet@01c0b000 { emac: ethernet@01c0b000 {
compatible = "allwinner,sun4i-a10-emac"; compatible = "allwinner,sun4i-a10-emac";
reg = <0x01c0b000 0x1000>; reg = <0x01c0b000 0x1000>;
...@@ -293,6 +338,17 @@ mdio@01c0b080 { ...@@ -293,6 +338,17 @@ mdio@01c0b080 {
#size-cells = <0>; #size-cells = <0>;
}; };
spi2: spi@01c17000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x01c17000 0x1000>;
interrupts = <12>;
clocks = <&ahb_gates 22>, <&spi2_clk>;
clock-names = "ahb", "mod";
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
intc: interrupt-controller@01c20400 { intc: interrupt-controller@01c20400 {
compatible = "allwinner,sun4i-ic"; compatible = "allwinner,sun4i-ic";
reg = <0x01c20400 0x400>; reg = <0x01c20400 0x400>;
......
...@@ -16,6 +16,11 @@ ...@@ -16,6 +16,11 @@
/ { / {
interrupt-parent = <&intc>; interrupt-parent = <&intc>;
aliases {
serial0 = &uart1;
serial1 = &uart3;
};
cpus { cpus {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -47,44 +52,48 @@ dummy: dummy { ...@@ -47,44 +52,48 @@ dummy: dummy {
clock-frequency = <0>; clock-frequency = <0>;
}; };
osc24M: osc24M@01c20050 { osc24M: clk@01c20050 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-osc-clk"; compatible = "allwinner,sun4i-a10-osc-clk";
reg = <0x01c20050 0x4>; reg = <0x01c20050 0x4>;
clock-frequency = <24000000>; clock-frequency = <24000000>;
clock-output-names = "osc24M";
}; };
osc32k: osc32k { osc32k: clk@0 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "fixed-clock"; compatible = "fixed-clock";
clock-frequency = <32768>; clock-frequency = <32768>;
clock-output-names = "osc32k";
}; };
pll1: pll1@01c20000 { pll1: clk@01c20000 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-pll1-clk"; compatible = "allwinner,sun4i-a10-pll1-clk";
reg = <0x01c20000 0x4>; reg = <0x01c20000 0x4>;
clocks = <&osc24M>; clocks = <&osc24M>;
clock-output-names = "pll1";
}; };
pll4: pll4@01c20018 { pll4: clk@01c20018 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-pll1-clk"; compatible = "allwinner,sun4i-a10-pll1-clk";
reg = <0x01c20018 0x4>; reg = <0x01c20018 0x4>;
clocks = <&osc24M>; clocks = <&osc24M>;
clock-output-names = "pll4";
}; };
pll5: pll5@01c20020 { pll5: clk@01c20020 {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun4i-pll5-clk"; compatible = "allwinner,sun4i-a10-pll5-clk";
reg = <0x01c20020 0x4>; reg = <0x01c20020 0x4>;
clocks = <&osc24M>; clocks = <&osc24M>;
clock-output-names = "pll5_ddr", "pll5_other"; clock-output-names = "pll5_ddr", "pll5_other";
}; };
pll6: pll6@01c20028 { pll6: clk@01c20028 {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun4i-pll6-clk"; compatible = "allwinner,sun4i-a10-pll6-clk";
reg = <0x01c20028 0x4>; reg = <0x01c20028 0x4>;
clocks = <&osc24M>; clocks = <&osc24M>;
clock-output-names = "pll6_sata", "pll6_other", "pll6"; clock-output-names = "pll6_sata", "pll6_other", "pll6";
...@@ -93,21 +102,23 @@ pll6: pll6@01c20028 { ...@@ -93,21 +102,23 @@ pll6: pll6@01c20028 {
/* dummy is 200M */ /* dummy is 200M */
cpu: cpu@01c20054 { cpu: cpu@01c20054 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-cpu-clk"; compatible = "allwinner,sun4i-a10-cpu-clk";
reg = <0x01c20054 0x4>; reg = <0x01c20054 0x4>;
clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>; clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
clock-output-names = "cpu";
}; };
axi: axi@01c20054 { axi: axi@01c20054 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-axi-clk"; compatible = "allwinner,sun4i-a10-axi-clk";
reg = <0x01c20054 0x4>; reg = <0x01c20054 0x4>;
clocks = <&cpu>; clocks = <&cpu>;
clock-output-names = "axi";
}; };
axi_gates: axi_gates@01c2005c { axi_gates: clk@01c2005c {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun4i-axi-gates-clk"; compatible = "allwinner,sun4i-a10-axi-gates-clk";
reg = <0x01c2005c 0x4>; reg = <0x01c2005c 0x4>;
clocks = <&axi>; clocks = <&axi>;
clock-output-names = "axi_dram"; clock-output-names = "axi_dram";
...@@ -115,12 +126,13 @@ axi_gates: axi_gates@01c2005c { ...@@ -115,12 +126,13 @@ axi_gates: axi_gates@01c2005c {
ahb: ahb@01c20054 { ahb: ahb@01c20054 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-ahb-clk"; compatible = "allwinner,sun4i-a10-ahb-clk";
reg = <0x01c20054 0x4>; reg = <0x01c20054 0x4>;
clocks = <&axi>; clocks = <&axi>;
clock-output-names = "ahb";
}; };
ahb_gates: ahb_gates@01c20060 { ahb_gates: clk@01c20060 {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun5i-a13-ahb-gates-clk"; compatible = "allwinner,sun5i-a13-ahb-gates-clk";
reg = <0x01c20060 0x8>; reg = <0x01c20060 0x8>;
...@@ -135,12 +147,13 @@ ahb_gates: ahb_gates@01c20060 { ...@@ -135,12 +147,13 @@ ahb_gates: ahb_gates@01c20060 {
apb0: apb0@01c20054 { apb0: apb0@01c20054 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-apb0-clk"; compatible = "allwinner,sun4i-a10-apb0-clk";
reg = <0x01c20054 0x4>; reg = <0x01c20054 0x4>;
clocks = <&ahb>; clocks = <&ahb>;
clock-output-names = "apb0";
}; };
apb0_gates: apb0_gates@01c20068 { apb0_gates: clk@01c20068 {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun5i-a13-apb0-gates-clk"; compatible = "allwinner,sun5i-a13-apb0-gates-clk";
reg = <0x01c20068 0x4>; reg = <0x01c20068 0x4>;
...@@ -150,19 +163,21 @@ apb0_gates: apb0_gates@01c20068 { ...@@ -150,19 +163,21 @@ apb0_gates: apb0_gates@01c20068 {
apb1_mux: apb1_mux@01c20058 { apb1_mux: apb1_mux@01c20058 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-apb1-mux-clk"; compatible = "allwinner,sun4i-a10-apb1-mux-clk";
reg = <0x01c20058 0x4>; reg = <0x01c20058 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&osc32k>; clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
clock-output-names = "apb1_mux";
}; };
apb1: apb1@01c20058 { apb1: apb1@01c20058 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-apb1-clk"; compatible = "allwinner,sun4i-a10-apb1-clk";
reg = <0x01c20058 0x4>; reg = <0x01c20058 0x4>;
clocks = <&apb1_mux>; clocks = <&apb1_mux>;
clock-output-names = "apb1";
}; };
apb1_gates: apb1_gates@01c2006c { apb1_gates: clk@01c2006c {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun5i-a13-apb1-gates-clk"; compatible = "allwinner,sun5i-a13-apb1-gates-clk";
reg = <0x01c2006c 0x4>; reg = <0x01c2006c 0x4>;
...@@ -173,7 +188,7 @@ apb1_gates: apb1_gates@01c2006c { ...@@ -173,7 +188,7 @@ apb1_gates: apb1_gates@01c2006c {
nand_clk: clk@01c20080 { nand_clk: clk@01c20080 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c20080 0x4>; reg = <0x01c20080 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "nand"; clock-output-names = "nand";
...@@ -181,7 +196,7 @@ nand_clk: clk@01c20080 { ...@@ -181,7 +196,7 @@ nand_clk: clk@01c20080 {
ms_clk: clk@01c20084 { ms_clk: clk@01c20084 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c20084 0x4>; reg = <0x01c20084 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "ms"; clock-output-names = "ms";
...@@ -189,7 +204,7 @@ ms_clk: clk@01c20084 { ...@@ -189,7 +204,7 @@ ms_clk: clk@01c20084 {
mmc0_clk: clk@01c20088 { mmc0_clk: clk@01c20088 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c20088 0x4>; reg = <0x01c20088 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "mmc0"; clock-output-names = "mmc0";
...@@ -197,7 +212,7 @@ mmc0_clk: clk@01c20088 { ...@@ -197,7 +212,7 @@ mmc0_clk: clk@01c20088 {
mmc1_clk: clk@01c2008c { mmc1_clk: clk@01c2008c {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c2008c 0x4>; reg = <0x01c2008c 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "mmc1"; clock-output-names = "mmc1";
...@@ -205,7 +220,7 @@ mmc1_clk: clk@01c2008c { ...@@ -205,7 +220,7 @@ mmc1_clk: clk@01c2008c {
mmc2_clk: clk@01c20090 { mmc2_clk: clk@01c20090 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c20090 0x4>; reg = <0x01c20090 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "mmc2"; clock-output-names = "mmc2";
...@@ -213,7 +228,7 @@ mmc2_clk: clk@01c20090 { ...@@ -213,7 +228,7 @@ mmc2_clk: clk@01c20090 {
ts_clk: clk@01c20098 { ts_clk: clk@01c20098 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c20098 0x4>; reg = <0x01c20098 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "ts"; clock-output-names = "ts";
...@@ -221,7 +236,7 @@ ts_clk: clk@01c20098 { ...@@ -221,7 +236,7 @@ ts_clk: clk@01c20098 {
ss_clk: clk@01c2009c { ss_clk: clk@01c2009c {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c2009c 0x4>; reg = <0x01c2009c 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "ss"; clock-output-names = "ss";
...@@ -229,7 +244,7 @@ ss_clk: clk@01c2009c { ...@@ -229,7 +244,7 @@ ss_clk: clk@01c2009c {
spi0_clk: clk@01c200a0 { spi0_clk: clk@01c200a0 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c200a0 0x4>; reg = <0x01c200a0 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "spi0"; clock-output-names = "spi0";
...@@ -237,7 +252,7 @@ spi0_clk: clk@01c200a0 { ...@@ -237,7 +252,7 @@ spi0_clk: clk@01c200a0 {
spi1_clk: clk@01c200a4 { spi1_clk: clk@01c200a4 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c200a4 0x4>; reg = <0x01c200a4 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "spi1"; clock-output-names = "spi1";
...@@ -245,7 +260,7 @@ spi1_clk: clk@01c200a4 { ...@@ -245,7 +260,7 @@ spi1_clk: clk@01c200a4 {
spi2_clk: clk@01c200a8 { spi2_clk: clk@01c200a8 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c200a8 0x4>; reg = <0x01c200a8 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "spi2"; clock-output-names = "spi2";
...@@ -253,15 +268,24 @@ spi2_clk: clk@01c200a8 { ...@@ -253,15 +268,24 @@ spi2_clk: clk@01c200a8 {
ir0_clk: clk@01c200b0 { ir0_clk: clk@01c200b0 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c200b0 0x4>; reg = <0x01c200b0 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "ir0"; clock-output-names = "ir0";
}; };
usb_clk: clk@01c200cc {
#clock-cells = <1>;
#reset-cells = <1>;
compatible = "allwinner,sun5i-a13-usb-clk";
reg = <0x01c200cc 0x4>;
clocks = <&pll6 1>;
clock-output-names = "usb_ohci0", "usb_phy";
};
mbus_clk: clk@01c2015c { mbus_clk: clk@01c2015c {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-mod0-clk"; compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c2015c 0x4>; reg = <0x01c2015c 0x4>;
clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
clock-output-names = "mbus"; clock-output-names = "mbus";
...@@ -274,6 +298,39 @@ soc@01c00000 { ...@@ -274,6 +298,39 @@ soc@01c00000 {
#size-cells = <1>; #size-cells = <1>;
ranges; ranges;
spi0: spi@01c05000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x01c05000 0x1000>;
interrupts = <10>;
clocks = <&ahb_gates 20>, <&spi0_clk>;
clock-names = "ahb", "mod";
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
spi1: spi@01c06000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x01c06000 0x1000>;
interrupts = <11>;
clocks = <&ahb_gates 21>, <&spi1_clk>;
clock-names = "ahb", "mod";
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
spi2: spi@01c17000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x01c17000 0x1000>;
interrupts = <12>;
clocks = <&ahb_gates 22>, <&spi2_clk>;
clock-names = "ahb", "mod";
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
intc: interrupt-controller@01c20400 { intc: interrupt-controller@01c20400 {
compatible = "allwinner,sun4i-ic"; compatible = "allwinner,sun4i-ic";
reg = <0x01c20400 0x400>; reg = <0x01c20400 0x400>;
......
...@@ -16,6 +16,16 @@ ...@@ -16,6 +16,16 @@
/ { / {
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
aliases {
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
serial3 = &uart3;
serial4 = &uart4;
serial5 = &uart5;
};
cpus { cpus {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -60,34 +70,32 @@ osc24M: osc24M { ...@@ -60,34 +70,32 @@ osc24M: osc24M {
clock-frequency = <24000000>; clock-frequency = <24000000>;
}; };
osc32k: osc32k { osc32k: clk@0 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "fixed-clock"; compatible = "fixed-clock";
clock-frequency = <32768>; clock-frequency = <32768>;
clock-output-names = "osc32k";
}; };
pll1: pll1@01c20000 { pll1: clk@01c20000 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun6i-a31-pll1-clk"; compatible = "allwinner,sun6i-a31-pll1-clk";
reg = <0x01c20000 0x4>; reg = <0x01c20000 0x4>;
clocks = <&osc24M>; clocks = <&osc24M>;
clock-output-names = "pll1";
}; };
/* pll6: clk@01c20028 {
* This is a dummy clock, to be used as placeholder on
* other mux clocks when a specific parent clock is not
* yet implemented. It should be dropped when the driver
* is complete.
*/
pll6: pll6 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "fixed-clock"; compatible = "allwinner,sun6i-a31-pll6-clk";
clock-frequency = <0>; reg = <0x01c20028 0x4>;
clocks = <&osc24M>;
clock-output-names = "pll6";
}; };
cpu: cpu@01c20050 { cpu: cpu@01c20050 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-cpu-clk"; compatible = "allwinner,sun4i-a10-cpu-clk";
reg = <0x01c20050 0x4>; reg = <0x01c20050 0x4>;
/* /*
...@@ -97,13 +105,15 @@ cpu: cpu@01c20050 { ...@@ -97,13 +105,15 @@ cpu: cpu@01c20050 {
* Allwinner. * Allwinner.
*/ */
clocks = <&osc32k>, <&osc24M>, <&pll1>, <&pll1>; clocks = <&osc32k>, <&osc24M>, <&pll1>, <&pll1>;
clock-output-names = "cpu";
}; };
axi: axi@01c20050 { axi: axi@01c20050 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-axi-clk"; compatible = "allwinner,sun4i-a10-axi-clk";
reg = <0x01c20050 0x4>; reg = <0x01c20050 0x4>;
clocks = <&cpu>; clocks = <&cpu>;
clock-output-names = "axi";
}; };
ahb1_mux: ahb1_mux@01c20054 { ahb1_mux: ahb1_mux@01c20054 {
...@@ -111,16 +121,18 @@ ahb1_mux: ahb1_mux@01c20054 { ...@@ -111,16 +121,18 @@ ahb1_mux: ahb1_mux@01c20054 {
compatible = "allwinner,sun6i-a31-ahb1-mux-clk"; compatible = "allwinner,sun6i-a31-ahb1-mux-clk";
reg = <0x01c20054 0x4>; reg = <0x01c20054 0x4>;
clocks = <&osc32k>, <&osc24M>, <&axi>, <&pll6>; clocks = <&osc32k>, <&osc24M>, <&axi>, <&pll6>;
clock-output-names = "ahb1_mux";
}; };
ahb1: ahb1@01c20054 { ahb1: ahb1@01c20054 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-ahb-clk"; compatible = "allwinner,sun4i-a10-ahb-clk";
reg = <0x01c20054 0x4>; reg = <0x01c20054 0x4>;
clocks = <&ahb1_mux>; clocks = <&ahb1_mux>;
clock-output-names = "ahb1";
}; };
ahb1_gates: ahb1_gates@01c20060 { ahb1_gates: clk@01c20060 {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun6i-a31-ahb1-gates-clk"; compatible = "allwinner,sun6i-a31-ahb1-gates-clk";
reg = <0x01c20060 0x8>; reg = <0x01c20060 0x8>;
...@@ -143,12 +155,13 @@ ahb1_gates: ahb1_gates@01c20060 { ...@@ -143,12 +155,13 @@ ahb1_gates: ahb1_gates@01c20060 {
apb1: apb1@01c20054 { apb1: apb1@01c20054 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-apb0-clk"; compatible = "allwinner,sun4i-a10-apb0-clk";
reg = <0x01c20054 0x4>; reg = <0x01c20054 0x4>;
clocks = <&ahb1>; clocks = <&ahb1>;
clock-output-names = "apb1";
}; };
apb1_gates: apb1_gates@01c20060 { apb1_gates: clk@01c20068 {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun6i-a31-apb1-gates-clk"; compatible = "allwinner,sun6i-a31-apb1-gates-clk";
reg = <0x01c20068 0x4>; reg = <0x01c20068 0x4>;
...@@ -160,9 +173,10 @@ apb1_gates: apb1_gates@01c20060 { ...@@ -160,9 +173,10 @@ apb1_gates: apb1_gates@01c20060 {
apb2_mux: apb2_mux@01c20058 { apb2_mux: apb2_mux@01c20058 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "allwinner,sun4i-apb1-mux-clk"; compatible = "allwinner,sun4i-a10-apb1-mux-clk";
reg = <0x01c20058 0x4>; reg = <0x01c20058 0x4>;
clocks = <&osc32k>, <&osc24M>, <&pll6>, <&pll6>; clocks = <&osc32k>, <&osc24M>, <&pll6>, <&pll6>;
clock-output-names = "apb2_mux";
}; };
apb2: apb2@01c20058 { apb2: apb2@01c20058 {
...@@ -170,9 +184,10 @@ apb2: apb2@01c20058 { ...@@ -170,9 +184,10 @@ apb2: apb2@01c20058 {
compatible = "allwinner,sun6i-a31-apb2-div-clk"; compatible = "allwinner,sun6i-a31-apb2-div-clk";
reg = <0x01c20058 0x4>; reg = <0x01c20058 0x4>;
clocks = <&apb2_mux>; clocks = <&apb2_mux>;
clock-output-names = "apb2";
}; };
apb2_gates: apb2_gates@01c2006c { apb2_gates: clk@01c2006c {
#clock-cells = <1>; #clock-cells = <1>;
compatible = "allwinner,sun6i-a31-apb2-gates-clk"; compatible = "allwinner,sun6i-a31-apb2-gates-clk";
reg = <0x01c2006c 0x4>; reg = <0x01c2006c 0x4>;
...@@ -182,6 +197,38 @@ apb2_gates: apb2_gates@01c2006c { ...@@ -182,6 +197,38 @@ apb2_gates: apb2_gates@01c2006c {
"apb2_uart1", "apb2_uart2", "apb2_uart3", "apb2_uart1", "apb2_uart2", "apb2_uart3",
"apb2_uart4", "apb2_uart5"; "apb2_uart4", "apb2_uart5";
}; };
spi0_clk: clk@01c200a0 {
#clock-cells = <0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c200a0 0x4>;
clocks = <&osc24M>, <&pll6>;
clock-output-names = "spi0";
};
spi1_clk: clk@01c200a4 {
#clock-cells = <0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c200a4 0x4>;
clocks = <&osc24M>, <&pll6>;
clock-output-names = "spi1";
};
spi2_clk: clk@01c200a8 {
#clock-cells = <0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c200a8 0x4>;
clocks = <&osc24M>, <&pll6>;
clock-output-names = "spi2";
};
spi3_clk: clk@01c200ac {
#clock-cells = <0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x01c200ac 0x4>;
clocks = <&osc24M>, <&pll6>;
clock-output-names = "spi3";
};
}; };
soc@01c00000 { soc@01c00000 {
...@@ -312,6 +359,46 @@ uart5: serial@01c29400 { ...@@ -312,6 +359,46 @@ uart5: serial@01c29400 {
status = "disabled"; status = "disabled";
}; };
spi0: spi@01c68000 {
compatible = "allwinner,sun6i-a31-spi";
reg = <0x01c68000 0x1000>;
interrupts = <0 65 4>;
clocks = <&ahb1_gates 20>, <&spi0_clk>;
clock-names = "ahb", "mod";
resets = <&ahb1_rst 20>;
status = "disabled";
};
spi1: spi@01c69000 {
compatible = "allwinner,sun6i-a31-spi";
reg = <0x01c69000 0x1000>;
interrupts = <0 66 4>;
clocks = <&ahb1_gates 21>, <&spi1_clk>;
clock-names = "ahb", "mod";
resets = <&ahb1_rst 21>;
status = "disabled";
};
spi2: spi@01c6a000 {
compatible = "allwinner,sun6i-a31-spi";
reg = <0x01c6a000 0x1000>;
interrupts = <0 67 4>;
clocks = <&ahb1_gates 22>, <&spi2_clk>;
clock-names = "ahb", "mod";
resets = <&ahb1_rst 22>;
status = "disabled";
};
spi3: spi@01c6b000 {
compatible = "allwinner,sun6i-a31-spi";
reg = <0x01c6b000 0x1000>;
interrupts = <0 68 4>;
clocks = <&ahb1_gates 23>, <&spi3_clk>;
clock-names = "ahb", "mod";
resets = <&ahb1_rst 23>;
status = "disabled";
};
gic: interrupt-controller@01c81000 { gic: interrupt-controller@01c81000 {
compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
reg = <0x01c81000 0x1000>, reg = <0x01c81000 0x1000>,
......
...@@ -19,21 +19,6 @@ / { ...@@ -19,21 +19,6 @@ / {
compatible = "cubietech,cubieboard2", "allwinner,sun7i-a20"; compatible = "cubietech,cubieboard2", "allwinner,sun7i-a20";
soc@01c00000 { soc@01c00000 {
emac: ethernet@01c0b000 {
pinctrl-names = "default";
pinctrl-0 = <&emac_pins_a>;
phy = <&phy1>;
status = "okay";
};
mdio@01c0b080 {
status = "okay";
phy1: ethernet-phy@1 {
reg = <1>;
};
};
pinctrl@01c20800 { pinctrl@01c20800 {
led_pins_cubieboard2: led_pins@0 { led_pins_cubieboard2: led_pins@0 {
allwinner,pins = "PH20", "PH21"; allwinner,pins = "PH20", "PH21";
...@@ -60,6 +45,18 @@ i2c1: i2c@01c2b000 { ...@@ -60,6 +45,18 @@ i2c1: i2c@01c2b000 {
pinctrl-0 = <&i2c1_pins_a>; pinctrl-0 = <&i2c1_pins_a>;
status = "okay"; status = "okay";
}; };
gmac: ethernet@01c50000 {
pinctrl-names = "default";
pinctrl-0 = <&gmac_pins_mii_a>;
phy = <&phy1>;
phy-mode = "mii";
status = "okay";
phy1: ethernet-phy@1 {
reg = <1>;
};
};
}; };
leds { leds {
......
...@@ -51,6 +51,18 @@ i2c2: i2c@01c2b400 { ...@@ -51,6 +51,18 @@ i2c2: i2c@01c2b400 {
pinctrl-0 = <&i2c2_pins_a>; pinctrl-0 = <&i2c2_pins_a>;
status = "okay"; status = "okay";
}; };
gmac: ethernet@01c50000 {
pinctrl-names = "default";
pinctrl-0 = <&gmac_pins_rgmii_a>;
phy = <&phy1>;
phy-mode = "rgmii";
status = "okay";
phy1: ethernet-phy@1 {
reg = <1>;
};
};
}; };
leds { leds {
......
...@@ -18,20 +18,22 @@ / { ...@@ -18,20 +18,22 @@ / {
model = "Olimex A20-Olinuxino Micro"; model = "Olimex A20-Olinuxino Micro";
compatible = "olimex,a20-olinuxino-micro", "allwinner,sun7i-a20"; compatible = "olimex,a20-olinuxino-micro", "allwinner,sun7i-a20";
aliases {
spi0 = &spi1;
spi1 = &spi2;
};
soc@01c00000 { soc@01c00000 {
emac: ethernet@01c0b000 { spi1: spi@01c06000 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&emac_pins_a>; pinctrl-0 = <&spi1_pins_a>;
phy = <&phy1>;
status = "okay"; status = "okay";
}; };
mdio@01c0b080 { spi2: spi@01c17000 {
pinctrl-names = "default";
pinctrl-0 = <&spi2_pins_a>;
status = "okay"; status = "okay";
phy1: ethernet-phy@1 {
reg = <1>;
};
}; };
pinctrl@01c20800 { pinctrl@01c20800 {
...@@ -78,6 +80,18 @@ i2c2: i2c@01c2b400 { ...@@ -78,6 +80,18 @@ i2c2: i2c@01c2b400 {
pinctrl-0 = <&i2c2_pins_a>; pinctrl-0 = <&i2c2_pins_a>;
status = "okay"; status = "okay";
}; };
gmac: ethernet@01c50000 {
pinctrl-names = "default";
pinctrl-0 = <&gmac_pins_mii_a>;
phy = <&phy1>;
phy-mode = "mii";
status = "okay";
phy1: ethernet-phy@1 {
reg = <1>;
};
};
}; };
leds { leds {
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment