On Wed, Jul 19, 2023 at 11:16 AM Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > > On 19/07/2023 18:00, James Hilliard wrote: > > This patch adds support for the Variscite VAR_SOM-MX6 SoM with : > > - i.MX6 Quad or Dual Lite SoC > > - 256 – 4096 MB DDR3 > > - 4-64 GB eMMC > > - 128 – 1024 MB SLC NAND > > - Camera Interface > > - HDMI+CEC interface > > - LVDS / DSI / Parallel RGB interfaces > > - Ethernet RGMII interface > > - On-SoM Wi-Fi/Bluetooth with WiLink wl183x SDIO Module > > - SD/MMC/SDIO interface > > - USB Host + USB OTG interface > > - I2C interfaces > > - SPI interfaces > > - PCI-Express 2.0 interface > > - on-SoM Audio Codec with HP/Line-In interfaces + DMIC interface > > - Digital Audio interface > > - S/PDIF interface > > > > Product website : https://www.variscite.com/product/system-on-module-som/cortex-a9/var-som-mx6-cpu-freescale-imx6/ > > > > Support is handled with a SoM-centric dtsi exporting the default interfaces > > along the default pinmuxing to be enabled by the board dts file. > > > > This file is based on the one 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> > > --- > > arch/arm/boot/dts/imx6qdl-var-som.dtsi | 547 +++++++++++++++++++++++++ > > 1 file changed, 547 insertions(+) > > create mode 100644 arch/arm/boot/dts/imx6qdl-var-som.dtsi > > > > diff --git a/arch/arm/boot/dts/imx6qdl-var-som.dtsi b/arch/arm/boot/dts/imx6qdl-var-som.dtsi > > new file mode 100644 > > index 000000000000..e93dae59624e > > --- /dev/null > > +++ b/arch/arm/boot/dts/imx6qdl-var-som.dtsi > > @@ -0,0 +1,547 @@ > > +// SPDX-License-Identifier: GPL-2.0+ > > +/* > > + * Support for Variscite VAR-SOM-MX6 Module > > + * > > + * Copyright 2011 Linaro Ltd. > > + * Copyright 2012 Freescale Semiconductor, Inc. > > + * Copyright (C) 2014-2016 Variscite, Ltd. > > + * Author: Donio Ron <ron.d@xxxxxxxxxxxxx> > > + * Copyright 2022 Bootlin > > + */ > > + > > +/dts-v1/; > > + > > +#include "imx6q.dtsi" > > +#include <dt-bindings/clock/imx6qdl-clock.h> > > +#include <dt-bindings/gpio/gpio.h> > > +#include <dt-bindings/sound/fsl-imx-audmux.h> > > + > > +/ { > > + model = "Variscite i.MX6 QUAD/DUAL VAR-SOM-MX6"; > > + compatible = "fsl,imx6q"; > > That's not correct compatible. It's not Imx6 soc. It's a som. I'm confused, AFAIU the VAR-SOM-MX6 uses an imx6q SoC. > > > +... > > + > > + sound: sound { > > + compatible = "simple-audio-card"; > > + simple-audio-card,name = "var-som-audio"; > > + simple-audio-card,format = "i2s"; > > + simple-audio-card,bitclock-master = <&sound_codec>; > > + simple-audio-card,frame-master = <&sound_codec>; > > + simple-audio-card,widgets = "Headphone", "Headphone Jack", > > + "Line", "Line In", "Microphone", "Mic Jack"; > > + simple-audio-card,routing = "Headphone Jack", "HPLOUT", > > + "Headphone Jack", "HPROUT", > > + "LINE1L", "Line In", > > + "LINE1R", "Line In"; > > + > > + sound_cpu: simple-audio-card,cpu { > > + sound-dai = <&ssi2>; > > + }; > > + > > + sound_codec: simple-audio-card,codec { > > + sound-dai = <&tlv320aic3106>; > > + clocks = <&clks IMX6QDL_CLK_CKO>; > > + }; > > + }; > > + > > + wlan_bt_rfkill { > > No underscores in node names. > > Just "rfkill" > > > > + compatible = "rfkill-gpio"; > > + name = "wlan_bt_rfkill"; > > + type = <2>; /* bluetooth */ > > + gpios = <&gpio6 18 GPIO_ACTIVE_HIGH>; > > + }; > > +}; > > + > > ... > > > + tlv320aic3106: codec@1b { > > + compatible = "ti,tlv320aic3106"; > > + reg = <0x1b>; > > + #sound-dai-cells = <0>; > > + DRVDD-supply = <®_3p3v>; > > + AVDD-supply = <®_3p3v>; > > + IOVDD-supply = <®_3p3v>; > > + DVDD-supply = <®_3p3v>; > > + ai3x-ocmv = <0>; > > + reset-gpios = <&gpio4 5 GPIO_ACTIVE_LOW>; > > + ai3x-gpio-func = < > > + 0 /* AIC3X_GPIO1_FUNC_DISABLED */ > > + 5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */ > > + >; > > + }; > > +}; > > + > > +&iomuxc { > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_hog>; > > + > > + imx6qdl-var-som-mx6 { > > + pinctrl_hog: hoggrp { > > + fsl,pins = < > > + /* CTW6120 IRQ */ > > + MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x80000000 > > + /* SDMMC2 CD/WP */ > > + MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x80000000 > > + MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x80000000 > > + >; > > + }; > > + > > + pinctrl_audmux: audmux { > > It does not look like you tested the DTS against bindings. Please run > `make dtbs_check` (see > Documentation/devicetree/bindings/writing-schema.rst or > https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/ > for instructions). > > AFAIR, all of them end with grp Ah, that's def throwing a bunch of warnings, although quite a few look to be existing issues in dependent dtsi files. I'll clean up what I can there. > > > ... > > > + > > +&usdhc3 { > > + pinctrl-names = "default", "state_100mhz", "state_200mhz"; > > + pinctrl-0 = <&pinctrl_usdhc3>; > > + pinctrl-1 = <&pinctrl_usdhc3_100mhz>; > > + pinctrl-2 = <&pinctrl_usdhc3_200mhz>; > > + bus-width = <4>; > > + vmmc-supply = <®_wl18xx_vmmc>; > > + non-removable; > > + wakeup-source; > > + keep-power-in-suspend; > > + cap-power-off-card; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + status = "okay"; > > + > > + wlcore: wlcore@0 { > > Generic node names. Is this wifi? I think it also supports bluetooth technically, although that might be under a different node. > > https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation > > > + compatible = "ti,wl1835"; > > + reg = <2>; > > > Best regards, > Krzysztof >