cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

cs35l35.txt (6180B)


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