1*eba5a0baSNeil Armstrong# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*eba5a0baSNeil Armstrong%YAML 1.2 3*eba5a0baSNeil Armstrong--- 4*eba5a0baSNeil Armstrong$id: http://devicetree.org/schemas/sound/realtek,rt5640.yaml# 5*eba5a0baSNeil Armstrong$schema: http://devicetree.org/meta-schemas/core.yaml# 6*eba5a0baSNeil Armstrong 7*eba5a0baSNeil Armstrongtitle: RT5640/RT5639 audio CODEC 8*eba5a0baSNeil Armstrong 9*eba5a0baSNeil Armstrongmaintainers: 10*eba5a0baSNeil Armstrong - Neil Armstrong <neil.armstrong@linaro.org> 11*eba5a0baSNeil Armstrong 12*eba5a0baSNeil Armstrongdescription: | 13*eba5a0baSNeil Armstrong This device supports I2C only. 14*eba5a0baSNeil Armstrong 15*eba5a0baSNeil Armstrong Pins on the device (for linking into audio routes) for RT5639/RT5640: 16*eba5a0baSNeil Armstrong * DMIC1 17*eba5a0baSNeil Armstrong * DMIC2 18*eba5a0baSNeil Armstrong * MICBIAS1 19*eba5a0baSNeil Armstrong * IN1P 20*eba5a0baSNeil Armstrong * IN1N 21*eba5a0baSNeil Armstrong * IN2P 22*eba5a0baSNeil Armstrong * IN2N 23*eba5a0baSNeil Armstrong * IN3P 24*eba5a0baSNeil Armstrong * IN3N 25*eba5a0baSNeil Armstrong * HPOL 26*eba5a0baSNeil Armstrong * HPOR 27*eba5a0baSNeil Armstrong * LOUTL 28*eba5a0baSNeil Armstrong * LOUTR 29*eba5a0baSNeil Armstrong * SPOLP 30*eba5a0baSNeil Armstrong * SPOLN 31*eba5a0baSNeil Armstrong * SPORP 32*eba5a0baSNeil Armstrong * SPORN 33*eba5a0baSNeil Armstrong 34*eba5a0baSNeil Armstrong Additional pins on the device for RT5640: 35*eba5a0baSNeil Armstrong * MONOP 36*eba5a0baSNeil Armstrong * MONON 37*eba5a0baSNeil Armstrong 38*eba5a0baSNeil ArmstrongallOf: 39*eba5a0baSNeil Armstrong - $ref: dai-common.yaml# 40*eba5a0baSNeil Armstrong 41*eba5a0baSNeil Armstrongproperties: 42*eba5a0baSNeil Armstrong compatible: 43*eba5a0baSNeil Armstrong enum: 44*eba5a0baSNeil Armstrong - realtek,rt5640 45*eba5a0baSNeil Armstrong - realtek,rt5639 46*eba5a0baSNeil Armstrong 47*eba5a0baSNeil Armstrong reg: 48*eba5a0baSNeil Armstrong maxItems: 1 49*eba5a0baSNeil Armstrong 50*eba5a0baSNeil Armstrong interrupts: 51*eba5a0baSNeil Armstrong maxItems: 1 52*eba5a0baSNeil Armstrong description: The CODEC's interrupt output. 53*eba5a0baSNeil Armstrong 54*eba5a0baSNeil Armstrong realtek,in1-differential: 55*eba5a0baSNeil Armstrong description: 56*eba5a0baSNeil Armstrong Indicate MIC1 input is differential, rather than single-ended. 57*eba5a0baSNeil Armstrong type: boolean 58*eba5a0baSNeil Armstrong 59*eba5a0baSNeil Armstrong realtek,in2-differential: 60*eba5a0baSNeil Armstrong description: 61*eba5a0baSNeil Armstrong Indicate MIC2 input is differential, rather than single-ended. 62*eba5a0baSNeil Armstrong type: boolean 63*eba5a0baSNeil Armstrong 64*eba5a0baSNeil Armstrong realtek,in3-differential: 65*eba5a0baSNeil Armstrong description: 66*eba5a0baSNeil Armstrong Indicate MIC3 input is differential, rather than single-ended. 67*eba5a0baSNeil Armstrong type: boolean 68*eba5a0baSNeil Armstrong 69*eba5a0baSNeil Armstrong realtek,lout-differential: 70*eba5a0baSNeil Armstrong description: 71*eba5a0baSNeil Armstrong Indicate LOUT output is differential, rather than single-ended. 72*eba5a0baSNeil Armstrong type: boolean 73*eba5a0baSNeil Armstrong 74*eba5a0baSNeil Armstrong realtek,dmic1-data-pin: 75*eba5a0baSNeil Armstrong description: Specify which pin to be used as DMIC1 data pin. 76*eba5a0baSNeil Armstrong $ref: /schemas/types.yaml#/definitions/uint32 77*eba5a0baSNeil Armstrong enum: 78*eba5a0baSNeil Armstrong - 0 # dmic1 is not used 79*eba5a0baSNeil Armstrong - 1 # using IN2P pin as dmic1 data pin 80*eba5a0baSNeil Armstrong - 2 # using GPIO3 pin as dmic1 data pin 81*eba5a0baSNeil Armstrong 82*eba5a0baSNeil Armstrong realtek,dmic2-data-pin: 83*eba5a0baSNeil Armstrong description: Specify which pin to be used as DMIC2 data pin. 84*eba5a0baSNeil Armstrong $ref: /schemas/types.yaml#/definitions/uint32 85*eba5a0baSNeil Armstrong enum: 86*eba5a0baSNeil Armstrong - 0 # dmic2 is not used 87*eba5a0baSNeil Armstrong - 1 # using IN2N pin as dmic2 data pin 88*eba5a0baSNeil Armstrong - 2 # using GPIO4 pin as dmic2 data pin 89*eba5a0baSNeil Armstrong 90*eba5a0baSNeil Armstrong realtek,jack-detect-source: 91*eba5a0baSNeil Armstrong description: The Jack Detect source. 92*eba5a0baSNeil Armstrong $ref: /schemas/types.yaml#/definitions/uint32 93*eba5a0baSNeil Armstrong enum: 94*eba5a0baSNeil Armstrong - 0 # Jack Detect function is not used 95*eba5a0baSNeil Armstrong - 1 # Use GPIO1 for jack-detect 96*eba5a0baSNeil Armstrong - 2 # Use JD1_IN4P for jack-detect 97*eba5a0baSNeil Armstrong - 3 # Use JD2_IN4N for jack-detect 98*eba5a0baSNeil Armstrong - 4 # Use GPIO2 for jack-detect 99*eba5a0baSNeil Armstrong - 5 # Use GPIO3 for jack-detect 100*eba5a0baSNeil Armstrong - 6 # Use GPIO4 for jack-detect 101*eba5a0baSNeil Armstrong 102*eba5a0baSNeil Armstrong realtek,jack-detect-not-inverted: 103*eba5a0baSNeil Armstrong description: 104*eba5a0baSNeil Armstrong Normal jack-detect switches give an inverted signal, set this bool 105*eba5a0baSNeil Armstrong in the rare case you've a jack-detect switch which is not inverted. 106*eba5a0baSNeil Armstrong type: boolean 107*eba5a0baSNeil Armstrong 108*eba5a0baSNeil Armstrong realtek,over-current-threshold-microamp: 109*eba5a0baSNeil Armstrong description: micbias over-current detection threshold in µA 110*eba5a0baSNeil Armstrong enum: 111*eba5a0baSNeil Armstrong - 600 112*eba5a0baSNeil Armstrong - 1500 113*eba5a0baSNeil Armstrong - 2000 114*eba5a0baSNeil Armstrong 115*eba5a0baSNeil Armstrong realtek,over-current-scale-factor: 116*eba5a0baSNeil Armstrong description: micbias over-current detection scale-factor 117*eba5a0baSNeil Armstrong $ref: /schemas/types.yaml#/definitions/uint32 118*eba5a0baSNeil Armstrong enum: 119*eba5a0baSNeil Armstrong - 0 # Scale current by 0.5 120*eba5a0baSNeil Armstrong - 1 # Scale current by 0.75 121*eba5a0baSNeil Armstrong - 2 # Scale current by 1.0 122*eba5a0baSNeil Armstrong - 3 # Scale current by 1.5 123*eba5a0baSNeil Armstrong 124*eba5a0baSNeil Armstrongrequired: 125*eba5a0baSNeil Armstrong - compatible 126*eba5a0baSNeil Armstrong - reg 127*eba5a0baSNeil Armstrong - interrupts 128*eba5a0baSNeil Armstrong 129*eba5a0baSNeil ArmstrongunevaluatedProperties: false 130*eba5a0baSNeil Armstrong 131*eba5a0baSNeil Armstrongexamples: 132*eba5a0baSNeil Armstrong - | 133*eba5a0baSNeil Armstrong #include <dt-bindings/gpio/gpio.h> 134*eba5a0baSNeil Armstrong #include <dt-bindings/interrupt-controller/irq.h> 135*eba5a0baSNeil Armstrong 136*eba5a0baSNeil Armstrong i2c { 137*eba5a0baSNeil Armstrong #address-cells = <1>; 138*eba5a0baSNeil Armstrong #size-cells = <0>; 139*eba5a0baSNeil Armstrong 140*eba5a0baSNeil Armstrong codec@1a { 141*eba5a0baSNeil Armstrong compatible = "realtek,rt5640"; 142*eba5a0baSNeil Armstrong reg = <0x1a>; 143*eba5a0baSNeil Armstrong interrupt-parent = <&gpio>; 144*eba5a0baSNeil Armstrong interrupts = <7 IRQ_TYPE_EDGE_FALLING>; 145*eba5a0baSNeil Armstrong }; 146*eba5a0baSNeil Armstrong }; 147