zephyr/dts/bindings/i2s/nxp,mcux-i2s.yaml
Daniel DeGrasse 906ee53834 drivers: i2s: i2s_mcux_sai: use clock-mux property to select SAI mux
Use a new property, "clock-mux" to select the clock mux for the SAI.
Previously, the clock mux was being selected using the "bits" specifier
of the "clocks" phandle property, which is not the purpose of this
specifier. This can be shown by the regression introduced by 5bebbb91,
which changed the "bits" field to the clock gate shift (which is the
intended meaning).

This incidently worked for the SAI1 and SAI3 peripherals, as the lower 2
bits of the correct clock source selection (0b10) are the same as the new
value placed in the "bit" specifier. For SAI2, the clock source was
switched to PLL3 PDF0 by this change.

To resolve this, use an explict "clock-mux" property for this selection.

Fixes #63541

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2023-10-20 15:01:10 +02:00

68 lines
1.2 KiB
YAML

# Copyright 2021,2023 NXP
# SPDX-License-Identifier: Apache-2.0
description: NXP mcux SAI-I2S controller
compatible: "nxp,mcux-i2s"
include: [i2s-controller.yaml, pinctrl-device.yaml]
properties:
reg:
required: true
interrupts:
required: true
dma-names:
required: true
nxp,tx-dma-channel:
type: int
required: true
description: tx dma channel number
nxp,rx-dma-channel:
type: int
required: true
description: rx dma channel number
nxp,tx-sync-mode:
type: boolean
description: tx sync mode
nxp,rx-sync-mode:
type: boolean
description: rx sync mode
pre-div:
type: int
description: pre divider
podf:
type: int
description: post-divider fraction
pll-clocks:
type: phandle-array
description: pll settings
specifier-space: pll-clock
pll-clock-names:
type: string-array
description: Provided names of pll-clock specifiers
pinmuxes:
type: phandle-array
specifier-space: pinmux
description: iomux settings
nxp,tx-channel:
type: int
description: tx channel the maximum number is SOC dependent
clock-mux:
required: true
type: int
description: Clock mux source for SAI root clock