Hi, Thank you for some comments and pointing out. On Sat, 10 Nov 2018 01:14:06 +0900 <yamada.masahiro@xxxxxxxxxxxxx> wrote: > On Sat, Nov 10, 2018 at 12:02 AM Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> wrote: > > > > Hi Kunihiko, > > > > On Fri, 2018-11-09 at 10:42 +0900, Kunihiko Hayashi wrote: > > > Add compatible strings for reset control of AHCI core implemented in > > > UniPhier SoCs. The reset control belongs to AHCI glue layer. > > > > > > Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@xxxxxxxxxxxxx> > > > --- > > > Documentation/devicetree/bindings/reset/uniphier-reset.txt | 3 +++ > > > 1 file changed, 3 insertions(+) > > > > > > diff --git a/Documentation/devicetree/bindings/reset/uniphier-reset.txt b/Documentation/devicetree/bindings/reset/uniphier-reset.txt > > > index f63c511..ea00517 100644 > > > --- a/Documentation/devicetree/bindings/reset/uniphier-reset.txt > > > +++ b/Documentation/devicetree/bindings/reset/uniphier-reset.txt > > > @@ -133,6 +133,9 @@ Required properties: > > > "socionext,uniphier-pxs2-usb3-reset" - for PXs2 SoC USB3 > > > "socionext,uniphier-ld20-usb3-reset" - for LD20 SoC USB3 > > > "socionext,uniphier-pxs3-usb3-reset" - for PXs3 SoC USB3 > > > + "socionext,uniphier-pro4-ahci-reset" - for Pro4 SoC AHCI > > > + "socionext,uniphier-pxs2-ahci-reset" - for PXs2 SoC AHCI > > > + "socionext,uniphier-pxs3-ahci-reset" - for PXs3 SoC AHCI > > > > Since the driver behaves identically for "socionext,uniphier-pro4-usb3- > > reset" and "socionext,uniphier-pro4-ahci-reset", would it make sense to > > add a common compatible? > > > As far as I could guess, he just happened to find the same driver code > could be reused for other hardware. > > Theoretically, this can happen anywhere since > a reset controller is just a set of registers > each bit of which is connected to a reset line. > > If you added a super-generic compatible like "simple-reset", > I would agree with > "socionext,uniphier-pro4-usb3-reset", "simple-reset" > since this is a pattern. I think it's more generic to define simple-reset with parent clock/reset control without both SoC and device names. However, such parent clocks/resets strongly depends on SoC, so I think it's difficut to lead generic definition in this case. If we add generic compatible string, I also add "simple-reset". > However, > "socionext,uniphier-pro4-glue-reset" is kind of a halfway house > where it is SoC-specific, but still ambiguous. Surely, it might be hard to understand that pro4-glue-reset is SoC-specific but for generic-device. > > Something like: > > "socionext,uniphier-pro4-usb3-reset", "socionext,uniphier-pro4-glue-reset" - for USB3 SoC AHCI > > "socionext,uniphier-pro4-ahci-reset", "socionext,uniphier-pro4-glue-reset" - for Pro4 SoC AHCI > > > > That way if more places turn up where the glue layer reset is used, > > you can add them without patching the driver every time. > > > This is a trade-off between "patch the driver" > and "potential change of the binding". Adding "glue-reset" is usable for devices having same parent clocks/resets as usb3/ahci, and we can add the devices without patches. However, if the device needs other parent clocks/resets for the same SoC, we can't add "glue-reset" and we might add patches for the device as a result. In this case, the "glue-reset" will become difficult to understand. > There is no real hardware like pro4-glue-reset. > > I am guessing this is a part of syscon or something, > but I cannot find any explanation in a bigger picture. > > So, I cannot judge this further more. Since it's hard to lead the best result, currently I'd like to suggest the current compatibles, with "simple-reset" if necessary. Thank you, --- Best Regards, Kunihiko Hayashi