Skip to content

Commit

Permalink
Merge series "ASoC: graph card schema rework" from Rob Herring <robh@…
Browse files Browse the repository at this point in the history
…kernel.org>:

This series updates Sameer's patch to repartition the graph card binding
schema and incorporate the OF graph schema. The schema was also mixing
card node and DAI node properties, so I've split the DAI part (the
'port' node) into a separate schema.

There's another problem that 'frame-master' and 'bitclock-master' have
inconsistent types of boolean and phandle. Having the properties just
point to the local or remote endpoint within an endpoint node is kind of
pointless. We should have gone with just boolean, but looks like we
already have several users. MMP OLPC is the one platform using boolean,
but it happens to work because the properties are effectively ignored
and CPU DAI as the master is the default.

Rob

Rob Herring (3):
  ASoC: dt-bindings: Use OF graph schema
  ASoC: dt-bindings: marvell,mmp-sspa: Use audio-graph-port schema
  ASoC: dt-bindings: Refine 'frame-master' and 'bitclock-master' type

Sameer Pujar (1):
  ASoC: audio-graph-card: Refactor schema

 .../bindings/sound/audio-graph-card.yaml      | 106 +-----------------
 .../bindings/sound/audio-graph-port.yaml      |  72 ++++++++++++
 .../bindings/sound/audio-graph.yaml           |  45 ++++++++
 .../bindings/sound/marvell,mmp-sspa.yaml      |  25 +----
 .../bindings/sound/renesas,rsnd.yaml          |  12 +-
 .../bindings/sound/simple-card.yaml           |   6 +-
 6 files changed, 132 insertions(+), 134 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/sound/audio-graph-port.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/audio-graph.yaml

base-commit: e2e99930ec006c6fe1d62af339a765ade71a0d9a
--
2.25.1
  • Loading branch information
Mark Brown committed Nov 18, 2020
2 parents 7d94ca3 + 251bf65 commit de3de88
Show file tree
Hide file tree
Showing 6 changed files with 144 additions and 134 deletions.
106 changes: 5 additions & 101 deletions Documentation/devicetree/bindings/sound/audio-graph-card.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,120 +4,24 @@
$id: http://devicetree.org/schemas/sound/audio-graph-card.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Audio Graph Card Driver Device Tree Bindings
title: Audio Graph Card Device Tree Bindings

maintainers:
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

allOf:
- $ref: /schemas/sound/audio-graph.yaml#

properties:
compatible:
enum:
- audio-graph-card
- audio-graph-scu-card

dais:
$ref: /schemas/types.yaml#/definitions/phandle-array
label:
maxItems: 1
prefix:
description: "device name prefix"
$ref: /schemas/types.yaml#/definitions/string
routing:
description: |
A list of the connections between audio components.
Each entry is a pair of strings, the first being the
connection's sink, the second being the connection's source.
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
widgets:
description: User specified audio sound widgets.
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
convert-rate:
description: CPU to Codec rate convert.
$ref: /schemas/types.yaml#/definitions/uint32
convert-channels:
description: CPU to Codec rate channels.
$ref: /schemas/types.yaml#/definitions/uint32
pa-gpios:
maxItems: 1
hp-det-gpio:
maxItems: 1
mic-det-gpio:
maxItems: 1

port:
description: single OF-Graph subnode
type: object
properties:
reg:
maxItems: 1
prefix:
description: "device name prefix"
$ref: /schemas/types.yaml#/definitions/string
convert-rate:
description: CPU to Codec rate convert.
$ref: /schemas/types.yaml#/definitions/uint32
convert-channels:
description: CPU to Codec rate channels.
$ref: /schemas/types.yaml#/definitions/uint32
patternProperties:
"^endpoint(@[0-9a-f]+)?":
type: object
properties:
remote-endpoint:
maxItems: 1
mclk-fs:
description: |
Multiplication factor between stream rate and codec mclk.
When defined, mclk-fs property defined in dai-link sub nodes are ignored.
$ref: /schemas/types.yaml#/definitions/uint32
frame-inversion:
description: dai-link uses frame clock inversion
$ref: /schemas/types.yaml#/definitions/flag
bitclock-inversion:
description: dai-link uses bit clock inversion
$ref: /schemas/types.yaml#/definitions/flag
frame-master:
description: Indicates dai-link frame master.
$ref: /schemas/types.yaml#/definitions/phandle-array
maxItems: 1
bitclock-master:
description: Indicates dai-link bit clock master
$ref: /schemas/types.yaml#/definitions/phandle-array
maxItems: 1
dai-format:
description: audio format.
items:
enum:
- i2s
- right_j
- left_j
- dsp_a
- dsp_b
- ac97
- pdm
- msb
- lsb
convert-rate:
description: CPU to Codec rate convert.
$ref: /schemas/types.yaml#/definitions/uint32
convert-channels:
description: CPU to Codec rate channels.
$ref: /schemas/types.yaml#/definitions/uint32
required:
- remote-endpoint

ports:
description: multi OF-Graph subnode
type: object
patternProperties:
"^port(@[0-9a-f]+)?":
$ref: "#/properties/port"

required:
- compatible
- dais

additionalProperties: false
unevaluatedProperties: false

examples:
- |
Expand Down
84 changes: 84 additions & 0 deletions Documentation/devicetree/bindings/sound/audio-graph-port.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/audio-graph-port.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Audio Graph Card 'port' Node Bindings

maintainers:
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

