ipq806x: ap148: reorganize dts
[openwrt/openwrt.git] / target / linux / ipq806x / files-4.19 / arch / arm / boot / dts / qcom-ipq8064-ap148.dts
1 #include "qcom-ipq8064-v1.0.dtsi"
2
3 / {
4 model = "Qualcomm Technologies, Inc. IPQ8064/AP-148";
5 compatible = "qcom,ipq8064-ap148", "qcom,ipq8064";
6
7 memory@0 {
8 reg = <0x42000000 0x1e000000>;
9 device_type = "memory";
10 };
11
12 reserved-memory {
13 #address-cells = <1>;
14 #size-cells = <1>;
15 ranges;
16 rsvd@41200000 {
17 reg = <0x41200000 0x300000>;
18 no-map;
19 };
20 };
21
22 aliases {
23 serial0 = &gsbi4_serial;
24 mdio-gpio0 = &mdio0;
25 };
26
27 chosen {
28 stdout-path = "serial0:115200n8";
29 };
30
31 soc {
32 mdio0: mdio {
33 compatible = "virtual,mdio-gpio";
34 #address-cells = <1>;
35 #size-cells = <0>;
36 gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>,
37 <&qcom_pinmux 0 GPIO_ACTIVE_HIGH>;
38 pinctrl-0 = <&mdio0_pins>;
39 pinctrl-names = "default";
40
41 phy0: ethernet-phy@0 {
42 reg = <0>;
43 qca,ar8327-initvals = <
44 0x00004 0x7600000 /* PAD0_MODE */
45 0x00008 0x1000000 /* PAD5_MODE */
46 0x0000c 0x80 /* PAD6_MODE */
47 0x000e4 0x6a545 /* MAC_POWER_SEL */
48 0x000e0 0xc74164de /* SGMII_CTRL */
49 0x0007c 0x4e /* PORT0_STATUS */
50 0x00094 0x4e /* PORT6_STATUS */
51 >;
52 };
53
54 phy4: ethernet-phy@4 {
55 reg = <4>;
56 };
57 };
58 };
59 };
60
61 &qcom_pinmux {
62 i2c4_pins: i2c4_pinmux {
63 pins = "gpio12", "gpio13";
64 function = "gsbi4";
65 bias-disable;
66 };
67
68 nand_pins: nand_pins {
69 mux {
70 pins = "gpio34", "gpio35", "gpio36",
71 "gpio37", "gpio38", "gpio39",
72 "gpio40", "gpio41", "gpio42",
73 "gpio43", "gpio44", "gpio45",
74 "gpio46", "gpio47";
75 function = "nand";
76 drive-strength = <10>;
77 bias-disable;
78 };
79 pullups {
80 pins = "gpio39";
81 bias-pull-up;
82 };
83 hold {
84 pins = "gpio40", "gpio41", "gpio42",
85 "gpio43", "gpio44", "gpio45",
86 "gpio46", "gpio47";
87 bias-bus-hold;
88 };
89 };
90
91 mdio0_pins: mdio0_pins {
92 mux {
93 pins = "gpio0", "gpio1";
94 function = "gpio";
95 drive-strength = <8>;
96 bias-disable;
97 };
98 };
99
100 rgmii2_pins: rgmii2_pins {
101 mux {
102 pins = "gpio27", "gpio28", "gpio29", "gpio30", "gpio31", "gpio32",
103 "gpio51", "gpio52", "gpio59", "gpio60", "gpio61", "gpio62" ;
104 function = "rgmii2";
105 drive-strength = <8>;
106 bias-disable;
107 };
108 };
109 };
110
111 &adm_dma {
112 status = "okay";
113 };
114
115 &gsbi4 {
116 qcom,mode = <GSBI_PROT_I2C_UART>;
117 status = "okay";
118
119 serial@16340000 {
120 status = "okay";
121 };
122
123 /*
124 * The i2c device on gsbi4 should not be enabled.
125 * On ipq806x designs gsbi4 i2c is meant for exclusive
126 * RPM usage. Turning this on in kernel manifests as
127 * i2c failure for the RPM.
128 */
129 };
130
131 &gsbi5 {
132 qcom,mode = <GSBI_PROT_SPI>;
133 status = "okay";
134
135 spi4: spi@1a280000 {
136 status = "okay";
137 spi-max-frequency = <50000000>;
138
139 pinctrl-0 = <&spi_pins>;
140 pinctrl-names = "default";
141
142 cs-gpios = <&qcom_pinmux 20 0>;
143
144 flash: m25p80@0 {
145 compatible = "s25fl256s1";
146 #address-cells = <1>;
147 #size-cells = <1>;
148 spi-max-frequency = <50000000>;
149 reg = <0>;
150
151 partitions {
152 compatible = "qcom,smem";
153 };
154 };
155 };
156 };
157
158 &usb3_0 {
159 status = "okay";
160 };
161
162 &usb3_1 {
163 status = "okay";
164 };
165
166 &pcie0 {
167 status = "okay";
168 };
169
170 &pcie1 {
171 status = "okay";
172 force_gen1 = <1>;
173 };
174
175 &nand {
176 status = "okay";
177
178 pinctrl-0 = <&nand_pins>;
179 pinctrl-names = "default";
180
181 cs0 {
182 reg = <0>;
183 compatible = "qcom,nandcs";
184
185 nand-ecc-strength = <4>;
186 nand-bus-width = <8>;
187 nand-ecc-step-size = <512>;
188
189 partitions {
190 compatible = "qcom,smem";
191 };
192 };
193 };
194
195 &gmac1 {
196 status = "okay";
197 phy-mode = "rgmii";
198 qcom,id = <1>;
199
200 pinctrl-0 = <&rgmii2_pins>;
201 pinctrl-names = "default";
202
203 fixed-link {
204 speed = <1000>;
205 full-duplex;
206 };
207 };
208
209 &gmac2 {
210 status = "okay";
211 phy-mode = "sgmii";
212 qcom,id = <2>;
213
214 fixed-link {
215 speed = <1000>;
216 full-duplex;
217 };
218 };
219
220 &sata_phy {
221 status = "okay";
222 };
223
224 &sata {
225 status = "okay";
226 };