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