Hi Krzysztof
On Fri, 17 Mar 2023 09:57:11 +0100 Krzysztof Kozlowski krzysztof.kozlowski@linaro.org wrote:
On 16/03/2023 13:27, Herve Codina wrote:
The Lantiq PEF2256, also known as Infineon PEF2256 or FALC256, is a framer and line interface component designed to fulfill all required interfacing between an analog E1/T1/J1 line and the digital PCM system highway/H.100 bus.
The codec support allows to use some of the PCM system highway time-slots as audio channels to transport audio data over the E1/T1/J1 lines.
Your other file should also have specific compatible, unless this codec is actually part of the framer. Did not look like this in the binding - not $ref.
No sure to understand what you mean.
Anyway, I plan to use a MFD device for pef2256 and reference this yaml from the lantiq,pef2256.yaml in the node related to the codec.
One question related to bindings and related checks: Is there a way to check the compatible property of the parent node. I mean, here is the binding of a child node of a MFD node. From this binding, I would like to be sure that the parent is really a pef2256 MFD node.
May be something like: parent-properties: allOf: compatible: contains: const: lantiq,pef2256
The idea is to have dtbs_check raise an error if the parent's compatible property is not 'lantiq,pef2256'.
From parent, the link is checked using: properties: codec: $ref: /schemas/sound/lantiq,pef2256-codec.yaml
but nothing prevent to use this 'lantiq,pef2256-codec' binding from a node that has nothing to do with pef2256.
Signed-off-by: Herve Codina herve.codina@bootlin.com
.../bindings/sound/lantiq,pef2256-codec.yaml | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/lantiq,pef2256-codec.yaml
diff --git a/Documentation/devicetree/bindings/sound/lantiq,pef2256-codec.yaml b/Documentation/devicetree/bindings/sound/lantiq,pef2256-codec.yaml new file mode 100644 index 000000000000..acba3a0ccd1b --- /dev/null +++ b/Documentation/devicetree/bindings/sound/lantiq,pef2256-codec.yaml @@ -0,0 +1,57 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/lantiq,pef2256-codec.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: Lantiq PEF2256 codec device
Drop "device". Everything is "device".
Will be dropped in v3 series.
+maintainers:
- Herve Codina herve.codina@bootlin.com
+description: |
- Codec support for PEF2256.
- The Lantiq PEF2256, also known as Infineon PEF2256 or FALC256, is a framer and
- line interface component designed to fulfill all required interfacing between
- an analog E1/T1/J1 line and the digital PCM system highway/H.100 bus.
- The codec support allows to use some of the PCM system highway time-slots as
- audio channels to transport audio data over the E1/T1/J1 lines.
- The time-slots used by the codec must be set and so, the properties
- 'dai-tdm-slot-num', 'dai-tdm-slot-width', 'dai-tdm-slot-tx-mask' and
- 'dai-tdm-slot-rx-mask' must be present in the ALSA sound card node for
- sub-nodes that involve the codec. The codec uses 8bit time-slots.
- 'dai-tdm-tdm-slot-with' must be set to 8.
+allOf:
- $ref: /schemas/spi/spi-peripheral-props.yaml#
Oups, This device is not on a SPI bus -> will be dropped in v3 series.
- $ref: dai-common.yaml#
+properties:
- compatible:
- const: lantiq,pef2256-codec
- lantiq,pef2256:
- $ref: /schemas/types.yaml#/definitions/phandle
- description:
phandle to the PEF2256
Why not its child? Why this is in parallel ?
Indeed, I will move to MFD, remove this phandle and use the lantiq,pef2256-codec node as a child node of lantiq,pef2256.
- '#sound-dai-cells':
- const: 0
Best regards, Krzysztof
Thanks for the review,
Best regards, Hervé