mbox series

[00/13] This patchset aims to add initial support for the i.MXRT10xx family

Message ID 20211024154027.1479261-1-Mr.Bossman075@gmail.com (mailing list archive)
Headers show
Series This patchset aims to add initial support for the i.MXRT10xx family | expand

Message

Jesse T Oct. 24, 2021, 3:40 p.m. UTC
Add initial support for the i.MXRT10xx SoC family
starting with the i.IMXRT1050 SoC.
This patchset contains:
- i.MXRT10xx family infrastructure
- i.MXRT1050 pinctrl driver adaption
- i.MXRT1050 clock driver adaption
- i.MXRT1050 sd-card driver adaption
- i.MXRT1050 uart driver adaption
- i.MXRT1050-evk basic support

Giulio Benetti (6):
  ARM: imx: add initial support for i.MXRT10xx family
  dt-bindings: imx: Add pinctrl binding doc for i.MXRT1050
  pinctrl: freescale: Add i.MXRT1050 pinctrl driver support
  dt-bindings: imx: Add clock binding for i.MXRT1050
  ARM: dts: imx: add i.MXRT1050-EVK support
  ARM: imxrt_defconfig: add i.MXRT family defconfig

Jesse Taube (7):
  dt-bindings: pinctrl: add i.MXRT1050 pinctrl binding doc
  dt-bindings: clock: imx: Add documentation for i.MXRT clock
  clk: imx: Add initial support for i.MXRT clock driver
  dt-bindings: serial: fsl-lpuart: add i.MXRT compatible
  tty: serial: fsl_lpuart: add i.MXRT support
  dt-bindings: mmc: fsl-imx-esdhc: add i.MXRT compatible string
  mmc: sdhci-esdhc-imx: Add sdhc support for i.MXRT series

 .../bindings/clock/imxrt-clock.yaml           |  57 +
 .../bindings/mmc/fsl-imx-esdhc.yaml           |   1 +
 .../bindings/pinctrl/fsl,imxrt1050.yaml       |  85 ++
 .../bindings/serial/fsl-lpuart.yaml           |   1 +
 arch/arm/boot/dts/Makefile                    |   2 +
 arch/arm/boot/dts/imxrt1050-evk.dts           | 164 +++
 arch/arm/boot/dts/imxrt1050.dtsi              | 179 ++++
 arch/arm/configs/imxrt_defconfig              | 157 +++
 arch/arm/mach-imx/Kconfig                     |   9 +
 arch/arm/mach-imx/Makefile                    |   2 +
 arch/arm/mach-imx/mach-imxrt.c                |  19 +
 drivers/clk/imx/Kconfig                       |   3 +
 drivers/clk/imx/Makefile                      |   1 +
 drivers/clk/imx/clk-imxrt.c                   | 156 +++
 drivers/mmc/host/sdhci-esdhc-imx.c            |   7 +
 drivers/pinctrl/freescale/Kconfig             |   7 +
 drivers/pinctrl/freescale/Makefile            |   1 +
 drivers/pinctrl/freescale/pinctrl-imxrt1050.c | 349 ++++++
 drivers/tty/serial/fsl_lpuart.c               |   8 +
 include/dt-bindings/clock/imxrt1050-clock.h   |  72 ++
 include/dt-bindings/pinctrl/pins-imxrt1050.h  | 993 ++++++++++++++++++
 21 files changed, 2273 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/clock/imxrt-clock.yaml
 create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,imxrt1050.yaml
 create mode 100644 arch/arm/boot/dts/imxrt1050-evk.dts
 create mode 100644 arch/arm/boot/dts/imxrt1050.dtsi
 create mode 100644 arch/arm/configs/imxrt_defconfig
 create mode 100644 arch/arm/mach-imx/mach-imxrt.c
 create mode 100644 drivers/clk/imx/clk-imxrt.c
 create mode 100644 drivers/pinctrl/freescale/pinctrl-imxrt1050.c
 create mode 100644 include/dt-bindings/clock/imxrt1050-clock.h
 create mode 100644 include/dt-bindings/pinctrl/pins-imxrt1050.h

Comments

