diff options
-rw-r--r-- | package/boot/at91bootstrap/Makefile | 16 | ||||
-rw-r--r-- | package/boot/uboot-at91/Makefile | 18 | ||||
-rwxr-xr-x | target/linux/at91/base-files/lib/at91.sh | 3 | ||||
-rw-r--r-- | target/linux/at91/image/sama5d2.mk | 8 | ||||
-rw-r--r-- | target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch | 442 |
5 files changed, 484 insertions, 3 deletions
diff --git a/package/boot/at91bootstrap/Makefile b/package/boot/at91bootstrap/Makefile index b350555c10..22afd1ec41 100644 --- a/package/boot/at91bootstrap/Makefile +++ b/package/boot/at91bootstrap/Makefile @@ -94,6 +94,18 @@ define AT91Bootstrap/sama5d27_som1_ekqspi_uboot BUILD_DEVICES:=at91-sama5d27_som1_ek endef +define AT91Bootstrap/sama5d2_ptc_eknf_uboot + TITLE:=AT91Bootstrap for SAMA5D2 PTC EK (Nand Flash) + BUILD_SUBTARGET:=sama5d2 + BUILD_DEVICES:=at91-sama5d2_ptc_ek +endef + +define AT91Bootstrap/sama5d2_ptc_eksd_uboot + TITLE:=AT91Bootstrap for SAMA5D2 PTC EK (SDCard) + BUILD_SUBTARGET:=sama5d2 + BUILD_DEVICES:=at91-sama5d2_ptc_ek +endef + AT91BOOTSTRAP_TARGETS := \ sama5d2_xplaineddf_uboot \ sama5d2_xplaineddf_qspi_uboot \ @@ -104,7 +116,9 @@ AT91BOOTSTRAP_TARGETS := \ sama5d4_xplaineddf_uboot_secure \ sama5d4_xplainedsd_uboot_secure \ sama5d27_som1_eksd_uboot \ - sama5d27_som1_ekqspi_uboot + sama5d27_som1_ekqspi_uboot \ + sama5d2_ptc_eknf_uboot \ + sama5d2_ptc_eksd_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 fd58b9009e..f0a4ba56c2 100644 --- a/package/boot/uboot-at91/Makefile +++ b/package/boot/uboot-at91/Makefile @@ -21,7 +21,7 @@ include $(INCLUDE_DIR)/kernel.mk define U-Boot/Default BUILD_TARGET:=at91 HIDDEN:=1 - UBOOT_IMAGE:=u-boot.bin boot.bin + UBOOT_IMAGE:=u-boot.bin endef define U-Boot/at91sam9m10g45ek_nandflash @@ -92,6 +92,18 @@ define U-Boot/sama5d27_som1_ek_spiflash BUILD_DEVICES:=at91-sama5d27_som1_ek endef +define U-Boot/sama5d2_ptc_ek_nandflash + NAME:=SAMA5D2 PTC Ek (Nand Flash) + BUILD_SUBTARGET:=sama5d2 + BUILD_DEVICES:=at91-sama5d2_ptc_ek +endef + +define U-Boot/sama5d2_ptc_ek_mmc + NAME:=SAMA5D2 PTC Ek (SDCard) + BUILD_SUBTARGET:=sama5d2 + BUILD_DEVICES:=at91-sama5d2_ptc_ek +endef + UBOOT_TARGETS := \ at91sam9m10g45ek_nandflash \ at91sam9x5ek_nandflash \ @@ -103,7 +115,9 @@ UBOOT_TARGETS := \ sama5d4_xplained_spiflash \ sama5d4_xplained_nandflash\ sama5d27_som1_ek_mmc \ - sama5d27_som1_ek_spiflash + sama5d27_som1_ek_spiflash \ + sama5d2_ptc_ek_nandflash \ + sama5d2_ptc_ek_mmc 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 5d31b6741d..ea38925ea0 100755 --- a/target/linux/at91/base-files/lib/at91.sh +++ b/target/linux/at91/base-files/lib/at91.sh @@ -46,6 +46,9 @@ at91_board_detect() { *"Atmel SAMA5D27 SOM1 EK") name="sama5d27_som1_ek" ;; + *"Atmel SAMA5D2 PTC EK") + name="sama5d2_ptc_ek" + ;; *"SAMA5D2 Xplained") name="sama5d2_xplained" ;; diff --git a/target/linux/at91/image/sama5d2.mk b/target/linux/at91/image/sama5d2.mk index 28a6f93aad..b841448633 100644 --- a/target/linux/at91/image/sama5d2.mk +++ b/target/linux/at91/image/sama5d2.mk @@ -21,3 +21,11 @@ define Device/at91-sama5d27_som1_ek $(Device/evaluation-sdimage) endef TARGET_DEVICES += at91-sama5d27_som1_ek + +define Device/at91-sama5d2_ptc_ek + $(Device/evaluation-dtb) + DEVICE_TITLE := Microchip(Atmel AT91) SAMA5D2 PTC Ek + KERNEL_SIZE := 6144k + $(Device/evaluation-sdimage) +endef +TARGET_DEVICES += at91-sama5d2_ptc_ek diff --git a/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch b/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch new file mode 100644 index 0000000000..3da9955ee7 --- /dev/null +++ b/target/linux/at91/patches-4.9/105-ARM-at91-build-dtb-for-sama5d2-ptc-Ek.patch @@ -0,0 +1,442 @@ +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index c88e426..cb47e80 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-sama5d2_ptc_ek.dtb \ + at91-sama5d27_som1_ek.dtb \ + at91-sama5d2_xplained.dtb \ + at91-sama5d3_xplained.dtb \ +diff --git a/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts b/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts +new file mode 100644 +index 0000000..257eaac +--- /dev/null ++++ b/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts +@@ -0,0 +1,422 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR X11) ++/* ++ * at91-sama5d2_ptc_ek.dts - Device Tree file for SAMA5D2 PTC EK board ++ * ++ * Copyright (C) 2017 Microchip/Atmel, ++ * 2017 Wenyou Yang <wenyou.yang@microchip.com> ++ * 2017 Ludovic Desroches <ludovic.desroches@microchip.com> ++ */ ++/dts-v1/; ++#include "sama5d2.dtsi" ++#include "sama5d2-pinfunc.h" ++#include <dt-bindings/mfd/atmel-flexcom.h> ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/pinctrl/at91.h> ++ ++/ { ++ model = "Atmel SAMA5D2 PTC EK"; ++ compatible = "atmel,sama5d2-ptc_ek", "atmel,sama5d2", "atmel,sama5"; ++ ++ aliases { ++ serial0 = &uart0; ++ i2c0 = &i2c0; ++ i2c1 = &i2c1; ++ i2c2 = &i2c2; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ memory { ++ reg = <0x20000000 0x80000>; ++ }; ++ ++ clocks { ++ slow_xtal { ++ clock-frequency = <32768>; ++ }; ++ ++ main_xtal { ++ clock-frequency = <24000000>; ++ }; ++ }; ++ ++ ahb { ++ usb0: gadget@00300000 { ++ atmel,vbus-gpio = <&pioA PIN_PB11 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_PB12 GPIO_ACTIVE_HIGH ++ 0 ++ >; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usb_default>; ++ status = "okay"; ++ }; ++ ++ usb2: ehci@00500000 { ++ status = "okay"; ++ }; ++ ++ nand0: nand@80000000 { ++ nand-bus-width = <8>; ++ nand-ecc-mode = "hw"; ++ nand-on-flash-bbt; ++ atmel,has-pmecc; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_nand_default>; ++ status = "okay"; /* conflicts with sdmmc1 and qspi0 */ ++ ++ at91bootstrap@0 { ++ label = "bootstrap"; ++ reg = <0x0 0x40000>; ++ }; ++ ++ bootloader@40000 { ++ label = "bootloader"; ++ reg = <0x40000 0xc0000>; ++ }; ++ ++ bootloaderenv@0x100000 { ++ label = "bootloader env"; ++ reg = <0x100000 0x40000>; ++ }; ++ ++ bootloaderenvred@0x140000 { ++ label = "bootloader env redundant"; ++ reg = <0x140000 0x40000>; ++ }; ++ ++ dtb@180000 { ++ label = "device tree"; ++ reg = <0x180000 0x80000>; ++ }; ++ ++ kernel@200000 { ++ label = "kernel"; ++ reg = <0x200000 0x600000>; ++ }; ++ ++ rootfs@800000 { ++ label = "rootfs"; ++ reg = <0x800000 0x1f800000>; ++ }; ++ }; ++ ++ sdmmc0: sdio-host@a0000000 { ++ bus-width = <8>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_sdmmc0_default>; ++ status = "okay"; ++ }; ++ ++ apb { ++ 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; ++ }; ++ }; ++ }; ++ ++ spi0: spi@f8000000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_spi0_default>; ++ status = "okay"; ++ ++ /* ++ m25p80@0 { ++ compatible = "atmel,at25df321a"; ++ reg = <0>; ++ spi-max-frequency = <50000000>; ++ }; ++ */ ++ }; ++ ++ macb0: ethernet@f8008000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_macb0_default &pinctrl_macb0_phy_irq>; ++ phy-mode = "rmii"; ++ status = "okay"; ++ ++ ethernet-phy@1 { ++ reg = <0x1>; ++ interrupt-parent = <&pioA>; ++ interrupts = <56 IRQ_TYPE_LEVEL_LOW>; ++ }; ++ }; ++ ++ uart0: serial@f801c000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart0_default>; ++ atmel,use-dma-rx; ++ atmel,use-dma-tx; ++ status = "okay"; ++ }; ++ ++ uart2: serial@f8024000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart2_default>; ++ atmel,use-dma-rx; ++ atmel,use-dma-tx; ++ status = "okay"; ++ }; ++ ++ i2c0: i2c@f8028000 { ++ dmas = <0>, <0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c0_default>; ++ i2c-sda-hold-time-ns = <350>; ++ status = "okay"; ++ }; ++ ++ flx0: flexcom@f8034000 { ++ atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>; ++ status = "okay"; ++ ++ i2c2: i2c@600 { ++ compatible = "atmel,sama5d2-i2c"; ++ reg = <0x600 0x200>; ++ interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>; ++ dmas = <0>, <0>; ++ dma-names = "tx", "rx"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ clocks = <&flx0_clk>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_flx0_default>; ++ atmel,fifo-size = <16>; ++ status = "okay"; ++ }; ++ }; ++ ++ shdwc@f8048010 { ++ atmel,shdwc-debouncer = <976>; ++ ++ input@0 { ++ reg = <0>; ++ atmel,wakeup-type = "low"; ++ }; ++ }; ++ ++ watchdog@f8048040 { ++ status = "okay"; ++ }; ++ ++ spi1: spi@fc000000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_spi1_default>; ++ status = "okay"; ++ }; ++ ++ i2c1: i2c@fc028000 { ++ dmas = <0>, <0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_i2c1_default>; ++ status = "okay"; ++ ++ at24@50 { ++ compatible = "24c02"; ++ reg = <0x50>; ++ pagesize = <8>; ++ }; ++ }; ++ ++ pinctrl@fc038000 { ++ pinctrl_flx0_default: flx0_default { ++ pinmux = <PIN_PB28__FLEXCOM0_IO0>, ++ <PIN_PB29__FLEXCOM0_IO1>; ++ bias-disable; ++ }; ++ ++ pinctrl_i2c0_default: i2c0_default { ++ pinmux = <PIN_PD21__TWD0>, ++ <PIN_PD22__TWCK0>; ++ bias-disable; ++ }; ++ ++ pinctrl_i2c1_default: i2c1_default { ++ pinmux = <PIN_PC6__TWD1>, ++ <PIN_PC7__TWCK1>; ++ bias-disable; ++ }; ++ ++ pinctrl_key_gpio_default: key_gpio_default { ++ pinmux = <PIN_PA10__GPIO>; ++ bias-pull-up; ++ }; ++ ++ pinctrl_led_gpio_default: led_gpio_default { ++ pinmux = <PIN_PB6__GPIO>, ++ <PIN_PB8__GPIO>, ++ <PIN_PB10__GPIO>; ++ bias-pull-up; ++ }; ++ ++ pinctrl_macb0_default: macb0_default { ++ pinmux = <PIN_PB14__GTXCK>, ++ <PIN_PB15__GTXEN>, ++ <PIN_PB16__GRXDV>, ++ <PIN_PB17__GRXER>, ++ <PIN_PB18__GRX0>, ++ <PIN_PB19__GRX1>, ++ <PIN_PB20__GTX0>, ++ <PIN_PB21__GTX1>, ++ <PIN_PB22__GMDC>, ++ <PIN_PB23__GMDIO>; ++ bias-disable; ++ }; ++ ++ pinctrl_macb0_phy_irq: macb0_phy_irq { ++ pinmux = <PIN_PB24__GPIO>; ++ bias-disable; ++ }; ++ ++ pinctrl_nand_default: nand_default { ++ re_we_data { ++ pinmux = <PIN_PA22__D0>, ++ <PIN_PA23__D1>, ++ <PIN_PA24__D2>, ++ <PIN_PA25__D3>, ++ <PIN_PA26__D4>, ++ <PIN_PA27__D5>, ++ <PIN_PA28__D6>, ++ <PIN_PA29__D7>, ++ <PIN_PA30__NWE_NANDWE>, ++ <PIN_PB2__NRD_NANDOE>; ++ bias-pull-up; ++ drive-strength = <ATMEL_PIO_DRVSTR_ME>; ++ }; ++ ++ ale_cle_rdy_cs { ++ pinmux = <PIN_PB0__A21_NANDALE>, ++ <PIN_PB1__A22_NANDCLE>, ++ <PIN_PC8__NANDRDY>, ++ <PIN_PA31__NCS3>; ++ bias-pull-up; ++ }; ++ }; ++ ++ pinctrl_sdmmc0_default: sdmmc0_default { ++ cmd_data { ++ pinmux = <PIN_PA1__SDMMC0_CMD>, ++ <PIN_PA2__SDMMC0_DAT0>, ++ <PIN_PA3__SDMMC0_DAT1>, ++ <PIN_PA4__SDMMC0_DAT2>, ++ <PIN_PA5__SDMMC0_DAT3>, ++ <PIN_PA6__SDMMC0_DAT4>, ++ <PIN_PA7__SDMMC0_DAT5>, ++ <PIN_PA8__SDMMC0_DAT6>, ++ <PIN_PA9__SDMMC0_DAT7>; ++ bias-pull-up; ++ }; ++ ++ ck_cd_vddsel { ++ pinmux = <PIN_PA0__SDMMC0_CK>, ++ <PIN_PA11__SDMMC0_VDDSEL>, ++ <PIN_PA13__SDMMC0_CD>; ++ bias-disable; ++ }; ++ }; ++ ++ pinctrl_spi0_default: spi0_default { ++ pinmux = <PIN_PA14__SPI0_SPCK>, ++ <PIN_PA15__SPI0_MOSI>, ++ <PIN_PA16__SPI0_MISO>, ++ <PIN_PA17__SPI0_NPCS0>; ++ bias-disable; ++ }; ++ ++ pinctrl_spi1_default: spi1_default { ++ pinmux = <PIN_PC1__SPI1_SPCK>, ++ <PIN_PC2__SPI1_MOSI>, ++ <PIN_PC3__SPI1_MISO>, ++ <PIN_PC4__SPI1_NPCS0>; ++ bias-disable; ++ }; ++ ++ pinctrl_uart0_default: uart0_default { ++ pinmux = <PIN_PB26__URXD0>, ++ <PIN_PB27__UTXD0>; ++ bias-disable; ++ }; ++ ++ pinctrl_uart2_default: uart2_default { ++ pinmux = <PIN_PD23__URXD2>, ++ <PIN_PD24__UTXD2>; ++ bias-disable; ++ }; ++ ++ pinctrl_usb_default: usb_default { ++ pinmux = <PIN_PB12__GPIO>; ++ bias-disable; ++ }; ++ ++ pinctrl_usba_vbus: usba_vbus { ++ pinmux = <PIN_PB11__GPIO>; ++ bias-disable; ++ }; ++ ++ }; ++ ++ ptc@fc060000 { ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ gpio_keys { ++ compatible = "gpio-keys"; ++ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_key_gpio_default>; ++ ++ bp1 { ++ label = "PB_USER"; ++ gpios = <&pioA PIN_PA10 GPIO_ACTIVE_LOW>; ++ linux,code = <0x104>; ++ wakeup-source; ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_led_gpio_default>; ++ status = "okay"; ++ ++ red { ++ label = "red"; ++ gpios = <&pioA PIN_PB10 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ green { ++ label = "green"; ++ gpios = <&pioA PIN_PB8 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ blue { ++ label = "blue"; ++ gpios = <&pioA PIN_PB6 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "heartbeat"; ++ }; ++ }; ++}; +-- +2.7.4 |