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