[PATCH v3 1/2] dt-bindings: iio: tyhx,hx9023s: Add performance tuning configuration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When hardware design introduces significant sensor data noise,
performance can be improved by adjusting register settings.

Signed-off-by: Yasin Lee <yasin.lee.x@xxxxxxxxx>
---
 .../bindings/iio/proximity/tyhx,hx9023s.yaml       | 195 +++++++++++++++++++++
 1 file changed, 195 insertions(+)

diff --git a/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml b/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml
index 64ce8bc8bd36..af419a3335eb 100644
--- a/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml
+++ b/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml
@@ -28,6 +28,189 @@ properties:
 
   vdd-supply: true
 
+  tyhx,dither:
+    description: Enable spread spectrum function.
+    type: boolean
+
+  tyhx,chop:
+    description: Enable chop function.
+    type: boolean
+
+  tyhx,odr:
+    description: |
+      Defines the sensor scanning period. The values range from 0x00 to 0x1F,
+      corresponding to the following periods.
+      Val: Period
+      0x00: Min (no idle time)
+      0x01: 2 ms
+      0x02: 4 ms
+      0x03: 6 ms
+      0x04: 8 ms
+      0x05: 10 ms
+      0x06: 14 ms
+      0x07: 18 ms
+      0x08: 22 ms
+      0x09: 26 ms
+      0x0A: 30 ms
+      0x0B: 34 ms
+      0x0C: 38 ms
+      0x0D: 42 ms
+      0x0E: 46 ms
+      0x0F: 50 ms
+      0x10: 56 ms
+      0x11: 62 ms
+      0x12: 68 ms
+      0x13: 74 ms
+      0x14: 80 ms
+      0x15: 90 ms
+      0x16: 100 ms
+      0x17: 200 ms
+      0x18: 300 ms
+      0x19: 400 ms
+      0x1A: 600 ms
+      0x1B: 800 ms
+      0x1C: 1000 ms
+      0x1D: 2000 ms
+      0x1E: 3000 ms
+      0x1F: 4000 ms
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0x00
+    maximum: 0x1F
+
+  tyhx,range:
+    description: |
+      Defines the full-scale range for each channel.
+      The values correspond to the following full-scale ranges.
+      Val: Full Scale
+      0x0: 1.25pF
+      0x1: 2.5pF
+      0x2: 3.75pF
+      0x3: 5pF
+      0x4: 0.625pF
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 5
+    maxItems: 5
+
+  tyhx,avg:
+    description: |
+      Defines the ADC averaging value for each channel.
+      The values correspond to the following averages.
+      Val: Avg Number
+      0x0: 1
+      0x1: 2
+      0x2: 4
+      0x3: 8
+      0x4: 16
+      0x5: 32
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 5
+    maxItems: 5
+
+  tyhx,osr:
+    description: |
+      Defines the ADC oversampling rate (OSR) for each channel.
+      The values correspond to the following OSR.
+      Val: OSR
+      0x0: 16
+      0x1: 32
+      0x2: 64
+      0x3: 128
+      0x4: 256
+      0x5: 512
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 5
+    maxItems: 5
+
+  tyhx,sample-num:
+    description: |
+      Defines the ADC sample frequency.
+      The sample frequency can be calculated with the following formula:
+      Fsample = 1.0 / ( sample_num * 200ns ),
+      where `sample_num` is the value in the register in decimal.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0x00
+    maximum: 0xFF
+
+  tyhx,integration-num:
+    description: The integration number should be the same as the `sample-num` above.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0x00
+    maximum: 0xFF
+
+  tyhx,lp-alpha:
+    description: |
+      Defines the coefficient for the first-order low pass filter for each channel.
+      The values correspond to the following coefficients.
+      Val: Coefficient
+      0x0: 1
+      0x1: 1/2
+      0x2: 1/4
+      0x3: 1/8
+      0x4: 1/16
+      0x5: 1/32
+      0x6: 1/64
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 5
+    maxItems: 5
+
+  tyhx,bl-up-alpha:
+    description: |
+      Defines the up coefficient of the first-order low pass filter for each channel.
+      The values correspond to the following coefficients.
+      Val: Coefficient
+      0x0: 0
+      0x1: 1
+      0x2: 1/2
+      0x3: 1/4
+      0x4: 1/8
+      0x5: 1/16
+      0x6: 1/32
+      0x7: 1/64
+      0x8: 1/128
+      0x9: 1/256
+      0xA: 1/512
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 5
+    maxItems: 5
+
+  tyhx,bl-down-alpha:
+    description: |
+      Defines the down coefficient of the first-order low pass filter for each channel.
+      The values correspond to the following coefficients.
+      Val: Coefficient
+      0x0: 0
+      0x1: 1
+      0x2: 1/2
+      0x3: 1/4
+      0x4: 1/8
+      0x5: 1/16
+      0x6: 1/32
+      0x7: 1/64
+      0x8: 1/128
+      0x9: 1/256
+      0xA: 1/512
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 5
+    maxItems: 5
+
+  tyhx,drdy-interrupt:
+    description: Enable the interrupt function of each channel when the conversion is ready.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0x00
+    maximum: 0x1F
+
+  tyhx,int-high-num:
+    description: Defines the Proximity persistency number (Near).
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0x1
+    maximum: 0xF
+
+  tyhx,int-low-num:
+    description: Defines the Proximity persistency number (Far).
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0x1
+    maximum: 0xF
+
   "#address-cells":
     const: 1
 
@@ -65,6 +248,18 @@ examples:
         interrupt-parent = <&pio>;
         interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
         vdd-supply = <&pp1800_prox>;
+        tyhx,odr = <0x17>;
+        tyhx,range = <0x4 0x4 0x4 0x4 0x4>;
+        tyhx,avg = <0x3 0x3 0x3 0x0 0x0>;
+        tyhx,osr = <0x4 0x4 0x4 0x0 0x0>;
+        tyhx,sample-num = <0x65>;
+        tyhx,integration-num = <0x65>;
+        tyhx,lp-alpha = <0x2 0x2 0x2 0x2 0x2>;
+        tyhx,bl-up-alpha = <0x8 0x8 0x8 0x8 0x8>;
+        tyhx,bl-down-alpha = <0x1 0x1 0x1 0x1 0x1>;
+        tyhx,drdy-interrupt = <0x1F>;
+        tyhx,int-high-num = <0x1>;
+        tyhx,int-low-num = <0x1>;
 
         #address-cells = <1>;
         #size-cells = <0>;

-- 
2.43.0





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux