diff mbox series

[v5,1/6] dt-bindings: iio: filter: Add lpf/hpf freq margins

Message ID 20250306183314.150253-1-sam.winchenbach@framepointer.org (mailing list archive)
State Changes Requested
Headers show
Series [v5,1/6] dt-bindings: iio: filter: Add lpf/hpf freq margins | expand

Commit Message

Sam Winchenbach March 6, 2025, 6:33 p.m. UTC
Adds two properties to add a margin when automatically finding the
corner frequencies.

Signed-off-by: Sam Winchenbach <sam.winchenbach@framepointer.org>
---
 .../bindings/iio/filter/adi,admv8818.yaml     | 23 +++++++++++++++++++
 1 file changed, 23 insertions(+)

Comments

Krzysztof Kozlowski March 7, 2025, 8:34 a.m. UTC | #1
On Thu, Mar 06, 2025 at 01:33:09PM -0500, Sam Winchenbach wrote:
> Adds two properties to add a margin when automatically finding the
> corner frequencies.
> 
> Signed-off-by: Sam Winchenbach <sam.winchenbach@framepointer.org>
> ---
>  .../bindings/iio/filter/adi,admv8818.yaml     | 23 +++++++++++++++++++
>  1 file changed, 23 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml b/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml
> index b77e855bd594..3f9c61547a78 100644
> --- a/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml
> +++ b/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml
> @@ -44,6 +44,27 @@ properties:
>    '#clock-cells':
>      const: 0
>  
> +

Unnecessary blank line

> +  adi,lpf-margin-hz:
> +    description:
> +      Sets the minimum distance (in Hz) between the fundamental
> +      frequency of `rf_in` and the corner frequency of the low-pass, output
> +      filter when operatred in 'auto' mode. The selected low-pass corner
> +      frequency will be greater than, or equal to, `rf_in` + `lpf-margin-hz`. If
> +      not setting is found that satisfies this relationship the filter will be
> +      put into 'bypass'.
> +    default: 0

hz are 32-bit, not 64-bit, so I think you need:

  default: [0, 0]
  minItems: 2
  maxItems: 2

Best regards,
Krzysztof
Sam Winchenbach March 7, 2025, 1:47 p.m. UTC | #2
On Fri, Mar 07, 2025 at 09:34:24AM +0100, Krzysztof Kozlowski wrote:
> On Thu, Mar 06, 2025 at 01:33:09PM -0500, Sam Winchenbach wrote:
> > Adds two properties to add a margin when automatically finding the
> > corner frequencies.
> > 
> > Signed-off-by: Sam Winchenbach <sam.winchenbach@framepointer.org>
> > ---
> >  .../bindings/iio/filter/adi,admv8818.yaml     | 23 +++++++++++++++++++
> >  1 file changed, 23 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml b/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml
> > index b77e855bd594..3f9c61547a78 100644
> > --- a/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml
> > +++ b/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml
> > @@ -44,6 +44,27 @@ properties:
> >    '#clock-cells':
> >      const: 0
> >  
> > +
> 
> Unnecessary blank line
> 

Noted for v6.

> > +  adi,lpf-margin-hz:
> > +    description:
> > +      Sets the minimum distance (in Hz) between the fundamental
> > +      frequency of `rf_in` and the corner frequency of the low-pass, output
> > +      filter when operatred in 'auto' mode. The selected low-pass corner
> > +      frequency will be greater than, or equal to, `rf_in` + `lpf-margin-hz`. If
> > +      not setting is found that satisfies this relationship the filter will be
> > +      put into 'bypass'.
> > +    default: 0
> 
> hz are 32-bit, not 64-bit, so I think you need:
> 
>   default: [0, 0]
>   minItems: 2
>   maxItems: 2
>

I think I finally understand - "-hz" is a schema type defined as a uint32. Is that correct? I am really surprised that `dt_binding_check` did not complain about it being 64-bits.  I will update these to `-mhz` and make them uint32 in v6.

