Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: at91/dt: sama5d4: Add support for DENX MA5D4 SoM and EVK

Add support for the DENX MA5D4 SoM and MA5D4EVK board. The system
consists of a SoM with eMMC, SPI NOR for booting, 2x SPI CAN chip
and an EVK with microSD slot, 2x UART, 2x CAN port, 3x USB port,
LEDs and expansion headers.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Cc: Josh Wu <josh.wu@atmel.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>

authored by

Marek Vasut and committed by
Nicolas Ferre
ca5a4b56 49f66974

+298
+1
arch/arm/boot/dts/Makefile
··· 48 48 sama5d34ek.dtb \ 49 49 sama5d35ek.dtb \ 50 50 sama5d36ek.dtb \ 51 + at91-sama5d4_ma5d4evk.dtb \ 51 52 at91-sama5d4_xplained.dtb \ 52 53 at91-sama5d4ek.dtb 53 54 dtb-$(CONFIG_ARCH_ATLAS6) += \
+127
arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi
··· 1 + /* 2 + * Copyright (C) 2015 Marek Vasut <marex@denx.de> 3 + * 4 + * The code contained herein is licensed under the GNU General Public 5 + * License. You may obtain a copy of the GNU General Public License 6 + * Version 2 or later at the following locations: 7 + * 8 + * http://www.opensource.org/licenses/gpl-license.html 9 + * http://www.gnu.org/copyleft/gpl.html 10 + */ 11 + 12 + #include "sama5d4.dtsi" 13 + 14 + / { 15 + model = "DENX MA5D4"; 16 + compatible = "denx,ma5d4", "atmel,sama5d4", "atmel,sama5"; 17 + 18 + memory { 19 + reg = <0x20000000 0x10000000>; 20 + }; 21 + 22 + clocks { 23 + main_clock: main_clock { 24 + compatible = "atmel,osc", "fixed-clock"; 25 + clock-frequency = <12000000>; 26 + }; 27 + 28 + clk20m: clk20m { 29 + compatible = "fixed-clock"; 30 + #clock-cells = <0>; 31 + clock-frequency = <20000000>; 32 + clock-output-names = "clk20m"; 33 + }; 34 + }; 35 + 36 + ahb { 37 + apb { 38 + mmc0: mmc@f8000000 { 39 + pinctrl-names = "default"; 40 + pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7>; 41 + vmmc-supply = <&vcc_mmc0_reg>; 42 + vqmmc-supply = <&vcc_3v3_reg>; 43 + status = "okay"; 44 + slot@0 { 45 + reg = <0>; 46 + bus-width = <8>; 47 + broken-cd; 48 + }; 49 + }; 50 + 51 + spi0: spi@f8010000 { 52 + cs-gpios = <&pioC 3 0>, <0>, <0>, <0>; 53 + status = "okay"; 54 + 55 + m25p80@0 { 56 + compatible = "atmel,at25df321a"; 57 + spi-max-frequency = <50000000>; 58 + reg = <0>; 59 + }; 60 + }; 61 + 62 + i2c0: i2c@f8014000 { 63 + status = "okay"; 64 + }; 65 + 66 + spi1: spi@fc018000 { 67 + cs-gpios = <&pioB 22 0>, <&pioB 23 0>, <0>, <0>; 68 + status = "okay"; 69 + 70 + can0: can@0 { 71 + compatible = "microchip,mcp2515"; 72 + reg = <0>; 73 + clocks = <&clk20m>; 74 + interrupt-parent = <&pioE>; 75 + interrupts = <6 GPIO_ACTIVE_LOW>; 76 + spi-max-frequency = <10000000>; 77 + }; 78 + 79 + can1: can@1 { 80 + compatible = "microchip,mcp2515"; 81 + reg = <1>; 82 + clocks = <&clk20m>; 83 + interrupt-parent = <&pioE>; 84 + interrupts = <7 GPIO_ACTIVE_LOW>; 85 + spi-max-frequency = <10000000>; 86 + }; 87 + }; 88 + 89 + adc0: adc@fc034000 { 90 + pinctrl-names = "default"; 91 + pinctrl-0 = < 92 + /* external trigger conflicts with USBA_VBUS */ 93 + &pinctrl_adc0_ad0 94 + &pinctrl_adc0_ad1 95 + &pinctrl_adc0_ad2 96 + &pinctrl_adc0_ad3 97 + &pinctrl_adc0_ad4 98 + >; 99 + atmel,adc-vref = <3300>; 100 + status = "okay"; 101 + }; 102 + 103 + watchdog@fc068640 { 104 + status = "okay"; 105 + }; 106 + }; 107 + }; 108 + 109 + vcc_3v3_reg: fixedregulator@0 { 110 + compatible = "regulator-fixed"; 111 + regulator-name = "VCC 3V3"; 112 + regulator-min-microvolt = <3300000>; 113 + regulator-max-microvolt = <3300000>; 114 + regulator-boot-on; 115 + regulator-always-on; 116 + }; 117 + 118 + vcc_mmc0_reg: fixedregulator@1 { 119 + compatible = "regulator-fixed"; 120 + gpio = <&pioE 15 GPIO_ACTIVE_HIGH>; 121 + regulator-name = "RST_n MCI0"; 122 + regulator-min-microvolt = <3300000>; 123 + regulator-max-microvolt = <3300000>; 124 + vin-supply = <&vcc_3v3_reg>; 125 + regulator-boot-on; 126 + }; 127 + };
+170
arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts
··· 1 + /* 2 + * Copyright (C) 2015 Marek Vasut <marex@denx.de> 3 + * 4 + * The code contained herein is licensed under the GNU General Public 5 + * License. You may obtain a copy of the GNU General Public License 6 + * Version 2 or later at the following locations: 7 + * 8 + * http://www.opensource.org/licenses/gpl-license.html 9 + * http://www.gnu.org/copyleft/gpl.html 10 + */ 11 + 12 + /dts-v1/; 13 + #include "at91-sama5d4_ma5d4.dtsi" 14 + 15 + / { 16 + model = "DENX MA5D4EVK"; 17 + compatible = "denx,ma5d4evk", "atmel,sama5d4", "atmel,sama5"; 18 + 19 + chosen { 20 + stdout-path = "serial3:115200n8"; 21 + }; 22 + 23 + ahb { 24 + usb0: gadget@00400000 { 25 + atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>; 26 + pinctrl-names = "default"; 27 + pinctrl-0 = <&pinctrl_usba_vbus>; 28 + status = "okay"; 29 + }; 30 + 31 + usb1: ohci@00500000 { 32 + num-ports = <3>; 33 + atmel,vbus-gpio = <0 34 + &pioE 11 GPIO_ACTIVE_LOW 35 + &pioE 14 GPIO_ACTIVE_LOW 36 + >; 37 + status = "okay"; 38 + }; 39 + 40 + usb2: ehci@00600000 { 41 + status = "okay"; 42 + }; 43 + 44 + apb { 45 + hlcdc: hlcdc@f0000000 { 46 + status = "okay"; 47 + 48 + hlcdc-display-controller { 49 + pinctrl-names = "default"; 50 + pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>; 51 + 52 + port@0 { 53 + hlcdc_panel_output: endpoint@0 { 54 + reg = <0>; 55 + remote-endpoint = <&panel_input>; 56 + }; 57 + }; 58 + }; 59 + 60 + }; 61 + 62 + macb0: ethernet@f8020000 { 63 + phy-mode = "rmii"; 64 + status = "okay"; 65 + 66 + phy0: ethernet-phy@0 { 67 + reg = <0>; 68 + }; 69 + }; 70 + 71 + usart0: serial@f802c000 { 72 + status = "okay"; 73 + }; 74 + 75 + usart1: serial@f8030000 { 76 + status = "okay"; 77 + }; 78 + 79 + mmc1: mmc@fc000000 { 80 + pinctrl-names = "default"; 81 + pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>; 82 + vmmc-supply = <&vcc_mmc1_reg>; 83 + vqmmc-supply = <&vcc_3v3_reg>; 84 + status = "okay"; 85 + slot@0 { 86 + reg = <0>; 87 + bus-width = <4>; 88 + cd-gpios = <&pioE 5 0>; 89 + }; 90 + }; 91 + 92 + adc0: adc@fc034000 { 93 + atmel,adc-ts-wires = <4>; 94 + atmel,adc-ts-pressure-threshold = <10000>; 95 + }; 96 + 97 + 98 + pinctrl@fc06a000 { 99 + board { 100 + pinctrl_mmc1_cd: mmc1_cd { 101 + atmel,pins = <AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; 102 + }; 103 + pinctrl_usba_vbus: usba_vbus { 104 + atmel,pins = 105 + <AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; 106 + }; 107 + }; 108 + }; 109 + }; 110 + }; 111 + 112 + backlight: backlight { 113 + compatible = "pwm-backlight"; 114 + pwms = <&hlcdc_pwm 0 50000 0>; 115 + brightness-levels = <0 4 8 16 32 64 128 255>; 116 + default-brightness-level = <6>; 117 + status = "okay"; 118 + }; 119 + 120 + leds { 121 + compatible = "gpio-leds"; 122 + status = "okay"; 123 + 124 + user1 { 125 + label = "user1"; 126 + gpios = <&pioD 28 GPIO_ACTIVE_HIGH>; 127 + linux,default-trigger = "heartbeat"; 128 + }; 129 + 130 + user2 { 131 + label = "user2"; 132 + gpios = <&pioD 29 GPIO_ACTIVE_HIGH>; 133 + linux,default-trigger = "heartbeat"; 134 + }; 135 + 136 + user3 { 137 + label = "user3"; 138 + gpios = <&pioD 30 GPIO_ACTIVE_HIGH>; 139 + linux,default-trigger = "heartbeat"; 140 + }; 141 + }; 142 + 143 + panel: panel { 144 + /* Actually Ampire 800480R2 */ 145 + compatible = "foxlink,fl500wvr00-a0t", "simple-panel"; 146 + backlight = <&backlight>; 147 + #address-cells = <1>; 148 + #size-cells = <0>; 149 + status = "okay"; 150 + 151 + port@0 { 152 + #address-cells = <1>; 153 + #size-cells = <0>; 154 + 155 + panel_input: endpoint@0 { 156 + reg = <0>; 157 + remote-endpoint = <&hlcdc_panel_output>; 158 + }; 159 + }; 160 + }; 161 + 162 + vcc_mmc1_reg: fixedregulator@2 { 163 + compatible = "regulator-fixed"; 164 + gpio = <&pioE 17 GPIO_ACTIVE_LOW>; 165 + regulator-name = "VDD MCI1"; 166 + regulator-min-microvolt = <3300000>; 167 + regulator-max-microvolt = <3300000>; 168 + vin-supply = <&vcc_3v3_reg>; 169 + }; 170 + };