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