Documentation / devicetree / bindings / sound / cirrus,cs35l45.yaml


Based on kernel version 6.10. Page generated on 2024-07-16 09:00 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/cirrus,cs35l45.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic CS35L45 Speaker Amplifier

maintainers:
  - Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
  - Richard Fitzgerald <rf@opensource.cirrus.com>

description: |
  CS35L45 is a Boosted Mono Class D Amplifier with DSP
  Speaker Protection and Adaptive Battery Management.

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    enum:
      - cirrus,cs35l45

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1
 
  '#sound-dai-cells':
    const: 1

  reset-gpios:
    maxItems: 1

  vdd-a-supply:
    description: voltage regulator phandle for the VDD_A supply

  vdd-batt-supply:
    description: voltage regulator phandle for the VDD_BATT supply

  spi-max-frequency:
    maximum: 5000000

  cirrus,asp-sdout-hiz-ctrl:
    description:
      Audio serial port SDOUT Hi-Z control. Sets the Hi-Z
      configuration for SDOUT pin of amplifier. Logical OR of
      CS35L45_ASP_TX_HIZ_xxx values.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 3
    default: 2

patternProperties:
  "^cirrus,gpio-ctrl[1-3]$":
    description:
      GPIO pins configuration.
    type: object
    additionalProperties: false
    properties:
      gpio-dir:
        description:
          GPIO pin direction. Valid only when 'gpio-ctrl' is 1
            0 = Output
            1 = Input
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 1
        default: 1
      gpio-lvl:
        description:
          GPIO level. Valid only when 'gpio-ctrl' is 1 and 'gpio-dir' is 0
            0 = Low
            1 = High
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 1
        default: 0
      gpio-op-cfg:
        description:
          GPIO level. Valid only when 'gpio-ctrl' is 1 and 'gpio-dir' is 0
            0 = CMOS
            1 = Open Drain
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 1
        default: 0
      gpio-pol:
        description:
          GPIO output polarity select. Valid only when 'gpio-ctrl' is 1
          and 'gpio-dir' is 0
            0 = Non-inverted, Active High
            1 = Inverted, Active Low
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 1
        default: 0
      gpio-ctrl:
        description:
          Defines the function of the GPIO pin.
          GPIO1
            0 = High impedance input
            1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
            2 = Pin acts as MDSYNC, direction controlled by MDSYNC
            3-7 = Reserved
          GPIO2
            0 = High impedance input
            1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
            2 = Pin acts as open drain INT
            3 = Reserved
            4 = Pin acts as push-pull output INT. Active low.
            5 = Pin acts as push-pull output INT. Active high.
            6,7 = Reserved
          GPIO3
            0 = High impedance input
            1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
            2-7 = Reserved
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 7
        default: 0
required:
  - compatible
  - reg
  - "#sound-dai-cells"

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/sound/cs35l45.h>
    spi {
        #address-cells = <1>;
        #size-cells = <0>;
 
        cs35l45: cs35l45@2 {
          #sound-dai-cells = <1>;
          compatible = "cirrus,cs35l45";
          reg = <2>;
          spi-max-frequency = <5000000>;
          vdd-a-supply = <&dummy_vreg>;
          vdd-batt-supply = <&dummy_vreg>;
          reset-gpios = <&gpio 110 0>;
          cirrus,asp-sdout-hiz-ctrl = <(CS35L45_ASP_TX_HIZ_UNUSED |
                                        CS35L45_ASP_TX_HIZ_DISABLED)>;
          cirrus,gpio-ctrl1 {
             gpio-ctrl = <0x2>;
          };
          cirrus,gpio-ctrl2 {
             gpio-ctrl = <0x2>;
          };
          cirrus,gpio-ctrl3 {
             gpio-ctrl = <0x1>;
             gpio-dir = <0x1>;
          };
        };
    };