All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v6 00/34]  i.MX: Add i.MX8QXP support
@ 2018-10-18 12:28 Anatolij Gustschin
  2018-10-18 12:28 ` [U-Boot] [PATCH v6 01/34] dt-bindings: pinctrl: add i.MX8QXP pads definition Anatolij Gustschin
                   ` (33 more replies)
  0 siblings, 34 replies; 45+ messages in thread
From: Anatolij Gustschin @ 2018-10-18 12:28 UTC (permalink / raw)
  To: u-boot

This patchset is to upstream basic i.MX8QXP and MEK board support, with
some drivers update to support i.MX8QXP. The information about the processor
could be found under

 https://www.nxp.com/products/processors-and-microcontrollers/applications-processors/i.mx-applications-processors/i.mx-8-processors/i.mx-8x-family-arm-cortex-a35-3d-graphics-4k-video-dsp-error-correcting-code-on-ddr:i.MX8X

The architecture of i.MX8QXP is different from i.MX6/7/8M, inside i.MX8QXP,
there is a dedicated processor(SCU) used for power/clock/pin/
pad/resource management/thermal and etc.

V6:
This series was rebased on master and addresses some v5 review comments
and additionally adds FEC support. Summary of the changes to v5 patches
is below.

Patch 08/32:
 - fixed error string: s/clk/iomux

Patch 09/32:
 - minor coding style fix (dropped empty lines), added API functions for
   reading SCFW buildinfo and for reading MAC address from fuses

Patch 18/32:
 - fixed typo in subject and one line over 80 chars warning

Patch 19/32:
 - s/u-boot/U-Boot in comments

Added two new patches (20/34 and 21/34) for adding uclass cpu driver and
extension for reading MAC address from fuses (required for FEC driver)

Extended original patch 25/32:
 - added support for more I2C/ENET/UART clocks, added 'clk dump' command
 - fixed to propagate error codes (if returned by sc_pm_* API) to the caller
 - fixed printf formatting in debug()
 - extended for clock ID range checks to differentiate between not yet
   supported and invalid clock IDs.

Patch 28/32:
 - guard get_lpuart_clk_rate() by IS_ENABLED to prevent build issues

Patch 30/32:
 - propagate error code if clk api calls fail

Patch 31/32:
 - added FEC nodes and aliases

Patch 32/32:
In DTS:
 - added fec1 support, pca9646 switch description on i2c1 bus
   with i2c slaves
 - removed not used 'pinctrl-assert-gpios' property
 - s/lpi1cgrp/lpi2c1grp/
 - added 'dm-pre-reloc' to cpu0 node (needed for print_cpuinfo()!)

In board code:
 - reworked gpio init (repaced by init via properties in DTS),
   dropped GPIO5_9 mux init (was unused, will be added later
   when adding USB support)
 - added board_phy_config() for FEC0 support
 - added SCFW build info output
 - moved CONFIG_MXC_GPIO from board config header to defconfig
 - added required FEC driver options to the board config header
 - updated defconfig: enabled 'clk', 'cpu' and 'dm' commands,
   PHY, FEC, MII and MXC GPIO support

V5:
Addressed Lothar Waßmann's comments for patch 24 and 32.
Rebased on master.

V4:
Add reviewed tag from Anatolij Gustschin
Addressed comments from Anatolig for patch "misc: add i.MX8 misc driver"
Addressed comments from Anatolig for patch "misc: imx8: add scfw api impementation"
 Merged the files into one
 Moved one error handle to patch 4
Moved patch "arm: global_data: add scu_dev for i.MX8" to patch 7
For Fabio's comments to imx-mkimage, I'll start the porting work, but needs
more time, it will be not be in this patchset.

V3:

patch 7: use CONFIG_IMX8
patch 29: use CONFIG_IMX8
patch 32: Added README with scfw_tcm.bin link added
misc: remove sc_rpc_msg_t typedef, use struct sc_rpc_msg_s in patchset.

V2:
In this V2 patchset, the SCFW API is replaced by uclass driver
implementation, but the api name is not changed from scfw api.
The related macro definitions are kept in different api.h file
following SCFW API file structure.

Impelemnted scu misc driver to handle the low level communication
between Acore and SCU.
Implemented rm/pm/pad/misc protocol code to invoke misc_call for
different functionality.
The dm clk/pinctrl/power and others will invokde the protocol api
to communicate with SCU.

