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