0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /*
0003 * sama5d3xmb.dts - Device Tree file for SAMA5D3x mother board
0004 *
0005 * Copyright (C) 2013 Atmel,
0006 * 2013 Ludovic Desroches <ludovic.desroches@atmel.com>
0007 */
0008 #include "sama5d3xcm.dtsi"
0009
0010 / {
0011 compatible = "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d3", "atmel,sama5";
0012
0013 ahb {
0014 apb {
0015 mmc0: mmc@f0000000 {
0016 pinctrl-names = "default";
0017 pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
0018 status = "okay";
0019 slot@0 {
0020 reg = <0>;
0021 bus-width = <4>;
0022 cd-gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
0023 };
0024 };
0025
0026 spi0: spi@f0004000 {
0027 dmas = <0>, <0>; /* Do not use DMA for spi0 */
0028
0029 flash@0 {
0030 compatible = "atmel,at25df321a";
0031 spi-max-frequency = <50000000>;
0032 reg = <0>;
0033 };
0034 };
0035
0036 ssc0: ssc@f0008000 {
0037 atmel,clk-from-rk-pin;
0038 };
0039
0040 /*
0041 * i2c0 conflicts with ISI:
0042 * disable it to allow the use of ISI
0043 * can not enable audio when i2c0 disabled
0044 */
0045 i2c0: i2c@f0014000 {
0046 wm8904: wm8904@1a {
0047 compatible = "wlf,wm8904";
0048 reg = <0x1a>;
0049 clocks = <&pmc PMC_TYPE_SYSTEM 8>;
0050 clock-names = "mclk";
0051 };
0052 };
0053
0054 i2c1: i2c@f0018000 {
0055 ov2640: camera@30 {
0056 compatible = "ovti,ov2640";
0057 reg = <0x30>;
0058 pinctrl-names = "default";
0059 pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
0060 resetb-gpios = <&pioE 24 GPIO_ACTIVE_LOW>;
0061 pwdn-gpios = <&pioE 29 GPIO_ACTIVE_HIGH>;
0062 /* use pck1 for the master clock of ov2640 */
0063 clocks = <&pmc PMC_TYPE_SYSTEM 9>;
0064 clock-names = "xvclk";
0065 assigned-clocks = <&pmc PMC_TYPE_SYSTEM 9>;
0066 assigned-clock-rates = <25000000>;
0067
0068 port {
0069 ov2640_0: endpoint {
0070 remote-endpoint = <&isi_0>;
0071 bus-width = <8>;
0072 };
0073 };
0074 };
0075 };
0076
0077 usart1: serial@f0020000 {
0078 dmas = <0>, <0>; /* Do not use DMA for usart1 */
0079 pinctrl-names = "default";
0080 pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
0081 status = "okay";
0082 };
0083
0084 isi: isi@f0034000 {
0085 port {
0086 isi_0: endpoint {
0087 remote-endpoint = <&ov2640_0>;
0088 bus-width = <8>;
0089 vsync-active = <1>;
0090 hsync-active = <1>;
0091 };
0092 };
0093 };
0094
0095 mmc1: mmc@f8000000 {
0096 pinctrl-names = "default";
0097 pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
0098 status = "okay";
0099 slot@0 {
0100 reg = <0>;
0101 bus-width = <4>;
0102 cd-gpios = <&pioD 18 GPIO_ACTIVE_HIGH>;
0103 };
0104 };
0105
0106 adc0: adc@f8018000 {
0107 pinctrl-names = "default";
0108 pinctrl-0 = <
0109 &pinctrl_adc0_adtrg
0110 &pinctrl_adc0_ad0
0111 &pinctrl_adc0_ad1
0112 &pinctrl_adc0_ad2
0113 &pinctrl_adc0_ad3
0114 &pinctrl_adc0_ad4
0115 >;
0116 status = "okay";
0117 };
0118
0119 pinctrl@fffff200 {
0120 board {
0121 pinctrl_mmc0_cd: mmc0_cd {
0122 atmel,pins =
0123 <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD17 GPIO with pullup deglitch */
0124 };
0125
0126 pinctrl_mmc1_cd: mmc1_cd {
0127 atmel,pins =
0128 <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD18 GPIO with pullup deglitch */
0129 };
0130
0131 pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
0132 atmel,pins =
0133 <AT91_PIOD 30 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD30 periph B */
0134 };
0135
0136 pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 {
0137 atmel,pins =
0138 <AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD31 periph B ISI_MCK */
0139 };
0140
0141 pinctrl_sensor_reset: sensor_reset-0 {
0142 atmel,pins =
0143 <AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; /* PE24 gpio */
0144 };
0145
0146 pinctrl_sensor_power: sensor_power-0 {
0147 atmel,pins =
0148 <AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; /* PE29 gpio */
0149 };
0150
0151 pinctrl_usba_vbus: usba_vbus {
0152 atmel,pins =
0153 <AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PD29 GPIO with deglitch */
0154 };
0155 };
0156 };
0157
0158 dbgu: serial@ffffee00 {
0159 dmas = <0>, <0>; /* Do not use DMA for dbgu */
0160 status = "okay";
0161 };
0162
0163 watchdog@fffffe40 {
0164 status = "okay";
0165 };
0166 };
0167
0168 usb0: gadget@500000 {
0169 atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>;
0170 pinctrl-names = "default";
0171 pinctrl-0 = <&pinctrl_usba_vbus>;
0172 status = "okay";
0173 };
0174
0175 usb1: ohci@600000 {
0176 num-ports = <3>;
0177 atmel,vbus-gpio = <&pioD 25 GPIO_ACTIVE_HIGH
0178 &pioD 26 GPIO_ACTIVE_LOW
0179 &pioD 27 GPIO_ACTIVE_LOW
0180 >;
0181 status = "okay";
0182 };
0183
0184 usb2: ehci@700000 {
0185 status = "okay";
0186 };
0187 };
0188
0189 sound {
0190 compatible = "atmel,asoc-wm8904";
0191 pinctrl-names = "default";
0192 pinctrl-0 = <&pinctrl_pck0_as_audio_mck>;
0193
0194 atmel,model = "wm8904 @ SAMA5D3EK";
0195 atmel,audio-routing =
0196 "Headphone Jack", "HPOUTL",
0197 "Headphone Jack", "HPOUTR",
0198 "IN2L", "Line In Jack",
0199 "IN2R", "Line In Jack",
0200 "Mic", "MICBIAS",
0201 "IN1L", "Mic";
0202
0203 atmel,ssc-controller = <&ssc0>;
0204 atmel,audio-codec = <&wm8904>;
0205
0206 status = "disabled";
0207 };
0208 };