The arch/arm/mach-imx/imx8/clock.c currently is only a dummy
file to avoid build break for mxc_get_clock.

The i2c patch and common power domain patches are removed
from this patchset.

The imx8 name still kept, this is because NXP marketing
requires to use this name for i.MX branding.


Anatolij Gustschin (2):
  imx8: cpu: add function for reading FEC MAC from fuse
  imx8: cpu: add uclass based CPU driver

Peng Fan (30):
  dt-bindings: pinctrl: add i.MX8QXP pads definition
  dt-bindings: clock: dt-bindings: pinctrl: add i.MX8QXP clocks
    definition
  dt-bindings: soc: add i.MX8QXP pm and rsrc definition
  imx8: add scfw macro definition
  imx: add Kconfig entry for i.MX8QXP
  arm: build mach-imx for i.MX8
  arm: global_data: add scu_dev for i.MX8
  misc: add i.MX8 misc driver
  misc: imx8: add scfw api impementation
  imx: boot_mode: Add FLEXSPI boot entry
  imx8: add imx-regs header file
  imx8: pins: include i.MX8QXP pin header when CONFIG_IMX8QXP defined
  imx: add i.MX8 cpu type
  armv8: add cpu core helper functions
  imx8: add basic cpu support
  imx8: add boot device detection
  imx8: implement mmc_get_env_dev
  imx8: add mmu and dram related functions
  imx8: add arch_cpu_init arch_cpu_init_dm
  imx8: add iomux configuration api
  imx8: add dummy clock
  gpio: mxc_gpio: add support for i.MX8
  pinctrl: Add pinctrl driver for i.MX8
  power: Add power domain driver for i.MX8
  clk: imx: add clk driver for i.MX8QXP
  serial_lpuart: Update lpuart driver to support i.MX8
  serial: lpuart: support uclass clk api
  mmc: fsl_esdhc: add uclass clk support
  arm: dts: introduce dtsi for i.MX8QXP
  imx: add i.MX8QXP MEK board support

