1*eb6f87ccSWenyou Yang/* 2*eb6f87ccSWenyou Yang * at91sam9m10g45ek.dts - Device Tree file for AT91SAM9M10G45-EK board 3*eb6f87ccSWenyou Yang * 4*eb6f87ccSWenyou Yang * Copyright (C) 2011 Atmel, 5*eb6f87ccSWenyou Yang * 2011 Nicolas Ferre <nicolas.ferre@atmel.com> 6*eb6f87ccSWenyou Yang * 7*eb6f87ccSWenyou Yang * Licensed under GPLv2 or later. 8*eb6f87ccSWenyou Yang */ 9*eb6f87ccSWenyou Yang/dts-v1/; 10*eb6f87ccSWenyou Yang#include "at91sam9g45.dtsi" 11*eb6f87ccSWenyou Yang#include <dt-bindings/pwm/pwm.h> 12*eb6f87ccSWenyou Yang 13*eb6f87ccSWenyou Yang/ { 14*eb6f87ccSWenyou Yang model = "Atmel AT91SAM9M10G45-EK"; 15*eb6f87ccSWenyou Yang compatible = "atmel,at91sam9m10g45ek", "atmel,at91sam9g45", "atmel,at91sam9"; 16*eb6f87ccSWenyou Yang 17*eb6f87ccSWenyou Yang chosen { 18*eb6f87ccSWenyou Yang bootargs = "mem=64M root=/dev/mtdblock1 rw rootfstype=jffs2"; 19*eb6f87ccSWenyou Yang stdout-path = "serial0:115200n8"; 20*eb6f87ccSWenyou Yang u-boot,dm-pre-reloc; 21*eb6f87ccSWenyou Yang }; 22*eb6f87ccSWenyou Yang 23*eb6f87ccSWenyou Yang memory { 24*eb6f87ccSWenyou Yang reg = <0x70000000 0x4000000>; 25*eb6f87ccSWenyou Yang }; 26*eb6f87ccSWenyou Yang 27*eb6f87ccSWenyou Yang clocks { 28*eb6f87ccSWenyou Yang slow_xtal { 29*eb6f87ccSWenyou Yang clock-frequency = <32768>; 30*eb6f87ccSWenyou Yang }; 31*eb6f87ccSWenyou Yang 32*eb6f87ccSWenyou Yang main_xtal { 33*eb6f87ccSWenyou Yang clock-frequency = <12000000>; 34*eb6f87ccSWenyou Yang }; 35*eb6f87ccSWenyou Yang }; 36*eb6f87ccSWenyou Yang 37*eb6f87ccSWenyou Yang ahb { 38*eb6f87ccSWenyou Yang apb { 39*eb6f87ccSWenyou Yang dbgu: serial@ffffee00 { 40*eb6f87ccSWenyou Yang status = "okay"; 41*eb6f87ccSWenyou Yang u-boot,dm-pre-reloc; 42*eb6f87ccSWenyou Yang }; 43*eb6f87ccSWenyou Yang 44*eb6f87ccSWenyou Yang usart1: serial@fff90000 { 45*eb6f87ccSWenyou Yang pinctrl-0 = 46*eb6f87ccSWenyou Yang <&pinctrl_usart1 47*eb6f87ccSWenyou Yang &pinctrl_usart1_rts 48*eb6f87ccSWenyou Yang &pinctrl_usart1_cts>; 49*eb6f87ccSWenyou Yang status = "okay"; 50*eb6f87ccSWenyou Yang }; 51*eb6f87ccSWenyou Yang 52*eb6f87ccSWenyou Yang macb0: ethernet@fffbc000 { 53*eb6f87ccSWenyou Yang phy-mode = "rmii"; 54*eb6f87ccSWenyou Yang status = "okay"; 55*eb6f87ccSWenyou Yang }; 56*eb6f87ccSWenyou Yang 57*eb6f87ccSWenyou Yang i2c0: i2c@fff84000 { 58*eb6f87ccSWenyou Yang status = "okay"; 59*eb6f87ccSWenyou Yang ov2640: camera@30 { 60*eb6f87ccSWenyou Yang compatible = "ovti,ov2640"; 61*eb6f87ccSWenyou Yang reg = <0x30>; 62*eb6f87ccSWenyou Yang pinctrl-names = "default"; 63*eb6f87ccSWenyou Yang pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>; 64*eb6f87ccSWenyou Yang resetb-gpios = <&pioD 12 GPIO_ACTIVE_LOW>; 65*eb6f87ccSWenyou Yang pwdn-gpios = <&pioD 13 GPIO_ACTIVE_HIGH>; 66*eb6f87ccSWenyou Yang clocks = <&pck1>; 67*eb6f87ccSWenyou Yang clock-names = "xvclk"; 68*eb6f87ccSWenyou Yang assigned-clocks = <&pck1>; 69*eb6f87ccSWenyou Yang assigned-clock-rates = <25000000>; 70*eb6f87ccSWenyou Yang 71*eb6f87ccSWenyou Yang port { 72*eb6f87ccSWenyou Yang ov2640_0: endpoint { 73*eb6f87ccSWenyou Yang remote-endpoint = <&isi_0>; 74*eb6f87ccSWenyou Yang bus-width = <8>; 75*eb6f87ccSWenyou Yang }; 76*eb6f87ccSWenyou Yang }; 77*eb6f87ccSWenyou Yang }; 78*eb6f87ccSWenyou Yang }; 79*eb6f87ccSWenyou Yang 80*eb6f87ccSWenyou Yang i2c1: i2c@fff88000 { 81*eb6f87ccSWenyou Yang status = "okay"; 82*eb6f87ccSWenyou Yang }; 83*eb6f87ccSWenyou Yang 84*eb6f87ccSWenyou Yang watchdog@fffffd40 { 85*eb6f87ccSWenyou Yang status = "okay"; 86*eb6f87ccSWenyou Yang }; 87*eb6f87ccSWenyou Yang 88*eb6f87ccSWenyou Yang mmc0: mmc@fff80000 { 89*eb6f87ccSWenyou Yang pinctrl-0 = < 90*eb6f87ccSWenyou Yang &pinctrl_board_mmc0 91*eb6f87ccSWenyou Yang &pinctrl_mmc0_slot0_clk_cmd_dat0 92*eb6f87ccSWenyou Yang &pinctrl_mmc0_slot0_dat1_3>; 93*eb6f87ccSWenyou Yang status = "okay"; 94*eb6f87ccSWenyou Yang slot@0 { 95*eb6f87ccSWenyou Yang reg = <0>; 96*eb6f87ccSWenyou Yang bus-width = <4>; 97*eb6f87ccSWenyou Yang cd-gpios = <&pioD 10 GPIO_ACTIVE_HIGH>; 98*eb6f87ccSWenyou Yang }; 99*eb6f87ccSWenyou Yang }; 100*eb6f87ccSWenyou Yang 101*eb6f87ccSWenyou Yang mmc1: mmc@fffd0000 { 102*eb6f87ccSWenyou Yang pinctrl-0 = < 103*eb6f87ccSWenyou Yang &pinctrl_board_mmc1 104*eb6f87ccSWenyou Yang &pinctrl_mmc1_slot0_clk_cmd_dat0 105*eb6f87ccSWenyou Yang &pinctrl_mmc1_slot0_dat1_3>; 106*eb6f87ccSWenyou Yang status = "okay"; 107*eb6f87ccSWenyou Yang slot@0 { 108*eb6f87ccSWenyou Yang reg = <0>; 109*eb6f87ccSWenyou Yang bus-width = <4>; 110*eb6f87ccSWenyou Yang cd-gpios = <&pioD 11 GPIO_ACTIVE_HIGH>; 111*eb6f87ccSWenyou Yang wp-gpios = <&pioD 29 GPIO_ACTIVE_HIGH>; 112*eb6f87ccSWenyou Yang }; 113*eb6f87ccSWenyou Yang }; 114*eb6f87ccSWenyou Yang 115*eb6f87ccSWenyou Yang pinctrl@fffff200 { 116*eb6f87ccSWenyou Yang camera_sensor { 117*eb6f87ccSWenyou Yang pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 { 118*eb6f87ccSWenyou Yang atmel,pins = 119*eb6f87ccSWenyou Yang <AT91_PIOB 31 AT91_PERIPH_B AT91_PINCTRL_NONE>; 120*eb6f87ccSWenyou Yang }; 121*eb6f87ccSWenyou Yang 122*eb6f87ccSWenyou Yang pinctrl_sensor_reset: sensor_reset-0 { 123*eb6f87ccSWenyou Yang atmel,pins = 124*eb6f87ccSWenyou Yang <AT91_PIOD 12 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; 125*eb6f87ccSWenyou Yang }; 126*eb6f87ccSWenyou Yang 127*eb6f87ccSWenyou Yang pinctrl_sensor_power: sensor_power-0 { 128*eb6f87ccSWenyou Yang atmel,pins = 129*eb6f87ccSWenyou Yang <AT91_PIOD 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; 130*eb6f87ccSWenyou Yang }; 131*eb6f87ccSWenyou Yang }; 132*eb6f87ccSWenyou Yang mmc0 { 133*eb6f87ccSWenyou Yang pinctrl_board_mmc0: mmc0-board { 134*eb6f87ccSWenyou Yang atmel,pins = 135*eb6f87ccSWenyou Yang <AT91_PIOD 10 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD10 gpio CD pin pull up and deglitch */ 136*eb6f87ccSWenyou Yang }; 137*eb6f87ccSWenyou Yang }; 138*eb6f87ccSWenyou Yang 139*eb6f87ccSWenyou Yang mmc1 { 140*eb6f87ccSWenyou Yang pinctrl_board_mmc1: mmc1-board { 141*eb6f87ccSWenyou Yang atmel,pins = 142*eb6f87ccSWenyou Yang <AT91_PIOD 11 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH /* PD11 gpio CD pin pull up and deglitch */ 143*eb6f87ccSWenyou Yang AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; /* PD29 gpio WP pin pull up */ 144*eb6f87ccSWenyou Yang }; 145*eb6f87ccSWenyou Yang }; 146*eb6f87ccSWenyou Yang 147*eb6f87ccSWenyou Yang pwm0 { 148*eb6f87ccSWenyou Yang pinctrl_pwm_leds: pwm-led { 149*eb6f87ccSWenyou Yang atmel,pins = 150*eb6f87ccSWenyou Yang <AT91_PIOD 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PD0 periph B */ 151*eb6f87ccSWenyou Yang AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>; /* PD31 periph B */ 152*eb6f87ccSWenyou Yang }; 153*eb6f87ccSWenyou Yang }; 154*eb6f87ccSWenyou Yang }; 155*eb6f87ccSWenyou Yang 156*eb6f87ccSWenyou Yang spi0: spi@fffa4000{ 157*eb6f87ccSWenyou Yang status = "okay"; 158*eb6f87ccSWenyou Yang cs-gpios = <&pioB 3 0>, <0>, <0>, <0>; 159*eb6f87ccSWenyou Yang mtd_dataflash@0 { 160*eb6f87ccSWenyou Yang compatible = "atmel,at45", "atmel,dataflash"; 161*eb6f87ccSWenyou Yang spi-max-frequency = <13000000>; 162*eb6f87ccSWenyou Yang reg = <0>; 163*eb6f87ccSWenyou Yang }; 164*eb6f87ccSWenyou Yang }; 165*eb6f87ccSWenyou Yang 166*eb6f87ccSWenyou Yang usb2: gadget@fff78000 { 167*eb6f87ccSWenyou Yang atmel,vbus-gpio = <&pioB 19 GPIO_ACTIVE_HIGH>; 168*eb6f87ccSWenyou Yang status = "okay"; 169*eb6f87ccSWenyou Yang }; 170*eb6f87ccSWenyou Yang 171*eb6f87ccSWenyou Yang adc0: adc@fffb0000 { 172*eb6f87ccSWenyou Yang pinctrl-names = "default"; 173*eb6f87ccSWenyou Yang pinctrl-0 = < 174*eb6f87ccSWenyou Yang &pinctrl_adc0_ad0 175*eb6f87ccSWenyou Yang &pinctrl_adc0_ad1 176*eb6f87ccSWenyou Yang &pinctrl_adc0_ad2 177*eb6f87ccSWenyou Yang &pinctrl_adc0_ad3 178*eb6f87ccSWenyou Yang &pinctrl_adc0_ad4 179*eb6f87ccSWenyou Yang &pinctrl_adc0_ad5 180*eb6f87ccSWenyou Yang &pinctrl_adc0_ad6 181*eb6f87ccSWenyou Yang &pinctrl_adc0_ad7>; 182*eb6f87ccSWenyou Yang atmel,adc-ts-wires = <4>; 183*eb6f87ccSWenyou Yang status = "okay"; 184*eb6f87ccSWenyou Yang }; 185*eb6f87ccSWenyou Yang 186*eb6f87ccSWenyou Yang isi@fffb4000 { 187*eb6f87ccSWenyou Yang pinctrl-names = "default"; 188*eb6f87ccSWenyou Yang pinctrl-0 = <&pinctrl_isi_data_0_7>; 189*eb6f87ccSWenyou Yang status = "okay"; 190*eb6f87ccSWenyou Yang port { 191*eb6f87ccSWenyou Yang isi_0: endpoint { 192*eb6f87ccSWenyou Yang remote-endpoint = <&ov2640_0>; 193*eb6f87ccSWenyou Yang bus-width = <8>; 194*eb6f87ccSWenyou Yang vsync-active = <1>; 195*eb6f87ccSWenyou Yang hsync-active = <1>; 196*eb6f87ccSWenyou Yang }; 197*eb6f87ccSWenyou Yang }; 198*eb6f87ccSWenyou Yang }; 199*eb6f87ccSWenyou Yang 200*eb6f87ccSWenyou Yang pwm0: pwm@fffb8000 { 201*eb6f87ccSWenyou Yang status = "okay"; 202*eb6f87ccSWenyou Yang 203*eb6f87ccSWenyou Yang pinctrl-names = "default"; 204*eb6f87ccSWenyou Yang pinctrl-0 = <&pinctrl_pwm_leds>; 205*eb6f87ccSWenyou Yang }; 206*eb6f87ccSWenyou Yang 207*eb6f87ccSWenyou Yang rtc@fffffd20 { 208*eb6f87ccSWenyou Yang atmel,rtt-rtc-time-reg = <&gpbr 0x0>; 209*eb6f87ccSWenyou Yang status = "okay"; 210*eb6f87ccSWenyou Yang }; 211*eb6f87ccSWenyou Yang 212*eb6f87ccSWenyou Yang gpbr: syscon@fffffd60 { 213*eb6f87ccSWenyou Yang status = "okay"; 214*eb6f87ccSWenyou Yang }; 215*eb6f87ccSWenyou Yang 216*eb6f87ccSWenyou Yang rtc@fffffdb0 { 217*eb6f87ccSWenyou Yang status = "okay"; 218*eb6f87ccSWenyou Yang }; 219*eb6f87ccSWenyou Yang }; 220*eb6f87ccSWenyou Yang 221*eb6f87ccSWenyou Yang fb0: fb@0x00500000 { 222*eb6f87ccSWenyou Yang display = <&display0>; 223*eb6f87ccSWenyou Yang status = "okay"; 224*eb6f87ccSWenyou Yang 225*eb6f87ccSWenyou Yang display0: display { 226*eb6f87ccSWenyou Yang bits-per-pixel = <32>; 227*eb6f87ccSWenyou Yang atmel,lcdcon-backlight; 228*eb6f87ccSWenyou Yang atmel,dmacon = <0x1>; 229*eb6f87ccSWenyou Yang atmel,lcdcon2 = <0x80008002>; 230*eb6f87ccSWenyou Yang atmel,guard-time = <9>; 231*eb6f87ccSWenyou Yang atmel,lcd-wiring-mode = "RGB"; 232*eb6f87ccSWenyou Yang 233*eb6f87ccSWenyou Yang display-timings { 234*eb6f87ccSWenyou Yang native-mode = <&timing0>; 235*eb6f87ccSWenyou Yang timing0: timing0 { 236*eb6f87ccSWenyou Yang clock-frequency = <9000000>; 237*eb6f87ccSWenyou Yang hactive = <480>; 238*eb6f87ccSWenyou Yang vactive = <272>; 239*eb6f87ccSWenyou Yang hback-porch = <1>; 240*eb6f87ccSWenyou Yang hfront-porch = <1>; 241*eb6f87ccSWenyou Yang vback-porch = <40>; 242*eb6f87ccSWenyou Yang vfront-porch = <1>; 243*eb6f87ccSWenyou Yang hsync-len = <45>; 244*eb6f87ccSWenyou Yang vsync-len = <1>; 245*eb6f87ccSWenyou Yang }; 246*eb6f87ccSWenyou Yang }; 247*eb6f87ccSWenyou Yang }; 248*eb6f87ccSWenyou Yang }; 249*eb6f87ccSWenyou Yang 250*eb6f87ccSWenyou Yang nand0: nand@40000000 { 251*eb6f87ccSWenyou Yang nand-bus-width = <8>; 252*eb6f87ccSWenyou Yang nand-ecc-mode = "soft"; 253*eb6f87ccSWenyou Yang nand-on-flash-bbt; 254*eb6f87ccSWenyou Yang status = "okay"; 255*eb6f87ccSWenyou Yang 256*eb6f87ccSWenyou Yang boot@0 { 257*eb6f87ccSWenyou Yang label = "bootstrap/uboot/kernel"; 258*eb6f87ccSWenyou Yang reg = <0x0 0x400000>; 259*eb6f87ccSWenyou Yang }; 260*eb6f87ccSWenyou Yang 261*eb6f87ccSWenyou Yang rootfs@400000 { 262*eb6f87ccSWenyou Yang label = "rootfs"; 263*eb6f87ccSWenyou Yang reg = <0x400000 0x3C00000>; 264*eb6f87ccSWenyou Yang }; 265*eb6f87ccSWenyou Yang 266*eb6f87ccSWenyou Yang data@4000000 { 267*eb6f87ccSWenyou Yang label = "data"; 268*eb6f87ccSWenyou Yang reg = <0x4000000 0xC000000>; 269*eb6f87ccSWenyou Yang }; 270*eb6f87ccSWenyou Yang }; 271*eb6f87ccSWenyou Yang 272*eb6f87ccSWenyou Yang usb0: ohci@00700000 { 273*eb6f87ccSWenyou Yang status = "okay"; 274*eb6f87ccSWenyou Yang num-ports = <2>; 275*eb6f87ccSWenyou Yang atmel,vbus-gpio = <&pioD 1 GPIO_ACTIVE_LOW 276*eb6f87ccSWenyou Yang &pioD 3 GPIO_ACTIVE_LOW>; 277*eb6f87ccSWenyou Yang }; 278*eb6f87ccSWenyou Yang 279*eb6f87ccSWenyou Yang usb1: ehci@00800000 { 280*eb6f87ccSWenyou Yang status = "okay"; 281*eb6f87ccSWenyou Yang }; 282*eb6f87ccSWenyou Yang }; 283*eb6f87ccSWenyou Yang 284*eb6f87ccSWenyou Yang leds { 285*eb6f87ccSWenyou Yang compatible = "gpio-leds"; 286*eb6f87ccSWenyou Yang 287*eb6f87ccSWenyou Yang d8 { 288*eb6f87ccSWenyou Yang label = "d8"; 289*eb6f87ccSWenyou Yang gpios = <&pioD 30 GPIO_ACTIVE_HIGH>; 290*eb6f87ccSWenyou Yang linux,default-trigger = "heartbeat"; 291*eb6f87ccSWenyou Yang }; 292*eb6f87ccSWenyou Yang }; 293*eb6f87ccSWenyou Yang 294*eb6f87ccSWenyou Yang pwmleds { 295*eb6f87ccSWenyou Yang compatible = "pwm-leds"; 296*eb6f87ccSWenyou Yang 297*eb6f87ccSWenyou Yang d6 { 298*eb6f87ccSWenyou Yang label = "d6"; 299*eb6f87ccSWenyou Yang pwms = <&pwm0 3 5000 PWM_POLARITY_INVERTED>; 300*eb6f87ccSWenyou Yang max-brightness = <255>; 301*eb6f87ccSWenyou Yang linux,default-trigger = "nand-disk"; 302*eb6f87ccSWenyou Yang }; 303*eb6f87ccSWenyou Yang 304*eb6f87ccSWenyou Yang d7 { 305*eb6f87ccSWenyou Yang label = "d7"; 306*eb6f87ccSWenyou Yang pwms = <&pwm0 1 5000 PWM_POLARITY_INVERTED>; 307*eb6f87ccSWenyou Yang max-brightness = <255>; 308*eb6f87ccSWenyou Yang linux,default-trigger = "mmc0"; 309*eb6f87ccSWenyou Yang }; 310*eb6f87ccSWenyou Yang }; 311*eb6f87ccSWenyou Yang 312*eb6f87ccSWenyou Yang gpio_keys { 313*eb6f87ccSWenyou Yang compatible = "gpio-keys"; 314*eb6f87ccSWenyou Yang 315*eb6f87ccSWenyou Yang left_click { 316*eb6f87ccSWenyou Yang label = "left_click"; 317*eb6f87ccSWenyou Yang gpios = <&pioB 6 GPIO_ACTIVE_LOW>; 318*eb6f87ccSWenyou Yang linux,code = <272>; 319*eb6f87ccSWenyou Yang wakeup-source; 320*eb6f87ccSWenyou Yang }; 321*eb6f87ccSWenyou Yang 322*eb6f87ccSWenyou Yang right_click { 323*eb6f87ccSWenyou Yang label = "right_click"; 324*eb6f87ccSWenyou Yang gpios = <&pioB 7 GPIO_ACTIVE_LOW>; 325*eb6f87ccSWenyou Yang linux,code = <273>; 326*eb6f87ccSWenyou Yang wakeup-source; 327*eb6f87ccSWenyou Yang }; 328*eb6f87ccSWenyou Yang 329*eb6f87ccSWenyou Yang left { 330*eb6f87ccSWenyou Yang label = "Joystick Left"; 331*eb6f87ccSWenyou Yang gpios = <&pioB 14 GPIO_ACTIVE_LOW>; 332*eb6f87ccSWenyou Yang linux,code = <105>; 333*eb6f87ccSWenyou Yang }; 334*eb6f87ccSWenyou Yang 335*eb6f87ccSWenyou Yang right { 336*eb6f87ccSWenyou Yang label = "Joystick Right"; 337*eb6f87ccSWenyou Yang gpios = <&pioB 15 GPIO_ACTIVE_LOW>; 338*eb6f87ccSWenyou Yang linux,code = <106>; 339*eb6f87ccSWenyou Yang }; 340*eb6f87ccSWenyou Yang 341*eb6f87ccSWenyou Yang up { 342*eb6f87ccSWenyou Yang label = "Joystick Up"; 343*eb6f87ccSWenyou Yang gpios = <&pioB 16 GPIO_ACTIVE_LOW>; 344*eb6f87ccSWenyou Yang linux,code = <103>; 345*eb6f87ccSWenyou Yang }; 346*eb6f87ccSWenyou Yang 347*eb6f87ccSWenyou Yang down { 348*eb6f87ccSWenyou Yang label = "Joystick Down"; 349*eb6f87ccSWenyou Yang gpios = <&pioB 17 GPIO_ACTIVE_LOW>; 350*eb6f87ccSWenyou Yang linux,code = <108>; 351*eb6f87ccSWenyou Yang }; 352*eb6f87ccSWenyou Yang 353*eb6f87ccSWenyou Yang enter { 354*eb6f87ccSWenyou Yang label = "Joystick Press"; 355*eb6f87ccSWenyou Yang gpios = <&pioB 18 GPIO_ACTIVE_LOW>; 356*eb6f87ccSWenyou Yang linux,code = <28>; 357*eb6f87ccSWenyou Yang }; 358*eb6f87ccSWenyou Yang }; 359*eb6f87ccSWenyou Yang}; 360