[PATCH v2 00/21] Add i.MXRT family support

Giulio Benetti
2020-01-10T14:46:50Z

This patchset add support for i.MXRT family starting from i.MXRT1050 SoC.
It provides:
- i.MXRT1050 SoC entry
- i.MXRT pinctrl driver
- i.MXRT serial driver tweaking
- i.MXRT sdram controller driver
- i.MXRT usdhc driver tweaking
- i.MXRT1050-evk initial support

It uses all DM clocks all around and it loads correctly a basic Linux zImage.

Changes:
V1->V2:
* added gpio driver adaption
* fixed potential failure on lpuart get_clock() if DM is not used
* introduced CONFIG_IMXRT and CONFIG_IMXRT1050 to prevent using ARCH_IMXRT
* removed lcd enabling from defconfig(it's still not available)
* added -u-boot.dtsi for imxrt1050-evk.dts board
* re-grouped some patch separating support for board and support for i.MXRT family

Giulio Benetti (21):
spl: fix entry_point equal to load_addr
armv7m: cache: add mmu_set_region_dcache_behaviour() stub for
compatibility
clk: imx: pllv3: register PLLV3 GENERIC and USB as 2 different clocks
clk: imx: pllv3: set div_mask differently if PLLV3 is GENERIC or USB
clk: imx: pllv3: add enable() support
clk: imx: pllv3: add disable() support
clk: imx: pllv3: add set_rate() support
clk: imx: pllv3: add PLLV3_SYS support
clk: imx: pllv3: add support for PLLV3_AV type
clk: imx: pfd: add set_rate()
clk: imx: add i.IMXRT1050 clk driver
pinctrl: add i.MXRT driver
gpio: mxc_gpio: add support for i.MXRT1050
ARM: dts: imxrt1050: add dtsi file
serial_lpuart: add clock enable if CONFIG_CLK is defined
serial_lpuart: add support for i.MXRT
ram: add SDRAM driver for i.MXRT SoCs
mmc: fsl_esdhc: make if(CONFIG_IS_ENABLED(CLK)) an #if statement
mmc: fsl_esdhc: add compatible for fsl, imxrt-usdhc
imx: Add basic support for the NXP IMXRT10xx SoC family
imx: imxrt1050-evk: Add support for the NXP i.MXRT1050-EVK

arch/arm/Kconfig | 10 +
arch/arm/Makefile | 4 +-
arch/arm/cpu/armv7m/cache.c | 6 +
arch/arm/dts/Makefile | 2 +
arch/arm/dts/imxrt1050-evk-u-boot.dtsi | 44 +
arch/arm/dts/imxrt1050-evk.dts | 200 ++++
arch/arm/dts/imxrt1050.dtsi | 146 +++
arch/arm/include/asm/arch-imxrt/clock.h | 10 +
arch/arm/include/asm/arch-imxrt/gpio.h | 19 +
arch/arm/include/asm/arch-imxrt/imx-regs.h | 20 +
arch/arm/include/asm/arch-imxrt/imxrt.h | 11 +
arch/arm/include/asm/arch-imxrt/sys_proto.h | 11 +
arch/arm/mach-imx/Makefile | 3 +-
arch/arm/mach-imx/imxrt/Kconfig | 25 +
arch/arm/mach-imx/imxrt/Makefile | 7 +
arch/arm/mach-imx/imxrt/soc.c | 35 +
board/freescale/imxrt1050-evk/Kconfig | 22 +
board/freescale/imxrt1050-evk/MAINTAINERS | 6 +
board/freescale/imxrt1050-evk/Makefile | 6 +
board/freescale/imxrt1050-evk/README | 31 +
board/freescale/imxrt1050-evk/imximage.cfg | 36 +
board/freescale/imxrt1050-evk/imxrt1050-evk.c | 81 ++
common/spl/spl.c | 4 +-
configs/imxrt1050-evk_defconfig | 69 ++
drivers/clk/imx/Kconfig | 16 +
drivers/clk/imx/Makefile | 2 +
drivers/clk/imx/clk-imxrt1050.c | 292 +++++
drivers/clk/imx/clk-pfd.c | 22 +
drivers/clk/imx/clk-pllv3.c | 218 +++-
drivers/gpio/mxc_gpio.c | 7 +-
drivers/mmc/Kconfig | 2 +-
drivers/mmc/fsl_esdhc_imx.c | 41 +-
drivers/pinctrl/nxp/Kconfig | 14 +
drivers/pinctrl/nxp/Makefile | 1 +
drivers/pinctrl/nxp/pinctrl-imxrt.c | 40 +
drivers/ram/Kconfig | 8 +
drivers/ram/Makefile | 2 +
drivers/ram/imxrt_sdram.c | 439 ++++++++
drivers/serial/serial_lpuart.c | 31 +-
include/configs/imxrt1050-evk.h | 46 +
include/dt-bindings/clock/imxrt1050-clock.h | 65 ++
include/dt-bindings/memory/imxrt-sdram.h | 100 ++
include/dt-bindings/pinctrl/pins-imxrt1050.h | 993 ++++++++++++++++++
include/fsl_lpuart.h | 3 +-
44 files changed, 3111 insertions(+), 39 deletions(-)
create mode 100644 arch/arm/dts/imxrt1050-evk-u-boot.dtsi
create mode 100644 arch/arm/dts/imxrt1050-evk.dts
create mode 100644 arch/arm/dts/imxrt1050.dtsi
create mode 100644 arch/arm/include/asm/arch-imxrt/clock.h
create mode 100644 arch/arm/include/asm/arch-imxrt/gpio.h
create mode 100644 arch/arm/include/asm/arch-imxrt/imx-regs.h
create mode 100644 arch/arm/include/asm/arch-imxrt/imxrt.h
create mode 100644 arch/arm/include/asm/arch-imxrt/sys_proto.h
create mode 100644 arch/arm/mach-imx/imxrt/Kconfig
create mode 100644 arch/arm/mach-imx/imxrt/Makefile
create mode 100644 arch/arm/mach-imx/imxrt/soc.c
create mode 100644 board/freescale/imxrt1050-evk/Kconfig
create mode 100644 board/freescale/imxrt1050-evk/MAINTAINERS
create mode 100644 board/freescale/imxrt1050-evk/Makefile
create mode 100644 board/freescale/imxrt1050-evk/README
create mode 100644 board/freescale/imxrt1050-evk/imximage.cfg
create mode 100644 board/freescale/imxrt1050-evk/imxrt1050-evk.c
create mode 100644 configs/imxrt1050-evk_defconfig
create mode 100644 drivers/clk/imx/clk-imxrt1050.c
create mode 100644 drivers/pinctrl/nxp/pinctrl-imxrt.c
create mode 100644 drivers/ram/imxrt_sdram.c
create mode 100644 include/configs/imxrt1050-evk.h
create mode 100644 include/dt-bindings/clock/imxrt1050-clock.h
create mode 100644 include/dt-bindings/memory/imxrt-sdram.h
create mode 100644 include/dt-bindings/pinctrl/pins-imxrt1050.h

--
2.20.1