Linux Audio

Check our new training course

Loading...
v6.2
  1// SPDX-License-Identifier: GPL-2.0+
  2//
  3// Copyright 2012 Freescale Semiconductor, Inc.
 
 
 
 
 
 
 
  4
  5#include "imx23-pinfunc.h"
  6
  7/ {
  8	#address-cells = <1>;
  9	#size-cells = <1>;
 10
 11	interrupt-parent = <&icoll>;
 12	/*
 13	 * The decompressor and also some bootloaders rely on a
 14	 * pre-existing /chosen node to be available to insert the
 15	 * command line and merge other ATAGS info.
 
 16	 */
 17	chosen {};
 
 18
 19	aliases {
 20		gpio0 = &gpio0;
 21		gpio1 = &gpio1;
 22		gpio2 = &gpio2;
 23		serial0 = &auart0;
 24		serial1 = &auart1;
 25		spi0 = &ssp0;
 26		spi1 = &ssp1;
 27		usbphy0 = &usbphy0;
 28	};
 29
 30	cpus {
 31		#address-cells = <1>;
 32		#size-cells = <0>;
 33
 34		cpu@0 {
 35			compatible = "arm,arm926ej-s";
 36			device_type = "cpu";
 37			reg = <0>;
 38		};
 39	};
 40
 41	apb@80000000 {
 42		compatible = "simple-bus";
 43		#address-cells = <1>;
 44		#size-cells = <1>;
 45		reg = <0x80000000 0x80000>;
 46		ranges;
 47
 48		apbh@80000000 {
 49			compatible = "simple-bus";
 50			#address-cells = <1>;
 51			#size-cells = <1>;
 52			reg = <0x80000000 0x40000>;
 53			ranges;
 54
 55			icoll: interrupt-controller@80000000 {
 56				compatible = "fsl,imx23-icoll", "fsl,icoll";
 57				interrupt-controller;
 58				#interrupt-cells = <1>;
 59				reg = <0x80000000 0x2000>;
 60			};
 61
 62			dma_apbh: dma-apbh@80004000 {
 63				compatible = "fsl,imx23-dma-apbh";
 64				reg = <0x80004000 0x2000>;
 65				interrupts = <0 14 20 0
 66					      13 13 13 13>;
 67				interrupt-names = "empty", "ssp0", "ssp1", "empty",
 68						  "gpmi0", "gpmi1", "gpmi2", "gpmi3";
 69				#dma-cells = <1>;
 70				dma-channels = <8>;
 71				clocks = <&clks 15>;
 72			};
 73
 74			ecc@80008000 {
 75				reg = <0x80008000 0x2000>;
 76				status = "disabled";
 77			};
 78
 79			nand-controller@8000c000 {
 80				compatible = "fsl,imx23-gpmi-nand";
 81				#address-cells = <1>;
 82				#size-cells = <1>;
 83				reg = <0x8000c000 0x2000>, <0x8000a000 0x2000>;
 84				reg-names = "gpmi-nand", "bch";
 85				interrupts = <56>;
 86				interrupt-names = "bch";
 87				clocks = <&clks 34>;
 88				clock-names = "gpmi_io";
 89				dmas = <&dma_apbh 4>;
 90				dma-names = "rx-tx";
 91				status = "disabled";
 92			};
 93
 94			ssp0: spi@80010000 {
 95				reg = <0x80010000 0x2000>;
 96				interrupts = <15>;
 97				clocks = <&clks 33>;
 98				dmas = <&dma_apbh 1>;
 99				dma-names = "rx-tx";
100				status = "disabled";
101			};
102
103			etm@80014000 {
104				reg = <0x80014000 0x2000>;
105				status = "disabled";
106			};
107
108			pinctrl@80018000 {
109				#address-cells = <1>;
110				#size-cells = <0>;
111				compatible = "fsl,imx23-pinctrl", "simple-bus";
112				reg = <0x80018000 0x2000>;
113
114				gpio0: gpio@0 {
115					compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
116					reg = <0>;
117					interrupts = <16>;
118					gpio-controller;
119					#gpio-cells = <2>;
120					interrupt-controller;
121					#interrupt-cells = <2>;
122				};
123
124				gpio1: gpio@1 {
125					compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
126					reg = <1>;
127					interrupts = <17>;
128					gpio-controller;
129					#gpio-cells = <2>;
130					interrupt-controller;
131					#interrupt-cells = <2>;
132				};
133
134				gpio2: gpio@2 {
135					compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
136					reg = <2>;
137					interrupts = <18>;
138					gpio-controller;
139					#gpio-cells = <2>;
140					interrupt-controller;
141					#interrupt-cells = <2>;
142				};
143
144				duart_pins_a: duart@0 {
145					reg = <0>;
146					fsl,pinmux-ids = <
147						MX23_PAD_PWM0__DUART_RX
148						MX23_PAD_PWM1__DUART_TX
149					>;
150					fsl,drive-strength = <MXS_DRIVE_4mA>;
151					fsl,voltage = <MXS_VOLTAGE_HIGH>;
152					fsl,pull-up = <MXS_PULL_DISABLE>;
153				};
154
155				auart0_pins_a: auart0@0 {
156					reg = <0>;
157					fsl,pinmux-ids = <
158						MX23_PAD_AUART1_RX__AUART1_RX
159						MX23_PAD_AUART1_TX__AUART1_TX
160						MX23_PAD_AUART1_CTS__AUART1_CTS
161						MX23_PAD_AUART1_RTS__AUART1_RTS
162					>;
163					fsl,drive-strength = <MXS_DRIVE_4mA>;
164					fsl,voltage = <MXS_VOLTAGE_HIGH>;
165					fsl,pull-up = <MXS_PULL_DISABLE>;
166				};
167
168				auart0_2pins_a: auart0-2pins@0 {
169					reg = <0>;
170					fsl,pinmux-ids = <
171						MX23_PAD_I2C_SCL__AUART1_TX
172						MX23_PAD_I2C_SDA__AUART1_RX
173					>;
174					fsl,drive-strength = <MXS_DRIVE_4mA>;
175					fsl,voltage = <MXS_VOLTAGE_HIGH>;
176					fsl,pull-up = <MXS_PULL_DISABLE>;
177				};
178
179				auart1_2pins_a: auart1-2pins@0 {
180					reg = <0>;
181					fsl,pinmux-ids = <
182						MX23_PAD_GPMI_D14__AUART2_RX
183						MX23_PAD_GPMI_D15__AUART2_TX
184					>;
185					fsl,drive-strength = <MXS_DRIVE_4mA>;
186					fsl,voltage = <MXS_VOLTAGE_HIGH>;
187					fsl,pull-up = <MXS_PULL_DISABLE>;
188				};
189
190				gpmi_pins_a: gpmi-nand@0 {
191					reg = <0>;
192					fsl,pinmux-ids = <
193						MX23_PAD_GPMI_D00__GPMI_D00
194						MX23_PAD_GPMI_D01__GPMI_D01
195						MX23_PAD_GPMI_D02__GPMI_D02
196						MX23_PAD_GPMI_D03__GPMI_D03
197						MX23_PAD_GPMI_D04__GPMI_D04
198						MX23_PAD_GPMI_D05__GPMI_D05
199						MX23_PAD_GPMI_D06__GPMI_D06
200						MX23_PAD_GPMI_D07__GPMI_D07
201						MX23_PAD_GPMI_CLE__GPMI_CLE
202						MX23_PAD_GPMI_ALE__GPMI_ALE
203						MX23_PAD_GPMI_RDY0__GPMI_RDY0
204						MX23_PAD_GPMI_RDY1__GPMI_RDY1
205						MX23_PAD_GPMI_WPN__GPMI_WPN
206						MX23_PAD_GPMI_WRN__GPMI_WRN
207						MX23_PAD_GPMI_RDN__GPMI_RDN
208						MX23_PAD_GPMI_CE1N__GPMI_CE1N
209						MX23_PAD_GPMI_CE0N__GPMI_CE0N
210					>;
211					fsl,drive-strength = <MXS_DRIVE_4mA>;
212					fsl,voltage = <MXS_VOLTAGE_HIGH>;
213					fsl,pull-up = <MXS_PULL_DISABLE>;
214				};
215
216				gpmi_pins_fixup: gpmi-pins-fixup@0 {
217					reg = <0>;
218					fsl,pinmux-ids = <
219						MX23_PAD_GPMI_WPN__GPMI_WPN
220						MX23_PAD_GPMI_WRN__GPMI_WRN
221						MX23_PAD_GPMI_RDN__GPMI_RDN
222					>;
223					fsl,drive-strength = <MXS_DRIVE_12mA>;
224				};
225
226				mmc0_4bit_pins_a: mmc0-4bit@0 {
227					reg = <0>;
228					fsl,pinmux-ids = <
229						MX23_PAD_SSP1_DATA0__SSP1_DATA0
230						MX23_PAD_SSP1_DATA1__SSP1_DATA1
231						MX23_PAD_SSP1_DATA2__SSP1_DATA2
232						MX23_PAD_SSP1_DATA3__SSP1_DATA3
233						MX23_PAD_SSP1_CMD__SSP1_CMD
234						MX23_PAD_SSP1_SCK__SSP1_SCK
235					>;
236					fsl,drive-strength = <MXS_DRIVE_8mA>;
237					fsl,voltage = <MXS_VOLTAGE_HIGH>;
238					fsl,pull-up = <MXS_PULL_ENABLE>;
239				};
240
241				mmc0_8bit_pins_a: mmc0-8bit@0 {
242					reg = <0>;
243					fsl,pinmux-ids = <
244						MX23_PAD_SSP1_DATA0__SSP1_DATA0
245						MX23_PAD_SSP1_DATA1__SSP1_DATA1
246						MX23_PAD_SSP1_DATA2__SSP1_DATA2
247						MX23_PAD_SSP1_DATA3__SSP1_DATA3
248						MX23_PAD_GPMI_D08__SSP1_DATA4
249						MX23_PAD_GPMI_D09__SSP1_DATA5
250						MX23_PAD_GPMI_D10__SSP1_DATA6
251						MX23_PAD_GPMI_D11__SSP1_DATA7
252						MX23_PAD_SSP1_CMD__SSP1_CMD
253						MX23_PAD_SSP1_DETECT__SSP1_DETECT
254						MX23_PAD_SSP1_SCK__SSP1_SCK
255					>;
256					fsl,drive-strength = <MXS_DRIVE_8mA>;
257					fsl,voltage = <MXS_VOLTAGE_HIGH>;
258					fsl,pull-up = <MXS_PULL_ENABLE>;
259				};
260
261				mmc0_pins_fixup: mmc0-pins-fixup@0 {
262					reg = <0>;
263					fsl,pinmux-ids = <
264						MX23_PAD_SSP1_DETECT__SSP1_DETECT
265						MX23_PAD_SSP1_SCK__SSP1_SCK
266					>;
267					fsl,pull-up = <MXS_PULL_DISABLE>;
268				};
269
270				mmc0_sck_cfg: mmc0-sck-cfg@0 {
271					reg = <0>;
272					fsl,pinmux-ids = <
273						MX23_PAD_SSP1_SCK__SSP1_SCK
274					>;
275					fsl,pull-up = <MXS_PULL_DISABLE>;
276				};
277
278				mmc1_4bit_pins_a: mmc1-4bit@0 {
279					reg = <0>;
280					fsl,pinmux-ids = <
281						MX23_PAD_GPMI_D00__SSP2_DATA0
282						MX23_PAD_GPMI_D01__SSP2_DATA1
283						MX23_PAD_GPMI_D02__SSP2_DATA2
284						MX23_PAD_GPMI_D03__SSP2_DATA3
285						MX23_PAD_GPMI_RDY1__SSP2_CMD
286						MX23_PAD_GPMI_WRN__SSP2_SCK
287					>;
288					fsl,drive-strength = <MXS_DRIVE_8mA>;
289					fsl,voltage = <MXS_VOLTAGE_HIGH>;
290					fsl,pull-up = <MXS_PULL_ENABLE>;
291				};
292
293				mmc1_8bit_pins_a: mmc1-8bit@0 {
294					reg = <0>;
295					fsl,pinmux-ids = <
296						MX23_PAD_GPMI_D00__SSP2_DATA0
297						MX23_PAD_GPMI_D01__SSP2_DATA1
298						MX23_PAD_GPMI_D02__SSP2_DATA2
299						MX23_PAD_GPMI_D03__SSP2_DATA3
300						MX23_PAD_GPMI_D04__SSP2_DATA4
301						MX23_PAD_GPMI_D05__SSP2_DATA5
302						MX23_PAD_GPMI_D06__SSP2_DATA6
303						MX23_PAD_GPMI_D07__SSP2_DATA7
304						MX23_PAD_GPMI_RDY1__SSP2_CMD
305						MX23_PAD_GPMI_WRN__SSP2_SCK
306					>;
307					fsl,drive-strength = <MXS_DRIVE_8mA>;
308					fsl,voltage = <MXS_VOLTAGE_HIGH>;
309					fsl,pull-up = <MXS_PULL_ENABLE>;
310				};
311
312				pwm2_pins_a: pwm2@0 {
313					reg = <0>;
314					fsl,pinmux-ids = <
315						MX23_PAD_PWM2__PWM2
316					>;
317					fsl,drive-strength = <MXS_DRIVE_4mA>;
318					fsl,voltage = <MXS_VOLTAGE_HIGH>;
319					fsl,pull-up = <MXS_PULL_DISABLE>;
320				};
321
322				lcdif_24bit_pins_a: lcdif-24bit@0 {
323					reg = <0>;
324					fsl,pinmux-ids = <
325						MX23_PAD_LCD_D00__LCD_D00
326						MX23_PAD_LCD_D01__LCD_D01
327						MX23_PAD_LCD_D02__LCD_D02
328						MX23_PAD_LCD_D03__LCD_D03
329						MX23_PAD_LCD_D04__LCD_D04
330						MX23_PAD_LCD_D05__LCD_D05
331						MX23_PAD_LCD_D06__LCD_D06
332						MX23_PAD_LCD_D07__LCD_D07
333						MX23_PAD_LCD_D08__LCD_D08
334						MX23_PAD_LCD_D09__LCD_D09
335						MX23_PAD_LCD_D10__LCD_D10
336						MX23_PAD_LCD_D11__LCD_D11
337						MX23_PAD_LCD_D12__LCD_D12
338						MX23_PAD_LCD_D13__LCD_D13
339						MX23_PAD_LCD_D14__LCD_D14
340						MX23_PAD_LCD_D15__LCD_D15
341						MX23_PAD_LCD_D16__LCD_D16
342						MX23_PAD_LCD_D17__LCD_D17
343						MX23_PAD_GPMI_D08__LCD_D18
344						MX23_PAD_GPMI_D09__LCD_D19
345						MX23_PAD_GPMI_D10__LCD_D20
346						MX23_PAD_GPMI_D11__LCD_D21
347						MX23_PAD_GPMI_D12__LCD_D22
348						MX23_PAD_GPMI_D13__LCD_D23
349						MX23_PAD_LCD_DOTCK__LCD_DOTCK
350						MX23_PAD_LCD_ENABLE__LCD_ENABLE
351						MX23_PAD_LCD_HSYNC__LCD_HSYNC
352						MX23_PAD_LCD_VSYNC__LCD_VSYNC
353					>;
354					fsl,drive-strength = <MXS_DRIVE_4mA>;
355					fsl,voltage = <MXS_VOLTAGE_HIGH>;
356					fsl,pull-up = <MXS_PULL_DISABLE>;
357				};
358
359				spi2_pins_a: spi2@0 {
360					reg = <0>;
361					fsl,pinmux-ids = <
362						MX23_PAD_GPMI_WRN__SSP2_SCK
363						MX23_PAD_GPMI_RDY1__SSP2_CMD
364						MX23_PAD_GPMI_D00__SSP2_DATA0
365						MX23_PAD_GPMI_D03__SSP2_DATA3
366					>;
367					fsl,drive-strength = <MXS_DRIVE_8mA>;
368					fsl,voltage = <MXS_VOLTAGE_HIGH>;
369					fsl,pull-up = <MXS_PULL_ENABLE>;
370				};
371
372				i2c_pins_a: i2c@0 {
373					reg = <0>;
374					fsl,pinmux-ids = <
375						MX23_PAD_I2C_SCL__I2C_SCL
376						MX23_PAD_I2C_SDA__I2C_SDA
377					>;
378					fsl,drive-strength = <MXS_DRIVE_8mA>;
379					fsl,voltage = <MXS_VOLTAGE_HIGH>;
380					fsl,pull-up = <MXS_PULL_ENABLE>;
381				};
382
383				i2c_pins_b: i2c@1 {
384					reg = <1>;
385					fsl,pinmux-ids = <
386						MX23_PAD_LCD_ENABLE__I2C_SCL
387						MX23_PAD_LCD_HSYNC__I2C_SDA
388					>;
389					fsl,drive-strength = <MXS_DRIVE_8mA>;
390					fsl,voltage = <MXS_VOLTAGE_HIGH>;
391					fsl,pull-up = <MXS_PULL_ENABLE>;
392				};
393
394				i2c_pins_c: i2c@2 {
395					reg = <2>;
396					fsl,pinmux-ids = <
397						MX23_PAD_SSP1_DATA1__I2C_SCL
398						MX23_PAD_SSP1_DATA2__I2C_SDA
399					>;
400					fsl,drive-strength = <MXS_DRIVE_8mA>;
401					fsl,voltage = <MXS_VOLTAGE_HIGH>;
402					fsl,pull-up = <MXS_PULL_ENABLE>;
403				};
404			};
405
406			digctl@8001c000 {
407				compatible = "fsl,imx23-digctl";
408				reg = <0x8001c000 2000>;
409				status = "disabled";
410			};
411
412			emi@80020000 {
413				reg = <0x80020000 0x2000>;
414				status = "disabled";
415			};
416
417			dma_apbx: dma-apbx@80024000 {
418				compatible = "fsl,imx23-dma-apbx";
419				reg = <0x80024000 0x2000>;
420				interrupts = <7 5 9 26
421					      19 0 25 23
422					      60 58 9 0
423					      0 0 0 0>;
424				interrupt-names = "audio-adc", "audio-dac", "spdif-tx", "i2c",
425						  "saif0", "empty", "auart0-rx", "auart0-tx",
426						  "auart1-rx", "auart1-tx", "saif1", "empty",
427						  "empty", "empty", "empty", "empty";
428				#dma-cells = <1>;
429				dma-channels = <16>;
430				clocks = <&clks 16>;
431			};
432
433			dcp: crypto@80028000 {
434				compatible = "fsl,imx23-dcp";
435				reg = <0x80028000 0x2000>;
436				interrupts = <53 54>;
437				status = "okay";
438			};
439
440			pxp@8002a000 {
441				reg = <0x8002a000 0x2000>;
442				status = "disabled";
443			};
444
445			efuse@8002c000 {
446				compatible = "fsl,imx23-ocotp", "fsl,ocotp";
447				#address-cells = <1>;
448				#size-cells = <1>;
449				reg = <0x8002c000 0x2000>;
450				clocks = <&clks 15>;
451			};
452
453			axi-ahb@8002e000 {
454				reg = <0x8002e000 0x2000>;
455				status = "disabled";
456			};
457
458			lcdif@80030000 {
459				compatible = "fsl,imx23-lcdif";
460				reg = <0x80030000 2000>;
461				interrupts = <46 45>;
462				clocks = <&clks 38>;
463				status = "disabled";
464			};
465
466			ssp1: spi@80034000 {
467				reg = <0x80034000 0x2000>;
468				interrupts = <2>;
469				clocks = <&clks 33>;
470				dmas = <&dma_apbh 2>;
471				dma-names = "rx-tx";
472				status = "disabled";
473			};
474
475			tvenc@80038000 {
476				reg = <0x80038000 0x2000>;
477				status = "disabled";
478			};
479		};
480
481		apbx@80040000 {
482			compatible = "simple-bus";
483			#address-cells = <1>;
484			#size-cells = <1>;
485			reg = <0x80040000 0x40000>;
486			ranges;
487
488			clks: clkctrl@80040000 {
489				compatible = "fsl,imx23-clkctrl", "fsl,clkctrl";
490				reg = <0x80040000 0x2000>;
491				#clock-cells = <1>;
492			};
493
494			saif0: saif@80042000 {
495				reg = <0x80042000 0x2000>;
496				dmas = <&dma_apbx 4>;
497				dma-names = "rx-tx";
498				status = "disabled";
499			};
500
501			power@80044000 {
502				reg = <0x80044000 0x2000>;
503				status = "disabled";
504			};
505
506			saif1: saif@80046000 {
507				reg = <0x80046000 0x2000>;
508				dmas = <&dma_apbx 10>;
509				dma-names = "rx-tx";
510				status = "disabled";
511			};
512
513			audio-out@80048000 {
514				reg = <0x80048000 0x2000>;
515				dmas = <&dma_apbx 1>;
516				dma-names = "tx";
517				status = "disabled";
518			};
519
520			audio-in@8004c000 {
521				reg = <0x8004c000 0x2000>;
522				dmas = <&dma_apbx 0>;
523				dma-names = "rx";
524				status = "disabled";
525			};
526
527			lradc: lradc@80050000 {
528				compatible = "fsl,imx23-lradc";
529				reg = <0x80050000 0x2000>;
530				interrupts = <36 37 38 39 40 41 42 43 44>;
531				status = "disabled";
532				clocks = <&clks 26>;
533				#io-channel-cells = <1>;
534			};
535
536			spdif@80054000 {
537				reg = <0x80054000 2000>;
538				dmas = <&dma_apbx 2>;
539				dma-names = "tx";
540				status = "disabled";
541			};
542
543			i2c: i2c@80058000 {
544				#address-cells = <1>;
545				#size-cells = <0>;
546				compatible = "fsl,imx23-i2c";
547				reg = <0x80058000 0x2000>;
548				interrupts = <27>;
549				clock-frequency = <100000>;
550				dmas = <&dma_apbx 3>;
551				dma-names = "rx-tx";
552				status = "disabled";
553			};
554
555			rtc@8005c000 {
556				compatible = "fsl,imx23-rtc", "fsl,stmp3xxx-rtc";
557				reg = <0x8005c000 0x2000>;
558				interrupts = <22>;
559			};
560
561			pwm: pwm@80064000 {
562				compatible = "fsl,imx23-pwm";
563				reg = <0x80064000 0x2000>;
564				clocks = <&clks 30>;
565				#pwm-cells = <2>;
566				fsl,pwm-number = <5>;
567				status = "disabled";
568			};
569
570			timrot@80068000 {
571				compatible = "fsl,imx23-timrot", "fsl,timrot";
572				reg = <0x80068000 0x2000>;
573				interrupts = <28 29 30 31>;
574				clocks = <&clks 28>;
575			};
576
577			auart0: serial@8006c000 {
578				compatible = "fsl,imx23-auart";
579				reg = <0x8006c000 0x2000>;
580				interrupts = <24>;
581				clocks = <&clks 32>;
582				dmas = <&dma_apbx 6>, <&dma_apbx 7>;
583				dma-names = "rx", "tx";
584				status = "disabled";
585			};
586
587			auart1: serial@8006e000 {
588				compatible = "fsl,imx23-auart";
589				reg = <0x8006e000 0x2000>;
590				interrupts = <59>;
591				clocks = <&clks 32>;
592				dmas = <&dma_apbx 8>, <&dma_apbx 9>;
593				dma-names = "rx", "tx";
594				status = "disabled";
595			};
596
597			duart: serial@80070000 {
598				compatible = "arm,pl011", "arm,primecell";
599				reg = <0x80070000 0x2000>;
600				interrupts = <0>;
601				clocks = <&clks 32>, <&clks 16>;
602				clock-names = "uart", "apb_pclk";
603				status = "disabled";
604			};
605
606			usbphy0: usbphy@8007c000 {
607				compatible = "fsl,imx23-usbphy";
608				reg = <0x8007c000 0x2000>;
609				clocks = <&clks 41>;
610				status = "disabled";
611			};
612		};
613	};
614
615	ahb@80080000 {
616		compatible = "simple-bus";
617		#address-cells = <1>;
618		#size-cells = <1>;
619		reg = <0x80080000 0x80000>;
620		ranges;
621
622		usb0: usb@80080000 {
623			compatible = "fsl,imx23-usb", "fsl,imx27-usb";
624			reg = <0x80080000 0x40000>;
625			interrupts = <11>;
626			fsl,usbphy = <&usbphy0>;
627			clocks = <&clks 40>;
628			status = "disabled";
629		};
630	};
631
632	iio-hwmon {
633		compatible = "iio-hwmon";
634		io-channels = <&lradc 8>;
635	};
636};
v4.10.11
  1/*
  2 * Copyright 2012 Freescale Semiconductor, Inc.
  3 *
  4 * The code contained herein is licensed under the GNU General Public
  5 * License. You may obtain a copy of the GNU General Public License
  6 * Version 2 or later at the following locations:
  7 *
  8 * http://www.opensource.org/licenses/gpl-license.html
  9 * http://www.gnu.org/copyleft/gpl.html
 10 */
 11
 12#include "imx23-pinfunc.h"
 13
 14/ {
 15	#address-cells = <1>;
 16	#size-cells = <1>;
 17
 18	interrupt-parent = <&icoll>;
 19	/*
 20	 * The decompressor and also some bootloaders rely on a
 21	 * pre-existing /chosen node to be available to insert the
 22	 * command line and merge other ATAGS info.
 23	 * Also for U-Boot there must be a pre-existing /memory node.
 24	 */
 25	chosen {};
 26	memory { device_type = "memory"; reg = <0 0>; };
 27
 28	aliases {
 29		gpio0 = &gpio0;
 30		gpio1 = &gpio1;
 31		gpio2 = &gpio2;
 32		serial0 = &auart0;
 33		serial1 = &auart1;
 34		spi0 = &ssp0;
 35		spi1 = &ssp1;
 36		usbphy0 = &usbphy0;
 37	};
 38
 39	cpus {
 40		#address-cells = <0>;
 41		#size-cells = <0>;
 42
 43		cpu {
 44			compatible = "arm,arm926ej-s";
 45			device_type = "cpu";
 
 46		};
 47	};
 48
 49	apb@80000000 {
 50		compatible = "simple-bus";
 51		#address-cells = <1>;
 52		#size-cells = <1>;
 53		reg = <0x80000000 0x80000>;
 54		ranges;
 55
 56		apbh@80000000 {
 57			compatible = "simple-bus";
 58			#address-cells = <1>;
 59			#size-cells = <1>;
 60			reg = <0x80000000 0x40000>;
 61			ranges;
 62
 63			icoll: interrupt-controller@80000000 {
 64				compatible = "fsl,imx23-icoll", "fsl,icoll";
 65				interrupt-controller;
 66				#interrupt-cells = <1>;
 67				reg = <0x80000000 0x2000>;
 68			};
 69
 70			dma_apbh: dma-apbh@80004000 {
 71				compatible = "fsl,imx23-dma-apbh";
 72				reg = <0x80004000 0x2000>;
 73				interrupts = <0 14 20 0
 74					      13 13 13 13>;
 75				interrupt-names = "empty", "ssp0", "ssp1", "empty",
 76						  "gpmi0", "gpmi1", "gpmi2", "gpmi3";
 77				#dma-cells = <1>;
 78				dma-channels = <8>;
 79				clocks = <&clks 15>;
 80			};
 81
 82			ecc@80008000 {
 83				reg = <0x80008000 0x2000>;
 84				status = "disabled";
 85			};
 86
 87			gpmi-nand@8000c000 {
 88				compatible = "fsl,imx23-gpmi-nand";
 89				#address-cells = <1>;
 90				#size-cells = <1>;
 91				reg = <0x8000c000 0x2000>, <0x8000a000 0x2000>;
 92				reg-names = "gpmi-nand", "bch";
 93				interrupts = <56>;
 94				interrupt-names = "bch";
 95				clocks = <&clks 34>;
 96				clock-names = "gpmi_io";
 97				dmas = <&dma_apbh 4>;
 98				dma-names = "rx-tx";
 99				status = "disabled";
100			};
101
102			ssp0: ssp@80010000 {
103				reg = <0x80010000 0x2000>;
104				interrupts = <15>;
105				clocks = <&clks 33>;
106				dmas = <&dma_apbh 1>;
107				dma-names = "rx-tx";
108				status = "disabled";
109			};
110
111			etm@80014000 {
112				reg = <0x80014000 0x2000>;
113				status = "disabled";
114			};
115
116			pinctrl@80018000 {
117				#address-cells = <1>;
118				#size-cells = <0>;
119				compatible = "fsl,imx23-pinctrl", "simple-bus";
120				reg = <0x80018000 0x2000>;
121
122				gpio0: gpio@0 {
123					compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
124					reg = <0>;
125					interrupts = <16>;
126					gpio-controller;
127					#gpio-cells = <2>;
128					interrupt-controller;
129					#interrupt-cells = <2>;
130				};
131
132				gpio1: gpio@1 {
133					compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
134					reg = <1>;
135					interrupts = <17>;
136					gpio-controller;
137					#gpio-cells = <2>;
138					interrupt-controller;
139					#interrupt-cells = <2>;
140				};
141
142				gpio2: gpio@2 {
143					compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
144					reg = <2>;
145					interrupts = <18>;
146					gpio-controller;
147					#gpio-cells = <2>;
148					interrupt-controller;
149					#interrupt-cells = <2>;
150				};
151
152				duart_pins_a: duart@0 {
153					reg = <0>;
154					fsl,pinmux-ids = <
155						MX23_PAD_PWM0__DUART_RX
156						MX23_PAD_PWM1__DUART_TX
157					>;
158					fsl,drive-strength = <MXS_DRIVE_4mA>;
159					fsl,voltage = <MXS_VOLTAGE_HIGH>;
160					fsl,pull-up = <MXS_PULL_DISABLE>;
161				};
162
163				auart0_pins_a: auart0@0 {
164					reg = <0>;
165					fsl,pinmux-ids = <
166						MX23_PAD_AUART1_RX__AUART1_RX
167						MX23_PAD_AUART1_TX__AUART1_TX
168						MX23_PAD_AUART1_CTS__AUART1_CTS
169						MX23_PAD_AUART1_RTS__AUART1_RTS
170					>;
171					fsl,drive-strength = <MXS_DRIVE_4mA>;
172					fsl,voltage = <MXS_VOLTAGE_HIGH>;
173					fsl,pull-up = <MXS_PULL_DISABLE>;
174				};
175
176				auart0_2pins_a: auart0-2pins@0 {
177					reg = <0>;
178					fsl,pinmux-ids = <
179						MX23_PAD_I2C_SCL__AUART1_TX
180						MX23_PAD_I2C_SDA__AUART1_RX
181					>;
182					fsl,drive-strength = <MXS_DRIVE_4mA>;
183					fsl,voltage = <MXS_VOLTAGE_HIGH>;
184					fsl,pull-up = <MXS_PULL_DISABLE>;
185				};
186
187				auart1_2pins_a: auart1-2pins@0 {
188					reg = <0>;
189					fsl,pinmux-ids = <
190						MX23_PAD_GPMI_D14__AUART2_RX
191						MX23_PAD_GPMI_D15__AUART2_TX
192					>;
193					fsl,drive-strength = <MXS_DRIVE_4mA>;
194					fsl,voltage = <MXS_VOLTAGE_HIGH>;
195					fsl,pull-up = <MXS_PULL_DISABLE>;
196				};
197
198				gpmi_pins_a: gpmi-nand@0 {
199					reg = <0>;
200					fsl,pinmux-ids = <
201						MX23_PAD_GPMI_D00__GPMI_D00
202						MX23_PAD_GPMI_D01__GPMI_D01
203						MX23_PAD_GPMI_D02__GPMI_D02
204						MX23_PAD_GPMI_D03__GPMI_D03
205						MX23_PAD_GPMI_D04__GPMI_D04
206						MX23_PAD_GPMI_D05__GPMI_D05
207						MX23_PAD_GPMI_D06__GPMI_D06
208						MX23_PAD_GPMI_D07__GPMI_D07
209						MX23_PAD_GPMI_CLE__GPMI_CLE
210						MX23_PAD_GPMI_ALE__GPMI_ALE
211						MX23_PAD_GPMI_RDY0__GPMI_RDY0
212						MX23_PAD_GPMI_RDY1__GPMI_RDY1
213						MX23_PAD_GPMI_WPN__GPMI_WPN
214						MX23_PAD_GPMI_WRN__GPMI_WRN
215						MX23_PAD_GPMI_RDN__GPMI_RDN
216						MX23_PAD_GPMI_CE1N__GPMI_CE1N
217						MX23_PAD_GPMI_CE0N__GPMI_CE0N
218					>;
219					fsl,drive-strength = <MXS_DRIVE_4mA>;
220					fsl,voltage = <MXS_VOLTAGE_HIGH>;
221					fsl,pull-up = <MXS_PULL_DISABLE>;
222				};
223
224				gpmi_pins_fixup: gpmi-pins-fixup {
 
225					fsl,pinmux-ids = <
226						MX23_PAD_GPMI_WPN__GPMI_WPN
227						MX23_PAD_GPMI_WRN__GPMI_WRN
228						MX23_PAD_GPMI_RDN__GPMI_RDN
229					>;
230					fsl,drive-strength = <MXS_DRIVE_12mA>;
231				};
232
233				mmc0_4bit_pins_a: mmc0-4bit@0 {
234					reg = <0>;
235					fsl,pinmux-ids = <
236						MX23_PAD_SSP1_DATA0__SSP1_DATA0
237						MX23_PAD_SSP1_DATA1__SSP1_DATA1
238						MX23_PAD_SSP1_DATA2__SSP1_DATA2
239						MX23_PAD_SSP1_DATA3__SSP1_DATA3
240						MX23_PAD_SSP1_CMD__SSP1_CMD
241						MX23_PAD_SSP1_SCK__SSP1_SCK
242					>;
243					fsl,drive-strength = <MXS_DRIVE_8mA>;
244					fsl,voltage = <MXS_VOLTAGE_HIGH>;
245					fsl,pull-up = <MXS_PULL_ENABLE>;
246				};
247
248				mmc0_8bit_pins_a: mmc0-8bit@0 {
249					reg = <0>;
250					fsl,pinmux-ids = <
251						MX23_PAD_SSP1_DATA0__SSP1_DATA0
252						MX23_PAD_SSP1_DATA1__SSP1_DATA1
253						MX23_PAD_SSP1_DATA2__SSP1_DATA2
254						MX23_PAD_SSP1_DATA3__SSP1_DATA3
255						MX23_PAD_GPMI_D08__SSP1_DATA4
256						MX23_PAD_GPMI_D09__SSP1_DATA5
257						MX23_PAD_GPMI_D10__SSP1_DATA6
258						MX23_PAD_GPMI_D11__SSP1_DATA7
259						MX23_PAD_SSP1_CMD__SSP1_CMD
260						MX23_PAD_SSP1_DETECT__SSP1_DETECT
261						MX23_PAD_SSP1_SCK__SSP1_SCK
262					>;
263					fsl,drive-strength = <MXS_DRIVE_8mA>;
264					fsl,voltage = <MXS_VOLTAGE_HIGH>;
265					fsl,pull-up = <MXS_PULL_ENABLE>;
266				};
267
268				mmc0_pins_fixup: mmc0-pins-fixup {
 
269					fsl,pinmux-ids = <
270						MX23_PAD_SSP1_DETECT__SSP1_DETECT
271						MX23_PAD_SSP1_SCK__SSP1_SCK
272					>;
273					fsl,pull-up = <MXS_PULL_DISABLE>;
274				};
275
 
 
 
 
 
 
 
 
276				mmc1_4bit_pins_a: mmc1-4bit@0 {
277					reg = <0>;
278					fsl,pinmux-ids = <
279						MX23_PAD_GPMI_D00__SSP2_DATA0
280						MX23_PAD_GPMI_D01__SSP2_DATA1
281						MX23_PAD_GPMI_D02__SSP2_DATA2
282						MX23_PAD_GPMI_D03__SSP2_DATA3
283						MX23_PAD_GPMI_RDY1__SSP2_CMD
284						MX23_PAD_GPMI_WRN__SSP2_SCK
285					>;
286					fsl,drive-strength = <MXS_DRIVE_8mA>;
287					fsl,voltage = <MXS_VOLTAGE_HIGH>;
288					fsl,pull-up = <MXS_PULL_ENABLE>;
289				};
290
291				mmc1_8bit_pins_a: mmc1-8bit@0 {
292					reg = <0>;
293					fsl,pinmux-ids = <
294						MX23_PAD_GPMI_D00__SSP2_DATA0
295						MX23_PAD_GPMI_D01__SSP2_DATA1
296						MX23_PAD_GPMI_D02__SSP2_DATA2
297						MX23_PAD_GPMI_D03__SSP2_DATA3
298						MX23_PAD_GPMI_D04__SSP2_DATA4
299						MX23_PAD_GPMI_D05__SSP2_DATA5
300						MX23_PAD_GPMI_D06__SSP2_DATA6
301						MX23_PAD_GPMI_D07__SSP2_DATA7
302						MX23_PAD_GPMI_RDY1__SSP2_CMD
303						MX23_PAD_GPMI_WRN__SSP2_SCK
304					>;
305					fsl,drive-strength = <MXS_DRIVE_8mA>;
306					fsl,voltage = <MXS_VOLTAGE_HIGH>;
307					fsl,pull-up = <MXS_PULL_ENABLE>;
308				};
309
310				pwm2_pins_a: pwm2@0 {
311					reg = <0>;
312					fsl,pinmux-ids = <
313						MX23_PAD_PWM2__PWM2
314					>;
315					fsl,drive-strength = <MXS_DRIVE_4mA>;
316					fsl,voltage = <MXS_VOLTAGE_HIGH>;
317					fsl,pull-up = <MXS_PULL_DISABLE>;
318				};
319
320				lcdif_24bit_pins_a: lcdif-24bit@0 {
321					reg = <0>;
322					fsl,pinmux-ids = <
323						MX23_PAD_LCD_D00__LCD_D00
324						MX23_PAD_LCD_D01__LCD_D01
325						MX23_PAD_LCD_D02__LCD_D02
326						MX23_PAD_LCD_D03__LCD_D03
327						MX23_PAD_LCD_D04__LCD_D04
328						MX23_PAD_LCD_D05__LCD_D05
329						MX23_PAD_LCD_D06__LCD_D06
330						MX23_PAD_LCD_D07__LCD_D07
331						MX23_PAD_LCD_D08__LCD_D08
332						MX23_PAD_LCD_D09__LCD_D09
333						MX23_PAD_LCD_D10__LCD_D10
334						MX23_PAD_LCD_D11__LCD_D11
335						MX23_PAD_LCD_D12__LCD_D12
336						MX23_PAD_LCD_D13__LCD_D13
337						MX23_PAD_LCD_D14__LCD_D14
338						MX23_PAD_LCD_D15__LCD_D15
339						MX23_PAD_LCD_D16__LCD_D16
340						MX23_PAD_LCD_D17__LCD_D17
341						MX23_PAD_GPMI_D08__LCD_D18
342						MX23_PAD_GPMI_D09__LCD_D19
343						MX23_PAD_GPMI_D10__LCD_D20
344						MX23_PAD_GPMI_D11__LCD_D21
345						MX23_PAD_GPMI_D12__LCD_D22
346						MX23_PAD_GPMI_D13__LCD_D23
347						MX23_PAD_LCD_DOTCK__LCD_DOTCK
348						MX23_PAD_LCD_ENABLE__LCD_ENABLE
349						MX23_PAD_LCD_HSYNC__LCD_HSYNC
350						MX23_PAD_LCD_VSYNC__LCD_VSYNC
351					>;
352					fsl,drive-strength = <MXS_DRIVE_4mA>;
353					fsl,voltage = <MXS_VOLTAGE_HIGH>;
354					fsl,pull-up = <MXS_PULL_DISABLE>;
355				};
356
357				spi2_pins_a: spi2@0 {
358					reg = <0>;
359					fsl,pinmux-ids = <
360						MX23_PAD_GPMI_WRN__SSP2_SCK
361						MX23_PAD_GPMI_RDY1__SSP2_CMD
362						MX23_PAD_GPMI_D00__SSP2_DATA0
363						MX23_PAD_GPMI_D03__SSP2_DATA3
364					>;
365					fsl,drive-strength = <MXS_DRIVE_8mA>;
366					fsl,voltage = <MXS_VOLTAGE_HIGH>;
367					fsl,pull-up = <MXS_PULL_ENABLE>;
368				};
369
370				i2c_pins_a: i2c@0 {
371					reg = <0>;
372					fsl,pinmux-ids = <
373						MX23_PAD_I2C_SCL__I2C_SCL
374						MX23_PAD_I2C_SDA__I2C_SDA
375					>;
376					fsl,drive-strength = <MXS_DRIVE_8mA>;
377					fsl,voltage = <MXS_VOLTAGE_HIGH>;
378					fsl,pull-up = <MXS_PULL_ENABLE>;
379				};
380
381				i2c_pins_b: i2c@1 {
382					reg = <1>;
383					fsl,pinmux-ids = <
384						MX23_PAD_LCD_ENABLE__I2C_SCL
385						MX23_PAD_LCD_HSYNC__I2C_SDA
386					>;
387					fsl,drive-strength = <MXS_DRIVE_8mA>;
388					fsl,voltage = <MXS_VOLTAGE_HIGH>;
389					fsl,pull-up = <MXS_PULL_ENABLE>;
390				};
391
392				i2c_pins_c: i2c@2 {
393					reg = <2>;
394					fsl,pinmux-ids = <
395						MX23_PAD_SSP1_DATA1__I2C_SCL
396						MX23_PAD_SSP1_DATA2__I2C_SDA
397					>;
398					fsl,drive-strength = <MXS_DRIVE_8mA>;
399					fsl,voltage = <MXS_VOLTAGE_HIGH>;
400					fsl,pull-up = <MXS_PULL_ENABLE>;
401				};
402			};
403
404			digctl@8001c000 {
405				compatible = "fsl,imx23-digctl";
406				reg = <0x8001c000 2000>;
407				status = "disabled";
408			};
409
410			emi@80020000 {
411				reg = <0x80020000 0x2000>;
412				status = "disabled";
413			};
414
415			dma_apbx: dma-apbx@80024000 {
416				compatible = "fsl,imx23-dma-apbx";
417				reg = <0x80024000 0x2000>;
418				interrupts = <7 5 9 26
419					      19 0 25 23
420					      60 58 9 0
421					      0 0 0 0>;
422				interrupt-names = "audio-adc", "audio-dac", "spdif-tx", "i2c",
423						  "saif0", "empty", "auart0-rx", "auart0-tx",
424						  "auart1-rx", "auart1-tx", "saif1", "empty",
425						  "empty", "empty", "empty", "empty";
426				#dma-cells = <1>;
427				dma-channels = <16>;
428				clocks = <&clks 16>;
429			};
430
431			dcp@80028000 {
432				compatible = "fsl,imx23-dcp";
433				reg = <0x80028000 0x2000>;
434				interrupts = <53 54>;
435				status = "okay";
436			};
437
438			pxp@8002a000 {
439				reg = <0x8002a000 0x2000>;
440				status = "disabled";
441			};
442
443			ocotp@8002c000 {
444				compatible = "fsl,imx23-ocotp", "fsl,ocotp";
445				#address-cells = <1>;
446				#size-cells = <1>;
447				reg = <0x8002c000 0x2000>;
448				clocks = <&clks 15>;
449			};
450
451			axi-ahb@8002e000 {
452				reg = <0x8002e000 0x2000>;
453				status = "disabled";
454			};
455
456			lcdif@80030000 {
457				compatible = "fsl,imx23-lcdif";
458				reg = <0x80030000 2000>;
459				interrupts = <46 45>;
460				clocks = <&clks 38>;
461				status = "disabled";
462			};
463
464			ssp1: ssp@80034000 {
465				reg = <0x80034000 0x2000>;
466				interrupts = <2>;
467				clocks = <&clks 33>;
468				dmas = <&dma_apbh 2>;
469				dma-names = "rx-tx";
470				status = "disabled";
471			};
472
473			tvenc@80038000 {
474				reg = <0x80038000 0x2000>;
475				status = "disabled";
476			};
477		};
478
479		apbx@80040000 {
480			compatible = "simple-bus";
481			#address-cells = <1>;
482			#size-cells = <1>;
483			reg = <0x80040000 0x40000>;
484			ranges;
485
486			clks: clkctrl@80040000 {
487				compatible = "fsl,imx23-clkctrl", "fsl,clkctrl";
488				reg = <0x80040000 0x2000>;
489				#clock-cells = <1>;
490			};
491
492			saif0: saif@80042000 {
493				reg = <0x80042000 0x2000>;
494				dmas = <&dma_apbx 4>;
495				dma-names = "rx-tx";
496				status = "disabled";
497			};
498
499			power@80044000 {
500				reg = <0x80044000 0x2000>;
501				status = "disabled";
502			};
503
504			saif1: saif@80046000 {
505				reg = <0x80046000 0x2000>;
506				dmas = <&dma_apbx 10>;
507				dma-names = "rx-tx";
508				status = "disabled";
509			};
510
511			audio-out@80048000 {
512				reg = <0x80048000 0x2000>;
513				dmas = <&dma_apbx 1>;
514				dma-names = "tx";
515				status = "disabled";
516			};
517
518			audio-in@8004c000 {
519				reg = <0x8004c000 0x2000>;
520				dmas = <&dma_apbx 0>;
521				dma-names = "rx";
522				status = "disabled";
523			};
524
525			lradc: lradc@80050000 {
526				compatible = "fsl,imx23-lradc";
527				reg = <0x80050000 0x2000>;
528				interrupts = <36 37 38 39 40 41 42 43 44>;
529				status = "disabled";
530				clocks = <&clks 26>;
531				#io-channel-cells = <1>;
532			};
533
534			spdif@80054000 {
535				reg = <0x80054000 2000>;
536				dmas = <&dma_apbx 2>;
537				dma-names = "tx";
538				status = "disabled";
539			};
540
541			i2c: i2c@80058000 {
542				#address-cells = <1>;
543				#size-cells = <0>;
544				compatible = "fsl,imx23-i2c";
545				reg = <0x80058000 0x2000>;
546				interrupts = <27>;
547				clock-frequency = <100000>;
548				dmas = <&dma_apbx 3>;
549				dma-names = "rx-tx";
550				status = "disabled";
551			};
552
553			rtc@8005c000 {
554				compatible = "fsl,imx23-rtc", "fsl,stmp3xxx-rtc";
555				reg = <0x8005c000 0x2000>;
556				interrupts = <22>;
557			};
558
559			pwm: pwm@80064000 {
560				compatible = "fsl,imx23-pwm";
561				reg = <0x80064000 0x2000>;
562				clocks = <&clks 30>;
563				#pwm-cells = <2>;
564				fsl,pwm-number = <5>;
565				status = "disabled";
566			};
567
568			timrot@80068000 {
569				compatible = "fsl,imx23-timrot", "fsl,timrot";
570				reg = <0x80068000 0x2000>;
571				interrupts = <28 29 30 31>;
572				clocks = <&clks 28>;
573			};
574
575			auart0: serial@8006c000 {
576				compatible = "fsl,imx23-auart";
577				reg = <0x8006c000 0x2000>;
578				interrupts = <24>;
579				clocks = <&clks 32>;
580				dmas = <&dma_apbx 6>, <&dma_apbx 7>;
581				dma-names = "rx", "tx";
582				status = "disabled";
583			};
584
585			auart1: serial@8006e000 {
586				compatible = "fsl,imx23-auart";
587				reg = <0x8006e000 0x2000>;
588				interrupts = <59>;
589				clocks = <&clks 32>;
590				dmas = <&dma_apbx 8>, <&dma_apbx 9>;
591				dma-names = "rx", "tx";
592				status = "disabled";
593			};
594
595			duart: serial@80070000 {
596				compatible = "arm,pl011", "arm,primecell";
597				reg = <0x80070000 0x2000>;
598				interrupts = <0>;
599				clocks = <&clks 32>, <&clks 16>;
600				clock-names = "uart", "apb_pclk";
601				status = "disabled";
602			};
603
604			usbphy0: usbphy@8007c000 {
605				compatible = "fsl,imx23-usbphy";
606				reg = <0x8007c000 0x2000>;
607				clocks = <&clks 41>;
608				status = "disabled";
609			};
610		};
611	};
612
613	ahb@80080000 {
614		compatible = "simple-bus";
615		#address-cells = <1>;
616		#size-cells = <1>;
617		reg = <0x80080000 0x80000>;
618		ranges;
619
620		usb0: usb@80080000 {
621			compatible = "fsl,imx23-usb", "fsl,imx27-usb";
622			reg = <0x80080000 0x40000>;
623			interrupts = <11>;
624			fsl,usbphy = <&usbphy0>;
625			clocks = <&clks 40>;
626			status = "disabled";
627		};
628	};
629
630	iio-hwmon {
631		compatible = "iio-hwmon";
632		io-channels = <&lradc 8>;
633	};
634};