Arnd Bergmann Oct. 24, 2021, 7:32 p.m. UTC | #1
On Sun, Oct 24, 2021 at 5:40 PM Jesse Taube <mr.bossman075@gmail.com> wrote:
>
> Add initial support for the i.MXRT10xx SoC family
> starting with the i.IMXRT1050 SoC.
> This patchset contains:
> - i.MXRT10xx family infrastructure
> - i.MXRT1050 pinctrl driver adaption
> - i.MXRT1050 clock driver adaption
> - i.MXRT1050 sd-card driver adaption
> - i.MXRT1050 uart driver adaption
> - i.MXRT1050-evk basic support

Can you expand the description a bit more so it makes sense as a changelog
text for the merge commit? It's fairly rare these days that we add support for a
MMU-less platform, so it would be good if the introductory text answers
questions like:

- what is this platform used for, and what is the purpose of running Linux on it
  in place of the usual RTOS variants?

- are you doing this just for fun, or are there any commercial use cases?

- what are the minimum and maximum memory configurations this has
  been tested with?

- what user space are you testing with: any particular distro that supports
  this platform, and do you run elf-fdpic or flat binaries.

- are you planning to also support the newer i.MXRT11xx or
  Cortex-R based designs like the S32S?

       Arnd
Jesse T Oct. 24, 2021, 10:21 p.m. UTC | #2
Hello Arnd,

Giulio is in CC

On 10/24/21 3:32 PM, Arnd Bergmann wrote:
> On Sun, Oct 24, 2021 at 5:40 PM Jesse Taube <mr.bossman075@gmail.com> wrote:
>>
>> Add initial support for the i.MXRT10xx SoC family
>> starting with the i.IMXRT1050 SoC.
>> This patchset contains:
>> - i.MXRT10xx family infrastructure
>> - i.MXRT1050 pinctrl driver adaption
>> - i.MXRT1050 clock driver adaption
>> - i.MXRT1050 sd-card driver adaption
>> - i.MXRT1050 uart driver adaption
>> - i.MXRT1050-evk basic support
> 
> Can you expand the description a bit more so it makes sense as a changelog
> text for the merge commit? It's fairly rare these days that we add support for a
> MMU-less platform, so it would be good if the introductory text answers
> questions like:
> 
> - what is this platform used for, and what is the purpose of running Linux on it
>   in place of the usual RTOS variants?
> 
> - are you doing this just for fun, or are there any commercial use cases?

The purpose of this is for learning and fun, as far as we know there are no
commercial use cases, but we hope there will be.

> - what are the minimum and maximum memory configurations this has
>   been tested with?

We both have only tested with 32MB of ram on i.MXRT1050/60-evk.

> - what user space are you testing with: any particular distro that supports
>   this platform, and do you run elf-fdpic or flat binaries.

We are using Buildroot[1] and that only uses flat binaries.
i.MXRT1050/20 have already been up-streamed to U-Boot[2].

> - are you planning to also support the newer i.MXRT11xx or
>   Cortex-R based designs like the S32S?

We plan to support the i.MXRT11xx, but unsure about the S32x, it depends 
on the interest. 

> 
>        Arnd
>
[1]: https://github.com/Mr-Bossman/imxrt-linux-buildroot.git
[2]: https://source.denx.de/u-boot/u-boot/-/blob/master/configs/imxrt1050-evk_defconfig

Thank you, 
Jesse Taube.
Giulio Benetti Oct. 24, 2021, 11:12 p.m. UTC | #3
Hello Arnd, Jesse, All,

Jesse and I have answered together, but I’ve missed 1 point below

> Il giorno 25 ott 2021, alle ore 00:21, Jesse Taube <mr.bossman075@gmail.com> ha scritto:
> 
> Hello Arnd,
> 
> Giulio is in CC
> 
>> On 10/24/21 3:32 PM, Arnd Bergmann wrote:
>>> On Sun, Oct 24, 2021 at 5:40 PM Jesse Taube <mr.bossman075@gmail.com> wrote:
>>> 
>>> Add initial support for the i.MXRT10xx SoC family
>>> starting with the i.IMXRT1050 SoC.
>>> This patchset contains:
>>> - i.MXRT10xx family infrastructure
>>> - i.MXRT1050 pinctrl driver adaption
>>> - i.MXRT1050 clock driver adaption
>>> - i.MXRT1050 sd-card driver adaption
>>> - i.MXRT1050 uart driver adaption
>>> - i.MXRT1050-evk basic support
>> 
>> Can you expand the description a bit more so it makes sense as a changelog
>> text for the merge commit? It's fairly rare these days that we add support for a
>> MMU-less platform, so it would be good if the introductory text answers
>> questions like:
>> 
>> - what is this platform used for, and what is the purpose of running Linux on it
>>  in place of the usual RTOS variants?

