On Thu, Jul 20, 2023 at 5:39 AM Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > > On 20/07/2023 12:49, James Hilliard wrote: > > On Thu, Jul 20, 2023 at 12:15 AM Krzysztof Kozlowski > > <krzysztof.kozlowski@xxxxxxxxxx> wrote: > >> > >> On 20/07/2023 00:41, James Hilliard wrote: > >>> This patch adds support for the Variscite MX6 SoM Carrier Board. > >>> > >>> This Carrier-Board has the following : > >>> - LVDS interface for the VLCD-CAP-GLD-LVDS 7" LCD 800 x 480 touch display > >>> - HDMI Connector > >>> - USB Host + USB OTG Connector > >>> - 10/100/1000 Mbps Ethernet > >>> - miniPCI-Express slot > >>> - SD Card connector > >>> - Audio Headphone/Line In jack connectors > >>> - S-ATA > >>> - On-board DMIC > >>> - RS485 Header > >>> - CAN bus header > >>> - SPI header > >>> - Camera Interfaces header > >>> - OnBoard RTC with Coin Backup battery socket > >>> - RS232 Debug Header (IDC10) > >>> - RS232 DTE > >>> > >>> Product Page : https://www.variscite.com/product/single-board-computers/var-mx6customboard > >>> > >>> The dts file based on the ones provided by Variscite on their own > >>> kernel, but adapted for mainline. > >>> > >>> Signed-off-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxx> > >>> Signed-off-by: James Hilliard <james.hilliard1@xxxxxxxxx> > >>> --- > >>> .../devicetree/bindings/arm/fsl.yaml | 1 + > >> > >> Please run scripts/checkpatch.pl and fix reported warnings. Some > >> warnings can be ignored, but the code here looks like it needs a fix. > >> Feel free to get in touch if the warning is not clear. > >> > >>> arch/arm/boot/dts/Makefile | 1 + > >>> .../arm/boot/dts/imx6q-var-mx6customboard.dts | 279 ++++++++++++++++++ > >>> 3 files changed, 281 insertions(+) > >>> create mode 100644 arch/arm/boot/dts/imx6q-var-mx6customboard.dts > >>> > >>> diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml > >>> index 15d411084065..0f583852de8a 100644 > >>> --- a/Documentation/devicetree/bindings/arm/fsl.yaml > >>> +++ b/Documentation/devicetree/bindings/arm/fsl.yaml > >>> @@ -298,6 +298,7 @@ properties: > >>> - udoo,imx6q-udoo # Udoo i.MX6 Quad Board > >>> - uniwest,imx6q-evi # Uniwest Evi > >>> - variscite,dt6customboard > >>> + - variscite,mx6customboard > >>> - wand,imx6q-wandboard # Wandboard i.MX6 Quad Board > >>> - ysoft,imx6q-yapp4-crux # i.MX6 Quad Y Soft IOTA Crux board > >>> - ysoft,imx6q-yapp4-pegasus # i.MX6 Quad Y Soft IOTA Pegasus board > >>> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > >>> index 59829fc90315..9cfc3d3e91ea 100644 > >>> --- a/arch/arm/boot/dts/Makefile > >>> +++ b/arch/arm/boot/dts/Makefile > >>> @@ -665,6 +665,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ > >>> imx6q-udoo.dtb \ > >>> imx6q-utilite-pro.dtb \ > >>> imx6q-var-dt6customboard.dtb \ > >>> + imx6q-var-mx6customboard.dtb \ > >>> imx6q-vicut1.dtb \ > >>> imx6q-wandboard.dtb \ > >>> imx6q-wandboard-revb1.dtb \ > >>> diff --git a/arch/arm/boot/dts/imx6q-var-mx6customboard.dts b/arch/arm/boot/dts/imx6q-var-mx6customboard.dts > >>> new file mode 100644 > >>> index 000000000000..66047dff11ec > >>> --- /dev/null > >>> +++ b/arch/arm/boot/dts/imx6q-var-mx6customboard.dts > >>> @@ -0,0 +1,279 @@ > >>> +// SPDX-License-Identifier: GPL-2.0+ > >>> +/* > >>> + * Support for Variscite MX6 Carrier-board > >>> + * > >>> + * Copyright 2016 Variscite, Ltd. All Rights Reserved > >>> + * Copyright 2022 Bootlin > >>> + */ > >>> + > >>> +/dts-v1/; > >>> + > >>> +#include "imx6qdl-var-som.dtsi" > >>> +#include <dt-bindings/pwm/pwm.h> > >>> + > >>> +/ { > >>> + model = "Variscite i.MX6 QUAD/DUAL VAR-SOM-MX6 Custom Board"; > >>> + compatible = "variscite,mx6customboard", "fsl,imx6q"; > >> > >> Where is the SoM compatible? > > > > I mostly just copied this from the DART-MX6 device tree which is > > another variscite > > imx6q based modular SoM custom board combination: > > https://github.com/torvalds/linux/blob/v6.5-rc2/arch/arm/boot/dts/nxp/imx/imx6q-var-dt6customboard.dts#L17 > > > > The terminology is a bit confusing in general here, variscite has 2 > > families of pin2pin > > modules, the "VAR-SOM" and the "DART" family. > > https://www.variscite.com/variscite-pin2pin-system-on-module-families/ > > I know, I am familiar with them. > > > > > > Within each connector family there are then multiple SoM boards that > > can be used with the same carrier boards(ie the Custom Board carrier board > > like the evaluation kit) although they are often bundled together with specific > > boards in practice. > > No, they are being shipped to the customers which then use them in their > products. Having common compatible can be useful, although it depends > what's in the common part. For example for IMX8 it was quite a lot, thus > it made sense. > > > > > So the existing DART-MX6 I think uses the same SoC but is in a different > > family and as such has a different carrier board. However as the relation > > between the SoM and the carrier board is effectively the same, I just copied > > the way compatibile is being set there for the VAR-SOM-MX6 from the > > existing DART-MX6 custom board device tree. > > > > I think this roughly represents the SoM board device tree associations as I'm > > understanding them: > > > > pin2pin Family: DART > > SoM: https://www.variscite.com/product/system-on-module-som/cortex-a9/dart-mx6-cpu-freescale-imx6/ > > SoM part: DART-MX6 > > SoM device tree: imx6qdl-var-dart.dtsi > > SoM SoC: imx6q > > Board: https://www.variscite.com/product/single-board-computers/dt6customboard/ > > Board device tree: imx6q-var-dt6customboard.dts > > Board compatible: compatible = "variscite,dt6customboard", "fsl,imx6q"; > > > > pin2pin Family: VAR-SOM > > SoM: https://www.variscite.com/product/system-on-module-som/cortex-a9/var-som-mx6-cpu-freescale-imx6/ > > SoM part: VAR-SOM-MX6 > > SoM device tree: imx6qdl-var-som.dtsi > > SoM SoC: imx6q > > Board: mx6customboard > > https://www.variscite.com/product/single-board-computers/var-mx6customboard/ > > Board device tree: imx6q-var-mx6customboard.dts > > Board compatible: compatible = "variscite,mx6customboard", "fsl,imx6q"; > > > > What's confusing here is that the DART-MX6 is also described as a SoM: > > "DART-MX6 from Variscite is the smallest System on Module (SoM) / Computer > > on Module (CoM) supporting NXP/Freescale’s i.MX6 Quad and Dual-core > > Cortex-A9™ processor" > > It is not confusing. It is a SoM. > > > > > So we have a "DART-MX6" SoM part which corresponds to the "VAR-SOM-MX6" > > SoM part, with both being SoM's but only one("VAR-SOM-MX6") having SoM in > > the actual part name. > > Vendor naming is one thing, but true meaning is second. These are > System-on-Modules. > > > > > Does the compatible section for imx6qdl-var-dart.dtsi look correct? > > > > I'm not sure what exactly a "SoM compatible" should look like here as SoM is > > both a generic term(used to describe by both the "DART-MX6" and > > "VAR-SOM-MX6" parts) as well as term used within a part(used in the > > part for "VAR-SOM-MX6" as well as other SoM's in the "VAR-SOM" family > > but not the "DART-MX6" part or other SoM's in the "DART" family). > > Take a look at IMX8 Variscite SoMs. Oh, I see what you mean now, so it looks like this is missing for the dart-mx6 device tree. imx8mm-var-som.dtsi: compatible = "variscite,var-som-mx8mm", "fsl,imx8mm"; imx8mm-var-som-symphony.dts: compatible = "variscite,var-som-mx8mm-symphony", "variscite,var-som-mx8mm", "fsl,imx8mm"; imx6q-var-dt6customboard.dts: compatible = "variscite,dt6customboard", "fsl,imx6q"; So the DART-MX6 is missing a compatible along the lines of "variscite,dart-imx6q" for the dart SoM I guess? And for VAR-SOM-MX6 I guess I should use something like "variscite,var-som-imx6q" for the SoM right? > > Best regards, > Krzysztof >