1ed864461SBrian AustinCS35L35 Boosted Speaker Amplifier 2ed864461SBrian Austin 3ed864461SBrian AustinRequired properties: 4ed864461SBrian Austin 5ed864461SBrian Austin - compatible : "cirrus,cs35l35" 6ed864461SBrian Austin 7ed864461SBrian Austin - reg : the I2C address of the device for I2C 8ed864461SBrian Austin 9ed864461SBrian Austin - VA-supply, VP-supply : power supplies for the device, 10ed864461SBrian Austin as covered in 11ed864461SBrian Austin Documentation/devicetree/bindings/regulator/regulator.txt. 12ed864461SBrian Austin 13ed864461SBrian Austin - interrupts : IRQ line info CS35L35. 14ed864461SBrian Austin (See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt 15ed864461SBrian Austin for further information relating to interrupt properties) 16ed864461SBrian Austin 17cff7597aSBrian Austin - cirrus,boost-ind-nanohenry: Inductor value for boost converter. The value is 18cff7597aSBrian Austin in nH and they can be values of 1000nH, 1200nH, 1500nH, and 2200nH. 19cff7597aSBrian Austin 20ed864461SBrian AustinOptional properties: 21ed864461SBrian Austin - reset-gpios : gpio used to reset the amplifier 22ed864461SBrian Austin 23ed864461SBrian Austin - cirrus,stereo-config : Boolean to determine if there are 2 AMPs for a 24ed864461SBrian Austin Stereo configuration 25ed864461SBrian Austin 26ed864461SBrian Austin - cirrus,audio-channel : Set Location of Audio Signal on Serial Port 27ed864461SBrian Austin 0 = Data Packet received on Left I2S Channel 28ed864461SBrian Austin 1 = Data Packet received on Right I2S Channel 29ed864461SBrian Austin 30ed864461SBrian Austin - cirrus,advisory-channel : Set Location of Advisory Signal on Serial Port 31ed864461SBrian Austin 0 = Data Packet received on Left I2S Channel 32ed864461SBrian Austin 1 = Data Packet received on Right I2S Channel 33ed864461SBrian Austin 34ed864461SBrian Austin - cirrus,shared-boost : Boolean to enable ClassH tracking of Advisory Signal 35ed864461SBrian Austin if 2 Devices share Boost BST_CTL 36ed864461SBrian Austin 370c67fb55SCharles Keepax - cirrus,external-boost : Boolean to specify the device is using an external 380c67fb55SCharles Keepax boost supply, note that sharing a boost from another cs35l35 would constitute 390c67fb55SCharles Keepax using an external supply for the slave device 400c67fb55SCharles Keepax 41ed864461SBrian Austin - cirrus,sp-drv-strength : Value for setting the Serial Port drive strength 42ed864461SBrian Austin Table 3-10 of the datasheet lists drive-strength specifications 43ed864461SBrian Austin 0 = 1x (Default) 44ed864461SBrian Austin 1 = .5x 4545114c36SCharles Keepax - cirrus,sp-drv-unused : Determines how unused slots should be driven on the 4645114c36SCharles Keepax Serial Port. 4745114c36SCharles Keepax 0 - Hi-Z 4845114c36SCharles Keepax 2 - Drive 0's (Default) 4945114c36SCharles Keepax 3 - Drive 1's 50ed864461SBrian Austin 51ed864461SBrian Austin - cirrus,bst-pdn-fet-on : Boolean to determine if the Boost PDN control 52ed864461SBrian Austin powers down with a rectification FET On or Off. If VSPK is supplied 53ed864461SBrian Austin externally then FET is off. 54ed864461SBrian Austin 55ed864461SBrian Austin - cirrus,boost-ctl-millivolt : Boost Voltage Value. Configures the boost 56ed864461SBrian Austin converter's output voltage in mV. The range is from 2600mV to 9000mV with 57ed864461SBrian Austin increments of 100mV. 58ed864461SBrian Austin (Default) VP 59ed864461SBrian Austin 60ed864461SBrian Austin - cirrus,boost-peak-milliamp : Boost-converter peak current limit in mA. 61ed864461SBrian Austin Configures the peak current by monitoring the current through the boost FET. 62ed864461SBrian Austin Range starts at 1680mA and goes to a maximum of 4480mA with increments of 63ed864461SBrian Austin 110mA. 64ed864461SBrian Austin (Default) 2.46 Amps 65ed864461SBrian Austin 66ed864461SBrian Austin - cirrus,amp-gain-zc : Boolean to determine if to use Amplifier gain-change 67ed864461SBrian Austin zero-cross 68ed864461SBrian Austin 69ed864461SBrian AustinOptional H/G Algorithm sub-node: 70ed864461SBrian Austin 71ed864461SBrian Austin The cs35l35 node can have a single "cirrus,classh-internal-algo" sub-node 72ed864461SBrian Austin that will disable automatic control of the internal H/G Algorithm. 73ed864461SBrian Austin 74ed864461SBrian Austin It is strongly recommended that the Datasheet be referenced when adjusting 75ed864461SBrian Austin or using these Class H Algorithm controls over the internal Algorithm. 76ed864461SBrian Austin Serious damage can occur to the Device and surrounding components. 77ed864461SBrian Austin 78ed864461SBrian Austin - cirrus,classh-internal-algo : Sub-node for the Internal Class H Algorithm 79ed864461SBrian Austin See Section 4.3 Internal Class H Algorithm in the Datasheet. 80ed864461SBrian Austin If not used, the device manages the ClassH Algorithm internally. 81ed864461SBrian Austin 82ed864461SBrian AustinOptional properties for the "cirrus,classh-internal-algo" Sub-node 83ed864461SBrian Austin 84ed864461SBrian Austin Section 7.29 Class H Control 85ed864461SBrian Austin - cirrus,classh-bst-overide : Boolean 86ed864461SBrian Austin - cirrus,classh-bst-max-limit 87ed864461SBrian Austin - cirrus,classh-mem-depth 88ed864461SBrian Austin 89ed864461SBrian Austin Section 7.30 Class H Headroom Control 90ed864461SBrian Austin - cirrus,classh-headroom 91ed864461SBrian Austin 92ed864461SBrian Austin Section 7.31 Class H Release Rate 93ed864461SBrian Austin - cirrus,classh-release-rate 94ed864461SBrian Austin 95ed864461SBrian Austin Section 7.32 Class H Weak FET Drive Control 96ed864461SBrian Austin - cirrus,classh-wk-fet-disable 97ed864461SBrian Austin - cirrus,classh-wk-fet-delay 98ed864461SBrian Austin - cirrus,classh-wk-fet-thld 99ed864461SBrian Austin 100ed864461SBrian Austin Section 7.34 Class H VP Control 101ed864461SBrian Austin - cirrus,classh-vpch-auto 102ed864461SBrian Austin - cirrus,classh-vpch-rate 103ed864461SBrian Austin - cirrus,classh-vpch-man 104ed864461SBrian Austin 105ed864461SBrian AustinOptional Monitor Signal Format sub-node: 106ed864461SBrian Austin 107ed864461SBrian Austin The cs35l35 node can have a single "cirrus,monitor-signal-format" sub-node 108ed864461SBrian Austin for adjusting the Depth, Location and Frame of the Monitoring Signals 109ed864461SBrian Austin for Algorithms. 110ed864461SBrian Austin 111ed864461SBrian Austin See Sections 4.8.2 through 4.8.4 Serial-Port Control in the Datasheet 112ed864461SBrian Austin 113*47aab533SBjorn Helgaas -cirrus,monitor-signal-format : Sub-node for the Monitor Signaling Formatting 114ed864461SBrian Austin on the I2S Port. Each of the 3 8 bit values in the array contain the settings 115ed864461SBrian Austin for depth, location, and frame. 116ed864461SBrian Austin 117ed864461SBrian Austin If not used, the defaults for the 6 monitor signals is used. 118ed864461SBrian Austin 119ed864461SBrian Austin Sections 7.44 - 7.53 lists values for the depth, location, and frame 120ed864461SBrian Austin for each monitoring signal. 121ed864461SBrian Austin 12206bdf385SCharles Keepax - cirrus,imon : 4 8 bit values to set the depth, location, frame and ADC 12306bdf385SCharles Keepax scale of the IMON monitor signal. 124ed864461SBrian Austin 125ed864461SBrian Austin - cirrus,vmon : 3 8 bit values to set the depth, location, and frame 126ed864461SBrian Austin of the VMON monitor signal. 127ed864461SBrian Austin 128ed864461SBrian Austin - cirrus,vpmon : 3 8 bit values to set the depth, location, and frame 129ed864461SBrian Austin of the VPMON monitor signal. 130ed864461SBrian Austin 131ed864461SBrian Austin - cirrus,vbstmon : 3 8 bit values to set the depth, location, and frame 132ed864461SBrian Austin of the VBSTMON monitor signal 133ed864461SBrian Austin 134ed864461SBrian Austin - cirrus,vpbrstat : 3 8 bit values to set the depth, location, and frame 135ed864461SBrian Austin of the VPBRSTAT monitor signal 136ed864461SBrian Austin 137ed864461SBrian Austin - cirrus,zerofill : 3 8 bit values to set the depth, location, and frame\ 138ed864461SBrian Austin of the ZEROFILL packet in the monitor signal 139ed864461SBrian Austin 140ed864461SBrian AustinExample: 141ed864461SBrian Austin 142ed864461SBrian Austincs35l35: cs35l35@20 { 143ed864461SBrian Austin compatible = "cirrus,cs35l35"; 144ed864461SBrian Austin reg = <0x20>; 145ed864461SBrian Austin VA-supply = <&dummy_vreg>; 146ed864461SBrian Austin VP-supply = <&dummy_vreg>; 147ed864461SBrian Austin reset-gpios = <&axi_gpio 54 0>; 148ed864461SBrian Austin interrupt-parent = <&gpio8>; 149ed864461SBrian Austin interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 150ed864461SBrian Austin cirrus,boost-ctl-millivolt = <9000>; 151ed864461SBrian Austin 152ed864461SBrian Austin cirrus,stereo-config; 153ed864461SBrian Austin cirrus,audio-channel = <0x00>; 154ed864461SBrian Austin cirrus,advisory-channel = <0x01>; 155ed864461SBrian Austin cirrus,shared-boost; 156ed864461SBrian Austin 157ed864461SBrian Austin cirrus,classh-internal-algo { 158ed864461SBrian Austin cirrus,classh-bst-overide; 159ed864461SBrian Austin cirrus,classh-bst-max-limit = <0x01>; 160ed864461SBrian Austin cirrus,classh-mem-depth = <0x01>; 161ed864461SBrian Austin cirrus,classh-release-rate = <0x08>; 162ed864461SBrian Austin cirrus,classh-headroom-millivolt = <0x0B>; 163ed864461SBrian Austin cirrus,classh-wk-fet-disable = <0x01>; 164ed864461SBrian Austin cirrus,classh-wk-fet-delay = <0x04>; 165ed864461SBrian Austin cirrus,classh-wk-fet-thld = <0x01>; 166ed864461SBrian Austin cirrus,classh-vpch-auto = <0x01>; 167ed864461SBrian Austin cirrus,classh-vpch-rate = <0x02>; 168ed864461SBrian Austin cirrus,classh-vpch-man = <0x05>; 169ed864461SBrian Austin }; 170ed864461SBrian Austin 171ed864461SBrian Austin /* Depth, Location, Frame */ 172ed864461SBrian Austin cirrus,monitor-signal-format { 173ed864461SBrian Austin cirrus,imon = /bits/ 8 <0x03 0x00 0x01>; 174ed864461SBrian Austin cirrus,vmon = /bits/ 8 <0x03 0x00 0x00>; 175ed864461SBrian Austin cirrus,vpmon = /bits/ 8 <0x03 0x04 0x00>; 176ed864461SBrian Austin cirrus,vbstmon = /bits/ 8 <0x03 0x04 0x01>; 177ed864461SBrian Austin cirrus,vpbrstat = /bits/ 8 <0x00 0x04 0x00>; 178ed864461SBrian Austin cirrus,zerofill = /bits/ 8 <0x00 0x00 0x00>; 179ed864461SBrian Austin }; 180ed864461SBrian Austin 181ed864461SBrian Austin}; 182