1*ac03495dSRichard Fitzgerald# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*ac03495dSRichard Fitzgerald%YAML 1.2 3*ac03495dSRichard Fitzgerald--- 4*ac03495dSRichard Fitzgerald$id: http://devicetree.org/schemas/sound/cirrus,cs48l32.yaml# 5*ac03495dSRichard Fitzgerald$schema: http://devicetree.org/meta-schemas/core.yaml# 6*ac03495dSRichard Fitzgerald 7*ac03495dSRichard Fitzgeraldtitle: Cirrus Logic CS48L32 audio DSP. 8*ac03495dSRichard Fitzgerald 9*ac03495dSRichard Fitzgeraldmaintainers: 10*ac03495dSRichard Fitzgerald - patches@opensource.cirrus.com 11*ac03495dSRichard Fitzgerald 12*ac03495dSRichard Fitzgeralddescription: | 13*ac03495dSRichard Fitzgerald The CS48L32 is a high-performance low-power audio DSP for smartphones and 14*ac03495dSRichard Fitzgerald other portable audio devices. The CS48L32 combines a programmable Halo Core 15*ac03495dSRichard Fitzgerald DSP with a variety of power-efficient fixed-function audio processors. 16*ac03495dSRichard Fitzgerald 17*ac03495dSRichard Fitzgerald See also the binding headers: 18*ac03495dSRichard Fitzgerald 19*ac03495dSRichard Fitzgerald include/dt-bindings/sound/cs48l32.yaml 20*ac03495dSRichard Fitzgerald 21*ac03495dSRichard FitzgeraldallOf: 22*ac03495dSRichard Fitzgerald - $ref: /schemas/spi/spi-peripheral-props.yaml# 23*ac03495dSRichard Fitzgerald - $ref: dai-common.yaml# 24*ac03495dSRichard Fitzgerald 25*ac03495dSRichard Fitzgeraldproperties: 26*ac03495dSRichard Fitzgerald compatible: 27*ac03495dSRichard Fitzgerald enum: 28*ac03495dSRichard Fitzgerald - cirrus,cs48l32 29*ac03495dSRichard Fitzgerald 30*ac03495dSRichard Fitzgerald reg: 31*ac03495dSRichard Fitzgerald description: SPI chip-select number. 32*ac03495dSRichard Fitzgerald maxItems: 1 33*ac03495dSRichard Fitzgerald 34*ac03495dSRichard Fitzgerald spi-max-frequency: 35*ac03495dSRichard Fitzgerald maximum: 25000000 36*ac03495dSRichard Fitzgerald 37*ac03495dSRichard Fitzgerald vdd-a-supply: 38*ac03495dSRichard Fitzgerald description: Regulator supplying VDD_A 39*ac03495dSRichard Fitzgerald 40*ac03495dSRichard Fitzgerald vdd-d-supply: 41*ac03495dSRichard Fitzgerald description: Regulator supplying VDD_D 42*ac03495dSRichard Fitzgerald 43*ac03495dSRichard Fitzgerald vdd-io-supply: 44*ac03495dSRichard Fitzgerald description: Regulator supplying VDD_IO 45*ac03495dSRichard Fitzgerald 46*ac03495dSRichard Fitzgerald vdd-cp-supply: 47*ac03495dSRichard Fitzgerald description: Regulator supplying VDD_CP 48*ac03495dSRichard Fitzgerald 49*ac03495dSRichard Fitzgerald reset-gpios: 50*ac03495dSRichard Fitzgerald description: 51*ac03495dSRichard Fitzgerald One entry specifying the GPIO controlling /RESET. Although optional, 52*ac03495dSRichard Fitzgerald it is strongly recommended to use a hardware reset. 53*ac03495dSRichard Fitzgerald maxItems: 1 54*ac03495dSRichard Fitzgerald 55*ac03495dSRichard Fitzgerald interrupts: 56*ac03495dSRichard Fitzgerald maxItems: 1 57*ac03495dSRichard Fitzgerald 58*ac03495dSRichard Fitzgerald clocks: 59*ac03495dSRichard Fitzgerald items: 60*ac03495dSRichard Fitzgerald - description: The clock supplied on MCLK1 61*ac03495dSRichard Fitzgerald 62*ac03495dSRichard Fitzgerald clock-names: 63*ac03495dSRichard Fitzgerald const: mclk1 64*ac03495dSRichard Fitzgerald 65*ac03495dSRichard Fitzgerald '#sound-dai-cells': 66*ac03495dSRichard Fitzgerald const: 1 67*ac03495dSRichard Fitzgerald 68*ac03495dSRichard Fitzgerald cirrus,in-type: 69*ac03495dSRichard Fitzgerald description: | 70*ac03495dSRichard Fitzgerald A list of input type settings for each ADC input. 71*ac03495dSRichard Fitzgerald Inputs are one of these types: 72*ac03495dSRichard Fitzgerald CS48L32_IN_TYPE_DIFF : analog differential (default) 73*ac03495dSRichard Fitzgerald CS48L32_IN_TYPE_SE : analog single-ended 74*ac03495dSRichard Fitzgerald 75*ac03495dSRichard Fitzgerald The type of the left (L) and right (R) channel on each input is 76*ac03495dSRichard Fitzgerald independently configured, as are the two groups of pins muxable to 77*ac03495dSRichard Fitzgerald the input (referred to in the datasheet as "1" and "2"). 78*ac03495dSRichard Fitzgerald 79*ac03495dSRichard Fitzgerald $ref: /schemas/types.yaml#/definitions/uint32-array 80*ac03495dSRichard Fitzgerald items: 81*ac03495dSRichard Fitzgerald - description: 82*ac03495dSRichard Fitzgerald IN1L_1 analog input type. One of the CS48L32_IN_TYPE_xxx. 83*ac03495dSRichard Fitzgerald minimum: 0 84*ac03495dSRichard Fitzgerald maximum: 1 85*ac03495dSRichard Fitzgerald default: 0 86*ac03495dSRichard Fitzgerald - description: 87*ac03495dSRichard Fitzgerald IN1R_1 analog input type. One of the CS48L32_IN_TYPE_xxx. 88*ac03495dSRichard Fitzgerald minimum: 0 89*ac03495dSRichard Fitzgerald maximum: 1 90*ac03495dSRichard Fitzgerald default: 0 91*ac03495dSRichard Fitzgerald - description: 92*ac03495dSRichard Fitzgerald IN1L_2 analog input type. One of the CS48L32_IN_TYPE_xxx. 93*ac03495dSRichard Fitzgerald minimum: 0 94*ac03495dSRichard Fitzgerald maximum: 1 95*ac03495dSRichard Fitzgerald default: 0 96*ac03495dSRichard Fitzgerald - description: 97*ac03495dSRichard Fitzgerald IN1R_2 analog input type. One of the CS48L32_IN_TYPE_xxx. 98*ac03495dSRichard Fitzgerald minimum: 0 99*ac03495dSRichard Fitzgerald maximum: 1 100*ac03495dSRichard Fitzgerald default: 0 101*ac03495dSRichard Fitzgerald 102*ac03495dSRichard Fitzgerald cirrus,pdm-sup: 103*ac03495dSRichard Fitzgerald description: | 104*ac03495dSRichard Fitzgerald Indicate which MICBIAS output supplies bias to the microphone. 105*ac03495dSRichard Fitzgerald There is one cell per input (IN1, IN2, ...). 106*ac03495dSRichard Fitzgerald 107*ac03495dSRichard Fitzgerald One of the CS48L32_MICBIAS_xxx values. 108*ac03495dSRichard Fitzgerald CS48L32_PDM_SUP_VOUT_MIC : mic biased from VOUT_MIC 109*ac03495dSRichard Fitzgerald CS48L32_PDM_SUP_MICBIAS1 : mic biased from MICBIAS1 110*ac03495dSRichard Fitzgerald 111*ac03495dSRichard Fitzgerald Also see the INn_PDM_SUP field in the datasheet. 112*ac03495dSRichard Fitzgerald $ref: /schemas/types.yaml#/definitions/uint32-array 113*ac03495dSRichard Fitzgerald items: 114*ac03495dSRichard Fitzgerald - description: IN1 PDM supply source 115*ac03495dSRichard Fitzgerald minimum: 0 116*ac03495dSRichard Fitzgerald maximum: 1 117*ac03495dSRichard Fitzgerald default: 0 118*ac03495dSRichard Fitzgerald - description: IN2 PDM supply source 119*ac03495dSRichard Fitzgerald minimum: 0 120*ac03495dSRichard Fitzgerald maximum: 1 121*ac03495dSRichard Fitzgerald default: 0 122*ac03495dSRichard Fitzgerald 123*ac03495dSRichard Fitzgeraldrequired: 124*ac03495dSRichard Fitzgerald - compatible 125*ac03495dSRichard Fitzgerald - reg 126*ac03495dSRichard Fitzgerald - vdd-a-supply 127*ac03495dSRichard Fitzgerald - vdd-d-supply 128*ac03495dSRichard Fitzgerald - vdd-io-supply 129*ac03495dSRichard Fitzgerald - vdd-cp-supply 130*ac03495dSRichard Fitzgerald 131*ac03495dSRichard FitzgeraldadditionalProperties: false 132*ac03495dSRichard Fitzgerald 133*ac03495dSRichard Fitzgeraldexamples: 134*ac03495dSRichard Fitzgerald - | 135*ac03495dSRichard Fitzgerald #include <dt-bindings/sound/cs48l32.h> 136*ac03495dSRichard Fitzgerald 137*ac03495dSRichard Fitzgerald spi@e0006000 { 138*ac03495dSRichard Fitzgerald #address-cells = <1>; 139*ac03495dSRichard Fitzgerald #size-cells = <0>; 140*ac03495dSRichard Fitzgerald reg = <0xe0006000 0x1000>; 141*ac03495dSRichard Fitzgerald 142*ac03495dSRichard Fitzgerald codec@1 { 143*ac03495dSRichard Fitzgerald compatible = "cirrus,cs48l32"; 144*ac03495dSRichard Fitzgerald 145*ac03495dSRichard Fitzgerald reg = <0x1>; 146*ac03495dSRichard Fitzgerald spi-max-frequency = <2500000>; 147*ac03495dSRichard Fitzgerald 148*ac03495dSRichard Fitzgerald vdd-a-supply = <®ulator_1v8>; 149*ac03495dSRichard Fitzgerald vdd-d-supply = <®ulator_1v2>; 150*ac03495dSRichard Fitzgerald vdd-io-supply = <®ulator_1v8>; 151*ac03495dSRichard Fitzgerald vdd-cp-supply = <®ulator_1v8>; 152*ac03495dSRichard Fitzgerald 153*ac03495dSRichard Fitzgerald reset-gpios = <&gpio 0 0>; 154*ac03495dSRichard Fitzgerald 155*ac03495dSRichard Fitzgerald clocks = <&clks 0>; 156*ac03495dSRichard Fitzgerald clock-names = "mclk1"; 157*ac03495dSRichard Fitzgerald 158*ac03495dSRichard Fitzgerald interrupt-parent = <&gpio0>; 159*ac03495dSRichard Fitzgerald interrupts = <56 8>; 160*ac03495dSRichard Fitzgerald 161*ac03495dSRichard Fitzgerald #sound-dai-cells = <1>; 162*ac03495dSRichard Fitzgerald 163*ac03495dSRichard Fitzgerald cirrus,in-type = < 164*ac03495dSRichard Fitzgerald CS48L32_IN_TYPE_DIFF CS48L32_IN_TYPE_DIFF 165*ac03495dSRichard Fitzgerald CS48L32_IN_TYPE_SE CS48L32_IN_TYPE_SE 166*ac03495dSRichard Fitzgerald >; 167*ac03495dSRichard Fitzgerald 168*ac03495dSRichard Fitzgerald cirrus,pdm-sup = < 169*ac03495dSRichard Fitzgerald CS48L32_PDM_SUP_MICBIAS1 CS48L32_PDM_SUP_MICBIAS1 170*ac03495dSRichard Fitzgerald >; 171*ac03495dSRichard Fitzgerald }; 172*ac03495dSRichard Fitzgerald }; 173*ac03495dSRichard Fitzgerald 174*ac03495dSRichard Fitzgerald# 175*ac03495dSRichard Fitzgerald# Minimal config 176*ac03495dSRichard Fitzgerald# 177*ac03495dSRichard Fitzgerald - | 178*ac03495dSRichard Fitzgerald #include <dt-bindings/sound/cs48l32.h> 179*ac03495dSRichard Fitzgerald 180*ac03495dSRichard Fitzgerald spi@e0006000 { 181*ac03495dSRichard Fitzgerald #address-cells = <1>; 182*ac03495dSRichard Fitzgerald #size-cells = <0>; 183*ac03495dSRichard Fitzgerald reg = <0xe0006000 0x1000>; 184*ac03495dSRichard Fitzgerald 185*ac03495dSRichard Fitzgerald codec@1 { 186*ac03495dSRichard Fitzgerald compatible = "cirrus,cs48l32"; 187*ac03495dSRichard Fitzgerald 188*ac03495dSRichard Fitzgerald reg = <0x1>; 189*ac03495dSRichard Fitzgerald 190*ac03495dSRichard Fitzgerald vdd-a-supply = <®ulator_1v8>; 191*ac03495dSRichard Fitzgerald vdd-d-supply = <®ulator_1v2>; 192*ac03495dSRichard Fitzgerald vdd-io-supply = <®ulator_1v8>; 193*ac03495dSRichard Fitzgerald vdd-cp-supply = <®ulator_1v8>; 194*ac03495dSRichard Fitzgerald }; 195*ac03495dSRichard Fitzgerald }; 196