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