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

qcom,spmi-vadc.yaml (8101B)


      1# SPDX-License-Identifier: GPL-2.0-only
      2%YAML 1.2
      3---
      4$id: http://devicetree.org/schemas/iio/adc/qcom,spmi-vadc.yaml#
      5$schema: http://devicetree.org/meta-schemas/core.yaml#
      6
      7title: Qualcomm's SPMI PMIC ADC
      8
      9maintainers:
     10  - Andy Gross <agross@kernel.org>
     11  - Bjorn Andersson <bjorn.andersson@linaro.org>
     12
     13description: |
     14  SPMI PMIC voltage ADC (VADC) provides interface to clients to read
     15  voltage. The VADC is a 15-bit sigma-delta ADC.
     16  SPMI PMIC5/PMIC7 voltage ADC (ADC) provides interface to clients to read
     17  voltage. The VADC is a 16-bit sigma-delta ADC.
     18
     19properties:
     20  compatible:
     21    oneOf:
     22      - items:
     23          - const: qcom,pms405-adc
     24          - const: qcom,spmi-adc-rev2
     25
     26      - items:
     27          - enum:
     28              - qcom,spmi-vadc
     29              - qcom,spmi-adc5
     30              - qcom,spmi-adc-rev2
     31              - qcom,spmi-adc7
     32
     33  reg:
     34    description: VADC base address in the SPMI PMIC register map
     35    maxItems: 1
     36
     37  '#address-cells':
     38    const: 1
     39
     40  '#size-cells':
     41    const: 0
     42
     43  '#io-channel-cells':
     44    const: 1
     45
     46  interrupts:
     47    maxItems: 1
     48    description:
     49      End of conversion interrupt.
     50
     51required:
     52  - compatible
     53  - reg
     54  - '#address-cells'
     55  - '#size-cells'
     56  - '#io-channel-cells'
     57
     58patternProperties:
     59  "^.*@[0-9a-f]+$":
     60    type: object
     61    description: |
     62      Represents the external channels which are connected to the ADC.
     63      For compatible property "qcom,spmi-vadc" following channels, also known as
     64      reference point channels, are used for result calibration and their channel
     65      configuration nodes should be defined:
     66      VADC_REF_625MV and/or VADC_SPARE1(based on PMIC version) VADC_REF_1250MV,
     67      VADC_GND_REF and VADC_VDD_VADC.
     68
     69    properties:
     70      reg:
     71        maxItems: 1
     72        description: |
     73          ADC channel number.
     74          See include/dt-bindings/iio/qcom,spmi-vadc.h
     75          For PMIC7 ADC, the channel numbers are specified separately per PMIC
     76          in the PMIC-specific files in include/dt-bindings/iio/.
     77
     78      label:
     79        $ref: /schemas/types.yaml#/definitions/string
     80        description: |
     81            ADC input of the platform as seen in the schematics.
     82            For thermistor inputs connected to generic AMUX or GPIO inputs
     83            these can vary across platform for the same pins. Hence select
     84            the platform schematics name for this channel.
     85
     86      qcom,decimation:
     87        $ref: /schemas/types.yaml#/definitions/uint32
     88        description: |
     89            This parameter is used to decrease ADC sampling rate.
     90            Quicker measurements can be made by reducing decimation ratio.
     91
     92      qcom,pre-scaling:
     93        description: |
     94            Used for scaling the channel input signal before the signal is
     95            fed to VADC. The configuration for this node is to know the
     96            pre-determined ratio and use it for post scaling. It is a pair of
     97            integers, denoting the numerator and denominator of the fraction by which
     98            input signal is multiplied. For example, <1 3> indicates the signal is scaled
     99            down to 1/3 of its value before ADC measurement.
    100            If property is not found default value depending on chip will be used.
    101        $ref: /schemas/types.yaml#/definitions/uint32-array
    102        oneOf:
    103          - items:
    104              - const: 1
    105              - enum: [ 1, 3, 4, 6, 20, 8, 10 ]
    106          - items:
    107              - const: 10
    108              - const: 81
    109
    110      qcom,ratiometric:
    111        description: |
    112            Channel calibration type.
    113            - For compatible property "qcom,spmi-vadc", if this property is
    114              specified VADC will use the VDD reference (1.8V) and GND for
    115              channel calibration. If property is not found, channel will be
    116              calibrated with 0.625V and 1.25V reference channels, also
    117              known as absolute calibration.
    118            - For compatible property "qcom,spmi-adc5", "qcom,spmi-adc7" and
    119              "qcom,spmi-adc-rev2", if this property is specified VADC will use
    120              the VDD reference (1.875V) and GND for channel calibration. If
    121              property is not found, channel will be calibrated with 0V and 1.25V
    122              reference channels, also known as absolute calibration.
    123        type: boolean
    124
    125      qcom,hw-settle-time:
    126        $ref: /schemas/types.yaml#/definitions/uint32
    127        description: |
    128            Time between AMUX getting configured and the ADC starting
    129            conversion. The 'hw_settle_time' is an index used from valid values
    130            and programmed in hardware to achieve the hardware settling delay.
    131
    132      qcom,avg-samples:
    133        $ref: /schemas/types.yaml#/definitions/uint32
    134        description: |
    135            Number of samples to be used for measurement.
    136            Averaging provides the option to obtain a single measurement
    137            from the ADC that is an average of multiple samples. The value
    138            selected is 2^(value).
    139
    140    required:
    141      - reg
    142
    143allOf:
    144  - if:
    145      properties:
    146        compatible:
    147          contains:
    148            const: qcom,spmi-vadc
    149
    150    then:
    151      patternProperties:
    152        "^.*@[0-9a-f]+$":
    153          properties:
    154            qcom,decimation:
    155              enum: [ 512, 1024, 2048, 4096 ]
    156              default: 512
    157
    158            qcom,hw-settle-time:
    159              enum: [ 0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1, 2,
    160                      4, 6, 8, 10 ]
    161              default: 0
    162
    163            qcom,avg-samples:
    164              enum: [ 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 ]
    165              default: 1
    166
    167  - if:
    168      properties:
    169        compatible:
    170          contains:
    171            const: qcom,spmi-adc-rev2
    172
    173    then:
    174      patternProperties:
    175        "^.*@[0-9a-f]+$":
    176          properties:
    177            qcom,decimation:
    178              enum: [ 256, 512, 1024 ]
    179              default: 1024
    180
    181            qcom,hw-settle-time:
    182              enum: [ 0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1, 2,
    183                      4, 6, 8, 10 ]
    184              default: 0
    185
    186            qcom,avg-samples:
    187              enum: [ 1, 2, 4, 8, 16 ]
    188              default: 1
    189
    190  - if:
    191      properties:
    192        compatible:
    193          contains:
    194            const: qcom,spmi-adc5
    195
    196    then:
    197      patternProperties:
    198        "^.*@[0-9a-f]+$":
    199          properties:
    200            qcom,decimation:
    201              enum: [ 250, 420, 840 ]
    202              default: 840
    203
    204            qcom,hw-settle-time:
    205              enum: [ 15, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1, 2,
    206                      4, 6, 8, 10, 16, 32, 64, 128 ]
    207              default: 15
    208
    209            qcom,avg-samples:
    210              enum: [ 1, 2, 4, 8, 16 ]
    211              default: 1
    212
    213  - if:
    214      properties:
    215        compatible:
    216          contains:
    217            const: qcom,spmi-adc7
    218
    219    then:
    220      patternProperties:
    221        "^.*@[0-9a-f]+$":
    222          properties:
    223            qcom,decimation:
    224              enum: [ 85, 340, 1360 ]
    225              default: 1360
    226
    227            qcom,hw-settle-time:
    228              enum: [ 15, 100, 200, 300, 400, 500, 600, 700, 1000, 2000, 4000,
    229                      8000, 16000, 32000, 64000, 128000 ]
    230              default: 15
    231
    232            qcom,avg-samples:
    233              enum: [ 1, 2, 4, 8, 16 ]
    234              default: 1
    235
    236additionalProperties: false
    237
    238examples:
    239  - |
    240    spmi_bus {
    241      #address-cells = <1>;
    242      #size-cells = <0>;
    243      /* VADC node */
    244      pmic_vadc: adc@3100 {
    245        compatible = "qcom,spmi-vadc";
    246        reg = <0x3100>;
    247        interrupts = <0x0 0x31 0x0 0x1>;
    248        #address-cells = <1>;
    249        #size-cells = <0>;
    250        #io-channel-cells = <1>;
    251
    252        /* Channel node */
    253        adc-chan@39 {
    254          reg = <0x39>;
    255          qcom,decimation = <512>;
    256          qcom,ratiometric;
    257          qcom,hw-settle-time = <200>;
    258          qcom,avg-samples = <1>;
    259          qcom,pre-scaling = <1 3>;
    260        };
    261
    262        adc-chan@9 {
    263          reg = <0x9>;
    264        };
    265
    266        adc-chan@a {
    267          reg = <0xa>;
    268        };
    269
    270        adc-chan@e {
    271          reg = <0xe>;
    272        };
    273
    274        adc-chan@f {
    275          reg = <0xf>;
    276        };
    277      };
    278    };