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