Thanks,
-Sam

> Best regards,
> Krzysztof
>
Krzysztof Kozlowski March 9, 2025, 7:55 p.m. UTC | #3
On 07/03/2025 14:47, Sam Winchenbach wrote:
> On Fri, Mar 07, 2025 at 09:34:24AM +0100, Krzysztof Kozlowski wrote:
>> On Thu, Mar 06, 2025 at 01:33:09PM -0500, Sam Winchenbach wrote:
>>> Adds two properties to add a margin when automatically finding the
>>> corner frequencies.
>>>
>>> Signed-off-by: Sam Winchenbach <sam.winchenbach@framepointer.org>
>>> ---
>>>  .../bindings/iio/filter/adi,admv8818.yaml     | 23 +++++++++++++++++++
>>>  1 file changed, 23 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml b/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml
>>> index b77e855bd594..3f9c61547a78 100644
>>> --- a/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml
>>> +++ b/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml
>>> @@ -44,6 +44,27 @@ properties:
>>>    '#clock-cells':
>>>      const: 0
>>>  
>>> +
>>
>> Unnecessary blank line
>>
> 
> Noted for v6.
> 
>>> +  adi,lpf-margin-hz:
>>> +    description:
>>> +      Sets the minimum distance (in Hz) between the fundamental
>>> +      frequency of `rf_in` and the corner frequency of the low-pass, output
>>> +      filter when operatred in 'auto' mode. The selected low-pass corner
>>> +      frequency will be greater than, or equal to, `rf_in` + `lpf-margin-hz`. If
>>> +      not setting is found that satisfies this relationship the filter will be
>>> +      put into 'bypass'.
>>> +    default: 0
>>
>> hz are 32-bit, not 64-bit, so I think you need:
>>
>>   default: [0, 0]
>>   minItems: 2
>>   maxItems: 2
>>
> 
> I think I finally understand - "-hz" is a schema type defined as a uint32. 

No, it is uint32-array.

> Is that correct? I am really surprised that `dt_binding_check` did not complain about it being 64-bits.  I will update these to `-mhz` and make them uint32 in v6.

so your code worked fine, because it assumed you will pass two 32-bit
integers, so two items. That's why I proposed to define the number of
items, even though it looks odd, but that's result of 32-bit value.

Maybe we need "-hz-64" or "-64-hz" property suffix?

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml b/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml
index b77e855bd594..3f9c61547a78 100644
--- a/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml
+++ b/Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml
@@ -44,6 +44,27 @@  properties:
   '#clock-cells':
     const: 0
 
+
+  adi,lpf-margin-hz:
+    description:
+      Sets the minimum distance (in Hz) between the fundamental
+      frequency of `rf_in` and the corner frequency of the low-pass, output
+      filter when operatred in 'auto' mode. The selected low-pass corner
+      frequency will be greater than, or equal to, `rf_in` + `lpf-margin-hz`. If
+      not setting is found that satisfies this relationship the filter will be
+      put into 'bypass'.
+    default: 0
+
+  adi,hpf-margin-hz:
+    description:
+      Sets the minimum distance (in Hz) between the fundamental
+      frequency of `rf_in` and the corner frequency of the high-pass, input
+      filter when operatred in 'auto' mode. The selected high-pass corner
+      frequency will be less than, or equal to, `rf_in` - `hpf-margin-hz`. If
+      not setting is found that satisfies this relationship the filter will be
+      put into 'bypass'.
+    default: 0
+
 required:
   - compatible
   - reg
@@ -61,6 +82,8 @@  examples:
         spi-max-frequency = <10000000>;
         clocks = <&admv8818_rfin>;
         clock-names = "rf_in";
+        adi,lpf-margin-hz = /bits/ 64 <30000000>;
+        adi,hpf-margin-hz = /bits/ 64 <30000000>;
       };
     };
 ...