On Thu, Sep 19, 2024 at 12:51:14AM GMT, Amit Sunil Dhamne wrote: > Add support for DT time properties to allow users to define platform > specific timing deadlines of certain timers rather than using hardcoded > ones. For values that have not been explicitly defined in DT using this > property, default values will be set therefore, making this change > backward compatible. > > Signed-off-by: Amit Sunil Dhamne <amitsd@xxxxxxxxxx> > --- > drivers/usb/typec/tcpm/tcpm.c | 81 ++++++++++++++++++++++++++++------- > 1 file changed, 65 insertions(+), 16 deletions(-) > @@ -7053,6 +7068,35 @@ static int tcpm_port_register_pd(struct tcpm_port *port) > return ret; > } > > +static int tcpm_fw_get_timings(struct tcpm_port *port, struct fwnode_handle *fwnode) > +{ > + int ret; > + u32 val; > + > + if (!fwnode) > + return -EINVAL; I think this check isn't really necessary here. Other than that: Acked-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > + > + ret = fwnode_property_read_u32(fwnode, "sink-wait-cap-time-ms", &val); > + if (!ret) > + port->timings.sink_wait_cap_time = val; > + else > + port->timings.sink_wait_cap_time = PD_T_SINK_WAIT_CAP; > + > + ret = fwnode_property_read_u32(fwnode, "ps-source-off-time-ms", &val); > + if (!ret) > + port->timings.ps_src_off_time = val; > + else > + port->timings.ps_src_off_time = PD_T_PS_SOURCE_OFF; > + > + ret = fwnode_property_read_u32(fwnode, "cc-debounce-time-ms", &val); > + if (!ret) > + port->timings.cc_debounce_time = val; > + else > + port->timings.cc_debounce_time = PD_T_CC_DEBOUNCE; > + > + return 0; > +} > + > static int tcpm_fw_get_caps(struct tcpm_port *port, struct fwnode_handle *fwnode) > { > struct fwnode_handle *capabilities, *child, *caps = NULL; > @@ -7608,9 +7652,14 @@ struct tcpm_port *tcpm_register_port(struct device *dev, struct tcpc_dev *tcpc) > init_completion(&port->pps_complete); > tcpm_debugfs_init(port); > > + err = tcpm_fw_get_timings(port, tcpc->fwnode); > + if (err < 0) > + goto out_destroy_wq; > + > err = tcpm_fw_get_caps(port, tcpc->fwnode); > if (err < 0) > goto out_destroy_wq; > + > err = tcpm_fw_get_snk_vdos(port, tcpc->fwnode); > if (err < 0) > goto out_destroy_wq; > -- > 2.46.0.792.g87dc391469-goog > -- With best wishes Dmitry