2023-01-12 12:03:09

by Durai Manickam KR

[permalink] [raw]
Subject: [PATCH v4 0/8] Add support for sam9x60 curiosity board

This series of patches is meant to address the following:
- Moving of flexcom definitions from board file to SoC file and
some minor changes to its properties.
- Add support for the new sam9x60 curiosity board based on the
existing sam9x60 SoC.

Changes in v4:
--------------
- Added the missed property atmel,usart-mode in uart5
- Renamed the led label.

Changes in v3:
--------------
- Updated commit logs mentioning each author's contribution.
- Author name is updated based on the linux mainline guidelines.
- updated the description file such that sam9x60 curiosity is
added together with sam9x60ek as an enum.
- Updated the entries in the regulator container alphabetically
sorted.
- Added label name and node name following the guidelines.

Changes in v2:
--------------
- Added generic names for regulator node.
- Removed the #addredd-cells and #size-cells property which shows
compilation warning.
- Removed the property "status=okay" as this is default.
- No underscores used for the pinctrl definitions and node names.
- Organised the patches in the logical way.
- Bindings are made separate patch.

Durai Manickam KR (4):
ARM: dts: at91: sam9x60: move flexcom definitions
ARM: dts: at91: sam9x60: fix spi4 node
dt-bindings: arm: at91: Add info on sam9x60 curiosity
ARM: dts: at91: sam9x60_curiosity: Add device tree for sam9x60
curiosity board

Manikandan Muralidharan (4):
ARM: dts: at91: sam9x60: Fix the label numbering for the flexcom
functions
ARM: dts: at91: sam9x60: Specify the FIFO size for the Flexcom UART
ARM: dts: at91: sam9x60: Add DMA bindings for the flexcom nodes
ARM: dts: at91: sam9x60: Add missing flexcom definitions

.../devicetree/bindings/arm/atmel-at91.yaml | 6 +-
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/at91-sam9x60_curiosity.dts | 499 ++++++++++++++
arch/arm/boot/dts/at91-sam9x60ek.dts | 50 +-
arch/arm/boot/dts/sam9x60.dtsi | 622 ++++++++++++++++++
5 files changed, 1136 insertions(+), 42 deletions(-)
create mode 100644 arch/arm/boot/dts/at91-sam9x60_curiosity.dts

--
2.25.1


2023-01-12 12:07:52

by Durai Manickam KR

[permalink] [raw]
Subject: [PATCH v4 8/8] ARM: dts: at91: sam9x60_curiosity: Add device tree for sam9x60 curiosity board

Add device tree file for sam9x60 curiosity board.

