[U-Boot] [PATCH v5] Exynos5: Pinmux: Add fdt for pinmux
Simon Glass
sjg at chromium.org
Fri Mar 8 22:19:32 CET 2013
Hi Akshay,
On Fri, Mar 8, 2013 at 4:08 AM, Akshay Saraswat <akshay.s at samsung.com>wrote:
> Hi Simon,
>
> >Hi Akshay,
> >
> >On Thu, Mar 7, 2013 at 6:09 AM, Akshay Saraswat <akshay.s at samsung.com>
> wrote:
> >> This patch adds fdt nodes for peripherals which require
> >> pin muxing and configuration. Device tree bindings for pinctrl
> >> are kept same as required for Linux. Existing pinmux code
> >> modified to retrieve gpio range and function related info from fdt.
> >>
> >> Depends-on: [U-Boot] [PATCH 0/4 V3] EXYNOS5: Add GPIO numbering feature
> >> URL: http://lists.denx.de/pipermail/u-boot/2013-February/146151.html
> >>
> >> Signed-off-by: Akshay Saraswat <akshay.s at samsung.com>
> >> ---
> >> Changes since v1:
> >> - Device tree bindings changed to linux style.
> >> - Added documentation for samsung pinctrl.
> >>
> >> Changes since v2:
> >> - Rebased as per new version of GPIO numbering patch-set.
> >>
> >> Changes since v3:
> >> - Added comments to reduce ambiguity and increase readability.
> >> - Fixed few other nits.
> >>
> >> Changes since v4:
> >> - Added support for reading peripheral pinctrl subnode names
> from preipheral's node instead of hard coding.
> >>
> >
> >Well I have to say this is looking really nice. From what I can tell
> >you are using the Linux binding for samsung,pinctrl-names - please can
> >you add in that binding information to your binding file - I can't see
> >it there?
> >
>
> "samsung,pinctrl-names" is already mentioned in example 3 of
> doc/device-tree-bindings/samsung-pinctrl.txt.
> samsung-pinctrl.txt in u-boot and kernel are same except the name exynos5
> replaced exynos4210.
> Please tell me, if I misunderstood the requirement.
>
I don't see 'samsung,pinctrl-names' in example 3, but also, is it possible
to mention this in the binding somehow?
The names should match the kernel if possible.
>
> >
> >The interesting thing is that you should at some point (further patch)
> >be able to remove the alias stuff and have the driver's pass their
> >node offset into this function. Then we can drop the peripheral IDs
> >altogether perhaps?
> >
>
> I think for now we should keep PERIPH_ID's because same pinmux.c and
> functions are being used by
> exynos4 and exynos4x12. Since, I thought we should not break support for
> these SoC's, I kept node
> retrieval in Pinmux itself instead of drivers or smdk5250.c. Please
> suggest.
>
That's fine. I suspect perhaps driver could pass their node offset, but
let's worry about that another time.
>
> >
> >> arch/arm/cpu/armv7/exynos/pinmux.c | 357 +++++++-------
> >> arch/arm/dts/exynos5250-pinctrl.dtsi | 675
> +++++++++++++++++++++++++++
> >> arch/arm/dts/exynos5250.dtsi | 92 ++++
> >> board/samsung/dts/exynos5250-smdk5250.dts | 11 +
> >> doc/device-tree-bindings/samsung-pinctrl.txt | 253 ++++++++++
> >> include/fdtdec.h | 4 +
> >> lib/fdtdec.c | 4 +
> >> 7 files changed, 1231 insertions(+), 165 deletions(-)
> >> create mode 100644 arch/arm/dts/exynos5250-pinctrl.dtsi
> >> create mode 100644 doc/device-tree-bindings/samsung-pinctrl.txt
> >>
> >[..]
> >
> >> diff --git a/include/fdtdec.h b/include/fdtdec.h
> >> index 77f244f..26692e5 100644
> >> --- a/include/fdtdec.h
> >> +++ b/include/fdtdec.h
> >> @@ -81,6 +81,10 @@ enum fdt_compat_id {
> >> COMPAT_SAMSUNG_EXYNOS_EHCI, /* Exynos EHCI controller */
> >> COMPAT_SAMSUNG_EXYNOS_USB_PHY, /* Exynos phy controller for
> usb2.0 */
> >> COMPAT_MAXIM_MAX77686_PMIC, /* MAX77686 PMIC */
> >> + COMPAT_SAMSUNG_EXYNOS_UART, /* Exynos serial */
> >> + COMPAT_SAMSUNG_EXYNOS_MSHC, /* Exynos MMC controller */
> >> + COMPAT_SAMSUNG_EXYNOS_I2S, /* Exynos MMC controller */
>
This comment should be I2C.
> >> + COMPAT_SAMSUNG_PINCTRL, /* PINCTRL */
> >>
> >> COMPAT_COUNT,
> >> };
> >> diff --git a/lib/fdtdec.c b/lib/fdtdec.c
> >> index 3ae348d..88dd669 100644
> >> --- a/lib/fdtdec.c
> >> +++ b/lib/fdtdec.c
> >> @@ -56,6 +56,10 @@ static const char * const compat_names[COMPAT_COUNT]
> = {
> >> COMPAT(SAMSUNG_EXYNOS_EHCI, "samsung,exynos-ehci"),
> >> COMPAT(SAMSUNG_EXYNOS_USB_PHY, "samsung,exynos-usb-phy"),
> >> COMPAT(MAXIM_MAX77686_PMIC, "maxim,max77686_pmic"),
> >> + COMPAT(SAMSUNG_EXYNOS_UART, "samsung,exynos-uart"),
> >> + COMPAT(SAMSUNG_EXYNOS_MSHC, "samsung,exynos-mshc"),
> >> + COMPAT(SAMSUNG_EXYNOS_I2S, "samsung,exynos-i2s"),
> >> + COMPAT(SAMSUNG_PINCTRL, "samsung,pinctrl"),
> >
> >Do these match the kernel names?
> >
>
> In kernel these are mentioned as ""samsung,exynos5250-dw-mshc"" &
> "samsung,exynos4210-uart".
> I wanted to keep it consistent with others like "samsung,exynos-ehci",
> "samsung,exynos-spi" etc.,
> hence, made "samsung,exynos-mshc" & "samsung,exynos-uart". Shall I change
> it ?
>
Yes, sorry, but I think we should keep things the same as the kernel.
Perhaps that should be a separate patch to sync up the names?
Regards,
Simon
>
> >
> >> };
> >>
> >
>
> Regards,
> Akshay Saraswat
>
More information about the U-Boot
mailing list