From 22c398d2576b97b5afc67d6802528dc9eceb4d8a Mon Sep 17 00:00:00 2001 From: Sandeep Sheriker Mallikarjun Date: Fri, 4 May 2018 10:27:47 -0700 Subject: [PATCH] at91: Add SAMA5D27 SOM1 EK board Add support for SAMA5D27 SOM1 with target device as at91-sama5d27_som1_ek in SAMA5 subtarget and build images for SAMA5D27 SOM1 Ek board. Signed-off-by: Sandeep Sheriker Mallikarjun --- package/boot/at91bootstrap/Makefile | 19 +- package/boot/uboot-at91/Makefile | 16 +- target/linux/at91/base-files/lib/at91.sh | 3 + target/linux/at91/image/sama5.mk | 18 +- ...-at91-build-dtb-for-sama5d27-SOM1-Ek.patch | 908 ++++++++++++++++++ 5 files changed, 957 insertions(+), 7 deletions(-) create mode 100644 target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch diff --git a/package/boot/at91bootstrap/Makefile b/package/boot/at91bootstrap/Makefile index 8a1ec5e9c9..fbe44c424b 100644 --- a/package/boot/at91bootstrap/Makefile +++ b/package/boot/at91bootstrap/Makefile @@ -69,6 +69,21 @@ define AT91Bootstrap/sama5d4_xplainedsd_uboot_secure BUILD_DEVICES:=at91-sama5d4_xplained endef +define AT91Bootstrap/sama5d27_som1_eksd_uboot + TITLE:=AT91Bootstrap for SAMA5D27 SOM1 Ek (SDcard0) + BUILD_DEVICES:=at91-sama5d27_som1_ek +endef + +define AT91Bootstrap/sama5d27_som1_eksd1_uboot + TITLE:=AT91Bootstrap for SAMA5D27 SOM1 Ek (SDcard1) + BUILD_DEVICES:=at91-sama5d27_som1_ek +endef + +define AT91Bootstrap/sama5d27_som1_ekqspi_uboot + TITLE:=AT91Bootstrap for SAMA5D27 SOM1 Ek (QSPI Flash) + BUILD_DEVICES:=at91-sama5d27_som1_ek +endef + AT91BOOTSTRAP_TARGETS := \ sama5d2_xplaineddf_uboot \ sama5d2_xplaineddf_qspi_uboot \ @@ -77,7 +92,9 @@ AT91BOOTSTRAP_TARGETS := \ sama5d3_xplainedsd_uboot \ sama5d4_xplainednf_uboot_secure \ sama5d4_xplaineddf_uboot_secure \ - sama5d4_xplainedsd_uboot_secure + sama5d4_xplainedsd_uboot_secure \ + sama5d27_som1_eksd_uboot \ + sama5d27_som1_ekqspi_uboot define Build/Compile +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \ diff --git a/package/boot/uboot-at91/Makefile b/package/boot/uboot-at91/Makefile index 27b113e245..994201e912 100644 --- a/package/boot/uboot-at91/Makefile +++ b/package/boot/uboot-at91/Makefile @@ -79,6 +79,18 @@ define U-Boot/sama5d4_xplained_nandflash BUILD_DEVICES:=at91-sama5d4_xplained endef +define U-Boot/sama5d27_som1_ek_mmc + NAME:=SAMA5D27 SOM1 Ek (SDCard) + BUILD_SUBTARGET:=sama5 + BUILD_DEVICES:=at91-sama5d27_som1_ek +endef + +define U-Boot/sama5d27_som1_ek_spiflash + NAME:=SAMA5D27 SOM1 Ek (QSPI Flash) + BUILD_SUBTARGET:=sama5 + BUILD_DEVICES:=at91-sama5d27_som1_ek +endef + UBOOT_TARGETS := \ at91sam9m10g45ek_nandflash \ at91sam9x5ek_nandflash \ @@ -88,7 +100,9 @@ UBOOT_TARGETS := \ sama5d2_xplained_spiflash \ sama5d4_xplained_mmc \ sama5d4_xplained_spiflash \ - sama5d4_xplained_nandflash + sama5d4_xplained_nandflash\ + sama5d27_som1_ek_mmc \ + sama5d27_som1_ek_spiflash define Build/Compile +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \ diff --git a/target/linux/at91/base-files/lib/at91.sh b/target/linux/at91/base-files/lib/at91.sh index 61921edd14..5d31b6741d 100755 --- a/target/linux/at91/base-files/lib/at91.sh +++ b/target/linux/at91/base-files/lib/at91.sh @@ -43,6 +43,9 @@ at91_board_detect() { *"SAMA5D3 Xplained") name="sama5d3_xplained" ;; + *"Atmel SAMA5D27 SOM1 EK") + name="sama5d27_som1_ek" + ;; *"SAMA5D2 Xplained") name="sama5d2_xplained" ;; diff --git a/target/linux/at91/image/sama5.mk b/target/linux/at91/image/sama5.mk index b87588877d..5960f40a3b 100644 --- a/target/linux/at91/image/sama5.mk +++ b/target/linux/at91/image/sama5.mk @@ -11,15 +11,15 @@ define Build/at91-sdcard $(foreach dts,$(DEVICE_DTS), \ mcopy -i $@.boot $(DTS_DIR)/$(dts).dtb \ - ::$(dts).dtb;) + ::$(dts).dtb) mcopy -i $@.boot \ $(BIN_DIR)/u-boot-$(DEVICE_NAME:at91-%=%)_mmc/u-boot.bin \ ::u-boot.bin - $(CP) $(BIN_DIR)/at91bootstrap-$(DEVICE_NAME:at91-%=%)sd*/at91bootstrap.bin \ - $@.BOOT.bin; \ - mcopy -i $@.boot $@.BOOT.bin ::BOOT.bin + mcopy -i $@.boot \ + $(BIN_DIR)/at91bootstrap-$(DEVICE_NAME:at91-%=%)sd*/at91bootstrap.bin \ + ::BOOT.bin ./gen_at91_sdcard_img.sh \ $@.img \ @@ -30,7 +30,7 @@ define Build/at91-sdcard gzip -nc9 $@.img > $@ - rm -f $@.img $@.boot $@.BOOT.bin + rm -f $@.img $@.boot endef define Device/evaluation-sdimage @@ -73,6 +73,14 @@ define Device/at91-sama5d4_xplained endef TARGET_DEVICES += at91-sama5d4_xplained +define Device/at91-sama5d27_som1_ek + $(Device/evaluation-dtb) + DEVICE_TITLE := Microchip(Atmel AT91) SAMA5D27 SOM1 Ek + KERNEL_SIZE := 6144k + $(Device/evaluation-sdimage) +endef +TARGET_DEVICES += at91-sama5d27_som1_ek + ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"") ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"") define Device/wb50n diff --git a/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch b/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch new file mode 100644 index 0000000000..1a3945eb4a --- /dev/null +++ b/target/linux/at91/patches-4.9/104-ARM-at91-build-dtb-for-sama5d27-SOM1-Ek.patch @@ -0,0 +1,908 @@ +diff --git a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt +index 61ac757..9820227 100644 +--- a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt ++++ b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt +@@ -35,7 +35,12 @@ right representation of the pin. + Optional properties: + - GENERIC_PINCONFIG: generic pinconfig options to use, bias-disable, + bias-pull-down, bias-pull-up, drive-open-drain, input-schmitt-enable, +-input-debounce, output-low, output-high. ++input-debounce, output-low, output-high, drive-strength. ++ ++Concerning the drive-strength property, the values accepted are ++ATMEL_PIO_DRVSTR_LO, ATMEL_PIO_DRVSTR_ME, ATMEL_PIO_DRVSTR_HI. The current ++depends on VDDIOP. You can find the details in the DC Characteristics table ++from the datasheet. + + Example: + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index 1218005..c88e426 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -49,6 +49,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \ + wb45n.dtb + dtb-$(CONFIG_SOC_SAM_V7) += \ + at91-kizbox2.dtb \ ++ at91-sama5d27_som1_ek.dtb \ + at91-sama5d2_xplained.dtb \ + at91-sama5d3_xplained.dtb \ + sama5d31ek.dtb \ +diff --git a/arch/arm/boot/dts/at91-sama5d27_som1.dtsi b/arch/arm/boot/dts/at91-sama5d27_som1.dtsi +new file mode 100644 +index 0000000..7d7575f +--- /dev/null ++++ b/arch/arm/boot/dts/at91-sama5d27_som1.dtsi +@@ -0,0 +1,175 @@ ++/* ++ * at91-sama5d27_som1.dtsi - Device Tree file for SAMA5D27 SoM1 board ++ * ++ * Copyright (c) 2017, Microchip Technology Inc. ++ * 2017 Cristian Birsan ++ * 2017 Claudiu Beznea ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) This file is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of the ++ * License, or (at your option) any later version. ++ * ++ * This file is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * Or, alternatively, ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use, ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++#include "sama5d2.dtsi" ++#include "sama5d2-pinfunc.h" ++ ++/ { ++ model = "Atmel SAMA5D27 SoM1"; ++ compatible = "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5"; ++ ++ clocks { ++ slow_xtal { ++ clock-frequency = <32768>; ++ }; ++ ++ main_xtal { ++ clock-frequency = <24000000>; ++ }; ++ }; ++ ++ ahb { ++ apb { ++ qspi1: spi@f0024000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_qspi1_default>; ++ ++ flash@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <80000000>; ++ m25p,fast-read; ++ ++ at91bootstrap@00000000 { ++ label = "at91bootstrap"; ++ reg = <0x00000000 0x00010000>; ++ }; ++ ++ bootloader@00010000 { ++ label = "bootloader"; ++ reg = <0x00010000 0x000a0000>; ++ }; ++ ++ bootloaderenv@000b0000 { ++ label = "bootloader env"; ++ reg = <0x000b0000 0x00010000>; ++ }; ++ ++ dtb@000c0000 { ++ label = "device tree"; ++ reg = <0x000c0000 0x0020000>; ++ }; ++ ++ kernel@000e0000 { ++ label = "kernel"; ++ reg = <0x000e0000 0x0400000>; ++ }; ++ }; ++ }; ++ ++ macb0: ethernet@f8008000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_macb0_default>; ++ phy-mode = "rmii"; ++ ++ ethernet-phy@0 { ++ reg = <0x0>; ++ interrupt-parent = <&pioA>; ++ interrupts = ; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_macb0_phy_irq>; ++ }; ++ }; ++ ++ i2c0: i2c@f8028000 { ++ dmas = <0>, <0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c0_default>; ++ status = "okay"; ++ ++ at24@50 { ++ compatible = "24c02"; ++ reg = <0x50>; ++ pagesize = <8>; ++ }; ++ }; ++ ++ pinctrl@fc038000 { ++ pinctrl_i2c0_default: i2c0_default { ++ pinmux = , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_qspi1_default: qspi1_default { ++ sck_cs { ++ pinmux = , ++ ; ++ bias-disable; ++ }; ++ ++ data { ++ pinmux = , ++ , ++ , ++ ; ++ bias-pull-up; ++ }; ++ }; ++ ++ pinctrl_macb0_default: macb0_default { ++ pinmux = , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_macb0_phy_irq: macb0_phy_irq { ++ pinmux = ; ++ bias-disable; ++ }; ++ }; ++ }; ++ }; ++}; +diff --git a/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts +new file mode 100644 +index 0000000..fd12b68 +--- /dev/null ++++ b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts +@@ -0,0 +1,53 @@ ++/* ++ * at91-sama5d27_som1_ek.dts - Device Tree file for SAMA5D27-SOM1-EK board ++ * ++ * Copyright (c) 2017, Microchip Technology Inc. ++ * 2016 Nicolas Ferre ++ * 2017 Cristian Birsan ++ * 2017 Claudiu Beznea ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) This file is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of the ++ * License, or (at your option) any later version. ++ * ++ * This file is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * Or, alternatively, ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use, ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++/dts-v1/; ++#include "at91-sama5d27_som1_ek_common.dtsi" ++ ++/ { ++ model = "Atmel SAMA5D27 SOM1 EK"; ++ compatible = "atmel,sama5d27-som1-ek", "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5"; ++}; +diff --git a/arch/arm/boot/dts/at91-sama5d27_som1_ek_common.dtsi b/arch/arm/boot/dts/at91-sama5d27_som1_ek_common.dtsi +new file mode 100644 +index 0000000..7201a8e +--- /dev/null ++++ b/arch/arm/boot/dts/at91-sama5d27_som1_ek_common.dtsi +@@ -0,0 +1,619 @@ ++/* ++ * at91-sama5d27_som1_ek_common.dtsi - Device Tree file for SAMA5D27-SOM1-EK board ++ * ++ * Copyright (c) 2017, Microchip Technology Inc. ++ * 2016 Nicolas Ferre ++ * 2017 Cristian Birsan ++ * 2017 Claudiu Beznea ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) This file is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of the ++ * License, or (at your option) any later version. ++ * ++ * This file is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * Or, alternatively, ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use, ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++#include "at91-sama5d27_som1.dtsi" ++#include ++#include ++#include ++ ++/ { ++ model = "Atmel SAMA5D27 SOM1 EK"; ++ compatible = "atmel,sama5d27-som1-ek", "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5"; ++ ++ aliases { ++ serial0 = &uart1; /* DBGU */ ++ serial1 = &uart4; /* mikro BUS 1 */ ++ serial2 = &uart2; /* mikro BUS 2 */ ++ i2c1 = &i2c1; ++ i2c2 = &i2c2; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ ahb { ++ usb0: gadget@00300000 { ++ atmel,vbus-gpio = <&pioA PIN_PD20 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usba_vbus>; ++ status = "okay"; ++ }; ++ ++ usb1: ohci@00400000 { ++ num-ports = <3>; ++ atmel,vbus-gpio = <0 /* &pioA PIN_PD20 GPIO_ACTIVE_HIGH */ ++ &pioA PIN_PA27 GPIO_ACTIVE_HIGH ++ 0 ++ >; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usb_default>; ++ status = "okay"; ++ }; ++ ++ usb2: ehci@00500000 { ++ status = "okay"; ++ }; ++ ++ sdmmc0: sdio-host@a0000000 { ++ bus-width = <8>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_sdmmc0_default>; ++ status = "okay"; ++ }; ++ ++ sdmmc1: sdio-host@b0000000 { ++ bus-width = <4>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_sdmmc1_default>; ++ status = "okay"; ++ }; ++ ++ apb { ++ hlcdc: hlcdc@f0000000 { ++ status = "disabled"; ++ ++ hlcdc-display-controller { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb>; ++ }; ++ ++ hlcdc_pwm: hlcdc-pwm { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_lcd_pwm>; ++ }; ++ }; ++ ++ pmc: pmc@f0014000 { ++ pmc_fast_restart { ++ compatible = "atmel,sama5d2-pmc-fast-startup"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ atmel,wakeup-rtc-timer; ++ ++ wkpin: input@0 { ++ reg = <0>; ++ }; ++ ++ gmac_wol: input@10 { ++ reg = <10>; ++ atmel,wakeup-active-high; ++ }; ++ }; ++ }; ++ ++ isc: isc@f0008000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_isc_base &pinctrl_isc_data_8bit &pinctrl_isc_data_9_10 &pinctrl_isc_data_11_12>; ++ status = "okay"; ++ }; ++ ++ qspi1: spi@f0024000 { ++ status = "okay"; ++ }; ++ ++ spi0: spi@f8000000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_spi0_default>; ++ status = "okay"; ++ }; ++ ++ macb0: ethernet@f8008000 { ++ status = "okay"; ++ }; ++ ++ uart1: serial@f8020000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart1_default>; ++ atmel,use-dma-rx; ++ atmel,use-dma-tx; ++ status = "okay"; ++ }; ++ ++ uart2: serial@f8024000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_mikrobus2_uart>; ++ atmel,use-dma-rx; ++ atmel,use-dma-tx; ++ status = "okay"; ++ }; ++ ++ pwm0: pwm@f802c000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_mikrobus1_pwm &pinctrl_mikrobus2_pwm>; ++ status = "disabled"; /* Conflict with leds. */ ++ }; ++ ++ flx1: flexcom@f8038000 { ++ atmel,flexcom-mode = ; ++ status = "okay"; ++ ++ i2c2: i2c@600 { ++ compatible = "atmel,sama5d2-i2c"; ++ reg = <0x600 0x200>; ++ interrupts = <20 IRQ_TYPE_LEVEL_HIGH 7>; ++ dmas = <0>, <0>; ++ dma-names = "tx", "rx"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ clocks = <&flx1_clk>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_mikrobus_i2c>; ++ atmel,fifo-size = <16>; ++ status = "okay"; ++ }; ++ }; ++ ++ shdwc@f8048010 { ++ atmel,shdwc-debouncer = <976>; ++ atmel,wakeup-rtc-timer; ++ ++ input@0 { ++ reg = <0>; ++ atmel,wakeup-type = "low"; ++ }; ++ }; ++ ++ watchdog@f8048040 { ++ status = "okay"; ++ }; ++ ++ uart3: serial@fc008000 { ++ atmel,use-dma-rx; ++ atmel,use-dma-tx; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart3_default>; ++ status = "disabled"; /* Conflict with isc. */ ++ }; ++ ++ uart4: serial@fc00c000 { ++ atmel,use-dma-rx; ++ atmel,use-dma-tx; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_mikrobus1_uart>; ++ status = "okay"; ++ }; ++ ++ flx3: flexcom@fc014000 { ++ atmel,flexcom-mode = ; ++ status = "disabled"; ++ ++ uart7: serial@200 { ++ compatible = "atmel,at91sam9260-usart"; ++ reg = <0x200 0x200>; ++ interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>; ++ clocks = <&flx3_clk>; ++ clock-names = "usart"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_flx3_default>; ++ atmel,fifo-size = <32>; ++ status = "disabled"; /* Conflict with isc. */ ++ }; ++ ++ spi2: spi@400 { ++ compatible = "atmel,at91rm9200-spi"; ++ reg = <0x400 0x200>; ++ interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>; ++ clocks = <&flx3_clk>; ++ clock-names = "spi_clk"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_flx3_default>; ++ atmel,fifo-size = <16>; ++ status = "disabled"; /* Conflict with isc. */ ++ }; ++ }; ++ ++ flx4: flexcom@fc018000 { ++ atmel,flexcom-mode = ; ++ status = "okay"; ++ ++ uart6: serial@200 { ++ compatible = "atmel,at91sam9260-usart"; ++ reg = <0x200 0x200>; ++ interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>; ++ clocks = <&flx4_clk>; ++ clock-names = "usart"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_flx4_default>; ++ atmel,fifo-size = <32>; ++ status = "disabled"; /* Conflict with spi3 and i2c3. */ ++ }; ++ ++ spi3: spi@400 { ++ compatible = "atmel,at91rm9200-spi"; ++ reg = <0x400 0x200>; ++ interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>; ++ clocks = <&flx4_clk>; ++ clock-names = "spi_clk"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_mikrobus_spi &pinctrl_mikrobus1_spi_cs &pinctrl_mikrobus2_spi_cs>; ++ atmel,fifo-size = <16>; ++ status = "okay"; ++ }; ++ ++ i2c3: i2c@600 { ++ compatible = "atmel,sama5d2-i2c"; ++ reg = <0x600 0x200>; ++ interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>; ++ dmas = <0>, <0>; ++ dma-names = "tx", "rx"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ clocks = <&flx4_clk>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_flx4_default>; ++ atmel,fifo-size = <16>; ++ status = "disabled"; /* Conflict with uart6 and spi3. */ ++ }; ++ }; ++ ++ i2c1: i2c@fc028000 { ++ dmas = <0>, <0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c1_default>; ++ status = "okay"; ++ }; ++ ++ pinctrl@fc038000 { ++ ++ pinctrl_lcd_base: pinctrl_lcd_base { ++ pinmux = , ++ , ++ , ++ ; ++ bias-disable; ++ drive-strength = ; ++ }; ++ ++ pinctrl_lcd_rgb: pinctrl_lcd_rgb { ++ pinmux = , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_lcd_pwm: pinctrl_lcd_pwm { ++ pinmux = ; ++ bias-disable; ++ }; ++ ++ pinctrl_can1_default: can1_default { ++ pinmux = , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_flx3_default: flx3_default { ++ pinmux = , ++ , ++ , ++ , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_i2c1_default: i2c1_default { ++ pinmux = , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_isc_base: isc_base { ++ pinmux = , ++ , ++ , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_isc_data_8bit: isc_data_8bit { ++ pinmux = , ++ , ++ , ++ , ++ , ++ , ++ , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_isc_data_9_10: isc_data_9_10 { ++ pinmux = , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_isc_data_11_12: isc_data_11_12 { ++ pinmux = , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_key_gpio_default: key_gpio_default { ++ pinmux = ; ++ bias-pull-up; ++ }; ++ ++ pinctrl_led_gpio_default: led_gpio_default { ++ pinmux = , ++ , ++ ; ++ bias-pull-up; ++ }; ++ ++ pinctrl_sdmmc0_default: sdmmc0_default { ++ cmd_data { ++ pinmux = , ++ , ++ , ++ , ++ , ++ , ++ , ++ , ++ ; ++ bias-disable; ++ }; ++ ++ ck_cd_vddsel { ++ pinmux = , ++ , ++ ; ++ bias-disable; ++ }; ++ }; ++ ++ pinctrl_sdmmc1_default: sdmmc1_default { ++ cmd_data { ++ pinmux = , ++ , ++ , ++ , ++ ; ++ bias-disable; ++ }; ++ ++ conf-ck_cd { ++ pinmux = , ++ ; ++ bias-disable; ++ }; ++ }; ++ ++ pinctrl_spi0_default: spi0_default { ++ pinmux = , ++ , ++ , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_uart1_default: uart1_default { ++ pinmux = , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_uart3_default: uart3_default { ++ pinmux = , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_usb_default: usb_default { ++ pinmux = , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_usba_vbus: usba_vbus { ++ pinmux = ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus1_an: mikrobus1_an { ++ pinmux = ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus2_an: mikrobus2_an { ++ pinmux = ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus1_rst: mikrobus1_rst { ++ pinmux = ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus2_rst: mikrobus2_rst { ++ pinmux = ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus1_spi_cs: mikrobus1_spi_cs { ++ pinmux = ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus2_spi_cs: mikrobus2_spi_cs { ++ pinmux = ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus_spi: mikrobus_spi { ++ pinmux = , ++ , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus1_pwm: mikrobus1_pwm { ++ pinmux = ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus2_pwm: mikrobus2_pwm { ++ pinmux = ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus1_int: mikrobus1_int { ++ pinmux = ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus2_int: mikrobus2_int { ++ pinmux = ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus1_uart: mikrobus1_uart { ++ pinmux = , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus2_uart: mikrobus2_uart { ++ pinmux = , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_mikrobus_i2c: mikrobus1_i2c { ++ pinmux = , ++ ; ++ bias-disable; ++ }; ++ ++ pinctrl_flx4_default: flx4_uart_default { ++ pinmux = , ++ , ++ , ++ , ++ ; ++ bias-disable; ++ }; ++ }; ++ ++ can1: can@fc050000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_can1_default>; ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ gpio_keys { ++ compatible = "gpio-keys"; ++ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_key_gpio_default>; ++ ++ pb4 { ++ label = "USER"; ++ gpios = <&pioA PIN_PA29 GPIO_ACTIVE_LOW>; ++ linux,code = <0x104>; ++ wakeup-source; ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_led_gpio_default>; ++ status = "okay"; /* Conflict with pwm0. */ ++ ++ red { ++ label = "red"; ++ gpios = <&pioA PIN_PA10 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ green { ++ label = "green"; ++ gpios = <&pioA PIN_PB1 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ blue { ++ label = "blue"; ++ gpios = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "heartbeat"; ++ }; ++ }; ++}; +diff --git a/include/dt-bindings/pinctrl/at91.h b/include/dt-bindings/pinctrl/at91.h +index bbca3d0..88eb7d0 100644 +--- a/include/dt-bindings/pinctrl/at91.h ++++ b/include/dt-bindings/pinctrl/at91.h +@@ -37,4 +37,8 @@ + #define AT91_PERIPH_C 3 + #define AT91_PERIPH_D 4 + ++#define ATMEL_PIO_DRVSTR_LO 1 ++#define ATMEL_PIO_DRVSTR_ME 2 ++#define ATMEL_PIO_DRVSTR_HI 3 ++ + #endif /* __DT_BINDINGS_AT91_PINCTRL_H__ */