James Schulman | da16c55 | 2016-11-07 14:38:38 -0600 | [diff] [blame] | 1 | CS42L42 audio CODEC |
| 2 | |
| 3 | Required properties: |
| 4 | |
| 5 | - compatible : "cirrus,cs42l42" |
| 6 | |
| 7 | - reg : the I2C address of the device for I2C. |
| 8 | |
| 9 | - VP-supply, VCP-supply, VD_FILT-supply, VL-supply, VA-supply : |
| 10 | power supplies for the device, as covered in |
| 11 | Documentation/devicetree/bindings/regulator/regulator.txt. |
| 12 | |
| 13 | Optional properties: |
| 14 | |
| 15 | - reset-gpios : a GPIO spec for the reset pin. If specified, it will be |
| 16 | deasserted before communication to the codec starts. |
| 17 | |
James Schulman | da16c55 | 2016-11-07 14:38:38 -0600 | [diff] [blame] | 18 | - interrupts : IRQ line info CS42L42. |
| 19 | (See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt |
| 20 | for further information relating to interrupt properties) |
| 21 | |
Richard Fitzgerald | 2a2df2a | 2021-10-28 15:09:00 +0100 | [diff] [blame] | 22 | - cirrus,ts-inv : Boolean property. Sets the behaviour of the jack plug |
| 23 | detect switch. |
James Schulman | da16c55 | 2016-11-07 14:38:38 -0600 | [diff] [blame] | 24 | |
Richard Fitzgerald | 2a2df2a | 2021-10-28 15:09:00 +0100 | [diff] [blame] | 25 | 0 = (Default) Shorted to tip when unplugged, open when plugged. |
| 26 | This is "inverted tip sense (ITS)" in the datasheet. |
| 27 | |
| 28 | 1 = Open when unplugged, shorted to tip when plugged. |
| 29 | This is "normal tip sense (TS)" in the datasheet. |
James Schulman | da16c55 | 2016-11-07 14:38:38 -0600 | [diff] [blame] | 30 | |
| 31 | - cirrus,ts-dbnc-rise : Debounce the rising edge of TIP_SENSE_PLUG. With no |
| 32 | debounce, the tip sense pin might be noisy on a plug event. |
| 33 | |
| 34 | 0 - 0ms, |
| 35 | 1 - 125ms, |
| 36 | 2 - 250ms, |
| 37 | 3 - 500ms, |
| 38 | 4 - 750ms, |
| 39 | 5 - (Default) 1s, |
| 40 | 6 - 1.25s, |
| 41 | 7 - 1.5s, |
| 42 | |
| 43 | - cirrus,ts-dbnc-fall : Debounce the falling edge of TIP_SENSE_UNPLUG. |
| 44 | With no debounce, the tip sense pin might be noisy on an unplug event. |
| 45 | |
| 46 | 0 - 0ms, |
| 47 | 1 - 125ms, |
| 48 | 2 - 250ms, |
| 49 | 3 - 500ms, |
| 50 | 4 - 750ms, |
| 51 | 5 - (Default) 1s, |
| 52 | 6 - 1.25s, |
| 53 | 7 - 1.5s, |
| 54 | |
| 55 | - cirrus,btn-det-init-dbnce : This sets how long the driver sleeps after |
| 56 | enabling button detection interrupts. After auto-detection and before |
| 57 | servicing button interrupts, the HS bias needs time to settle. If you |
| 58 | don't wait, there is possibility for erroneous button interrupt. |
| 59 | |
| 60 | 0ms - 200ms, |
| 61 | Default = 100ms |
| 62 | |
| 63 | - cirrus,btn-det-event-dbnce : This sets how long the driver delays after |
| 64 | receiving a button press interrupt. With level detect interrupts, you want |
| 65 | to wait a small amount of time to make sure the button press is making a |
| 66 | clean connection with the bias resistors. |
| 67 | |
| 68 | 0ms - 20ms, |
| 69 | Default = 10ms |
| 70 | |
| 71 | - cirrus,bias-lvls : For a level-detect headset button scheme, each button |
| 72 | will bias the mic pin to a certain voltage. To determine which button was |
| 73 | pressed, the driver will compare this biased voltage to sequential, |
| 74 | decreasing voltages and will stop when a comparator is tripped, |
| 75 | indicating a comparator voltage < bias voltage. This value represents a |
| 76 | percentage of the internally generated HS bias voltage. For different |
| 77 | hardware setups, a designer might want to tweak this. This is an array of |
| 78 | descending values for the comparator voltage. |
| 79 | |
| 80 | Array of 4 values |
| 81 | Each 0-63 |
| 82 | < x1 x2 x3 x4 > |
| 83 | Default = < 15 8 4 1> |
| 84 | |
Vitaly Rodionov | c9f2e3c | 2021-05-11 15:52:20 +0100 | [diff] [blame] | 85 | - cirrus,hs-bias-sense-disable: This is boolean property. If present the |
| 86 | HSBIAS sense is disabled. Configures HSBIAS output current sense through |
| 87 | the external 2.21-k resistor. HSBIAS_SENSE is hardware feature to reduce |
| 88 | the potential pop noise during the headset plug out slowly. But on some |
| 89 | platforms ESD voltage will affect it causing test to fail, especially |
| 90 | with CTIA headset type. For different hardware setups, a designer might |
| 91 | want to tweak default behavior. |
James Schulman | da16c55 | 2016-11-07 14:38:38 -0600 | [diff] [blame] | 92 | |
| 93 | Example: |
| 94 | |
| 95 | cs42l42: cs42l42@48 { |
| 96 | compatible = "cirrus,cs42l42"; |
| 97 | reg = <0x48>; |
| 98 | VA-supply = <&dummy_vreg>; |
| 99 | VP-supply = <&dummy_vreg>; |
| 100 | VCP-supply = <&dummy_vreg>; |
| 101 | VD_FILT-supply = <&dummy_vreg>; |
| 102 | VL-supply = <&dummy_vreg>; |
| 103 | |
| 104 | reset-gpios = <&axi_gpio_0 1 0>; |
| 105 | interrupt-parent = <&gpio0>; |
| 106 | interrupts = <55 8> |
| 107 | |
| 108 | cirrus,ts-inv = <0x00>; |
| 109 | cirrus,ts-dbnc-rise = <0x05>; |
| 110 | cirrus,ts-dbnc-fall = <0x00>; |
| 111 | cirrus,btn-det-init-dbnce = <100>; |
| 112 | cirrus,btn-det-event-dbnce = <10>; |
| 113 | cirrus,bias-lvls = <0x0F 0x08 0x04 0x01>; |
| 114 | cirrus,hs-bias-ramp-rate = <0x02>; |
Rob Herring | 791d3ef | 2018-07-23 15:59:44 -0600 | [diff] [blame] | 115 | }; |