Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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