Re: [PATCH v7 2/3] phy: qcom-snps: Add support for overriding phy tuning parameters
From: Pavan Kondeti <hidden>
Date: 2022-06-01 02:09:12
Also in:
linux-arm-msm, linux-phy, linux-usb, lkml
On Tue, May 31, 2022 at 09:44:52PM +0530, Krishna Kurapati wrote:
quoted hunk ↗ jump to hunk
Add support for overriding electrical signal tuning parameters for SNPS HS Phy. Signed-off-by: Krishna Kurapati <redacted> --- drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c | 268 +++++++++++++++++++++++++- 1 file changed, 266 insertions(+), 2 deletions(-)diff --git a/drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c b/drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c index 5d20378..3a17216 100644 --- a/drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c +++ b/drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c@@ -52,6 +52,12 @@ #define USB2_SUSPEND_N BIT(2) #define USB2_SUSPEND_N_SEL BIT(3)
<snip>
+static void qcom_snps_hsphy_override_param_update_val(
+ const struct override_param_map map,
+ s32 dt_val, struct phy_override_seq *seq_entry)
+{
+ int i;
+
+ /*
+ * Param table for each param is in increasing order
+ * of dt values. We need to iterate over the list to
+ * select the entry that has equal or the next highest value.
+ */
+ for (i = 0; i < map.table_size - 1; i++) {
+ if (map.param_table[i].value >= dt_val)
+ break;
+ }
+
+ seq_entry->need_update = true;
+ seq_entry->offset = map.reg_offset;
+ seq_entry->mask = map.param_mask;
+ seq_entry->value = map.param_table[i].reg << __ffs(map.param_mask);
+}
+
+static void qcom_snps_hsphy_read_override_param_seq(struct device *dev)
+{
+ struct device_node *node = dev->of_node;
+ s32 val;
+ int ret, i;
+ struct qcom_snps_hsphy *hsphy;
+ const struct override_param_map *cfg =
+ (struct override_param_map *) of_device_get_match_data(dev);As mentioned in the previous patch-set, the explicit typecast is not needed. overall, looks good to me. After fixing the above, feel free to use Reviewed-by: Pavankumar Kondeti <redacted> Thanks, Pavan