mbox series

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

Message ID 20200110144711.81938-1-giulio.benetti@benettiengineering.com
Headers show
Series Add i.MXRT family support | expand

Message

Giulio Benetti Jan. 10, 2020, 2:46 p.m. UTC
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