0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003 * sama5d3xmb_cmp.dts - Device Tree file for SAMA5D3x CMP mother board
0004 *
0005 * Copyright (C) 2016 Atmel,
0006 */
0007 #include "sama5d3xcm_cmp.dtsi"
0008
0009 / {
0010 compatible = "atmel,sama5d3xmb-cmp", "atmel,sama5d3xcm-cmp", "atmel,sama5d3", "atmel,sama5";
0011
0012 ahb {
0013 apb {
0014 mmc0: mmc@f0000000 {
0015 pinctrl-names = "default";
0016 pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
0017 status = "okay";
0018 slot@0 {
0019 reg = <0>;
0020 bus-width = <4>;
0021 cd-gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
0022 };
0023 };
0024
0025 spi0: spi@f0004000 {
0026 dmas = <0>, <0>; /* Do not use DMA for spi0 */
0027
0028 flash@0 {
0029 compatible = "atmel,at25df321a";
0030 spi-max-frequency = <50000000>;
0031 reg = <0>;
0032 };
0033 };
0034
0035 ssc0: ssc@f0008000 {
0036 atmel,clk-from-rk-pin;
0037 };
0038
0039 /*
0040 * i2c0 conflicts with ISI:
0041 * disable it to allow the use of ISI
0042 * can not enable audio when i2c0 disabled
0043 */
0044 i2c0: i2c@f0014000 {
0045 wm8904: wm8904@1a {
0046 compatible = "wlf,wm8904";
0047 reg = <0x1a>;
0048 clocks = <&pmc PMC_TYPE_SYSTEM 8>;
0049 clock-names = "mclk";
0050 };
0051 };
0052
0053 i2c1: i2c@f0018000 {
0054 ov2640: camera@30 {
0055 compatible = "ovti,ov2640";
0056 reg = <0x30>;
0057 pinctrl-names = "default";
0058 pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
0059 resetb-gpios = <&pioE 24 GPIO_ACTIVE_LOW>;
0060 pwdn-gpios = <&pioE 29 GPIO_ACTIVE_HIGH>;
0061 /* use pck1 for the master clock of ov2640 */
0062 clocks = <&pmc PMC_TYPE_SYSTEM 9>;
0063 clock-names = "xvclk";
0064 assigned-clocks = <&pmc PMC_TYPE_SYSTEM 9>;
0065 assigned-clock-rates = <25000000>;
0066
0067 port {
0068 ov2640_0: endpoint {
0069 remote-endpoint = <&isi_0>;
0070 bus-width = <8>;
0071 };
0072 };
0073 };
0074 };
0075
0076 usart1: serial@f0020000 {
0077 dmas = <0>, <0>; /* Do not use DMA for usart1 */
0078 pinctrl-names = "default";
0079 pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
0080 status = "okay";
0081 };
0082
0083 isi: isi@f0034000 {
0084 port {
0085 isi_0: endpoint {
0086 remote-endpoint = <&ov2640_0>;
0087 bus-width = <8>;
0088 vsync-active = <1>;
0089 hsync-active = <1>;
0090 };
0091 };
0092 };
0093
0094 mmc1: mmc@f8000000 {
0095 pinctrl-names = "default";
0096 pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
0097 status = "okay";
0098 slot@0 {
0099 reg = <0>;
0100 bus-width = <4>;
0101 cd-gpios = <&pioD 18 GPIO_ACTIVE_HIGH>;
0102 };
0103 };
0104
0105 adc0: adc@f8018000 {
0106 pinctrl-names = "default", "sleep";
0107 pinctrl-0 = <
0108 &pinctrl_adc0_adtrg
0109 &pinctrl_adc0_ad0
0110 &pinctrl_adc0_ad1
0111 &pinctrl_adc0_ad2
0112 &pinctrl_adc0_ad3
0113 &pinctrl_adc0_ad4
0114 >;
0115 pinctrl-1 = <
0116 &pinctrl_adc0_adtrg_sleep
0117 &pinctrl_adc0_ad0_sleep
0118 &pinctrl_adc0_ad1_sleep
0119 &pinctrl_adc0_ad2_sleep
0120 &pinctrl_adc0_ad3_sleep
0121 &pinctrl_adc0_ad4_sleep
0122 >;
0123 status = "okay";
0124 };
0125
0126 macb1: ethernet@f802c000 {
0127 phy-mode = "rmii";
0128
0129 #address-cells = <1>;
0130 #size-cells = <0>;
0131 phy0: ethernet-phy@1 {
0132 /*interrupt-parent = <&pioE>;*/
0133 /*interrupts = <30 IRQ_TYPE_EDGE_FALLING>;*/
0134 reg = <1>;
0135 };
0136 };
0137
0138 pinctrl@fffff200 {
0139 adc0 {
0140 pinctrl_adc0_adtrg_sleep: adc0_adtrg_1 {
0141 atmel,pins =
0142 <AT91_PIOD 19 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
0143 };
0144 pinctrl_adc0_ad0_sleep: adc0_ad0_1 {
0145 atmel,pins =
0146 <AT91_PIOD 20 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
0147 };
0148 pinctrl_adc0_ad1_sleep: adc0_ad1_1 {
0149 atmel,pins =
0150 <AT91_PIOD 21 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
0151 };
0152 pinctrl_adc0_ad2_sleep: adc0_ad2_1 {
0153 atmel,pins =
0154 <AT91_PIOD 22 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
0155 };
0156 pinctrl_adc0_ad3_sleep: adc0_ad3_1 {
0157 atmel,pins =
0158 <AT91_PIOD 23 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
0159 };
0160 pinctrl_adc0_ad4_sleep: adc0_ad4_1 {
0161 atmel,pins =
0162 <AT91_PIOD 24 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
0163 };
0164 };
0165
0166 board {
0167 pinctrl_gpio_keys: gpio_keys {
0168 atmel,pins =
0169 <AT91_PIOE 27 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
0170 };
0171
0172 pinctrl_mmc0_cd: mmc0_cd {
0173 atmel,pins =
0174 <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
0175 };
0176
0177 pinctrl_mmc1_cd: mmc1_cd {
0178 atmel,pins =
0179 <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
0180 };
0181
0182 pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
0183 atmel,pins =
0184 <AT91_PIOD 30 AT91_PERIPH_B AT91_PINCTRL_NONE>;
0185 };
0186
0187 pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 {
0188 atmel,pins =
0189 <AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_NONE>;
0190 };
0191
0192 pinctrl_sensor_reset: sensor_reset-0 {
0193 atmel,pins =
0194 <AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
0195 };
0196
0197 pinctrl_sensor_power: sensor_power-0 {
0198 atmel,pins =
0199 <AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
0200 };
0201
0202 pinctrl_usba_vbus: usba_vbus {
0203 atmel,pins =
0204 <AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
0205 };
0206 };
0207 };
0208
0209 dbgu: serial@ffffee00 {
0210 dmas = <0>, <0>; /* Do not use DMA for dbgu */
0211 status = "okay";
0212 };
0213
0214 watchdog@fffffe40 {
0215 status = "okay";
0216 };
0217 };
0218
0219 usb0: gadget@500000 {
0220 atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>;
0221 pinctrl-names = "default";
0222 pinctrl-0 = <&pinctrl_usba_vbus>;
0223 status = "okay";
0224 };
0225 };
0226
0227 sound {
0228 compatible = "atmel,asoc-wm8904";
0229 pinctrl-names = "default";
0230 pinctrl-0 = <&pinctrl_pck0_as_audio_mck>;
0231
0232 atmel,model = "wm8904 @ SAMA5D3EK";
0233 atmel,audio-routing =
0234 "Headphone Jack", "HPOUTL",
0235 "Headphone Jack", "HPOUTR",
0236 "IN2L", "Line In Jack",
0237 "IN2R", "Line In Jack",
0238 "Mic", "MICBIAS",
0239 "IN1L", "Mic";
0240
0241 atmel,ssc-controller = <&ssc0>;
0242 atmel,audio-codec = <&wm8904>;
0243
0244 status = "disabled";
0245 };
0246
0247 /* Conflict with LCD pins */
0248 gpio_keys {
0249 compatible = "gpio-keys";
0250 status = "okay";
0251
0252 #address-cells = <1>;
0253 #size-cells = <0>;
0254 pinctrl-names = "default";
0255 pinctrl-0 = <&pinctrl_gpio_keys>;
0256
0257 pb_user1 {
0258 label = "pb_user1";
0259 gpios = <&pioE 27 GPIO_ACTIVE_HIGH>;
0260 linux,code = <0x100>;
0261 wakeup-source;
0262 };
0263 };
0264 };