1*aa1a8ff2SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*aa1a8ff2SEmmanuel Vadot%YAML 1.2 3*aa1a8ff2SEmmanuel Vadot--- 4*aa1a8ff2SEmmanuel Vadot$id: http://devicetree.org/schemas/clock/fsl,imx8-acm.yaml# 5*aa1a8ff2SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*aa1a8ff2SEmmanuel Vadot 7*aa1a8ff2SEmmanuel Vadottitle: NXP i.MX8 Audio Clock Mux 8*aa1a8ff2SEmmanuel Vadot 9*aa1a8ff2SEmmanuel Vadotmaintainers: 10*aa1a8ff2SEmmanuel Vadot - Shengjiu Wang <shengjiu.wang@nxp.com> 11*aa1a8ff2SEmmanuel Vadot 12*aa1a8ff2SEmmanuel Vadotdescription: | 13*aa1a8ff2SEmmanuel Vadot NXP i.MX8 Audio Clock Mux is dedicated clock muxing IP 14*aa1a8ff2SEmmanuel Vadot used to control Audio related clock on the SoC. 15*aa1a8ff2SEmmanuel Vadot 16*aa1a8ff2SEmmanuel Vadotproperties: 17*aa1a8ff2SEmmanuel Vadot compatible: 18*aa1a8ff2SEmmanuel Vadot enum: 19*aa1a8ff2SEmmanuel Vadot - fsl,imx8dxl-acm 20*aa1a8ff2SEmmanuel Vadot - fsl,imx8qm-acm 21*aa1a8ff2SEmmanuel Vadot - fsl,imx8qxp-acm 22*aa1a8ff2SEmmanuel Vadot 23*aa1a8ff2SEmmanuel Vadot reg: 24*aa1a8ff2SEmmanuel Vadot maxItems: 1 25*aa1a8ff2SEmmanuel Vadot 26*aa1a8ff2SEmmanuel Vadot power-domains: 27*aa1a8ff2SEmmanuel Vadot minItems: 13 28*aa1a8ff2SEmmanuel Vadot maxItems: 21 29*aa1a8ff2SEmmanuel Vadot 30*aa1a8ff2SEmmanuel Vadot '#clock-cells': 31*aa1a8ff2SEmmanuel Vadot const: 1 32*aa1a8ff2SEmmanuel Vadot description: 33*aa1a8ff2SEmmanuel Vadot The clock consumer should specify the desired clock by having the clock 34*aa1a8ff2SEmmanuel Vadot ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8-clock.h 35*aa1a8ff2SEmmanuel Vadot for the full list of i.MX8 ACM clock IDs. 36*aa1a8ff2SEmmanuel Vadot 37*aa1a8ff2SEmmanuel Vadot clocks: 38*aa1a8ff2SEmmanuel Vadot minItems: 13 39*aa1a8ff2SEmmanuel Vadot maxItems: 27 40*aa1a8ff2SEmmanuel Vadot 41*aa1a8ff2SEmmanuel Vadot clock-names: 42*aa1a8ff2SEmmanuel Vadot minItems: 13 43*aa1a8ff2SEmmanuel Vadot maxItems: 27 44*aa1a8ff2SEmmanuel Vadot 45*aa1a8ff2SEmmanuel Vadotrequired: 46*aa1a8ff2SEmmanuel Vadot - compatible 47*aa1a8ff2SEmmanuel Vadot - reg 48*aa1a8ff2SEmmanuel Vadot - power-domains 49*aa1a8ff2SEmmanuel Vadot - '#clock-cells' 50*aa1a8ff2SEmmanuel Vadot - clocks 51*aa1a8ff2SEmmanuel Vadot - clock-names 52*aa1a8ff2SEmmanuel Vadot 53*aa1a8ff2SEmmanuel VadotallOf: 54*aa1a8ff2SEmmanuel Vadot - if: 55*aa1a8ff2SEmmanuel Vadot properties: 56*aa1a8ff2SEmmanuel Vadot compatible: 57*aa1a8ff2SEmmanuel Vadot contains: 58*aa1a8ff2SEmmanuel Vadot enum: 59*aa1a8ff2SEmmanuel Vadot - fsl,imx8qxp-acm 60*aa1a8ff2SEmmanuel Vadot then: 61*aa1a8ff2SEmmanuel Vadot properties: 62*aa1a8ff2SEmmanuel Vadot power-domains: 63*aa1a8ff2SEmmanuel Vadot items: 64*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_AUDIO_CLK_0 65*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_AUDIO_CLK_1 66*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_MCLK_OUT_0 67*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_MCLK_OUT_1 68*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_AUDIO_PLL_0 69*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_AUDIO_PLL_1 70*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_ASRC_0 71*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_ASRC_1 72*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_ESAI_0 73*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_0 74*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_1 75*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_2 76*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_3 77*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_4 78*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_5 79*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SPDIF_0 80*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_MQS_0 81*aa1a8ff2SEmmanuel Vadot 82*aa1a8ff2SEmmanuel Vadot clocks: 83*aa1a8ff2SEmmanuel Vadot minItems: 18 84*aa1a8ff2SEmmanuel Vadot maxItems: 18 85*aa1a8ff2SEmmanuel Vadot 86*aa1a8ff2SEmmanuel Vadot clock-names: 87*aa1a8ff2SEmmanuel Vadot items: 88*aa1a8ff2SEmmanuel Vadot - const: aud_rec_clk0_lpcg_clk 89*aa1a8ff2SEmmanuel Vadot - const: aud_rec_clk1_lpcg_clk 90*aa1a8ff2SEmmanuel Vadot - const: aud_pll_div_clk0_lpcg_clk 91*aa1a8ff2SEmmanuel Vadot - const: aud_pll_div_clk1_lpcg_clk 92*aa1a8ff2SEmmanuel Vadot - const: ext_aud_mclk0 93*aa1a8ff2SEmmanuel Vadot - const: ext_aud_mclk1 94*aa1a8ff2SEmmanuel Vadot - const: esai0_rx_clk 95*aa1a8ff2SEmmanuel Vadot - const: esai0_rx_hf_clk 96*aa1a8ff2SEmmanuel Vadot - const: esai0_tx_clk 97*aa1a8ff2SEmmanuel Vadot - const: esai0_tx_hf_clk 98*aa1a8ff2SEmmanuel Vadot - const: spdif0_rx 99*aa1a8ff2SEmmanuel Vadot - const: sai0_rx_bclk 100*aa1a8ff2SEmmanuel Vadot - const: sai0_tx_bclk 101*aa1a8ff2SEmmanuel Vadot - const: sai1_rx_bclk 102*aa1a8ff2SEmmanuel Vadot - const: sai1_tx_bclk 103*aa1a8ff2SEmmanuel Vadot - const: sai2_rx_bclk 104*aa1a8ff2SEmmanuel Vadot - const: sai3_rx_bclk 105*aa1a8ff2SEmmanuel Vadot - const: sai4_rx_bclk 106*aa1a8ff2SEmmanuel Vadot 107*aa1a8ff2SEmmanuel Vadot - if: 108*aa1a8ff2SEmmanuel Vadot properties: 109*aa1a8ff2SEmmanuel Vadot compatible: 110*aa1a8ff2SEmmanuel Vadot contains: 111*aa1a8ff2SEmmanuel Vadot enum: 112*aa1a8ff2SEmmanuel Vadot - fsl,imx8qm-acm 113*aa1a8ff2SEmmanuel Vadot then: 114*aa1a8ff2SEmmanuel Vadot properties: 115*aa1a8ff2SEmmanuel Vadot power-domains: 116*aa1a8ff2SEmmanuel Vadot items: 117*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_AUDIO_CLK_0 118*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_AUDIO_CLK_1 119*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_MCLK_OUT_0 120*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_MCLK_OUT_1 121*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_AUDIO_PLL_0 122*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_AUDIO_PLL_1 123*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_ASRC_0 124*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_ASRC_1 125*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_ESAI_0 126*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_ESAI_1 127*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_0 128*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_1 129*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_2 130*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_3 131*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_4 132*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_5 133*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_6 134*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_7 135*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SPDIF_0 136*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SPDIF_1 137*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_MQS_0 138*aa1a8ff2SEmmanuel Vadot 139*aa1a8ff2SEmmanuel Vadot clocks: 140*aa1a8ff2SEmmanuel Vadot minItems: 27 141*aa1a8ff2SEmmanuel Vadot maxItems: 27 142*aa1a8ff2SEmmanuel Vadot 143*aa1a8ff2SEmmanuel Vadot clock-names: 144*aa1a8ff2SEmmanuel Vadot items: 145*aa1a8ff2SEmmanuel Vadot - const: aud_rec_clk0_lpcg_clk 146*aa1a8ff2SEmmanuel Vadot - const: aud_rec_clk1_lpcg_clk 147*aa1a8ff2SEmmanuel Vadot - const: aud_pll_div_clk0_lpcg_clk 148*aa1a8ff2SEmmanuel Vadot - const: aud_pll_div_clk1_lpcg_clk 149*aa1a8ff2SEmmanuel Vadot - const: mlb_clk 150*aa1a8ff2SEmmanuel Vadot - const: hdmi_rx_mclk 151*aa1a8ff2SEmmanuel Vadot - const: ext_aud_mclk0 152*aa1a8ff2SEmmanuel Vadot - const: ext_aud_mclk1 153*aa1a8ff2SEmmanuel Vadot - const: esai0_rx_clk 154*aa1a8ff2SEmmanuel Vadot - const: esai0_rx_hf_clk 155*aa1a8ff2SEmmanuel Vadot - const: esai0_tx_clk 156*aa1a8ff2SEmmanuel Vadot - const: esai0_tx_hf_clk 157*aa1a8ff2SEmmanuel Vadot - const: esai1_rx_clk 158*aa1a8ff2SEmmanuel Vadot - const: esai1_rx_hf_clk 159*aa1a8ff2SEmmanuel Vadot - const: esai1_tx_clk 160*aa1a8ff2SEmmanuel Vadot - const: esai1_tx_hf_clk 161*aa1a8ff2SEmmanuel Vadot - const: spdif0_rx 162*aa1a8ff2SEmmanuel Vadot - const: spdif1_rx 163*aa1a8ff2SEmmanuel Vadot - const: sai0_rx_bclk 164*aa1a8ff2SEmmanuel Vadot - const: sai0_tx_bclk 165*aa1a8ff2SEmmanuel Vadot - const: sai1_rx_bclk 166*aa1a8ff2SEmmanuel Vadot - const: sai1_tx_bclk 167*aa1a8ff2SEmmanuel Vadot - const: sai2_rx_bclk 168*aa1a8ff2SEmmanuel Vadot - const: sai3_rx_bclk 169*aa1a8ff2SEmmanuel Vadot - const: sai4_rx_bclk 170*aa1a8ff2SEmmanuel Vadot - const: sai5_tx_bclk 171*aa1a8ff2SEmmanuel Vadot - const: sai6_rx_bclk 172*aa1a8ff2SEmmanuel Vadot 173*aa1a8ff2SEmmanuel Vadot - if: 174*aa1a8ff2SEmmanuel Vadot properties: 175*aa1a8ff2SEmmanuel Vadot compatible: 176*aa1a8ff2SEmmanuel Vadot contains: 177*aa1a8ff2SEmmanuel Vadot enum: 178*aa1a8ff2SEmmanuel Vadot - fsl,imx8dxl-acm 179*aa1a8ff2SEmmanuel Vadot then: 180*aa1a8ff2SEmmanuel Vadot properties: 181*aa1a8ff2SEmmanuel Vadot power-domains: 182*aa1a8ff2SEmmanuel Vadot items: 183*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_AUDIO_CLK_0 184*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_AUDIO_CLK_1 185*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_MCLK_OUT_0 186*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_MCLK_OUT_1 187*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_AUDIO_PLL_0 188*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_AUDIO_PLL_1 189*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_ASRC_0 190*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_0 191*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_1 192*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_2 193*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SAI_3 194*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_SPDIF_0 195*aa1a8ff2SEmmanuel Vadot - description: power domain of IMX_SC_R_MQS_0 196*aa1a8ff2SEmmanuel Vadot 197*aa1a8ff2SEmmanuel Vadot clocks: 198*aa1a8ff2SEmmanuel Vadot minItems: 13 199*aa1a8ff2SEmmanuel Vadot maxItems: 13 200*aa1a8ff2SEmmanuel Vadot 201*aa1a8ff2SEmmanuel Vadot clock-names: 202*aa1a8ff2SEmmanuel Vadot items: 203*aa1a8ff2SEmmanuel Vadot - const: aud_rec_clk0_lpcg_clk 204*aa1a8ff2SEmmanuel Vadot - const: aud_rec_clk1_lpcg_clk 205*aa1a8ff2SEmmanuel Vadot - const: aud_pll_div_clk0_lpcg_clk 206*aa1a8ff2SEmmanuel Vadot - const: aud_pll_div_clk1_lpcg_clk 207*aa1a8ff2SEmmanuel Vadot - const: ext_aud_mclk0 208*aa1a8ff2SEmmanuel Vadot - const: ext_aud_mclk1 209*aa1a8ff2SEmmanuel Vadot - const: spdif0_rx 210*aa1a8ff2SEmmanuel Vadot - const: sai0_rx_bclk 211*aa1a8ff2SEmmanuel Vadot - const: sai0_tx_bclk 212*aa1a8ff2SEmmanuel Vadot - const: sai1_rx_bclk 213*aa1a8ff2SEmmanuel Vadot - const: sai1_tx_bclk 214*aa1a8ff2SEmmanuel Vadot - const: sai2_rx_bclk 215*aa1a8ff2SEmmanuel Vadot - const: sai3_rx_bclk 216*aa1a8ff2SEmmanuel Vadot 217*aa1a8ff2SEmmanuel VadotadditionalProperties: false 218*aa1a8ff2SEmmanuel Vadot 219*aa1a8ff2SEmmanuel Vadotexamples: 220*aa1a8ff2SEmmanuel Vadot # Clock Control Module node: 221*aa1a8ff2SEmmanuel Vadot - | 222*aa1a8ff2SEmmanuel Vadot #include <dt-bindings/clock/imx8-lpcg.h> 223*aa1a8ff2SEmmanuel Vadot #include <dt-bindings/firmware/imx/rsrc.h> 224*aa1a8ff2SEmmanuel Vadot 225*aa1a8ff2SEmmanuel Vadot clock-controller@59e00000 { 226*aa1a8ff2SEmmanuel Vadot compatible = "fsl,imx8qxp-acm"; 227*aa1a8ff2SEmmanuel Vadot reg = <0x59e00000 0x1d0000>; 228*aa1a8ff2SEmmanuel Vadot #clock-cells = <1>; 229*aa1a8ff2SEmmanuel Vadot power-domains = <&pd IMX_SC_R_AUDIO_CLK_0>, 230*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_AUDIO_CLK_1>, 231*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_MCLK_OUT_0>, 232*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_MCLK_OUT_1>, 233*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_AUDIO_PLL_0>, 234*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_AUDIO_PLL_1>, 235*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_ASRC_0>, 236*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_ASRC_1>, 237*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_ESAI_0>, 238*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_SAI_0>, 239*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_SAI_1>, 240*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_SAI_2>, 241*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_SAI_3>, 242*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_SAI_4>, 243*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_SAI_5>, 244*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_SPDIF_0>, 245*aa1a8ff2SEmmanuel Vadot <&pd IMX_SC_R_MQS_0>; 246*aa1a8ff2SEmmanuel Vadot clocks = <&aud_rec0_lpcg IMX_LPCG_CLK_0>, 247*aa1a8ff2SEmmanuel Vadot <&aud_rec1_lpcg IMX_LPCG_CLK_0>, 248*aa1a8ff2SEmmanuel Vadot <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>, 249*aa1a8ff2SEmmanuel Vadot <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>, 250*aa1a8ff2SEmmanuel Vadot <&clk_ext_aud_mclk0>, 251*aa1a8ff2SEmmanuel Vadot <&clk_ext_aud_mclk1>, 252*aa1a8ff2SEmmanuel Vadot <&clk_esai0_rx_clk>, 253*aa1a8ff2SEmmanuel Vadot <&clk_esai0_rx_hf_clk>, 254*aa1a8ff2SEmmanuel Vadot <&clk_esai0_tx_clk>, 255*aa1a8ff2SEmmanuel Vadot <&clk_esai0_tx_hf_clk>, 256*aa1a8ff2SEmmanuel Vadot <&clk_spdif0_rx>, 257*aa1a8ff2SEmmanuel Vadot <&clk_sai0_rx_bclk>, 258*aa1a8ff2SEmmanuel Vadot <&clk_sai0_tx_bclk>, 259*aa1a8ff2SEmmanuel Vadot <&clk_sai1_rx_bclk>, 260*aa1a8ff2SEmmanuel Vadot <&clk_sai1_tx_bclk>, 261*aa1a8ff2SEmmanuel Vadot <&clk_sai2_rx_bclk>, 262*aa1a8ff2SEmmanuel Vadot <&clk_sai3_rx_bclk>, 263*aa1a8ff2SEmmanuel Vadot <&clk_sai4_rx_bclk>; 264*aa1a8ff2SEmmanuel Vadot clock-names = "aud_rec_clk0_lpcg_clk", 265*aa1a8ff2SEmmanuel Vadot "aud_rec_clk1_lpcg_clk", 266*aa1a8ff2SEmmanuel Vadot "aud_pll_div_clk0_lpcg_clk", 267*aa1a8ff2SEmmanuel Vadot "aud_pll_div_clk1_lpcg_clk", 268*aa1a8ff2SEmmanuel Vadot "ext_aud_mclk0", 269*aa1a8ff2SEmmanuel Vadot "ext_aud_mclk1", 270*aa1a8ff2SEmmanuel Vadot "esai0_rx_clk", 271*aa1a8ff2SEmmanuel Vadot "esai0_rx_hf_clk", 272*aa1a8ff2SEmmanuel Vadot "esai0_tx_clk", 273*aa1a8ff2SEmmanuel Vadot "esai0_tx_hf_clk", 274*aa1a8ff2SEmmanuel Vadot "spdif0_rx", 275*aa1a8ff2SEmmanuel Vadot "sai0_rx_bclk", 276*aa1a8ff2SEmmanuel Vadot "sai0_tx_bclk", 277*aa1a8ff2SEmmanuel Vadot "sai1_rx_bclk", 278*aa1a8ff2SEmmanuel Vadot "sai1_tx_bclk", 279*aa1a8ff2SEmmanuel Vadot "sai2_rx_bclk", 280*aa1a8ff2SEmmanuel Vadot "sai3_rx_bclk", 281*aa1a8ff2SEmmanuel Vadot "sai4_rx_bclk"; 282*aa1a8ff2SEmmanuel Vadot }; 283