Linux Audio

Check our new training course

Loading...
v4.17
  1// SPDX-License-Identifier: GPL-2.0
  2/include/ "skeleton.dtsi"
  3#include <dt-bindings/input/input.h>
  4#include <dt-bindings/gpio/gpio.h>
  5
  6#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
  7
  8/ {
  9	compatible = "marvell,kirkwood";
 10	interrupt-parent = <&intc>;
 11
 12	cpus {
 13		#address-cells = <1>;
 14		#size-cells = <0>;
 15
 16		cpu@0 {
 17			device_type = "cpu";
 18			compatible = "marvell,feroceon";
 19			reg = <0>;
 20			clocks = <&core_clk 1>, <&core_clk 3>, <&gate_clk 11>;
 21			clock-names = "cpu_clk", "ddrclk", "powersave";
 22		};
 23	};
 24
 25	aliases {
 26	       gpio0 = &gpio0;
 27	       gpio1 = &gpio1;
 28	       i2c0 = &i2c0;
 29	};
 30
 31	mbus@f1000000 {
 32		compatible = "marvell,kirkwood-mbus", "simple-bus";
 33		#address-cells = <2>;
 34		#size-cells = <1>;
 35		/* If a board file needs to change this ranges it must replace it completely */
 36		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000	/* internal-regs */
 37			  MBUS_ID(0x01, 0x2f) 0 0xf4000000 0x10000	/* nand flash */
 38			  MBUS_ID(0x03, 0x01) 0 0xf5000000 0x10000	/* crypto sram */
 39			  >;
 40		controller = <&mbusc>;
 41		pcie-mem-aperture = <0xe0000000 0x10000000>; /* 256 MiB memory space */
 42		pcie-io-aperture  = <0xf2000000 0x100000>;   /*   1 MiB    I/O space */
 43
 44		nand: nand@12f {
 
 
 
 
 
 
 
 
 
 
 45			#address-cells = <1>;
 46			#size-cells = <1>;
 47			cle = <0>;
 48			ale = <1>;
 49			bank-width = <1>;
 50			compatible = "marvell,orion-nand";
 51			reg = <MBUS_ID(0x01, 0x2f) 0 0x400>;
 52			chip-delay = <25>;
 53			/* set partition map and/or chip-delay in board dts */
 54			clocks = <&gate_clk 7>;
 55			pinctrl-0 = <&pmx_nand>;
 56			pinctrl-names = "default";
 57			status = "disabled";
 58		};
 59
 60		crypto_sram: sa-sram@301 {
 61			compatible = "mmio-sram";
 62			reg = <MBUS_ID(0x03, 0x01) 0x0 0x800>;
 63			clocks = <&gate_clk 17>;
 64			#address-cells = <1>;
 65			#size-cells = <1>;
 66		};
 67	};
 68
 69	ocp@f1000000 {
 70		compatible = "simple-bus";
 71		ranges = <0x00000000 0xf1000000 0x0100000>;
 72		#address-cells = <1>;
 73		#size-cells = <1>;
 74
 75		pinctrl: pin-controller@10000 {
 76			/* set compatible property in SoC file */
 77			reg = <0x10000 0x20>;
 78
 79			pmx_ge1: pmx-ge1 {
 80				marvell,pins = "mpp20", "mpp21", "mpp22", "mpp23",
 81					       "mpp24", "mpp25", "mpp26", "mpp27",
 82					       "mpp30", "mpp31", "mpp32", "mpp33";
 83				marvell,function = "ge1";
 84			};
 85
 86			pmx_nand: pmx-nand {
 87				marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3",
 88					       "mpp4", "mpp5", "mpp18", "mpp19";
 89				marvell,function = "nand";
 90			};
 91
 92			/*
 93			 * Default SPI0 pinctrl setting with CSn on mpp0,
 94			 * overwrite marvell,pins on board level if required.
 95			 */
 96			pmx_spi: pmx-spi {
 97				marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3";
 98				marvell,function = "spi";
 99			};
100
101			pmx_twsi0: pmx-twsi0 {
102				marvell,pins = "mpp8", "mpp9";
103				marvell,function = "twsi0";
104			};
105
106			/*
107			 * Default UART pinctrl setting without RTS/CTS,
108			 * overwrite marvell,pins on board level if required.
109			 */
110			pmx_uart0: pmx-uart0 {
111				marvell,pins = "mpp10", "mpp11";
112				marvell,function = "uart0";
113			};
114
115			pmx_uart1: pmx-uart1 {
116				marvell,pins = "mpp13", "mpp14";
117				marvell,function = "uart1";
118			};
119		};
120
121		core_clk: core-clocks@10030 {
122			compatible = "marvell,kirkwood-core-clock";
123			reg = <0x10030 0x4>;
124			#clock-cells = <1>;
125		};
126
127		spi0: spi@10600 {
128			compatible = "marvell,orion-spi";
129			#address-cells = <1>;
130			#size-cells = <0>;
131			cell-index = <0>;
132			interrupts = <23>;
133			reg = <0x10600 0x28>;
134			clocks = <&gate_clk 7>;
135			pinctrl-0 = <&pmx_spi>;
136			pinctrl-names = "default";
137			status = "disabled";
138		};
139
140		gpio0: gpio@10100 {
141			compatible = "marvell,orion-gpio";
142			#gpio-cells = <2>;
143			gpio-controller;
144			reg = <0x10100 0x40>;
145			ngpios = <32>;
146			interrupt-controller;
147			#interrupt-cells = <2>;
148			interrupts = <35>, <36>, <37>, <38>;
149			clocks = <&gate_clk 7>;
150		};
151
152		gpio1: gpio@10140 {
153			compatible = "marvell,orion-gpio";
154			#gpio-cells = <2>;
155			gpio-controller;
156			reg = <0x10140 0x40>;
157			ngpios = <18>;
158			interrupt-controller;
159			#interrupt-cells = <2>;
160			interrupts = <39>, <40>, <41>;
161			clocks = <&gate_clk 7>;
162		};
163
164		i2c0: i2c@11000 {
165			compatible = "marvell,mv64xxx-i2c";
166			reg = <0x11000 0x20>;
167			#address-cells = <1>;
168			#size-cells = <0>;
169			interrupts = <29>;
170			clock-frequency = <100000>;
171			clocks = <&gate_clk 7>;
172			pinctrl-0 = <&pmx_twsi0>;
173			pinctrl-names = "default";
174			status = "disabled";
175		};
176
177		uart0: serial@12000 {
178			compatible = "ns16550a";
179			reg = <0x12000 0x100>;
180			reg-shift = <2>;
181			interrupts = <33>;
182			clocks = <&gate_clk 7>;
183			pinctrl-0 = <&pmx_uart0>;
184			pinctrl-names = "default";
185			status = "disabled";
186		};
187
188		uart1: serial@12100 {
189			compatible = "ns16550a";
190			reg = <0x12100 0x100>;
191			reg-shift = <2>;
192			interrupts = <34>;
193			clocks = <&gate_clk 7>;
194			pinctrl-0 = <&pmx_uart1>;
195			pinctrl-names = "default";
196			status = "disabled";
197		};
198
199		mbusc: mbus-controller@20000 {
200			compatible = "marvell,mbus-controller";
201			reg = <0x20000 0x80>, <0x1500 0x20>;
202		};
203
204		sysc: system-controller@20000 {
205			compatible = "marvell,orion-system-controller";
206			reg = <0x20000 0x120>;
207		};
208
209		bridge_intc: bridge-interrupt-ctrl@20110 {
210			compatible = "marvell,orion-bridge-intc";
211			interrupt-controller;
212			#interrupt-cells = <1>;
213			reg = <0x20110 0x8>;
214			interrupts = <1>;
215			marvell,#interrupts = <6>;
216		};
217
218		gate_clk: clock-gating-control@2011c {
219			compatible = "marvell,kirkwood-gating-clock";
220			reg = <0x2011c 0x4>;
221			clocks = <&core_clk 0>;
222			#clock-cells = <1>;
223		};
224
225		l2: l2-cache@20128 {
226			compatible = "marvell,kirkwood-cache";
227			reg = <0x20128 0x4>;
228		};
229
230		intc: main-interrupt-ctrl@20200 {
231			compatible = "marvell,orion-intc";
232			interrupt-controller;
233			#interrupt-cells = <1>;
234			reg = <0x20200 0x10>, <0x20210 0x10>;
235		};
236
237		timer: timer@20300 {
238			compatible = "marvell,orion-timer";
239			reg = <0x20300 0x20>;
240			interrupt-parent = <&bridge_intc>;
241			interrupts = <1>, <2>;
242			clocks = <&core_clk 0>;
243		};
244
245		wdt: watchdog-timer@20300 {
246			compatible = "marvell,orion-wdt";
247			reg = <0x20300 0x28>, <0x20108 0x4>;
248			interrupt-parent = <&bridge_intc>;
249			interrupts = <3>;
250			clocks = <&gate_clk 7>;
251			status = "okay";
252		};
253
254		cesa: crypto@30000 {
255			compatible = "marvell,kirkwood-crypto";
256			reg = <0x30000 0x10000>;
257			reg-names = "regs";
258			interrupts = <22>;
259			clocks = <&gate_clk 17>;
260			marvell,crypto-srams = <&crypto_sram>;
261			marvell,crypto-sram-size = <0x800>;
262			status = "okay";
263		};
264
265		usb0: ehci@50000 {
266			compatible = "marvell,orion-ehci";
267			reg = <0x50000 0x1000>;
268			interrupts = <19>;
269			clocks = <&gate_clk 3>;
270			status = "okay";
271		};
272
273		dma0: xor@60800 {
274			compatible = "marvell,orion-xor";
275			reg = <0x60800 0x100
276			       0x60A00 0x100>;
277			status = "okay";
278			clocks = <&gate_clk 8>;
279
280			xor00 {
281			      interrupts = <5>;
282			      dmacap,memcpy;
283			      dmacap,xor;
284			};
285			xor01 {
286			      interrupts = <6>;
287			      dmacap,memcpy;
288			      dmacap,xor;
289			      dmacap,memset;
290			};
291		};
292
293		dma1: xor@60900 {
294			compatible = "marvell,orion-xor";
295			reg = <0x60900 0x100
296			       0x60B00 0x100>;
297			status = "okay";
298			clocks = <&gate_clk 16>;
299
300			xor00 {
301			      interrupts = <7>;
302			      dmacap,memcpy;
303			      dmacap,xor;
304			};
305			xor01 {
306			      interrupts = <8>;
307			      dmacap,memcpy;
308			      dmacap,xor;
309			      dmacap,memset;
310			};
311		};
312
313		eth0: ethernet-controller@72000 {
314			compatible = "marvell,kirkwood-eth";
315			#address-cells = <1>;
316			#size-cells = <0>;
317			reg = <0x72000 0x4000>;
318			clocks = <&gate_clk 0>;
319			marvell,tx-checksum-limit = <1600>;
320			status = "disabled";
321
322			eth0port: ethernet0-port@0 {
323				compatible = "marvell,kirkwood-eth-port";
324				reg = <0>;
325				interrupts = <11>;
326				/* overwrite MAC address in bootloader */
327				local-mac-address = [00 00 00 00 00 00];
328				/* set phy-handle property in board file */
329			};
330		};
331
332		mdio: mdio-bus@72004 {
333			compatible = "marvell,orion-mdio";
334			#address-cells = <1>;
335			#size-cells = <0>;
336			reg = <0x72004 0x84>;
337			interrupts = <46>;
338			clocks = <&gate_clk 0>;
339			status = "disabled";
340
341			/* add phy nodes in board file */
342		};
343
344		eth1: ethernet-controller@76000 {
345			compatible = "marvell,kirkwood-eth";
346			#address-cells = <1>;
347			#size-cells = <0>;
348			reg = <0x76000 0x4000>;
349			clocks = <&gate_clk 19>;
350			marvell,tx-checksum-limit = <1600>;
351			pinctrl-0 = <&pmx_ge1>;
352			pinctrl-names = "default";
353			status = "disabled";
354
355			eth1port: ethernet1-port@0 {
356				compatible = "marvell,kirkwood-eth-port";
357				reg = <0>;
358				interrupts = <15>;
359				/* overwrite MAC address in bootloader */
360				local-mac-address = [00 00 00 00 00 00];
361				/* set phy-handle property in board file */
362			};
363		};
364
365		sata_phy0: sata-phy@82000 {
366			compatible = "marvell,mvebu-sata-phy";
367			reg = <0x82000 0x0334>;
368			clocks = <&gate_clk 14>;
369			clock-names = "sata";
370			#phy-cells = <0>;
371			status = "ok";
372		};
373
374		sata_phy1: sata-phy@84000 {
375			compatible = "marvell,mvebu-sata-phy";
376			reg = <0x84000 0x0334>;
377			clocks = <&gate_clk 15>;
378			clock-names = "sata";
379			#phy-cells = <0>;
380			status = "ok";
381		};
382
383		audio0: audio-controller@a0000 {
384			compatible = "marvell,kirkwood-audio";
385			#sound-dai-cells = <0>;
386			reg = <0xa0000 0x2210>;
387			interrupts = <24>;
388			clocks = <&gate_clk 9>;
389			clock-names = "internal";
390			status = "disabled";
391		};
392	};
393};
v3.15
 
  1/include/ "skeleton.dtsi"
  2#include <dt-bindings/input/input.h>
  3#include <dt-bindings/gpio/gpio.h>
  4
  5#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
  6
  7/ {
  8	compatible = "marvell,kirkwood";
  9	interrupt-parent = <&intc>;
 10
 11	cpus {
 12		#address-cells = <1>;
 13		#size-cells = <0>;
 14
 15		cpu@0 {
 16			device_type = "cpu";
 17			compatible = "marvell,feroceon";
 18			reg = <0>;
 19			clocks = <&core_clk 1>, <&core_clk 3>, <&gate_clk 11>;
 20			clock-names = "cpu_clk", "ddrclk", "powersave";
 21		};
 22	};
 23
 24	aliases {
 25	       gpio0 = &gpio0;
 26	       gpio1 = &gpio1;
 27	       i2c0 = &i2c0;
 28	};
 29
 30	mbus {
 31		compatible = "marvell,kirkwood-mbus", "simple-bus";
 32		#address-cells = <2>;
 33		#size-cells = <1>;
 34		/* If a board file needs to change this ranges it must replace it completely */
 35		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000	/* internal-regs */
 36			  MBUS_ID(0x01, 0x2f) 0 0xf4000000 0x10000	/* nand flash */
 37			  MBUS_ID(0x03, 0x01) 0 0xf5000000 0x10000	/* crypto sram */
 38			  >;
 39		controller = <&mbusc>;
 40		pcie-mem-aperture = <0xe0000000 0x10000000>; /* 256 MiB memory space */
 41		pcie-io-aperture  = <0xf2000000 0x100000>;   /*   1 MiB    I/O space */
 42
 43		crypto@0301 {
 44			compatible = "marvell,orion-crypto";
 45			reg = <MBUS_ID(0xf0, 0x01) 0x30000 0x10000>,
 46			      <MBUS_ID(0x03, 0x01) 0 0x800>;
 47			reg-names = "regs", "sram";
 48			interrupts = <22>;
 49			clocks = <&gate_clk 17>;
 50			status = "okay";
 51		};
 52
 53		nand: nand@012f {
 54			#address-cells = <1>;
 55			#size-cells = <1>;
 56			cle = <0>;
 57			ale = <1>;
 58			bank-width = <1>;
 59			compatible = "marvell,orion-nand";
 60			reg = <MBUS_ID(0x01, 0x2f) 0 0x400>;
 61			chip-delay = <25>;
 62			/* set partition map and/or chip-delay in board dts */
 63			clocks = <&gate_clk 7>;
 
 
 64			status = "disabled";
 65		};
 
 
 
 
 
 
 
 
 66	};
 67
 68	ocp@f1000000 {
 69		compatible = "simple-bus";
 70		ranges = <0x00000000 0xf1000000 0x0100000>;
 71		#address-cells = <1>;
 72		#size-cells = <1>;
 73
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 74		core_clk: core-clocks@10030 {
 75			compatible = "marvell,kirkwood-core-clock";
 76			reg = <0x10030 0x4>;
 77			#clock-cells = <1>;
 78		};
 79
 80		spi@10600 {
 81			compatible = "marvell,orion-spi";
 82			#address-cells = <1>;
 83			#size-cells = <0>;
 84			cell-index = <0>;
 85			interrupts = <23>;
 86			reg = <0x10600 0x28>;
 87			clocks = <&gate_clk 7>;
 
 
 88			status = "disabled";
 89		};
 90
 91		gpio0: gpio@10100 {
 92			compatible = "marvell,orion-gpio";
 93			#gpio-cells = <2>;
 94			gpio-controller;
 95			reg = <0x10100 0x40>;
 96			ngpios = <32>;
 97			interrupt-controller;
 98			#interrupt-cells = <2>;
 99			interrupts = <35>, <36>, <37>, <38>;
100			clocks = <&gate_clk 7>;
101		};
102
103		gpio1: gpio@10140 {
104			compatible = "marvell,orion-gpio";
105			#gpio-cells = <2>;
106			gpio-controller;
107			reg = <0x10140 0x40>;
108			ngpios = <18>;
109			interrupt-controller;
110			#interrupt-cells = <2>;
111			interrupts = <39>, <40>, <41>;
112			clocks = <&gate_clk 7>;
113		};
114
115		i2c0: i2c@11000 {
116			compatible = "marvell,mv64xxx-i2c";
117			reg = <0x11000 0x20>;
118			#address-cells = <1>;
119			#size-cells = <0>;
120			interrupts = <29>;
121			clock-frequency = <100000>;
122			clocks = <&gate_clk 7>;
 
 
123			status = "disabled";
124		};
125
126		serial@12000 {
127			compatible = "ns16550a";
128			reg = <0x12000 0x100>;
129			reg-shift = <2>;
130			interrupts = <33>;
131			clocks = <&gate_clk 7>;
 
 
132			status = "disabled";
133		};
134
135		serial@12100 {
136			compatible = "ns16550a";
137			reg = <0x12100 0x100>;
138			reg-shift = <2>;
139			interrupts = <34>;
140			clocks = <&gate_clk 7>;
 
 
141			status = "disabled";
142		};
143
144		mbusc: mbus-controller@20000 {
145			compatible = "marvell,mbus-controller";
146			reg = <0x20000 0x80>, <0x1500 0x20>;
147		};
148
149		system-controller@20000 {
150			compatible = "marvell,orion-system-controller";
151			reg = <0x20000 0x120>;
152		};
153
154		bridge_intc: bridge-interrupt-ctrl@20110 {
155			compatible = "marvell,orion-bridge-intc";
156			interrupt-controller;
157			#interrupt-cells = <1>;
158			reg = <0x20110 0x8>;
159			interrupts = <1>;
160			marvell,#interrupts = <6>;
161		};
162
163		gate_clk: clock-gating-control@2011c {
164			compatible = "marvell,kirkwood-gating-clock";
165			reg = <0x2011c 0x4>;
166			clocks = <&core_clk 0>;
167			#clock-cells = <1>;
168		};
169
170		l2: l2-cache@20128 {
171			compatible = "marvell,kirkwood-cache";
172			reg = <0x20128 0x4>;
173		};
174
175		intc: main-interrupt-ctrl@20200 {
176			compatible = "marvell,orion-intc";
177			interrupt-controller;
178			#interrupt-cells = <1>;
179			reg = <0x20200 0x10>, <0x20210 0x10>;
180		};
181
182		timer: timer@20300 {
183			compatible = "marvell,orion-timer";
184			reg = <0x20300 0x20>;
185			interrupt-parent = <&bridge_intc>;
186			interrupts = <1>, <2>;
187			clocks = <&core_clk 0>;
188		};
189
190		wdt: watchdog-timer@20300 {
191			compatible = "marvell,orion-wdt";
192			reg = <0x20300 0x28>, <0x20108 0x4>;
193			interrupt-parent = <&bridge_intc>;
194			interrupts = <3>;
195			clocks = <&gate_clk 7>;
196			status = "okay";
197		};
198
199		ehci@50000 {
 
 
 
 
 
 
 
 
 
 
 
200			compatible = "marvell,orion-ehci";
201			reg = <0x50000 0x1000>;
202			interrupts = <19>;
203			clocks = <&gate_clk 3>;
204			status = "okay";
205		};
206
207		xor@60800 {
208			compatible = "marvell,orion-xor";
209			reg = <0x60800 0x100
210			       0x60A00 0x100>;
211			status = "okay";
212			clocks = <&gate_clk 8>;
213
214			xor00 {
215			      interrupts = <5>;
216			      dmacap,memcpy;
217			      dmacap,xor;
218			};
219			xor01 {
220			      interrupts = <6>;
221			      dmacap,memcpy;
222			      dmacap,xor;
223			      dmacap,memset;
224			};
225		};
226
227		xor@60900 {
228			compatible = "marvell,orion-xor";
229			reg = <0x60900 0x100
230			       0x60B00 0x100>;
231			status = "okay";
232			clocks = <&gate_clk 16>;
233
234			xor00 {
235			      interrupts = <7>;
236			      dmacap,memcpy;
237			      dmacap,xor;
238			};
239			xor01 {
240			      interrupts = <8>;
241			      dmacap,memcpy;
242			      dmacap,xor;
243			      dmacap,memset;
244			};
245		};
246
247		eth0: ethernet-controller@72000 {
248			compatible = "marvell,kirkwood-eth";
249			#address-cells = <1>;
250			#size-cells = <0>;
251			reg = <0x72000 0x4000>;
252			clocks = <&gate_clk 0>;
253			marvell,tx-checksum-limit = <1600>;
254			status = "disabled";
255
256			ethernet0-port@0 {
257				compatible = "marvell,kirkwood-eth-port";
258				reg = <0>;
259				interrupts = <11>;
260				/* overwrite MAC address in bootloader */
261				local-mac-address = [00 00 00 00 00 00];
262				/* set phy-handle property in board file */
263			};
264		};
265
266		mdio: mdio-bus@72004 {
267			compatible = "marvell,orion-mdio";
268			#address-cells = <1>;
269			#size-cells = <0>;
270			reg = <0x72004 0x84>;
271			interrupts = <46>;
272			clocks = <&gate_clk 0>;
273			status = "disabled";
274
275			/* add phy nodes in board file */
276		};
277
278		eth1: ethernet-controller@76000 {
279			compatible = "marvell,kirkwood-eth";
280			#address-cells = <1>;
281			#size-cells = <0>;
282			reg = <0x76000 0x4000>;
283			clocks = <&gate_clk 19>;
284			marvell,tx-checksum-limit = <1600>;
 
 
285			status = "disabled";
286
287			ethernet1-port@0 {
288				compatible = "marvell,kirkwood-eth-port";
289				reg = <0>;
290				interrupts = <15>;
291				/* overwrite MAC address in bootloader */
292				local-mac-address = [00 00 00 00 00 00];
293				/* set phy-handle property in board file */
294			};
295		};
296
297		sata_phy0: sata-phy@82000 {
298			compatible = "marvell,mvebu-sata-phy";
299			reg = <0x82000 0x0334>;
300			clocks = <&gate_clk 14>;
301			clock-names = "sata";
302			#phy-cells = <0>;
303			status = "ok";
304		};
305
306		sata_phy1: sata-phy@84000 {
307			compatible = "marvell,mvebu-sata-phy";
308			reg = <0x84000 0x0334>;
309			clocks = <&gate_clk 15>;
310			clock-names = "sata";
311			#phy-cells = <0>;
312			status = "ok";
313		};
314
315		audio0: audio-controller@a0000 {
316			compatible = "marvell,kirkwood-audio";
 
317			reg = <0xa0000 0x2210>;
318			interrupts = <24>;
319			clocks = <&gate_clk 9>;
320			clock-names = "internal";
321			status = "disabled";
322		};
323	};
324};