Ye Li (2):
  serial: lpuart: Enable RX and TX FIFO
  fsl_esdhc: Update usdhc driver to support i.MX8

 arch/arm/Kconfig                              |   8 +
 arch/arm/Makefile                             |   2 +-
 arch/arm/dts/Makefile                         |   2 +
 arch/arm/dts/fsl-imx8-ca35.dtsi               |  66 ++
 arch/arm/dts/fsl-imx8dx.dtsi                  | 499 ++++++++++++
 arch/arm/dts/fsl-imx8dxp.dtsi                 |  11 +
 arch/arm/dts/fsl-imx8qxp-mek.dts              | 246 ++++++
 arch/arm/dts/fsl-imx8qxp.dtsi                 |  51 ++
 arch/arm/include/asm/arch-imx/cpu.h           |   6 +
 arch/arm/include/asm/arch-imx8/clock.h        |  27 +
 arch/arm/include/asm/arch-imx8/gpio.h         |  21 +
 arch/arm/include/asm/arch-imx8/imx-regs.h     |  46 ++
 arch/arm/include/asm/arch-imx8/imx8-pins.h    |  15 +
 arch/arm/include/asm/arch-imx8/iomux.h        |  40 +
 arch/arm/include/asm/arch-imx8/power-domain.h |  15 +
 arch/arm/include/asm/arch-imx8/sci/rpc.h      | 158 ++++
 arch/arm/include/asm/arch-imx8/sci/sci.h      |  88 ++
 .../include/asm/arch-imx8/sci/svc/misc/api.h  |  30 +
 .../include/asm/arch-imx8/sci/svc/pad/api.h   |  57 ++
 .../include/asm/arch-imx8/sci/svc/pm/api.h    |  44 +
 .../include/asm/arch-imx8/sci/svc/rm/api.h    |  69 ++
 arch/arm/include/asm/arch-imx8/sci/types.h    | 220 +++++
 arch/arm/include/asm/arch-imx8/sys_proto.h    |  19 +
 arch/arm/include/asm/armv8/cpu.h              |  26 +
 arch/arm/include/asm/global_data.h            |   4 +
 arch/arm/include/asm/mach-imx/boot_mode.h     |   1 +
 arch/arm/include/asm/mach-imx/sys_proto.h     |   3 +
 arch/arm/mach-imx/Makefile                    |   1 +
 arch/arm/mach-imx/imx8/Kconfig                |  26 +
 arch/arm/mach-imx/imx8/Makefile               |   7 +
 arch/arm/mach-imx/imx8/clock.c                |  21 +
 arch/arm/mach-imx/imx8/cpu.c                  | 646 +++++++++++++++
 arch/arm/mach-imx/imx8/iomux.c                |  43 +
 board/freescale/imx8qxp_mek/Kconfig           |  14 +
 board/freescale/imx8qxp_mek/MAINTAINERS       |   6 +
 board/freescale/imx8qxp_mek/Makefile          |   7 +
 board/freescale/imx8qxp_mek/README            |  72 ++
 board/freescale/imx8qxp_mek/imx8qxp_mek.c     | 170 ++++
 board/freescale/mx8mq_evk/README              |  81 ++
 configs/imx8qxp_mek_defconfig                 |  51 ++
 drivers/clk/Kconfig                           |   1 +
 drivers/clk/Makefile                          |   1 +
 drivers/clk/imx/Kconfig                       |   6 +
 drivers/clk/imx/Makefile                      |   5 +
 drivers/clk/imx/clk-imx8.c                    | 393 +++++++++
 drivers/gpio/mxc_gpio.c                       |  30 +-
 drivers/misc/Makefile                         |   1 +
 drivers/misc/imx8/Makefile                    |   3 +
 drivers/misc/imx8/scu.c                       | 266 ++++++
 drivers/misc/imx8/scu_api.c                   | 367 +++++++++
 drivers/mmc/fsl_esdhc.c                       |  34 +-
 drivers/pinctrl/nxp/Kconfig                   |  18 +
 drivers/pinctrl/nxp/Makefile                  |   2 +
 drivers/pinctrl/nxp/pinctrl-imx.c             | 209 ++---
 drivers/pinctrl/nxp/pinctrl-imx.h             |  16 +
 drivers/pinctrl/nxp/pinctrl-imx8.c            |  40 +
 drivers/pinctrl/nxp/pinctrl-scu.c             |  66 ++
 drivers/power/domain/Kconfig                  |   8 +-
 drivers/power/domain/Makefile                 |   1 +
 drivers/power/domain/imx8-power-domain.c      | 315 ++++++++
 drivers/serial/serial_lpuart.c                | 128 ++-
 include/configs/imx8qxp_mek.h                 | 157 ++++
 include/dt-bindings/clock/imx8qxp-clock.h     | 583 ++++++++++++++
 include/dt-bindings/pinctrl/pads-imx8qxp.h    | 757 ++++++++++++++++++
 include/dt-bindings/soc/imx8_pd.h             | 188 +++++
 include/dt-bindings/soc/imx_rsrc.h            | 557 +++++++++++++
 include/fsl_lpuart.h                          |   2 +-
 67 files changed, 6931 insertions(+), 142 deletions(-)
 create mode 100644 arch/arm/dts/fsl-imx8-ca35.dtsi
 create mode 100644 arch/arm/dts/fsl-imx8dx.dtsi
 create mode 100644 arch/arm/dts/fsl-imx8dxp.dtsi
 create mode 100644 arch/arm/dts/fsl-imx8qxp-mek.dts
 create mode 100644 arch/arm/dts/fsl-imx8qxp.dtsi
 create mode 100644 arch/arm/include/asm/arch-imx8/clock.h
 create mode 100644 arch/arm/include/asm/arch-imx8/gpio.h
 create mode 100644 arch/arm/include/asm/arch-imx8/imx-regs.h
 create mode 100644 arch/arm/include/asm/arch-imx8/imx8-pins.h
 create mode 100644 arch/arm/include/asm/arch-imx8/iomux.h
 create mode 100644 arch/arm/include/asm/arch-imx8/power-domain.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/rpc.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/sci.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/types.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sys_proto.h
 create mode 100644 arch/arm/include/asm/armv8/cpu.h
 create mode 100644 arch/arm/mach-imx/imx8/Kconfig
 create mode 100644 arch/arm/mach-imx/imx8/Makefile
 create mode 100644 arch/arm/mach-imx/imx8/clock.c
 create mode 100644 arch/arm/mach-imx/imx8/cpu.c
 create mode 100644 arch/arm/mach-imx/imx8/iomux.c
 create mode 100644 board/freescale/imx8qxp_mek/Kconfig
 create mode 100644 board/freescale/imx8qxp_mek/MAINTAINERS
 create mode 100644 board/freescale/imx8qxp_mek/Makefile
 create mode 100644 board/freescale/imx8qxp_mek/README
 create mode 100644 board/freescale/imx8qxp_mek/imx8qxp_mek.c
 create mode 100644 board/freescale/mx8mq_evk/README
 create mode 100644 configs/imx8qxp_mek_defconfig
 create mode 100644 drivers/clk/imx/Kconfig
 create mode 100644 drivers/clk/imx/Makefile
 create mode 100644 drivers/clk/imx/clk-imx8.c
 create mode 100644 drivers/misc/imx8/Makefile
 create mode 100644 drivers/misc/imx8/scu.c
 create mode 100644 drivers/misc/imx8/scu_api.c
 create mode 100644 drivers/pinctrl/nxp/pinctrl-imx8.c
 create mode 100644 drivers/pinctrl/nxp/pinctrl-scu.c
 create mode 100644 drivers/power/domain/imx8-power-domain.c
 create mode 100644 include/configs/imx8qxp_mek.h
 create mode 100644 include/dt-bindings/clock/imx8qxp-clock.h
 create mode 100644 include/dt-bindings/pinctrl/pads-imx8qxp.h
 create mode 100644 include/dt-bindings/soc/imx8_pd.h
 create mode 100644 include/dt-bindings/soc/imx_rsrc.h

