All of lore.kernel.org
 help / color / mirror / Atom feed
From: Giulio Benetti <giulio.benetti@benettiengineering.com>
To: u-boot@lists.denx.de
Subject: [PATCH 12/20] pinctrl: add i.MXRT driver
Date: Mon, 9 Dec 2019 12:54:33 +0100	[thread overview]
Message-ID: <89bb0c48-87ca-c33c-1077-79c91b82a830@benettiengineering.com> (raw)
In-Reply-To: <20191208154517.663de138@jawa>

Hi Lukasz, Stefano, Fabio, all,

On 12/8/19 3:45 PM, Lukasz Majewski wrote:
> On Wed,  4 Dec 2019 18:44:31 +0100
> Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:
> 
>> Add i.MXRT pinctrl driver.
>>
>> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
>> ---
>>   drivers/pinctrl/nxp/Kconfig         | 14 ++++++++++
>>   drivers/pinctrl/nxp/Makefile        |  1 +
>>   drivers/pinctrl/nxp/pinctrl-imxrt.c | 40
>> +++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+)
>>   create mode 100644 drivers/pinctrl/nxp/pinctrl-imxrt.c
>>
>> diff --git a/drivers/pinctrl/nxp/Kconfig b/drivers/pinctrl/nxp/Kconfig
>> index f2e67ca231..ec55351e61 100644
>> --- a/drivers/pinctrl/nxp/Kconfig
>> +++ b/drivers/pinctrl/nxp/Kconfig
>> @@ -99,6 +99,20 @@ config PINCTRL_MXS
>>   	  familiy, e.g. i.MX28. This feature depends on device tree
>>   	  configuration.
>>   
>> +config PINCTRL_IMXRT
>> +	bool "IMXRT pinctrl driver"
>> +	depends on ARCH_IMXRT && PINCTRL_FULL
>> +	select DEVRES
>> +	select PINCTRL_IMX
>> +	help
>> +	  Say Y here to enable the imxrt pinctrl driver
>> +
>> +	  This provides a simple pinctrl driver for i.MXRT SoC
>> familiy.
>> +	  This feature depends on device tree configuration. This
>> driver
>> +	  is different from the linux one, this is a simple
>> implementation,
> 
> Could you add proper documentation entry (in ./doc/*) in which you
> would point out the differences between the full blown Linux driver and
> this U-Boot driver (I do guess that "only parsing 'fsl,pins'" is not
> the only difference - more details are welcome).

Sure, but isn't maybe something to be done in the document below?...

> And a bit more generic request - it is also nice to add some kind of
> ./doc/README.* documentation in which one can put some hints (or usage
> patterns) for in-uboot boards (like during development discovered HW
> issues, etc.). Such information is priceless when other community
> member wants to use this code/board (and NXP is very often silence
> about them :-) ).

Sure, I'm going to provide a 
./doc/device-tree-bindings/pinctrl/fsl,imx-pinctrl.txt unique for every 
imx at this point, ok?

And what do you think to provide defines in 
./include/dt-bindings/pinctrl/pinctrl-imxrt1050.h for every setting in 
PAD? Or better, in a pinctrl-imxrt.h to be included in 
pinctrl-imxrt1050.h(since they are the same)
I mean for pull-up/down, drive strength etc.

Because, even for me that I'm developing, I see it very difficult to 
recognize every setting from hexadecimal in dts file, and I loose the 
overview. I've already used IMX_PAD_SION to set pad as input.

Then I would be happy, to add all definitions for every imx and modify 
every dts file, but I'd need everyone to re-test its board.
What about this?

Best regards
-- 
Giulio Benetti
Benetti Engineering sas

>> +	  only parses the 'fsl,pins' property and configure related
>> +	  registers.
>> +
>>   config PINCTRL_VYBRID
>>   	bool "Vybrid (vf610) pinctrl driver"
>>   	depends on ARCH_VF610 && PINCTRL_FULL
>> diff --git a/drivers/pinctrl/nxp/Makefile
>> b/drivers/pinctrl/nxp/Makefile index b86448aac9..066ca75b65 100644
>> --- a/drivers/pinctrl/nxp/Makefile
>> +++ b/drivers/pinctrl/nxp/Makefile
>> @@ -8,3 +8,4 @@ obj-$(CONFIG_PINCTRL_IMX8)		+=
>> pinctrl-imx8.o obj-$(CONFIG_PINCTRL_IMX8M)		+=
>> pinctrl-imx8m.o obj-$(CONFIG_PINCTRL_MXS)		+=
>> pinctrl-mxs.o obj-$(CONFIG_PINCTRL_VYBRID)		+=
>> pinctrl-vf610.o +obj-$(CONFIG_PINCTRL_IMXRT)		+=
>> pinctrl-imxrt.o diff --git a/drivers/pinctrl/nxp/pinctrl-imxrt.c
>> b/drivers/pinctrl/nxp/pinctrl-imxrt.c new file mode 100644
>> index 0000000000..4a93941927
>> --- /dev/null
>> +++ b/drivers/pinctrl/nxp/pinctrl-imxrt.c
>> @@ -0,0 +1,40 @@
>> +// SPDX-License-Identifier: GPL-2.0+
>> +/*
>> + * Copyright (C) 2019
>> + * Author(s): Giulio Benetti <giulio.benetti@benettiengineering.com>
>> + */
>> +
>> +#include <common.h>
>> +#include <dm.h>
>> +#include <dm/pinctrl.h>
>> +
>> +#include "pinctrl-imx.h"
>> +
>> +static struct imx_pinctrl_soc_info imxrt_pinctrl_soc_info = {
>> +	.flags = ZERO_OFFSET_VALID,
>> +};
>> +
>> +static int imxrt_pinctrl_probe(struct udevice *dev)
>> +{
>> +	struct imx_pinctrl_soc_info *info =
>> +		(struct imx_pinctrl_soc_info
>> *)dev_get_driver_data(dev); +
>> +	return imx_pinctrl_probe(dev, info);
>> +}
>> +
>> +static const struct udevice_id imxrt_pinctrl_match[] = {
>> +	{ .compatible = "fsl,imxrt-iomuxc",
>> +	  .data = (ulong)&imxrt_pinctrl_soc_info },
>> +	{ /* sentinel */ }
>> +};
>> +
>> +U_BOOT_DRIVER(imxrt_pinctrl) = {
>> +	.name = "imxrt-pinctrl",
>> +	.id = UCLASS_PINCTRL,
>> +	.of_match = of_match_ptr(imxrt_pinctrl_match),
>> +	.probe = imxrt_pinctrl_probe,
>> +	.remove = imx_pinctrl_remove,
>> +	.priv_auto_alloc_size = sizeof(struct imx_pinctrl_priv),
>> +	.ops = &imx_pinctrl_ops,
>> +	.flags = DM_FLAG_PRE_RELOC,
>> +};
> 
> 
> 
> 
> Best regards,
> 
> Lukasz Majewski
> 
> --
> 
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
> 

  reply	other threads:[~2019-12-09 11:54 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-04 17:44 [PATCH 00/20] Add i.MXRT family support Giulio Benetti
2019-12-04 17:44 ` [PATCH 01/20] armv7m: cache: add mmu_set_region_dcache_behaviour() stub for compatibility Giulio Benetti
2019-12-04 17:44 ` [PATCH 02/20] spl: fix entry_point equal to load_addr Giulio Benetti
2019-12-08 14:37   ` Lukasz Majewski
2019-12-09 10:47     ` Giulio Benetti
2019-12-04 17:44 ` [PATCH 03/20] clk: imx: pllv3: register PLLV3 GENERIC and USB as 2 different clocks Giulio Benetti
2019-12-08 14:33   ` Lukasz Majewski
2019-12-04 17:44 ` [PATCH 04/20] clk: imx: pllv3: set div_mask differently if PLLV3 is GENERIC or USB Giulio Benetti
2019-12-08 14:32   ` Lukasz Majewski
2019-12-04 17:44 ` [PATCH 05/20] clk: imx: pllv3: add enable() support Giulio Benetti
2019-12-04 17:44 ` [PATCH 06/20] clk: imx: pllv3: add disable() support Giulio Benetti
2019-12-08 14:27   ` Lukasz Majewski
2019-12-04 17:44 ` [PATCH 07/20] clk: imx: pllv3: add set_rate() support Giulio Benetti
2019-12-08 14:27   ` Lukasz Majewski
2019-12-04 17:44 ` [PATCH 08/20] clk: imx: pllv3: add PLLV3_SYS support Giulio Benetti
2019-12-08 14:28   ` Lukasz Majewski
2019-12-04 17:44 ` [PATCH 09/20] clk: imx: pllv3: add support for PLLV3_AV type Giulio Benetti
2019-12-08 15:05   ` Lukasz Majewski
2019-12-09 17:13     ` Giulio Benetti
2019-12-10  0:07       ` Lukasz Majewski
2019-12-11 12:47         ` Giulio Benetti
2019-12-12 10:05           ` Lukasz Majewski
2019-12-04 17:44 ` [PATCH 10/20] clk: imx: pfd: add set_rate() Giulio Benetti
2019-12-08 14:38   ` Lukasz Majewski
2019-12-04 17:44 ` [PATCH 11/20] clk: imx: add i.IMXRT1050 clk driver Giulio Benetti
2019-12-08 14:40   ` Lukasz Majewski
2019-12-09 10:49     ` Giulio Benetti
2019-12-09 10:53       ` Giulio Benetti
2019-12-09 23:36         ` Lukasz Majewski
2019-12-11 12:30           ` Giulio Benetti
2019-12-04 17:44 ` [PATCH 12/20] pinctrl: add i.MXRT driver Giulio Benetti
2019-12-08 14:45   ` Lukasz Majewski
2019-12-09 11:54     ` Giulio Benetti [this message]
2019-12-09 23:46       ` Lukasz Majewski
2019-12-11 12:40         ` Giulio Benetti
2019-12-11 23:46           ` Lukasz Majewski
2019-12-04 17:44 ` [PATCH 13/20] ARM: dts: imxrt1050: add dtsi file Giulio Benetti
2019-12-04 23:01   ` Giulio Benetti
2019-12-08 14:46   ` Lukasz Majewski
2019-12-09 10:51     ` Giulio Benetti
2019-12-04 17:44 ` [PATCH 14/20] serial_lpuart: add clock enable if CONFIG_CLK is defined Giulio Benetti
2019-12-08 14:52   ` Lukasz Majewski
2019-12-09 15:20     ` Giulio Benetti
2019-12-09 23:48       ` Lukasz Majewski
2019-12-17 18:37         ` Giulio Benetti
2019-12-30  1:21           ` Simon Glass
2019-12-04 17:44 ` [PATCH 15/20] serial_lpuart: add support for i.MXRT Giulio Benetti
2019-12-08 14:58   ` Lukasz Majewski
2019-12-09 12:56     ` Giulio Benetti
2020-01-03 11:39 ` [PATCH 00/20] Add i.MXRT family support Stefano Babic
2020-01-03 14:14   ` Giulio Benetti
2020-01-07 17:23   ` Giulio Benetti
2020-01-08 17:39     ` Simon Glass
2020-01-08 17:53       ` Giulio Benetti
2020-01-09 20:04         ` Simon Glass
2020-01-10 14:05           ` Giulio Benetti

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=89bb0c48-87ca-c33c-1077-79c91b82a830@benettiengineering.com \
    --to=giulio.benetti@benettiengineering.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.