[U-Boot] [PATCH 5/7] mach-snapdragon: Introduce pinctrl driver
Simon Glass
sjg at chromium.org
Mon May 14 19:51:38 UTC 2018
Hi Ramon,
On 14 May 2018 at 01:10, Ramon Fried <ramon.fried at gmail.com> wrote:
> On Mon, May 14, 2018 at 1:00 AM, Simon Glass <sjg at chromium.org> wrote:
>> Hi Ramon,
>>
>> On 12 May 2018 at 20:15, Ramon Fried <ramon.fried at gmail.com> wrote:
>>> This patch adds pinmux and pinctrl driver for TLMM
>>> subsystem in snapdragon chipsets.
>>> Currently, supporting only 8016, but implementation is
>>> generic and 8096 can be added easily.
>>>
>>> Driver is using the generic dt-bindings and doesn't
>>> introduce any new bindings (yet).
>>>
>>> Signed-off-by: Ramon Fried <ramon.fried at gmail.com>
>>> ---
>>> arch/arm/mach-snapdragon/Makefile | 2 +
>>> arch/arm/mach-snapdragon/pinctrl-apq8016.c | 162 +++++++++++++++++++++++
>>> arch/arm/mach-snapdragon/pinctrl-snapdragon.c | 118 +++++++++++++++++
>>> arch/arm/mach-snapdragon/pinctrl-snapdragon.h | 21 +++
>>> configs/dragonboard410c_defconfig | 5 +
>>> include/dt-bindings/pinctrl/pinctrl-snapdragon.h | 22 +++
>>> 6 files changed, 330 insertions(+)
>>> create mode 100644 arch/arm/mach-snapdragon/pinctrl-apq8016.c
>>> create mode 100644 arch/arm/mach-snapdragon/pinctrl-snapdragon.c
>>> create mode 100644 arch/arm/mach-snapdragon/pinctrl-snapdragon.h
>>> create mode 100644 include/dt-bindings/pinctrl/pinctrl-snapdragon.h
>>>
>>> diff --git a/arch/arm/mach-snapdragon/Makefile b/arch/arm/mach-snapdragon/Makefile
>>> index 1c23dc52cf..1d35fea912 100644
>>> --- a/arch/arm/mach-snapdragon/Makefile
>>> +++ b/arch/arm/mach-snapdragon/Makefile
>>> @@ -6,4 +6,6 @@ obj-$(CONFIG_TARGET_DRAGONBOARD820C) += clock-apq8096.o
>>> obj-$(CONFIG_TARGET_DRAGONBOARD820C) += sysmap-apq8096.o
>>> obj-$(CONFIG_TARGET_DRAGONBOARD410C) += clock-apq8016.o
>>> obj-$(CONFIG_TARGET_DRAGONBOARD410C) += sysmap-apq8016.o
>>> +obj-$(CONFIG_TARGET_DRAGONBOARD410C) += pinctrl-apq8016.o
>>> +obj-$(CONFIG_TARGET_DRAGONBOARD410C) += pinctrl-snapdragon.o
>>> obj-y += clock-snapdragon.o
>>> diff --git a/arch/arm/mach-snapdragon/pinctrl-apq8016.c b/arch/arm/mach-snapdragon/pinctrl-apq8016.c
>>> new file mode 100644
>>> index 0000000000..8e57e2338c
>>> --- /dev/null
>>> +++ b/arch/arm/mach-snapdragon/pinctrl-apq8016.c
>>> @@ -0,0 +1,162 @@
>>> +// SPDX-License-Identifier: GPL-2.0+
>>> +/*
>>> + * Qualcomm APQ8016 pinctrl
>>> + *
>>> + * (C) Copyright 2018 Ramon Fried <ramon.fried at gmail.com>
>>> + *
>>> + */
>>> +
>>> +#include "pinctrl-snapdragon.h"
>>> +#include <common.h>
>>> +
>>> +const char * const msm_pinctrl_pins[] = {
>>> + "GPIO_0",
>>> + "GPIO_1",
>>> + "GPIO_2",
>>> + "GPIO_3",
>>> + "GPIO_4",
>>> + "GPIO_5",
>>> + "GPIO_6",
>>> + "GPIO_7",
>>
>> This seems inefficient. Could you not sprintf() the name for most of
>> these values?
> The origin of this table is from the Linux kernel driver.
> I'm not sure I understand how sprintf will more efficient, do you want
> to fill up this table on runtime ?
I think this table is only used in one function, so you could create
the string there perhaps?
Regards,
Simon
More information about the U-Boot
mailing list