Message ID | 20231113221528.749481-1-dmitry.baryshkov@linaro.org |
---|---|
Headers | show |
Series | dt-bindings: connector: usb: provide bindings for altmodes | expand |
On Tue, Nov 14, 2023 at 12:13:28AM +0200, Dmitry Baryshkov wrote: > As stated in the changelog for the commit 7b458a4c5d73 ("usb: typec: Add > typec_port_register_altmodes()"), the code should be adjusted according > to the AltMode bindings. As the SVID is 16 bits wide (according to the > USB PD Spec), use fwnode_property_read_u16() to read it. > > Acked-by: Hans de Goede <hdegoede@redhat.com> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> > --- > drivers/platform/x86/intel/chtwc_int33fe.c | 2 +- > drivers/usb/typec/class.c | 5 +++-- > 2 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/platform/x86/intel/chtwc_int33fe.c b/drivers/platform/x86/intel/chtwc_int33fe.c > index 848baecc1bb0..93f75ba1dafd 100644 > --- a/drivers/platform/x86/intel/chtwc_int33fe.c > +++ b/drivers/platform/x86/intel/chtwc_int33fe.c > @@ -136,7 +136,7 @@ static const struct software_node altmodes_node = { > }; > > static const struct property_entry dp_altmode_properties[] = { > - PROPERTY_ENTRY_U32("svid", 0xff01), > + PROPERTY_ENTRY_U16("svid", 0xff01), > PROPERTY_ENTRY_U32("vdo", 0x0c0086), > { } > }; > diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c > index 6ec2a94e6fad..4251d44137b6 100644 > --- a/drivers/usb/typec/class.c > +++ b/drivers/usb/typec/class.c > @@ -2238,7 +2238,8 @@ void typec_port_register_altmodes(struct typec_port *port, > struct typec_altmode_desc desc; > struct typec_altmode *alt; > size_t index = 0; > - u32 svid, vdo; > + u16 svid; > + u32 vdo; > int ret; > > altmodes_node = device_get_named_child_node(&port->dev, "altmodes"); > @@ -2246,7 +2247,7 @@ void typec_port_register_altmodes(struct typec_port *port, > return; /* No altmodes specified */ > > fwnode_for_each_child_node(altmodes_node, child) { > - ret = fwnode_property_read_u32(child, "svid", &svid); > + ret = fwnode_property_read_u16(child, "svid", &svid); > if (ret) { > dev_err(&port->dev, "Error reading svid for altmode %s\n", > fwnode_get_name(child)); > -- > 2.42.0
On 11/13/23 23:13, Dmitry Baryshkov wrote: > Follow the bindings and use 16-bit value for AltMode SVID instead of > using the full u32. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- Fixes: b3dea914127e ("arm64: dts: qcom: qrb5165-rb5: enable DP altmode") (because it was previously not compliant with bindings) Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> Konrad
On Tue, Nov 14, 2023 at 12:13:26AM +0200, Dmitry Baryshkov wrote: > In some cases we need a way to specify USB-C AltModes that can be > supportd on the particular USB-C connector. For example, x86 INT33FE > driver does this by populating fwnode properties internally. For the > Qualcomm Robotics RB5 platform (and several similar devices which use > Qualcomm PMIC TCPM) we have to put this information to the DT. > > Provide the DT bindings for this kind of information and while we are at > it, change svid property to be 16-bit unsigned integer instead of a > simple u32. > > NOTE: usage of u16 is not compatible with the recenty extended > qcom/qrb5165-rb5.dts DT file. I'm looking for the guidance from DT and > USB maintainers whether to retain u32 usage or it's better to switch to > u16. Depends if you are fine with the ABI break on this platform... Rob
On Thu, 16 Nov 2023 at 20:36, Rob Herring <robh@kernel.org> wrote: > > On Tue, Nov 14, 2023 at 12:13:26AM +0200, Dmitry Baryshkov wrote: > > In some cases we need a way to specify USB-C AltModes that can be > > supportd on the particular USB-C connector. For example, x86 INT33FE > > driver does this by populating fwnode properties internally. For the > > Qualcomm Robotics RB5 platform (and several similar devices which use > > Qualcomm PMIC TCPM) we have to put this information to the DT. > > > > Provide the DT bindings for this kind of information and while we are at > > it, change svid property to be 16-bit unsigned integer instead of a > > simple u32. > > > > NOTE: usage of u16 is not compatible with the recenty extended > > qcom/qrb5165-rb5.dts DT file. I'm looking for the guidance from DT and > > USB maintainers whether to retain u32 usage or it's better to switch to > > u16. > > Depends if you are fine with the ABI break on this platform... As much as I hate it, yes, we are.