lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <455f31565b449162e8b4ad55be310a3c4d2e06e1.camel@phytec.de>
Date: Thu, 25 Sep 2025 06:56:10 +0000
From: Yannic Moog <y.moog@...tec.de>
To: "Frank.li@....com" <Frank.li@....com>
CC: "upstream@...ts.phytec.de" <upstream@...ts.phytec.de>,
	"kernel@...gutronix.de" <kernel@...gutronix.de>, "s.hauer@...gutronix.de"
	<s.hauer@...gutronix.de>, "festevam@...il.com" <festevam@...il.com>,
	"robh@...nel.org" <robh@...nel.org>, "shawnguo@...nel.org"
	<shawnguo@...nel.org>, "krzk+dt@...nel.org" <krzk+dt@...nel.org>,
	"linux-arm-kernel@...ts.infradead.org"
	<linux-arm-kernel@...ts.infradead.org>, "linux-kernel@...r.kernel.org"
	<linux-kernel@...r.kernel.org>, "conor+dt@...nel.org" <conor+dt@...nel.org>,
	"imx@...ts.linux.dev" <imx@...ts.linux.dev>, "devicetree@...r.kernel.org"
	<devicetree@...r.kernel.org>
Subject: Re: [PATCH v2 2/3] arm64: dts: imx8mp pollux: add expansion board
 overlay

