[PATCH v1 2/2] arm64: dts: imx8mp: add aristainetos3 board support

Heiko Schocher hs at denx.de
Mon Oct 28 04:21:01 PDT 2024


Hello Krzysztof,

On 28.10.24 11:49, Krzysztof Kozlowski wrote:
> On 28/10/2024 11:41, Heiko Schocher wrote:
>> Hello Krzysztof,
>>
>> On 28.10.24 11:24, Krzysztof Kozlowski wrote:
>>> On 28/10/2024 09:23, Heiko Schocher wrote:
>>>> Add support for the i.MX8MP based aristainetos3 boards from ABB.
>>>>
>>>> The board uses a ABB specific SoM from ADLink, based on NXP
>>>> i.MX8MP SoC. The SoM is used on 3 different carrier boards,
>>>> with small differences, which are all catched up in
>>>> devicetree overlays. The kernel image, the basic dtb
>>>> and all dtbos are collected in a fitimage. As bootloader
>>>> is used U-Boot which detects in his SPL stage the carrier
>>>> board by probing some i2c devices. When the correct
>>>> carrier is probed, the SPL applies all needed dtbos to
>>>> the dtb with which U-Boot gets loaded. Same principle
>>>> later before linux image boot, U-Boot applies the dtbos
>>>> needed for the carrier board before booting Linux.
>>>>
>>>> Signed-off-by: Heiko Schocher <hs at denx.de>
>>>> ---
>>>> checkpatch dropped the following warnings:
>>>> arch/arm64/boot/dts/freescale/imx8mp-aristainetos3a-som-v1.dtsi:248: warning: DT compatible string "ethernet-phy-id2000.a231" appears un-documented -- check ./Documentation/devicetree/bindings/
>>>>
>>>> ignored, as this compatible string is usedin other dts too, for example in
>>>>
>>>> arch/arm64/boot/dts/ti/k3-am62-verdin.dtsi
>>>>
>>>>    arch/arm64/boot/dts/freescale/Makefile        |    5 +
>>>>    .../imx8mp-aristainetos3-adpismarc.dtsi       |   64 +
>>>>    .../imx8mp-aristainetos3-adpismarc.dtso       |   14 +
>>>>    .../imx8mp-aristainetos3-helios-lvds.dtsi     |   89 ++
>>>>    .../imx8mp-aristainetos3-helios-lvds.dtso     |   13 +
>>>>    .../imx8mp-aristainetos3-helios.dtsi          |  103 ++
>>>>    .../imx8mp-aristainetos3-helios.dtso          |   13 +
>>>>    .../imx8mp-aristainetos3-proton2s.dtsi        |  176 +++
>>>>    .../imx8mp-aristainetos3-proton2s.dtso        |   13 +
>>>>    .../imx8mp-aristainetos3a-som-v1.dts          |   18 +
>>>>    .../imx8mp-aristainetos3a-som-v1.dtsi         | 1210 +++++++++++++++++
>>>>    11 files changed, 1718 insertions(+)
>>>>    create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aristainetos3-adpismarc.dtsi
>>>>    create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aristainetos3-adpismarc.dtso
>>>>    create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aristainetos3-helios-lvds.dtsi
>>>>    create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aristainetos3-helios-lvds.dtso
>>>>    create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aristainetos3-helios.dtsi
>>>>    create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aristainetos3-helios.dtso
>>>>    create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aristainetos3-proton2s.dtsi
>>>>    create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aristainetos3-proton2s.dtso
>>>>    create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aristainetos3a-som-v1.dts
>>>>    create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aristainetos3a-som-v1.dtsi
>>>>
>>>> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
>>>> index 9d3df8b218a2..7c3586509b8b 100644
>>>> --- a/arch/arm64/boot/dts/freescale/Makefile
>>>> +++ b/arch/arm64/boot/dts/freescale/Makefile
>>>> @@ -163,6 +163,11 @@ imx8mn-tqma8mqnl-mba8mx-usbotg-dtbs += imx8mn-tqma8mqnl-mba8mx.dtb imx8mn-tqma8m
>>>>    dtb-$(CONFIG_ARCH_MXC) += imx8mn-tqma8mqnl-mba8mx-lvds-tm070jvhg33.dtb
>>>>    dtb-$(CONFIG_ARCH_MXC) += imx8mn-tqma8mqnl-mba8mx-usbotg.dtb
>>>>    
>>>> +dtb-$(CONFIG_ARCH_MXC) += imx8mp-aristainetos3a-som-v1.dtb \
>>>> +			  imx8mp-aristainetos3-adpismarc.dtbo \
>>>> +			  imx8mp-aristainetos3-proton2s.dtbo \
>>>> +			  imx8mp-aristainetos3-helios.dtbo \
>>>> +			  imx8mp-aristainetos3-helios-lvds.dtbo
>>>>    dtb-$(CONFIG_ARCH_MXC) += imx8mp-beacon-kit.dtb
>>>>    dtb-$(CONFIG_ARCH_MXC) += imx8mp-data-modul-edm-sbc.dtb
>>>>    dtb-$(CONFIG_ARCH_MXC) += imx8mp-debix-model-a.dtb
>>>> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-aristainetos3-adpismarc.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-aristainetos3-adpismarc.dtsi
>>>> new file mode 100644
>>>> index 000000000000..cc0cddaa33ea
>>>> --- /dev/null
>>>> +++ b/arch/arm64/boot/dts/freescale/imx8mp-aristainetos3-adpismarc.dtsi
>>>> @@ -0,0 +1,64 @@
>>>> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>>>> +/*
>>>> + * Copyright (C) 2024 Heiko Schocher <hs at denx.de>
>>>> + */
>>>> +
>>>> +#include <dt-bindings/gpio/gpio.h>
>>>> +#include <dt-bindings/interrupt-controller/irq.h>
>>>> +
>>>> +&ecspi1 {
>>>> +	spidev0: spi at 0 {
>>>> +		reg = <0>;
>>>> +		compatible = "rohm,dh2228fv";
>>>
>>> Hm? I have some doubts, what device is here?
>>
>> $ grep -lr dh2228fv drivers/
>> drivers/spi/spidev.c
>>
>> Customer uses an userspace implementation...
> 
> That's not the question. I asked what device is here.

I do not know, as on carrier boards there are only connectors,
to which a spi device can be attached. So may I need to use here
a more generic entry?

>>
>>>
>>>> +		spi-max-frequency = <500000>;
>>>> +	};
>>>> +};
>>>> +
>>>> +&ecspi2 {
>>>> +	spidev1: spi at 0 {
>>>> +		reg = <0>;
>>>> +		compatible = "rohm,dh2228fv";
>>>> +		spi-max-frequency = <500000>;
>>>> +	};
>>>> +};
>>>> +
>>>> +&i2c2 {
>>>> +	/* SX1509(2) U1001 at IPi SMARC Plus */
>>>> +	gpio8: i2c2_gpioext0 at 3e {
>>>
>>> Uh, no, please never send us downstream code.
>>>
>>> Please follow DTS coding style in all upstream submissions.
>>
>> driver is in here:
>>
>> $ grep -lr probe-reset drivers/pinctrl/
>> drivers/pinctrl/pinctrl-sx150x.c
> 
> This so not related... Your driver does not matter. You send us poor
> quality downstream code.

The driver is upstream... see:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pinctrl/pinctrl-sx150x.c

or may I misunderstood you here too?

Poor is my dts, checks are running and I fix them.

> ...
> 
>>
>>> And why this is DTSO, I have no clue...
> 
> Why is this a DTSO, not a DTS?

Hmm... the idea is, that the bootloader applies the dtbo on runtime,
when it has detected the carrier board it runs on, I tried to explain
in cover letter.

And again... sorry...

bye,
Heiko
-- 
DENX Software Engineering GmbH,      Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de



More information about the linux-arm-kernel mailing list