select: false

properties:
port:
description: single OF-Graph subnode
type: object
properties:
reg:
maxItems: 1
prefix:
description: "device name prefix"
$ref: /schemas/types.yaml#/definitions/string
convert-rate:
description: CPU to Codec rate convert.
$ref: /schemas/types.yaml#/definitions/uint32
convert-channels:
description: CPU to Codec rate channels.
$ref: /schemas/types.yaml#/definitions/uint32
patternProperties:
"^endpoint(@[0-9a-f]+)?":
type: object
properties:
remote-endpoint:
maxItems: 1
mclk-fs:
description: |
Multiplication factor between stream rate and codec mclk.
When defined, mclk-fs property defined in dai-link sub nodes are
ignored.
$ref: /schemas/types.yaml#/definitions/uint32
frame-inversion:
description: dai-link uses frame clock inversion
$ref: /schemas/types.yaml#/definitions/flag
bitclock-inversion:
description: dai-link uses bit clock inversion
$ref: /schemas/types.yaml#/definitions/flag
frame-master:
description: Indicates dai-link frame master.
$ref: /schemas/types.yaml#/definitions/phandle
bitclock-master:
description: Indicates dai-link bit clock master
$ref: /schemas/types.yaml#/definitions/phandle
dai-format:
description: audio format.
items:
enum:
- i2s
- right_j
- left_j
- dsp_a
- dsp_b
- ac97
- pdm
- msb
- lsb
convert-rate:
description: CPU to Codec rate convert.
$ref: /schemas/types.yaml#/definitions/uint32
convert-channels:
description: CPU to Codec rate channels.
$ref: /schemas/types.yaml#/definitions/uint32

required:
- remote-endpoint

ports:
description: multi OF-Graph subnode
type: object
patternProperties:
"^port(@[0-9a-f]+)?":
$ref: "#/properties/port"

additionalProperties: true
45 changes: 45 additions & 0 deletions Documentation/devicetree/bindings/sound/audio-graph.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/audio-graph.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Audio Graph Device Tree Bindings

maintainers:
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

properties:
dais:
$ref: /schemas/types.yaml#/definitions/phandle-array
label:
maxItems: 1
prefix:
description: "device name prefix"
$ref: /schemas/types.yaml#/definitions/string
routing:
description: |
A list of the connections between audio components.
Each entry is a pair of strings, the first being the
connection's sink, the second being the connection's source.
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
widgets:
description: User specified audio sound widgets.
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
convert-rate:
description: CPU to Codec rate convert.
$ref: /schemas/types.yaml#/definitions/uint32
convert-channels:
description: CPU to Codec rate channels.
$ref: /schemas/types.yaml#/definitions/uint32
pa-gpios:
maxItems: 1
hp-det-gpio:
maxItems: 1
mic-det-gpio:
maxItems: 1

required:
- dais

additionalProperties: true
25 changes: 3 additions & 22 deletions Documentation/devicetree/bindings/sound/marvell,mmp-sspa.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ title: Marvel SSPA Digital Audio Interface Bindings
maintainers:
- Lubomir Rintel <lkundrak@v3.sk>

allOf:
- $ref: audio-graph-port.yaml#

properties:
$nodename:
pattern: "^audio-controller(@.*)?$"
Expand Down Expand Up @@ -58,29 +61,9 @@ properties:
type: object

properties:
remote-endpoint: true

frame-master:
type: boolean
description: SoC generates the frame clock

bitclock-master:
type: boolean
description: SoC generates the bit clock

dai-format:
$ref: /schemas/types.yaml#/definitions/string
description: The digital audio format
const: i2s

required:
- remote-endpoint

required:
- endpoint

additionalProperties: false

required:
- "#sound-dai-cells"
- compatible
Expand Down Expand Up @@ -112,8 +95,6 @@ examples:
port {
endpoint {
remote-endpoint = <&rt5631_0>;
frame-master;
bitclock-master;
dai-format = "i2s";
};
};
Expand Down
12 changes: 5 additions & 7 deletions Documentation/devicetree/bindings/sound/renesas,rsnd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ title: Renesas R-Car Sound Driver Device Tree Bindings
maintainers:
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

allOf:
- $ref: audio-graph.yaml#
- $ref: audio-graph-port.yaml#

properties:

compatible:
Expand Down Expand Up @@ -111,13 +115,7 @@ properties:
- pattern: '^dvc\.[0-1]$'
- pattern: '^clk_(a|b|c|i)$'

port:
description: OF-Graph subnode
$ref: "audio-graph-card.yaml#/properties/port"

ports:
description: multi OF-Graph subnode
$ref: "audio-graph-card.yaml#/properties/ports"
port: true

# use patternProperties to avoid naming "xxx,yyy" issue
patternProperties:
Expand Down
6 changes: 2 additions & 4 deletions Documentation/devicetree/bindings/sound/simple-card.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,11 @@ definitions:

frame-master:
description: Indicates dai-link frame master.
$ref: /schemas/types.yaml#/definitions/phandle-array
maxItems: 1
$ref: /schemas/types.yaml#/definitions/phandle

bitclock-master:
description: Indicates dai-link bit clock master
$ref: /schemas/types.yaml#/definitions/phandle-array
maxItems: 1
$ref: /schemas/types.yaml#/definitions/phandle

frame-inversion:
description: dai-link uses frame clock inversion
Expand Down

0 comments on commit de3de88

Please sign in to comment.