Re: [PATCH v2 2/2] ARM: dts: at91: add a dts and dtsi file for kizbox2 based boards

From: Alexandre Belloni
Date: Tue Oct 22 2019 - 04:36:03 EST


On 21/10/2019 14:58:04+0200, Kamel Bouhara wrote:
> There are several boards available depending on the PCB
> (3 antennas support and several revison). Add a dtsi file to share
> common binding between all kizbox2 boards. This patch also add support
> for the kizbox2-2 variant.
>
> Signed-off-by: Kévin RAYMOND <k.raymond@xxxxxxxxxxx>
> Signed-off-by: Mickael GARDET <m.gardet@xxxxxxxxxxx>
> Signed-off-by: Kamel Bouhara <kamel.bouhara@xxxxxxxxxxx>
> ---
> Changes in v2:
> - Replaced "_" by "-" in dts/dtsi file names
> - Fixed unusual C++ Style comments
>
> arch/arm/boot/dts/Makefile | 2 +-
> arch/arm/boot/dts/at91-kizbox.dts | 173 +++++++-------

This change should be separated in a different patch.

> arch/arm/boot/dts/at91-kizbox2-2.dts | 26 +++
> arch/arm/boot/dts/at91-kizbox2-common.dtsi | 258 +++++++++++++++++++++
> arch/arm/boot/dts/at91-kizbox2.dts | 244 -------------------
> 5 files changed, 370 insertions(+), 333 deletions(-)
> create mode 100644 arch/arm/boot/dts/at91-kizbox2-2.dts
> create mode 100644 arch/arm/boot/dts/at91-kizbox2-common.dtsi
> delete mode 100644 arch/arm/boot/dts/at91-kizbox2.dts
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 3bda216c41be..4ac053115a8e 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -45,7 +45,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
> at91sam9x25ek.dtb \
> at91sam9x35ek.dtb
> dtb-$(CONFIG_SOC_SAM_V7) += \
> - at91-kizbox2.dtb \
> + at91-kizbox2-2.dtb \
> at91-kizbox3-hs.dtb \
> at91-nattis-2-natte-2.dtb \
> at91-sama5d27_som1_ek.dtb \
> diff --git a/arch/arm/boot/dts/at91-kizbox.dts b/arch/arm/boot/dts/at91-kizbox.dts
> index 90996eaf73b2..9eb1ea750159 100644
> --- a/arch/arm/boot/dts/at91-kizbox.dts
> +++ b/arch/arm/boot/dts/at91-kizbox.dts
> @@ -28,85 +28,6 @@
> };
> };
>
> - ahb {
> - apb {
> - tcb0: timer@fffa0000 {
> - timer@0 {
> - compatible = "atmel,tcb-timer";
> - reg = <0>, <1>;
> - };
> -
> - timer@2 {
> - compatible = "atmel,tcb-timer";
> - reg = <2>;
> - };
> - };
> -
> - macb0: ethernet@fffc4000 {
> - phy-mode = "mii";
> - pinctrl-0 = <&pinctrl_macb_rmii
> - &pinctrl_macb_rmii_mii_alt>;
> - status = "okay";
> - };
> -
> - usart3: serial@fffd0000 {
> - status = "okay";
> - };
> -
> - dbgu: serial@fffff200 {
> - status = "okay";
> - };
> -
> - watchdog@fffffd40 {
> - timeout-sec = <15>;
> - atmel,max-heartbeat-sec = <16>;
> - atmel,min-heartbeat-sec = <0>;
> - status = "okay";
> - };
> - };
> -
> - usb0: ohci@500000 {
> - num-ports = <1>;
> - status = "okay";
> - };
> -
> - ebi: ebi@10000000 {
> - status = "okay";
> -
> - nand_controller: nand-controller {
> - status = "okay";
> - pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
> - pinctrl-names = "default";
> -
> - nand@3 {
> - reg = <0x3 0x0 0x800000>;
> - rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
> - cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
> - nand-bus-width = <8>;
> - nand-ecc-mode = "soft";
> - nand-on-flash-bbt;
> - label = "atmel_nand";
> -
> - partitions {
> - compatible = "fixed-partitions";
> - #address-cells = <1>;
> - #size-cells = <1>;
> -
> - bootstrap@0 {
> - label = "bootstrap";
> - reg = <0x0 0x20000>;
> - };
> -
> - ubi@20000 {
> - label = "ubi";
> - reg = <0x20000 0x7fe0000>;
> - };
> - };
> - };
> - };
> - };
> - };
> -
> gpio_keys {
> compatible = "gpio-keys";
> #address-cells = <1>;
> @@ -127,15 +48,6 @@
> };
> };
>
> - i2c-gpio-0 {
> - status = "okay";
> -
> - rtc: pcf8563@51 {
> - compatible = "nxp,pcf8563";
> - reg = <0x51>;
> - };
> - };
> -
> pwm_leds {
> compatible = "pwm-leds";
>
> @@ -179,3 +91,88 @@
> &pinctrl_tcb1_tiob0>;
> };
> };
> +
> +&tcb0 {
> + timer@0 {
> + compatible = "atmel,tcb-timer";
> + reg = <0>, <1>;
> + };
> +
> + timer@2 {
> + compatible = "atmel,tcb-timer";
> + reg = <2>;
> + };
> +};
> +
> +&ebi {
> + status = "okay";
> +};
> +
> +&nand_controller {
> + status = "okay";
> + pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
> + pinctrl-names = "default";
> +
> + nand@3 {
> + reg = <0x3 0x0 0x800000>;
> + rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
> + cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
> + nand-bus-width = <8>;
> + nand-ecc-mode = "soft";
> + nand-on-flash-bbt;
> + label = "atmel_nand";
> +
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + bootstrap@0 {
> + label = "bootstrap";
> + reg = <0x0 0x20000>;
> + };
> +
> + ubi@20000 {
> + label = "ubi";
> + reg = <0x20000 0x7fe0000>;
> + };
> + };
> + };
> +};
> +
> +&macb0 {
> + phy-mode = "mii";
> + pinctrl-0 = <&pinctrl_macb_rmii
> + &pinctrl_macb_rmii_mii_alt>;
> + status = "okay";
> +};
> +
> +&usart3 {
> + status = "okay";
> +};
> +
> +&dbgu {
> + status = "okay";
> +};
> +
> +&watchdog {
> + timeout-sec = <15>;
> + atmel,max-heartbeat-sec = <16>;
> + atmel,min-heartbeat-sec = <0>;
> + status = "okay";
> +};
> +
> +&usb0 {
> + num-ports = <1>;
> + status = "okay";
> +};
> +
> +&i2c-gpio-0 {
> + status = "okay";
> +
> + rtc: pcf8563@51 {
> + compatible = "nxp,pcf8563";
> + reg = <0x51>;
> + };
> +};
> +
> diff --git a/arch/arm/boot/dts/at91-kizbox2-2.dts b/arch/arm/boot/dts/at91-kizbox2-2.dts
> new file mode 100644
> index 000000000000..cab8b3579efa
> --- /dev/null
> +++ b/arch/arm/boot/dts/at91-kizbox2-2.dts
> @@ -0,0 +1,26 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * at91-kizbox2-2.dts - Device Tree file for the Kizbox2 with
> + * two head board
> + *
> + * Copyright (C) 2015 Overkiz SAS
> + *
> + * Authors: Antoine Aubert <a.aubert@xxxxxxxxxxx>
> + * Kévin Raymond <k.raymond@xxxxxxxxxxx>
> + */
> +/dts-v1/;
> +#include "at91-kizbox2-common.dtsi"
> +
> +/ {
> + model = "Overkiz Kizbox 2 with two heads";
> + compatible = "overkiz,kizbox2-2", "atmel,sama5d31",
> + "atmel,sama5d3", "atmel,sama5";
> +};
> +
> +&usart1 {
> + status = "okay";
> +};
> +
> +&usart2 {
> + status = "okay";
> +};
> diff --git a/arch/arm/boot/dts/at91-kizbox2-common.dtsi b/arch/arm/boot/dts/at91-kizbox2-common.dtsi
> new file mode 100644
> index 000000000000..af38253a6e7a
> --- /dev/null
> +++ b/arch/arm/boot/dts/at91-kizbox2-common.dtsi
> @@ -0,0 +1,258 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * at91-kizbox2_common.dtsi - Device Tree Include file for
> + * Overkiz Kizbox 2 family SoC
> + *
> + * Copyright (C) 2014-2018 Overkiz SAS
> + *
> + * Authors: Antoine Aubert <a.aubert@xxxxxxxxxxx>
> + * Gaël Portay <g.portay@xxxxxxxxxxx>
> + * Kévin Raymond <k.raymond@xxxxxxxxxxx>
> + */
> +#include "sama5d31.dtsi"
> +
> +/ {
> + chosen {
> + bootargs = "ubi.mtd=ubi";
> + stdout-path = &dbgu;
> + };
> +
> + memory {
> + reg = <0x20000000 0x10000000>;
> + };
> +
> + clocks {
> + slow_xtal {
> + clock-frequency = <32768>;
> + };
> +
> + main_xtal {
> + clock-frequency = <12000000>;
> + };
> + };
> +
> + gpio_keys {
> + compatible = "gpio-keys";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + prog {
> + label = "PB_PROG";
> + gpios = <&pioE 27 GPIO_ACTIVE_LOW>;
> + linux,code = <0x102>;
> + wakeup-source;
> + };
> +
> + reset {
> + label = "PB_RST";
> + gpios = <&pioE 29 GPIO_ACTIVE_LOW>;
> + linux,code = <0x100>;
> + wakeup-source;
> + };
> +
> + user {
> + label = "PB_USER";
> + gpios = <&pioE 31 GPIO_ACTIVE_HIGH>;
> + linux,code = <0x101>;
> + wakeup-source;
> + };
> + };
> +
> + pwm_leds {
> + compatible = "pwm-leds";
> +
> + blue {
> + label = "pwm:blue:user";
> + pwms = <&pwm0 2 10000000 0>;
> + max-brightness = <255>;
> + linux,default-trigger = "none";
> + };
> +
> + green {
> + label = "pwm:green:user";
> + pwms = <&pwm0 1 10000000 0>;
> + max-brightness = <255>;
> + linux,default-trigger = "default-on";
> + };
> +
> + red {
> + label = "pwm:red:user";
> + pwms = <&pwm0 0 10000000 0>;
> + max-brightness = <255>;
> + linux,default-trigger = "default-on";
> + };
> + };
> +};
> +
> +&i2c1 {
> + status = "okay";
> +
> + pmic: act8865@5b {
> + compatible = "active-semi,act8865";
> + reg = <0x5b>;
> + status = "okay";
> +
> + regulators {
> + vcc_1v8_reg: DCDC_REG1 {
> + regulator-name = "VCC_1V8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + };
> +
> + vcc_1v2_reg: DCDC_REG2 {
> + regulator-name = "VCC_1V2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-always-on;
> + };
> +
> + vcc_3v3_reg: DCDC_REG3 {
> + regulator-name = "VCC_3V3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> +
> + vddfuse_reg: LDO_REG1 {
> + regulator-name = "FUSE_2V5";
> + regulator-min-microvolt = <2500000>;
> + regulator-max-microvolt = <2500000>;
> + };
> +
> + vddana_reg: LDO_REG2 {
> + regulator-name = "VDDANA";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> +
> + vled_reg: LDO_REG3 {
> + regulator-name = "VLED";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> +
> + v3v8_rf_reg: LDO_REG4 {
> + regulator-name = "V3V8_RF";
> + regulator-min-microvolt = <3800000>;
> + regulator-max-microvolt = <3800000>;
> + regulator-always-on;
> + };
> + };
> + };
> +};
> +
> +&usart0 {
> + atmel,use-dma-rx;
> + atmel,use-dma-tx;
> + status = "disabled";
> +};
> +
> +&usart1 {
> + atmel,use-dma-rx;
> + atmel,use-dma-tx;
> + status = "disabled";
> +};
> +
> +&usart2 {
> + atmel,use-dma-rx;
> + atmel,use-dma-tx;
> + status = "disabled";
> +};
> +
> +&pwm0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_pwm0_pwmh0_1
> + &pinctrl_pwm0_pwmh1_1
> + &pinctrl_pwm0_pwmh2_0>;
> + status = "okay";
> +};
> +
> +&adc0 {
> + atmel,adc-vref = <3333>;
> + status = "okay";
> +};
> +
> +&macb1 {
> + phy-mode = "rmii";
> + status = "okay";
> +};
> +
> +&dbgu {
> + status = "okay";
> +};
> +
> +&watchdog {
> + status = "okay";
> +};
> +
> +&ebi {
> + pinctrl-0 = <&pinctrl_ebi_nand_addr>;
> + pinctrl-names = "default";
> + status = "okay";
> +};
> +
> +&nand_controller {
> + status = "okay";
> +
> + nand@3 {
> + reg = <0x3 0x0 0x2>;
> + atmel,rb = <0>;
> + nand-bus-width = <8>;
> + nand-ecc-mode = "hw";
> + nand-ecc-strength = <4>;
> + nand-ecc-step-size = <512>;
> + nand-on-flash-bbt;
> + label = "atmel_nand";
> +
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + bootstrap@0 {
> + label = "bootstrap";
> + reg = <0x0 0x20000>;
> + };
> +
> + ubi@20000 {
> + label = "ubi";
> + reg = <0x20000 0x7fe0000>;
> + };
> + };
> + };
> +};
> +
> +&usb1 {
> + status = "okay";
> +};
> +
> +&usb2 {
> + status = "okay";
> +};
> +
> +/* WMBUS (inverted with IO in the latest schematic) */
> +&pinctrl_usart0 {
> + atmel,pins =
> + <AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE
> + AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
> + AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;
> +};
> +
> +/* RTS */
> +&pinctrl_usart1 {
> + atmel,pins =
> + <AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE
> + AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
> + AT91_PIOE 7 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;
> +};
> +
> +/* IO (inverted with WMBUS in the latest schematic) */
> +&pinctrl_usart2 {
> + atmel,pins =
> + <AT91_PIOE 25 AT91_PERIPH_B AT91_PINCTRL_NONE
> + AT91_PIOE 26 AT91_PERIPH_B AT91_PINCTRL_PULL_UP
> + AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;
> +};
> diff --git a/arch/arm/boot/dts/at91-kizbox2.dts b/arch/arm/boot/dts/at91-kizbox2.dts
> deleted file mode 100644
> index 86d821884bd4..000000000000
> --- a/arch/arm/boot/dts/at91-kizbox2.dts
> +++ /dev/null
> @@ -1,244 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0-or-later
> -/*
> - * at91-kizbox2.dts - Device Tree file for Overkiz Kizbox 2 board
> - *
> - * Copyright (C) 2014 Gaël PORTAY <g.portay@xxxxxxxxxxx>
> - */
> -/dts-v1/;
> -#include "sama5d31.dtsi"
> -#include <dt-bindings/pwm/pwm.h>
> -
> -/ {
> - model = "Overkiz Kizbox 2";
> - compatible = "overkiz,kizbox2", "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
> -
> - chosen {
> - bootargs = "ubi.mtd=ubi";
> - stdout-path = &dbgu;
> - };
> -
> - memory {
> - reg = <0x20000000 0x10000000>;
> - };
> -
> - clocks {
> - slow_xtal {
> - clock-frequency = <32768>;
> - };
> -
> - main_xtal {
> - clock-frequency = <12000000>;
> - };
> - };
> -
> - ahb {
> - apb {
> - i2c1: i2c@f0018000 {
> - status = "okay";
> -
> - pmic: act8865@5b {
> - compatible = "active-semi,act8865";
> - reg = <0x5b>;
> - status = "okay";
> -
> - regulators {
> - vcc_1v8_reg: DCDC_REG1 {
> - regulator-name = "VCC_1V8";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - regulator-always-on;
> - };
> -
> - vcc_1v2_reg: DCDC_REG2 {
> - regulator-name = "VCC_1V2";
> - regulator-min-microvolt = <1200000>;
> - regulator-max-microvolt = <1200000>;
> - regulator-always-on;
> - };
> -
> - vcc_3v3_reg: DCDC_REG3 {
> - regulator-name = "VCC_3V3";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-always-on;
> - };
> -
> - vddfuse_reg: LDO_REG1 {
> - regulator-name = "FUSE_2V5";
> - regulator-min-microvolt = <2500000>;
> - regulator-max-microvolt = <2500000>;
> - };
> -
> - vddana_reg: LDO_REG2 {
> - regulator-name = "VDDANA";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-always-on;
> - };
> -
> - vled_reg: LDO_REG3 {
> - regulator-name = "VLED";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-always-on;
> - };
> -
> - v3v8_rf_reg: LDO_REG4 {
> - regulator-name = "V3V8_RF";
> - regulator-min-microvolt = <3800000>;
> - regulator-max-microvolt = <3800000>;
> - regulator-always-on;
> - };
> - };
> - };
> - };
> -
> - tcb0: timer@f0010000 {
> - timer@0 {
> - compatible = "atmel,tcb-timer";
> - reg = <0>;
> - };
> -
> - timer@1 {
> - compatible = "atmel,tcb-timer";
> - reg = <1>;
> - };
> - };
> -
> - usart0: serial@f001c000 {
> - status = "okay";
> - };
> -
> - usart1: serial@f0020000 {
> - status = "okay";
> - };
> -
> - pwm0: pwm@f002c000 {
> - pinctrl-names = "default";
> - pinctrl-0 = <&pinctrl_pwm0_pwmh0_1
> - &pinctrl_pwm0_pwmh1_1
> - &pinctrl_pwm0_pwmh2_0>;
> - status = "okay";
> - };
> -
> - adc0: adc@f8018000 {
> - atmel,adc-vref = <3333>;
> - status = "okay";
> - };
> -
> - usart2: serial@f8020000 {
> - status = "okay";
> - };
> -
> - macb1: ethernet@f802c000 {
> - phy-mode = "rmii";
> - status = "okay";
> - };
> -
> - dbgu: serial@ffffee00 {
> - status = "okay";
> - };
> -
> - watchdog@fffffe40 {
> - status = "okay";
> - };
> - };
> -
> - usb1: ohci@600000 {
> - status = "okay";
> - };
> -
> - usb2: ehci@700000 {
> - status = "okay";
> - };
> -
> - ebi: ebi@10000000 {
> - pinctrl-0 = <&pinctrl_ebi_nand_addr>;
> - pinctrl-names = "default";
> - status = "okay";
> -
> - nand_controller: nand-controller {
> - status = "okay";
> -
> - nand@3 {
> - reg = <0x3 0x0 0x2>;
> - atmel,rb = <0>;
> - nand-bus-width = <8>;
> - nand-ecc-mode = "hw";
> - nand-ecc-strength = <4>;
> - nand-ecc-step-size = <512>;
> - nand-on-flash-bbt;
> - label = "atmel_nand";
> -
> - partitions {
> - compatible = "fixed-partitions";
> - #address-cells = <1>;
> - #size-cells = <1>;
> -
> - bootstrap@0 {
> - label = "bootstrap";
> - reg = <0x0 0x20000>;
> - };
> -
> - ubi@20000 {
> - label = "ubi";
> - reg = <0x20000 0x7fe0000>;
> - };
> - };
> - };
> - };
> - };
> - };
> -
> - gpio_keys {
> - compatible = "gpio-keys";
> - #address-cells = <1>;
> - #size-cells = <0>;
> -
> - prog {
> - label = "PB_PROG";
> - gpios = <&pioE 27 GPIO_ACTIVE_LOW>;
> - linux,code = <0x102>;
> - wakeup-source;
> - };
> -
> - reset {
> - label = "PB_RST";
> - gpios = <&pioE 29 GPIO_ACTIVE_LOW>;
> - linux,code = <0x100>;
> - wakeup-source;
> - };
> -
> - user {
> - label = "PB_USER";
> - gpios = <&pioE 31 GPIO_ACTIVE_HIGH>;
> - linux,code = <0x101>;
> - wakeup-source;
> - };
> - };
> -
> - pwm_leds {
> - compatible = "pwm-leds";
> -
> - blue {
> - label = "pwm:blue:user";
> - pwms = <&pwm0 2 10000000 0>;
> - max-brightness = <255>;
> - linux,default-trigger = "default-on";
> - };
> -
> - green {
> - label = "pwm:green:user";
> - pwms = <&pwm0 1 10000000 0>;
> - max-brightness = <255>;
> - linux,default-trigger = "default-on";
> - };
> -
> - red {
> - label = "pwm:red:user";
> - pwms = <&pwm0 0 10000000 0>;
> - max-brightness = <255>;
> - linux,default-trigger = "default-on";
> - };
> - };
> -};
> --
> 2.23.0
>

--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com