| Cirrus Logic Madera class audio codecs multi-function device |
| |
| These devices are audio SoCs with extensive digital capabilities and a range |
| of analogue I/O. |
| |
| See also the child driver bindings in: |
| bindings/pinctrl/cirrus,madera-pinctrl.txt |
| bindings/regulator/arizona-regulator.txt |
| bindings/sound/madera.txt |
| |
| Required properties: |
| |
| - compatible : One of the following chip-specific strings: |
| "cirrus,cs47l15" |
| "cirrus,cs47l35" |
| "cirrus,cs47l85" |
| "cirrus,cs47l90" |
| "cirrus,cs47l91" |
| "cirrus,cs47l92" |
| "cirrus,cs47l93" |
| "cirrus,wm1840" |
| |
| - reg : I2C slave address when connected using I2C, chip select number when |
| using SPI. |
| |
| - DCVDD-supply : Power supply for the device as defined in |
| bindings/regulator/regulator.txt |
| Mandatory on CS47L15, CS47L35, CS47L90, CS47L91 |
| Optional on CS47L85, WM1840 |
| |
| - AVDD-supply, DBVDD1-supply, DBVDD2-supply, CPVDD1-supply, CPVDD2-supply : |
| Power supplies for the device |
| |
| - DBVDD3-supply, DBVDD4-supply : Power supplies for the device |
| (CS47L85, CS47L90, CS47L91, WM1840) |
| |
| - SPKVDDL-supply, SPKVDDR-supply : Power supplies for the device |
| (CS47L85, WM1840) |
| |
| - SPKVDD-supply : Power supply for the device |
| (CS47L15, CS47L35) |
| |
| - interrupt-controller : Indicates that this device is an interrupt controller |
| |
| - #interrupt-cells: the number of cells to describe an IRQ, must be 2. |
| The first cell is the IRQ number. |
| The second cell is the flags, encoded as the trigger masks from |
| bindings/interrupt-controller/interrupts.txt |
| |
| - gpio-controller : Indicates this device is a GPIO controller. |
| |
| - #gpio-cells : Must be 2. The first cell is the pin number. The second cell |
| is reserved for future use and must be zero |
| |
| - interrupt-parent : The parent interrupt controller. |
| |
| - interrupts : The interrupt line the /IRQ signal for the device is |
| connected to. |
| |
| - pinctrl-names : Name of pinctrl configurations. Each of these is optional. |
| Legal names are: |
| "probe" - external pinctrl dependencies required to probe this codec, |
| typically these are for the reset GPIO and IRQ pin, though |
| could include clocks. Do NOT include configuration of this |
| codec's own GPIO pins because these can't be applied until |
| after the mfd probe has completed. |
| |
| "active" - full set of external and local pinctrl configurations to |
| apply after probe including all the configuration of the GPIO |
| pins on this codec (bindings/pinctrl/cirrus,madera-pinctrl.txt). |
| This must include the external dependencies in the "probe" |
| configuration, since they will still be required after probe. |
| |
| Do not use "default" since it is applied too early before the mfd has |
| fully probed the codec. |
| |
| - pinctrl-0, pinctrl-1 : handle to pinctrl configurations matching the |
| entries in pinctrl-names |
| |
| Optional properties: |
| |
| - MICVDD-supply : Power supply, only need to be specified if |
| powered externally |
| |
| - reset-gpios : One entry specifying the GPIO controlling /RESET. |
| As defined in bindings/gpio.txt. |
| Although optional, it is strongly recommended to use a hardware reset |
| |
| - MICBIASx : Initial data for the MICBIAS regulators, as covered in |
| Documentation/devicetree/bindings/regulator/regulator.txt. |
| One for each MICBIAS generator (MICBIAS1, MICBIAS2, ...) |
| (all codecs) |
| |
| One for each output pin (MICBIAS1A, MIBCIAS1B, MICBIAS2A, ...) |
| (all except CS47L85, WM1840) |
| |
| The following following additional property is supported for the generator |
| nodes: |
| - cirrus,ext-cap : Set to 1 if the MICBIAS has external decoupling |
| capacitors attached. |
| |
| Optional child nodes: |
| micvdd : Node containing initialization data for the micvdd regulator |
| See bindings/regulator/arizona-regulator.txt |
| |
| ldo1 : Node containing initialization data for the LDO1 regulator |
| See bindings/regulator/arizona-regulator.txt |
| (cs47l85, wm1840) |
| |
| Example: |
| |
| cs47l85@0 { |
| compatible = "cirrus,cs47l85"; |
| reg = <0>; |
| |
| reset-gpios = <&gpio 0>; |
| |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| interrupts = <&host_irq1>; |
| interrupt-parent = <&gic>; |
| |
| gpio-controller; |
| #gpio-cells = <2>; |
| |
| pinctrl-names = "probe", "active"; |
| pinctrl-0 = <&gpio_0_enable_state>; |
| pinctrl-1 = <&gpio_0_enable_state &cs47l85_gpio_config>; |
| |
| cs47l85_gpio_config: cs47l85-gpio-config { |
| aif1 { |
| groups = "aif1"; |
| function = "aif1"; |
| bias-bus-hold; |
| }; |
| }; |
| |
| MICBIAS1 { |
| regulator-min-microvolt = <900000>; |
| regulator-max-microvolt = <3300000>; |
| cirrus,ext-cap = <1>; |
| }; |
| }; |
| |