Re: [PATCH 4/4] arm64: dts: freescale: add Kontron sl28 support

Michael Walle
2019-12-09T08:54:10Z

Am 2019-12-09 07:43, schrieb Shawn Guo:
> On Sat, Nov 23, 2019 at 09:13:17PM +0100, Michael Walle wrote:
>> Add device tree files for the Kontron SMARC-sAL28 board and its
>> carriers.
>>
>> Signed-off-by: Michael Walle <michael@walle.cc>
>> ---
>> arch/arm64/boot/dts/freescale/Makefile | 4 +
>> .../fsl-ls1028a-kontron-kbox-a-230-ls.dts | 27 +++
>> .../fsl-ls1028a-kontron-sl28-var3-ads2.dts | 73 ++++++++
>> .../fsl-ls1028a-kontron-sl28-var4.dts | 34 ++++
>> .../freescale/fsl-ls1028a-kontron-sl28.dts | 158
>> ++++++++++++++++++
>> 5 files changed, 296 insertions(+)
>> create mode 100644
>> arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-kbox-a-230-ls.dts
>> create mode 100644
>> arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts
>> create mode 100644
>> arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var4.dts
>> create mode 100644
>> arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
>>
>> diff --git a/arch/arm64/boot/dts/freescale/Makefile
>> b/arch/arm64/boot/dts/freescale/Makefile
>> index 93fce8f0c66d..080c5a59d6bd 100644
>> --- a/arch/arm64/boot/dts/freescale/Makefile
>> +++ b/arch/arm64/boot/dts/freescale/Makefile
>> @@ -4,6 +4,10 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-frwy.dtb
>> dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-oxalis.dtb
>> dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-qds.dtb
>> dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-rdb.dtb
>> +dtb-$(CONFIG_ARCH_LAYERSCAPE) +=
>> fsl-ls1028a-kontron-kbox-a-230-ls.dtb
>> +dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28.dtb
>> +dtb-$(CONFIG_ARCH_LAYERSCAPE) +=
>> fsl-ls1028a-kontron-sl28-var3-ads2.dtb
>> +dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28-var4.dtb
>> dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds.dtb
>> dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-rdb.dtb
>> dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-qds.dtb
>> diff --git
>> a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-kbox-a-230-ls.dts
>> b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-kbox-a-230-ls.dts
>> new file mode 100644
>> index 000000000000..97e72c94b7fc
>> --- /dev/null
>> +++
>> b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-kbox-a-230-ls.dts
>> @@ -0,0 +1,27 @@
>> +// SPDX-License-Identifier: GPL-2.0+
>> +/*
>> + * Device Tree File for the Kontron KBox A-230-LS.
>> + *
>> + * This consists of a Kontron SMARC-sAL28 (Dual PHY) and a special
>> + * carrier (s1914).
>> + *
>> + * Copyright (C) 2019 Michael Walle <michael@walle.cc>
>> + *
>> + */
>> +
>> +/dts-v1/;
>> +#include "fsl-ls1028a-kontron-sl28-var4.dts"
>> +
>> +/ {
>> + model = "Kontron KBox A-230-LS";
>> + compatible = "kontron,kbox-a-230-ls", "kontron,sl28-var3",
>> + "kontron,sl28", "fsl,ls1028a";
>
> Any new compatible needs to be documented.

There is actually no ls1028a board documented ;) I'd add the rdb as well
as the qds to Documentation/devicetree/bindings/arm/fsl.yaml in the next
series. Or is that just for arm and not arm64?

