[U-Boot] [PATCH v2 10/18] pinctrl: MediaTek: add pinctrl driver for MT7629 SoC

Simon Glass sjg at chromium.org
Sat Nov 3 06:08:00 UTC 2018


Hi Ryder,

On 25 October 2018 at 00:08, Ryder Lee <ryder.lee at mediatek.com> wrote:
> Hi Simon,
>
> On Wed, 2018-10-24 at 21:29 -0600, Simon Glass wrote:
>> Hi Ryder,
>>
>> On 12 October 2018 at 01:00, Ryder Lee <ryder.lee at mediatek.com> wrote:
>> > This patch adds pinctrl support for MT7629 SoC. The IO core found on
>> > the SoC has the registers for pinctrl, pinconf and gpio mixed up in
>> > the same register range.  Hence the driver also implements the gpio
>> > functionality through UCLASS_GPIO.
>> >
>> > This also creates a common file as there might be other chips that use
>> > the same binding and driver, then being a little more abstract could
>> > help in the long run.
>> >
>> > Signed-off-by: Ryder Lee <ryder.lee at mediatek.com>
>> > ---
>> >  arch/arm/include/asm/arch-mediatek/gpio.h     |   9 +
>> >  drivers/pinctrl/Kconfig                       |   1 +
>> >  drivers/pinctrl/Makefile                      |   1 +
>> >  drivers/pinctrl/mediatek/Kconfig              |  11 +
>> >  drivers/pinctrl/mediatek/Makefile             |   6 +
>> >  drivers/pinctrl/mediatek/pinctrl-mt7629.c     | 488 +++++++++++++++++++++++
>> >  drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 552 ++++++++++++++++++++++++++
>> >  drivers/pinctrl/mediatek/pinctrl-mtk-common.h | 182 +++++++++
>> >  8 files changed, 1250 insertions(+)
>> >  create mode 100644 arch/arm/include/asm/arch-mediatek/gpio.h
>> >  create mode 100644 drivers/pinctrl/mediatek/Kconfig
>> >  create mode 100644 drivers/pinctrl/mediatek/Makefile
>> >  create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt7629.c
>> >  create mode 100644 drivers/pinctrl/mediatek/pinctrl-mtk-common.c
>> >  create mode 100644 drivers/pinctrl/mediatek/pinctrl-mtk-common.h
>> >
>>
>> [..]
>>
>> > +int mtk_pinctrl_probe(struct udevice *dev, struct mtk_pinctrl_soc *soc)
>> > +{
>> > +       struct mtk_pinctrl_priv *priv = dev_get_priv(dev);
>> > +       int ret;
>> > +
>> > +       priv->base = dev_read_addr_ptr(dev);
>> > +       if (priv->base == (void *)FDT_ADDR_T_NONE)
>> > +               return -EINVAL;
>> > +
>> > +       priv->soc = soc;
>> > +
>> > +       ret = mtk_gpiochip_register(dev);
>> > +       if (ret)
>> > +               return ret;
>> > +
>> > +       return 0;
>> > +}
>>
>> How come this function is exported? It should be probed like any other driver.
>
> It makes no difference. We could reuse it for other MTK chips in this
> way.
>
> In pinctrl-mt7623.c (patch 11/18):
>
> static int mtk_pinctrl_mt7623_probe(struct udevice *dev)
> {
>
> //common probed function
>         mtk_pinctrl_probe(dev, &mt7623_data);
>
> //proprietary operations for the chip....
>         mt7623_bonding_disable(dev);
>         ....
> }
>
> The similar usage is meson_pinctrl_probe() in pinctrl-meson.c

OK I see, so it is a common function called by all probe functions?

In that case, can it have a _common suffix?

Regards,
Simon


More information about the U-Boot mailing list