Back to home page

OSCL-LXR

 
 

    


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 };