* [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
* 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
* [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
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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).