-- 
2.17.1

^ permalink raw reply	[flat|nested] 45+ messages in thread

end of thread, other threads:[~2018-11-07 12:42 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-18 12:28 [U-Boot] [PATCH v6 00/34] i.MX: Add i.MX8QXP support Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 01/34] dt-bindings: pinctrl: add i.MX8QXP pads definition Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 02/34] dt-bindings: clock: dt-bindings: pinctrl: add i.MX8QXP clocks definition Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 03/34] dt-bindings: soc: add i.MX8QXP pm and rsrc definition Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 04/34] imx8: add scfw macro definition Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 05/34] imx: add Kconfig entry for i.MX8QXP Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 06/34] arm: build mach-imx for i.MX8 Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 07/34] arm: global_data: add scu_dev " Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 08/34] misc: add i.MX8 misc driver Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 09/34] misc: imx8: add scfw api impementation Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 10/34] imx: boot_mode: Add FLEXSPI boot entry Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 11/34] imx8: add imx-regs header file Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 12/34] imx8: pins: include i.MX8QXP pin header when CONFIG_IMX8QXP defined Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 13/34] imx: add i.MX8 cpu type Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 14/34] armv8: add cpu core helper functions Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 15/34] imx8: add basic cpu support Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 16/34] imx8: add boot device detection Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 17/34] imx8: implement mmc_get_env_dev Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 18/34] imx8: add mmu and dram related functions Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 19/34] imx8: add arch_cpu_init arch_cpu_init_dm Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 20/34] imx8: cpu: add function for reading FEC MAC from fuse Anatolij Gustschin
2018-10-19  2:38   ` Peng Fan
2018-10-18 12:28 ` [U-Boot] [PATCH v6 21/34] imx8: cpu: add uclass based CPU driver Anatolij Gustschin
2018-10-19  3:04   ` Peng Fan
2018-10-18 12:28 ` [U-Boot] [PATCH v6 22/34] imx8: add iomux configuration api Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 23/34] imx8: add dummy clock Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 24/34] gpio: mxc_gpio: add support for i.MX8 Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 25/34] pinctrl: Add pinctrl driver " Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 26/34] power: Add power domain " Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 27/34] clk: imx: add clk driver for i.MX8QXP Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 28/34] serial_lpuart: Update lpuart driver to support i.MX8 Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 29/34] serial: lpuart: Enable RX and TX FIFO Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 30/34] serial: lpuart: support uclass clk api Anatolij Gustschin
2018-10-18 22:26   ` [U-Boot] [PATCH v7 " Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 31/34] fsl_esdhc: Update usdhc driver to support i.MX8 Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 32/34] mmc: fsl_esdhc: add uclass clk support Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 33/34] arm: dts: introduce dtsi for i.MX8QXP Anatolij Gustschin
2018-10-18 12:28 ` [U-Boot] [PATCH v6 34/34] imx: add i.MX8QXP MEK board support Anatolij Gustschin
2018-10-25 21:10   ` Tim Harvey
2018-10-26  0:46     ` Peng Fan
2018-10-26 17:17       ` Tim Harvey
2018-10-27 17:56         ` Fabio Estevam
2018-11-07  6:58           ` Jon Nettleton
2018-11-07 12:35             ` Fabio Estevam
2018-11-07 12:42               ` Peng Fan

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.