Message ID | 20210614154359.805555-1-benjamin.gaignard@collabora.com |
---|---|
Headers | show |
Series | Add USB2 support for rk3568 | expand |
Good Afternoon, This was a hack just to get it to bind. If you'll notice I've posted a second revision that works better, but still is untested against anything other than the rk356x. https://gitlab.com/pine64-org/quartz-bsp/linux-next/-/commit/51612157d7ae3f3c4267ed56676f5d1a952d698f Very Respectfully, Peter Geis On Mon, Jun 14, 2021 at 11:44 AM Benjamin Gaignard <benjamin.gaignard@collabora.com> wrote: > > The original pacth from Peter Geis is here: > https://gitlab.com/pine64-org/quartz-bsp/linux-next/-/commit/cda136f853628259198d6f70c3e14c9e5c8e097f > > I have split the driver part of this patch in two: > - one to update reg usage > - one to add USB2 support for rk3568 > I have added patches for the bindings: > - some clean up > - add compatible for rk3568 > > Benjamin > > Benjamin Gaignard (4): > dt-bindings: phy: rockchip: USB2: remove useless #phy-cells property > dt-bindings: phy: rockchip: USB2: Add compatible for rk3568 > PHY: rockchip: USB2: Allow 64 bits reg property > phy: rockchip: USB2: Add support for rk3568 > > .../bindings/phy/phy-rockchip-inno-usb2.yaml | 3 +- > drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 85 +++++++++++++++++-- > 2 files changed, 78 insertions(+), 10 deletions(-) > > -- > 2.25.1 >
On 2021-06-14 16:43, Benjamin Gaignard wrote: > In rk356x device-tree "reg" property could be coded on 64 bits. > Change reg type and of_property_read_ to make it works. On platforms with #address-cells=1, this isn't going to do what you think. Worse, it's not even going to fail, because you *can* read a 64-bit value from an address cell with a size cell after it... Robin. > Signed-off-by: Peter Geis <pgwipeout@gmail.com> > Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> > --- > drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c > index 46ebdb1460a3d..45518f96d7217 100644 > --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c > +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c > @@ -1068,7 +1068,7 @@ static int rockchip_usb2phy_probe(struct platform_device *pdev) > struct rockchip_usb2phy *rphy; > const struct rockchip_usb2phy_cfg *phy_cfgs; > const struct of_device_id *match; > - unsigned int reg; > + u64 reg; > int index, ret; > > rphy = devm_kzalloc(dev, sizeof(*rphy), GFP_KERNEL); > @@ -1098,7 +1098,7 @@ static int rockchip_usb2phy_probe(struct platform_device *pdev) > rphy->usbgrf = NULL; > } > > - if (of_property_read_u32(np, "reg", ®)) { > + if (of_property_read_u64(np, "reg", ®)) { > dev_err(dev, "the reg property is not assigned in %pOFn node\n", > np); > return -EINVAL; >
On Mon, Jun 14, 2021 at 1:09 PM Robin Murphy <robin.murphy@arm.com> wrote: > > On 2021-06-14 16:43, Benjamin Gaignard wrote: > > In rk356x device-tree "reg" property could be coded on 64 bits. > > Change reg type and of_property_read_ to make it works. > > On platforms with #address-cells=1, this isn't going to do what you > think. Worse, it's not even going to fail, because you *can* read a > 64-bit value from an address cell with a size cell after it... Apologies, this was a hack and in no way ready for submission. While I've got you here, what would be the best way to handle this? Since previous generations #address-cells=1 and #size-cells=1, where the rk356x #address-cells=2 and #size-cells=2 and we need to account for both of them. Thanks, Peter > > Robin. > > > Signed-off-by: Peter Geis <pgwipeout@gmail.com> > > Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> > > --- > > drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c > > index 46ebdb1460a3d..45518f96d7217 100644 > > --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c > > +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c > > @@ -1068,7 +1068,7 @@ static int rockchip_usb2phy_probe(struct platform_device *pdev) > > struct rockchip_usb2phy *rphy; > > const struct rockchip_usb2phy_cfg *phy_cfgs; > > const struct of_device_id *match; > > - unsigned int reg; > > + u64 reg; > > int index, ret; > > > > rphy = devm_kzalloc(dev, sizeof(*rphy), GFP_KERNEL); > > @@ -1098,7 +1098,7 @@ static int rockchip_usb2phy_probe(struct platform_device *pdev) > > rphy->usbgrf = NULL; > > } > > > > - if (of_property_read_u32(np, "reg", ®)) { > > + if (of_property_read_u64(np, "reg", ®)) { > > dev_err(dev, "the reg property is not assigned in %pOFn node\n", > > np); > > return -EINVAL; > >