Home | History | Annotate | Download | only in dts
      1 /*
      2  * at91sam9n12ek.dts - Device Tree file for AT91SAM9N12-EK board
      3  *
      4  *  Copyright (C) 2012 Atmel,
      5  *                2012 Hong Xu <hong.xu (at) atmel.com>
      6  *
      7  * Licensed under GPLv2 or later.
      8  */
      9 /dts-v1/;
     10 #include "at91sam9n12.dtsi"
     11 
     12 / {
     13 	model = "Atmel AT91SAM9N12-EK";
     14 	compatible = "atmel,at91sam9n12ek", "atmel,at91sam9n12", "atmel,at91sam9";
     15 
     16 	chosen {
     17 		bootargs = "root=/dev/mtdblock1 rw rootfstype=jffs2";
     18 		stdout-path = "serial0:115200n8";
     19 		u-boot,dm-pre-reloc;
     20 	};
     21 
     22 	memory {
     23 		reg = <0x20000000 0x8000000>;
     24 	};
     25 
     26 	clocks {
     27 		slow_xtal {
     28 			clock-frequency = <32768>;
     29 		};
     30 
     31 		main_xtal {
     32 			clock-frequency = <16000000>;
     33 		};
     34 	};
     35 
     36 	ahb {
     37 		apb {
     38 			dbgu: serial@fffff200 {
     39 				u-boot,dm-pre-reloc;
     40 				status = "okay";
     41 			};
     42 
     43 			ssc0: ssc@f0010000 {
     44 				status = "okay";
     45 			};
     46 
     47 			i2c0: i2c@f8010000 {
     48 				status = "okay";
     49 
     50 				wm8904: codec@1a {
     51 					compatible = "wlf,wm8904";
     52 					reg = <0x1a>;
     53 					clocks = <&pck0>;
     54 					clock-names = "mclk";
     55 				};
     56 
     57 				qt1070: keyboard@1b {
     58 					compatible = "qt1070";
     59 					reg = <0x1b>;
     60 					interrupt-parent = <&pioA>;
     61 					interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
     62 					pinctrl-names = "default";
     63 					pinctrl-0 = <&pinctrl_qt1070_irq>;
     64 				};
     65 			};
     66 
     67 			mmc0: mmc@f0008000 {
     68 				pinctrl-names = "default";
     69 				pinctrl-0 = <
     70 					&pinctrl_board_mmc0
     71 					&pinctrl_mmc0_slot0_clk_cmd_dat0
     72 					&pinctrl_mmc0_slot0_dat1_3>;
     73 				status = "okay";
     74 				slot@0 {
     75 					reg = <0>;
     76 					bus-width = <4>;
     77 					cd-gpios = <&pioA 7 GPIO_ACTIVE_HIGH>;
     78 				};
     79 			};
     80 
     81 			pinctrl@fffff400 {
     82 				mmc0 {
     83 					pinctrl_board_mmc0: mmc0-board {
     84 						atmel,pins =
     85 							<AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;	/* PA7 gpio CD pin pull up and deglitch */
     86 					};
     87 				};
     88 
     89 				qt1070 {
     90 					pinctrl_qt1070_irq: qt1070_irq {
     91 						atmel,pins =
     92 							<AT91_PIOA 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
     93 					};
     94 				};
     95 
     96 				sound {
     97 					pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
     98 						atmel,pins =
     99 							<AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
    100 					};
    101 				};
    102 
    103 				usb1 {
    104 					pinctrl_usb1_vbus_sense: usb1_vbus_sense {
    105 						atmel,pins =
    106 							<AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;	/* PB16 gpio usb vbus sense, no pull up and deglitch */
    107 					};
    108 				};
    109 			};
    110 
    111 			spi0: spi@f0000000 {
    112 				status = "okay";
    113 				cs-gpios = <&pioA 14 0>, <0>, <0>, <0>;
    114 				spi_flash@0 {
    115 					compatible = "spi-flash";
    116 					spi-max-frequency = <50000000>;
    117 					reg = <0>;
    118 				};
    119 			};
    120 
    121 			hlcdc: hlcdc@f8038000 {
    122 				status = "okay";
    123 
    124 				hlcdc-display-controller {
    125 					pinctrl-names = "default";
    126 					pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;
    127 
    128 					port@0 {
    129 						hlcdc_panel_output: endpoint@0 {
    130 							reg = <0>;
    131 							remote-endpoint = <&panel_input>;
    132 						};
    133 					};
    134 				};
    135 			};
    136 
    137 			usb1: gadget@f803c000 {
    138 				pinctrl-names = "default";
    139 				pinctrl-0 = <&pinctrl_usb1_vbus_sense>;
    140 				atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
    141 				status = "okay";
    142 			};
    143 
    144 			watchdog@fffffe40 {
    145 				status = "okay";
    146 			};
    147 
    148 			rtc@fffffeb0 {
    149 				status = "okay";
    150 			};
    151 		};
    152 
    153 		nand0: nand@40000000 {
    154 			nand-bus-width = <8>;
    155 			nand-ecc-mode = "hw";
    156 			atmel,has-pmecc;
    157 			atmel,pmecc-cap = <2>;
    158 			atmel,pmecc-sector-size = <512>;
    159 			nand-on-flash-bbt;
    160 			status = "okay";
    161 		};
    162 
    163 		usb0: ohci@00500000 {
    164 			num-ports = <1>;
    165 			atmel,vbus-gpio = <&pioB 7 GPIO_ACTIVE_LOW>;
    166 			status = "okay";
    167 		};
    168 	};
    169 
    170 	backlight: backlight {
    171 		compatible = "pwm-backlight";
    172 		pwms = <&hlcdc_pwm 0 50000 0>;
    173 		brightness-levels = <0 4 8 16 32 64 128 255>;
    174 		default-brightness-level = <6>;
    175 		power-supply = <&bl_reg>;
    176 		status = "okay";
    177 	};
    178 
    179 	bl_reg: backlight_regulator {
    180 		compatible = "regulator-fixed";
    181 		regulator-name = "backlight-power-supply";
    182 		regulator-min-microvolt = <5000000>;
    183 		regulator-max-microvolt = <5000000>;
    184 		status = "okay";
    185 	};
    186 
    187 	leds {
    188 		compatible = "gpio-leds";
    189 
    190 		d8 {
    191 			label = "d8";
    192 			gpios = <&pioB 4 GPIO_ACTIVE_LOW>;
    193 			linux,default-trigger = "mmc0";
    194 		};
    195 
    196 		d9 {
    197 			label = "d9";
    198 			gpios = <&pioB 5 GPIO_ACTIVE_LOW>;
    199 			linux,default-trigger = "nand-disk";
    200 		};
    201 
    202 		d10 {
    203 			label = "d10";
    204 			gpios = <&pioB 6 GPIO_ACTIVE_HIGH>;
    205 			linux,default-trigger = "heartbeat";
    206 		};
    207 	};
    208 
    209 	gpio_keys {
    210 		compatible = "gpio-keys";
    211 
    212 		enter {
    213 			label = "Enter";
    214 			gpios = <&pioB 3 GPIO_ACTIVE_LOW>;
    215 			linux,code = <28>;
    216 			wakeup-source;
    217 		};
    218 	};
    219 
    220 	panel: panel {
    221 		compatible = "qiaodian,qd43003c0-40", "simple-panel";
    222 		backlight = <&backlight>;
    223 		power-supply = <&panel_reg>;
    224 		#address-cells = <1>;
    225 		#size-cells = <0>;
    226 		status = "okay";
    227 
    228 		port@0 {
    229 			reg = <0>;
    230 			#address-cells = <1>;
    231 			#size-cells = <0>;
    232 
    233 			panel_input: endpoint@0 {
    234 				reg = <0>;
    235 				remote-endpoint = <&hlcdc_panel_output>;
    236 			};
    237 		};
    238 	};
    239 
    240 	panel_reg: panel_regulator {
    241 		compatible = "regulator-fixed";
    242 		regulator-name = "panel-power-supply";
    243 		regulator-min-microvolt = <3300000>;
    244 		regulator-max-microvolt = <3300000>;
    245 		status = "okay";
    246 	};
    247 
    248 	sound {
    249 		compatible = "atmel,asoc-wm8904";
    250 		pinctrl-names = "default";
    251 		pinctrl-0 = <&pinctrl_pck0_as_audio_mck>;
    252 
    253 		atmel,model = "wm8904 @ AT91SAM9N12";
    254 		atmel,audio-routing =
    255 			"Headphone Jack", "HPOUTL",
    256 			"Headphone Jack", "HPOUTR",
    257 			"IN2L", "Line In Jack",
    258 			"IN2R", "Line In Jack",
    259 			"Mic", "MICBIAS",
    260 			"IN1L", "Mic";
    261 
    262 		atmel,ssc-controller = <&ssc0>;
    263 		atmel,audio-codec = <&wm8904>;
    264 	};
    265 };
    266