>
>> +};
>> +
>> +&i2c4 {
>> + eeprom@50 {
>> + compatible = "atmel,24c32";
>> + reg = <0x50>;
>> + pagesize = <32>;
>> + };
>> +};
>> diff --git
>> a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts
>> b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts
>> new file mode 100644
>> index 000000000000..a4640e6b3928
>> --- /dev/null
>> +++
>> b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts
>> @@ -0,0 +1,73 @@
>> +// SPDX-License-Identifier: GPL-2.0+
>> +/*
>> + * Device Tree file for the Kontron SMARC-sAL28 board on a SMARC Eval
>> 2.0
>> + * carrier (ADS2).
>> + *
>> + * Copyright (C) 2019 Michael Walle <michael@walle.cc>
>> + *
>> + */
>> +
>> +/dts-v1/;
>> +#include "fsl-ls1028a-kontron-sl28.dts"
>> +
>> +/ {
>> + model = "Kontron SMARC-sAL28 (Single PHY) on SMARC Eval 2.0
>> carrier";
>> + compatible = "kontron,sl28-var3-ads2", "kontron,sl28",
>> "fsl,ls1028a";
>> +
>> + sound {
>> + compatible = "simple-audio-card";
>> + simple-audio-card,format = "i2s";
>> + simple-audio-card,widgets =
>> + "Headphone", "Headphone Jack",
>> + "Line", "Line Out Jack";
>> + simple-audio-card,routing =
>> + "Line Out Jack", "LINEOUTR",
>> + "Line Out Jack", "LINEOUTL",
>> + "Headphone Jack", "HPOUTR",
>> + "Headphone Jack", "HPOUTL";
>> + simple-audio-card,mclk-fs = <256>;
>> +
>> + simple-audio-card,cpu {
>> + sound-dai = <&sai6>;
>> + };
>> +
>> + simple-audio-card,codec {
>> + sound-dai = <&wm8904>;
>> + frame-master;
>> + bitclock-master;
>> + };
>> + };
>> +};
>> +
>> +&i2c4 {
>> + status = "okay";
>> +
>> + wm8904: wm8904@1a {
>
> audio-codec for node name.
ok

>
>> + #sound-dai-cells = <0>;
>> + compatible = "wlf,wm8904";
>> + reg = <0x1a>;
>> + clocks = <&wm8904_mclk>;
>> + clock-names = "mclk";
>> + assigned-clocks = <&wm8904_mclk>;
>> + assigned-clock-rates = <1250000>;
>> + };
>> +
>> + eeprom@50 {
>> + compatible = "atmel,24c32";
>> + reg = <0x50>;
>> + pagesize = <32>;
>> + };
>> +};
>> +
>> +&sai6 {
>> + status = "okay";
>> +};
>> +
>> +&soc {
>> + wm8904_mclk: wm8904-mclk@f130080 {
>> + compatible = "fsl,vf610-sai-clock";
>
> Unsupported/undocumented binding?

under review here:
https://lore.kernel.org/linux-devicetree/20191122235622.8818-1-michael@walle.cc/

>
>> + reg = <0x0 0xf130080 0x0 0x80>;
>> + clocks = <&clockgen 4 1>;
>> + #clock-cells = <0>;
>> + };
>> +};
>> diff --git
>> a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var4.dts
>> b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var4.dts
>> new file mode 100644
>> index 000000000000..5c8b13108e4d
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var4.dts
>> @@ -0,0 +1,34 @@
>> +// SPDX-License-Identifier: GPL-2.0+
>> +/*
>> + * Device Tree file for the Kontron SMARC-sAL28 board.
>> + *
>> + * This is for the network variant 4 which has two ethernet ports. It
>> + * extends the base and provides one more port connected via RGMII.
>> + *
>> + * Copyright (C) 2019 Michael Walle <michael@walle.cc>
>> + *
>> + */
>> +
>> +/dts-v1/;
>> +#include "fsl-ls1028a-kontron-sl28.dts"
>> +
>> +/ {
>> + model = "Kontron SMARC-sAL28 (Dual PHY)";
>> + compatible = "kontron,sl28-var4", "kontron,sl28", "fsl,ls1028a";
>> +};
>> +
>> +&enetc_port1 {
>> + phy-handle = <&phy1>;
>> + phy-connection-type = "rgmii-id";
>> +
>> + mdio {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + phy1: ethernet-phy@4 {
>> + reg = <0x4>;
>> + eee-broken-1000t;
>> + eee-broken-100tx;
>> + };
>> + };
>> +};
>> diff --git
>> a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
>> b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
>> new file mode 100644
>> index 000000000000..a18cb4395ad0
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
>> @@ -0,0 +1,158 @@
>> +// SPDX-License-Identifier: GPL-2.0+
>> +/*
>> + * Device Tree file for the Kontron SMARC-sAL28 board.
>> + *
>> + * Copyright (C) 2019 Michael Walle <michael@walle.cc>
>> + *
>> + */
>> +
>> +/dts-v1/;
>> +#include "fsl-ls1028a.dtsi"
>> +
>> +/ {
>> + model = "Kontron SMARC-sAL28";
>> + compatible = "kontron,sl28", "fsl,ls1028a";
>> +
>> + aliases {
>> + crypto = &crypto;
>> + serial0 = &duart0;
>> + serial1 = &duart1;
>> + };
>> +
>> + chosen {
>> + stdout-path = "serial0:115200n8";
>> + };
>> +};
>> +
>> +&duart0 {
>> + status = "okay";
>> +};
>> +
>> +&duart1 {
>> + status = "okay";
>> +};
>> +
>> +&enetc_port0 {
>> + phy-handle = <&phy0>;
>> + phy-connection-type = "sgmii";
>> +
>> + mdio {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + phy0: ethernet-phy@5 {
>> + reg = <0x5>;
>> + eee-broken-1000t;
>> + eee-broken-100tx;
>> + };
>> + };
>> +};
>> +
>> +&esdhc {
>> + sd-uhs-sdr104;
>> + sd-uhs-sdr50;
>> + sd-uhs-sdr25;
>> + sd-uhs-sdr12;
>> + status = "okay";
>> +};
>> +
>> +&esdhc1 {
>> + mmc-hs200-1_8v;
>> + mmc-hs400-1_8v;
>> + bus-width = <8>;
>> + status = "okay";
>> +};
>> +
>> +&fspi {
>> + status = "okay";
>> +
>> + w25q32jw@0 {
>
> Use a generic node name.
>
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + compatible = "w25q32jw", "jedec,spi-nor";
>
> Is "w25q32jw" documented somewhere?

seems like it should only be "jedec,spi-nor" anyway:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=10a6a6975691775bbcc677a04c6fd3120b5c1160

I'll send a v2 series. There were updates to the sound node in the
meantime.

>
> Shawn
>
>> + m25p,fast-read;
>> + spi-max-frequency = <133000000>;
>> + reg = <0>;
>> + /* The following setting enables 1-1-2 (CMD-ADDR-DATA) mode */
>> + spi-rx-bus-width = <2>; /* 2 SPI Rx lines */
>> + spi-tx-bus-width = <1>; /* 1 SPI Tx line */
>> +
>> + partition@0 {
>> + reg = <0x000000 0x010000>;
>> + label = "rcw";
>> + read-only;
>> + };
>> +
>> + partition@10000 {
>> + reg = <0x010000 0x0f0000>;
>> + label = "failsafe bootloader";
>> + read-only;
>> + };
>> +
>> + partition@100000 {
>> + reg = <0x100000 0x040000>;
>> + label = "failsafe DP firmware";
>> + read-only;
>> + };
>> +
>> + partition@140000 {
>> + reg = <0x140000 0x0a0000>;
>> + label = "failsafe trusted firmware";
>> + read-only;
>> + };
>> +
>> + partition@1e0000 {
>> + reg = <0x1e0000 0x020000>;
>> + label = "reserved";
>> + read-only;
>> + };
>> +
>> + partition@200000 {
>> + reg = <0x200000 0x010000>;
>> + label = "configuration store";
>> + };
>> +
>> + partition@210000 {
>> + reg = <0x210000 0x0f0000>;
>> + label = "bootloader";
>> + };
>> +
>> + partition@300000 {
>> + reg = <0x300000 0x040000>;
>> + label = "DP firmware";
>> + };
>> +
>> + partition@340000 {
>> + reg = <0x340000 0x0a0000>;
>> + label = "trusted firmware";
>> + };
>> +
>> + partition@3e0000 {
>> + reg = <0x3e0000 0x020000>;
>> + label = "bootloader environment";
>> + };
>> + };
>> +};
>> +
>> +&i2c0 {
>> + status = "okay";
>> +
>> + rtc@32 {
>> + compatible = "microcrystal,rv8803";
>> + reg = <0x32>;
>> + };
>> +
>> + eeprom@50 {
>> + compatible = "atmel,24c32";
>> + reg = <0x50>;
>> + pagesize = <32>;
>> + };
>> +};
>> +
>> +&i2c3 {
>> + status = "okay";
>> +};
>> +
>> +&i2c4 {
>> + status = "okay";
>> +};
>> --
>> 2.20.1
>>