On Wed, 2025-09-24 at 10:36 -0400, Frank Li wrote:
> On Wed, Sep 24, 2025 at 01:59:05PM +0200, Yannic Moog wrote:
> > An expansion board (PEB-AV-10) may be connected to the
> > imx8mp-phyboard-pollux. Its main purpose is to provide multimedia
> > interfaces, featuring a 3.5mm headphone jack, a USB-A port and LVDS as
> > well as backlight connectors.
> > 
> > Signed-off-by: Yannic Moog <y.moog@...tec.de>
> > ---
> >  arch/arm64/boot/dts/freescale/Makefile             |   3 +
> >  .../imx8mp-phyboard-pollux-peb-av-10.dtsi          | 198 +++++++++++++++++++++
> >  .../imx8mp-phyboard-pollux-peb-av-10.dtso          |   9 +
> >  3 files changed, 210 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> > index 805ab9e5942bc9e2b9776e92412f56e969b6b39a..9c121041128972d2239e2cc74df98b0bf7de1ac2 100644
> > --- a/arch/arm64/boot/dts/freescale/Makefile
> > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > @@ -220,10 +220,13 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-nitrogen-smarc-universal-board.dtb
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
> >  imx8mp-phyboard-pollux-etml1010g3dra-dtbs += imx8mp-phyboard-pollux-rdk.dtb \
> >   imx8mp-phyboard-pollux-etml1010g3dra.dtbo
> > +imx8mp-phyboard-pollux-peb-av-10-dtbs += imx8mp-phyboard-pollux-rdk.dtb \
> > + imx8mp-phyboard-pollux-peb-av-10.dtbo
> >  imx8mp-phyboard-pollux-ph128800t006-dtbs += imx8mp-phyboard-pollux-rdk.dtb \
> >   imx8mp-phyboard-pollux-ph128800t006.dtbo
> >  imx8mp-phyboard-pollux-rdk-no-eth-dtbs += imx8mp-phyboard-pollux-rdk.dtb imx8mp-phycore-no-
> > eth.dtbo
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-etml1010g3dra.dtb
> > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-peb-av-10.dtb
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-ph128800t006.dtb
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk-no-eth.dtb
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-skov-basic.dtb
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-phyboard-pollux-peb-av-10.dtsi
> > b/arch/arm64/boot/dts/freescale/imx8mp-phyboard-pollux-peb-av-10.dtsi
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..4653af62b582ead04aed2cffde11ef0b142be343
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/freescale/imx8mp-phyboard-pollux-peb-av-10.dtsi
> > @@ -0,0 +1,198 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > +/*
> > + * Copyright (C) 2025 PHYTEC Messtechnik GmbH
> > + */
> > +
> > +#include <dt-bindings/clock/imx8mp-clock.h>
> > +#include <dt-bindings/gpio/gpio.h>
> > +#include "imx8mp-pinfunc.h"
> > +
> > +&{/} {
> > + backlight_lvds0: backlight0 {
> > + compatible = "pwm-backlight";
> > + pinctrl-0 = <&pinctrl_lvds0>;
> > + pinctrl-names = "default";
> > + power-supply = <&reg_vcc_12v>;
> > + status = "disabled";
> > + };
> > +
> > + panel_lvds0: panel-lvds0 {
> > + backlight = <&backlight_lvds0>;
> > + power-supply = <&reg_vcc_3v3_sw>;
> > + status = "disabled";
> > +
> > + port {
> > + panel0_in: endpoint {
> > + remote-endpoint = <&ldb_lvds_ch0>;
> > + };
> > + };
> > + };
> > +
> > + reg_vcc_12v: regulator-12v {
> > + compatible = "regulator-fixed";
> > + regulator-always-on;
> > + regulator-boot-on;
> > + regulator-max-microvolt = <12000000>;
> > + regulator-min-microvolt = <12000000>;
> > + regulator-name = "VCC_12V";
> > + };
> > +
> > + reg_vcc_1v8_audio: regulator-1v8 {
> > + compatible = "regulator-fixed";
> > + regulator-always-on;
> > + regulator-boot-on;
> > + regulator-max-microvolt = <1800000>;
> > + regulator-min-microvolt = <1800000>;
> > + regulator-name = "VCC_1V8_Audio";
> > + };
> > +
> > + reg_vcc_3v3_analog: regulator-3v3 {
> > + compatible = "regulator-fixed";
> > + regulator-always-on;
> > + regulator-boot-on;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-min-microvolt = <3300000>;
> > + regulator-name = "VCC_3V3_Analog";
> > + };
> > +
> > + sound {
> > + compatible = "simple-audio-card";
> > + simple-audio-card,name = "snd-peb-av-10";
> > + simple-audio-card,format = "i2s";
> > + simple-audio-card,bitclock-master = <&dailink_master>;
> > + simple-audio-card,frame-master = <&dailink_master>;
> > + simple-audio-card,mclk-fs = <32>;
> > + simple-audio-card,widgets =
> > + "Line", "Line In",
> > + "Speaker", "Speaker",
> > + "Microphone", "Microphone Jack",
> > + "Headphone", "Headphone Jack";
> > + simple-audio-card,routing =
> > + "Speaker", "SPOP",
> > + "Speaker", "SPOM",
> > + "Headphone Jack", "HPLOUT",
> > + "Headphone Jack", "HPROUT",
> > + "LINE1L", "Line In",
> > + "LINE1R", "Line In",
> > + "MIC3R", "Microphone Jack",
> > + "Microphone Jack", "Mic Bias";
> > +
> > + simple-audio-card,cpu {
> > + sound-dai = <&sai2>;
> > + };
> > +
> > + dailink_master: simple-audio-card,codec {
> > + sound-dai = <&codec>;
> > + clocks = <&clk IMX8MP_CLK_SAI2>;
> > + };
> > + };
> > +};
> > +
> > +&i2c4 {
> > + clock-frequency = <400000>;
> > + pinctrl-0 = <&pinctrl_i2c4>;
> > + pinctrl-1 = <&pinctrl_i2c4_gpio>;
> > + pinctrl-names = "default", "gpio";
> > + scl-gpios = <&gpio5 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> > + sda-gpios = <&gpio5 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + status = "okay";
> > +
> > + codec: codec@18 {
> > + compatible = "ti,tlv320aic3007";
> > + reg = <0x18>;
> > + pinctrl-0 = <&pinctrl_tlv320>;
> > + pinctrl-names = "default";
> > + #sound-dai-cells = <0>;
> > + reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
> > + ai3x-gpio-func = <0xd 0x0>;
> > + ai3x-micbias-vg = <2>;
> > + AVDD-supply = <&reg_vcc_3v3_analog>;
> > + DRVDD-supply = <&reg_vcc_3v3_analog>;
> > + DVDD-supply = <&reg_vcc_1v8_audio>;
> > + IOVDD-supply = <&reg_vcc_3v3_sw>;
> > + };
> > +
> > + eeprom@57 {
> > + compatible = "atmel,24c32";
> > + reg = <0x57>;
> > + pagesize = <32>;
> > + vcc-supply = <&reg_vcc_3v3_sw>;
> > + };
> > +};
> > +
> > +&ldb_lvds_ch0 {
> > + remote-endpoint = <&panel0_in>;
> > +};
> > +
> > +&pwm4 {
> > + pinctrl-0 = <&pinctrl_pwm4>;
> > + pinctrl-names = "default";
> > +};
> > +
> > +&sai2 {
> > + pinctrl-0 = <&pinctrl_sai2>;
> > + pinctrl-names = "default";
> > + assigned-clocks = <&clk IMX8MP_CLK_SAI2>;
> > + assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
> > + assigned-clock-rates = <12288000>;
> > + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_IPG>,
> > + <&clk IMX8MP_CLK_DUMMY>,
> > + <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_MCLK1>,
> > + <&clk IMX8MP_CLK_DUMMY>,
> > + <&clk IMX8MP_CLK_DUMMY>,
> > + <&clk IMX8MP_AUDIO_PLL1_OUT>,
> > + <&clk IMX8MP_AUDIO_PLL2_OUT>;
> > + clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k",
> > +       "pll11k";
> > + #sound-dai-cells = <0>;
> > + fsl,sai-mclk-direction-output;
> > + fsl,sai-synchronous-rx;
> > + status = "okay";
> > +};
> > +
> > +&iomuxc {
> > + pinctrl_i2c4: i2c4grp {
> > + fsl,pins = <
> > + MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL 0x400001c2
> > + MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA 0x400001c2
> > + >;
> > + };
> > +
> > + pinctrl_i2c4_gpio: i2c4gpiogrp {
> > + fsl,pins = <
> > + MX8MP_IOMUXC_I2C4_SCL__GPIO5_IO20 0x1e2
> > + MX8MP_IOMUXC_I2C4_SDA__GPIO5_IO21 0x1e2
> > + >;
> > + };
> > +
> > + pinctrl_lvds0: lvds0grp {
> > + fsl,pins = <
> > + MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01 0x12
> > + >;
> > + };
> > +
> > + pinctrl_pwm4: pwm4grp {
> > + fsl,pins = <
> > + MX8MP_IOMUXC_SAI3_MCLK__PWM4_OUT 0x12
> > + >;
> > + };
> > +
> > + pinctrl_sai2: sai2grp {
> > + fsl,pins = <
> > + MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI2_MCLK 0xd6
> > + MX8MP_IOMUXC_SAI2_RXFS__AUDIOMIX_SAI2_RX_SYNC 0xd6
> > + MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK 0xd6
> > + MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00 0xd6
> > + MX8MP_IOMUXC_SAI2_RXD0__AUDIOMIX_SAI2_RX_DATA00 0xd6
> > + >;
> > + };
> > +
> > + pinctrl_tlv320: tlv320grp {
> > + fsl,pins = <
> > + MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28 0x16
> > + MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22 0x16
> > + >;
> > + };
> > +};
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-phyboard-pollux-peb-av-10.dtso
> > b/arch/arm64/boot/dts/freescale/imx8mp-phyboard-pollux-peb-av-10.dtso
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..52020c9361cc8fc84823fcae93aa3651332b91d2
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/freescale/imx8mp-phyboard-pollux-peb-av-10.dtso
> > @@ -0,0 +1,9 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > +/*
> > + * Copyright (C) 2025 PHYTEC Messtechnik GmbH
> > + */
> > +
> > +/dts-v1/;
> > +/plugin/;
> > +
> > +#include "imx8mp-phyboard-pollux-peb-av-10.dtsi"
> 
> Your dtso only include one dtsi file, why not direct use
> imx8mp-phyboard-pollux-peb-av-10.dtsi as dtso.

The peb-av-10 may have different displays connected. These will be overlays and thus include this
dtsi file to form a single, "complete" dtbo.
However, the PEB-AV-10 expansion board may also be used without a display, e.g. to provide access
to an audio connector.

Yannic
> 
> 
> Frank
> > 
> > --
> > 2.51.0
> > 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