I’ve forgotten to mention the reason of Linux here before with Jesse.
I think that someone could find an easier ready to go environment with Linux(and Buildroot as build system), not that much for graphics but for all the utilities starting from bash.
Graphics can anyway benefit from qt lite or other lightweight library statically built.

This SoC is used around the world with MCUXPRESSO and it’s the nxp answer to stm32f7 more or less.

A private company already provide a commercial Linux 4.5 BSP for it(we’re rewritten from scratch), so I think this means that someone is interested.

>> 
>> - are you doing this just for fun, or are there any commercial use cases?
> 
> The purpose of this is for learning and fun, as far as we know there are no
> commercial use cases, but we hope there will be.

At the moment there is no request, but because of upstreaming maybe there could be.

> 
>> - what are the minimum and maximum memory configurations this has
>>  been tested with?
> 
> We both have only tested with 32MB of ram on i.MXRT1050/60-evk.

Those 2 SoCs can expand up to 64MB.

> 
>> - what user space are you testing with: any particular distro that supports
>>  this platform, and do you run elf-fdpic or flat binaries.
> 
> We are using Buildroot[1] and that only uses flat binaries.
> i.MXRT1050/20 have already been up-streamed to U-Boot[2].
> 
>> - are you planning to also support the newer i.MXRT11xx or
>>  Cortex-R based designs like the S32S?
> 
> We plan to support the i.MXRT11xx, but unsure about the S32x, it depends 
> on the interest. 
> 
>> 
>>       Arnd
>> 
> [1]: https://github.com/Mr-Bossman/imxrt-linux-buildroot.git
> [2]: https://source.denx.de/u-boot/u-boot/-/blob/master/configs/imxrt1050-evk_defconfig
> 
> Thank you, 
> Jesse Taube.

The rest is already answered

Best regards
Giulio Benetti
Benetti Engineering sas
Rob Herring Nov. 1, 2021, 8:10 p.m. UTC | #4
On Sun, Oct 24, 2021 at 11:40:17AM -0400, Jesse Taube wrote:
> From: Giulio Benetti <giulio.benetti@benettiengineering.com>
> 
> Add binding doc for i.MXRT1050 pinctrl driver.
> 
> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
> ---
>  include/dt-bindings/pinctrl/pins-imxrt1050.h | 993 +++++++++++++++++++
>  1 file changed, 993 insertions(+)
>  create mode 100644 include/dt-bindings/pinctrl/pins-imxrt1050.h
> 
> diff --git a/include/dt-bindings/pinctrl/pins-imxrt1050.h b/include/dt-bindings/pinctrl/pins-imxrt1050.h
> new file mode 100644
> index 000000000000..a29031ab3de0
> --- /dev/null
> +++ b/include/dt-bindings/pinctrl/pins-imxrt1050.h
> @@ -0,0 +1,993 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */

Needs to match the .dts files which has BSD-3-Clause. The rest of i.MX 
uses MIT IIRC. You should align with that.
Jesse T Nov. 2, 2021, 3:32 a.m. UTC | #5
On 11/1/21 16:10, Rob Herring wrote:
> On Sun, Oct 24, 2021 at 11:40:17AM -0400, Jesse Taube wrote:
>> From: Giulio Benetti <giulio.benetti@benettiengineering.com>
>>
>> Add binding doc for i.MXRT1050 pinctrl driver.
>>
>> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
>> Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
>> ---
>>   include/dt-bindings/pinctrl/pins-imxrt1050.h | 993 +++++++++++++++++++
>>   1 file changed, 993 insertions(+)
>>   create mode 100644 include/dt-bindings/pinctrl/pins-imxrt1050.h
>>
>> diff --git a/include/dt-bindings/pinctrl/pins-imxrt1050.h b/include/dt-bindings/pinctrl/pins-imxrt1050.h
>> new file mode 100644
>> index 000000000000..a29031ab3de0
>> --- /dev/null
>> +++ b/include/dt-bindings/pinctrl/pins-imxrt1050.h
>> @@ -0,0 +1,993 @@
>> +/* SPDX-License-Identifier: GPL-2.0+ */
> 
> Needs to match the .dts files which has BSD-3-Clause. The rest of i.MX
> uses MIT IIRC. You should align with that.
> 
It seems to use "GPL-2.0+ OR MIT", I shall replace the both with that.