Hi all,
On 10/3/20 10:40, Matthias Brugger wrote:
On 09/03/2020 23:50, Stephen Boyd wrote:
Quoting Enric Balletbo Serra (2020-03-06 14:09:50)
Missatge de Stephen Boyd sboyd@kernel.org del dia dv., 6 de mar 2020 a les 22:37:
Quoting Enric Balletbo i Serra (2020-03-06 08:30:16)
On 5/3/20 22:01, Stephen Boyd wrote:
Quoting Enric Balletbo i Serra (2020-03-02 03:01:26) > diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-mmsys.c > new file mode 100644 > index 000000000000..473cdf732fb5 > --- /dev/null > +++ b/drivers/soc/mediatek/mtk-mmsys.c > @@ -0,0 +1,154 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Copyright (c) 2014 MediaTek Inc. > + * Author: James Liao jamesjj.liao@mediatek.com > + */ > + > +#include <linux/clk-provider.h> > +#include <linux/of_device.h> > +#include <linux/platform_device.h> > + > +#include "../../clk/mediatek/clk-gate.h" > +#include "../../clk/mediatek/clk-mtk.h"
Why not use include/linux/clk/?
I can move these files to include, this will impact a lot more of drivers but, yes, I think is the right way.
But I also don't understand why the clk driver is moved outside of drivers/clk/ into drivers/soc/. Commit text saying that it has shared registers doesn't mean it can't still keep the clk driver part in the drivers/clk/ area.
Actually moving this to the soc directory has been requested by CK (mediatek) as a change in v8. You can see the discussion in [1]
I can reply there in that thread if necessary, but we shouldn't need to force simple-mfd into DT bindings to support this. Match the compatible string in drivers/soc/ and register devices in software for the different pieces of this overall hardware block. If necessary, pass down the ioremapped addresss down through device data to each logical driver in the respective subsystem.
So yes, it looks like an MFD, but that doesn't mean we have to change the DT binding or put it in drivers/mfd to support that. And we don't have to fix any problems with allowing two drivers to probe the same compatible string.
That thread maybe has too much information and things evolved since then. Note that the final solution is not an MFD neither we change the bindings. I pointed to that thread just because CK (CK please correct me if I'm wrong) thought that the driver is not a pure clock driver and he preferred to move to drivers/soc/mediatek (in that thread, he exposes his opinion on that). Sorry to introduce more confusion.
You seem to be fine with the approach (just minor changes), so it looks to me that the only problem is if this should be in drivers/clk or drivers/soc. Honestly, this is not something I can't decide and I'll let you (the soc and clk maintainers) decide. I don't really have a strong opinion here. I don't mind move again to drivers/clk if that is what we want but let's come to an agreement.
It's already in drivers/clk, so leave the clk part there and register the clk device and any other devices by matching the compatible in drivers/soc. That is my preferred solution. Can that be done?
I think we can once again create a platform device in drivers/soc which matches the drivers/clk and then do the routing in drivers/soc. Enric any thoughts?
Yes, working already on a new version.
Thanks, Enric