* [PATCH 0/2] iio: proximity: hx9023s: Add performance tuning function
@ 2024-09-23 1:16 Yasin Lee
2024-09-23 1:16 ` [PATCH 1/2] dt-bindings: iio: tyhx,hx9023s: Add performance tuning configuration Yasin Lee
2024-09-23 1:16 ` [PATCH 2/2] iio: proximity: hx9023s: Add performance tuning function Yasin Lee
0 siblings, 2 replies; 5+ messages in thread
From: Yasin Lee @ 2024-09-23 1:16 UTC (permalink / raw)
To: Jonathan Cameron, Lars-Peter Clausen, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-iio, devicetree, linux-kernel, Yasin Lee
When hardware design introduces significant sensor data noise,
performance can be improved by adjusting register settings.
Signed-off-by: Yasin Lee <yasin.lee.x@gmail.com>
---
Yasin Lee (2):
dt-bindings: iio: tyhx,hx9023s: Add performance tuning configuration
iio: proximity: hx9023s: Add performance tuning function
.../bindings/iio/proximity/tyhx,hx9023s.yaml | 14 ++++++++
drivers/iio/proximity/hx9023s.c | 37 ++++++++++++++++++++++
2 files changed, 51 insertions(+)
---
base-commit: 7f6f44a9e58cd19093b544423bc04e1d668ec341
change-id: 20240923-add-performance-tuning-configuration-e2016e4d6e02
Best regards,
--
Yasin Lee <yasin.lee.x@gmail.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] dt-bindings: iio: tyhx,hx9023s: Add performance tuning configuration
2024-09-23 1:16 [PATCH 0/2] iio: proximity: hx9023s: Add performance tuning function Yasin Lee
@ 2024-09-23 1:16 ` Yasin Lee
2024-09-24 21:59 ` Rob Herring
2024-09-23 1:16 ` [PATCH 2/2] iio: proximity: hx9023s: Add performance tuning function Yasin Lee
1 sibling, 1 reply; 5+ messages in thread
From: Yasin Lee @ 2024-09-23 1:16 UTC (permalink / raw)
To: Jonathan Cameron, Lars-Peter Clausen, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-iio, devicetree, linux-kernel, Yasin Lee
When hardware design introduces significant sensor data noise,
performance can be improved by adjusting register settings.
Signed-off-by: Yasin Lee <yasin.lee.x@gmail.com>
---
.../devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml b/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml
index 64ce8bc8bd36..417fbc0bb205 100644
--- a/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml
+++ b/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml
@@ -28,6 +28,13 @@ properties:
vdd-supply: true
+ tyhx,performance-tuning:
+ description:
+ Optional, When hardware design introduces significant sensor data noise,
+ performance can be improved by adjusting register settings, including
+ but not limited to sample integration time and average sample count.
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+
"#address-cells":
const: 1
@@ -65,6 +72,13 @@ examples:
interrupt-parent = <&pio>;
interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
vdd-supply = <&pp1800_prox>;
+ tyhx,performance-tuning = [00 00
+ 02 17
+ 0D 44
+ 0E 44
+ 0F 04
+ 1F 65
+ 21 65];
#address-cells = <1>;
#size-cells = <0>;
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] iio: proximity: hx9023s: Add performance tuning function
2024-09-23 1:16 [PATCH 0/2] iio: proximity: hx9023s: Add performance tuning function Yasin Lee
2024-09-23 1:16 ` [PATCH 1/2] dt-bindings: iio: tyhx,hx9023s: Add performance tuning configuration Yasin Lee
@ 2024-09-23 1:16 ` Yasin Lee
1 sibling, 0 replies; 5+ messages in thread
From: Yasin Lee @ 2024-09-23 1:16 UTC (permalink / raw)
To: Jonathan Cameron, Lars-Peter Clausen, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-iio, devicetree, linux-kernel, Yasin Lee
When hardware design introduces significant sensor data noise,
performance can be improved by adjusting register settings.
Signed-off-by: Yasin Lee <yasin.lee.x@gmail.com>
---
drivers/iio/proximity/hx9023s.c | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/drivers/iio/proximity/hx9023s.c b/drivers/iio/proximity/hx9023s.c
index 8b9f84400e00..963da240c9b9 100644
--- a/drivers/iio/proximity/hx9023s.c
+++ b/drivers/iio/proximity/hx9023s.c
@@ -582,6 +582,39 @@ static int hx9023s_ch_en(struct hx9023s_data *data, u8 ch_id, bool en)
return regmap_write(data->regmap, HX9023S_CH_NUM_CFG, data->ch_en_stat);
}
+static int hx9023s_performance_tuning(struct hx9023s_data *data)
+{
+ int ret;
+ u32 i, len;
+ u8 *reg_init;
+ u8 reg, val;
+ struct device *dev = regmap_get_device(data->regmap);
+ struct fwnode_handle *fwnode = dev_fwnode(dev);
+
+ ret = fwnode_property_read_u8_array(fwnode, "tyhx,performance-tuning", NULL, 0);
+ if (ret < 0)
+ return ret;
+
+ len = ret;
+ reg_init = devm_kmalloc(dev, len, GFP_KERNEL);
+ if (!reg_init)
+ return -ENOMEM;
+
+ ret = fwnode_property_read_u8_array(fwnode, "tyhx,performance-tuning", reg_init, len);
+ if (ret < 0)
+ return ret;
+
+ for (i = 0; i < len; i += 2) {
+ reg = reg_init[i];
+ val = reg_init[i + 1];
+ ret = regmap_write(data->regmap, reg, val);
+ if (ret)
+ return ret;
+ }
+
+ return ret;
+}
+
static int hx9023s_property_get(struct hx9023s_data *data)
{
struct device *dev = regmap_get_device(data->regmap);
@@ -1045,6 +1078,10 @@ static int hx9023s_probe(struct i2c_client *client)
if (ret)
return dev_err_probe(dev, ret, "channel config failed\n");
+ ret = hx9023s_performance_tuning(data);
+ if (ret)
+ dev_warn(dev, "performance tuning not configured\n");
+
ret = regcache_sync(data->regmap);
if (ret)
return dev_err_probe(dev, ret, "regcache sync failed\n");
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] dt-bindings: iio: tyhx,hx9023s: Add performance tuning configuration
2024-09-23 1:16 ` [PATCH 1/2] dt-bindings: iio: tyhx,hx9023s: Add performance tuning configuration Yasin Lee
@ 2024-09-24 21:59 ` Rob Herring
2024-09-25 16:38 ` Yasin Lee
0 siblings, 1 reply; 5+ messages in thread
From: Rob Herring @ 2024-09-24 21:59 UTC (permalink / raw)
To: Yasin Lee
Cc: Jonathan Cameron, Lars-Peter Clausen, Krzysztof Kozlowski,
Conor Dooley, linux-iio, devicetree, linux-kernel
On Mon, Sep 23, 2024 at 09:16:10AM +0800, Yasin Lee wrote:
> When hardware design introduces significant sensor data noise,
> performance can be improved by adjusting register settings.
>
> Signed-off-by: Yasin Lee <yasin.lee.x@gmail.com>
> ---
> .../devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml b/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml
> index 64ce8bc8bd36..417fbc0bb205 100644
> --- a/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml
> +++ b/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml
> @@ -28,6 +28,13 @@ properties:
>
> vdd-supply: true
>
> + tyhx,performance-tuning:
> + description:
> + Optional, When hardware design introduces significant sensor data noise,
> + performance can be improved by adjusting register settings, including
> + but not limited to sample integration time and average sample count.
> + $ref: /schemas/types.yaml#/definitions/uint8-array
1 byte is valid? What about 10000? Add some constraints on the array
size and the values if possible
> +
> "#address-cells":
> const: 1
>
> @@ -65,6 +72,13 @@ examples:
> interrupt-parent = <&pio>;
> interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
> vdd-supply = <&pp1800_prox>;
> + tyhx,performance-tuning = [00 00
> + 02 17
> + 0D 44
> + 0E 44
> + 0F 04
> + 1F 65
> + 21 65];
>
> #address-cells = <1>;
> #size-cells = <0>;
>
> --
> 2.43.0
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] dt-bindings: iio: tyhx,hx9023s: Add performance tuning configuration
2024-09-24 21:59 ` Rob Herring
@ 2024-09-25 16:38 ` Yasin Lee
0 siblings, 0 replies; 5+ messages in thread
From: Yasin Lee @ 2024-09-25 16:38 UTC (permalink / raw)
To: Rob Herring
Cc: Jonathan Cameron, Lars-Peter Clausen, Krzysztof Kozlowski,
Conor Dooley, linux-iio, devicetree, linux-kernel
On 9/25/24 05:59, Rob Herring wrote:
> On Mon, Sep 23, 2024 at 09:16:10AM +0800, Yasin Lee wrote:
>> When hardware design introduces significant sensor data noise,
>> performance can be improved by adjusting register settings.
>>
>> Signed-off-by: Yasin Lee <yasin.lee.x@gmail.com>
>> ---
>> .../devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml | 14 ++++++++++++++
>> 1 file changed, 14 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml b/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml
>> index 64ce8bc8bd36..417fbc0bb205 100644
>> --- a/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml
>> +++ b/Documentation/devicetree/bindings/iio/proximity/tyhx,hx9023s.yaml
>> @@ -28,6 +28,13 @@ properties:
>>
>> vdd-supply: true
>>
>> + tyhx,performance-tuning:
>> + description:
>> + Optional, When hardware design introduces significant sensor data noise,
>> + performance can be improved by adjusting register settings, including
>> + but not limited to sample integration time and average sample count.
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
> 1 byte is valid? What about 10000? Add some constraints on the array
> size and the values if possible
>
Hi Rob,
Thank you for your feedback.
In the next version, I've added constraints on the number of elements in
the tyhx,performance-tuning array, limiting it to between 2 and 512
elements. Additionally, I updated the description to clarify that the
number of elements must be even, as each pair represents a register
address followed by a value.
Best regards,
Yasin Lee
>> +
>> "#address-cells":
>> const: 1
>>
>> @@ -65,6 +72,13 @@ examples:
>> interrupt-parent = <&pio>;
>> interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
>> vdd-supply = <&pp1800_prox>;
>> + tyhx,performance-tuning = [00 00
>> + 02 17
>> + 0D 44
>> + 0E 44
>> + 0F 04
>> + 1F 65
>> + 21 65];
>>
>> #address-cells = <1>;
>> #size-cells = <0>;
>>
>> --
>> 2.43.0
>>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-09-25 16:38 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-23 1:16 [PATCH 0/2] iio: proximity: hx9023s: Add performance tuning function Yasin Lee
2024-09-23 1:16 ` [PATCH 1/2] dt-bindings: iio: tyhx,hx9023s: Add performance tuning configuration Yasin Lee
2024-09-24 21:59 ` Rob Herring
2024-09-25 16:38 ` Yasin Lee
2024-09-23 1:16 ` [PATCH 2/2] iio: proximity: hx9023s: Add performance tuning function Yasin Lee
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.