Signed-off-by: Durai Manickam KR <[email protected]>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/at91-sam9x60_curiosity.dts | 499 +++++++++++++++++++
2 files changed, 500 insertions(+)
create mode 100644 arch/arm/boot/dts/at91-sam9x60_curiosity.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 6aa7dc4db2fc..da20980384c4 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -51,6 +51,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
at91sam9x25ek.dtb \
at91sam9x35ek.dtb
dtb-$(CONFIG_SOC_SAM9X60) += \
+ at91-sam9x60_curiosity.dtb \
at91-sam9x60ek.dtb
dtb-$(CONFIG_SOC_SAM_V7) += \
at91-kizbox2-2.dtb \
diff --git a/arch/arm/boot/dts/at91-sam9x60_curiosity.dts b/arch/arm/boot/dts/at91-sam9x60_curiosity.dts
new file mode 100644
index 000000000000..4be98245326c
--- /dev/null
+++ b/arch/arm/boot/dts/at91-sam9x60_curiosity.dts
@@ -0,0 +1,499 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * at91-sam9x60_curiosity.dts - Device Tree file for Microchip SAM9X60 Curiosity board
+ *
+ * Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries
+ *
+ * Author: Durai Manickam KR <[email protected]>
+ */
+/dts-v1/;
+#include "sam9x60.dtsi"
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Microchip SAM9X60 Curiosity";
+ compatible = "microchip,sam9x60-curiosity", "microchip,sam9x60", "atmel,at91sam9";
+
+ aliases {
+ i2c0 = &i2c0;
+ i2c1 = &i2c6;
+ serial2 = &uart7;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory@20000000 {
+ reg = <0x20000000 0x8000000>;
+ };
+
+ clocks {
+ slow_xtal {
+ clock-frequency = <32768>;
+ };
+
+ main_xtal {
+ clock-frequency = <24000000>;
+ };
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_key_gpio_default>;
+
+ button-user {
+ label = "PB_USER";
+ gpios = <&pioA 29 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_PROG1>;
+ wakeup-source;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_gpio_leds>;
+
+ led-red {
+ label = "red";
+ gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-green {
+ label = "green";
+ gpios = <&pioD 19 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-blue {
+ label = "blue";
+ gpios = <&pioD 21 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "heartbeat";
+ };
+ };
+
+
+ vdd_1v8: regulator-0 {
+ compatible = "regulator-fixed";
+ regulator-always-on;
+ regulator-max-microvolt = <1800000>;
+ regulator-min-microvolt = <1800000>;
+ regulator-name = "VDD_1V8";
+ };
+
+ vdd_1v15: regulator-1 {
+ compatible = "regulator-fixed";
+ regulator-always-on;
+ regulator-max-microvolt = <1150000>;
+ regulator-min-microvolt = <1150000>;
+ regulator-name = "VDD_1V15";
+ };
+
+ vdd1_3v3: regulator-2 {
+ compatible = "regulator-fixed";
+ regulator-always-on;
+ regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3300000>;
+ regulator-name = "VDD1_3V3";
+ };
+};
+
+&adc {
+ vddana-supply = <&vdd1_3v3>;
+ vref-supply = <&vdd1_3v3>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>;
+ status = "okay";
+};
+
+&can0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_can0_rx_tx>;
+ status = "disabled"; /* Conflict with dbgu. */
+};
+
+&can1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_can1_rx_tx>;
+ status = "okay";
+};
+
+&dbgu {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_dbgu>;
+ status = "okay"; /* Conflict with can0. */
+};
+
+&ebi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_ebi_addr_nand &pinctrl_ebi_data_lsb>;
+ status = "okay";
+
+ nand_controller: nand-controller {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_nand_oe_we &pinctrl_nand_cs &pinctrl_nand_rb>;
+ status = "okay";
+
+ nand@3 {
+ reg = <0x3 0x0 0x800000>;
+ rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
+ cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
+ nand-bus-width = <8>;
+ nand-ecc-mode = "hw";
+ nand-ecc-strength = <8>;
+ nand-ecc-step-size = <512>;
+ nand-on-flash-bbt;
+ label = "atmel_nand";
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ at91bootstrap@0 {
+ label = "at91bootstrap";
+ reg = <0x0 0x40000>;
+ };
+
+ uboot@40000 {
+ label = "u-boot";
+ reg = <0x40000 0xc0000>;
+ };
+
+ ubootenvred@100000 {
+ label = "U-Boot Env Redundant";
+ reg = <0x100000 0x40000>;
+ };
+
+ ubootenv@140000 {
+ label = "U-Boot Env";
+ 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>;
+ };
+ };
+ };
+ };
+};
+
+&flx0 {
+ atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
+ status = "okay";
+
+ i2c0: i2c@600 {
+ dmas = <0>, <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_flx0_default>;
+ i2c-analog-filter;
+ i2c-digital-filter;
+ i2c-digital-filter-width-ns = <35>;
+ status = "okay";
+
+ eeprom@53 {
+ compatible = "atmel,24c02";
+ reg = <0x53>;
+ pagesize = <16>;
+ };
+ };
+};
+
+&flx6 {
+ atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
+ status = "okay";
+
+ i2c6: i2c@600 {
+ dmas = <0>, <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_flx6_default>;
+ i2c-analog-filter;
+ i2c-digital-filter;
+ i2c-digital-filter-width-ns = <35>;
+ status = "disabled";
+ };
+};
+
+&flx7 {
+ atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
+ status = "okay";
+
+ uart7: serial@200 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_flx7_default>;
+ status = "okay";
+ };
+};
+
+&macb0 {
+ phy-mode = "rmii";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_macb0_rmii>;
+ status = "okay";
+
+ ethernet-phy@0 {
+ reg = <0x0>;
+ };
+};
+
+&pinctrl {
+ adc {
+ pinctrl_adc_default: adc-default {
+ atmel,pins = <AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+ };
+
+ pinctrl_adtrg_default: adtrg-default {
+ atmel,pins = <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
+ };
+ };
+
+ can0 {
+ pinctrl_can0_rx_tx: can0-rx-tx {
+ atmel,pins =
+ <AT91_PIOA 9 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANRX0 */
+ AT91_PIOA 10 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANTX0 */
+ AT91_PIOC 9 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>; /* Enable CAN Transceivers */
+ };
+ };
+
+ can1 {
+ pinctrl_can1_rx_tx: can1-rx-tx {
+ atmel,pins =
+ <AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANRX1 */
+ AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANTX1 */
+ AT91_PIOB 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>; /* Enable CAN Transceivers */
+ };
+ };
+
+ dbgu {
+ pinctrl_dbgu: dbgu-0 {
+ atmel,pins = <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+ AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+ };
+ };
+
+ ebi {
+ pinctrl_ebi_data_lsb: ebi-data-lsb {
+ atmel,pins =
+ <AT91_PIOD 6 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
+ AT91_PIOD 7 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
+ AT91_PIOD 8 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
+ AT91_PIOD 9 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
+ AT91_PIOD 10 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
+ AT91_PIOD 11 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
+ AT91_PIOD 12 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
+ AT91_PIOD 13 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
+ };
+
+ pinctrl_ebi_addr_nand: ebi-addr-nand {
+ atmel,pins =
+ <AT91_PIOD 2 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
+ AT91_PIOD 3 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
+ };
+ };
+
+ flexcom {
+ pinctrl_flx0_default: flx0-twi {
+ atmel,pins =
+ <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+ AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
+ };
+
+ pinctrl_flx6_default: flx6-twi {
+ atmel,pins =
+ <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+ AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
+ };
+
+ pinctrl_flx7_default: flx7-usart {
+ atmel,pins =
+ <AT91_PIOC 0 AT91_PERIPH_C AT91_PINCTRL_NONE
+ AT91_PIOC 1 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+ };
+ };
+
+ gpio-keys {
+ pinctrl_key_gpio_default: pinctrl-key-gpio {
+ atmel,pins = <AT91_PIOA 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+ };
+ };
+
+ leds {
+ pinctrl_gpio_leds: gpio-leds {
+ atmel,pins = <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+ AT91_PIOD 19 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+ AT91_PIOD 21 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+ };
+ };
+
+ macb0 {
+ pinctrl_macb0_rmii: macb0-rmii-0 {
+ atmel,pins =
+ <AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB0 periph A */
+ AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB1 periph A */
+ AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB2 periph A */
+ AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB3 periph A */
+ AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB4 periph A */
+ AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB5 periph A */
+ AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB6 periph A */
+ AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB7 periph A */
+ AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB9 periph A */
+ AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB10 periph A */
+ };
+ };
+
+ nand {
+ pinctrl_nand_oe_we: nand-oe-we-0 {
+ atmel,pins =
+ <AT91_PIOD 0 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
+ AT91_PIOD 1 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
+ };
+
+ pinctrl_nand_rb: nand-rb-0 {
+ atmel,pins =
+ <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
+ };
+
+ pinctrl_nand_cs: nand-cs-0 {
+ atmel,pins =
+ <AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
+ };
+ };
+
+ pwm0 {
+ pinctrl_pwm0_0: pwm0-0 {
+ atmel,pins = <AT91_PIOB 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+ };
+
+ pinctrl_pwm0_1: pwm0-1 {
+ atmel,pins = <AT91_PIOB 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+ };
+
+ pinctrl_pwm0_2: pwm0-2 {
+ atmel,pins = <AT91_PIOD 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+ };
+ };
+
+ sdmmc0 {
+ pinctrl_sdmmc0_default: sdmmc0 {
+ atmel,pins =
+ <AT91_PIOA 17 AT91_PERIPH_A (AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA17 CK periph A with pullup */
+ AT91_PIOA 16 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA16 CMD periph A with pullup */
+ AT91_PIOA 15 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA15 DAT0 periph A */
+ AT91_PIOA 18 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA18 DAT1 periph A with pullup */
+ AT91_PIOA 19 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA19 DAT2 periph A with pullup */
+ AT91_PIOA 20 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>; /* PA20 DAT3 periph A with pullup */
+ };
+ pinctrl_sdmmc0_cd: sdmmc0-cd {
+ atmel,pins =
+ <AT91_PIOA 25 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+ };
+ };
+
+ sdmmc1 {
+ pinctrl_sdmmc1_default: sdmmc1 {
+ atmel,pins =
+ <AT91_PIOA 13 AT91_PERIPH_B (AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA13 CK periph B */
+ AT91_PIOA 12 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA12 CMD periph B with pullup */
+ AT91_PIOA 11 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA11 DAT0 periph B with pullup */
+ AT91_PIOA 2 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA2 DAT1 periph B with pullup */
+ AT91_PIOA 3 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA3 DAT2 periph B with pullup */
+ AT91_PIOA 4 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>; /* PA4 DAT3 periph B with pullup */
+ };
+ };
+
+ usb0 {
+ pinctrl_usba_vbus: usba-vbus {
+ atmel,pins = <AT91_PIOA 27 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+ };
+ };
+
+ usb1 {
+ pinctrl_usb_default: usb-default {
+ atmel,pins = <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+ AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+ };
+ };
+}; /* pinctrl */
+
+&pwm0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pwm0_0 &pinctrl_pwm0_1 &pinctrl_pwm0_2>;
+ status = "okay";
+};
+
+&sdmmc0 {
+ bus-width = <4>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_sdmmc0_default &pinctrl_sdmmc0_cd>;
+ cd-gpios = <&pioA 25 GPIO_ACTIVE_LOW>;
+ disable-wp;
+ status = "okay";
+};
+
+&sdmmc1 {
+ bus-width = <4>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_sdmmc1_default>;
+ status = "disabled";
+};
+
+&shutdown_controller {
+ debounce-delay-us = <976>;
+ status = "okay";
+
+ input@0 {
+ reg = <0>;
+ };
+};
+
+&tcb0 {
+ timer0: timer@0 {
+ compatible = "atmel,tcb-timer";
+ reg = <0>;
+ };
+
+ timer1: timer@1 {
+ compatible = "atmel,tcb-timer";
+ reg = <1>;
+ };
+};
+
+&usb0 {
+ atmel,vbus-gpio = <&pioA 27 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usba_vbus>;
+ status = "okay";
+};
+
+&usb1 {
+ num-ports = <3>;
+ atmel,vbus-gpio = <0
+ &pioD 18 GPIO_ACTIVE_HIGH
+ &pioD 15 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usb_default>;
+ status = "okay";
+};
+
+&usb2 {
+ status = "okay";
+};
+
+&watchdog {
+ status = "okay";
+};
--
2.25.1

2023-01-12 12:28:19

by Durai Manickam KR

[permalink] [raw]
Subject: [PATCH v4 7/8] dt-bindings: arm: at91: Add info on sam9x60 curiosity

Adding the sam9x60 curiosity board from Microchip into the atmel AT91 board
description yaml file.

Signed-off-by: Durai Manickam KR <[email protected]>
---
Documentation/devicetree/bindings/arm/atmel-at91.yaml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/arm/atmel-at91.yaml b/Documentation/devicetree/bindings/arm/atmel-at91.yaml
index 2224b18801a1..dfb8fd089197 100644
--- a/Documentation/devicetree/bindings/arm/atmel-at91.yaml
+++ b/Documentation/devicetree/bindings/arm/atmel-at91.yaml
@@ -91,9 +91,11 @@ properties:
- const: atmel,sama5d2
- const: atmel,sama5

- - description: SAM9X60-EK board
+ - description: Microchip SAM9X60 Evaluation Boards
items:
- - const: microchip,sam9x60ek
+ - enum:
+ - microchip,sam9x60ek
+ - microchip,sam9x60-curiosity
- const: microchip,sam9x60
- const: atmel,at91sam9

--
2.25.1

2023-01-12 12:33:31

by Durai Manickam KR

[permalink] [raw]
Subject: [PATCH v4 5/8] ARM: dts: at91: sam9x60: Add DMA bindings for the flexcom nodes

From: Manikandan Muralidharan <[email protected]>

Add dma bindings for flexcom nodes in the soc dtsi file. Users those who
don't wish to use the DMA function for their flexcom functions can
overwrite the dma bindings in the board device tree file.

Signed-off-by: Manikandan Muralidharan <[email protected]>
[[email protected]: fixed code indentation and updated commit log]
Signed-off-by: Durai Manickam KR <[email protected]>
---
arch/arm/boot/dts/at91-sam9x60ek.dts | 3 +++
arch/arm/boot/dts/sam9x60.dtsi | 27 +++++++++++++++++++++++++++
2 files changed, 30 insertions(+)

diff --git a/arch/arm/boot/dts/at91-sam9x60ek.dts b/arch/arm/boot/dts/at91-sam9x60ek.dts
index 6b6391d5041e..180e4b1aa2f6 100644
--- a/arch/arm/boot/dts/at91-sam9x60ek.dts
+++ b/arch/arm/boot/dts/at91-sam9x60ek.dts
@@ -209,6 +209,7 @@ &flx0 {
i2c0: i2c@600 {
#address-cells = <1>;
#size-cells = <0>;
+ dmas = <0>, <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flx0_default>;
i2c-analog-filter;
@@ -230,6 +231,7 @@ &flx4 {
status = "disabled";

spi4: spi@400 {
+ dmas = <0>, <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flx4_default>;
status = "disabled";
@@ -254,6 +256,7 @@ &flx6 {
i2c6: i2c@600 {
#address-cells = <1>;
#size-cells = <0>;
+ dmas = <0>, <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flx6_default>;
i2c-analog-filter;
diff --git a/arch/arm/boot/dts/sam9x60.dtsi b/arch/arm/boot/dts/sam9x60.dtsi
index fbdde3ab1086..8f44854dd8fa 100644
--- a/arch/arm/boot/dts/sam9x60.dtsi
+++ b/arch/arm/boot/dts/sam9x60.dtsi
@@ -177,6 +177,15 @@ spi4: spi@400 {
interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
clock-names = "spi_clk";
+ dmas = <&dma0
+ (AT91_XDMAC_DT_MEM_IF(0) |
+ AT91_XDMAC_DT_PER_IF(1) |
+ AT91_XDMAC_DT_PERID(8))>,
+ <&dma0
+ (AT91_XDMAC_DT_MEM_IF(0) |
+ AT91_XDMAC_DT_PER_IF(1) |
+ AT91_XDMAC_DT_PERID(9))>;
+ dma-names = "tx", "rx";
atmel,fifo-size = <16>;
status = "disabled";
};
@@ -417,6 +426,15 @@ i2c6: i2c@600 {
reg = <0x600 0x200>;
interrupts = <9 IRQ_TYPE_LEVEL_HIGH 7>;
clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
+ dmas = <&dma0
+ (AT91_XDMAC_DT_MEM_IF(0) |
+ AT91_XDMAC_DT_PER_IF(1) |
+ AT91_XDMAC_DT_PERID(12))>,
+ <&dma0
+ (AT91_XDMAC_DT_MEM_IF(0) |
+ AT91_XDMAC_DT_PER_IF(1) |
+ AT91_XDMAC_DT_PERID(13))>;
+ dma-names = "tx", "rx";
atmel,fifo-size = <16>;
status = "disabled";
};
@@ -456,6 +474,15 @@ i2c0: i2c@600 {
reg = <0x600 0x200>;
interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
+ dmas = <&dma0
+ (AT91_XDMAC_DT_MEM_IF(0) |
+ AT91_XDMAC_DT_PER_IF(1) |
+ AT91_XDMAC_DT_PERID(0))>,
+ <&dma0
+ (AT91_XDMAC_DT_MEM_IF(0) |
+ AT91_XDMAC_DT_PER_IF(1) |
+ AT91_XDMAC_DT_PERID(1))>;
+ dma-names = "tx", "rx";
atmel,fifo-size = <16>;
status = "disabled";
};
--
2.25.1

2023-01-12 13:18:07

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v4 7/8] dt-bindings: arm: at91: Add info on sam9x60 curiosity

On 12/01/2023 12:02, Durai Manickam KR wrote:
> Adding the sam9x60 curiosity board from Microchip into the atmel AT91 board
> description yaml file.
>

Acked-by: Krzysztof Kozlowski <[email protected]>

Best regards,
Krzysztof

2023-01-16 10:32:16

by Claudiu Beznea

[permalink] [raw]
Subject: Re: [PATCH v4 5/8] ARM: dts: at91: sam9x60: Add DMA bindings for the flexcom nodes

On 12.01.2023 13:02, Durai Manickam KR wrote:
> From: Manikandan Muralidharan <[email protected]>
>
> Add dma bindings for flexcom nodes in the soc dtsi file. Users those who
> don't wish to use the DMA function for their flexcom functions can
> overwrite the dma bindings in the board device tree file.
>
> Signed-off-by: Manikandan Muralidharan <[email protected]>
> [[email protected]: fixed code indentation and updated commit log]
> Signed-off-by: Durai Manickam KR <[email protected]>

Reviewed-by: Claudiu Beznea <[email protected]>


> ---
> arch/arm/boot/dts/at91-sam9x60ek.dts | 3 +++
> arch/arm/boot/dts/sam9x60.dtsi | 27 +++++++++++++++++++++++++++
> 2 files changed, 30 insertions(+)
>
> diff --git a/arch/arm/boot/dts/at91-sam9x60ek.dts b/arch/arm/boot/dts/at91-sam9x60ek.dts
> index 6b6391d5041e..180e4b1aa2f6 100644
> --- a/arch/arm/boot/dts/at91-sam9x60ek.dts
> +++ b/arch/arm/boot/dts/at91-sam9x60ek.dts
> @@ -209,6 +209,7 @@ &flx0 {
> i2c0: i2c@600 {
> #address-cells = <1>;
> #size-cells = <0>;
> + dmas = <0>, <0>;
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_flx0_default>;
> i2c-analog-filter;
> @@ -230,6 +231,7 @@ &flx4 {
> status = "disabled";
>
> spi4: spi@400 {
> + dmas = <0>, <0>;
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_flx4_default>;
> status = "disabled";
> @@ -254,6 +256,7 @@ &flx6 {
> i2c6: i2c@600 {
> #address-cells = <1>;
> #size-cells = <0>;
> + dmas = <0>, <0>;
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_flx6_default>;
> i2c-analog-filter;
> diff --git a/arch/arm/boot/dts/sam9x60.dtsi b/arch/arm/boot/dts/sam9x60.dtsi
> index fbdde3ab1086..8f44854dd8fa 100644
> --- a/arch/arm/boot/dts/sam9x60.dtsi
> +++ b/arch/arm/boot/dts/sam9x60.dtsi
> @@ -177,6 +177,15 @@ spi4: spi@400 {
> interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
> clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
> clock-names = "spi_clk";
> + dmas = <&dma0
> + (AT91_XDMAC_DT_MEM_IF(0) |
> + AT91_XDMAC_DT_PER_IF(1) |
> + AT91_XDMAC_DT_PERID(8))>,
> + <&dma0
> + (AT91_XDMAC_DT_MEM_IF(0) |
> + AT91_XDMAC_DT_PER_IF(1) |
> + AT91_XDMAC_DT_PERID(9))>;
> + dma-names = "tx", "rx";
> atmel,fifo-size = <16>;
> status = "disabled";
> };
> @@ -417,6 +426,15 @@ i2c6: i2c@600 {
> reg = <0x600 0x200>;
> interrupts = <9 IRQ_TYPE_LEVEL_HIGH 7>;
> clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
> + dmas = <&dma0
> + (AT91_XDMAC_DT_MEM_IF(0) |
> + AT91_XDMAC_DT_PER_IF(1) |
> + AT91_XDMAC_DT_PERID(12))>,
> + <&dma0
> + (AT91_XDMAC_DT_MEM_IF(0) |
> + AT91_XDMAC_DT_PER_IF(1) |
> + AT91_XDMAC_DT_PERID(13))>;
> + dma-names = "tx", "rx";
> atmel,fifo-size = <16>;
> status = "disabled";
> };
> @@ -456,6 +474,15 @@ i2c0: i2c@600 {
> reg = <0x600 0x200>;
> interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
> clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
> + dmas = <&dma0
> + (AT91_XDMAC_DT_MEM_IF(0) |
> + AT91_XDMAC_DT_PER_IF(1) |
> + AT91_XDMAC_DT_PERID(0))>,
> + <&dma0
> + (AT91_XDMAC_DT_MEM_IF(0) |
> + AT91_XDMAC_DT_PER_IF(1) |
> + AT91_XDMAC_DT_PERID(1))>;
> + dma-names = "tx", "rx";
> atmel,fifo-size = <16>;
> status = "disabled";
> };

2023-01-16 11:14:37

by Claudiu Beznea

[permalink] [raw]
Subject: Re: [PATCH v4 8/8] ARM: dts: at91: sam9x60_curiosity: Add device tree for sam9x60 curiosity board

On 12.01.2023 13:02, Durai Manickam KR wrote:
> Add device tree file for sam9x60 curiosity board.
>
> Signed-off-by: Durai Manickam KR <[email protected]>
> ---
> arch/arm/boot/dts/Makefile | 1 +
> arch/arm/boot/dts/at91-sam9x60_curiosity.dts | 499 +++++++++++++++++++
> 2 files changed, 500 insertions(+)
> create mode 100644 arch/arm/boot/dts/at91-sam9x60_curiosity.dts

There are some warnings with this file. Can you please check:

DTC arch/arm/boot/dts/at91-sam9x60_curiosity.dtb
arch/arm/boot/dts/at91-sam9x60_curiosity.dts:208.4-17: Warning
(reg_format): /ahb/apb/flexcom@f801c000/i2c@600/eeprom@53:reg: property has
invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm/boot/dts/at91-sam9x60_curiosity.dtb: Warning (pci_device_reg):
Failed prerequisite 'reg_format'
arch/arm/boot/dts/at91-sam9x60_curiosity.dtb: Warning (pci_device_bus_num):
Failed prerequisite 'reg_format'
arch/arm/boot/dts/at91-sam9x60_curiosity.dtb: Warning (simple_bus_reg):
Failed prerequisite 'reg_format'
arch/arm/boot/dts/sam9x60.dtsi:765.19-781.7: Warning (i2c_bus_bridge):
/ahb/apb/flexcom@f801c000/i2c@600: incorrect #address-cells for I2C bus
also defined at arch/arm/boot/dts/at91-sam9x60_curiosity.dts:197.16-211.4
arch/arm/boot/dts/sam9x60.dtsi:765.19-781.7: Warning (i2c_bus_bridge):
/ahb/apb/flexcom@f801c000/i2c@600: incorrect #size-cells for I2C bus
also defined at arch/arm/boot/dts/at91-sam9x60_curiosity.dts:197.16-211.4
arch/arm/boot/dts/at91-sam9x60_curiosity.dtb: Warning (i2c_bus_reg): Failed
prerequisite 'reg_format'
arch/arm/boot/dts/at91-sam9x60_curiosity.dtb: Warning (i2c_bus_reg): Failed
prerequisite 'i2c_bus_bridge'
arch/arm/boot/dts/at91-sam9x60_curiosity.dtb: Warning (spi_bus_reg): Failed
prerequisite 'reg_format'
arch/arm/boot/dts/at91-sam9x60_curiosity.dts:206.13-210.5: Warning
(avoid_default_addr_size): /ahb/apb/flexcom@f801c000/i2c@600/eeprom@53:
Relying on default #address-cells value
arch/arm/boot/dts/at91-sam9x60_curiosity.dts:206.13-210.5: Warning
(avoid_default_addr_size): /ahb/apb/flexcom@f801c000/i2c@600/eeprom@53:
Relying on default #size-cells value
arch/arm/boot/dts/at91-sam9x60_curiosity.dtb: Warning
(avoid_unnecessary_addr_size): Failed prerequisite 'avoid_default_addr_size'
arch/arm/boot/dts/at91-sam9x60_curiosity.dtb: Warning
(unique_unit_address_if_enabled): Failed prerequisite 'avoid_default_addr_size'


>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 6aa7dc4db2fc..da20980384c4 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -51,6 +51,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
> at91sam9x25ek.dtb \
> at91sam9x35ek.dtb
> dtb-$(CONFIG_SOC_SAM9X60) += \
> + at91-sam9x60_curiosity.dtb \
> at91-sam9x60ek.dtb
> dtb-$(CONFIG_SOC_SAM_V7) += \
> at91-kizbox2-2.dtb \
> diff --git a/arch/arm/boot/dts/at91-sam9x60_curiosity.dts b/arch/arm/boot/dts/at91-sam9x60_curiosity.dts
> new file mode 100644
> index 000000000000..4be98245326c
> --- /dev/null
> +++ b/arch/arm/boot/dts/at91-sam9x60_curiosity.dts
> @@ -0,0 +1,499 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * at91-sam9x60_curiosity.dts - Device Tree file for Microchip SAM9X60 Curiosity board
> + *
> + * Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries
> + *
> + * Author: Durai Manickam KR <[email protected]>
> + */
> +/dts-v1/;
> +#include "sam9x60.dtsi"
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> + model = "Microchip SAM9X60 Curiosity";
> + compatible = "microchip,sam9x60-curiosity", "microchip,sam9x60", "atmel,at91sam9";
> +
> + aliases {
> + i2c0 = &i2c0;
> + i2c1 = &i2c6;
> + serial2 = &uart7;
> + };
> +
> + chosen {
> + stdout-path = "serial0:115200n8";
> + };
> +
> + memory@20000000 {
> + reg = <0x20000000 0x8000000>;
> + };
> +
> + clocks {
> + slow_xtal {
> + clock-frequency = <32768>;
> + };
> +
> + main_xtal {
> + clock-frequency = <24000000>;
> + };
> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_key_gpio_default>;
> +
> + button-user {
> + label = "PB_USER";
> + gpios = <&pioA 29 GPIO_ACTIVE_LOW>;
> + linux,code = <KEY_PROG1>;
> + wakeup-source;
> + };
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_gpio_leds>;
> +
> + led-red {
> + label = "red";
> + gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
> + };
> +
> + led-green {
> + label = "green";
> + gpios = <&pioD 19 GPIO_ACTIVE_HIGH>;
> + };
> +
> + led-blue {
> + label = "blue";
> + gpios = <&pioD 21 GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "heartbeat";
> + };
> + };
> +
> +
> + vdd_1v8: regulator-0 {
> + compatible = "regulator-fixed";
> + regulator-always-on;
> + regulator-max-microvolt = <1800000>;
> + regulator-min-microvolt = <1800000>;
> + regulator-name = "VDD_1V8";
> + };
> +
> + vdd_1v15: regulator-1 {
> + compatible = "regulator-fixed";
> + regulator-always-on;
> + regulator-max-microvolt = <1150000>;
> + regulator-min-microvolt = <1150000>;
> + regulator-name = "VDD_1V15";
> + };
> +
> + vdd1_3v3: regulator-2 {
> + compatible = "regulator-fixed";
> + regulator-always-on;
> + regulator-max-microvolt = <3300000>;
> + regulator-min-microvolt = <3300000>;
> + regulator-name = "VDD1_3V3";
> + };
> +};
> +
> +&adc {
> + vddana-supply = <&vdd1_3v3>;
> + vref-supply = <&vdd1_3v3>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>;
> + status = "okay";
> +};
> +
> +&can0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_can0_rx_tx>;
> + status = "disabled"; /* Conflict with dbgu. */
> +};
> +
> +&can1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_can1_rx_tx>;
> + status = "okay";
> +};
> +
> +&dbgu {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_dbgu>;
> + status = "okay"; /* Conflict with can0. */
> +};
> +
> +&ebi {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_ebi_addr_nand &pinctrl_ebi_data_lsb>;
> + status = "okay";
> +
> + nand_controller: nand-controller {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_nand_oe_we &pinctrl_nand_cs &pinctrl_nand_rb>;
> + status = "okay";
> +
> + nand@3 {
> + reg = <0x3 0x0 0x800000>;
> + rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
> + cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
> + nand-bus-width = <8>;
> + nand-ecc-mode = "hw";
> + nand-ecc-strength = <8>;
> + nand-ecc-step-size = <512>;
> + nand-on-flash-bbt;
> + label = "atmel_nand";
> +
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + at91bootstrap@0 {
> + label = "at91bootstrap";
> + reg = <0x0 0x40000>;
> + };
> +
> + uboot@40000 {
> + label = "u-boot";
> + reg = <0x40000 0xc0000>;
> + };
> +
> + ubootenvred@100000 {
> + label = "U-Boot Env Redundant";
> + reg = <0x100000 0x40000>;
> + };
> +
> + ubootenv@140000 {
> + label = "U-Boot Env";
> + 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>;
> + };
> + };
> + };
> + };
> +};
> +
> +&flx0 {
> + atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
> + status = "okay";
> +
> + i2c0: i2c@600 {
> + dmas = <0>, <0>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_flx0_default>;
> + i2c-analog-filter;
> + i2c-digital-filter;
> + i2c-digital-filter-width-ns = <35>;
> + status = "okay";
> +
> + eeprom@53 {
> + compatible = "atmel,24c02";
> + reg = <0x53>;
> + pagesize = <16>;
> + };
> + };
> +};
> +
> +&flx6 {
> + atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
> + status = "okay";
> +
> + i2c6: i2c@600 {
> + dmas = <0>, <0>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_flx6_default>;
> + i2c-analog-filter;
> + i2c-digital-filter;
> + i2c-digital-filter-width-ns = <35>;
> + status = "disabled";
> + };
> +};
> +
> +&flx7 {
> + atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
> + status = "okay";
> +
> + uart7: serial@200 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_flx7_default>;
> + status = "okay";
> + };
> +};
> +
> +&macb0 {
> + phy-mode = "rmii";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_macb0_rmii>;
> + status = "okay";
> +
> + ethernet-phy@0 {
> + reg = <0x0>;
> + };
> +};
> +
> +&pinctrl {
> + adc {
> + pinctrl_adc_default: adc-default {
> + atmel,pins = <AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_NONE>;
> + };
> +
> + pinctrl_adtrg_default: adtrg-default {
> + atmel,pins = <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
> + };
> + };
> +
> + can0 {
> + pinctrl_can0_rx_tx: can0-rx-tx {
> + atmel,pins =
> + <AT91_PIOA 9 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANRX0 */
> + AT91_PIOA 10 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANTX0 */
> + AT91_PIOC 9 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>; /* Enable CAN Transceivers */
> + };
> + };
> +
> + can1 {
> + pinctrl_can1_rx_tx: can1-rx-tx {
> + atmel,pins =
> + <AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANRX1 */
> + AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANTX1 */
> + AT91_PIOB 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>; /* Enable CAN Transceivers */
> + };
> + };
> +
> + dbgu {
> + pinctrl_dbgu: dbgu-0 {
> + atmel,pins = <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
> + AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
> + };
> + };
> +
> + ebi {
> + pinctrl_ebi_data_lsb: ebi-data-lsb {
> + atmel,pins =
> + <AT91_PIOD 6 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
> + AT91_PIOD 7 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
> + AT91_PIOD 8 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
> + AT91_PIOD 9 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
> + AT91_PIOD 10 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
> + AT91_PIOD 11 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
> + AT91_PIOD 12 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
> + AT91_PIOD 13 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
> + };
> +
> + pinctrl_ebi_addr_nand: ebi-addr-nand {
> + atmel,pins =
> + <AT91_PIOD 2 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
> + AT91_PIOD 3 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
> + };
> + };
> +
> + flexcom {
> + pinctrl_flx0_default: flx0-twi {
> + atmel,pins =
> + <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
> + AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
> + };
> +
> + pinctrl_flx6_default: flx6-twi {
> + atmel,pins =
> + <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
> + AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
> + };
> +
> + pinctrl_flx7_default: flx7-usart {
> + atmel,pins =
> + <AT91_PIOC 0 AT91_PERIPH_C AT91_PINCTRL_NONE
> + AT91_PIOC 1 AT91_PERIPH_C AT91_PINCTRL_NONE>;
> + };
> + };
> +
> + gpio-keys {
> + pinctrl_key_gpio_default: pinctrl-key-gpio {
> + atmel,pins = <AT91_PIOA 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
> + };
> + };
> +
> + leds {
> + pinctrl_gpio_leds: gpio-leds {
> + atmel,pins = <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
> + AT91_PIOD 19 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
> + AT91_PIOD 21 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
> + };
> + };
> +
> + macb0 {
> + pinctrl_macb0_rmii: macb0-rmii-0 {
> + atmel,pins =
> + <AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB0 periph A */
> + AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB1 periph A */
> + AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB2 periph A */
> + AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB3 periph A */
> + AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB4 periph A */
> + AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB5 periph A */
> + AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB6 periph A */
> + AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB7 periph A */
> + AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB9 periph A */
> + AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB10 periph A */
> + };
> + };
> +
> + nand {
> + pinctrl_nand_oe_we: nand-oe-we-0 {
> + atmel,pins =
> + <AT91_PIOD 0 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
> + AT91_PIOD 1 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
> + };
> +
> + pinctrl_nand_rb: nand-rb-0 {
> + atmel,pins =
> + <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
> + };
> +
> + pinctrl_nand_cs: nand-cs-0 {
> + atmel,pins =
> + <AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
> + };
> + };
> +
> + pwm0 {
> + pinctrl_pwm0_0: pwm0-0 {
> + atmel,pins = <AT91_PIOB 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
> + };
> +
> + pinctrl_pwm0_1: pwm0-1 {
> + atmel,pins = <AT91_PIOB 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
> + };
> +
> + pinctrl_pwm0_2: pwm0-2 {
> + atmel,pins = <AT91_PIOD 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
> + };
> + };
> +
> + sdmmc0 {
> + pinctrl_sdmmc0_default: sdmmc0 {
> + atmel,pins =
> + <AT91_PIOA 17 AT91_PERIPH_A (AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA17 CK periph A with pullup */
> + AT91_PIOA 16 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA16 CMD periph A with pullup */
> + AT91_PIOA 15 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA15 DAT0 periph A */
> + AT91_PIOA 18 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA18 DAT1 periph A with pullup */
> + AT91_PIOA 19 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA19 DAT2 periph A with pullup */
> + AT91_PIOA 20 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>; /* PA20 DAT3 periph A with pullup */
> + };
> + pinctrl_sdmmc0_cd: sdmmc0-cd {
> + atmel,pins =
> + <AT91_PIOA 25 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
> + };
> + };
> +
> + sdmmc1 {
> + pinctrl_sdmmc1_default: sdmmc1 {
> + atmel,pins =
> + <AT91_PIOA 13 AT91_PERIPH_B (AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA13 CK periph B */
> + AT91_PIOA 12 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA12 CMD periph B with pullup */
> + AT91_PIOA 11 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA11 DAT0 periph B with pullup */
> + AT91_PIOA 2 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP |

Please keep 1 space b/w AT91_PIOA and the number, e.g. "AT91_PIOA 2" as
some may search in the file for the presence of this pin on other IPs. I
haven't checked other pinctrl definitions for the rest of IPs, can you
please handle them?

AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA2 DAT1 periph B with pullup */
> + AT91_PIOA 3 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA3 DAT2 periph B with pullup */
> + AT91_PIOA 4 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>; /* PA4 DAT3 periph B with pullup */
> + };
> + };
> +
> + usb0 {
> + pinctrl_usba_vbus: usba-vbus {
> + atmel,pins = <AT91_PIOA 27 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
> + };
> + };
> +
> + usb1 {
> + pinctrl_usb_default: usb-default {
> + atmel,pins = <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
> + AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
> + };
> + };
> +}; /* pinctrl */
> +
> +&pwm0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_pwm0_0 &pinctrl_pwm0_1 &pinctrl_pwm0_2>;
> + status = "okay";
> +};
> +
> +&sdmmc0 {
> + bus-width = <4>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_sdmmc0_default &pinctrl_sdmmc0_cd>;
> + cd-gpios = <&pioA 25 GPIO_ACTIVE_LOW>;
> + disable-wp;
> + status = "okay";
> +};
> +
> +&sdmmc1 {
> + bus-width = <4>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_sdmmc1_default>;
> + status = "disabled";
> +};

Is this disabled with a reason? I see there is no conflict with other
enabled IPs on this board.

> +
> +&shutdown_controller {
> + debounce-delay-us = <976>;
> + status = "okay";
> +
> + input@0 {
> + reg = <0>;
> + };
> +};
> +
> +&tcb0 {
> + timer0: timer@0 {
> + compatible = "atmel,tcb-timer";
> + reg = <0>;
> + };
> +
> + timer1: timer@1 {
> + compatible = "atmel,tcb-timer";
> + reg = <1>;
> + };
> +};
> +
> +&usb0 {
> + atmel,vbus-gpio = <&pioA 27 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usba_vbus>;
> + status = "okay";
> +};
> +
> +&usb1 {
> + num-ports = <3>;
> + atmel,vbus-gpio = <0
> + &pioD 18 GPIO_ACTIVE_HIGH
> + &pioD 15 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usb_default>;
> + status = "okay";
> +};
> +
> +&usb2 {
> + status = "okay";
> +};
> +
> +&watchdog {
> + status = "okay";
> +};