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