1*110fa979SWenyou Yang/* 2*110fa979SWenyou Yang * sama5d3xmb_cmp.dts - Device Tree file for SAMA5D3x CMP mother board 3*110fa979SWenyou Yang * 4*110fa979SWenyou Yang * Copyright (C) 2016 Atmel, 5*110fa979SWenyou Yang * 6*110fa979SWenyou Yang * Licensed under GPLv2 or later. 7*110fa979SWenyou Yang */ 8*110fa979SWenyou Yang#include "sama5d3xcm_cmp.dtsi" 9*110fa979SWenyou Yang 10*110fa979SWenyou Yang/ { 11*110fa979SWenyou Yang compatible = "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d3", "atmel,sama5"; 12*110fa979SWenyou Yang 13*110fa979SWenyou Yang chosen { 14*110fa979SWenyou Yang u-boot,dm-pre-reloc; 15*110fa979SWenyou Yang stdout-path = &dbgu; 16*110fa979SWenyou Yang }; 17*110fa979SWenyou Yang 18*110fa979SWenyou Yang ahb { 19*110fa979SWenyou Yang apb { 20*110fa979SWenyou Yang mmc0: mmc@f0000000 { 21*110fa979SWenyou Yang pinctrl-names = "default"; 22*110fa979SWenyou Yang pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>; 23*110fa979SWenyou Yang status = "okay"; 24*110fa979SWenyou Yang slot@0 { 25*110fa979SWenyou Yang reg = <0>; 26*110fa979SWenyou Yang bus-width = <4>; 27*110fa979SWenyou Yang cd-gpios = <&pioD 17 GPIO_ACTIVE_HIGH>; 28*110fa979SWenyou Yang }; 29*110fa979SWenyou Yang }; 30*110fa979SWenyou Yang 31*110fa979SWenyou Yang spi0: spi@f0004000 { 32*110fa979SWenyou Yang dmas = <0>, <0>; /* Do not use DMA for spi0 */ 33*110fa979SWenyou Yang 34*110fa979SWenyou Yang spi_flash@0 { 35*110fa979SWenyou Yang compatible = "spi-flash"; 36*110fa979SWenyou Yang spi-max-frequency = <50000000>; 37*110fa979SWenyou Yang reg = <0>; 38*110fa979SWenyou Yang }; 39*110fa979SWenyou Yang }; 40*110fa979SWenyou Yang 41*110fa979SWenyou Yang ssc0: ssc@f0008000 { 42*110fa979SWenyou Yang atmel,clk-from-rk-pin; 43*110fa979SWenyou Yang }; 44*110fa979SWenyou Yang 45*110fa979SWenyou Yang /* 46*110fa979SWenyou Yang * i2c0 conflicts with ISI: 47*110fa979SWenyou Yang * disable it to allow the use of ISI 48*110fa979SWenyou Yang * can not enable audio when i2c0 disabled 49*110fa979SWenyou Yang */ 50*110fa979SWenyou Yang i2c0: i2c@f0014000 { 51*110fa979SWenyou Yang wm8904: wm8904@1a { 52*110fa979SWenyou Yang compatible = "wlf,wm8904"; 53*110fa979SWenyou Yang reg = <0x1a>; 54*110fa979SWenyou Yang clocks = <&pck0>; 55*110fa979SWenyou Yang clock-names = "mclk"; 56*110fa979SWenyou Yang }; 57*110fa979SWenyou Yang }; 58*110fa979SWenyou Yang 59*110fa979SWenyou Yang i2c1: i2c@f0018000 { 60*110fa979SWenyou Yang ov2640: camera@0x30 { 61*110fa979SWenyou Yang compatible = "ovti,ov2640"; 62*110fa979SWenyou Yang reg = <0x30>; 63*110fa979SWenyou Yang pinctrl-names = "default"; 64*110fa979SWenyou Yang pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>; 65*110fa979SWenyou Yang resetb-gpios = <&pioE 24 GPIO_ACTIVE_LOW>; 66*110fa979SWenyou Yang pwdn-gpios = <&pioE 29 GPIO_ACTIVE_HIGH>; 67*110fa979SWenyou Yang /* use pck1 for the master clock of ov2640 */ 68*110fa979SWenyou Yang clocks = <&pck1>; 69*110fa979SWenyou Yang clock-names = "xvclk"; 70*110fa979SWenyou Yang assigned-clocks = <&pck1>; 71*110fa979SWenyou Yang assigned-clock-rates = <25000000>; 72*110fa979SWenyou Yang 73*110fa979SWenyou Yang port { 74*110fa979SWenyou Yang ov2640_0: endpoint { 75*110fa979SWenyou Yang remote-endpoint = <&isi_0>; 76*110fa979SWenyou Yang bus-width = <8>; 77*110fa979SWenyou Yang }; 78*110fa979SWenyou Yang }; 79*110fa979SWenyou Yang }; 80*110fa979SWenyou Yang }; 81*110fa979SWenyou Yang 82*110fa979SWenyou Yang usart1: serial@f0020000 { 83*110fa979SWenyou Yang dmas = <0>, <0>; /* Do not use DMA for usart1 */ 84*110fa979SWenyou Yang pinctrl-names = "default"; 85*110fa979SWenyou Yang pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>; 86*110fa979SWenyou Yang status = "okay"; 87*110fa979SWenyou Yang }; 88*110fa979SWenyou Yang 89*110fa979SWenyou Yang isi: isi@f0034000 { 90*110fa979SWenyou Yang port { 91*110fa979SWenyou Yang isi_0: endpoint { 92*110fa979SWenyou Yang remote-endpoint = <&ov2640_0>; 93*110fa979SWenyou Yang bus-width = <8>; 94*110fa979SWenyou Yang vsync-active = <1>; 95*110fa979SWenyou Yang hsync-active = <1>; 96*110fa979SWenyou Yang }; 97*110fa979SWenyou Yang }; 98*110fa979SWenyou Yang }; 99*110fa979SWenyou Yang 100*110fa979SWenyou Yang mmc1: mmc@f8000000 { 101*110fa979SWenyou Yang pinctrl-names = "default"; 102*110fa979SWenyou Yang pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>; 103*110fa979SWenyou Yang status = "okay"; 104*110fa979SWenyou Yang slot@0 { 105*110fa979SWenyou Yang reg = <0>; 106*110fa979SWenyou Yang bus-width = <4>; 107*110fa979SWenyou Yang cd-gpios = <&pioD 18 GPIO_ACTIVE_HIGH>; 108*110fa979SWenyou Yang }; 109*110fa979SWenyou Yang }; 110*110fa979SWenyou Yang 111*110fa979SWenyou Yang adc0: adc@f8018000 { 112*110fa979SWenyou Yang pinctrl-names = "default"; 113*110fa979SWenyou Yang pinctrl-0 = < 114*110fa979SWenyou Yang &pinctrl_adc0_adtrg 115*110fa979SWenyou Yang &pinctrl_adc0_ad0 116*110fa979SWenyou Yang &pinctrl_adc0_ad1 117*110fa979SWenyou Yang &pinctrl_adc0_ad2 118*110fa979SWenyou Yang &pinctrl_adc0_ad3 119*110fa979SWenyou Yang &pinctrl_adc0_ad4 120*110fa979SWenyou Yang >; 121*110fa979SWenyou Yang status = "okay"; 122*110fa979SWenyou Yang }; 123*110fa979SWenyou Yang 124*110fa979SWenyou Yang macb1: ethernet@f802c000 { 125*110fa979SWenyou Yang phy-mode = "rmii"; 126*110fa979SWenyou Yang 127*110fa979SWenyou Yang #address-cells = <1>; 128*110fa979SWenyou Yang #size-cells = <0>; 129*110fa979SWenyou Yang phy0: ethernet-phy@1 { 130*110fa979SWenyou Yang /*interrupt-parent = <&pioE>;*/ 131*110fa979SWenyou Yang /*interrupts = <30 IRQ_TYPE_EDGE_FALLING>;*/ 132*110fa979SWenyou Yang reg = <1>; 133*110fa979SWenyou Yang }; 134*110fa979SWenyou Yang }; 135*110fa979SWenyou Yang 136*110fa979SWenyou Yang pinctrl@fffff200 { 137*110fa979SWenyou Yang board { 138*110fa979SWenyou Yang pinctrl_gpio_keys: gpio_keys { 139*110fa979SWenyou Yang atmel,pins = 140*110fa979SWenyou Yang <AT91_PIOE 27 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; 141*110fa979SWenyou Yang }; 142*110fa979SWenyou Yang 143*110fa979SWenyou Yang pinctrl_mmc0_cd: mmc0_cd { 144*110fa979SWenyou Yang atmel,pins = 145*110fa979SWenyou Yang <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD17 GPIO with pullup deglitch */ 146*110fa979SWenyou Yang }; 147*110fa979SWenyou Yang 148*110fa979SWenyou Yang pinctrl_mmc1_cd: mmc1_cd { 149*110fa979SWenyou Yang atmel,pins = 150*110fa979SWenyou Yang <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD18 GPIO with pullup deglitch */ 151*110fa979SWenyou Yang }; 152*110fa979SWenyou Yang 153*110fa979SWenyou Yang pinctrl_pck0_as_audio_mck: pck0_as_audio_mck { 154*110fa979SWenyou Yang atmel,pins = 155*110fa979SWenyou Yang <AT91_PIOD 30 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD30 periph B */ 156*110fa979SWenyou Yang }; 157*110fa979SWenyou Yang 158*110fa979SWenyou Yang pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 { 159*110fa979SWenyou Yang atmel,pins = 160*110fa979SWenyou Yang <AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD31 periph B ISI_MCK */ 161*110fa979SWenyou Yang }; 162*110fa979SWenyou Yang 163*110fa979SWenyou Yang pinctrl_sensor_reset: sensor_reset-0 { 164*110fa979SWenyou Yang atmel,pins = 165*110fa979SWenyou Yang <AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; /* PE24 gpio */ 166*110fa979SWenyou Yang }; 167*110fa979SWenyou Yang 168*110fa979SWenyou Yang pinctrl_sensor_power: sensor_power-0 { 169*110fa979SWenyou Yang atmel,pins = 170*110fa979SWenyou Yang <AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; /* PE29 gpio */ 171*110fa979SWenyou Yang }; 172*110fa979SWenyou Yang 173*110fa979SWenyou Yang pinctrl_usba_vbus: usba_vbus { 174*110fa979SWenyou Yang atmel,pins = 175*110fa979SWenyou Yang <AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PD29 GPIO with deglitch */ 176*110fa979SWenyou Yang }; 177*110fa979SWenyou Yang }; 178*110fa979SWenyou Yang }; 179*110fa979SWenyou Yang 180*110fa979SWenyou Yang dbgu: serial@ffffee00 { 181*110fa979SWenyou Yang dmas = <0>, <0>; /* Do not use DMA for dbgu */ 182*110fa979SWenyou Yang status = "okay"; 183*110fa979SWenyou Yang u-boot,dm-pre-reloc; 184*110fa979SWenyou Yang }; 185*110fa979SWenyou Yang 186*110fa979SWenyou Yang watchdog@fffffe40 { 187*110fa979SWenyou Yang status = "okay"; 188*110fa979SWenyou Yang }; 189*110fa979SWenyou Yang }; 190*110fa979SWenyou Yang 191*110fa979SWenyou Yang usb0: gadget@00500000 { 192*110fa979SWenyou Yang atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>; 193*110fa979SWenyou Yang pinctrl-names = "default"; 194*110fa979SWenyou Yang pinctrl-0 = <&pinctrl_usba_vbus>; 195*110fa979SWenyou Yang status = "okay"; 196*110fa979SWenyou Yang }; 197*110fa979SWenyou Yang }; 198*110fa979SWenyou Yang 199*110fa979SWenyou Yang sound { 200*110fa979SWenyou Yang compatible = "atmel,asoc-wm8904"; 201*110fa979SWenyou Yang pinctrl-names = "default"; 202*110fa979SWenyou Yang pinctrl-0 = <&pinctrl_pck0_as_audio_mck>; 203*110fa979SWenyou Yang 204*110fa979SWenyou Yang atmel,model = "wm8904 @ SAMA5D3EK"; 205*110fa979SWenyou Yang atmel,audio-routing = 206*110fa979SWenyou Yang "Headphone Jack", "HPOUTL", 207*110fa979SWenyou Yang "Headphone Jack", "HPOUTR", 208*110fa979SWenyou Yang "IN2L", "Line In Jack", 209*110fa979SWenyou Yang "IN2R", "Line In Jack", 210*110fa979SWenyou Yang "Mic", "MICBIAS", 211*110fa979SWenyou Yang "IN1L", "Mic"; 212*110fa979SWenyou Yang 213*110fa979SWenyou Yang atmel,ssc-controller = <&ssc0>; 214*110fa979SWenyou Yang atmel,audio-codec = <&wm8904>; 215*110fa979SWenyou Yang 216*110fa979SWenyou Yang status = "disabled"; 217*110fa979SWenyou Yang }; 218*110fa979SWenyou Yang 219*110fa979SWenyou Yang /* Conflict with LCD pins */ 220*110fa979SWenyou Yang gpio_keys { 221*110fa979SWenyou Yang compatible = "gpio-keys"; 222*110fa979SWenyou Yang status = "okay"; 223*110fa979SWenyou Yang 224*110fa979SWenyou Yang pinctrl-names = "default"; 225*110fa979SWenyou Yang pinctrl-0 = <&pinctrl_gpio_keys>; 226*110fa979SWenyou Yang 227*110fa979SWenyou Yang pb_user1 { 228*110fa979SWenyou Yang label = "pb_user1"; 229*110fa979SWenyou Yang gpios = <&pioE 27 GPIO_ACTIVE_HIGH>; 230*110fa979SWenyou Yang linux,code = <0x100>; 231*110fa979SWenyou Yang gpio-key,wakeup; 232*110fa979SWenyou Yang }; 233*110fa979SWenyou Yang }; 234*110fa979SWenyou Yang}; 235