[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <b6c10b70-1b5a-4f3c-b59f-c03ef8e93fe8@solid-run.com>
Date: Wed, 28 Jan 2026 15:18:24 +0000
From: Josua Mayer <josua@...id-run.com>
To: Frank Li <Frank.li@....com>
CC: Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Shawn Guo <shawnguo@...nel.org>, Sascha
Hauer <s.hauer@...gutronix.de>, Pengutronix Kernel Team
<kernel@...gutronix.de>, Fabio Estevam <festevam@...il.com>, Mikhail Anikin
<mikhail.anikin@...id-run.com>, Yazan Shhady <yazan.shhady@...id-run.com>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"imx@...ts.linux.dev" <imx@...ts.linux.dev>,
"linux-arm-kernel@...ts.infradead.org" <linux-arm-kernel@...ts.infradead.org>
Subject: Re: [PATCH v7 5/8] arm64: dts: add description for solidrun imx8mp
hummingboard-iiot
On 21/01/2026 22:39, Frank Li wrote:
> On Sun, Jan 18, 2026 at 02:51:42PM +0200, Josua Mayer wrote:
>> Add description for the SolidRun i.MX8MP HummingBoard IIoT.
>> The board is a new design around the i.MX8MP System on Module, not
>> sharing much with previous HummingBoards.
> suggested commit message
>
> add support for SolidRun i.MX8MP HummingBoard IIoT
>
> Introduce support for the SolidRun i.MX8MP HummingBoard IIoT platform.
> This board is a new design based on the i.MX8MP System on Module and
> does not share much hardware with previous HummingBoard variants.
>
>> It comes with some common features:
>> - 3x USB-3.0 Type A connector
>> - 2x 1Gbps RJ45 Ethernet
>> - USB Type-C Console Port
>> - microSD connector
>> - RTC with backup battery
>> - RGB Status LED
>> - 1x M.2 M-Key connector with PCI-E Gen. 3 x1
>> - 1x M.2 B-Key connector with USB-2.0/3.0 + SIM card holder
>> - 1x LVDS Display Connector
>> - 1x DSI Display Connector
>> - GPIO header
>> - 2x RS232/RS485 ports (configurable)
>> - 2x CAN
>>
>> In addition there is a board-to-board expansion connector to support
>> custom daughter boards with access to SPI, a range of GPIOs and -
>> notably - CAN and UART. Both 2x CAN and 2x UART can be muxed either
>> to this b2b connector, or a termianl block connector on the base board.
>>
>> The routing choice for UART and CAN is expressed through gpio
>> mux-controllers in DT and can be changed by applying dtb addons.
> s/addons/overlay
>
>> Signed-off-by: Josua Mayer <josua@...id-run.com>
>> ---
>> arch/arm64/boot/dts/freescale/Makefile | 2 +
>> .../dts/freescale/imx8mp-hummingboard-iiot.dts | 719 +++++++++++++++++++++
>> 2 files changed, 721 insertions(+)
>>
> ...
>> +
>> + uart3_rs_232_485_mux: mux-controller-4 {
>> + compatible = "gpio-mux";
>> + #mux-control-cells = <0>;
>> + /*
>> + * Mux switches uart3 tx/rx between rs232 and rs485
>> + * transceivers. using one GPIO: 0 = rs232; 1 = rs485.
>> + */
>> + mux-gpios = <&tca6416_u20 1 GPIO_ACTIVE_HIGH>;
>> + /* default rs232 */
>> + idle-state = <0>;
>> + };
>> +
>> + uart4_rs_232_485_mux: mux-controller-5 {
>> + compatible = "gpio-mux";
>> + #mux-control-cells = <0>;
>> + /*
>> + * Mux switches uart4 tx/rx between rs232 and rs485
>> + * transceivers. using one GPIO: 0 = rs232; 1 = rs485.
>> + */
>> + mux-gpios = <&tca6416_u20 2 GPIO_ACTIVE_HIGH>;
>> + /* default rs232 */
>> + idle-state = <0>;
>> + };
>> +
>> + gpio-keys {
> please order as node name. suggest use
> https://github.com/lznuaa/dt-format
> to reorder it.
Will do, I was not aware of this tool - and manual sorting can become
cumbersome with this many unordered nodes.
>
>> + compatible = "gpio-keys";
>> +
>> + wakeup-event {
>> + label = "m2-m-wakeup";
>> + interrupts-extended = <&tca6416_u21 11 IRQ_TYPE_EDGE_FALLING>;
>> + linux,code = <KEY_WAKEUP>;
>> + wakeup-source;
>> + };
>> + };
>> +};
>> +
> ...
>> +
>> +&i2c2 {
>> + i2c-mux@70 {
>> + compatible = "nxp,pca9546";
>> + reg = <0x70>;
>> + /*
>> + * This reset is open drain,
>> + * but reset core does not support GPIO_OPEN_DRAIN flag.
>> + */
>> + reset-gpios = <&tca6416_u21 2 GPIO_ACTIVE_LOW>;
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + /* channel 0 routed to expansion connector (J22) */
>> + i2c_exp: i2c@0 {
>> + reg = <0>;
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + };
>> +
>> + /* channel 1 routed to mipi-csi connector (J23) */
>> + i2c_csi: i2c@1 {
>> + reg = <1>;
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + };
>> +
>> + /* channel 2 routed to mipi-dsi connector (J25) */
>> + i2c_dsi: i2c@2 {
>> + reg = <2>;
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + tca6408_u48: gpio@21 {
>> + compatible = "ti,tca6408";
>> + reg = <0x21>;
>> + /*
>> + * reset shared between U37 and U48, to be
>> + * supported once gpio-pca953x switches to
>> + * reset framework.
>> + *
>> + * reset-gpios = <&tca6416_u21 4 (GPIO_ACTIVE_LOW|GPIO_PULL_UP|GPIO_OPEN_DRAIN)>;
> dose checkpatch report error? line width over 100
It does, but sometimes long lines can be allowed for readability?
Anyhow I will break it down.
Thanks!
Powered by blists - more mailing lists