lantiq: add support for ZyXEL P2601HNFX
[openwrt/openwrt.git] / target / linux / lantiq / dts / P2601HNFX.dts
1 /dts-v1/;
2
3 /include/ "ar9.dtsi"
4
5 / {
6 model = "P2601HNFX - ZyXEL P-2601HN-Fx";
7
8 chosen {
9 bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
10 };
11
12 memory@0 {
13 reg = <0x0 0x4000000>;
14 };
15
16 fpi@10000000 {
17 #address-cells = <1>;
18 #size-cells = <1>;
19 localbus@0 {
20 #address-cells = <2>;
21 #size-cells = <1>;
22 ranges = <0 0 0x0 0x3ffffff
23 1 0 0x4000000 0x4000010>;
24 compatible = "lantiq,localbus", "simple-bus";
25
26 nor-boot@0 {
27 compatible = "lantiq,nor";
28 bank-width = <2>;
29 reg = <0 0x0 0x2000000>;
30 #address-cells = <1>;
31 #size-cells = <1>;
32
33 partition@0 {
34 label = "uboot";
35 reg = <0x00000 0x40000>;
36 read-only;
37 };
38
39 partition@40000 {
40 label = "uboot_env";
41 reg = <0x40000 0x20000>;
42 read-only;
43 };
44
45 partition@60000 {
46 label = "firmware";
47 reg = <0x60000 0xfa0000>;
48 };
49 };
50 };
51
52 gpio: pinmux@E100B10 {
53 compatible = "lantiq,pinctrl-xr9";
54 pinctrl-names = "default";
55 pinctrl-0 = <&state_default>;
56
57 #gpio-cells = <2>;
58 gpio-controller;
59 reg = <0xE100B10 0xA0>;
60
61 state_default: pinmux {
62 stp {
63 lantiq,groups = "stp";
64 lantiq,function = "stp";
65 };
66 exin {
67 lantiq,groups = "exin1";
68 lantiq,function = "exin";
69 };
70 pci {
71 lantiq,groups = "gnt1";
72 lantiq,function = "pci";
73 };
74 conf_out {
75 lantiq,pins = "io4", "io5", "io6";
76 lantiq,open-drain;
77 lantiq,pull = <0>;
78 };
79 mdio {
80 lantiq,groups = "mdio";
81 lantiq,function = "mdio";
82 };
83 };
84 };
85
86 etop@E180000 {
87 phy-mode = "rmii";
88 };
89
90 ifxhcd@E101000 {
91 status = "okay";
92 gpios = <&gpio 9 0>;
93 };
94
95 stp: stp@E100BB0 {
96 #gpio-cells = <2>;
97 compatible = "lantiq,gpio-stp-xway";
98 gpio-controller;
99 reg = <0xE100BB0 0x40>;
100
101 lantiq,shadow = <0xfff>;
102 lantiq,groups = <0x3>;
103 };
104
105 pci@E105400 {
106 lantiq,bus-clock = <33333333>;
107 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
108 interrupt-map = <0x7000 0 0 1 &icu0 29 1>;
109 gpios-reset = <&gpio 21 0>;
110 req-mask = <0x1>;
111 };
112 };
113
114 gpio-keys-polled {
115 compatible = "gpio-keys-polled";
116 #address-cells = <1>;
117 #size-cells = <0>;
118 poll-interval = <100>;
119
120 reset {
121 label = "reset";
122 gpios = <&gpio 53 1>;
123 linux,code = <0x198>;
124 };
125 wps {
126 label = "wps";
127 gpios = <&gpio 54 1>;
128 linux,code = <0x211>;
129 };
130 };
131
132 gpio-leds {
133 compatible = "gpio-leds";
134
135 power {
136 label = "power";
137 gpios = <&stp 11 1>;
138 default-state = "on";
139 };
140 power2 {
141 label = "power2";
142 gpios = <&gpio 29 1>;
143 };
144 online {
145 label = "online";
146 gpios = <&stp 13 1>;
147 };
148 online2 {
149 label = "online2";
150 gpios = <&stp 12 1>;
151 };
152 dsl {
153 label = "dsl";
154 gpios = <&stp 14 1>;
155 };
156 phone {
157 label = "phone";
158 gpios = <&stp 9 1>;
159 };
160 phone2 {
161 label = "phone2";
162 gpios = <&stp 8 1>;
163 };
164 wifi {
165 label = "wifi";
166 gpios = <&stp 15 1>;
167 };
168 wifi2 {
169 label = "wifi2";
170 gpios = <&stp 10 1>;
171 };
172 };
173
174 gpio_export {
175 compatible = "gpio-export";
176 #size-cells = <0>;
177
178 switch {
179 gpio-export,name = "switch";
180 gpio-export,output = <1>;
181 gpios = <&gpio 50 0>;
182 };
183 usb {
184 gpio-export,name = "wifi";
185 gpio-export,output = <1>;
186 gpios = <&gpio 9 0>;
187 };
188 };
189 };