[PATCH 4/5] arm64: dts: freescale: imx952-evk: Add IMX-AUD-IO board support
Bough Chen
haibo.chen at nxp.com
Mon May 11 01:20:38 PDT 2026
> -----Original Message-----
> From: Chancel Liu <chancel.liu at nxp.com>
> Sent: 2026年5月9日 10:49
> To: robh at kernel.org; krzk+dt at kernel.org; conor+dt at kernel.org; Frank Li
> <frank.li at nxp.com>; s.hauer at pengutronix.de; festevam at gmail.com;
> mturquette at baylibre.com; sboyd at kernel.org
> Cc: kernel at pengutronix.de; devicetree at vger.kernel.org;
> linux-kernel at vger.kernel.org; imx at lists.linux.dev;
> linux-arm-kernel at lists.infradead.org; linux-clk at vger.kernel.org
> Subject: [PATCH 4/5] arm64: dts: freescale: imx952-evk: Add IMX-AUD-IO board
> support
>
> IMX-AUD-IO is a daughter board which can be connected to i.MX952 EVK
> through a physical connector. This connector is described as a fsl,io-connector
> connector to expose a constrained subset of GPIO and clock resources to
> daughter board using fixed electrical wiring.
>
> Also add required regulator, sound CPU DAI and I2C bus configuration to support
> IMX-AUD-IO on this base board.
>
> Signed-off-by: Chancel Liu <chancel.liu at nxp.com>
> ---
> arch/arm64/boot/dts/freescale/imx952-evk.dts | 68 +++++++++++++++++++-
> 1 file changed, 66 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx952-evk.dts
> b/arch/arm64/boot/dts/freescale/imx952-evk.dts
> index 62d1c1c7c501..bb1d8d5f5fcf 100644
> --- a/arch/arm64/boot/dts/freescale/imx952-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx952-evk.dts
> @@ -43,6 +43,17 @@ aliases {
> spi6 = &lpspi7;
> };
>
> + aud_io_conn: aud-io-connector {
> + compatible = "fsl,io-connector";
> + gpio-controller;
> + #gpio-cells = <2>;
> + gpio-map = <0 0 &pcal6416 8 1>;
> + gpio-map-mask = <0xff 0x0>;
> + gpio-map-pass-thru = <0x0 0x1>;
According to the include/dt-bindings/gpio/gpio.h, there 6 bits definition for GPIO flags, here you just pass through bit 0, should it better to use the following value:
gpio-map-pass-thru = <0x0 0x3f>;
Regards
Haibo Chen
> + #clock-cells = <1>;
> + clock-map = <0 &scmi_clk IMX952_CLK_SAI2>;
> + };
> +
> bt_sco_codec: audio-codec-bt-sco {
> #sound-dai-cells = <1>;
> compatible = "linux,bt-sco";
> @@ -114,13 +125,29 @@ reg_1p8v: regulator-1p8v {
> regulator-name = "+V1.8_SW";
> };
>
> - reg_vref_1v8: regulator-adc-vref {
> + aud_io_reg_1v8: reg_vref_1v8: regulator-adc-vref {
> compatible = "regulator-fixed";
> regulator-name = "vref_1v8";
> regulator-min-microvolt = <1800000>;
> regulator-max-microvolt = <1800000>;
> };
>
> + aud_io_reg_3v3: regulator-aud-io-3v3 {
> + compatible = "regulator-fixed";
> + regulator-name = "aud-io-3v3";
> + regulator-max-microvolt = <3300000>;
> + regulator-min-microvolt = <3300000>;
> + gpio = <&pcal6416 11 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + aud_io_reg_5v: regulator-5v {
> + compatible = "regulator-fixed";
> + regulator-name = "aud-io-5v";
> + regulator-max-microvolt = <5000000>;
> + regulator-min-microvolt = <5000000>;
> + };
> +
> reg_audio_pwr: regulator-audio-pwr {
> compatible = "regulator-fixed";
> regulator-name = "audio-pwr";
> @@ -323,7 +350,7 @@ i2c4_pcal6408: gpio at 21 {
> };
> };
>
> -&lpi2c6 {
> +aud_io_i2c: &lpi2c6 {
> clock-frequency = <100000>;
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_lpi2c6>;
> @@ -468,6 +495,27 @@ &sai1 {
> status = "okay";
> };
>
> +aud_io_cpu: &sai2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_sai2>;
> + clocks = <&scmi_clk IMX952_CLK_BUSNETCMIX>, <&clk_dummy>,
> + <&scmi_clk IMX952_CLK_SAI2>, <&clk_dummy>,
> + <&clk_dummy>, <&scmi_clk IMX952_CLK_AUDIOPLL1>,
> + <&scmi_clk IMX952_CLK_AUDIOPLL2>;
> + clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
> + assigned-clocks = <&scmi_clk IMX952_CLK_AUDIOPLL1_VCO>,
> + <&scmi_clk IMX952_CLK_AUDIOPLL2_VCO>,
> + <&scmi_clk IMX952_CLK_AUDIOPLL1>,
> + <&scmi_clk IMX952_CLK_AUDIOPLL2>,
> + <&scmi_clk IMX952_CLK_SAI2>;
> + assigned-clock-parents = <0>, <0>, <0>, <0>,
> + <&scmi_clk IMX952_CLK_AUDIOPLL1>;
> + assigned-clock-rates = <3932160000>, <3612672000>,
> + <393216000>, <361267200>, <12288000>;
> + fsl,sai-mclk-direction-output;
> + fsl,sai-asynchronous;
> +};
> +
> &sai3 {
> assigned-clocks = <&scmi_clk IMX952_CLK_AUDIOPLL1_VCO>,
> <&scmi_clk IMX952_CLK_AUDIOPLL2_VCO>,
> @@ -688,6 +736,22 @@
> IMX952_PAD_SAI1_TXD0__AONMIX_TOP_GPIO1_IO_13 0x51e
> >;
> };
>
> + pinctrl_sai2: sai2grp {
> + fsl,pins = <
> + IMX952_PAD_ENET2_MDIO__NETCMIX_TOP_SAI2_RX_BCLK
> 0x31e
> + IMX952_PAD_ENET2_MDC__NETCMIX_TOP_SAI2_RX_SYNC
> 0x31e
> + IMX952_PAD_ENET2_TD3__NETCMIX_TOP_SAI2_RX_DATA_0
> 0x31e
> + IMX952_PAD_ENET2_TD2__NETCMIX_TOP_SAI2_RX_DATA_1
> 0x31e
> + IMX952_PAD_ENET2_TXC__NETCMIX_TOP_SAI2_TX_BCLK
> 0x31e
> + IMX952_PAD_ENET2_TX_CTL__NETCMIX_TOP_SAI2_TX_SYNC
> 0x31e
> +
> IMX952_PAD_ENET2_RX_CTL__NETCMIX_TOP_SAI2_TX_DATA_0
> 0x31e
> + IMX952_PAD_ENET2_RXC__NETCMIX_TOP_SAI2_TX_DATA_1
> 0x31e
> + IMX952_PAD_ENET2_RD0__NETCMIX_TOP_SAI2_TX_DATA_2
> 0x31e
> + IMX952_PAD_ENET2_RD1__NETCMIX_TOP_SAI2_TX_DATA_3
> 0x31e
> + IMX952_PAD_ENET2_RD2__NETCMIX_TOP_SAI2_MCLK
> 0x31e
> + >;
> + };
> +
> pinctrl_sai3: sai3grp {
> fsl,pins = <
> IMX952_PAD_GPIO_IO17__WAKEUPMIX_TOP_SAI3_MCLK
> 0x31e
> --
> 2.50.1
>
More information about the linux-arm-kernel
mailing list