Re: [PATCH v7 2/2] ARM: dts: TS-4600: add basic device tree

From: Shawn Guo
Date: Thu Nov 16 2017 - 03:01:00 EST


On Wed, Nov 01, 2017 at 01:06:45PM -0400, Sebastien Bourdelin wrote:
> These device trees add support for the TS-4600 by Technologic Systems.
>
> More details here:
> http://wiki.embeddedarm.com/wiki/TS-4600
>
> Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@xxxxxxxxxxxxxxxxxxxx>
> ---
> Changes v6 -> v7:
> - rebase on master
> - remove unneeded pinctrl-name (suggested by Shawn Guo)
> - add reg to the node en-sd-pwr (suggested by Shawn Guo)
> - use define for gpio polarity (suggested by Shawn Guo)
> - remove the fake bus container for regulator (suggested by Shawn Guo)
>
> Changes v5 -> v6:
> - rebase on master
> - split the previous patch series into series by subsystem
>
> Changes v4 -> v5:
> - fix missing signed off
>
> Changes v3 -> v4:
> - rebase on master
>
> Changes v2 -> v3:
> - rebase on master
>
> Changes v1 -> v2:
> - rebase on master
> ---
> arch/arm/boot/dts/Makefile | 2 +
> arch/arm/boot/dts/imx28-ts4600-common.dtsi | 74 ++++++++++++++++++++++++++++++
> arch/arm/boot/dts/imx28-ts4600-rev-a.dts | 22 +++++++++
> arch/arm/boot/dts/imx28-ts4600-rev-b.dts | 22 +++++++++
> 4 files changed, 120 insertions(+)
> create mode 100644 arch/arm/boot/dts/imx28-ts4600-common.dtsi
> create mode 100644 arch/arm/boot/dts/imx28-ts4600-rev-a.dts
> create mode 100644 arch/arm/boot/dts/imx28-ts4600-rev-b.dts
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index faf46abaa4a2..430fe7f1e644 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -532,6 +532,8 @@ dtb-$(CONFIG_ARCH_MXS) += \
> imx28-m28cu3.dtb \
> imx28-m28evk.dtb \
> imx28-sps1.dtb \
> + imx28-ts4600-rev-a.dtb \
> + imx28-ts4600-rev-b.dtb \
> imx28-tx28.dtb
> dtb-$(CONFIG_ARCH_NOMADIK) += \
> ste-nomadik-s8815.dtb \
> diff --git a/arch/arm/boot/dts/imx28-ts4600-common.dtsi b/arch/arm/boot/dts/imx28-ts4600-common.dtsi
> new file mode 100644
> index 000000000000..c5f6bef87fd5
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx28-ts4600-common.dtsi
> @@ -0,0 +1,74 @@
> +/*
> + * Copyright (C) 2016 Savoir-Faire Linux
> + * Author: Sebastien Bourdelin <sebastien.bourdelin@xxxxxxxxxxxxxxxxxxxx>
> + *
> + * The code contained herein is licensed under the GNU General Public
> + * License. You may obtain a copy of the GNU General Public License
> + * Version 2 or later at the following locations:
> + *
> + * http://www.opensource.org/licenses/gpl-license.html
> + * http://www.gnu.org/copyleft/gpl.html
> + */
> +
> +/dts-v1/;
> +#include "imx28.dtsi"
> +#include "dt-bindings/gpio/gpio.h"
> +
> +/ {
> +
> + compatible = "technologic,imx28-ts4600", "fsl,imx28";
> +
> + apb@80000000 {
> + apbh@80000000 {
> + ssp0: ssp@80010000 {
> + compatible = "fsl,imx28-mmc";
> + pinctrl-names = "default";
> + pinctrl-0 = <&mmc0_4bit_pins_a
> + &mmc0_sck_cfg
> + &en_sd_pwr>;
> + broken-cd = <1>;
> + bus-width = <4>;
> + vmmc-supply = <&reg_vddio_sd0>;
> + status = "okay";
> + };
> +
> + pinctrl@80018000 {
> +
> + en_sd_pwr: en-sd-pwr@0 {
> + reg = <0>;
> + fsl,pinmux-ids = <
> + MX28_PAD_PWM3__GPIO_3_28
> + >;
> + fsl,drive-strength = <MXS_DRIVE_4mA>;
> + fsl,voltage = <MXS_VOLTAGE_HIGH>;
> + fsl,pull-up = <MXS_PULL_DISABLE>;
> + };
> +
> + };
> + };
> +
> + apbx@80040000 {
> + pwm: pwm@80064000 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pwm2_pins_a>;
> + status = "okay";
> + };
> +
> + duart: serial@80074000 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&duart_pins_a>;
> + status = "okay";
> + };
> + };
> + };
> +
> + reg_vddio_sd0: regulator-vddio-sd0 {
> + compatible = "regulator-fixed";
> + regulator-name = "vddio-sd0";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-boot-on;
> + gpio = <&gpio3 28 GPIO_ACTIVE_HIGH>;
> + };
> +
> +};
> diff --git a/arch/arm/boot/dts/imx28-ts4600-rev-a.dts b/arch/arm/boot/dts/imx28-ts4600-rev-a.dts
> new file mode 100644
> index 000000000000..e8cb72988fcf
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx28-ts4600-rev-a.dts
> @@ -0,0 +1,22 @@
> +/*
> + * Copyright (C) 2016 Savoir-Faire Linux
> + * Author: Sebastien Bourdelin <sebastien.bourdelin@xxxxxxxxxxxxxxxxxxxx>
> + *
> + * The code contained herein is licensed under the GNU General Public
> + * License. You may obtain a copy of the GNU General Public License
> + * Version 2 or later at the following locations:
> + *
> + * http://www.opensource.org/licenses/gpl-license.html
> + * http://www.gnu.org/copyleft/gpl.html
> + */
> +
> +#include "imx28-ts4600-common.dtsi"
> +
> +/ {
> + model = "Technologic Systems i.MX28 TS-4600 Rev A";
> +
> + memory {
> + reg = <0x40000000 0x08000000>; /* 128MB */

If memory size is the only difference between Rev A and B, can we have
device tree default to most used revision and ask bootloader to fix up
memory node for the other revision? In that case, we only need to
maintain imx28-ts4600.dts then.

Shawn

> + };
> +
> +};
> diff --git a/arch/arm/boot/dts/imx28-ts4600-rev-b.dts b/arch/arm/boot/dts/imx28-ts4600-rev-b.dts
> new file mode 100644
> index 000000000000..a115f831fe2b
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx28-ts4600-rev-b.dts
> @@ -0,0 +1,22 @@
> +/*
> + * Copyright (C) 2016 Savoir-Faire Linux
> + * Author: Sebastien Bourdelin <sebastien.bourdelin@xxxxxxxxxxxxxxxxxxxx>
> + *
> + * The code contained herein is licensed under the GNU General Public
> + * License. You may obtain a copy of the GNU General Public License
> + * Version 2 or later at the following locations:
> + *
> + * http://www.opensource.org/licenses/gpl-license.html
> + * http://www.gnu.org/copyleft/gpl.html
> + */
> +
> +#include "imx28-ts4600-common.dtsi"
> +
> +/ {
> + model = "Technologic Systems i.MX28 TS-4600 Rev B";
> +
> + memory {
> + reg = <0x40000000 0x10000000>; /* 256MB */
> + };
> +
> +};
> --
> 2.13.4
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel