Message ID | 1652282793-5580-1-git-send-email-quic_kriskura@quicinc.com |
---|---|
Headers | show |
Series | Add QCOM SNPS PHY overriding params support | expand |
On 5/11/2022 11:49 PM, Krzysztof Kozlowski wrote: > On 11/05/2022 17:26, Krishna Kurapati wrote: >> From: Sandeep Maheswaram <quic_c_sanm@quicinc.com> >> >> Add device tree bindings for SNPS phy tuning parameters. >> >> Signed-off-by: Sandeep Maheswaram <quic_c_sanm@quicinc.com> >> Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com> >> --- >> .../bindings/phy/qcom,usb-snps-femto-v2.yaml | 87 ++++++++++++++++++++++ >> 1 file changed, 87 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml b/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml >> index 1ce251d..70efffe 100644 >> --- a/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml >> +++ b/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml >> @@ -53,6 +53,93 @@ properties: >> vdda33-supply: >> description: phandle to the regulator 3.3V supply node. >> >> + qcom,hs-disconnect-bps: >> + $ref: /schemas/types.yaml#/definitions/int32 >> + description: >> + This adjusts the voltage level for the threshold used to >> + detect a disconnect event at the host. Possible values are. >> + The values defined are in multiples of basis points (1bp = 0.01%). > This means there is some minimum and maximum (100%)? > >> + The hardware accepts only discrete values. The value closest to the >> + provided input will be chosen as the override value for this param. >> + >> + qcom,squelch-detector-bps: >> + $ref: /schemas/types.yaml#/definitions/int32 >> + description: >> + This adjusts the voltage level for the threshold used to >> + detect valid high-speed data. >> + The values defined are in multiples of basis points (1bp = 0.01%). >> + The hardware accepts only discrete values. The value closest to the >> + provided input will be chosen as the override value for this param. >> + >> + qcom,hs-amplitude-bps: >> + $ref: /schemas/types.yaml#/definitions/int32 >> + description: >> + This adjusts the high-speed DC level voltage. >> + The values defined are in multiples of basis points (1bp = 0.01%). >> + The hardware accepts only discrete values. The value closest to the >> + provided input will be chosen as the override value for this param. >> + >> + qcom,pre-emphasis-duration-bps: >> + $ref: /schemas/types.yaml#/definitions/int32 >> + description: >> + This signal controls the duration for which the >> + HS pre-emphasis current is sourced onto DP<#> or DM<#>. >> + The HS Transmitter pre-emphasis duration is defined in terms of >> + unit amounts. One unit of pre-emphasis duration is approximately >> + 650 ps and is defined as 1X pre-emphasis duration. >> + The values defined are in multiples of basis points (1bp = 0.01%). >> + The hardware accepts only discrete values. The value closest to the >> + provided input will be chosen as the override value for this param. >> + >> + qcom,pre-emphasis-amplitude-bps: >> + $ref: /schemas/types.yaml#/definitions/int32 >> + description: >> + This signal controls the amount of current sourced to >> + DP<#> and DM<#> after a J-to-K or K-to-J transition. >> + The HS Transmitter pre-emphasis current is defined in terms of unit >> + amounts. One unit amount is approximately 2 mA and is defined as >> + 1X pre-emphasis current. >> + The values defined are in multiples of basis points (1bp = 0.01%). >> + The hardware accepts only discrete values. The value closest to the >> + provided input will be chosen as the override value for this param. >> + >> + qcom,hs-rise-fall-time-bps: >> + $ref: /schemas/types.yaml#/definitions/int32 >> + description: >> + This adjusts the rise/fall times of the high-speed waveform. >> + The values defined are in multiples of basis points (1bp = 0.01%). >> + The hardware accepts only discrete values. The value closest to the >> + provided input will be chosen as the override value for this param. >> + >> + qcom,hs-crossover-voltage-mv: >> + $ref: /schemas/types.yaml#/definitions/int32 >> + description: >> + This adjusts the voltage at which the DP<#> and DM<#> >> + signals cross while transmitting in HS mode. >> + The values defined are in milli volts. The hardware accepts only >> + discrete values. The value closest to the provided input will be >> + chosen as the override value for this param. >> + >> + qcom,hs-output-impedance-mohm: >> + $ref: /schemas/types.yaml#/definitions/int32 > Here and in other places, please use standard units. See > dtschema/schemas/property-units.yaml in dtschema repo. > > > Best regards, > Krzysztof Hi Krzystof, thanks for the input. I see there are microvolt and microohm units present in schemas/property-units.yaml Would it be possible to add bps (basis point) to the list of standard units if it makes sense to use it ? Regards, Krishna,
On 13/05/2022 09:33, Krishna Kurapati PSSNV wrote: > > On 5/11/2022 11:49 PM, Krzysztof Kozlowski wrote: >> On 11/05/2022 17:26, Krishna Kurapati wrote: >>> From: Sandeep Maheswaram <quic_c_sanm@quicinc.com> >>> >>> Add device tree bindings for SNPS phy tuning parameters. >>> >>> Signed-off-by: Sandeep Maheswaram <quic_c_sanm@quicinc.com> >>> Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com> >>> --- >>> .../bindings/phy/qcom,usb-snps-femto-v2.yaml | 87 ++++++++++++++++++++++ >>> 1 file changed, 87 insertions(+) >>> >>> diff --git a/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml b/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml >>> index 1ce251d..70efffe 100644 >>> --- a/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml >>> +++ b/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml >>> @@ -53,6 +53,93 @@ properties: >>> vdda33-supply: >>> description: phandle to the regulator 3.3V supply node. >>> >>> + qcom,hs-disconnect-bps: >>> + $ref: /schemas/types.yaml#/definitions/int32 >>> + description: >>> + This adjusts the voltage level for the threshold used to >>> + detect a disconnect event at the host. Possible values are. >>> + The values defined are in multiples of basis points (1bp = 0.01%). >> This means there is some minimum and maximum (100%)? >> >>> + The hardware accepts only discrete values. The value closest to the >>> + provided input will be chosen as the override value for this param. >>> + >>> + qcom,squelch-detector-bps: >>> + $ref: /schemas/types.yaml#/definitions/int32 >>> + description: >>> + This adjusts the voltage level for the threshold used to >>> + detect valid high-speed data. >>> + The values defined are in multiples of basis points (1bp = 0.01%). >>> + The hardware accepts only discrete values. The value closest to the >>> + provided input will be chosen as the override value for this param. >>> + >>> + qcom,hs-amplitude-bps: >>> + $ref: /schemas/types.yaml#/definitions/int32 >>> + description: >>> + This adjusts the high-speed DC level voltage. >>> + The values defined are in multiples of basis points (1bp = 0.01%). >>> + The hardware accepts only discrete values. The value closest to the >>> + provided input will be chosen as the override value for this param. >>> + >>> + qcom,pre-emphasis-duration-bps: >>> + $ref: /schemas/types.yaml#/definitions/int32 >>> + description: >>> + This signal controls the duration for which the >>> + HS pre-emphasis current is sourced onto DP<#> or DM<#>. >>> + The HS Transmitter pre-emphasis duration is defined in terms of >>> + unit amounts. One unit of pre-emphasis duration is approximately >>> + 650 ps and is defined as 1X pre-emphasis duration. >>> + The values defined are in multiples of basis points (1bp = 0.01%). >>> + The hardware accepts only discrete values. The value closest to the >>> + provided input will be chosen as the override value for this param. >>> + >>> + qcom,pre-emphasis-amplitude-bps: >>> + $ref: /schemas/types.yaml#/definitions/int32 >>> + description: >>> + This signal controls the amount of current sourced to >>> + DP<#> and DM<#> after a J-to-K or K-to-J transition. >>> + The HS Transmitter pre-emphasis current is defined in terms of unit >>> + amounts. One unit amount is approximately 2 mA and is defined as >>> + 1X pre-emphasis current. >>> + The values defined are in multiples of basis points (1bp = 0.01%). >>> + The hardware accepts only discrete values. The value closest to the >>> + provided input will be chosen as the override value for this param. >>> + >>> + qcom,hs-rise-fall-time-bps: >>> + $ref: /schemas/types.yaml#/definitions/int32 >>> + description: >>> + This adjusts the rise/fall times of the high-speed waveform. >>> + The values defined are in multiples of basis points (1bp = 0.01%). >>> + The hardware accepts only discrete values. The value closest to the >>> + provided input will be chosen as the override value for this param. >>> + >>> + qcom,hs-crossover-voltage-mv: >>> + $ref: /schemas/types.yaml#/definitions/int32 >>> + description: >>> + This adjusts the voltage at which the DP<#> and DM<#> >>> + signals cross while transmitting in HS mode. >>> + The values defined are in milli volts. The hardware accepts only >>> + discrete values. The value closest to the provided input will be >>> + chosen as the override value for this param. >>> + >>> + qcom,hs-output-impedance-mohm: >>> + $ref: /schemas/types.yaml#/definitions/int32 >> Here and in other places, please use standard units. See >> dtschema/schemas/property-units.yaml in dtschema repo. >> >> >> Best regards, >> Krzysztof > > Hi Krzystof, thanks for the input. > > I see there are microvolt and microohm units present in > schemas/property-units.yaml > > Would it be possible to add bps (basis point) to the list of standard > units if it makes sense to use it ? There is already 'percent' so 'bp' could be as well, makes sense to me. I can send a patch for it and we'll see what Rob says. Best regards, Krzysztof
On 5/13/2022 5:50 PM, Krzysztof Kozlowski wrote: > On 13/05/2022 12:32, Krzysztof Kozlowski wrote: >>> Would it be possible to add bps (basis point) to the list of standard >>> units if it makes sense to use it ? >> There is already 'percent' so 'bp' could be as well, makes sense to me. >> I can send a patch for it and we'll see what Rob says. > > Merged: > https://github.com/devicetree-org/dt-schema/pull/73 > > > Best regards, > Krzysztof Thanks Krzysztof, Will refresh the patches with new changes. Regards, Krishna,
On 5/12/2022 4:00 PM, Krzysztof Kozlowski wrote: > On 12/05/2022 07:57, Krishna Kurapati PSSNV wrote: >> On 5/11/2022 11:49 PM, Krzysztof Kozlowski wrote: >>> On 11/05/2022 17:26, Krishna Kurapati wrote: >>>> From: Sandeep Maheswaram <quic_c_sanm@quicinc.com> >>>> >>>> Add device tree bindings for SNPS phy tuning parameters. >>>> >>>> Signed-off-by: Sandeep Maheswaram <quic_c_sanm@quicinc.com> >>>> Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com> >>>> --- >>>> .../bindings/phy/qcom,usb-snps-femto-v2.yaml | 87 ++++++++++++++++++++++ >>>> 1 file changed, 87 insertions(+) >>>> >>>> diff --git a/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml b/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml >>>> index 1ce251d..70efffe 100644 >>>> --- a/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml >>>> +++ b/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml >>>> @@ -53,6 +53,93 @@ properties: >>>> vdda33-supply: >>>> description: phandle to the regulator 3.3V supply node. >>>> >>>> + qcom,hs-disconnect-bps: >>>> + $ref: /schemas/types.yaml#/definitions/int32 >>>> + description: >>>> + This adjusts the voltage level for the threshold used to >>>> + detect a disconnect event at the host. Possible values are. >>>> + The values defined are in multiples of basis points (1bp = 0.01%). >>> This means there is some minimum and maximum (100%)? >> Hi Krzystof, >> >> Yes there are max and min for each parameter (not necessarily 0%/100%) >> >> As an example if we take squelch detector threshold, the register value >> vs actual percentage changer as per data book is as follows : >> >> % change in voltage | corresponding reg value >> >> -20.90% | 7 >> -15.60% | 6 >> -10.30% | 5 >> -5.30% | 4 >> 0% | 3 >> 5.30% | 2 >> 10.60% | 1 >> 15.90% | 0 >> >> Here the min and max are 15.9% to -20.9% >> >> The min and max differ for each parameter and might not be necessarily >> 0% and 100% > Then it seems possible to define minimum and maximum values - please add > them ("minimum: xxxx"). > > > Best regards, > Krzysztof Hi Krzysztof, Sorry for the late reply, missed this mail. Currently, these values have a fixed maximum and minimum. But if these limits change in the future (say on a per target basis) , would it be appropriate to add them here in bindings file ? Also in the driver file for sc7280 target, we have added parameter mapping : (map b/w register value and bps passed from device tree). For squelch detector, it is as follows: +static struct override_param squelch_det_threshold_sc7280[] = { + OVERRIDE_PARAM(-2090, 7), + OVERRIDE_PARAM(-1560, 6), + OVERRIDE_PARAM(-1030, 5), + OVERRIDE_PARAM(-530, 4), + OVERRIDE_PARAM(0, 3), + OVERRIDE_PARAM(530, 2), + OVERRIDE_PARAM(1060, 1), + OVERRIDE_PARAM(1590, 0), +}; And the code is written such that if we give a bps value in dt greater than max value in table, we would automatically choose max value. And if we provide bps value lesser than minimum value, we would choose the min value. So, would it be appropriate to add the min and max in dt-bindings when there is a slight chance of them changing in the future ? Would like to know your thoughts on this, Thanks, Krishna,
On 14/05/2022 08:24, Krishna Kurapati PSSNV wrote: > > On 5/12/2022 4:00 PM, Krzysztof Kozlowski wrote: >> On 12/05/2022 07:57, Krishna Kurapati PSSNV wrote: >>> On 5/11/2022 11:49 PM, Krzysztof Kozlowski wrote: >>>> On 11/05/2022 17:26, Krishna Kurapati wrote: >>>>> From: Sandeep Maheswaram <quic_c_sanm@quicinc.com> >>>>> >>>>> Add device tree bindings for SNPS phy tuning parameters. >>>>> >>>>> Signed-off-by: Sandeep Maheswaram <quic_c_sanm@quicinc.com> >>>>> Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com> >>>>> --- >>>>> .../bindings/phy/qcom,usb-snps-femto-v2.yaml | 87 ++++++++++++++++++++++ >>>>> 1 file changed, 87 insertions(+) >>>>> >>>>> diff --git a/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml b/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml >>>>> index 1ce251d..70efffe 100644 >>>>> --- a/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml >>>>> +++ b/Documentation/devicetree/bindings/phy/qcom,usb-snps-femto-v2.yaml >>>>> @@ -53,6 +53,93 @@ properties: >>>>> vdda33-supply: >>>>> description: phandle to the regulator 3.3V supply node. >>>>> >>>>> + qcom,hs-disconnect-bps: >>>>> + $ref: /schemas/types.yaml#/definitions/int32 >>>>> + description: >>>>> + This adjusts the voltage level for the threshold used to >>>>> + detect a disconnect event at the host. Possible values are. >>>>> + The values defined are in multiples of basis points (1bp = 0.01%). >>>> This means there is some minimum and maximum (100%)? >>> Hi Krzystof, >>> >>> Yes there are max and min for each parameter (not necessarily 0%/100%) >>> >>> As an example if we take squelch detector threshold, the register value >>> vs actual percentage changer as per data book is as follows : >>> >>> % change in voltage | corresponding reg value >>> >>> -20.90% | 7 >>> -15.60% | 6 >>> -10.30% | 5 >>> -5.30% | 4 >>> 0% | 3 >>> 5.30% | 2 >>> 10.60% | 1 >>> 15.90% | 0 >>> >>> Here the min and max are 15.9% to -20.9% >>> >>> The min and max differ for each parameter and might not be necessarily >>> 0% and 100% >> Then it seems possible to define minimum and maximum values - please add >> them ("minimum: xxxx"). >> >> >> Best regards, >> Krzysztof > > Hi Krzysztof, > > Sorry for the late reply, missed this mail. > > Currently, these values have a fixed maximum and minimum. But if these > limits change in the > > future (say on a per target basis) , would it be appropriate to add them > here in bindings file ? Per "target" you mean compatible? Then yes, the same as customizing number of interrupts, clocks etc. > > Also in the driver file for sc7280 target, we have added parameter > mapping : (map b/w register value > > and bps passed from device tree). For squelch detector, it is as follows: > > +static struct override_param squelch_det_threshold_sc7280[] = { > + OVERRIDE_PARAM(-2090, 7), > + OVERRIDE_PARAM(-1560, 6), > + OVERRIDE_PARAM(-1030, 5), > + OVERRIDE_PARAM(-530, 4), > + OVERRIDE_PARAM(0, 3), > + OVERRIDE_PARAM(530, 2), > + OVERRIDE_PARAM(1060, 1), > + OVERRIDE_PARAM(1590, 0), > +}; > > And the code is written such that if we give a bps value in dt greater than max value in > table, we would automatically choose max value. And if we provide bps value lesser than > minimum value, we would choose the min value. > > So, would it be appropriate to add the min and max in dt-bindings when there is a > slight chance of them changing in the future ? The kernel behavior should not matter here, because the bindings are about the hardware. Therefore if hardware comes with maximum/minimum values, it would be better to document them here. Best regards, Krzysztof