mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
u-boot-imx-20191009
------------------- Travis : https://travis-ci.org/sbabic/u-boot-imx/builds/595148532 - MX6UL / ULZ - Toradex board - Allow to set OCRAM for MX6Q/D - MX7ULP - MX8: (container image, imx8mq_mek), SCU API - fix several board booting from SD/EMMC (cubox-i for example) - pico boards -----BEGIN PGP SIGNATURE----- iQHDBAABCgAtFiEEiZClFGvhzbUNsmAvKMTY0yrV63cFAl2dlTAPHHNiYWJpY0Bk ZW54LmRlAAoJECjE2NMq1et3yfgL/1b4pKCwxswK42XkPpdHN1u/v2W/PVDanl/H EYxlluHVFH23bLTjLvrrgQjAnZD1VQhxWq3bwCMoJ8vb9tYQ3d9vq7XADQ0WVQV+ EfhE33fVRPRT3rEdhDKWm+y1mL8YPvYEBnr9li7qU9n1VxiwONPXxMXMqoo9/lbM b6lJaG5KkuK8Ofx3cYFVQeAEdsFYIJ2aXtTqsqrV9o2sjruOuG3Ux+6Ov+9O0crY q8MXvW6kwWkVVNriVV7Yal0pomPZfMTqft007En9Mv2FtXqMeCWZ4Xh2LtRylR7n ruIbo94jkPuwuZ0p/6SeiyopoG/hU/skrkJv1s8W70DOsyaunP2BsveYXEjMV2Rb DomotcJit9Ws6P7rOP1oI8OvxSxVN8n6mo23UviZd8MjNAmOm49BtSxVGGB+pwmr ufGFG4MGQ5VpCxmzh6KrJCLXpI/mhKrkBkZy58cUbus7aPv3es/jBmmtGlU3m6ka NlEzHOX1hpJV/lhLvxjqRhVxuXvXOA== =+e3p -----END PGP SIGNATURE----- Merge tag 'u-boot-imx-20191009' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx u-boot-imx-20191009 ------------------- Travis : https://travis-ci.org/sbabic/u-boot-imx/builds/595148532 - MX6UL / ULZ - Toradex board - Allow to set OCRAM for MX6Q/D - MX7ULP - MX8: (container image, imx8mq_mek), SCU API - fix several board booting from SD/EMMC (cubox-i for example) - pico boards [trini: display5 merged manually] Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
commit
eaa0bde051
274 changed files with 14600 additions and 4690 deletions
1
Kconfig
1
Kconfig
|
@ -256,6 +256,7 @@ config BUILD_TARGET
|
|||
ARCH_SUNXI || RISCV)
|
||||
default "u-boot.kwb" if KIRKWOOD
|
||||
default "u-boot-with-spl.bin" if ARCH_AT91 && SPL_NAND_SUPPORT
|
||||
default "u-boot-with-spl.imx" if ARCH_MX6 && SPL
|
||||
help
|
||||
Some SoCs need special image types (e.g. U-Boot binary
|
||||
with a special header) as build targets. By defining
|
||||
|
|
12
Makefile
12
Makefile
|
@ -834,10 +834,10 @@ ALL-$(CONFIG_RAMBOOT_PBL) += u-boot.pbl
|
|||
endif
|
||||
endif
|
||||
ALL-$(CONFIG_SPL) += spl/u-boot-spl.bin
|
||||
ifeq ($(CONFIG_MX6)$(CONFIG_SECURE_BOOT), yy)
|
||||
ifeq ($(CONFIG_MX6)$(CONFIG_IMX_HAB), yy)
|
||||
ALL-$(CONFIG_SPL_FRAMEWORK) += u-boot-ivt.img
|
||||
else
|
||||
ifeq ($(CONFIG_MX7)$(CONFIG_SECURE_BOOT), yy)
|
||||
ifeq ($(CONFIG_MX7)$(CONFIG_IMX_HAB), yy)
|
||||
ALL-$(CONFIG_SPL_FRAMEWORK) += u-boot-ivt.img
|
||||
else
|
||||
ALL-$(CONFIG_SPL_FRAMEWORK) += u-boot.img
|
||||
|
@ -1371,9 +1371,17 @@ SPL: spl/u-boot-spl.bin FORCE
|
|||
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
||||
|
||||
ifeq ($(CONFIG_ARCH_IMX8M)$(CONFIG_ARCH_IMX8), y)
|
||||
ifeq ($(CONFIG_SPL_LOAD_IMX_CONTAINER), y)
|
||||
u-boot.cnt: u-boot.bin FORCE
|
||||
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
||||
|
||||
flash.bin: spl/u-boot-spl.bin u-boot.cnt FORCE
|
||||
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
||||
else
|
||||
flash.bin: spl/u-boot-spl.bin u-boot.itb FORCE
|
||||
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
||||
endif
|
||||
endif
|
||||
|
||||
u-boot-with-spl.imx u-boot-with-nand-spl.imx: SPL u-boot.bin FORCE
|
||||
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
||||
|
|
|
@ -812,7 +812,7 @@ config ARCH_MX7
|
|||
select ARCH_MISC_INIT
|
||||
select BOARD_EARLY_INIT_F
|
||||
select CPU_V7A
|
||||
select SYS_FSL_HAS_SEC if SECURE_BOOT
|
||||
select SYS_FSL_HAS_SEC if IMX_HAB
|
||||
select SYS_FSL_SEC_COMPAT_4
|
||||
select SYS_FSL_SEC_LE
|
||||
imply MXC_GPIO
|
||||
|
@ -820,7 +820,7 @@ config ARCH_MX7
|
|||
config ARCH_MX6
|
||||
bool "Freescale MX6"
|
||||
select CPU_V7A
|
||||
select SYS_FSL_HAS_SEC if SECURE_BOOT
|
||||
select SYS_FSL_HAS_SEC if IMX_HAB
|
||||
select SYS_FSL_SEC_COMPAT_4
|
||||
select SYS_FSL_SEC_LE
|
||||
select SYS_THUMB_BUILD if SPL
|
||||
|
|
|
@ -277,7 +277,8 @@ void board_init_f(ulong dummy)
|
|||
* BootROM code right after having initialized a few components like the DRAM).
|
||||
* The following function is called from SPL common code (board_init_r).
|
||||
*/
|
||||
void board_return_to_bootrom(void)
|
||||
int board_return_to_bootrom(struct spl_image_info *spl_image,
|
||||
struct spl_boot_device *bootdev)
|
||||
{
|
||||
/*
|
||||
* Retrieve the BootROM's stack pointer and jump back to the start of
|
||||
|
@ -294,4 +295,6 @@ void board_return_to_bootrom(void)
|
|||
"bl back_to_bootrom;"
|
||||
#endif
|
||||
);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -552,33 +552,44 @@ dtb-$(CONFIG_MX53) += imx53-cx9020.dtb \
|
|||
imx53-kp.dtb \
|
||||
imx53-m53menlo.dtb
|
||||
|
||||
dtb-$(CONFIG_MX6Q) += \
|
||||
imx6-apalis.dtb \
|
||||
imx6q-display5.dtb \
|
||||
imx6q-logicpd.dtb \
|
||||
imx6q-novena.dtb \
|
||||
imx6q-tbs2910.dtb
|
||||
|
||||
dtb-$(CONFIG_MX6QDL) += \
|
||||
ifneq ($(CONFIG_MX6DL)$(CONFIG_MX6QDL)$(CONFIG_MX6S),)
|
||||
dtb-y += \
|
||||
imx6dl-dhcom-pdk2.dtb \
|
||||
imx6dl-icore.dtb \
|
||||
imx6dl-icore-mipi.dtb \
|
||||
imx6dl-icore-rqs.dtb \
|
||||
imx6dl-mamoj.dtb \
|
||||
imx6dl-nitrogen6x.dtb \
|
||||
imx6dl-pico.dtb \
|
||||
imx6dl-sabreauto.dtb \
|
||||
imx6dl-sabresd.dtb \
|
||||
imx6dl-wandboard-revb1.dtb \
|
||||
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_MX6Q)$(CONFIG_MX6QDL),)
|
||||
dtb-y += \
|
||||
imx6-apalis.dtb \
|
||||
imx6q-cm-fx6.dtb \
|
||||
imx6q-dhcom-pdk2.dtb \
|
||||
imx6q-display5.dtb \
|
||||
imx6q-icore.dtb \
|
||||
imx6q-icore-mipi.dtb \
|
||||
imx6q-icore-rqs.dtb \
|
||||
imx6q-logicpd.dtb \
|
||||
imx6q-nitrogen6x.dtb \
|
||||
imx6q-novena.dtb \
|
||||
imx6q-pico.dtb \
|
||||
imx6q-sabreauto.dtb \
|
||||
imx6q-sabrelite.dtb \
|
||||
imx6q-sabresd.dtb \
|
||||
imx6q-tbs2910.dtb \
|
||||
imx6q-wandboard-revb1.dtb \
|
||||
imx6qp-sabreauto.dtb \
|
||||
imx6qp-sabresd.dtb \
|
||||
imx6qp-wandboard-revd1.dtb
|
||||
imx6qp-wandboard-revd1.dtb \
|
||||
|
||||
endif
|
||||
|
||||
dtb-$(CONFIG_MX6SL) += imx6sl-evk.dtb
|
||||
|
||||
|
@ -606,7 +617,8 @@ dtb-$(CONFIG_MX6ULL) += \
|
|||
imx6ull-14x14-evk.dtb \
|
||||
imx6ull-colibri.dtb \
|
||||
imx6ull-phycore-segin.dtb \
|
||||
imx6ull-dart-6ul.dtb
|
||||
imx6ull-dart-6ul.dtb \
|
||||
imx6ulz-14x14-evk.dtb
|
||||
|
||||
dtb-$(CONFIG_ARCH_MX6) += \
|
||||
imx6-apalis.dtb \
|
||||
|
@ -629,7 +641,8 @@ dtb-$(CONFIG_ARCH_IMX8) += \
|
|||
fsl-imx8qxp-colibri.dtb \
|
||||
fsl-imx8qxp-mek.dtb
|
||||
|
||||
dtb-$(CONFIG_ARCH_IMX8M) += fsl-imx8mq-evk.dtb
|
||||
dtb-$(CONFIG_ARCH_IMX8M) += fsl-imx8mq-evk.dtb \
|
||||
imx8mm-evk.dtb
|
||||
|
||||
dtb-$(CONFIG_RCAR_GEN2) += \
|
||||
r8a7790-lager-u-boot.dtb \
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/pinctrl/pins-imx8mq.h>
|
||||
#include <dt-bindings/reset/imx8mq-reset.h>
|
||||
#include <dt-bindings/power/imx8mq-power.h>
|
||||
#include <dt-bindings/thermal/thermal.h>
|
||||
|
||||
/ {
|
||||
|
@ -71,12 +73,6 @@
|
|||
interrupt-parent = <&gic>;
|
||||
};
|
||||
|
||||
power: power-controller {
|
||||
compatible = "fsl,imx8mq-pm-domain";
|
||||
num-domains = <11>;
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
|
||||
pwm2: pwm@30670000 {
|
||||
compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x0 0x30670000 0x0 0x10000>;
|
||||
|
@ -269,6 +265,12 @@
|
|||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
src: reset-controller@30390000 {
|
||||
compatible = "fsl,imx8mq-src", "syscon";
|
||||
reg = <0x0 0x30390000 0x0 0x10000>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
gpc: gpc@303a0000 {
|
||||
compatible = "fsl,imx8mq-gpc", "fsl,imx7d-gpc", "syscon";
|
||||
reg = <0x0 0x303a0000 0x0 0x10000>;
|
||||
|
@ -276,6 +278,37 @@
|
|||
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-parent = <&gic>;
|
||||
|
||||
pgc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/*
|
||||
* As per comment in ATF source code:
|
||||
*
|
||||
* PCIE1 and PCIE2 share the
|
||||
* same reset signal, if we
|
||||
* power down PCIE2, PCIE1
|
||||
* will be held in reset too.
|
||||
*
|
||||
* So instead of creating two
|
||||
* separate power domains for
|
||||
* PCIE1 and PCIE2 we create a
|
||||
* link between both and use
|
||||
* it as a shared PCIE power
|
||||
* domain.
|
||||
*/
|
||||
pgc_pcie: power-domain@1 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8M_POWER_DOMAIN_PCIE1>;
|
||||
power-domains = <&pgc_pcie2>;
|
||||
};
|
||||
|
||||
pgc_pcie2: power-domain@a {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8M_POWER_DOMAIN_PCIE2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
usdhc1: usdhc@30b40000 {
|
||||
|
|
|
@ -21,6 +21,13 @@
|
|||
aliases {
|
||||
ethernet0 = &fec1;
|
||||
ethernet1 = &fec2;
|
||||
gpio0 = &gpio1;
|
||||
gpio1 = &gpio2;
|
||||
gpio2 = &gpio3;
|
||||
gpio3 = &gpio4;
|
||||
gpio4 = &gpio5;
|
||||
gpio5 = &gpio6;
|
||||
gpio6 = &gpio7;
|
||||
serial0 = &lpuart0;
|
||||
serial1 = &lpuart1;
|
||||
serial2 = &lpuart2;
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+ or X11
|
||||
*/
|
||||
#include "imx28.dtsi"
|
||||
|
||||
&gpio0 {
|
||||
gpio-ranges = <&pinctrl 0 0 29>;
|
||||
|
|
15
arch/arm/dts/imx6dl-nitrogen6x.dts
Normal file
15
arch/arm/dts/imx6dl-nitrogen6x.dts
Normal file
|
@ -0,0 +1,15 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
//
|
||||
// Copyright 2013-2019 Boundary Devices, Inc.
|
||||
// Copyright 2012 Freescale Semiconductor, Inc.
|
||||
// Copyright 2011 Linaro Ltd.
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "imx6dl.dtsi"
|
||||
#include "imx6qdl-nitrogen6x.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Boundary Devices i.MX6 DualLite Nitrogen6x Board";
|
||||
compatible = "boundary,imx6dl-nitrogen6x", "fsl,imx6dl";
|
||||
};
|
17
arch/arm/dts/imx6dl-pico.dts
Normal file
17
arch/arm/dts/imx6dl-pico.dts
Normal file
|
@ -0,0 +1,17 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
//
|
||||
// Copyright 2018 Technexion Ltd.
|
||||
//
|
||||
// Author: Wig Cheng <wig.cheng@technexion.com>
|
||||
// Richard Hu <richard.hu@technexion.com>
|
||||
// Tapani Utriainen <tapani@technexion.com>
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "imx6dl.dtsi"
|
||||
#include "imx6qdl-pico.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TechNexion PICO-IMX6 DualLite/Solo";
|
||||
compatible = "technexion,imx6dl-pico", "fsl,imx6dl";
|
||||
};
|
|
@ -31,6 +31,11 @@
|
|||
chosen {
|
||||
stdout-path = &uart5;
|
||||
};
|
||||
|
||||
wdt-reboot {
|
||||
compatible = "wdt-reboot";
|
||||
wdt = <&wdog1>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c3 {
|
||||
|
|
19
arch/arm/dts/imx6q-nitrogen6x.dts
Normal file
19
arch/arm/dts/imx6q-nitrogen6x.dts
Normal file
|
@ -0,0 +1,19 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
//
|
||||
// Copyright 2013-2019 Boundary Devices, Inc.
|
||||
// Copyright 2012 Freescale Semiconductor, Inc.
|
||||
// Copyright 2011 Linaro Ltd.
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "imx6q.dtsi"
|
||||
#include "imx6qdl-nitrogen6x.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Boundary Devices i.MX6 Quad Nitrogen6x Board";
|
||||
compatible = "boundary,imx6q-nitrogen6x", "fsl,imx6q";
|
||||
};
|
||||
|
||||
&sata {
|
||||
status = "okay";
|
||||
};
|
17
arch/arm/dts/imx6q-pico.dts
Normal file
17
arch/arm/dts/imx6q-pico.dts
Normal file
|
@ -0,0 +1,17 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
//
|
||||
// Copyright 2018 Technexion Ltd.
|
||||
//
|
||||
// Author: Wig Cheng <wig.cheng@technexion.com>
|
||||
// Richard Hu <richard.hu@technexion.com>
|
||||
// Tapani Utriainen <tapani@technexion.com>
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "imx6q.dtsi"
|
||||
#include "imx6qdl-pico.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TechNexion PICO-IMX6 Quad";
|
||||
compatible = "technexion,imx6q-pico", "fsl,imx6q";
|
||||
};
|
19
arch/arm/dts/imx6q-sabrelite.dts
Normal file
19
arch/arm/dts/imx6q-sabrelite.dts
Normal file
|
@ -0,0 +1,19 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
//
|
||||
// Copyright 2013-2019 Boundary Devices, Inc.
|
||||
// Copyright 2012 Freescale Semiconductor, Inc.
|
||||
// Copyright 2011 Linaro Ltd.
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "imx6q.dtsi"
|
||||
#include "imx6qdl-sabrelite.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Freescale i.MX6 Quad SABRE Lite Board";
|
||||
compatible = "fsl,imx6q-sabrelite", "fsl,imx6q";
|
||||
};
|
||||
|
||||
&sata {
|
||||
status = "okay";
|
||||
};
|
69
arch/arm/dts/imx6qdl-nitrogen6x.dtsi
Normal file
69
arch/arm/dts/imx6qdl-nitrogen6x.dtsi
Normal file
|
@ -0,0 +1,69 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
//
|
||||
// Copyright 2013-2019 Boundary Devices, Inc.
|
||||
// Copyright 2012 Freescale Semiconductor, Inc.
|
||||
// Copyright 2011 Linaro Ltd.
|
||||
|
||||
#include "imx6qdl-sabrelite.dtsi"
|
||||
|
||||
&iomuxc {
|
||||
pinctrl_enet: enetgrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
|
||||
MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x100b0
|
||||
MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x100b0
|
||||
MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x100b0
|
||||
MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x100b0
|
||||
MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x100b0
|
||||
MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x100b0
|
||||
MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x100b0
|
||||
MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
|
||||
#undef GP_ENET_PHY_RESET
|
||||
#define GP_ENET_PHY_RESET <&gpio1 27 GPIO_ACTIVE_LOW>
|
||||
MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x030b0
|
||||
#define GPIRQ_ENET_PHY <&gpio1 28 IRQ_TYPE_LEVEL_LOW>
|
||||
MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_hog: hoggrp {
|
||||
fsl,pins = <
|
||||
/* Spare */
|
||||
MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1b0b0
|
||||
MX6QDL_PAD_NANDF_D7__GPIO2_IO07 0x1b0b0
|
||||
MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart3: uart3grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
|
||||
MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
|
||||
MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x1b0b1
|
||||
MX6QDL_PAD_EIM_D31__UART3_RTS_B 0x1b0b1
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&fec {
|
||||
#if 0
|
||||
phy-reset-gpios = GP_ENET_PHY_RESET;
|
||||
#endif
|
||||
};
|
||||
|
||||
&uart3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart3>;
|
||||
uart-has-rtscts;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc3 {
|
||||
/delete-property/ wp-gpios;
|
||||
};
|
424
arch/arm/dts/imx6qdl-pico.dtsi
Normal file
424
arch/arm/dts/imx6qdl-pico.dtsi
Normal file
|
@ -0,0 +1,424 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
//
|
||||
// Copyright 2018 Technexion Ltd.
|
||||
//
|
||||
// Author: Wig Cheng <wig.cheng@technexion.com>
|
||||
// Richard Hu <richard.hu@technexion.com>
|
||||
// Tapani Utriainen <tapani@technexion.com>
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
mmc0 = &usdhc3;
|
||||
usb0 = &usbotg;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = &uart1;
|
||||
};
|
||||
|
||||
reg_2p5v: regulator-2p5v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "2P5V";
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_3p3v: regulator-3p3v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "3P3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_1p8v: regulator-1p8v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "1P8V";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_usb_otg_vbus: regulator-usb-otg-vbus {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usbotg_vbus>;
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb_otg_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gpio3 22 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&audmux {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_audmux>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&can1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_flexcan1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&can2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_flexcan2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&clks {
|
||||
assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
|
||||
<&clks IMX6QDL_CLK_LDB_DI1_SEL>;
|
||||
assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
|
||||
<&clks IMX6QDL_CLK_PLL3_USB_OTG>;
|
||||
};
|
||||
|
||||
&ecspi2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_ecspi2>;
|
||||
cs-gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&fec {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-reset-gpios = <&gpio1 26 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
ddc-i2c-bus = <&i2c2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2c1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2c2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2c3>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pcie_reset>;
|
||||
reset-gpio = <&gpio5 21 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pwm1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pwm2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pwm3>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm4 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pwm4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ssi1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 { /* Bluetooth module */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart2>;
|
||||
fsl,uart-has-rtscts;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart3>;
|
||||
fsl,uart-has-rtscts;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbh1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg {
|
||||
vbus-supply = <®_usb_otg_vbus>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usbotg>;
|
||||
disable-over-current;
|
||||
dr_mode = "otg";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc1>;
|
||||
bus-width = <8>;
|
||||
cd-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc2 { /* Wifi/BT */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc2>;
|
||||
bus-width = <4>;
|
||||
no-1-8-v;
|
||||
keep-power-in-suspend;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc3>;
|
||||
bus-width = <8>;
|
||||
no-1-8-v;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&iomuxc {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_hog>;
|
||||
|
||||
pinctrl_hog: hoggrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19 0x4001b0b5 /* PICO_P24 */
|
||||
MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x4001b0b5 /* PICO_P25 */
|
||||
MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x4001b0b5 /* PICO_P26 */
|
||||
MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x4001b0b5 /* PICO_P28 */
|
||||
MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26 0x4001b0b5 /* PICO_P30 */
|
||||
MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27 0x4001b0b5 /* PICO_P32 */
|
||||
MX6QDL_PAD_CSI0_DAT14__GPIO6_IO00 0x4001b0b5 /* PICO_P34 */
|
||||
MX6QDL_PAD_CSI0_DAT12__GPIO5_IO30 0x4001b0b5 /* PICO_P42 */
|
||||
MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31 0x4001b0b5 /* PICO_P44 */
|
||||
MX6QDL_PAD_CSI0_DAT15__GPIO6_IO01 0x4001b0b5 /* PICO_P48 */
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_audmux: audmuxgrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0
|
||||
MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0
|
||||
MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0
|
||||
MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_ecspi1: ecspi1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
|
||||
MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1
|
||||
MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1
|
||||
MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x000f0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_ecspi2: ecspi2grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_EIM_OE__ECSPI2_MISO 0x1b0b1
|
||||
MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI 0x1b0b1
|
||||
MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK 0x1b0b1
|
||||
MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x000f0b0
|
||||
MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x000f0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_enet: enetgrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
|
||||
MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
|
||||
MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
|
||||
MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0
|
||||
MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1f0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_flexcan1: flexcan1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b0
|
||||
MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_flexcan2: flexcan2grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x1b0b0
|
||||
MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x1b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c1: i2c1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
|
||||
MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c2: i2c2grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
|
||||
MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c3: i2c3grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
|
||||
MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_pcie_reset: pciegrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x130b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_pwm1: pwm1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_GPIO_9__PWM1_OUT 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_pwm2: pwm2grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_GPIO_1__PWM2_OUT 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_pwm3: pwm3grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_pwm4: pwm4grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart1: uart1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1
|
||||
MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart2: uart2grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
|
||||
MX6QDL_PAD_SD4_DAT5__UART2_RTS_B 0x1b0b1
|
||||
MX6QDL_PAD_SD4_DAT6__UART2_CTS_B 0x1b0b1
|
||||
MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart3: uart3grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
|
||||
MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
|
||||
MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x1b0b1
|
||||
MX6QDL_PAD_EIM_D31__UART3_RTS_B 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usbotg: usbotggrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usbotg_vbus: usbotgvbusgrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc1: usdhc1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17071
|
||||
MX6QDL_PAD_SD1_CLK__SD1_CLK 0x17071
|
||||
MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17071
|
||||
MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17071
|
||||
MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17071
|
||||
MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17071
|
||||
MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2: usdhc2grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
|
||||
MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
|
||||
MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
|
||||
MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
|
||||
MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
|
||||
MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc3: usdhc3grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
|
||||
MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
|
||||
MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
|
||||
MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
|
||||
MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
|
||||
MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
|
||||
MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0xb0b1
|
||||
MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059
|
||||
MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059
|
||||
MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059
|
||||
MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059
|
||||
>;
|
||||
};
|
||||
};
|
384
arch/arm/dts/imx6qdl-sabrelite.dtsi
Normal file
384
arch/arm/dts/imx6qdl-sabrelite.dtsi
Normal file
|
@ -0,0 +1,384 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
//
|
||||
// Copyright 2013-2019 Boundary Devices, Inc.
|
||||
// Copyright 2012 Freescale Semiconductor, Inc.
|
||||
// Copyright 2011 Linaro Ltd.
|
||||
|
||||
#include <dt-bindings/clock/imx6qdl-clock.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
&iomuxc {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_hog>;
|
||||
|
||||
pinctrl_ecspi1: ecspi1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
|
||||
MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1
|
||||
MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x000b1
|
||||
#define GP_ECSPI1_NOR_CS <&gpio3 19 GPIO_ACTIVE_LOW>
|
||||
MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x0b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_enet: enetgrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
|
||||
MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x100b0
|
||||
MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x100b0
|
||||
MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x100b0
|
||||
MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x100b0
|
||||
MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x100b0
|
||||
MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x100b0
|
||||
MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x100b0
|
||||
MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
|
||||
#undef GP_ENET_PHY_RESET
|
||||
#define GP_ENET_PHY_RESET <&gpio3 23 GPIO_ACTIVE_LOW>
|
||||
MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x030b0
|
||||
#define GPIRQ_ENET_PHY <&gpio1 28 IRQ_TYPE_LEVEL_LOW>
|
||||
MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_hog: hoggrp {
|
||||
fsl,pins = <
|
||||
/* Spare */
|
||||
MX6QDL_PAD_NANDF_D7__GPIO2_IO07 0x1b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c1: i2c1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
|
||||
MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c1_1: i2c1-1grp {
|
||||
fsl,pins = <
|
||||
#define GP_I2C1_SCL <&gpio3 21 GPIO_ACTIVE_HIGH>
|
||||
MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x4001b8b1
|
||||
#define GP_I2C1_SDA <&gpio3 28 GPIO_ACTIVE_HIGH>
|
||||
MX6QDL_PAD_EIM_D28__GPIO3_IO28 0x4001b8b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c2: i2c2grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
|
||||
MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c2_1: i2c2-1grp {
|
||||
fsl,pins = <
|
||||
#define GP_I2C2_SCL <&gpio4 12 GPIO_ACTIVE_HIGH>
|
||||
MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x4001b8b1
|
||||
#define GP_I2C2_SDA <&gpio4 13 GPIO_ACTIVE_HIGH>
|
||||
MX6QDL_PAD_KEY_ROW3__GPIO4_IO13 0x4001b8b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c3: i2c3grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
|
||||
MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1
|
||||
#define GPIRQ_I2C3_J7 <&gpio1 9 IRQ_TYPE_EDGE_FALLING>
|
||||
#define GP_I2C3_J7 <&gpio1 9 GPIO_ACTIVE_LOW>
|
||||
MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x1b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c3_1: i2c3-1grp {
|
||||
fsl,pins = <
|
||||
#define GP_I2C3_SCL <&gpio1 5 GPIO_ACTIVE_HIGH>
|
||||
MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x4001b8b1
|
||||
#define GP_I2C3_SDA <&gpio7 11 GPIO_ACTIVE_HIGH>
|
||||
MX6QDL_PAD_GPIO_16__GPIO7_IO11 0x4001b8b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_pwm1: pwm1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_pwm3: pwm3grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_pwm4: pwm4grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_reg_usbotg_vbus: reg-usbotg-vbusgrp {
|
||||
fsl,pins = <
|
||||
#define GP_REG_USBOTG <&gpio3 22 GPIO_ACTIVE_HIGH>
|
||||
MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x030b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart1: uart1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
|
||||
MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart2: uart2grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
|
||||
MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usbh1: usbh1grp {
|
||||
fsl,pins = <
|
||||
#define GP_USBH1_HUB_RESET <&gpio7 12 GPIO_ACTIVE_LOW>
|
||||
MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x0b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usbotg: usbotggrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
|
||||
MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x1b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc3: usdhc3grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
|
||||
MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
|
||||
MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
|
||||
MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
|
||||
MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
|
||||
MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
|
||||
#define GP_USDHC3_CD <&gpio7 0 GPIO_ACTIVE_LOW>
|
||||
MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x1b0b0
|
||||
#define GP_USDHC3_WP <&gpio7 1 GPIO_ACTIVE_HIGH>
|
||||
MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc4: usdhc4grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059
|
||||
MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059
|
||||
MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059
|
||||
MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059
|
||||
MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059
|
||||
MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059
|
||||
#define GP_USDHC4_CD <&gpio2 6 GPIO_ACTIVE_LOW>
|
||||
MX6QDL_PAD_NANDF_D6__GPIO2_IO06 0x1b0b0
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
mmc0 = &usdhc3;
|
||||
mmc1 = &usdhc4;
|
||||
pwm_lcd = &pwm1;
|
||||
pwm_lvds = &pwm4;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = &uart2;
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x10000000 0x40000000>;
|
||||
};
|
||||
|
||||
reg_3p3v: regulator-3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "3P3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_usb_otg_vbus: regulator-usb-otg-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb_otg_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = GP_REG_USBOTG;
|
||||
enable-active-high;
|
||||
};
|
||||
};
|
||||
|
||||
&ecspi1 {
|
||||
cs-gpios = GP_ECSPI1_NOR_CS;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_ecspi1>;
|
||||
status = "okay";
|
||||
|
||||
flash: m25p80@0 {
|
||||
compatible = "sst,sst25vf016b", "jedec,spi-nor";
|
||||
spi-max-frequency = <20000000>;
|
||||
reg = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
mtd@00000000 {
|
||||
label = "U-Boot";
|
||||
reg = <0x0 0xC0000>;
|
||||
};
|
||||
|
||||
mtd@000C0000 {
|
||||
label = "env";
|
||||
reg = <0xC0000 0x2000>;
|
||||
};
|
||||
mtd@000C2000 {
|
||||
label = "splash";
|
||||
reg = <0xC2000 0x13e000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&fec {
|
||||
phy-handle = <ðphy>;
|
||||
phy-mode = "rgmii";
|
||||
#if 0
|
||||
phy-reset-gpios = GP_ENET_PHY_RESET;
|
||||
#endif
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet>;
|
||||
rxc-skew-ps = <3000>;
|
||||
rxd0-skew-ps = <0>;
|
||||
rxd1-skew-ps = <0>;
|
||||
rxd2-skew-ps = <0>;
|
||||
rxd3-skew-ps = <0>;
|
||||
rxdv-skew-ps = <0>;
|
||||
status = "okay";
|
||||
txc-skew-ps = <3000>;
|
||||
txd0-skew-ps = <0>;
|
||||
txd1-skew-ps = <0>;
|
||||
txd2-skew-ps = <0>;
|
||||
txd3-skew-ps = <0>;
|
||||
txen-skew-ps = <0>;
|
||||
|
||||
mdio {
|
||||
#address-cells = <0>;
|
||||
#size-cells = <1>;
|
||||
|
||||
ethphy: ethernet-phy {
|
||||
interrupts-extended = GPIRQ_ENET_PHY;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
clock-frequency = <100000>;
|
||||
pinctrl-names = "default", "gpio";
|
||||
pinctrl-0 = <&pinctrl_i2c1>;
|
||||
pinctrl-1 = <&pinctrl_i2c1_1>;
|
||||
scl-gpios = GP_I2C1_SCL;
|
||||
sda-gpios = GP_I2C1_SDA;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
pinctrl-names = "default", "gpio";
|
||||
pinctrl-0 = <&pinctrl_i2c2>;
|
||||
pinctrl-1 = <&pinctrl_i2c2_1>;
|
||||
scl-gpios = GP_I2C2_SCL;
|
||||
sda-gpios = GP_I2C2_SDA;
|
||||
status = "okay";
|
||||
|
||||
hdmi_edid: edid@50 {
|
||||
compatible = "fsl,imx6-hdmi-i2c";
|
||||
reg = <0x50>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c3 {
|
||||
clock-frequency = <100000>;
|
||||
pinctrl-names = "default", "gpio";
|
||||
pinctrl-0 = <&pinctrl_i2c3>;
|
||||
pinctrl-1 = <&pinctrl_i2c3_1>;
|
||||
scl-gpios = GP_I2C3_SCL;
|
||||
sda-gpios = GP_I2C3_SDA;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pwm1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pwm3>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm4 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pwm4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbh1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usbh1>;
|
||||
disable-over-current;
|
||||
reset-gpios = GP_USBH1_HUB_RESET;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg {
|
||||
vbus-supply = <®_usb_otg_vbus>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usbotg>;
|
||||
disable-over-current;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc3>;
|
||||
cd-gpios = GP_USDHC3_CD;
|
||||
wp-gpios = GP_USDHC3_WP;
|
||||
vmmc-supply = <®_3p3v>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc4 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc4>;
|
||||
cd-gpios = GP_USDHC4_CD;
|
||||
vmmc-supply = <®_3p3v>;
|
||||
status = "okay";
|
||||
};
|
|
@ -6,10 +6,12 @@
|
|||
/ {
|
||||
aliases {
|
||||
usb0 = &usbotg;
|
||||
video0 = &ipu1;
|
||||
};
|
||||
|
||||
soc {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
aips-bus@2000000 {
|
||||
u-boot,dm-spl;
|
||||
|
@ -31,3 +33,7 @@
|
|||
&iomuxc {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&ipu1 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
|
|
@ -229,11 +229,21 @@
|
|||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-handle = <ðphy>;
|
||||
phy-reset-gpios = <&gpio3 29 GPIO_ACTIVE_LOW>;
|
||||
interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
|
||||
fsl,err006687-workaround-present;
|
||||
status = "okay";
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ethphy: ethernet-phy@1 {
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&spdif {
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
i2c1 = &i2c2;
|
||||
i2c2 = &i2c3;
|
||||
ipu0 = &ipu1;
|
||||
video0 = &ipu1;
|
||||
mmc0 = &usdhc1;
|
||||
mmc1 = &usdhc2;
|
||||
mmc2 = &usdhc3;
|
||||
|
@ -146,7 +145,6 @@
|
|||
compatible = "simple-bus";
|
||||
interrupt-parent = <&gpc>;
|
||||
ranges;
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
dma_apbh: dma-apbh@110000 {
|
||||
compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
|
||||
|
@ -1263,7 +1261,6 @@
|
|||
<&clks IMX6QDL_CLK_IPU1_DI1>;
|
||||
clock-names = "bus", "di0", "di1";
|
||||
resets = <&src 2>;
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
ipu1_csi0: port@0 {
|
||||
reg = <0>;
|
||||
|
|
|
@ -3,8 +3,55 @@
|
|||
* Copyright 2018 NXP
|
||||
*/
|
||||
|
||||
&{/aliases} {
|
||||
u-boot,dm-pre-reloc;
|
||||
display0 = &lcdif;
|
||||
};
|
||||
|
||||
&qspi {
|
||||
flash0: n25q256a@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&{/soc} {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&aips2 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&iomuxc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&lcdif {
|
||||
display = <&display0>;
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
display0: display@0 {
|
||||
bits-per-pixel = <16>;
|
||||
bus-width = <24>;
|
||||
|
||||
display-timings {
|
||||
native-mode = <&timing0>;
|
||||
|
||||
timing0: timing0 {
|
||||
clock-frequency = <9200000>;
|
||||
hactive = <480>;
|
||||
vactive = <272>;
|
||||
hfront-porch = <8>;
|
||||
hback-porch = <4>;
|
||||
hsync-len = <41>;
|
||||
vback-porch = <2>;
|
||||
vfront-porch = <4>;
|
||||
vsync-len = <10>;
|
||||
hsync-active = <0>;
|
||||
vsync-active = <0>;
|
||||
de-active = <1>;
|
||||
pixelclk-active = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,427 +1,13 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2015 Freescale Semiconductor, Inc.
|
||||
* Copyright 2017-2018 NXP
|
||||
*/
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
//
|
||||
// Copyright (C) 2015 Freescale Semiconductor, Inc.
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "imx6ul.dtsi"
|
||||
#include "imx6ul-14x14-evk.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Freescale i.MX6 UltraLite 14x14 EVK Board";
|
||||
compatible = "fsl,imx6ul-14x14-evk", "fsl,imx6ul";
|
||||
|
||||
aliases {
|
||||
spi5 = &soft_spi;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = &uart1;
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x80000000 0x20000000>;
|
||||
};
|
||||
|
||||
regulators {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
reg_sd1_vmmc: regulator@1 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VSD_3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
|
||||
off-on-delay = <20000>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
reg_can_3v3: regulator@0 {
|
||||
compatible = "regulator-fixed";
|
||||
reg = <0>;
|
||||
regulator-name = "can-3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
gpios = <&gpio_spi 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
reg_gpio_dvfs: regulator-gpio {
|
||||
compatible = "regulator-gpio";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_dvfs>;
|
||||
regulator-min-microvolt = <1300000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
regulator-name = "gpio_dvfs";
|
||||
regulator-type = "voltage";
|
||||
gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>;
|
||||
states = <1300000 0x1 1400000 0x0>;
|
||||
};
|
||||
};
|
||||
|
||||
soft_spi: soft-spi {
|
||||
compatible = "spi-gpio";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_spi4>;
|
||||
pinctrl-assert-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
gpio-sck = <&gpio5 11 0>;
|
||||
gpio-mosi = <&gpio5 10 0>;
|
||||
cs-gpios = <&gpio5 7 0>;
|
||||
num-chipselects = <1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gpio_spi: gpio_spi@0 {
|
||||
compatible = "fairchild,74hc595";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
reg = <0>;
|
||||
registers-number = <1>;
|
||||
registers-default = /bits/ 8 <0x57>;
|
||||
spi-max-frequency = <100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&fec1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet1>;
|
||||
phy-mode = "rmii";
|
||||
phy-handle = <ðphy0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&fec2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet2>;
|
||||
phy-mode = "rmii";
|
||||
phy-handle = <ðphy1>;
|
||||
status = "okay";
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ethphy0: ethernet-phy@2 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <2>;
|
||||
};
|
||||
|
||||
ethphy1: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
clock-frequency = <100000>;
|
||||
pinctrl-names = "default", "gpio";
|
||||
pinctrl-0 = <&pinctrl_i2c1>;
|
||||
pinctrl-1 = <&pinctrl_i2c1_gpio>;
|
||||
scl-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
|
||||
sda-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
|
||||
status = "okay";
|
||||
|
||||
mag3110@0e {
|
||||
compatible = "fsl,mag3110";
|
||||
reg = <0x0e>;
|
||||
position = <2>;
|
||||
};
|
||||
|
||||
fxls8471@1e {
|
||||
compatible = "fsl,fxls8471";
|
||||
reg = <0x1e>;
|
||||
position = <0>;
|
||||
interrupt-parent = <&gpio5>;
|
||||
interrupts = <0 8>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock_frequency = <100000>;
|
||||
pinctrl-names = "default", "gpio";
|
||||
pinctrl-0 = <&pinctrl_i2c2>;
|
||||
pinctrl-1 = <&pinctrl_i2c2_gpio>;
|
||||
scl-gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
|
||||
sda-gpios = <&gpio1 31 GPIO_ACTIVE_HIGH>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&iomuxc {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_hog_1>;
|
||||
imx6ul-evk {
|
||||
pinctrl_hog_1: hoggrp-1 {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 /* SD1 CD */
|
||||
MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT 0x17059 /* SD1 VSELECT */
|
||||
MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x17059 /* SD1 RESET */
|
||||
MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x80000000
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_dvfs: dvfsgrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x79
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_enet1: enet1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
|
||||
MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
|
||||
MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
|
||||
MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
|
||||
MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
|
||||
MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
|
||||
MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
|
||||
MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_enet2: enet2grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
|
||||
MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0
|
||||
MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0
|
||||
MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0
|
||||
MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
|
||||
MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
|
||||
MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0
|
||||
MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
|
||||
MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
|
||||
MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c1: i2c1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
|
||||
MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c1_gpio: i2c1grp_gpio {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x1b8b0
|
||||
MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x1b8b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c2: i2c2grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0
|
||||
MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c2_gpio: i2c2grp_gpio {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30 0x1b8b0
|
||||
MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31 0x1b8b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_qspi: qspigrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_NAND_WP_B__QSPI_A_SCLK 0x70a1
|
||||
MX6UL_PAD_NAND_READY_B__QSPI_A_DATA00 0x70a1
|
||||
MX6UL_PAD_NAND_CE0_B__QSPI_A_DATA01 0x70a1
|
||||
MX6UL_PAD_NAND_CE1_B__QSPI_A_DATA02 0x70a1
|
||||
MX6UL_PAD_NAND_CLE__QSPI_A_DATA03 0x70a1
|
||||
MX6UL_PAD_NAND_DQS__QSPI_A_SS0_B 0x70a1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_spi4: spi4grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_BOOT_MODE0__GPIO5_IO10 0x70a1
|
||||
MX6UL_PAD_BOOT_MODE1__GPIO5_IO11 0x70a1
|
||||
MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x70a1
|
||||
MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x80000000
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart1: uart1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
|
||||
MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usb_otg1_id: usbotg1idgrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc1: usdhc1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
|
||||
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10071
|
||||
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
|
||||
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
|
||||
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
|
||||
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9
|
||||
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9
|
||||
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9
|
||||
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9
|
||||
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9
|
||||
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9
|
||||
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9
|
||||
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9
|
||||
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9
|
||||
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9
|
||||
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2: usdhc2grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10069
|
||||
MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059
|
||||
MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059
|
||||
MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059
|
||||
MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059
|
||||
MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_8bit: usdhc2grp_8bit {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10069
|
||||
MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059
|
||||
MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059
|
||||
MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059
|
||||
MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059
|
||||
MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059
|
||||
MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17059
|
||||
MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17059
|
||||
MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17059
|
||||
MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_8bit_100mhz: usdhc2grp_8bit_100mhz {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x100b9
|
||||
MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x170b9
|
||||
MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x170b9
|
||||
MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x170b9
|
||||
MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x170b9
|
||||
MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x170b9
|
||||
MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x170b9
|
||||
MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x170b9
|
||||
MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x170b9
|
||||
MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x170b9
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_8bit_200mhz: usdhc2grp_8bit_200mhz {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x100f9
|
||||
MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x170f9
|
||||
MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x170f9
|
||||
MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x170f9
|
||||
MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x170f9
|
||||
MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x170f9
|
||||
MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x170f9
|
||||
MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x170f9
|
||||
MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x170f9
|
||||
MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x170f9
|
||||
>;
|
||||
};
|
||||
pinctrl_wdog: wdoggrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY 0x30b0
|
||||
>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&qspi {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_qspi>;
|
||||
status = "okay";
|
||||
ddrsmp=<0>;
|
||||
|
||||
flash0: n25q256a@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "micron,n25q256a";
|
||||
spi-max-frequency = <29000000>;
|
||||
spi-nor,ddr-quad-read-dummy = <6>;
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usb_otg1_id>;
|
||||
dr_mode = "otg";
|
||||
srp-disable;
|
||||
hnp-disable;
|
||||
adp-disable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg2 {
|
||||
dr_mode = "host";
|
||||
disable-over-current;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy1 {
|
||||
tx-d-cal = <0x5>;
|
||||
};
|
||||
|
||||
&usbphy2 {
|
||||
tx-d-cal = <0x5>;
|
||||
};
|
||||
|
||||
&usdhc1 {
|
||||
pinctrl-names = "default", "state_100mhz", "state_200mhz";
|
||||
pinctrl-0 = <&pinctrl_usdhc1>;
|
||||
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
|
||||
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
|
||||
cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
|
||||
keep-power-in-suspend;
|
||||
wakeup-source;
|
||||
vmmc-supply = <®_sd1_vmmc>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc2>;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wdog1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_wdog>;
|
||||
fsl,ext-reset-output;
|
||||
};
|
||||
|
|
531
arch/arm/dts/imx6ul-14x14-evk.dtsi
Normal file
531
arch/arm/dts/imx6ul-14x14-evk.dtsi
Normal file
|
@ -0,0 +1,531 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
//
|
||||
// Copyright (C) 2015 Freescale Semiconductor, Inc.
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
spi5 = &{/spi4};
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = &uart1;
|
||||
};
|
||||
|
||||
memory@80000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x80000000 0x20000000>;
|
||||
};
|
||||
|
||||
backlight_display: backlight-display {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&pwm1 0 5000000>;
|
||||
brightness-levels = <0 4 8 16 32 64 128 255>;
|
||||
default-brightness-level = <6>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
||||
reg_sd1_vmmc: regulator-sd1-vmmc {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VSD_3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
reg_can_3v3: regulator-can-3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "can-3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
gpios = <&gpio_spi 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
spi4 {
|
||||
compatible = "spi-gpio";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_spi4>;
|
||||
status = "okay";
|
||||
gpio-sck = <&gpio5 11 0>;
|
||||
gpio-mosi = <&gpio5 10 0>;
|
||||
cs-gpios = <&gpio5 7 0>;
|
||||
num-chipselects = <1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gpio_spi: gpio@0 {
|
||||
compatible = "fairchild,74hc595";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
reg = <0>;
|
||||
registers-number = <1>;
|
||||
spi-max-frequency = <100000>;
|
||||
};
|
||||
};
|
||||
|
||||
panel {
|
||||
compatible = "innolux,at043tn24";
|
||||
backlight = <&backlight_display>;
|
||||
|
||||
port {
|
||||
panel_in: endpoint {
|
||||
remote-endpoint = <&display_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&clks {
|
||||
assigned-clocks = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
|
||||
assigned-clock-rates = <786432000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock_frequency = <100000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2c2>;
|
||||
status = "okay";
|
||||
|
||||
codec: wm8960@1a {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "wlf,wm8960";
|
||||
reg = <0x1a>;
|
||||
wlf,shared-lrclk;
|
||||
};
|
||||
};
|
||||
|
||||
&fec1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet1>;
|
||||
phy-mode = "rmii";
|
||||
phy-handle = <ðphy0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&fec2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet2>;
|
||||
phy-mode = "rmii";
|
||||
phy-handle = <ðphy1>;
|
||||
status = "okay";
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ethphy0: ethernet-phy@2 {
|
||||
reg = <2>;
|
||||
micrel,led-mode = <1>;
|
||||
clocks = <&clks IMX6UL_CLK_ENET_REF>;
|
||||
clock-names = "rmii-ref";
|
||||
};
|
||||
|
||||
ethphy1: ethernet-phy@1 {
|
||||
reg = <1>;
|
||||
micrel,led-mode = <1>;
|
||||
clocks = <&clks IMX6UL_CLK_ENET2_REF>;
|
||||
clock-names = "rmii-ref";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&can1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_flexcan1>;
|
||||
xceiver-supply = <®_can_3v3>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&can2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_flexcan2>;
|
||||
xceiver-supply = <®_can_3v3>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
clock-frequency = <100000>;
|
||||
pinctrl-names = "default", "gpio";
|
||||
pinctrl-0 = <&pinctrl_i2c1>;
|
||||
pinctrl-1 = <&pinctrl_i2c1_gpio>;
|
||||
scl-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
|
||||
sda-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
|
||||
status = "okay";
|
||||
|
||||
mag3110@e {
|
||||
compatible = "fsl,mag3110";
|
||||
reg = <0x0e>;
|
||||
};
|
||||
};
|
||||
|
||||
&lcdif {
|
||||
assigned-clocks = <&clks IMX6UL_CLK_LCDIF_PRE_SEL>;
|
||||
assigned-clock-parents = <&clks IMX6UL_CLK_PLL5_VIDEO_DIV>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_lcdif_dat
|
||||
&pinctrl_lcdif_ctrl>;
|
||||
status = "okay";
|
||||
|
||||
port {
|
||||
display_out: endpoint {
|
||||
remote-endpoint = <&panel_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pwm1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pwm1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&qspi {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_qspi>;
|
||||
status = "okay";
|
||||
|
||||
flash0: n25q256a@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "micron,n25q256a";
|
||||
spi-max-frequency = <29000000>;
|
||||
spi-rx-bus-width = <4>;
|
||||
spi-tx-bus-width = <4>;
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&sai2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_sai2>;
|
||||
assigned-clocks = <&clks IMX6UL_CLK_SAI2_SEL>,
|
||||
<&clks IMX6UL_CLK_SAI2>;
|
||||
assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
|
||||
assigned-clock-rates = <0>, <12288000>;
|
||||
fsl,sai-mclk-direction-output;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&snvs_poweroff {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tsc {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_tsc>;
|
||||
xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
|
||||
measure-delay-time = <0xffff>;
|
||||
pre-charge-time = <0xfff>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart2>;
|
||||
uart-has-rtscts;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg1 {
|
||||
dr_mode = "otg";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg2 {
|
||||
dr_mode = "host";
|
||||
disable-over-current;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy1 {
|
||||
fsl,tx-d-cal = <106>;
|
||||
};
|
||||
|
||||
&usbphy2 {
|
||||
fsl,tx-d-cal = <106>;
|
||||
};
|
||||
|
||||
&usdhc1 {
|
||||
pinctrl-names = "default", "state_100mhz", "state_200mhz";
|
||||
pinctrl-0 = <&pinctrl_usdhc1>;
|
||||
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
|
||||
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
|
||||
cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
|
||||
keep-power-in-suspend;
|
||||
wakeup-source;
|
||||
vmmc-supply = <®_sd1_vmmc>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc2>;
|
||||
no-1-8-v;
|
||||
keep-power-in-suspend;
|
||||
wakeup-source;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wdog1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_wdog>;
|
||||
fsl,ext-reset-output;
|
||||
};
|
||||
|
||||
&iomuxc {
|
||||
pinctrl-names = "default";
|
||||
|
||||
pinctrl_csi1: csi1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_CSI_MCLK__CSI_MCLK 0x1b088
|
||||
MX6UL_PAD_CSI_PIXCLK__CSI_PIXCLK 0x1b088
|
||||
MX6UL_PAD_CSI_VSYNC__CSI_VSYNC 0x1b088
|
||||
MX6UL_PAD_CSI_HSYNC__CSI_HSYNC 0x1b088
|
||||
MX6UL_PAD_CSI_DATA00__CSI_DATA02 0x1b088
|
||||
MX6UL_PAD_CSI_DATA01__CSI_DATA03 0x1b088
|
||||
MX6UL_PAD_CSI_DATA02__CSI_DATA04 0x1b088
|
||||
MX6UL_PAD_CSI_DATA03__CSI_DATA05 0x1b088
|
||||
MX6UL_PAD_CSI_DATA04__CSI_DATA06 0x1b088
|
||||
MX6UL_PAD_CSI_DATA05__CSI_DATA07 0x1b088
|
||||
MX6UL_PAD_CSI_DATA06__CSI_DATA08 0x1b088
|
||||
MX6UL_PAD_CSI_DATA07__CSI_DATA09 0x1b088
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_enet1: enet1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
|
||||
MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
|
||||
MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
|
||||
MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
|
||||
MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
|
||||
MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
|
||||
MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
|
||||
MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_enet2: enet2grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
|
||||
MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0
|
||||
MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0
|
||||
MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0
|
||||
MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
|
||||
MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
|
||||
MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0
|
||||
MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
|
||||
MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
|
||||
MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_flexcan1: flexcan1grp{
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020
|
||||
MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_flexcan2: flexcan2grp{
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x1b020
|
||||
MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x1b020
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c1: i2c1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
|
||||
MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c1_gpio: i2c1grp_gpio {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x1b8b0
|
||||
MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x1b8b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c2: i2c2grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0
|
||||
MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_lcdif_dat: lcdifdatgrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x79
|
||||
MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x79
|
||||
MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x79
|
||||
MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x79
|
||||
MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x79
|
||||
MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x79
|
||||
MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x79
|
||||
MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x79
|
||||
MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x79
|
||||
MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x79
|
||||
MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x79
|
||||
MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x79
|
||||
MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x79
|
||||
MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x79
|
||||
MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x79
|
||||
MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x79
|
||||
MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x79
|
||||
MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x79
|
||||
MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x79
|
||||
MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x79
|
||||
MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x79
|
||||
MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x79
|
||||
MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x79
|
||||
MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x79
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_lcdif_ctrl: lcdifctrlgrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x79
|
||||
MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x79
|
||||
MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x79
|
||||
MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x79
|
||||
/* used for lcd reset */
|
||||
MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x79
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_qspi: qspigrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_NAND_WP_B__QSPI_A_SCLK 0x70a1
|
||||
MX6UL_PAD_NAND_READY_B__QSPI_A_DATA00 0x70a1
|
||||
MX6UL_PAD_NAND_CE0_B__QSPI_A_DATA01 0x70a1
|
||||
MX6UL_PAD_NAND_CE1_B__QSPI_A_DATA02 0x70a1
|
||||
MX6UL_PAD_NAND_CLE__QSPI_A_DATA03 0x70a1
|
||||
MX6UL_PAD_NAND_DQS__QSPI_A_SS0_B 0x70a1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_sai2: sai2grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088
|
||||
MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088
|
||||
MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x11088
|
||||
MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x11088
|
||||
MX6UL_PAD_JTAG_TMS__SAI2_MCLK 0x17088
|
||||
MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_pwm1: pwm1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_GPIO1_IO08__PWM1_OUT 0x110b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_sim2: sim2grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_CSI_DATA03__SIM2_PORT1_PD 0xb808
|
||||
MX6UL_PAD_CSI_DATA04__SIM2_PORT1_CLK 0x31
|
||||
MX6UL_PAD_CSI_DATA05__SIM2_PORT1_RST_B 0xb808
|
||||
MX6UL_PAD_CSI_DATA06__SIM2_PORT1_SVEN 0xb808
|
||||
MX6UL_PAD_CSI_DATA07__SIM2_PORT1_TRXD 0xb809
|
||||
MX6UL_PAD_CSI_DATA02__GPIO4_IO23 0x3008
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_spi4: spi4grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_BOOT_MODE0__GPIO5_IO10 0x70a1
|
||||
MX6UL_PAD_BOOT_MODE1__GPIO5_IO11 0x70a1
|
||||
MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x70a1
|
||||
MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x80000000
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_tsc: tscgrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0xb0
|
||||
MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0xb0
|
||||
MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0xb0
|
||||
MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0xb0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart1: uart1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
|
||||
MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart2: uart2grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1
|
||||
MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
|
||||
MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x1b0b1
|
||||
MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc1: usdhc1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
|
||||
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059
|
||||
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
|
||||
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
|
||||
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
|
||||
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
|
||||
MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 /* SD1 CD */
|
||||
MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT 0x17059 /* SD1 VSELECT */
|
||||
MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x17059 /* SD1 RESET */
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9
|
||||
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9
|
||||
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9
|
||||
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9
|
||||
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9
|
||||
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9
|
||||
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9
|
||||
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9
|
||||
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9
|
||||
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9
|
||||
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9
|
||||
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2: usdhc2grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x17059
|
||||
MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059
|
||||
MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059
|
||||
MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059
|
||||
MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059
|
||||
MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_wdog: wdoggrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY 0x30b0
|
||||
>;
|
||||
};
|
||||
};
|
|
@ -1,10 +1,6 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) 2015 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* Copyright 2014 - 2015 Freescale Semiconductor, Inc.
|
||||
*/
|
||||
|
||||
#ifndef __DTS_IMX6UL_PINFUNC_H
|
||||
|
@ -34,14 +30,14 @@
|
|||
#define MX6UL_PAD_JTAG_MOD__ENET1_REF_CLK_25M 0x0044 0x02d0 0x0000 3 0
|
||||
#define MX6UL_PAD_JTAG_MOD__CCM_PMIC_RDY 0x0044 0x02d0 0x04c0 4 0
|
||||
#define MX6UL_PAD_JTAG_MOD__GPIO1_IO10 0x0044 0x02d0 0x0000 5 0
|
||||
#define MX6UL_PAD_JTAG_MOD__SDMA_EXT_EVENT00 0x0044 0x02d0 0x0000 6 0
|
||||
#define MX6UL_PAD_JTAG_MOD__SDMA_EXT_EVENT00 0x0044 0x02d0 0x0610 6 0
|
||||
#define MX6UL_PAD_JTAG_TMS__SJC_TMS 0x0048 0x02d4 0x0000 0 0
|
||||
#define MX6UL_PAD_JTAG_TMS__GPT2_CAPTURE1 0x0048 0x02d4 0x0598 1 0
|
||||
#define MX6UL_PAD_JTAG_TMS__SAI2_MCLK 0x0048 0x02d4 0x0000 2 0
|
||||
#define MX6UL_PAD_JTAG_TMS__SAI2_MCLK 0x0048 0x02d4 0x05f0 2 0
|
||||
#define MX6UL_PAD_JTAG_TMS__CCM_CLKO1 0x0048 0x02d4 0x0000 3 0
|
||||
#define MX6UL_PAD_JTAG_TMS__CCM_WAIT 0x0048 0x02d4 0x0000 4 0
|
||||
#define MX6UL_PAD_JTAG_TMS__GPIO1_IO11 0x0048 0x02d4 0x0000 5 0
|
||||
#define MX6UL_PAD_JTAG_TMS__SDMA_EXT_EVENT01 0x0048 0x02d4 0x0000 6 0
|
||||
#define MX6UL_PAD_JTAG_TMS__SDMA_EXT_EVENT01 0x0048 0x02d4 0x0614 6 0
|
||||
#define MX6UL_PAD_JTAG_TMS__EPIT1_OUT 0x0048 0x02d4 0x0000 8 0
|
||||
#define MX6UL_PAD_JTAG_TDO__SJC_TDO 0x004c 0x02d8 0x0000 0 0
|
||||
#define MX6UL_PAD_JTAG_TDO__GPT2_CAPTURE2 0x004c 0x02d8 0x059c 1 0
|
||||
|
@ -63,12 +59,14 @@
|
|||
#define MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x0054 0x02e0 0x05f4 2 0
|
||||
#define MX6UL_PAD_JTAG_TCK__PWM7_OUT 0x0054 0x02e0 0x0000 4 0
|
||||
#define MX6UL_PAD_JTAG_TCK__GPIO1_IO14 0x0054 0x02e0 0x0000 5 0
|
||||
#define MX6UL_PAD_JTAG_TCK__OSC32K_32K_OUT 0x0054 0x02e0 0x0000 6 0
|
||||
#define MX6UL_PAD_JTAG_TCK__SIM2_POWER_FAIL 0x0054 0x02e0 0x0000 8 0
|
||||
#define MX6UL_PAD_JTAG_TRST_B__SJC_TRSTB 0x0058 0x02e4 0x0000 0 0
|
||||
#define MX6UL_PAD_JTAG_TRST_B__GPT2_COMPARE3 0x0058 0x02e4 0x0000 1 0
|
||||
#define MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x0058 0x02e4 0x0000 2 0
|
||||
#define MX6UL_PAD_JTAG_TRST_B__PWM8_OUT 0x0058 0x02e4 0x0000 4 0
|
||||
#define MX6UL_PAD_JTAG_TRST_B__GPIO1_IO15 0x0058 0x02e4 0x0000 5 0
|
||||
#define MX6UL_PAD_JTAG_TRST_B__REF_CLK_24M 0x0058 0x02e4 0x0000 6 0
|
||||
#define MX6UL_PAD_JTAG_TRST_B__CAAM_RNG_OSC_OBS 0x0058 0x02e4 0x0000 8 0
|
||||
#define MX6UL_PAD_GPIO1_IO00__I2C2_SCL 0x005c 0x02e8 0x05ac 0 1
|
||||
#define MX6UL_PAD_GPIO1_IO00__GPT1_CAPTURE1 0x005c 0x02e8 0x058c 1 0
|
||||
|
@ -94,22 +92,24 @@
|
|||
#define MX6UL_PAD_GPIO1_IO02__ENET1_REF_CLK_25M 0x0064 0x02f0 0x0000 3 0
|
||||
#define MX6UL_PAD_GPIO1_IO02__USDHC1_WP 0x0064 0x02f0 0x066c 4 0
|
||||
#define MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0x0064 0x02f0 0x0000 5 0
|
||||
#define MX6UL_PAD_GPIO1_IO02__SDMA_EXT_EVENT00 0x0064 0x02f0 0x0000 6 0
|
||||
#define MX6UL_PAD_GPIO1_IO02__SDMA_EXT_EVENT00 0x0064 0x02f0 0x0610 6 1
|
||||
#define MX6UL_PAD_GPIO1_IO02__SRC_ANY_PU_RESET 0x0064 0x02f0 0x0000 7 0
|
||||
#define MX6UL_PAD_GPIO1_IO02__UART1_DCE_TX 0x0064 0x02f0 0x0000 8 0
|
||||
#define MX6UL_PAD_GPIO1_IO02__UART1_DTE_RX 0x0064 0x02f0 0x0624 8 0
|
||||
#define MX6UL_PAD_GPIO1_IO03__I2C1_SDA 0x0068 0x02f4 0x05a8 0 1
|
||||
#define MX6UL_PAD_GPIO1_IO03__GPT1_COMPARE3 0x0068 0x02f4 0x0000 1 0
|
||||
#define MX6UL_PAD_GPIO1_IO03__USB_OTG2_OC 0x0068 0x02f4 0x0660 2 0
|
||||
#define MX6UL_PAD_GPIO1_IO03__OSC32K_32K_OUT 0x0068 0x02f4 0x0000 3 0
|
||||
#define MX6UL_PAD_GPIO1_IO03__USDHC1_CD_B 0x0068 0x02f4 0x0668 4 0
|
||||
#define MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x0068 0x02f4 0x0000 5 0
|
||||
#define MX6UL_PAD_GPIO1_IO03__CCM_DI0_eXT_CLK 0x0068 0x02f4 0x0000 6 0
|
||||
#define MX6UL_PAD_GPIO1_IO03__CCM_DI0_EXT_CLK 0x0068 0x02f4 0x0000 6 0
|
||||
#define MX6UL_PAD_GPIO1_IO03__SRC_TESTER_ACK 0x0068 0x02f4 0x0000 7 0
|
||||
#define MX6UL_PAD_GPIO1_IO03__UART1_DTE_TX 0x0068 0x02f4 0x0000 8 0
|
||||
#define MX6UL_PAD_GPIO1_IO03__UART1_DCE_RX 0x0068 0x02f4 0x0624 8 1
|
||||
#define MX6UL_PAD_GPIO1_IO03__UART1_DTE_TX 0x0068 0x02f4 0x0000 8 0
|
||||
#define MX6UL_PAD_GPIO1_IO04__ENET1_REF_CLK1 0x006c 0x02f8 0x0574 0 1
|
||||
#define MX6UL_PAD_GPIO1_IO04__PWM3_OUT 0x006c 0x02f8 0x0000 1 0
|
||||
#define MX6UL_PAD_GPIO1_IO04__USB_OTG1_PWR 0x006c 0x02f8 0x0000 2 0
|
||||
#define MX6UL_PAD_GPIO1_IO04__REF_CLK_24M 0x006c 0x02f8 0x0000 3 0
|
||||
#define MX6UL_PAD_GPIO1_IO04__USDHC1_RESET_B 0x006c 0x02f8 0x0000 4 0
|
||||
#define MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x006c 0x02f8 0x0000 5 0
|
||||
#define MX6UL_PAD_GPIO1_IO04__ENET2_1588_EVENT0_IN 0x006c 0x02f8 0x0000 6 0
|
||||
|
@ -200,7 +200,7 @@
|
|||
#define MX6UL_PAD_UART2_TX_DATA__CSI_DATA06 0x0094 0x0320 0x04dc 3 0
|
||||
#define MX6UL_PAD_UART2_TX_DATA__GPT1_CAPTURE1 0x0094 0x0320 0x058c 4 1
|
||||
#define MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20 0x0094 0x0320 0x0000 5 0
|
||||
#define MX6UL_PAD_UART2_TX_DATA__ECSPI3_SS0 0x0094 0x0320 0x0000 8 0
|
||||
#define MX6UL_PAD_UART2_TX_DATA__ECSPI3_SS0 0x0094 0x0320 0x0560 8 0
|
||||
#define MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x0098 0x0324 0x062c 0 1
|
||||
#define MX6UL_PAD_UART2_RX_DATA__UART2_DTE_TX 0x0098 0x0324 0x0000 0 0
|
||||
#define MX6UL_PAD_UART2_RX_DATA__ENET1_TDATA03 0x0098 0x0324 0x0000 1 0
|
||||
|
@ -232,7 +232,7 @@
|
|||
#define MX6UL_PAD_UART3_TX_DATA__UART3_DTE_RX 0x00a4 0x0330 0x0634 0 0
|
||||
#define MX6UL_PAD_UART3_TX_DATA__ENET2_RDATA02 0x00a4 0x0330 0x0000 1 0
|
||||
#define MX6UL_PAD_UART3_TX_DATA__SIM1_PORT0_PD 0x00a4 0x0330 0x0000 2 0
|
||||
#define MX6UL_PAD_UART3_TX_DATA__CSI_DATA01 0x00a4 0x0330 0x0000 3 0
|
||||
#define MX6UL_PAD_UART3_TX_DATA__CSI_DATA01 0x00a4 0x0330 0x04d4 3 0
|
||||
#define MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x00a4 0x0330 0x0000 4 0
|
||||
#define MX6UL_PAD_UART3_TX_DATA__UART2_DTE_RTS 0x00a4 0x0330 0x0628 4 2
|
||||
#define MX6UL_PAD_UART3_TX_DATA__GPIO1_IO24 0x00a4 0x0330 0x0000 5 0
|
||||
|
@ -242,7 +242,7 @@
|
|||
#define MX6UL_PAD_UART3_RX_DATA__UART3_DTE_TX 0x00a8 0x0334 0x0000 0 0
|
||||
#define MX6UL_PAD_UART3_RX_DATA__ENET2_RDATA03 0x00a8 0x0334 0x0000 1 0
|
||||
#define MX6UL_PAD_UART3_RX_DATA__SIM2_PORT0_PD 0x00a8 0x0334 0x0000 2 0
|
||||
#define MX6UL_PAD_UART3_RX_DATA__CSI_DATA00 0x00a8 0x0334 0x0000 3 0
|
||||
#define MX6UL_PAD_UART3_RX_DATA__CSI_DATA00 0x00a8 0x0334 0x04d0 3 0
|
||||
#define MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x00a8 0x0334 0x0628 4 3
|
||||
#define MX6UL_PAD_UART3_RX_DATA__UART2_DTE_CTS 0x00a8 0x0334 0x0000 4 0
|
||||
#define MX6UL_PAD_UART3_RX_DATA__GPIO1_IO25 0x00a8 0x0334 0x0000 5 0
|
||||
|
@ -251,7 +251,7 @@
|
|||
#define MX6UL_PAD_UART3_CTS_B__UART3_DTE_RTS 0x00ac 0x0338 0x0630 0 0
|
||||
#define MX6UL_PAD_UART3_CTS_B__ENET2_RX_CLK 0x00ac 0x0338 0x0000 1 0
|
||||
#define MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x00ac 0x0338 0x0000 2 0
|
||||
#define MX6UL_PAD_UART3_CTS_B__CSI_DATA10 0x00ac 0x0338 0x0000 3 0
|
||||
#define MX6UL_PAD_UART3_CTS_B__CSI_DATA10 0x00ac 0x0338 0x04ec 3 0
|
||||
#define MX6UL_PAD_UART3_CTS_B__ENET1_1588_EVENT1_IN 0x00ac 0x0338 0x0000 4 0
|
||||
#define MX6UL_PAD_UART3_CTS_B__GPIO1_IO26 0x00ac 0x0338 0x0000 5 0
|
||||
#define MX6UL_PAD_UART3_CTS_B__EPIT2_OUT 0x00ac 0x0338 0x0000 8 0
|
||||
|
@ -259,7 +259,7 @@
|
|||
#define MX6UL_PAD_UART3_RTS_B__UART3_DTE_CTS 0x00b0 0x033c 0x0000 0 0
|
||||
#define MX6UL_PAD_UART3_RTS_B__ENET2_TX_ER 0x00b0 0x033c 0x0000 1 0
|
||||
#define MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x00b0 0x033c 0x0584 2 0
|
||||
#define MX6UL_PAD_UART3_RTS_B__CSI_DATA11 0x00b0 0x033c 0x0000 3 0
|
||||
#define MX6UL_PAD_UART3_RTS_B__CSI_DATA11 0x00b0 0x033c 0x04f0 3 0
|
||||
#define MX6UL_PAD_UART3_RTS_B__ENET1_1588_EVENT1_OUT 0x00b0 0x033c 0x0000 4 0
|
||||
#define MX6UL_PAD_UART3_RTS_B__GPIO1_IO27 0x00b0 0x033c 0x0000 5 0
|
||||
#define MX6UL_PAD_UART3_RTS_B__WDOG1_WDOG_B 0x00b0 0x033c 0x0000 8 0
|
||||
|
@ -267,7 +267,7 @@
|
|||
#define MX6UL_PAD_UART4_TX_DATA__UART4_DTE_RX 0x00b4 0x0340 0x063c 0 0
|
||||
#define MX6UL_PAD_UART4_TX_DATA__ENET2_TDATA02 0x00b4 0x0340 0x0000 1 0
|
||||
#define MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x00b4 0x0340 0x05a4 2 1
|
||||
#define MX6UL_PAD_UART4_TX_DATA__CSI_DATA12 0x00b4 0x0340 0x0000 3 0
|
||||
#define MX6UL_PAD_UART4_TX_DATA__CSI_DATA12 0x00b4 0x0340 0x04f4 3 0
|
||||
#define MX6UL_PAD_UART4_TX_DATA__CSU_CSU_ALARM_AUT02 0x00b4 0x0340 0x0000 4 0
|
||||
#define MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x00b4 0x0340 0x0000 5 0
|
||||
#define MX6UL_PAD_UART4_TX_DATA__ECSPI2_SCLK 0x00b4 0x0340 0x0544 8 1
|
||||
|
@ -275,23 +275,23 @@
|
|||
#define MX6UL_PAD_UART4_RX_DATA__UART4_DTE_TX 0x00b8 0x0344 0x0000 0 0
|
||||
#define MX6UL_PAD_UART4_RX_DATA__ENET2_TDATA03 0x00b8 0x0344 0x0000 1 0
|
||||
#define MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x00b8 0x0344 0x05a8 2 2
|
||||
#define MX6UL_PAD_UART4_RX_DATA__CSI_DATA13 0x00b8 0x0344 0x0000 3 0
|
||||
#define MX6UL_PAD_UART4_RX_DATA__CSI_DATA13 0x00b8 0x0344 0x04f8 3 0
|
||||
#define MX6UL_PAD_UART4_RX_DATA__CSU_CSU_ALARM_AUT01 0x00b8 0x0344 0x0000 4 0
|
||||
#define MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x00b8 0x0344 0x0000 5 0
|
||||
#define MX6UL_PAD_UART4_RX_DATA__ECSPI2_SS0 0x00b8 0x0344 0x0000 8 0
|
||||
#define MX6UL_PAD_UART4_RX_DATA__ECSPI2_SS0 0x00b8 0x0344 0x0550 8 1
|
||||
#define MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30 0x00bc 0x0348 0x0000 5 0
|
||||
#define MX6UL_PAD_UART5_TX_DATA__ECSPI2_MOSI 0x00bc 0x0348 0x054c 8 0
|
||||
#define MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX 0x00bc 0x0348 0x0000 0 0
|
||||
#define MX6UL_PAD_UART5_TX_DATA__UART5_DTE_RX 0x00bc 0x0348 0x0644 0 4
|
||||
#define MX6UL_PAD_UART5_TX_DATA__ENET2_CRS 0x00bc 0x0348 0x0000 1 0
|
||||
#define MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x00bc 0x0348 0x05ac 2 2
|
||||
#define MX6UL_PAD_UART5_TX_DATA__CSI_DATA14 0x00bc 0x0348 0x0000 3 0
|
||||
#define MX6UL_PAD_UART5_TX_DATA__CSI_DATA14 0x00bc 0x0348 0x04fc 3 0
|
||||
#define MX6UL_PAD_UART5_TX_DATA__CSU_CSU_ALARM_AUT00 0x00bc 0x0348 0x0000 4 0
|
||||
#define MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x00c0 0x034c 0x0644 0 5
|
||||
#define MX6UL_PAD_UART5_RX_DATA__UART5_DTE_TX 0x00c0 0x034c 0x0000 0 0
|
||||
#define MX6UL_PAD_UART5_RX_DATA__ENET2_COL 0x00c0 0x034c 0x0000 1 0
|
||||
#define MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x00c0 0x034c 0x05b0 2 2
|
||||
#define MX6UL_PAD_UART5_RX_DATA__CSI_DATA15 0x00c0 0x034c 0x0000 3 0
|
||||
#define MX6UL_PAD_UART5_RX_DATA__CSI_DATA15 0x00c0 0x034c 0x0500 3 0
|
||||
#define MX6UL_PAD_UART5_RX_DATA__CSU_CSU_INT_DEB 0x00c0 0x034c 0x0000 4 0
|
||||
#define MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31 0x00c0 0x034c 0x0000 5 0
|
||||
#define MX6UL_PAD_UART5_RX_DATA__ECSPI2_MISO 0x00c0 0x034c 0x0548 8 1
|
||||
|
@ -299,59 +299,61 @@
|
|||
#define MX6UL_PAD_ENET1_RX_DATA0__UART4_DCE_RTS 0x00c4 0x0350 0x0638 1 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA0__UART4_DTE_CTS 0x00c4 0x0350 0x0000 1 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA0__PWM1_OUT 0x00c4 0x0350 0x0000 2 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA0__CSI_DATA16 0x00c4 0x0350 0x0000 3 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA0__CSI_DATA16 0x00c4 0x0350 0x0504 3 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA0__FLEXCAN1_TX 0x00c4 0x0350 0x0000 4 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA0__GPIO2_IO00 0x00c4 0x0350 0x0000 5 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA0__KPP_ROW00 0x00c4 0x0350 0x0000 6 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA0__KPP_ROW00 0x00c4 0x0350 0x05d0 6 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA0__USDHC1_LCTL 0x00c4 0x0350 0x0000 8 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x00c8 0x0354 0x0000 0 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA1__UART4_DCE_CTS 0x00c8 0x0354 0x0000 1 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA1__UART4_DTE_RTS 0x00c8 0x0354 0x0638 1 1
|
||||
#define MX6UL_PAD_ENET1_RX_DATA1__PWM2_OUT 0x00c8 0x0354 0x0000 2 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA1__CSI_DATA17 0x00c8 0x0354 0x0000 3 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA1__CSI_DATA17 0x00c8 0x0354 0x0508 3 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA1__FLEXCAN1_RX 0x00c8 0x0354 0x0584 4 1
|
||||
#define MX6UL_PAD_ENET1_RX_DATA1__GPIO2_IO01 0x00c8 0x0354 0x0000 5 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA1__KPP_COL00 0x00c8 0x0354 0x0000 6 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA1__KPP_COL00 0x00c8 0x0354 0x05c4 6 0
|
||||
#define MX6UL_PAD_ENET1_RX_DATA1__USDHC2_LCTL 0x00c8 0x0354 0x0000 8 0
|
||||
#define MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x00cc 0x0358 0x0000 0 0
|
||||
#define MX6UL_PAD_ENET1_RX_EN__UART5_DCE_RTS 0x00cc 0x0358 0x0640 1 3
|
||||
#define MX6UL_PAD_ENET1_RX_EN__UART5_DTE_CTS 0x00cc 0x0358 0x0000 1 0
|
||||
#define MX6UL_PAD_ENET1_RX_EN__CSI_DATA18 0x00cc 0x0358 0x0000 3 0
|
||||
#define MX6UL_PAD_ENET1_RX_EN__OSC32K_32K_OUT 0x00cc 0x0358 0x0000 2 0
|
||||
#define MX6UL_PAD_ENET1_RX_EN__CSI_DATA18 0x00cc 0x0358 0x050c 3 0
|
||||
#define MX6UL_PAD_ENET1_RX_EN__FLEXCAN2_TX 0x00cc 0x0358 0x0000 4 0
|
||||
#define MX6UL_PAD_ENET1_RX_EN__GPIO2_IO02 0x00cc 0x0358 0x0000 5 0
|
||||
#define MX6UL_PAD_ENET1_RX_EN__KPP_ROW01 0x00cc 0x0358 0x0000 6 0
|
||||
#define MX6UL_PAD_ENET1_RX_EN__KPP_ROW01 0x00cc 0x0358 0x05d4 6 0
|
||||
#define MX6UL_PAD_ENET1_RX_EN__USDHC1_VSELECT 0x00cc 0x0358 0x0000 8 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x00d0 0x035c 0x0000 0 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA0__UART5_DCE_CTS 0x00d0 0x035c 0x0000 1 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA0__UART5_DTE_RTS 0x00d0 0x035c 0x0640 1 4
|
||||
#define MX6UL_PAD_ENET1_TX_DATA0__CSI_DATA19 0x00d0 0x035c 0x0000 3 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA0__REF_CLK_24M 0x00d0 0x035c 0x0000 2 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA0__CSI_DATA19 0x00d0 0x035c 0x0510 3 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA0__FLEXCAN2_RX 0x00d0 0x035c 0x0588 4 1
|
||||
#define MX6UL_PAD_ENET1_TX_DATA0__GPIO2_IO03 0x00d0 0x035c 0x0000 5 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA0__KPP_COL01 0x00d0 0x035c 0x0000 6 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA0__KPP_COL01 0x00d0 0x035c 0x05c8 6 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA0__USDHC2_VSELECT 0x00d0 0x035c 0x0000 8 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x00d4 0x0360 0x0000 0 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA1__UART6_DCE_CTS 0x00d4 0x0360 0x0000 1 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA1__UART6_DTE_RTS 0x00d4 0x0360 0x0648 1 2
|
||||
#define MX6UL_PAD_ENET1_TX_DATA1__PWM5_OUT 0x00d4 0x0360 0x0000 2 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA1__CSI_DATA20 0x00d4 0x0360 0x0000 3 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA1__CSI_DATA20 0x00d4 0x0360 0x0514 3 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA1__ENET2_MDIO 0x00d4 0x0360 0x0580 4 1
|
||||
#define MX6UL_PAD_ENET1_TX_DATA1__GPIO2_IO04 0x00d4 0x0360 0x0000 5 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA1__KPP_ROW02 0x00d4 0x0360 0x0000 6 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA1__KPP_ROW02 0x00d4 0x0360 0x05d8 6 0
|
||||
#define MX6UL_PAD_ENET1_TX_DATA1__WDOG1_WDOG_RST_B_DEB 0x00d4 0x0360 0x0000 8 0
|
||||
#define MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x00d8 0x0364 0x0000 0 0
|
||||
#define MX6UL_PAD_ENET1_TX_EN__UART6_DCE_RTS 0x00d8 0x0364 0x0648 1 3
|
||||
#define MX6UL_PAD_ENET1_TX_EN__UART6_DTE_CTS 0x00d8 0x0364 0x0000 1 0
|
||||
#define MX6UL_PAD_ENET1_TX_EN__PWM6_OUT 0x00d8 0x0364 0x0000 2 0
|
||||
#define MX6UL_PAD_ENET1_TX_EN__CSI_DATA21 0x00d8 0x0364 0x0000 3 0
|
||||
#define MX6UL_PAD_ENET1_TX_EN__CSI_DATA21 0x00d8 0x0364 0x0518 3 0
|
||||
#define MX6UL_PAD_ENET1_TX_EN__ENET2_MDC 0x00d8 0x0364 0x0000 4 0
|
||||
#define MX6UL_PAD_ENET1_TX_EN__GPIO2_IO05 0x00d8 0x0364 0x0000 5 0
|
||||
#define MX6UL_PAD_ENET1_TX_EN__KPP_COL02 0x00d8 0x0364 0x0000 6 0
|
||||
#define MX6UL_PAD_ENET1_TX_EN__KPP_COL02 0x00d8 0x0364 0x05cc 6 0
|
||||
#define MX6UL_PAD_ENET1_TX_EN__WDOG2_WDOG_RST_B_DEB 0x00d8 0x0364 0x0000 8 0
|
||||
#define MX6UL_PAD_ENET1_TX_CLK__ENET1_TX_CLK 0x00dc 0x0368 0x0000 0 0
|
||||
#define MX6UL_PAD_ENET1_TX_CLK__UART7_DCE_CTS 0x00dc 0x0368 0x0000 1 0
|
||||
#define MX6UL_PAD_ENET1_TX_CLK__UART7_DTE_RTS 0x00dc 0x0368 0x0650 1 0
|
||||
#define MX6UL_PAD_ENET1_TX_CLK__PWM7_OUT 0x00dc 0x0368 0x0000 2 0
|
||||
#define MX6UL_PAD_ENET1_TX_CLK__CSI_DATA22 0x00dc 0x0368 0x0000 3 0
|
||||
#define MX6UL_PAD_ENET1_TX_CLK__CSI_DATA22 0x00dc 0x0368 0x051c 3 0
|
||||
#define MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x00dc 0x0368 0x0574 4 2
|
||||
#define MX6UL_PAD_ENET1_TX_CLK__GPIO2_IO06 0x00dc 0x0368 0x0000 5 0
|
||||
#define MX6UL_PAD_ENET1_TX_CLK__KPP_ROW03 0x00dc 0x0368 0x0000 6 0
|
||||
|
@ -360,7 +362,7 @@
|
|||
#define MX6UL_PAD_ENET1_RX_ER__UART7_DCE_RTS 0x00e0 0x036c 0x0650 1 1
|
||||
#define MX6UL_PAD_ENET1_RX_ER__UART7_DTE_CTS 0x00e0 0x036c 0x0000 1 0
|
||||
#define MX6UL_PAD_ENET1_RX_ER__PWM8_OUT 0x00e0 0x036c 0x0000 2 0
|
||||
#define MX6UL_PAD_ENET1_RX_ER__CSI_DATA23 0x00e0 0x036c 0x0000 3 0
|
||||
#define MX6UL_PAD_ENET1_RX_ER__CSI_DATA23 0x00e0 0x036c 0x0520 3 0
|
||||
#define MX6UL_PAD_ENET1_RX_ER__EIM_CRE 0x00e0 0x036c 0x0000 4 0
|
||||
#define MX6UL_PAD_ENET1_RX_ER__GPIO2_IO07 0x00e0 0x036c 0x0000 5 0
|
||||
#define MX6UL_PAD_ENET1_RX_ER__KPP_COL03 0x00e0 0x036c 0x0000 6 0
|
||||
|
@ -377,7 +379,7 @@
|
|||
#define MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x00e8 0x0374 0x0000 0 0
|
||||
#define MX6UL_PAD_ENET2_RX_DATA1__UART6_DCE_RX 0x00e8 0x0374 0x064c 1 2
|
||||
#define MX6UL_PAD_ENET2_RX_DATA1__UART6_DTE_TX 0x00e8 0x0374 0x0000 1 0
|
||||
#define MX6UL_PAD_ENET2_RX_DATA1__SIM1_PORT0_cLK 0x00e8 0x0374 0x0000 2 0
|
||||
#define MX6UL_PAD_ENET2_RX_DATA1__SIM1_PORT0_CLK 0x00e8 0x0374 0x0000 2 0
|
||||
#define MX6UL_PAD_ENET2_RX_DATA1__I2C3_SDA 0x00e8 0x0374 0x05b8 3 1
|
||||
#define MX6UL_PAD_ENET2_RX_DATA1__ENET1_MDC 0x00e8 0x0374 0x0000 4 0
|
||||
#define MX6UL_PAD_ENET2_RX_DATA1__GPIO2_IO09 0x00e8 0x0374 0x0000 5 0
|
||||
|
@ -400,6 +402,7 @@
|
|||
#define MX6UL_PAD_ENET2_TX_DATA0__EIM_EB_B02 0x00f0 0x037c 0x0000 4 0
|
||||
#define MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO11 0x00f0 0x037c 0x0000 5 0
|
||||
#define MX6UL_PAD_ENET2_TX_DATA0__KPP_COL05 0x00f0 0x037c 0x0000 6 0
|
||||
#define MX6UL_PAD_ENET2_TX_DATA0__REF_CLK_24M 0x00f0 0x037c 0x0000 8 0
|
||||
#define MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x00f4 0x0380 0x0000 0 0
|
||||
#define MX6UL_PAD_ENET2_TX_DATA1__UART8_DCE_TX 0x00f4 0x0380 0x0000 1 0
|
||||
#define MX6UL_PAD_ENET2_TX_DATA1__UART8_DTE_RX 0x00f4 0x0380 0x065c 1 0
|
||||
|
@ -412,7 +415,7 @@
|
|||
#define MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x00f8 0x0384 0x0000 0 0
|
||||
#define MX6UL_PAD_ENET2_TX_EN__UART8_DCE_RX 0x00f8 0x0384 0x065c 1 1
|
||||
#define MX6UL_PAD_ENET2_TX_EN__UART8_DTE_TX 0x00f8 0x0384 0x0000 1 0
|
||||
#define MX6UL_PAD_ENET2_TX_EN__SIM2_PORT0_cLK 0x00f8 0x0384 0x0000 2 0
|
||||
#define MX6UL_PAD_ENET2_TX_EN__SIM2_PORT0_CLK 0x00f8 0x0384 0x0000 2 0
|
||||
#define MX6UL_PAD_ENET2_TX_EN__ECSPI4_MOSI 0x00f8 0x0384 0x056c 3 0
|
||||
#define MX6UL_PAD_ENET2_TX_EN__EIM_ACLK_FREERUN 0x00f8 0x0384 0x0000 4 0
|
||||
#define MX6UL_PAD_ENET2_TX_EN__GPIO2_IO13 0x00f8 0x0384 0x0000 5 0
|
||||
|
@ -431,7 +434,7 @@
|
|||
#define MX6UL_PAD_ENET2_RX_ER__UART8_DCE_RTS 0x0100 0x038c 0x0658 1 1
|
||||
#define MX6UL_PAD_ENET2_RX_ER__UART8_DTE_CTS 0x0100 0x038c 0x0000 1 0
|
||||
#define MX6UL_PAD_ENET2_RX_ER__SIM2_PORT0_SVEN 0x0100 0x038c 0x0000 2 0
|
||||
#define MX6UL_PAD_ENET2_RX_ER__ECSPI4_SS0 0x0100 0x038c 0x0000 3 0
|
||||
#define MX6UL_PAD_ENET2_RX_ER__ECSPI4_SS0 0x0100 0x038c 0x0570 3 0
|
||||
#define MX6UL_PAD_ENET2_RX_ER__EIM_ADDR25 0x0100 0x038c 0x0000 4 0
|
||||
#define MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15 0x0100 0x038c 0x0000 5 0
|
||||
#define MX6UL_PAD_ENET2_RX_ER__KPP_COL07 0x0100 0x038c 0x0000 6 0
|
||||
|
@ -440,7 +443,7 @@
|
|||
#define MX6UL_PAD_LCD_CLK__LCDIF_WR_RWN 0x0104 0x0390 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_CLK__UART4_DCE_TX 0x0104 0x0390 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_CLK__UART4_DTE_RX 0x0104 0x0390 0x063c 2 2
|
||||
#define MX6UL_PAD_LCD_CLK__SAI3_MCLK 0x0104 0x0390 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_CLK__SAI3_MCLK 0x0104 0x0390 0x0600 3 0
|
||||
#define MX6UL_PAD_LCD_CLK__EIM_CS2_B 0x0104 0x0390 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_CLK__GPIO3_IO00 0x0104 0x0390 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_CLK__WDOG1_WDOG_RST_B_DEB 0x0104 0x0390 0x0000 8 0
|
||||
|
@ -464,7 +467,7 @@
|
|||
#define MX6UL_PAD_LCD_VSYNC__LCDIF_BUSY 0x0110 0x039c 0x05dc 1 1
|
||||
#define MX6UL_PAD_LCD_VSYNC__UART4_DCE_RTS 0x0110 0x039c 0x0638 2 3
|
||||
#define MX6UL_PAD_LCD_VSYNC__UART4_DTE_CTS 0x0110 0x039c 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_VSYNC__SAI3_RX_DATA 0x0110 0x039c 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_VSYNC__SAI3_RX_DATA 0x0110 0x039c 0x0604 3 0
|
||||
#define MX6UL_PAD_LCD_VSYNC__WDOG2_WDOG_B 0x0110 0x039c 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_VSYNC__GPIO3_IO03 0x0110 0x039c 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_VSYNC__ECSPI2_SS2 0x0110 0x039c 0x0000 8 0
|
||||
|
@ -477,13 +480,15 @@
|
|||
#define MX6UL_PAD_LCD_RESET__ECSPI2_SS3 0x0114 0x03a0 0x0000 8 0
|
||||
#define MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x0118 0x03a4 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA00__PWM1_OUT 0x0118 0x03a4 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA00__CA7_MX6UL_TRACE0 0x0118 0x03a4 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA00__ENET1_1588_EVENT2_IN 0x0118 0x03a4 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA00__I2C3_SDA 0x0118 0x03a4 0x05b8 4 2
|
||||
#define MX6UL_PAD_LCD_DATA00__GPIO3_IO05 0x0118 0x03a4 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA00__SRC_BT_CFG00 0x0118 0x03a4 0x0000 6 0
|
||||
#define MX6UL_PAD_LCD_DATA00__SAI1_MCLK 0x0118 0x03a4 0x0000 8 0
|
||||
#define MX6UL_PAD_LCD_DATA00__SAI1_MCLK 0x0118 0x03a4 0x05e0 8 1
|
||||
#define MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x011c 0x03a8 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA01__PWM2_OUT 0x011c 0x03a8 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA01__CA7_MX6UL_TRACE1 0x011c 0x03a8 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA01__ENET1_1588_EVENT2_OUT 0x011c 0x03a8 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA01__I2C3_SCL 0x011c 0x03a8 0x05b4 4 2
|
||||
#define MX6UL_PAD_LCD_DATA01__GPIO3_IO06 0x011c 0x03a8 0x0000 5 0
|
||||
|
@ -491,6 +496,7 @@
|
|||
#define MX6UL_PAD_LCD_DATA01__SAI1_TX_SYNC 0x011c 0x03a8 0x05ec 8 0
|
||||
#define MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x0120 0x03ac 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA02__PWM3_OUT 0x0120 0x03ac 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA02__CA7_MX6UL_TRACE2 0x0120 0x03ac 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA02__ENET1_1588_EVENT3_IN 0x0120 0x03ac 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA02__I2C4_SDA 0x0120 0x03ac 0x05c0 4 2
|
||||
#define MX6UL_PAD_LCD_DATA02__GPIO3_IO07 0x0120 0x03ac 0x0000 5 0
|
||||
|
@ -498,14 +504,16 @@
|
|||
#define MX6UL_PAD_LCD_DATA02__SAI1_TX_BCLK 0x0120 0x03ac 0x05e8 8 0
|
||||
#define MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x0124 0x03b0 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA03__PWM4_OUT 0x0124 0x03b0 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA03__CA7_MX6UL_TRACE3 0x0124 0x03b0 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA03__ENET1_1588_EVENT3_OUT 0x0124 0x03b0 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA03__I2C4_SCL 0x0124 0x03b0 0x05bc 4 2
|
||||
#define MX6UL_PAD_LCD_DATA03__GPIO3_IO08 0x0124 0x03b0 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA03__SRC_BT_CFG03 0x0124 0x03b0 0x0000 6 0
|
||||
#define MX6UL_PAD_LCD_DATA03__SAI1_RX_DATA 0x0124 0x03b0 0x0000 8 0
|
||||
#define MX6UL_PAD_LCD_DATA03__SAI1_RX_DATA 0x0124 0x03b0 0x05e4 8 0
|
||||
#define MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x0128 0x03b4 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA04__UART8_DCE_CTS 0x0128 0x03b4 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA04__UART8_DTE_RTS 0x0128 0x03b4 0x0658 1 2
|
||||
#define MX6UL_PAD_LCD_DATA04__CA7_MX6UL_TRACE4 0x0128 0x03b4 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA04__ENET2_1588_EVENT2_IN 0x0128 0x03b4 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA04__SPDIF_SR_CLK 0x0128 0x03b4 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA04__GPIO3_IO09 0x0128 0x03b4 0x0000 5 0
|
||||
|
@ -514,6 +522,7 @@
|
|||
#define MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x012c 0x03b8 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA05__UART8_DCE_RTS 0x012c 0x03b8 0x0658 1 3
|
||||
#define MX6UL_PAD_LCD_DATA05__UART8_DTE_CTS 0x012c 0x03b8 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA05__CA7_MX6UL_TRACE5 0x012c 0x03b8 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA05__ENET2_1588_EVENT2_OUT 0x012c 0x03b8 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA05__SPDIF_OUT 0x012c 0x03b8 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA05__GPIO3_IO10 0x012c 0x03b8 0x0000 5 0
|
||||
|
@ -522,6 +531,7 @@
|
|||
#define MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x0130 0x03bc 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA06__UART7_DCE_CTS 0x0130 0x03bc 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA06__UART7_DTE_RTS 0x0130 0x03bc 0x0650 1 2
|
||||
#define MX6UL_PAD_LCD_DATA06__CA7_MX6UL_TRACE6 0x0130 0x03bc 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA06__ENET2_1588_EVENT3_IN 0x0130 0x03bc 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA06__SPDIF_LOCK 0x0130 0x03bc 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA06__GPIO3_IO11 0x0130 0x03bc 0x0000 5 0
|
||||
|
@ -530,6 +540,7 @@
|
|||
#define MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x0134 0x03c0 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA07__UART7_DCE_RTS 0x0134 0x03c0 0x0650 1 3
|
||||
#define MX6UL_PAD_LCD_DATA07__UART7_DTE_CTS 0x0134 0x03c0 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA07__CA7_MX6UL_TRACE7 0x0134 0x03c0 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA07__ENET2_1588_EVENT3_OUT 0x0134 0x03c0 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA07__SPDIF_EXT_CLK 0x0134 0x03c0 0x061c 4 0
|
||||
#define MX6UL_PAD_LCD_DATA07__GPIO3_IO12 0x0134 0x03c0 0x0000 5 0
|
||||
|
@ -537,56 +548,64 @@
|
|||
#define MX6UL_PAD_LCD_DATA07__ECSPI1_SS3 0x0134 0x03c0 0x0000 8 0
|
||||
#define MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x0138 0x03c4 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA08__SPDIF_IN 0x0138 0x03c4 0x0618 1 2
|
||||
#define MX6UL_PAD_LCD_DATA08__CSI_DATA16 0x0138 0x03c4 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA08__CA7_MX6UL_TRACE8 0x0138 0x03c4 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA08__CSI_DATA16 0x0138 0x03c4 0x0504 3 1
|
||||
#define MX6UL_PAD_LCD_DATA08__EIM_DATA00 0x0138 0x03c4 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA08__GPIO3_IO13 0x0138 0x03c4 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA08__SRC_BT_CFG08 0x0138 0x03c4 0x0000 6 0
|
||||
#define MX6UL_PAD_LCD_DATA08__FLEXCAN1_TX 0x0138 0x03c4 0x0000 8 0
|
||||
#define MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x013c 0x03c8 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA09__SAI3_MCLK 0x013c 0x03c8 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA09__CSI_DATA17 0x013c 0x03c8 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA09__SAI3_MCLK 0x013c 0x03c8 0x0600 1 1
|
||||
#define MX6UL_PAD_LCD_DATA09__CA7_MX6UL_TRACE9 0x013c 0x03c8 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA09__CSI_DATA17 0x013c 0x03c8 0x0508 3 1
|
||||
#define MX6UL_PAD_LCD_DATA09__EIM_DATA01 0x013c 0x03c8 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA09__GPIO3_IO14 0x013c 0x03c8 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA09__SRC_BT_CFG09 0x013c 0x03c8 0x0000 6 0
|
||||
#define MX6UL_PAD_LCD_DATA09__FLEXCAN1_RX 0x013c 0x03c8 0x0584 8 2
|
||||
#define MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x0140 0x03cc 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA10__SAI3_RX_SYNC 0x0140 0x03cc 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA10__CSI_DATA18 0x0140 0x03cc 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA10__CA7_MX6UL_TRACE10 0x0140 0x03cc 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA10__CSI_DATA18 0x0140 0x03cc 0x050c 3 1
|
||||
#define MX6UL_PAD_LCD_DATA10__EIM_DATA02 0x0140 0x03cc 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA10__GPIO3_IO15 0x0140 0x03cc 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA10__SRC_BT_CFG10 0x0140 0x03cc 0x0000 6 0
|
||||
#define MX6UL_PAD_LCD_DATA10__FLEXCAN2_TX 0x0140 0x03cc 0x0000 8 0
|
||||
#define MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x0144 0x03d0 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA11__SAI3_RX_BCLK 0x0144 0x03d0 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA11__CSI_DATA19 0x0144 0x03d0 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA11__CA7_MX6UL_TRACE11 0x0144 0x03d0 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA11__CSI_DATA19 0x0144 0x03d0 0x0510 3 1
|
||||
#define MX6UL_PAD_LCD_DATA11__EIM_DATA03 0x0144 0x03d0 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA11__GPIO3_IO16 0x0144 0x03d0 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA11__SRC_BT_CFG11 0x0144 0x03d0 0x0000 6 0
|
||||
#define MX6UL_PAD_LCD_DATA11__FLEXCAN2_RX 0x0144 0x03d0 0x0588 8 2
|
||||
#define MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x0148 0x03d4 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA12__SAI3_TX_SYNC 0x0148 0x03d4 0x060c 1 1
|
||||
#define MX6UL_PAD_LCD_DATA12__CSI_DATA20 0x0148 0x03d4 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA12__CA7_MX6UL_TRACE12 0x0148 0x03d4 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA12__CSI_DATA20 0x0148 0x03d4 0x0514 3 1
|
||||
#define MX6UL_PAD_LCD_DATA12__EIM_DATA04 0x0148 0x03d4 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA12__GPIO3_IO17 0x0148 0x03d4 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA12__SRC_BT_CFG12 0x0148 0x03d4 0x0000 6 0
|
||||
#define MX6UL_PAD_LCD_DATA12__ECSPI1_RDY 0x0148 0x03d4 0x0000 8 0
|
||||
#define MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x014c 0x03d8 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA13__SAI3_TX_BCLK 0x014c 0x03d8 0x0608 1 1
|
||||
#define MX6UL_PAD_LCD_DATA13__CSI_DATA21 0x014c 0x03d8 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA13__CA7_MX6UL_TRACE13 0x014c 0x03d8 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA13__CSI_DATA21 0x014c 0x03d8 0x0518 3 1
|
||||
#define MX6UL_PAD_LCD_DATA13__EIM_DATA05 0x014c 0x03d8 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA13__GPIO3_IO18 0x014c 0x03d8 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA13__SRC_BT_CFG13 0x014c 0x03d8 0x0000 6 0
|
||||
#define MX6UL_PAD_LCD_DATA13__USDHC2_RESET_B 0x014c 0x03d8 0x0000 8 0
|
||||
#define MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x0150 0x03dc 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA14__SAI3_RX_DATA 0x0150 0x03dc 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA14__CSI_DATA22 0x0150 0x03dc 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA14__SAI3_RX_DATA 0x0150 0x03dc 0x0604 1 1
|
||||
#define MX6UL_PAD_LCD_DATA14__CA7_MX6UL_TRACE14 0x0150 0x03dc 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA14__CSI_DATA22 0x0150 0x03dc 0x051c 3 1
|
||||
#define MX6UL_PAD_LCD_DATA14__EIM_DATA06 0x0150 0x03dc 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA14__GPIO3_IO19 0x0150 0x03dc 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA14__SRC_BT_CFG14 0x0150 0x03dc 0x0000 6 0
|
||||
#define MX6UL_PAD_LCD_DATA14__USDHC2_DATA4 0x0150 0x03dc 0x068c 8 0
|
||||
#define MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x0154 0x03e0 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA15__SAI3_TX_DATA 0x0154 0x03e0 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA15__CSI_DATA23 0x0154 0x03e0 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA15__CA7_MX6UL_TRACE15 0x0154 0x03e0 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA15__CSI_DATA23 0x0154 0x03e0 0x0520 3 1
|
||||
#define MX6UL_PAD_LCD_DATA15__EIM_DATA07 0x0154 0x03e0 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA15__GPIO3_IO20 0x0154 0x03e0 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA15__SRC_BT_CFG15 0x0154 0x03e0 0x0000 6 0
|
||||
|
@ -594,7 +613,8 @@
|
|||
#define MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x0158 0x03e4 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA16__UART7_DCE_TX 0x0158 0x03e4 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA16__UART7_DTE_RX 0x0158 0x03e4 0x0654 1 2
|
||||
#define MX6UL_PAD_LCD_DATA16__CSI_DATA01 0x0158 0x03e4 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA16__CA7_MX6UL_TRACE_CLK 0x0158 0x03e4 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA16__CSI_DATA01 0x0158 0x03e4 0x04d4 3 1
|
||||
#define MX6UL_PAD_LCD_DATA16__EIM_DATA08 0x0158 0x03e4 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA16__GPIO3_IO21 0x0158 0x03e4 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA16__SRC_BT_CFG24 0x0158 0x03e4 0x0000 6 0
|
||||
|
@ -602,7 +622,8 @@
|
|||
#define MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x015c 0x03e8 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA17__UART7_DCE_RX 0x015c 0x03e8 0x0654 1 3
|
||||
#define MX6UL_PAD_LCD_DATA17__UART7_DTE_TX 0x015c 0x03e8 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA17__CSI_DATA00 0x015c 0x03e8 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA17__CA7_MX6UL_TRACE_CTL 0x015c 0x03e8 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA17__CSI_DATA00 0x015c 0x03e8 0x04d0 3 1
|
||||
#define MX6UL_PAD_LCD_DATA17__EIM_DATA09 0x015c 0x03e8 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA17__GPIO3_IO22 0x015c 0x03e8 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA17__SRC_BT_CFG25 0x015c 0x03e8 0x0000 6 0
|
||||
|
@ -610,7 +631,7 @@
|
|||
#define MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x0160 0x03ec 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA18__PWM5_OUT 0x0160 0x03ec 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA18__CA7_MX6UL_EVENTO 0x0160 0x03ec 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA18__CSI_DATA10 0x0160 0x03ec 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA18__CSI_DATA10 0x0160 0x03ec 0x04ec 3 1
|
||||
#define MX6UL_PAD_LCD_DATA18__EIM_DATA10 0x0160 0x03ec 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA18__GPIO3_IO23 0x0160 0x03ec 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA18__SRC_BT_CFG26 0x0160 0x03ec 0x0000 6 0
|
||||
|
@ -622,7 +643,7 @@
|
|||
#define MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x0164 0x03f0 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA19__PWM6_OUT 0x0164 0x03f0 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA19__WDOG1_WDOG_ANY 0x0164 0x03f0 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA19__CSI_DATA11 0x0164 0x03f0 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA19__CSI_DATA11 0x0164 0x03f0 0x04f0 3 1
|
||||
#define MX6UL_PAD_LCD_DATA20__EIM_DATA12 0x0168 0x03f4 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA20__GPIO3_IO25 0x0168 0x03f4 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA20__SRC_BT_CFG28 0x0168 0x03f4 0x0000 6 0
|
||||
|
@ -631,12 +652,12 @@
|
|||
#define MX6UL_PAD_LCD_DATA20__UART8_DCE_TX 0x0168 0x03f4 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA20__UART8_DTE_RX 0x0168 0x03f4 0x065c 1 2
|
||||
#define MX6UL_PAD_LCD_DATA20__ECSPI1_SCLK 0x0168 0x03f4 0x0534 2 0
|
||||
#define MX6UL_PAD_LCD_DATA20__CSI_DATA12 0x0168 0x03f4 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA20__CSI_DATA12 0x0168 0x03f4 0x04f4 3 1
|
||||
#define MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x016c 0x03f8 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA21__UART8_DCE_RX 0x016c 0x03f8 0x065c 1 3
|
||||
#define MX6UL_PAD_LCD_DATA21__UART8_DTE_TX 0x016c 0x03f8 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA21__ECSPI1_SS0 0x016c 0x03f8 0x0000 2 0
|
||||
#define MX6UL_PAD_LCD_DATA21__CSI_DATA13 0x016c 0x03f8 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA21__ECSPI1_SS0 0x016c 0x03f8 0x0540 2 0
|
||||
#define MX6UL_PAD_LCD_DATA21__CSI_DATA13 0x016c 0x03f8 0x04f8 3 1
|
||||
#define MX6UL_PAD_LCD_DATA21__EIM_DATA13 0x016c 0x03f8 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA21__GPIO3_IO26 0x016c 0x03f8 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA21__SRC_BT_CFG29 0x016c 0x03f8 0x0000 6 0
|
||||
|
@ -644,7 +665,7 @@
|
|||
#define MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x0170 0x03fc 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA22__MQS_RIGHT 0x0170 0x03fc 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA22__ECSPI1_MOSI 0x0170 0x03fc 0x053c 2 0
|
||||
#define MX6UL_PAD_LCD_DATA22__CSI_DATA14 0x0170 0x03fc 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA22__CSI_DATA14 0x0170 0x03fc 0x04fc 3 1
|
||||
#define MX6UL_PAD_LCD_DATA22__EIM_DATA14 0x0170 0x03fc 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA22__GPIO3_IO27 0x0170 0x03fc 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA22__SRC_BT_CFG30 0x0170 0x03fc 0x0000 6 0
|
||||
|
@ -652,7 +673,7 @@
|
|||
#define MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x0174 0x0400 0x0000 0 0
|
||||
#define MX6UL_PAD_LCD_DATA23__MQS_LEFT 0x0174 0x0400 0x0000 1 0
|
||||
#define MX6UL_PAD_LCD_DATA23__ECSPI1_MISO 0x0174 0x0400 0x0538 2 0
|
||||
#define MX6UL_PAD_LCD_DATA23__CSI_DATA15 0x0174 0x0400 0x0000 3 0
|
||||
#define MX6UL_PAD_LCD_DATA23__CSI_DATA15 0x0174 0x0400 0x0500 3 1
|
||||
#define MX6UL_PAD_LCD_DATA23__EIM_DATA15 0x0174 0x0400 0x0000 4 0
|
||||
#define MX6UL_PAD_LCD_DATA23__GPIO3_IO28 0x0174 0x0400 0x0000 5 0
|
||||
#define MX6UL_PAD_LCD_DATA23__SRC_BT_CFG31 0x0174 0x0400 0x0000 6 0
|
||||
|
@ -660,42 +681,42 @@
|
|||
#define MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B 0x0178 0x0404 0x0000 0 0
|
||||
#define MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x0178 0x0404 0x0670 1 2
|
||||
#define MX6UL_PAD_NAND_RE_B__QSPI_B_SCLK 0x0178 0x0404 0x0000 2 0
|
||||
#define MX6UL_PAD_NAND_RE_B__KPP_ROW00 0x0178 0x0404 0x0000 3 0
|
||||
#define MX6UL_PAD_NAND_RE_B__KPP_ROW00 0x0178 0x0404 0x05d0 3 1
|
||||
#define MX6UL_PAD_NAND_RE_B__EIM_EB_B00 0x0178 0x0404 0x0000 4 0
|
||||
#define MX6UL_PAD_NAND_RE_B__GPIO4_IO00 0x0178 0x0404 0x0000 5 0
|
||||
#define MX6UL_PAD_NAND_RE_B__ECSPI3_SS2 0x0178 0x0404 0x0000 8 0
|
||||
#define MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B 0x017c 0x0408 0x0000 0 0
|
||||
#define MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x017c 0x0408 0x0678 1 2
|
||||
#define MX6UL_PAD_NAND_WE_B__QSPI_B_SS0_B 0x017c 0x0408 0x0000 2 0
|
||||
#define MX6UL_PAD_NAND_WE_B__KPP_COL00 0x017c 0x0408 0x0000 3 0
|
||||
#define MX6UL_PAD_NAND_WE_B__KPP_COL00 0x017c 0x0408 0x05c4 3 1
|
||||
#define MX6UL_PAD_NAND_WE_B__EIM_EB_B01 0x017c 0x0408 0x0000 4 0
|
||||
#define MX6UL_PAD_NAND_WE_B__GPIO4_IO01 0x017c 0x0408 0x0000 5 0
|
||||
#define MX6UL_PAD_NAND_WE_B__ECSPI3_SS3 0x017c 0x0408 0x0000 8 0
|
||||
#define MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00 0x0180 0x040c 0x0000 0 0
|
||||
#define MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x0180 0x040c 0x067c 1 2
|
||||
#define MX6UL_PAD_NAND_DATA00__QSPI_B_SS1_B 0x0180 0x040c 0x0000 2 0
|
||||
#define MX6UL_PAD_NAND_DATA00__KPP_ROW01 0x0180 0x040c 0x0000 3 0
|
||||
#define MX6UL_PAD_NAND_DATA00__KPP_ROW01 0x0180 0x040c 0x05d4 3 1
|
||||
#define MX6UL_PAD_NAND_DATA00__EIM_AD08 0x0180 0x040c 0x0000 4 0
|
||||
#define MX6UL_PAD_NAND_DATA00__GPIO4_IO02 0x0180 0x040c 0x0000 5 0
|
||||
#define MX6UL_PAD_NAND_DATA00__ECSPI4_RDY 0x0180 0x040c 0x0000 8 0
|
||||
#define MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01 0x0184 0x0410 0x0000 0 0
|
||||
#define MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x0184 0x0410 0x0680 1 2
|
||||
#define MX6UL_PAD_NAND_DATA01__QSPI_B_DQS 0x0184 0x0410 0x0000 2 0
|
||||
#define MX6UL_PAD_NAND_DATA01__KPP_COL01 0x0184 0x0410 0x0000 3 0
|
||||
#define MX6UL_PAD_NAND_DATA01__KPP_COL01 0x0184 0x0410 0x05c8 3 1
|
||||
#define MX6UL_PAD_NAND_DATA01__EIM_AD09 0x0184 0x0410 0x0000 4 0
|
||||
#define MX6UL_PAD_NAND_DATA01__GPIO4_IO03 0x0184 0x0410 0x0000 5 0
|
||||
#define MX6UL_PAD_NAND_DATA01__ECSPI4_SS1 0x0184 0x0410 0x0000 8 0
|
||||
#define MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02 0x0188 0x0414 0x0000 0 0
|
||||
#define MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x0188 0x0414 0x0684 1 1
|
||||
#define MX6UL_PAD_NAND_DATA02__QSPI_B_DATA00 0x0188 0x0414 0x0000 2 0
|
||||
#define MX6UL_PAD_NAND_DATA02__KPP_ROW02 0x0188 0x0414 0x0000 3 0
|
||||
#define MX6UL_PAD_NAND_DATA02__KPP_ROW02 0x0188 0x0414 0x05d8 3 1
|
||||
#define MX6UL_PAD_NAND_DATA02__EIM_AD10 0x0188 0x0414 0x0000 4 0
|
||||
#define MX6UL_PAD_NAND_DATA02__GPIO4_IO04 0x0188 0x0414 0x0000 5 0
|
||||
#define MX6UL_PAD_NAND_DATA02__ECSPI4_SS2 0x0188 0x0414 0x0000 8 0
|
||||
#define MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03 0x018c 0x0418 0x0000 0 0
|
||||
#define MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x018c 0x0418 0x0688 1 2
|
||||
#define MX6UL_PAD_NAND_DATA03__QSPI_B_DATA01 0x018c 0x0418 0x0000 2 0
|
||||
#define MX6UL_PAD_NAND_DATA03__KPP_COL02 0x018c 0x0418 0x0000 3 0
|
||||
#define MX6UL_PAD_NAND_DATA03__KPP_COL02 0x018c 0x0418 0x05cc 3 1
|
||||
#define MX6UL_PAD_NAND_DATA03__EIM_AD11 0x018c 0x0418 0x0000 4 0
|
||||
#define MX6UL_PAD_NAND_DATA03__GPIO4_IO05 0x018c 0x0418 0x0000 5 0
|
||||
#define MX6UL_PAD_NAND_DATA03__ECSPI4_SS3 0x018c 0x0418 0x0000 8 0
|
||||
|
@ -726,7 +747,7 @@
|
|||
#define MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07 0x019c 0x0428 0x0000 0 0
|
||||
#define MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x019c 0x0428 0x0698 1 1
|
||||
#define MX6UL_PAD_NAND_DATA07__QSPI_A_SS1_B 0x019c 0x0428 0x0000 2 0
|
||||
#define MX6UL_PAD_NAND_DATA07__ECSPI4_SS0 0x019c 0x0428 0x0000 3 0
|
||||
#define MX6UL_PAD_NAND_DATA07__ECSPI4_SS0 0x019c 0x0428 0x0570 3 1
|
||||
#define MX6UL_PAD_NAND_DATA07__EIM_AD15 0x019c 0x0428 0x0000 4 0
|
||||
#define MX6UL_PAD_NAND_DATA07__GPIO4_IO09 0x019c 0x0428 0x0000 5 0
|
||||
#define MX6UL_PAD_NAND_DATA07__UART2_DCE_RTS 0x019c 0x0428 0x0628 8 5
|
||||
|
@ -748,7 +769,7 @@
|
|||
#define MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0x01a8 0x0434 0x0000 0 0
|
||||
#define MX6UL_PAD_NAND_READY_B__USDHC1_DATA4 0x01a8 0x0434 0x0000 1 0
|
||||
#define MX6UL_PAD_NAND_READY_B__QSPI_A_DATA00 0x01a8 0x0434 0x0000 2 0
|
||||
#define MX6UL_PAD_NAND_READY_B__ECSPI3_SS0 0x01a8 0x0434 0x0000 3 0
|
||||
#define MX6UL_PAD_NAND_READY_B__ECSPI3_SS0 0x01a8 0x0434 0x0560 3 1
|
||||
#define MX6UL_PAD_NAND_READY_B__EIM_CS1_B 0x01a8 0x0434 0x0000 4 0
|
||||
#define MX6UL_PAD_NAND_READY_B__GPIO4_IO12 0x01a8 0x0434 0x0000 5 0
|
||||
#define MX6UL_PAD_NAND_READY_B__UART3_DCE_TX 0x01a8 0x0434 0x0000 8 0
|
||||
|
@ -783,7 +804,7 @@
|
|||
#define MX6UL_PAD_NAND_DQS__PWM5_OUT 0x01b8 0x0444 0x0000 3 0
|
||||
#define MX6UL_PAD_NAND_DQS__EIM_WAIT 0x01b8 0x0444 0x0000 4 0
|
||||
#define MX6UL_PAD_NAND_DQS__GPIO4_IO16 0x01b8 0x0444 0x0000 5 0
|
||||
#define MX6UL_PAD_NAND_DQS__SDMA_EXT_EVENT01 0x01b8 0x0444 0x0000 6 0
|
||||
#define MX6UL_PAD_NAND_DQS__SDMA_EXT_EVENT01 0x01b8 0x0444 0x0614 6 1
|
||||
#define MX6UL_PAD_NAND_DQS__SPDIF_EXT_CLK 0x01b8 0x0444 0x061c 8 1
|
||||
#define MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x01bc 0x0448 0x0000 0 0
|
||||
#define MX6UL_PAD_SD1_CMD__GPT2_COMPARE1 0x01bc 0x0448 0x0000 1 0
|
||||
|
@ -791,11 +812,11 @@
|
|||
#define MX6UL_PAD_SD1_CMD__SPDIF_OUT 0x01bc 0x0448 0x0000 3 0
|
||||
#define MX6UL_PAD_SD1_CMD__EIM_ADDR19 0x01bc 0x0448 0x0000 4 0
|
||||
#define MX6UL_PAD_SD1_CMD__GPIO2_IO16 0x01bc 0x0448 0x0000 5 0
|
||||
#define MX6UL_PAD_SD1_CMD__SDMA_EXT_EVENT00 0x01bc 0x0448 0x0000 6 0
|
||||
#define MX6UL_PAD_SD1_CMD__SDMA_EXT_EVENT00 0x01bc 0x0448 0x0610 6 2
|
||||
#define MX6UL_PAD_SD1_CMD__USB_OTG1_PWR 0x01bc 0x0448 0x0000 8 0
|
||||
#define MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x01c0 0x044c 0x0000 0 0
|
||||
#define MX6UL_PAD_SD1_CLK__GPT2_COMPARE2 0x01c0 0x044c 0x0000 1 0
|
||||
#define MX6UL_PAD_SD1_CLK__SAI2_MCLK 0x01c0 0x044c 0x0000 2 0
|
||||
#define MX6UL_PAD_SD1_CLK__SAI2_MCLK 0x01c0 0x044c 0x05f0 2 1
|
||||
#define MX6UL_PAD_SD1_CLK__SPDIF_IN 0x01c0 0x044c 0x0618 3 3
|
||||
#define MX6UL_PAD_SD1_CLK__EIM_ADDR20 0x01c0 0x044c 0x0000 4 0
|
||||
#define MX6UL_PAD_SD1_CLK__GPIO2_IO17 0x01c0 0x044c 0x0000 5 0
|
||||
|
@ -878,10 +899,10 @@
|
|||
#define MX6UL_PAD_CSI_DATA01__CSI_DATA03 0x01e8 0x0474 0x04c8 0 0
|
||||
#define MX6UL_PAD_CSI_DATA01__USDHC2_DATA1 0x01e8 0x0474 0x0680 1 0
|
||||
#define MX6UL_PAD_CSI_DATA01__SIM1_PORT1_SVEN 0x01e8 0x0474 0x0000 2 0
|
||||
#define MX6UL_PAD_CSI_DATA01__ECSPI2_SS0 0x01e8 0x0474 0x0000 3 0
|
||||
#define MX6UL_PAD_CSI_DATA01__ECSPI2_SS0 0x01e8 0x0474 0x0550 3 0
|
||||
#define MX6UL_PAD_CSI_DATA01__EIM_AD01 0x01e8 0x0474 0x0000 4 0
|
||||
#define MX6UL_PAD_CSI_DATA01__GPIO4_IO22 0x01e8 0x0474 0x0000 5 0
|
||||
#define MX6UL_PAD_CSI_DATA01__SAI1_MCLK 0x01e8 0x0474 0x0000 6 0
|
||||
#define MX6UL_PAD_CSI_DATA01__SAI1_MCLK 0x01e8 0x0474 0x05e0 6 0
|
||||
#define MX6UL_PAD_CSI_DATA01__UART5_DCE_RX 0x01e8 0x0474 0x0644 8 1
|
||||
#define MX6UL_PAD_CSI_DATA01__UART5_DTE_TX 0x01e8 0x0474 0x0000 8 0
|
||||
#define MX6UL_PAD_CSI_DATA02__CSI_DATA04 0x01ec 0x0478 0x04d8 0 1
|
||||
|
@ -913,7 +934,7 @@
|
|||
#define MX6UL_PAD_CSI_DATA05__CSI_DATA07 0x01f8 0x0484 0x04e0 0 1
|
||||
#define MX6UL_PAD_CSI_DATA05__USDHC2_DATA5 0x01f8 0x0484 0x0690 1 2
|
||||
#define MX6UL_PAD_CSI_DATA05__SIM2_PORT1_RST_B 0x01f8 0x0484 0x0000 2 0
|
||||
#define MX6UL_PAD_CSI_DATA05__ECSPI1_SS0 0x01f8 0x0484 0x0000 3 0
|
||||
#define MX6UL_PAD_CSI_DATA05__ECSPI1_SS0 0x01f8 0x0484 0x0540 3 1
|
||||
#define MX6UL_PAD_CSI_DATA05__EIM_AD05 0x01f8 0x0484 0x0000 4 0
|
||||
#define MX6UL_PAD_CSI_DATA05__GPIO4_IO26 0x01f8 0x0484 0x0000 5 0
|
||||
#define MX6UL_PAD_CSI_DATA05__SAI1_TX_BCLK 0x01f8 0x0484 0x05e8 6 1
|
||||
|
@ -924,7 +945,7 @@
|
|||
#define MX6UL_PAD_CSI_DATA06__ECSPI1_MOSI 0x01fc 0x0488 0x053c 3 1
|
||||
#define MX6UL_PAD_CSI_DATA06__EIM_AD06 0x01fc 0x0488 0x0000 4 0
|
||||
#define MX6UL_PAD_CSI_DATA06__GPIO4_IO27 0x01fc 0x0488 0x0000 5 0
|
||||
#define MX6UL_PAD_CSI_DATA06__SAI1_RX_DATA 0x01fc 0x0488 0x0000 6 0
|
||||
#define MX6UL_PAD_CSI_DATA06__SAI1_RX_DATA 0x01fc 0x0488 0x05e4 6 1
|
||||
#define MX6UL_PAD_CSI_DATA06__USDHC1_RESET_B 0x01fc 0x0488 0x0000 8 0
|
||||
#define MX6UL_PAD_CSI_DATA07__CSI_DATA09 0x0200 0x048c 0x04e8 0 1
|
||||
#define MX6UL_PAD_CSI_DATA07__USDHC2_DATA7 0x0200 0x048c 0x0698 1 2
|
||||
|
|
|
@ -1,19 +1,23 @@
|
|||
/*
|
||||
* Copyright 2015 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
//
|
||||
// Copyright 2015 Freescale Semiconductor, Inc.
|
||||
|
||||
#include <dt-bindings/clock/imx6ul-clock.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include "imx6ul-pinfunc.h"
|
||||
#include "skeleton.dtsi"
|
||||
|
||||
/ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
/*
|
||||
* The decompressor and also some bootloaders rely on a
|
||||
* pre-existing /chosen node to be available to insert the
|
||||
* command line and merge other ATAGS info.
|
||||
*/
|
||||
chosen {};
|
||||
|
||||
aliases {
|
||||
ethernet0 = &fec1;
|
||||
ethernet1 = &fec2;
|
||||
|
@ -59,14 +63,17 @@
|
|||
device_type = "cpu";
|
||||
reg = <0>;
|
||||
clock-latency = <61036>; /* two CLK32 periods */
|
||||
#cooling-cells = <2>;
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
696000 1275000
|
||||
528000 1175000
|
||||
396000 1025000
|
||||
198000 950000
|
||||
>;
|
||||
fsl,soc-operating-points = <
|
||||
/* KHz uV */
|
||||
696000 1275000
|
||||
528000 1175000
|
||||
396000 1175000
|
||||
198000 1175000
|
||||
|
@ -77,30 +84,39 @@
|
|||
<&clks IMX6UL_CA7_SECONDARY_SEL>,
|
||||
<&clks IMX6UL_CLK_STEP>,
|
||||
<&clks IMX6UL_CLK_PLL1_SW>,
|
||||
<&clks IMX6UL_CLK_PLL1_SYS>,
|
||||
<&clks IMX6UL_PLL1_BYPASS>,
|
||||
<&clks IMX6UL_CLK_PLL1>,
|
||||
<&clks IMX6UL_PLL1_BYPASS_SRC>,
|
||||
<&clks IMX6UL_CLK_OSC>;
|
||||
<&clks IMX6UL_CLK_PLL1_SYS>;
|
||||
clock-names = "arm", "pll2_bus", "pll2_pfd2_396m",
|
||||
"secondary_sel", "step", "pll1_sw",
|
||||
"pll1_sys", "pll1_bypass", "pll1",
|
||||
"pll1_bypass_src", "osc";
|
||||
"pll1_sys";
|
||||
arm-supply = <®_arm>;
|
||||
soc-supply = <®_soc>;
|
||||
nvmem-cells = <&cpu_speed_grade>;
|
||||
nvmem-cell-names = "speed_grade";
|
||||
};
|
||||
};
|
||||
|
||||
intc: interrupt-controller@00a01000 {
|
||||
compatible = "arm,cortex-a7-gic";
|
||||
intc: interrupt-controller@a01000 {
|
||||
compatible = "arm,gic-400", "arm,cortex-a7-gic";
|
||||
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&intc>;
|
||||
reg = <0x00a01000 0x1000>,
|
||||
<0x00a02000 0x1000>,
|
||||
<0x00a02000 0x2000>,
|
||||
<0x00a04000 0x2000>,
|
||||
<0x00a06000 0x2000>;
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv7-timer";
|
||||
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
|
||||
interrupt-parent = <&intc>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ckil: clock-cli {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
|
@ -129,6 +145,22 @@
|
|||
clock-output-names = "ipp_di1";
|
||||
};
|
||||
|
||||
tempmon: tempmon {
|
||||
compatible = "fsl,imx6ul-tempmon", "fsl,imx6sx-tempmon";
|
||||
interrupt-parent = <&gpc>;
|
||||
interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
|
||||
fsl,tempmon = <&anatop>;
|
||||
nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
|
||||
nvmem-cell-names = "calib", "temp_grade";
|
||||
clocks = <&clks IMX6UL_CLK_PLL3_USB_OTG>;
|
||||
};
|
||||
|
||||
pmu {
|
||||
compatible = "arm,cortex-a7-pmu";
|
||||
interrupt-parent = <&gpc>;
|
||||
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
soc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
@ -136,18 +168,12 @@
|
|||
interrupt-parent = <&gpc>;
|
||||
ranges;
|
||||
|
||||
pmu {
|
||||
compatible = "arm,cortex-a7-pmu";
|
||||
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ocram: sram@00900000 {
|
||||
ocram: sram@900000 {
|
||||
compatible = "mmio-sram";
|
||||
reg = <0x00900000 0x20000>;
|
||||
};
|
||||
|
||||
dma_apbh: dma-apbh@01804000 {
|
||||
dma_apbh: dma-apbh@1804000 {
|
||||
compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
|
||||
reg = <0x01804000 0x2000>;
|
||||
interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>,
|
||||
|
@ -160,7 +186,7 @@
|
|||
clocks = <&clks IMX6UL_CLK_APBHDMA>;
|
||||
};
|
||||
|
||||
gpmi: gpmi-nand@01806000 {
|
||||
gpmi: gpmi-nand@1806000 {
|
||||
compatible = "fsl,imx6q-gpmi-nand";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
@ -180,22 +206,21 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
aips1: aips-bus@02000000 {
|
||||
aips1: aips-bus@2000000 {
|
||||
compatible = "fsl,aips-bus", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x02000000 0x100000>;
|
||||
ranges;
|
||||
|
||||
spba-bus@02000000 {
|
||||
spba-bus@2000000 {
|
||||
compatible = "fsl,spba-bus", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x02000000 0x40000>;
|
||||
ranges;
|
||||
u-boot,dm-spl;
|
||||
|
||||
ecspi1: ecspi@02008000 {
|
||||
ecspi1: spi@2008000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
|
||||
|
@ -207,7 +232,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
ecspi2: ecspi@0200c000 {
|
||||
ecspi2: spi@200c000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
|
||||
|
@ -219,7 +244,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
ecspi3: ecspi@02010000 {
|
||||
ecspi3: spi@2010000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
|
||||
|
@ -231,7 +256,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
ecspi4: ecspi@02014000 {
|
||||
ecspi4: spi@2014000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
|
||||
|
@ -243,7 +268,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
uart7: serial@02018000 {
|
||||
uart7: serial@2018000 {
|
||||
compatible = "fsl,imx6ul-uart",
|
||||
"fsl,imx6q-uart";
|
||||
reg = <0x02018000 0x4000>;
|
||||
|
@ -254,7 +279,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: serial@02020000 {
|
||||
uart1: serial@2020000 {
|
||||
compatible = "fsl,imx6ul-uart",
|
||||
"fsl,imx6q-uart";
|
||||
reg = <0x02020000 0x4000>;
|
||||
|
@ -265,7 +290,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
uart8: serial@02024000 {
|
||||
uart8: serial@2024000 {
|
||||
compatible = "fsl,imx6ul-uart",
|
||||
"fsl,imx6q-uart";
|
||||
reg = <0x02024000 0x4000>;
|
||||
|
@ -276,7 +301,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
sai1: sai@02028000 {
|
||||
sai1: sai@2028000 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai";
|
||||
reg = <0x02028000 0x4000>;
|
||||
|
@ -291,7 +316,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
sai2: sai@0202c000 {
|
||||
sai2: sai@202c000 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai";
|
||||
reg = <0x0202c000 0x4000>;
|
||||
|
@ -306,7 +331,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
sai3: sai@02030000 {
|
||||
sai3: sai@2030000 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai";
|
||||
reg = <0x02030000 0x4000>;
|
||||
|
@ -322,7 +347,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
tsc: tsc@02040000 {
|
||||
tsc: tsc@2040000 {
|
||||
compatible = "fsl,imx6ul-tsc";
|
||||
reg = <0x02040000 0x4000>, <0x0219c000 0x4000>;
|
||||
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
|
||||
|
@ -333,10 +358,10 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm1: pwm@02080000 {
|
||||
pwm1: pwm@2080000 {
|
||||
compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x02080000 0x4000>;
|
||||
interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_PWM1>,
|
||||
<&clks IMX6UL_CLK_PWM1>;
|
||||
clock-names = "ipg", "per";
|
||||
|
@ -344,10 +369,10 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm2: pwm@02084000 {
|
||||
pwm2: pwm@2084000 {
|
||||
compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x02084000 0x4000>;
|
||||
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_PWM2>,
|
||||
<&clks IMX6UL_CLK_PWM2>;
|
||||
clock-names = "ipg", "per";
|
||||
|
@ -355,10 +380,10 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm3: pwm@02088000 {
|
||||
pwm3: pwm@2088000 {
|
||||
compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x02088000 0x4000>;
|
||||
interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_PWM3>,
|
||||
<&clks IMX6UL_CLK_PWM3>;
|
||||
clock-names = "ipg", "per";
|
||||
|
@ -366,10 +391,10 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm4: pwm@0208c000 {
|
||||
pwm4: pwm@208c000 {
|
||||
compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x0208c000 0x4000>;
|
||||
interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_PWM4>,
|
||||
<&clks IMX6UL_CLK_PWM4>;
|
||||
clock-names = "ipg", "per";
|
||||
|
@ -377,27 +402,29 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
can1: flexcan@02090000 {
|
||||
can1: flexcan@2090000 {
|
||||
compatible = "fsl,imx6ul-flexcan", "fsl,imx6q-flexcan";
|
||||
reg = <0x02090000 0x4000>;
|
||||
interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_CAN1_IPG>,
|
||||
<&clks IMX6UL_CLK_CAN1_SERIAL>;
|
||||
clock-names = "ipg", "per";
|
||||
fsl,stop-mode = <&gpr 0x10 1 0x10 17>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
can2: flexcan@02094000 {
|
||||
can2: flexcan@2094000 {
|
||||
compatible = "fsl,imx6ul-flexcan", "fsl,imx6q-flexcan";
|
||||
reg = <0x02094000 0x4000>;
|
||||
interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_CAN2_IPG>,
|
||||
<&clks IMX6UL_CLK_CAN2_SERIAL>;
|
||||
clock-names = "ipg", "per";
|
||||
fsl,stop-mode = <&gpr 0x10 2 0x10 18>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpt1: gpt@02098000 {
|
||||
gpt1: gpt@2098000 {
|
||||
compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt";
|
||||
reg = <0x02098000 0x4000>;
|
||||
interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -406,11 +433,12 @@
|
|||
clock-names = "ipg", "per";
|
||||
};
|
||||
|
||||
gpio1: gpio@0209c000 {
|
||||
gpio1: gpio@209c000 {
|
||||
compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x0209c000 0x4000>;
|
||||
interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_GPIO1>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
|
@ -419,11 +447,12 @@
|
|||
<&iomuxc 16 33 16>;
|
||||
};
|
||||
|
||||
gpio2: gpio@020a0000 {
|
||||
gpio2: gpio@20a0000 {
|
||||
compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x020a0000 0x4000>;
|
||||
interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_GPIO2>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
|
@ -431,11 +460,12 @@
|
|||
gpio-ranges = <&iomuxc 0 49 16>, <&iomuxc 16 111 6>;
|
||||
};
|
||||
|
||||
gpio3: gpio@020a4000 {
|
||||
gpio3: gpio@20a4000 {
|
||||
compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x020a4000 0x4000>;
|
||||
interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_GPIO3>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
|
@ -443,11 +473,12 @@
|
|||
gpio-ranges = <&iomuxc 0 65 29>;
|
||||
};
|
||||
|
||||
gpio4: gpio@020a8000 {
|
||||
gpio4: gpio@20a8000 {
|
||||
compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x020a8000 0x4000>;
|
||||
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_GPIO4>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
|
@ -455,11 +486,12 @@
|
|||
gpio-ranges = <&iomuxc 0 94 17>, <&iomuxc 17 117 12>;
|
||||
};
|
||||
|
||||
gpio5: gpio@020ac000 {
|
||||
gpio5: gpio@20ac000 {
|
||||
compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x020ac000 0x4000>;
|
||||
interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_GPIO5>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
|
@ -467,9 +499,10 @@
|
|||
gpio-ranges = <&iomuxc 0 7 10>, <&iomuxc 10 5 2>;
|
||||
};
|
||||
|
||||
fec2: ethernet@020b4000 {
|
||||
fec2: ethernet@20b4000 {
|
||||
compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";
|
||||
reg = <0x020b4000 0x4000>;
|
||||
interrupt-names = "int0", "pps";
|
||||
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_ENET>,
|
||||
|
@ -484,7 +517,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
kpp: kpp@020b8000 {
|
||||
kpp: kpp@20b8000 {
|
||||
compatible = "fsl,imx6ul-kpp", "fsl,imx6q-kpp", "fsl,imx21-kpp";
|
||||
reg = <0x020b8000 0x4000>;
|
||||
interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -492,14 +525,14 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
wdog1: wdog@020bc000 {
|
||||
wdog1: wdog@20bc000 {
|
||||
compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
|
||||
reg = <0x020bc000 0x4000>;
|
||||
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_WDOG1>;
|
||||
};
|
||||
|
||||
wdog2: wdog@020c0000 {
|
||||
wdog2: wdog@20c0000 {
|
||||
compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
|
||||
reg = <0x020c0000 0x4000>;
|
||||
interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -507,7 +540,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
clks: ccm@020c4000 {
|
||||
clks: ccm@20c4000 {
|
||||
compatible = "fsl,imx6ul-ccm";
|
||||
reg = <0x020c4000 0x4000>;
|
||||
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
|
||||
|
@ -517,7 +550,7 @@
|
|||
clock-names = "ckil", "osc", "ipp_di0", "ipp_di1";
|
||||
};
|
||||
|
||||
anatop: anatop@020c8000 {
|
||||
anatop: anatop@20c8000 {
|
||||
compatible = "fsl,imx6ul-anatop", "fsl,imx6q-anatop",
|
||||
"syscon", "simple-bus";
|
||||
reg = <0x020c8000 0x1000>;
|
||||
|
@ -574,7 +607,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
usbphy1: usbphy@020c9000 {
|
||||
usbphy1: usbphy@20c9000 {
|
||||
compatible = "fsl,imx6ul-usbphy", "fsl,imx23-usbphy";
|
||||
reg = <0x020c9000 0x1000>;
|
||||
interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -583,7 +616,7 @@
|
|||
fsl,anatop = <&anatop>;
|
||||
};
|
||||
|
||||
usbphy2: usbphy@020ca000 {
|
||||
usbphy2: usbphy@20ca000 {
|
||||
compatible = "fsl,imx6ul-usbphy", "fsl,imx23-usbphy";
|
||||
reg = <0x020ca000 0x1000>;
|
||||
interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -592,7 +625,7 @@
|
|||
fsl,anatop = <&anatop>;
|
||||
};
|
||||
|
||||
snvs: snvs@020cc000 {
|
||||
snvs: snvs@20cc000 {
|
||||
compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
|
||||
reg = <0x020cc000 0x4000>;
|
||||
|
||||
|
@ -608,6 +641,7 @@
|
|||
compatible = "syscon-poweroff";
|
||||
regmap = <&snvs>;
|
||||
offset = <0x38>;
|
||||
value = <0x60>;
|
||||
mask = <0x60>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
@ -619,19 +653,23 @@
|
|||
linux,keycode = <KEY_POWER>;
|
||||
wakeup-source;
|
||||
};
|
||||
|
||||
snvs_lpgpr: snvs-lpgpr {
|
||||
compatible = "fsl,imx6ul-snvs-lpgpr";
|
||||
};
|
||||
};
|
||||
|
||||
epit1: epit@020d0000 {
|
||||
epit1: epit@20d0000 {
|
||||
reg = <0x020d0000 0x4000>;
|
||||
interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
epit2: epit@020d4000 {
|
||||
epit2: epit@20d4000 {
|
||||
reg = <0x020d4000 0x4000>;
|
||||
interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
src: src@020d8000 {
|
||||
src: src@20d8000 {
|
||||
compatible = "fsl,imx6ul-src", "fsl,imx51-src";
|
||||
reg = <0x020d8000 0x4000>;
|
||||
interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
|
||||
|
@ -639,7 +677,7 @@
|
|||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
gpc: gpc@020dc000 {
|
||||
gpc: gpc@20dc000 {
|
||||
compatible = "fsl,imx6ul-gpc", "fsl,imx6q-gpc";
|
||||
reg = <0x020dc000 0x4000>;
|
||||
interrupt-controller;
|
||||
|
@ -648,18 +686,18 @@
|
|||
interrupt-parent = <&intc>;
|
||||
};
|
||||
|
||||
iomuxc: iomuxc@020e0000 {
|
||||
iomuxc: iomuxc@20e0000 {
|
||||
compatible = "fsl,imx6ul-iomuxc";
|
||||
reg = <0x020e0000 0x4000>;
|
||||
};
|
||||
|
||||
gpr: iomuxc-gpr@020e4000 {
|
||||
gpr: iomuxc-gpr@20e4000 {
|
||||
compatible = "fsl,imx6ul-iomuxc-gpr",
|
||||
"fsl,imx6q-iomuxc-gpr", "syscon";
|
||||
reg = <0x020e4000 0x4000>;
|
||||
};
|
||||
|
||||
gpt2: gpt@020e8000 {
|
||||
gpt2: gpt@20e8000 {
|
||||
compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt";
|
||||
reg = <0x020e8000 0x4000>;
|
||||
interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -668,19 +706,19 @@
|
|||
clock-names = "ipg", "per";
|
||||
};
|
||||
|
||||
sdma: sdma@020ec000 {
|
||||
sdma: sdma@20ec000 {
|
||||
compatible = "fsl,imx6ul-sdma", "fsl,imx6q-sdma",
|
||||
"fsl,imx35-sdma";
|
||||
reg = <0x020ec000 0x4000>;
|
||||
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_SDMA>,
|
||||
clocks = <&clks IMX6UL_CLK_IPG>,
|
||||
<&clks IMX6UL_CLK_SDMA>;
|
||||
clock-names = "ipg", "ahb";
|
||||
#dma-cells = <3>;
|
||||
fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
|
||||
};
|
||||
|
||||
pwm5: pwm@020f0000 {
|
||||
pwm5: pwm@20f0000 {
|
||||
compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x020f0000 0x4000>;
|
||||
interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -691,7 +729,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm6: pwm@020f4000 {
|
||||
pwm6: pwm@20f4000 {
|
||||
compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x020f4000 0x4000>;
|
||||
interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -702,7 +740,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm7: pwm@020f8000 {
|
||||
pwm7: pwm@20f8000 {
|
||||
compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x020f8000 0x4000>;
|
||||
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -713,7 +751,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm8: pwm@020fc000 {
|
||||
pwm8: pwm@20fc000 {
|
||||
compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x020fc000 0x4000>;
|
||||
interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -725,14 +763,44 @@
|
|||
};
|
||||
};
|
||||
|
||||
aips2: aips-bus@02100000 {
|
||||
aips2: aips-bus@2100000 {
|
||||
compatible = "fsl,aips-bus", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x02100000 0x100000>;
|
||||
ranges;
|
||||
|
||||
usbotg1: usb@02184000 {
|
||||
crypto: caam@2140000 {
|
||||
compatible = "fsl,imx6ul-caam", "fsl,sec-v4.0";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x2140000 0x3c000>;
|
||||
ranges = <0 0x2140000 0x3c000>;
|
||||
interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_CAAM_IPG>, <&clks IMX6UL_CLK_CAAM_ACLK>,
|
||||
<&clks IMX6UL_CLK_CAAM_MEM>;
|
||||
clock-names = "ipg", "aclk", "mem";
|
||||
|
||||
sec_jr0: jr0@1000 {
|
||||
compatible = "fsl,sec-v4.0-job-ring";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
sec_jr1: jr1@2000 {
|
||||
compatible = "fsl,sec-v4.0-job-ring";
|
||||
reg = <0x2000 0x1000>;
|
||||
interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
sec_jr2: jr2@3000 {
|
||||
compatible = "fsl,sec-v4.0-job-ring";
|
||||
reg = <0x3000 0x1000>;
|
||||
interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
usbotg1: usb@2184000 {
|
||||
compatible = "fsl,imx6ul-usb", "fsl,imx27-usb";
|
||||
reg = <0x02184000 0x200>;
|
||||
interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -746,7 +814,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
usbotg2: usb@02184200 {
|
||||
usbotg2: usb@2184200 {
|
||||
compatible = "fsl,imx6ul-usb", "fsl,imx27-usb";
|
||||
reg = <0x02184200 0x200>;
|
||||
interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -759,15 +827,16 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
usbmisc: usbmisc@02184800 {
|
||||
usbmisc: usbmisc@2184800 {
|
||||
#index-cells = <1>;
|
||||
compatible = "fsl,imx6ul-usbmisc", "fsl,imx6q-usbmisc";
|
||||
reg = <0x02184800 0x200>;
|
||||
};
|
||||
|
||||
fec1: ethernet@02188000 {
|
||||
fec1: ethernet@2188000 {
|
||||
compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";
|
||||
reg = <0x02188000 0x4000>;
|
||||
interrupt-names = "int0", "pps";
|
||||
interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_ENET>,
|
||||
|
@ -782,7 +851,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
usdhc1: usdhc@02190000 {
|
||||
usdhc1: usdhc@2190000 {
|
||||
compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc";
|
||||
reg = <0x02190000 0x4000>;
|
||||
interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -794,7 +863,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
usdhc2: usdhc@02194000 {
|
||||
usdhc2: usdhc@2194000 {
|
||||
compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc";
|
||||
reg = <0x02194000 0x4000>;
|
||||
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -806,7 +875,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
adc1: adc@02198000 {
|
||||
adc1: adc@2198000 {
|
||||
compatible = "fsl,imx6ul-adc", "fsl,vf610-adc";
|
||||
reg = <0x02198000 0x4000>;
|
||||
interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -818,7 +887,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c1: i2c@021a0000 {
|
||||
i2c1: i2c@21a0000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
|
||||
|
@ -828,7 +897,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c2: i2c@021a4000 {
|
||||
i2c2: i2c@21a4000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
|
||||
|
@ -838,7 +907,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c3: i2c@021a8000 {
|
||||
i2c3: i2c@21a8000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
|
||||
|
@ -848,12 +917,44 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
mmdc: mmdc@021b0000 {
|
||||
memory-controller@21b0000 {
|
||||
compatible = "fsl,imx6ul-mmdc", "fsl,imx6q-mmdc";
|
||||
reg = <0x021b0000 0x4000>;
|
||||
clocks = <&clks IMX6UL_CLK_MMDC_P0_IPG>;
|
||||
};
|
||||
|
||||
lcdif: lcdif@021c8000 {
|
||||
weim: weim@21b8000 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,imx6ul-weim", "fsl,imx6q-weim";
|
||||
reg = <0x021b8000 0x4000>;
|
||||
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6UL_CLK_EIM>;
|
||||
fsl,weim-cs-gpr = <&gpr>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ocotp: ocotp-ctrl@21bc000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,imx6ul-ocotp", "syscon";
|
||||
reg = <0x021bc000 0x4000>;
|
||||
clocks = <&clks IMX6UL_CLK_OCOTP>;
|
||||
|
||||
tempmon_calib: calib@38 {
|
||||
reg = <0x38 4>;
|
||||
};
|
||||
|
||||
tempmon_temp_grade: temp-grade@20 {
|
||||
reg = <0x20 4>;
|
||||
};
|
||||
|
||||
cpu_speed_grade: speed-grade@10 {
|
||||
reg = <0x10 4>;
|
||||
};
|
||||
};
|
||||
|
||||
lcdif: lcdif@21c8000 {
|
||||
compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif";
|
||||
reg = <0x021c8000 0x4000>;
|
||||
interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -864,7 +965,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
qspi: qspi@021e0000 {
|
||||
qspi: spi@21e0000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6ul-qspi", "fsl,imx6sx-qspi";
|
||||
|
@ -877,7 +978,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
wdog3: wdog@021e4000 {
|
||||
wdog3: wdog@21e4000 {
|
||||
compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
|
||||
reg = <0x021e4000 0x4000>;
|
||||
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -885,7 +986,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
uart2: serial@021e8000 {
|
||||
uart2: serial@21e8000 {
|
||||
compatible = "fsl,imx6ul-uart",
|
||||
"fsl,imx6q-uart";
|
||||
reg = <0x021e8000 0x4000>;
|
||||
|
@ -896,7 +997,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
uart3: serial@021ec000 {
|
||||
uart3: serial@21ec000 {
|
||||
compatible = "fsl,imx6ul-uart",
|
||||
"fsl,imx6q-uart";
|
||||
reg = <0x021ec000 0x4000>;
|
||||
|
@ -907,7 +1008,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
uart4: serial@021f0000 {
|
||||
uart4: serial@21f0000 {
|
||||
compatible = "fsl,imx6ul-uart",
|
||||
"fsl,imx6q-uart";
|
||||
reg = <0x021f0000 0x4000>;
|
||||
|
@ -918,7 +1019,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
uart5: serial@021f4000 {
|
||||
uart5: serial@21f4000 {
|
||||
compatible = "fsl,imx6ul-uart",
|
||||
"fsl,imx6q-uart";
|
||||
reg = <0x021f4000 0x4000>;
|
||||
|
@ -929,7 +1030,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c4: i2c@021f8000 {
|
||||
i2c4: i2c@21f8000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
|
||||
|
@ -939,7 +1040,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
uart6: serial@021fc000 {
|
||||
uart6: serial@21fc000 {
|
||||
compatible = "fsl,imx6ul-uart",
|
||||
"fsl,imx6q-uart";
|
||||
reg = <0x021fc000 0x4000>;
|
||||
|
|
|
@ -1,527 +1,18 @@
|
|||
/*
|
||||
* Copyright (C) 2016 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
//
|
||||
// Copyright (C) 2016 Freescale Semiconductor, Inc.
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "imx6ull.dtsi"
|
||||
#include "imx6ul-14x14-evk.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Freescale i.MX6 ULL 14x14 EVK Board";
|
||||
model = "Freescale i.MX6 UltraLiteLite 14x14 EVK Board";
|
||||
compatible = "fsl,imx6ull-14x14-evk", "fsl,imx6ull";
|
||||
|
||||
chosen {
|
||||
stdout-path = &uart1;
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x80000000 0x20000000>;
|
||||
};
|
||||
|
||||
backlight {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&pwm1 0 5000000>;
|
||||
brightness-levels = <0 4 8 16 32 64 128 255>;
|
||||
default-brightness-level = <6>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
regulators {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
reg_can_3v3: regulator@0 {
|
||||
compatible = "regulator-fixed";
|
||||
reg = <0>;
|
||||
regulator-name = "can-3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
gpios = <&gpio_spi 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
reg_sd1_vmmc: regulator@1 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VSD_3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
reg_gpio_dvfs: regulator-gpio {
|
||||
compatible = "regulator-gpio";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_dvfs>;
|
||||
regulator-min-microvolt = <1300000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
regulator-name = "gpio_dvfs";
|
||||
regulator-type = "voltage";
|
||||
gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>;
|
||||
states = <1300000 0x1 1400000 0x0>;
|
||||
};
|
||||
};
|
||||
|
||||
spi5 {
|
||||
compatible = "spi-gpio";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_spi4>;
|
||||
status = "okay";
|
||||
gpio-sck = <&gpio5 11 0>;
|
||||
gpio-mosi = <&gpio5 10 0>;
|
||||
cs-gpios = <&gpio5 7 0>;
|
||||
num-chipselects = <1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gpio_spi: gpio_spi@0 {
|
||||
compatible = "fairchild,74hc595";
|
||||
gpio-controller;
|
||||
oe-gpios = <&gpio5 8 0>;
|
||||
#gpio-cells = <2>;
|
||||
reg = <0>;
|
||||
registers-number = <1>;
|
||||
registers-default = /bits/ 8 <0x57>;
|
||||
spi-max-frequency = <100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
arm-supply = <®_arm>;
|
||||
soc-supply = <®_soc>;
|
||||
dc-supply = <®_gpio_dvfs>;
|
||||
};
|
||||
|
||||
&clks {
|
||||
assigned-clocks = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
|
||||
assigned-clock-rates = <786432000>;
|
||||
};
|
||||
|
||||
&fec1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet1>;
|
||||
phy-mode = "rmii";
|
||||
phy-handle = <ðphy0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&fec2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet2>;
|
||||
phy-mode = "rmii";
|
||||
phy-handle = <ðphy1>;
|
||||
status = "okay";
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ethphy0: ethernet-phy@2 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <2>;
|
||||
};
|
||||
|
||||
ethphy1: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gpc {
|
||||
fsl,cpu_pupscr_sw2iso = <0x1>;
|
||||
fsl,cpu_pupscr_sw = <0x0>;
|
||||
fsl,cpu_pdnscr_iso2sw = <0x1>;
|
||||
fsl,cpu_pdnscr_iso = <0x1>;
|
||||
fsl,ldo-bypass = <0>; /* DCDC, ldo-enable */
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
clock-frequency = <100000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2c1>;
|
||||
status = "okay";
|
||||
|
||||
mag3110@0e {
|
||||
compatible = "fsl,mag3110";
|
||||
reg = <0x0e>;
|
||||
position = <2>;
|
||||
};
|
||||
|
||||
fxls8471@1e {
|
||||
compatible = "fsl,fxls8471";
|
||||
reg = <0x1e>;
|
||||
position = <0>;
|
||||
interrupt-parent = <&gpio5>;
|
||||
interrupts = <0 8>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock_frequency = <100000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2c2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&iomuxc {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_hog_1>;
|
||||
imx6ul-evk {
|
||||
pinctrl_hog_1: hoggrp-1 {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 /* SD1 CD */
|
||||
MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT 0x17059 /* SD1 VSELECT */
|
||||
MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x17059 /* SD1 RESET */
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_csi1: csi1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_CSI_MCLK__CSI_MCLK 0x1b088
|
||||
MX6UL_PAD_CSI_PIXCLK__CSI_PIXCLK 0x1b088
|
||||
MX6UL_PAD_CSI_VSYNC__CSI_VSYNC 0x1b088
|
||||
MX6UL_PAD_CSI_HSYNC__CSI_HSYNC 0x1b088
|
||||
MX6UL_PAD_CSI_DATA00__CSI_DATA02 0x1b088
|
||||
MX6UL_PAD_CSI_DATA01__CSI_DATA03 0x1b088
|
||||
MX6UL_PAD_CSI_DATA02__CSI_DATA04 0x1b088
|
||||
MX6UL_PAD_CSI_DATA03__CSI_DATA05 0x1b088
|
||||
MX6UL_PAD_CSI_DATA04__CSI_DATA06 0x1b088
|
||||
MX6UL_PAD_CSI_DATA05__CSI_DATA07 0x1b088
|
||||
MX6UL_PAD_CSI_DATA06__CSI_DATA08 0x1b088
|
||||
MX6UL_PAD_CSI_DATA07__CSI_DATA09 0x1b088
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_enet1: enet1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
|
||||
MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
|
||||
MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
|
||||
MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
|
||||
MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
|
||||
MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
|
||||
MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
|
||||
MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_enet2: enet2grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
|
||||
MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0
|
||||
MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0
|
||||
MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0
|
||||
MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
|
||||
MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
|
||||
MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0
|
||||
MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
|
||||
MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
|
||||
MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_flexcan1: flexcan1grp{
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020
|
||||
MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_flexcan2: flexcan2grp{
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x1b020
|
||||
MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x1b020
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c1: i2c1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
|
||||
MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c2: i2c2grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0
|
||||
MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_lcdif_dat: lcdifdatgrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x79
|
||||
MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x79
|
||||
MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x79
|
||||
MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x79
|
||||
MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x79
|
||||
MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x79
|
||||
MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x79
|
||||
MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x79
|
||||
MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x79
|
||||
MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x79
|
||||
MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x79
|
||||
MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x79
|
||||
MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x79
|
||||
MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x79
|
||||
MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x79
|
||||
MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x79
|
||||
MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x79
|
||||
MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x79
|
||||
MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x79
|
||||
MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x79
|
||||
MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x79
|
||||
MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x79
|
||||
MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x79
|
||||
MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x79
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_lcdif_ctrl: lcdifctrlgrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x79
|
||||
MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x79
|
||||
MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x79
|
||||
MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x79
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_pwm1: pwm1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_GPIO1_IO08__PWM1_OUT 0x110b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_qspi: qspigrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_NAND_WP_B__QSPI_A_SCLK 0x70a1
|
||||
MX6UL_PAD_NAND_READY_B__QSPI_A_DATA00 0x70a1
|
||||
MX6UL_PAD_NAND_CE0_B__QSPI_A_DATA01 0x70a1
|
||||
MX6UL_PAD_NAND_CE1_B__QSPI_A_DATA02 0x70a1
|
||||
MX6UL_PAD_NAND_CLE__QSPI_A_DATA03 0x70a1
|
||||
MX6UL_PAD_NAND_DQS__QSPI_A_SS0_B 0x70a1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart1: uart1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
|
||||
MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart2: uart2grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1
|
||||
MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
|
||||
MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x1b0b1
|
||||
MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart2dte: uart2dtegrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_UART2_TX_DATA__UART2_DTE_RX 0x1b0b1
|
||||
MX6UL_PAD_UART2_RX_DATA__UART2_DTE_TX 0x1b0b1
|
||||
MX6UL_PAD_UART3_RX_DATA__UART2_DTE_CTS 0x1b0b1
|
||||
MX6UL_PAD_UART3_TX_DATA__UART2_DTE_RTS 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc1: usdhc1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
|
||||
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10071
|
||||
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
|
||||
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
|
||||
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
|
||||
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2: usdhc2grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10069
|
||||
MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059
|
||||
MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059
|
||||
MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059
|
||||
MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059
|
||||
MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_wdog: wdoggrp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY 0x30b0
|
||||
>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&iomuxc_snvs {
|
||||
pinctrl-names = "default_snvs";
|
||||
pinctrl-0 = <&pinctrl_hog_2>;
|
||||
imx6ul-evk {
|
||||
pinctrl_hog_2: hoggrp-2 {
|
||||
fsl,pins = <
|
||||
MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x80000000
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_dvfs: dvfsgrp {
|
||||
fsl,pins = <
|
||||
MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x79
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_lcdif_reset: lcdifresetgrp {
|
||||
fsl,pins = <
|
||||
/* used for lcd reset */
|
||||
MX6ULL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x79
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_spi4: spi4grp {
|
||||
fsl,pins = <
|
||||
MX6ULL_PAD_BOOT_MODE0__GPIO5_IO10 0x70a1
|
||||
MX6ULL_PAD_BOOT_MODE1__GPIO5_IO11 0x70a1
|
||||
MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x70a1
|
||||
MX6ULL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x80000000
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_sai2_hp_det_b: sai2_hp_det_grp {
|
||||
fsl,pins = <
|
||||
MX6ULL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x17059
|
||||
>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
&lcdif {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_lcdif_dat
|
||||
&pinctrl_lcdif_ctrl
|
||||
&pinctrl_lcdif_reset>;
|
||||
display = <&display0>;
|
||||
status = "okay";
|
||||
|
||||
display0: display {
|
||||
bits-per-pixel = <16>;
|
||||
bus-width = <24>;
|
||||
|
||||
display-timings {
|
||||
native-mode = <&timing0>;
|
||||
timing0: timing0 {
|
||||
clock-frequency = <9200000>;
|
||||
hactive = <480>;
|
||||
vactive = <272>;
|
||||
hfront-porch = <8>;
|
||||
hback-porch = <4>;
|
||||
hsync-len = <41>;
|
||||
vback-porch = <2>;
|
||||
vfront-porch = <4>;
|
||||
vsync-len = <10>;
|
||||
|
||||
hsync-active = <0>;
|
||||
vsync-active = <0>;
|
||||
de-active = <1>;
|
||||
pixelclk-active = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pwm1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pwm1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&qspi {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_qspi>;
|
||||
status = "okay";
|
||||
ddrsmp=<0>;
|
||||
|
||||
flash0: n25q256a@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
/* compatible = "micron,n25q256a"; */
|
||||
compatible = "jedec,spi-nor";
|
||||
spi-max-frequency = <29000000>;
|
||||
spi-nor,ddr-quad-read-dummy = <6>;
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart2>;
|
||||
fsl,uart-has-rtscts;
|
||||
/* for DTE mode, add below change */
|
||||
/* fsl,dte-mode; */
|
||||
/* pinctrl-0 = <&pinctrl_uart2dte>; */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg1 {
|
||||
dr_mode = "otg";
|
||||
srp-disable;
|
||||
hnp-disable;
|
||||
adp-disable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg2 {
|
||||
dr_mode = "host";
|
||||
disable-over-current;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy1 {
|
||||
tx-d-cal = <0x5>;
|
||||
};
|
||||
|
||||
&usbphy2 {
|
||||
tx-d-cal = <0x5>;
|
||||
};
|
||||
|
||||
&usdhc1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc1>;
|
||||
cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
|
||||
keep-power-in-suspend;
|
||||
enable-sdio-wakeup;
|
||||
vmmc-supply = <®_sd1_vmmc>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc2>;
|
||||
no-1-8-v;
|
||||
non-removable;
|
||||
keep-power-in-suspend;
|
||||
enable-sdio-wakeup;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wdog1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_wdog>;
|
||||
fsl,wdog_b;
|
||||
assigned-clocks = <&clks IMX6UL_CLK_PLL3_PFD2>;
|
||||
assigned-clock-rates = <320000000>;
|
||||
};
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2016 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
* Copyright (C) 2017 NXP
|
||||
*/
|
||||
|
||||
#ifndef __DTS_IMX6ULL_PINFUNC_SNVS_H
|
||||
|
@ -26,4 +24,3 @@
|
|||
#define MX6ULL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x002C 0x0070 0x0000 0x5 0x0
|
||||
|
||||
#endif /* __DTS_IMX6ULL_PINFUNC_SNVS_H */
|
||||
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) 2016 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __DTS_IMX6ULL_PINFUNC_H
|
||||
|
@ -14,46 +11,77 @@
|
|||
* The pin function ID is a tuple of
|
||||
* <mux_reg conf_reg input_reg mux_mode input_val>
|
||||
*/
|
||||
#define MX6UL_PAD_GPIO1_IO03__OSC32K_32K_OUT 0x0068 0x02f4 0x0000 0x3 0x0
|
||||
/* signals common for i.MX6UL and i.MX6ULL */
|
||||
#undef MX6UL_PAD_UART5_TX_DATA__UART5_DTE_RX
|
||||
#define MX6UL_PAD_UART5_TX_DATA__UART5_DTE_RX 0x00BC 0x0348 0x0644 0x0 0x6
|
||||
#undef MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX
|
||||
#define MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x00C0 0x034C 0x0644 0x0 0x7
|
||||
#undef MX6UL_PAD_ENET1_RX_EN__UART5_DCE_RTS
|
||||
#define MX6UL_PAD_ENET1_RX_EN__UART5_DCE_RTS 0x00CC 0x0358 0x0640 0x1 0x5
|
||||
#undef MX6UL_PAD_ENET1_TX_DATA0__UART5_DTE_RTS
|
||||
#define MX6UL_PAD_ENET1_TX_DATA0__UART5_DTE_RTS 0x00D0 0x035C 0x0640 0x1 0x6
|
||||
#undef MX6UL_PAD_CSI_DATA02__UART5_DCE_RTS
|
||||
#define MX6UL_PAD_CSI_DATA02__UART5_DCE_RTS 0x01EC 0x0478 0x0640 0x8 0x7
|
||||
|
||||
#define MX6UL_PAD_ENET2_RX_DATA0__EPDC_SDDO08 0x00E4 0x0370 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_ENET2_RX_DATA1__EPDC_SDDO09 0x00E8 0x0374 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_ENET2_RX_EN__EPDC_SDDO10 0x00EC 0x0378 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_ENET2_TX_DATA0__EPDC_SDDO11 0x00F0 0x037C 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_ENET2_TX_DATA1__EPDC_SDDO12 0x00F4 0x0380 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_ENET2_TX_EN__EPDC_SDDO13 0x00F8 0x0384 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_ENET2_TX_CLK__EPDC_SDDO14 0x00FC 0x0388 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_ENET2_RX_ER__EPDC_SDDO15 0x0100 0x038C 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_CLK__EPDC_SDCLK 0x0104 0x0390 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_ENABLE__EPDC_SDLE 0x0108 0x0394 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_HSYNC__EPDC_SDOE 0x010C 0x0398 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_VSYNC__EPDC_SDCE0 0x0110 0x039C 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_RESET__EPDC_GDOE 0x0114 0x03A0 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_DATA00__EPDC_SDDO00 0x0118 0x03A4 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_DATA01__EPDC_SDDO01 0x011C 0x03A8 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_DATA02__EPDC_SDDO02 0x0120 0x03AC 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_DATA03__EPDC_SDDO03 0x0124 0x03B0 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_DATA04__EPDC_SDDO04 0x0128 0x03B4 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_DATA05__EPDC_SDDO05 0x012C 0x03B8 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_DATA06__EPDC_SDDO06 0x0130 0x03BC 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_DATA07__EPDC_SDDO07 0x0134 0x03C0 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_DATA14__EPDC_SDSHR 0x0150 0x03DC 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_DATA15__EPDC_GDRL 0x0154 0x03E0 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_DATA16__EPDC_GDCLK 0x0158 0x03E4 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_DATA17__EPDC_GDSP 0x015C 0x03E8 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_LCD_DATA21__EPDC_SDCE1 0x016C 0x03F8 0x0000 0x9 0x0
|
||||
|
||||
#define MX6UL_PAD_CSI_MCLK__ESAI_TX3_RX2 0x01D4 0x0460 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_CSI_PIXCLK__ESAI_TX2_RX3 0x01D8 0x0464 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_CSI_VSYNC__ESAI_TX4_RX1 0x01DC 0x0468 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_CSI_HSYNC__ESAI_TX1 0x01E0 0x046C 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_CSI_DATA00__ESAI_TX_HF_CLK 0x01E4 0x0470 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_CSI_DATA01__ESAI_RX_HF_CLK 0x01E8 0x0474 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_CSI_DATA02__ESAI_RX_FS 0x01EC 0x0478 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_CSI_DATA03__ESAI_RX_CLK 0x01F0 0x047C 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_CSI_DATA04__ESAI_TX_FS 0x01F4 0x0480 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_CSI_DATA05__ESAI_TX_CLK 0x01F8 0x0484 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_CSI_DATA06__ESAI_TX5_RX0 0x01FC 0x0488 0x0000 0x9 0x0
|
||||
#define MX6UL_PAD_CSI_DATA07__ESAI_T0 0x0200 0x048C 0x0000 0x9 0x0
|
||||
/* signals for i.MX6ULL only */
|
||||
#define MX6ULL_PAD_UART1_TX_DATA__UART5_DCE_TX 0x0084 0x0310 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_UART1_TX_DATA__UART5_DTE_RX 0x0084 0x0310 0x0644 0x9 0x4
|
||||
#define MX6ULL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x0088 0x0314 0x0644 0x9 0x5
|
||||
#define MX6ULL_PAD_UART1_RX_DATA__UART5_DTE_TX 0x0088 0x0314 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_UART1_CTS_B__UART5_DCE_CTS 0x008C 0x0318 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_UART1_CTS_B__UART5_DTE_RTS 0x008C 0x0318 0x0640 0x9 0x3
|
||||
#define MX6ULL_PAD_UART1_RTS_B__UART5_DCE_RTS 0x0090 0x031C 0x0640 0x9 0x4
|
||||
#define MX6ULL_PAD_UART1_RTS_B__UART5_DTE_CTS 0x0090 0x031C 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_UART4_RX_DATA__EPDC_PWRCTRL01 0x00B8 0x0344 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_UART5_TX_DATA__EPDC_PWRCTRL02 0x00BC 0x0348 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_UART5_RX_DATA__EPDC_PWRCTRL03 0x00C0 0x034C 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET1_RX_DATA0__EPDC_SDCE04 0x00C4 0x0350 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET1_RX_DATA1__EPDC_SDCE05 0x00C8 0x0354 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET1_RX_EN__EPDC_SDCE06 0x00CC 0x0358 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET1_TX_DATA0__EPDC_SDCE07 0x00D0 0x035C 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET1_TX_DATA1__EPDC_SDCE08 0x00D4 0x0360 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET1_TX_EN__EPDC_SDCE09 0x00D8 0x0364 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET1_TX_CLK__EPDC_SDOED 0x00DC 0x0368 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET1_RX_ER__EPDC_SDOEZ 0x00E0 0x036C 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET2_RX_DATA0__EPDC_SDDO08 0x00E4 0x0370 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET2_RX_DATA1__EPDC_SDDO09 0x00E8 0x0374 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET2_RX_EN__EPDC_SDDO10 0x00EC 0x0378 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET2_TX_DATA0__EPDC_SDDO11 0x00F0 0x037C 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET2_TX_DATA1__EPDC_SDDO12 0x00F4 0x0380 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET2_TX_EN__EPDC_SDDO13 0x00F8 0x0384 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET2_TX_CLK__EPDC_SDDO14 0x00FC 0x0388 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_ENET2_RX_ER__EPDC_SDDO15 0x0100 0x038C 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_CLK__EPDC_SDCLK 0x0104 0x0390 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_ENABLE__EPDC_SDLE 0x0108 0x0394 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_HSYNC__EPDC_SDOE 0x010C 0x0398 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_VSYNC__EPDC_SDCE0 0x0110 0x039C 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_RESET__EPDC_GDOE 0x0114 0x03A0 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA00__EPDC_SDDO00 0x0118 0x03A4 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA01__EPDC_SDDO01 0x011C 0x03A8 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA02__EPDC_SDDO02 0x0120 0x03AC 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA03__EPDC_SDDO03 0x0124 0x03B0 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA04__EPDC_SDDO04 0x0128 0x03B4 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA05__EPDC_SDDO05 0x012C 0x03B8 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA06__EPDC_SDDO06 0x0130 0x03BC 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA07__EPDC_SDDO07 0x0134 0x03C0 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA14__EPDC_SDSHR 0x0150 0x03DC 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA15__EPDC_GDRL 0x0154 0x03E0 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA16__EPDC_GDCLK 0x0158 0x03E4 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA17__EPDC_GDSP 0x015C 0x03E8 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA21__EPDC_SDCE1 0x016C 0x03F8 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA22__EPDC_SDCE02 0x0170 0x03FC 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_LCD_DATA23__EPDC_SDCE03 0x0174 0x0400 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_CSI_MCLK__ESAI_TX3_RX2 0x01D4 0x0460 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_CSI_PIXCLK__ESAI_TX2_RX3 0x01D8 0x0464 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_CSI_VSYNC__ESAI_TX4_RX1 0x01DC 0x0468 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_CSI_HSYNC__ESAI_TX1 0x01E0 0x046C 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_CSI_DATA00__ESAI_TX_HF_CLK 0x01E4 0x0470 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_CSI_DATA01__ESAI_RX_HF_CLK 0x01E8 0x0474 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_CSI_DATA02__ESAI_RX_FS 0x01EC 0x0478 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_CSI_DATA03__ESAI_RX_CLK 0x01F0 0x047C 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_CSI_DATA04__ESAI_TX_FS 0x01F4 0x0480 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_CSI_DATA05__ESAI_TX_CLK 0x01F8 0x0484 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_CSI_DATA06__ESAI_TX5_RX0 0x01FC 0x0488 0x0000 0x9 0x0
|
||||
#define MX6ULL_PAD_CSI_DATA07__ESAI_T0 0x0200 0x048C 0x0000 0x9 0x0
|
||||
|
||||
#endif /* __DTS_IMX6ULL_PINFUNC_H */
|
||||
|
|
File diff suppressed because it is too large
Load diff
22
arch/arm/dts/imx6ulz-14x14-evk.dts
Normal file
22
arch/arm/dts/imx6ulz-14x14-evk.dts
Normal file
|
@ -0,0 +1,22 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
//
|
||||
// Copyright 2018 NXP.
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "imx6ulz.dtsi"
|
||||
#include "imx6ul-14x14-evk.dtsi"
|
||||
|
||||
/delete-node/ &fec1;
|
||||
/delete-node/ &fec2;
|
||||
/delete-node/ &can1;
|
||||
/delete-node/ &can2;
|
||||
/delete-node/ &lcdif;
|
||||
/delete-node/ &tsc;
|
||||
|
||||
/ {
|
||||
model = "Freescale i.MX6 ULZ 14x14 EVK Board";
|
||||
compatible = "fsl,imx6ulz-14x14-evk", "fsl,imx6ull", "fsl,imx6ulz";
|
||||
|
||||
/delete-node/ panel;
|
||||
};
|
37
arch/arm/dts/imx6ulz.dtsi
Normal file
37
arch/arm/dts/imx6ulz.dtsi
Normal file
|
@ -0,0 +1,37 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
//
|
||||
// Copyright 2018 NXP.
|
||||
|
||||
#include "imx6ull.dtsi"
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
/delete-property/ ethernet0;
|
||||
/delete-property/ ethernet1;
|
||||
/delete-property/ i2c2;
|
||||
/delete-property/ i2c3;
|
||||
/delete-property/ serial4;
|
||||
/delete-property/ serial5;
|
||||
/delete-property/ serial6;
|
||||
/delete-property/ serial7;
|
||||
/delete-property/ spi2;
|
||||
/delete-property/ spi3;
|
||||
/delete-property/ spi4;
|
||||
};
|
||||
};
|
||||
|
||||
/delete-node/ &adc1;
|
||||
/delete-node/ &ecspi3;
|
||||
/delete-node/ &ecspi4;
|
||||
/delete-node/ &epit2;
|
||||
/delete-node/ &gpt2;
|
||||
/delete-node/ &i2c3;
|
||||
/delete-node/ &i2c4;
|
||||
/delete-node/ &pwm5;
|
||||
/delete-node/ &pwm6;
|
||||
/delete-node/ &pwm7;
|
||||
/delete-node/ &pwm8;
|
||||
/delete-node/ &uart5;
|
||||
/delete-node/ &uart6;
|
||||
/delete-node/ &uart7;
|
||||
/delete-node/ &uart8;
|
87
arch/arm/dts/imx7d-pico-u-boot.dtsi
Normal file
87
arch/arm/dts/imx7d-pico-u-boot.dtsi
Normal file
|
@ -0,0 +1,87 @@
|
|||
/{
|
||||
aliases {
|
||||
mmc0 = &usdhc3;
|
||||
usb0 = &usbotg1;
|
||||
display0 = &lcdif;
|
||||
};
|
||||
};
|
||||
|
||||
&usbotg1 {
|
||||
dr_mode = "peripheral";
|
||||
};
|
||||
|
||||
&lcdif {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_lcdif>;
|
||||
status = "okay";
|
||||
display = <&display0>;
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
display0: display {
|
||||
bits-per-pixel = <16>;
|
||||
bus-width = <24>;
|
||||
|
||||
display-timings {
|
||||
native-mode = <&timing0>;
|
||||
timing0: timing0 {
|
||||
clock-frequency = <33260000>;
|
||||
hactive = <800>;
|
||||
vactive = <480>;
|
||||
hback-porch = <11>;
|
||||
hfront-porch = <11>;
|
||||
vback-porch = <12>;
|
||||
vfront-porch = <11>;
|
||||
hsync-len = <46>;
|
||||
vsync-len = <210>;
|
||||
hsync-active = <0>;
|
||||
vsync-active = <0>;
|
||||
de-active = <1>;
|
||||
pixelclk-active = <1>;
|
||||
interlaced = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&iomuxc {
|
||||
pinctrl_backlight: backlight {
|
||||
fsl,pins = <
|
||||
MX7D_PAD_GPIO1_IO11__PWM4_OUT 0x0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_lcdif: lcdifgrp {
|
||||
fsl,pins = <
|
||||
MX7D_PAD_LCD_DATA00__LCD_DATA0 0x79
|
||||
MX7D_PAD_LCD_DATA01__LCD_DATA1 0x79
|
||||
MX7D_PAD_LCD_DATA02__LCD_DATA2 0x79
|
||||
MX7D_PAD_LCD_DATA03__LCD_DATA3 0x79
|
||||
MX7D_PAD_LCD_DATA04__LCD_DATA4 0x79
|
||||
MX7D_PAD_LCD_DATA05__LCD_DATA5 0x79
|
||||
MX7D_PAD_LCD_DATA06__LCD_DATA6 0x79
|
||||
MX7D_PAD_LCD_DATA07__LCD_DATA7 0x79
|
||||
MX7D_PAD_LCD_DATA08__LCD_DATA8 0x79
|
||||
MX7D_PAD_LCD_DATA09__LCD_DATA9 0x79
|
||||
MX7D_PAD_LCD_DATA10__LCD_DATA10 0x79
|
||||
MX7D_PAD_LCD_DATA11__LCD_DATA11 0x79
|
||||
MX7D_PAD_LCD_DATA12__LCD_DATA12 0x79
|
||||
MX7D_PAD_LCD_DATA13__LCD_DATA13 0x79
|
||||
MX7D_PAD_LCD_DATA14__LCD_DATA14 0x79
|
||||
MX7D_PAD_LCD_DATA15__LCD_DATA15 0x79
|
||||
MX7D_PAD_LCD_DATA16__LCD_DATA16 0x79
|
||||
MX7D_PAD_LCD_DATA17__LCD_DATA17 0x79
|
||||
MX7D_PAD_LCD_DATA18__LCD_DATA18 0x79
|
||||
MX7D_PAD_LCD_DATA19__LCD_DATA19 0x79
|
||||
MX7D_PAD_LCD_DATA20__LCD_DATA20 0x79
|
||||
MX7D_PAD_LCD_DATA21__LCD_DATA21 0x79
|
||||
MX7D_PAD_LCD_DATA22__LCD_DATA22 0x79
|
||||
MX7D_PAD_LCD_DATA23__LCD_DATA23 0x79
|
||||
MX7D_PAD_LCD_CLK__LCD_CLK 0x79
|
||||
MX7D_PAD_LCD_ENABLE__LCD_ENABLE 0x78
|
||||
MX7D_PAD_LCD_VSYNC__LCD_VSYNC 0x78
|
||||
MX7D_PAD_LCD_HSYNC__LCD_HSYNC 0x78
|
||||
MX7D_PAD_LCD_RESET__GPIO3_IO4 0x14
|
||||
>;
|
||||
};
|
||||
|
||||
};
|
|
@ -5,14 +5,9 @@
|
|||
/dts-v1/;
|
||||
|
||||
#include "imx7d.dtsi"
|
||||
|
||||
#include "imx7d-pico-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
mmc0 = &usdhc3;
|
||||
usb0 = &usbotg1;
|
||||
};
|
||||
|
||||
/* Will be filled by the bootloader */
|
||||
memory@80000000 {
|
||||
device_type = "memory";
|
||||
|
@ -98,7 +93,7 @@
|
|||
<&clks IMX7D_ENET1_TIME_ROOT_CLK>;
|
||||
assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
|
||||
assigned-clock-rates = <0>, <100000000>;
|
||||
phy-mode = "rgmii";
|
||||
phy-mode = "rgmii-id";
|
||||
phy-handle = <ðphy0>;
|
||||
fsl,magic-packet;
|
||||
phy-reset-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
|
||||
|
@ -297,7 +292,6 @@
|
|||
|
||||
&usbotg1 {
|
||||
vbus-supply = <®_usb_otg1_vbus>;
|
||||
dr_mode = "peripheral";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
|
92
arch/arm/dts/imx8mm-evk-u-boot.dtsi
Normal file
92
arch/arm/dts/imx8mm-evk-u-boot.dtsi
Normal file
|
@ -0,0 +1,92 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright 2019 NXP
|
||||
*/
|
||||
|
||||
&{/soc} {
|
||||
u-boot,dm-pre-reloc;
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&clk {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&osc_24m {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&aips1 {
|
||||
u-boot,dm-spl;
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&aips2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&aips3 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&iomuxc {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_reg_usdhc2_vmmc {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_uart2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc2_gpio {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&pinctrl_usdhc3 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&gpio1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&gpio2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&gpio3 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&gpio4 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&gpio5 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&usdhc1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&usdhc2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&usdhc3 {
|
||||
u-boot,dm-spl;
|
||||
};
|
235
arch/arm/dts/imx8mm-evk.dts
Normal file
235
arch/arm/dts/imx8mm-evk.dts
Normal file
|
@ -0,0 +1,235 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright 2019 NXP
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "imx8mm.dtsi"
|
||||
|
||||
/ {
|
||||
model = "FSL i.MX8MM EVK board";
|
||||
compatible = "fsl,imx8mm-evk", "fsl,imx8mm";
|
||||
|
||||
chosen {
|
||||
stdout-path = &uart2;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_gpio_led>;
|
||||
|
||||
status {
|
||||
label = "status";
|
||||
gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "on";
|
||||
};
|
||||
};
|
||||
|
||||
reg_usdhc2_vmmc: regulator-usdhc2 {
|
||||
compatible = "regulator-fixed";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
|
||||
regulator-name = "VSD_3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
};
|
||||
|
||||
&fec1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_fec1>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-handle = <ðphy0>;
|
||||
fsl,magic-packet;
|
||||
status = "okay";
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ethphy0: ethernet-phy@0 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <0>;
|
||||
at803x,led-act-blind-workaround;
|
||||
at803x,eee-okay;
|
||||
at803x,vddio-1p8v;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart2 { /* console */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc2 {
|
||||
pinctrl-names = "default", "state_100mhz", "state_200mhz";
|
||||
pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
|
||||
pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
|
||||
pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
|
||||
cd-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
|
||||
bus-width = <4>;
|
||||
vmmc-supply = <®_usdhc2_vmmc>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc3 {
|
||||
pinctrl-names = "default", "state_100mhz", "state_200mhz";
|
||||
pinctrl-0 = <&pinctrl_usdhc3>;
|
||||
pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
|
||||
pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wdog1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_wdog>;
|
||||
fsl,ext-reset-output;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&iomuxc {
|
||||
pinctrl-names = "default";
|
||||
|
||||
pinctrl_fec1: fec1grp {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_ENET_MDC_ENET1_MDC 0x3
|
||||
MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO 0x3
|
||||
MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f
|
||||
MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f
|
||||
MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f
|
||||
MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f
|
||||
MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91
|
||||
MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91
|
||||
MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91
|
||||
MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91
|
||||
MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x1f
|
||||
MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91
|
||||
MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91
|
||||
MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f
|
||||
MX8MM_IOMUXC_SAI2_RXC_GPIO4_IO22 0x19
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_gpio_led: gpioledgrp {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16 0x19
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_reg_usdhc2_vmmc: regusdhc2vmmc {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart2: uart2grp {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX 0x140
|
||||
MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX 0x140
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_gpio: usdhc2grpgpio {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x1c4
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2: usdhc2grp {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x190
|
||||
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0
|
||||
MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0
|
||||
MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0
|
||||
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0
|
||||
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0
|
||||
MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194
|
||||
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4
|
||||
MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4
|
||||
MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4
|
||||
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4
|
||||
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4
|
||||
MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196
|
||||
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6
|
||||
MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6
|
||||
MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6
|
||||
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6
|
||||
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6
|
||||
MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc3: usdhc3grp {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x190
|
||||
MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d0
|
||||
MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d0
|
||||
MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d0
|
||||
MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d0
|
||||
MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d0
|
||||
MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d0
|
||||
MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d0
|
||||
MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d0
|
||||
MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d0
|
||||
MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x190
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x194
|
||||
MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d4
|
||||
MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d4
|
||||
MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d4
|
||||
MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d4
|
||||
MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d4
|
||||
MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d4
|
||||
MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d4
|
||||
MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d4
|
||||
MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d4
|
||||
MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x194
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x196
|
||||
MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d6
|
||||
MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d6
|
||||
MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d6
|
||||
MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d6
|
||||
MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d6
|
||||
MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d6
|
||||
MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d6
|
||||
MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d6
|
||||
MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d6
|
||||
MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x196
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_wdog: wdoggrp {
|
||||
fsl,pins = <
|
||||
MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6
|
||||
>;
|
||||
};
|
||||
};
|
629
arch/arm/dts/imx8mm-pinfunc.h
Normal file
629
arch/arm/dts/imx8mm-pinfunc.h
Normal file
|
@ -0,0 +1,629 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2017-2018 NXP
|
||||
*/
|
||||
|
||||
#ifndef __DTS_IMX8MM_PINFUNC_H
|
||||
#define __DTS_IMX8MM_PINFUNC_H
|
||||
|
||||
/*
|
||||
* The pin function ID is a tuple of
|
||||
* <mux_reg conf_reg input_reg mux_mode input_val>
|
||||
*/
|
||||
|
||||
#define MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x028 0x290 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO00_CCMSRCGPCMIX_ENET_PHY_REF_CLK_ROOT 0x028 0x290 0x4C0 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO00_ANAMIX_REF_CLK_32K 0x028 0x290 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO00_CCMSRCGPCMIX_EXT_CLK1 0x028 0x290 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO00_SJC_FAIL 0x028 0x290 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1 0x02C 0x294 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO01_PWM1_OUT 0x02C 0x294 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO01_ANAMIX_REF_CLK_24M 0x02C 0x294 0x4BC 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO01_CCMSRCGPCMIX_EXT_CLK2 0x02C 0x294 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO01_SJC_ACTIVE 0x02C 0x294 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO02_GPIO1_IO2 0x030 0x298 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0x030 0x298 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_ANY 0x030 0x298 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO02_SJC_DE_B 0x030 0x298 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x034 0x29C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO03_USDHC1_VSELECT 0x034 0x29C 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO03_SDMA1_EXT_EVENT0 0x034 0x29C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO03_ANAMIX_XTAL_OK 0x034 0x29C 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO03_SJC_DONE 0x034 0x29C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4 0x038 0x2A0 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x038 0x2A0 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO04_SDMA1_EXT_EVENT1 0x038 0x2A0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO04_ANAMIX_XTAL_OK_LV 0x038 0x2A0 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO04_USDHC1_TEST_TRIG 0x038 0x2A0 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO05_GPIO1_IO5 0x03C 0x2A4 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO05_M4_NMI 0x03C 0x2A4 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO05_CCMSRCGPCMIX_PMIC_READY 0x03C 0x2A4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO05_CCMSRCGPCMIX_INT_BOOT 0x03C 0x2A4 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO05_USDHC2_TEST_TRIG 0x03C 0x2A4 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x040 0x2A8 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO06_ENET1_MDC 0x040 0x2A8 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO06_USDHC1_CD_B 0x040 0x2A8 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO06_CCMSRCGPCMIX_EXT_CLK3 0x040 0x2A8 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO06_ECSPI1_TEST_TRIG 0x040 0x2A8 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x044 0x2AC 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO07_ENET1_MDIO 0x044 0x2AC 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO07_USDHC1_WP 0x044 0x2AC 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO07_CCMSRCGPCMIX_EXT_CLK4 0x044 0x2AC 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO07_ECSPI2_TEST_TRIG 0x044 0x2AC 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8 0x048 0x2B0 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO08_ENET1_1588_EVENT0_IN 0x048 0x2B0 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO08_USDHC2_RESET_B 0x048 0x2B0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO08_CCMSRCGPCMIX_WAIT 0x048 0x2B0 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO08_QSPI_TEST_TRIG 0x048 0x2B0 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x04C 0x2B4 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO09_ENET1_1588_EVENT0_OUT 0x04C 0x2B4 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO09_SDMA2_EXT_EVENT0 0x04C 0x2B4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO09_CCMSRCGPCMIX_STOP 0x04C 0x2B4 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO09_RAWNAND_TEST_TRIG 0x04C 0x2B4 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x050 0x2B8 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO10_USB1_OTG_ID 0x050 0x2B8 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO10_OCOTP_CTRL_WRAPPER_FUSE_LATCHED 0x050 0x2B8 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x054 0x2BC 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO11_USB2_OTG_ID 0x054 0x2BC 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO11_CCMSRCGPCMIX_PMIC_READY 0x054 0x2BC 0x4BC 0x5 0x1
|
||||
#define MX8MM_IOMUXC_GPIO1_IO11_CCMSRCGPCMIX_OUT0 0x054 0x2BC 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO11_CAAM_WRAPPER_RNG_OSC_OBS 0x054 0x2BC 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x058 0x2C0 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO12_USB1_OTG_PWR 0x058 0x2C0 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO12_SDMA2_EXT_EVENT1 0x058 0x2C0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO12_CCMSRCGPCMIX_OUT1 0x058 0x2C0 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO12_CSU_CSU_ALARM_AUT0 0x058 0x2C0 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO13_GPIO1_IO13 0x05C 0x2C4 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO13_USB1_OTG_OC 0x05C 0x2C4 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO13_PWM2_OUT 0x05C 0x2C4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO13_CCMSRCGPCMIX_OUT2 0x05C 0x2C4 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO13_CSU_CSU_ALARM_AUT1 0x05C 0x2C4 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO14_GPIO1_IO14 0x060 0x2C8 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO14_USB2_OTG_PWR 0x060 0x2C8 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO14_PWM3_OUT 0x060 0x2C8 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO14_CCMSRCGPCMIX_CLKO1 0x060 0x2C8 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO14_CSU_CSU_ALARM_AUT2 0x060 0x2C8 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x064 0x2CC 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO15_USB2_OTG_OC 0x064 0x2CC 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO15_PWM4_OUT 0x064 0x2CC 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO15_CCMSRCGPCMIX_CLKO2 0x064 0x2CC 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_GPIO1_IO15_CSU_CSU_INT_DEB 0x064 0x2CC 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_ENET_MDC_ENET1_MDC 0x068 0x2D0 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ENET_MDC_GPIO1_IO16 0x068 0x2D0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO 0x06C 0x2D4 0x4C0 0x0 0x1
|
||||
#define MX8MM_IOMUXC_ENET_MDIO_GPIO1_IO17 0x06C 0x2D4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x070 0x2D8 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TD3_GPIO1_IO18 0x070 0x2D8 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x074 0x2DC 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TD2_ENET1_TX_CLK 0x074 0x2DC 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TD2_GPIO1_IO19 0x074 0x2DC 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x078 0x2E0 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TD1_GPIO1_IO20 0x078 0x2E0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x07C 0x2E4 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TD0_GPIO1_IO21 0x07C 0x2E4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x080 0x2E8 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TX_CTL_GPIO1_IO22 0x080 0x2E8 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x084 0x2EC 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TXC_ENET1_TX_ER 0x084 0x2EC 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ENET_TXC_GPIO1_IO23 0x084 0x2EC 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x088 0x2F0 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ENET_RX_CTL_GPIO1_IO24 0x088 0x2F0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x08C 0x2F4 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ENET_RXC_ENET1_RX_ER 0x08C 0x2F4 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ENET_RXC_GPIO1_IO25 0x08C 0x2F4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x090 0x2F8 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ENET_RD0_GPIO1_IO26 0x090 0x2F8 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x094 0x2FC 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ENET_RD1_GPIO1_IO27 0x094 0x2FC 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x098 0x300 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ENET_RD2_GPIO1_IO28 0x098 0x300 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x09C 0x304 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ENET_RD3_GPIO1_IO29 0x09C 0x304 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x0A0 0x308 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD1_CLK_GPIO2_IO0 0x0A0 0x308 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x0A4 0x30C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD1_CMD_GPIO2_IO1 0x0A4 0x30C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x0A8 0x310 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2 0x0A8 0x31 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x0AC 0x314 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3 0x0AC 0x314 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x0B0 0x318 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA2_GPIO2_IO4 0x0B0 0x318 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x0B4 0x31C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA3_GPIO2_IO5 0x0B4 0x31C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA4_USDHC1_DATA4 0x0B8 0x320 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6 0x0B8 0x320 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA5_USDHC1_DATA5 0x0BC 0x324 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA5_GPIO2_IO7 0x0BC 0x324 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA6_USDHC1_DATA6 0x0C0 0x328 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA6_GPIO2_IO8 0x0C0 0x328 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA7_USDHC1_DATA7 0x0C4 0x32C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD1_DATA7_GPIO2_IO9 0x0C4 0x32C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0x0C8 0x330 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD1_RESET_B_GPIO2_IO10 0x0C8 0x330 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x0CC 0x334 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD1_STROBE_GPIO2_IO11 0x0CC 0x334 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B 0x0D0 0x338 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x0D0 0x338 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x0D4 0x33C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD2_CLK_GPIO2_IO13 0x0D4 0x33C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD2_CLK_CCMSRCGPCMIX_OBSERVE0 0x0D4 0x33C 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SD2_CLK_OBSERVE_MUX_OUT0 0x0D4 0x33C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x0D8 0x340 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD2_CMD_GPIO2_IO14 0x0D8 0x340 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD2_CMD_CCMSRCGPCMIX_OBSERVE1 0x0D8 0x340 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SD2_CMD_OBSERVE_MUX_OUT1 0x0D8 0x340 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x0DC 0x344 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA0_GPIO2_IO15 0x0DC 0x344 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA0_CCMSRCGPCMIX_OBSERVE2 0x0DC 0x344 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA0_OBSERVE_MUX_OUT2 0x0DC 0x344 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x0E0 0x348 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA1_GPIO2_IO16 0x0E0 0x348 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA1_CCMSRCGPCMIX_WAIT 0x0E0 0x348 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA1_OBSERVE_MUX_OUT3 0x0E0 0x348 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x0E4 0x34C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA2_GPIO2_IO17 0x0E4 0x34C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA2_CCMSRCGPCMIX_STOP 0x0E4 0x34C 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA2_OBSERVE_MUX_OUT4 0x0E4 0x34C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x0E8 0x350 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA3_GPIO2_IO18 0x0E8 0x350 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD2_DATA3_CCMSRCGPCMIX_EARLY_RESET 0x0E8 0x350 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0x0EC 0x354 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x0EC 0x354 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD2_RESET_B_CCMSRCGPCMIX_SYSTEM_RESET 0x0EC 0x354 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SD2_WP_USDHC2_WP 0x0F0 0x358 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SD2_WP_GPIO2_IO20 0x0F0 0x358 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SD2_WP_SIM_M_HMASTLOCK 0x0F0 0x358 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_ALE_RAWNAND_ALE 0x0F4 0x35C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_ALE_QSPI_A_SCLK 0x0F4 0x35C 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_ALE_GPIO3_IO0 0x0F4 0x35C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_ALE_SIM_M_HPROT0 0x0F4 0x35C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE0_B_RAWNAND_CE0_B 0x0F8 0x360 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B 0x0F8 0x360 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE0_B_GPIO3_IO1 0x0F8 0x360 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE0_B_SIM_M_HPROT1 0x0F8 0x360 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE1_B_RAWNAND_CE1_B 0x0FC 0x364 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE1_B_QSPI_A_SS1_B 0x0FC 0x364 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x0FC 0x364 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE1_B_GPIO3_IO2 0x0FC 0x364 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE1_B_SIM_M_HPROT2 0x0FC 0x364 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE2_B_RAWNAND_CE2_B 0x100 0x368 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE2_B_QSPI_B_SS0_B 0x100 0x368 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x100 0x368 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE2_B_GPIO3_IO3 0x100 0x368 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE2_B_SIM_M_HPROT3 0x100 0x368 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE3_B_RAWNAND_CE3_B 0x104 0x36C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE3_B_QSPI_B_SS1_B 0x104 0x36C 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x104 0x36C 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE3_B_GPIO3_IO4 0x104 0x36C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CE3_B_SIM_M_HADDR0 0x104 0x36C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CLE_RAWNAND_CLE 0x108 0x370 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CLE_QSPI_B_SCLK 0x108 0x370 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x108 0x370 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CLE_GPIO3_IO5 0x108 0x370 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_CLE_SIM_M_HADDR1 0x108 0x370 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA00_RAWNAND_DATA00 0x10C 0x374 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA00_QSPI_A_DATA0 0x10C 0x374 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA00_GPIO3_IO6 0x10C 0x374 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA00_SIM_M_HADDR2 0x10C 0x374 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA01_RAWNAND_DATA01 0x110 0x378 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA01_QSPI_A_DATA1 0x110 0x378 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA01_GPIO3_IO7 0x110 0x378 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA01_SIM_M_HADDR3 0x110 0x378 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA02_RAWNAND_DATA02 0x114 0x37C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA02_QSPI_A_DATA2 0x114 0x37C 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA02_GPIO3_IO8 0x114 0x37C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA02_SIM_M_HADDR4 0x114 0x37C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA03_RAWNAND_DATA03 0x118 0x380 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA03_QSPI_A_DATA3 0x118 0x380 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA03_GPIO3_IO9 0x118 0x380 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA03_SIM_M_HADDR5 0x118 0x380 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA04_RAWNAND_DATA04 0x11C 0x384 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA04_QSPI_B_DATA0 0x11C 0x384 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x11C 0x384 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA04_GPIO3_IO10 0x11C 0x384 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA04_SIM_M_HADDR6 0x11C 0x384 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA05_RAWNAND_DATA05 0x120 0x388 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA05_QSPI_B_DATA1 0x120 0x388 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x120 0x388 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA05_GPIO3_IO11 0x120 0x388 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA05_SIM_M_HADDR7 0x120 0x388 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA06_RAWNAND_DATA06 0x124 0x38C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA06_QSPI_B_DATA2 0x124 0x38C 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x124 0x38C 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA06_GPIO3_IO12 0x124 0x38C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA06_SIM_M_HADDR8 0x124 0x38C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA07_RAWNAND_DATA07 0x128 0x390 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA07_QSPI_B_DATA3 0x128 0x390 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x128 0x390 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA07_GPIO3_IO13 0x128 0x390 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DATA07_SIM_M_HADDR9 0x128 0x390 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DQS_RAWNAND_DQS 0x12C 0x394 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DQS_QSPI_A_DQS 0x12C 0x394 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DQS_GPIO3_IO14 0x12C 0x394 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_DQS_SIM_M_HADDR10 0x12C 0x394 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_RE_B_RAWNAND_RE_B 0x130 0x398 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_RE_B_QSPI_B_DQS 0x130 0x398 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x130 0x398 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_NAND_RE_B_GPIO3_IO15 0x130 0x398 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_RE_B_SIM_M_HADDR11 0x130 0x398 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_READY_B_RAWNAND_READY_B 0x134 0x39C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16 0x134 0x39C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_READY_B_SIM_M_HADDR12 0x134 0x39C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_WE_B_RAWNAND_WE_B 0x138 0x3A0 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x138 0x3A0 0x000 0x12 0x0
|
||||
#define MX8MM_IOMUXC_NAND_WE_B_GPIO3_IO17 0x138 0x3A0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_WE_B_SIM_M_HADDR13 0x138 0x3A0 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_NAND_WP_B_RAWNAND_WP_B 0x13C 0x3A4 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x13C 0x3A4 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_NAND_WP_B_GPIO3_IO18 0x13C 0x3A4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_NAND_WP_B_SIM_M_HADDR14 0x13C 0x3A4 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXFS_SAI5_RX_SYNC 0x140 0x3A8 0x4E4 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXFS_SAI1_TX_DATA0 0x140 0x3A8 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXFS_GPIO3_IO19 0x140 0x3A8 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXC_SAI5_RX_BCLK 0x144 0x3AC 0x4D0 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXC_SAI1_TX_DATA1 0x144 0x3AC 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXC_PDM_CLK 0x144 0x3AC 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20 0x144 0x3AC 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD0_SAI5_RX_DATA0 0x148 0x3B0 0x4D4 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD0_SAI1_TX_DATA2 0x148 0x3B0 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD0_PDM_DATA0 0x148 0x3B0 0x534 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD0_GPIO3_IO21 0x148 0x3B0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD1_SAI5_RX_DATA1 0x14C 0x3B4 0x4D8 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD1_SAI1_TX_DATA3 0x14C 0x3B4 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD1_SAI1_TX_SYNC 0x14C 0x3B4 0x4CC 0x2 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD1_SAI5_TX_SYNC 0x14C 0x3B4 0x4EC 0x3 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD1_PDM_DATA1 0x14C 0x3B4 0x538 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22 0x14C 0x3B4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD2_SAI5_RX_DATA2 0x150 0x3B8 0x4DC 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD2_SAI1_TX_DATA4 0x150 0x3B8 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD2_SAI1_TX_SYNC 0x150 0x3B8 0x4CC 0x2 0x1
|
||||
#define MX8MM_IOMUXC_SAI5_RXD2_SAI5_TX_BCLK 0x150 0x3B8 0x4E8 0x3 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD2_PDM_DATA2 0x150 0x3B8 0x53c 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD2_GPIO3_IO23 0x150 0x3B8 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD3_SAI5_RX_DATA3 0x154 0x3BC 0x4E0 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD3_SAI1_TX_DATA5 0x154 0x3BC 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD3_SAI1_TX_SYNC 0x154 0x3BC 0x4CC 0x2 0x2
|
||||
#define MX8MM_IOMUXC_SAI5_RXD3_SAI5_TX_DATA0 0x154 0x3BC 0x000 0x3 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD3_PDM_DATA3 0x154 0x3BC 0x540 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24 0x154 0x3BC 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_MCLK_SAI5_MCLK 0x158 0x3C0 0x52C 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_MCLK_SAI1_TX_BCLK 0x158 0x3C0 0x4C8 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_MCLK_SAI4_MCLK 0x158 0x3C0 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_MCLK_GPIO3_IO25 0x158 0x3C0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI5_MCLK_CCMSRCGPCMIX_TESTER_ACK 0x158 0x3C0 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXFS_SAI1_RX_SYNC 0x15C 0x3C4 0x4C4 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXFS_SAI5_RX_SYNC 0x15C 0x3C4 0x4E4 0x1 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_RXFS_CORESIGHT_TRACE_CLK 0x15C 0x3C4 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0 0x15C 0x3C4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXFS_SIM_M_HADDR15 0x15C 0x3C4 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXC_SAI1_RX_BCLK 0x160 0x3C8 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXC_SAI5_RX_BCLK 0x160 0x3C8 0x4D0 0x1 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_RXC_CORESIGHT_TRACE_CTL 0x160 0x3C8 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1 0x160 0x3C8 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXC_SIM_M_HADDR16 0x160 0x3C8 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD0_SAI1_RX_DATA0 0x164 0x3CC 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD0_SAI5_RX_DATA0 0x164 0x3CC 0x4D4 0x1 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_RXD0_PDM_DATA0 0x164 0x3CC 0x534 0x3 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_RXD0_CORESIGHT_TRACE0 0x164 0x3CC 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2 0x164 0x3CC 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD0_CCMSRCGPCMIX_BOOT_CFG0 0x164 0x3CC 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD0_SIM_M_HADDR17 0x164 0x3CC 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD1_SAI1_RX_DATA1 0x168 0x3D0 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD1_SAI5_RX_DATA1 0x168 0x3D0 0x4D8 0x1 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_RXD1_PDM_DATA1 0x168 0x3D0 0x538 0x3 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_RXD1_CORESIGHT_TRACE1 0x168 0x3D0 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3 0x168 0x3D0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD1_CCMSRCGPCMIX_BOOT_CFG1 0x168 0x3D0 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD1_SIM_M_HADDR18 0x168 0x3D0 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD2_SAI1_RX_DATA2 0x16C 0x3D4 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD2_SAI5_RX_DATA2 0x16C 0x3D4 0x4DC 0x1 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_RXD2_PDM_DATA2 0x16C 0x3D4 0x53C 0x3 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_RXD2_CORESIGHT_TRACE2 0x16C 0x3D4 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4 0x16C 0x3D4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD2_CCMSRCGPCMIX_BOOT_CFG2 0x16C 0x3D4 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD2_SIM_M_HADDR19 0x16C 0x3D4 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD3_SAI1_RX_DATA3 0x170 0x3D8 0x4E0 0x0 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_RXD3_SAI5_RX_DATA3 0x170 0x3D8 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD3_PDM_DATA3 0x170 0x3D8 0x540 0x3 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_RXD3_CORESIGHT_TRACE3 0x170 0x3D8 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5 0x170 0x3D8 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD3_CCMSRCGPCMIX_BOOT_CFG3 0x170 0x3D8 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD3_SIM_M_HADDR20 0x170 0x3D8 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD4_SAI1_RX_DATA4 0x174 0x3DC 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD4_SAI6_TX_BCLK 0x174 0x3DC 0x51C 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD4_SAI6_RX_BCLK 0x174 0x3DC 0x510 0x2 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD4_CORESIGHT_TRACE4 0x174 0x3DC 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD4_GPIO4_IO6 0x174 0x3DC 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD4_CCMSRCGPCMIX_BOOT_CFG4 0x174 0x3DC 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD4_SIM_M_HADDR21 0x174 0x3DC 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD5_SAI1_RX_DATA5 0x178 0x3E0 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD5_SAI6_TX_DATA0 0x178 0x3E0 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD5_SAI6_RX_DATA0 0x178 0x3E0 0x514 0x2 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD5_SAI1_RX_SYNC 0x178 0x3E0 0x4C4 0x3 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_RXD5_CORESIGHT_TRACE5 0x178 0x3E0 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7 0x178 0x3E0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD5_CCMSRCGPCMIX_BOOT_CFG5 0x178 0x3E0 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD5_SIM_M_HADDR22 0x178 0x3E0 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD6_SAI1_RX_DATA6 0x17C 0x3E4 0x520 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD6_SAI6_TX_SYNC 0x17C 0x3E4 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD6_SAI6_RX_SYNC 0x17C 0x3E4 0x518 0x2 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD6_CORESIGHT_TRACE6 0x17C 0x3E4 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD6_GPIO4_IO8 0x17C 0x3E4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD6_CCMSRCGPCMIX_BOOT_CFG6 0x17C 0x3E4 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD6_SIM_M_HADDR23 0x17C 0x3E4 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD7_SAI1_RX_DATA7 0x180 0x3E8 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD7_SAI6_MCLK 0x180 0x3E8 0x530 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD7_SAI1_TX_SYNC 0x180 0x3E8 0x4CC 0x2 0x4
|
||||
#define MX8MM_IOMUXC_SAI1_RXD7_SAI1_TX_DATA4 0x180 0x3E8 0x000 0x3 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD7_CORESIGHT_TRACE7 0x180 0x3E8 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD7_GPIO4_IO9 0x180 0x3E8 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD7_CCMSRCGPCMIX_BOOT_CFG7 0x180 0x3E8 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_RXD7_SIM_M_HADDR24 0x180 0x3E8 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXFS_SAI1_TX_SYNC 0x184 0x3EC 0x4CC 0x0 0x3
|
||||
#define MX8MM_IOMUXC_SAI1_TXFS_SAI5_TX_SYNC 0x184 0x3EC 0x4EC 0x1 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_TXFS_CORESIGHT_EVENTO 0x184 0x3EC 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10 0x184 0x3EC 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXFS_SIM_M_HADDR25 0x184 0x3EC 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXC_SAI1_TX_BCLK 0x188 0x3F0 0x4C8 0x0 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_TXC_SAI5_TX_BCLK 0x188 0x3F0 0x4E8 0x1 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_TXC_CORESIGHT_EVENTI 0x188 0x3F0 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11 0x188 0x3F0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXC_SIM_M_HADDR26 0x188 0x3F0 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD0_SAI1_TX_DATA0 0x18C 0x3F4 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD0_SAI5_TX_DATA0 0x18C 0x3F4 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD0_CORESIGHT_TRACE8 0x18C 0x3F4 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12 0x18C 0x3F4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD0_CCMSRCGPCMIX_BOOT_CFG8 0x18C 0x3F4 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD0_SIM_M_HADDR27 0x18C 0x3F4 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD1_SAI1_TX_DATA1 0x190 0x3F8 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD1_SAI5_TX_DATA1 0x190 0x3F8 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD1_CORESIGHT_TRACE9 0x190 0x3F8 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD1_GPIO4_IO13 0x190 0x3F8 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD1_CCMSRCGPCMIX_BOOT_CFG9 0x190 0x3F8 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD1_SIM_M_HADDR28 0x190 0x3F8 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD2_SAI1_TX_DATA2 0x194 0x3FC 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD2_SAI5_TX_DATA2 0x194 0x3FC 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD2_CORESIGHT_TRACE10 0x194 0x3FC 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14 0x194 0x3FC 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD2_CCMSRCGPCMIX_BOOT_CFG10 0x194 0x3FC 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD2_SIM_M_HADDR29 0x194 0x3FC 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD3_SAI1_TX_DATA3 0x198 0x400 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD3_SAI5_TX_DATA3 0x198 0x400 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD3_CORESIGHT_TRACE11 0x198 0x400 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD3_GPIO4_IO15 0x198 0x400 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD3_CCMSRCGPCMIX_BOOT_CFG11 0x198 0x400 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD3_SIM_M_HADDR30 0x198 0x400 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD4_SAI1_TX_DATA4 0x19C 0x404 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD4_SAI6_RX_BCLK 0x19C 0x404 0x510 0x1 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_TXD4_SAI6_TX_BCLK 0x19C 0x404 0x51C 0x2 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_TXD4_CORESIGHT_TRACE12 0x19C 0x404 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD4_GPIO4_IO16 0x19C 0x404 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD4_CCMSRCGPCMIX_BOOT_CFG12 0x19C 0x404 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD4_SIM_M_HADDR31 0x19C 0x404 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD5_SAI1_TX_DATA5 0x1A0 0x408 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD5_SAI6_RX_DATA0 0x1A0 0x408 0x514 0x1 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_TXD5_SAI6_TX_DATA0 0x1A0 0x408 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD5_CORESIGHT_TRACE13 0x1A0 0x408 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD5_GPIO4_IO17 0x1A0 0x408 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD5_CCMSRCGPCMIX_BOOT_CFG13 0x1A0 0x408 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD5_SIM_M_HBURST0 0x1A0 0x408 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD6_SAI1_TX_DATA6 0x1A4 0x40C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD6_SAI6_RX_SYNC 0x1A4 0x40C 0x518 0x1 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_TXD6_SAI6_TX_SYNC 0x1A4 0x40C 0x520 0x2 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_TXD6_CORESIGHT_TRACE14 0x1A4 0x40C 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD6_GPIO4_IO18 0x1A4 0x40C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD6_CCMSRCGPCMIX_BOOT_CFG14 0x1A4 0x40C 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD6_SIM_M_HBURST1 0x1A4 0x40C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD7_SAI1_TX_DATA7 0x1A8 0x410 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD7_SAI6_MCLK 0x1A8 0x410 0x530 0x1 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_TXD7_PDM_CLK 0x1A8 0x410 0x000 0x3 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD7_CORESIGHT_TRACE15 0x1A8 0x410 0x000 0x4 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD7_GPIO4_IO19 0x1A8 0x410 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD7_CCMSRCGPCMIX_BOOT_CFG15 0x1A8 0x410 0x000 0x6 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_TXD7_SIM_M_HBURST2 0x1A8 0x410 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_MCLK_SAI1_MCLK 0x1AC 0x414 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_MCLK_SAI5_MCLK 0x1AC 0x414 0x52C 0x1 0x1
|
||||
#define MX8MM_IOMUXC_SAI1_MCLK_SAI1_TX_BCLK 0x1AC 0x414 0x4C8 0x2 0x2
|
||||
#define MX8MM_IOMUXC_SAI1_MCLK_PDM_CLK 0x1AC 0x414 0x000 0x3 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_MCLK_GPIO4_IO20 0x1AC 0x414 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI1_MCLK_SIM_M_HRESP 0x1AC 0x414 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_RXFS_SAI2_RX_SYNC 0x1B0 0x418 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_RXFS_SAI5_TX_SYNC 0x1B0 0x418 0x4EC 0x1 0x2
|
||||
#define MX8MM_IOMUXC_SAI2_RXFS_GPIO4_IO21 0x1B0 0x418 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_RXFS_SIM_M_HSIZE0 0x1B0 0x418 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_RXC_SAI2_RX_BCLK 0x1B4 0x41C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_RXC_SAI5_TX_BCLK 0x1B4 0x41C 0x4E8 0x1 0x2
|
||||
#define MX8MM_IOMUXC_SAI2_RXC_GPIO4_IO22 0x1B4 0x41C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_RXC_SIM_M_HSIZE1 0x1B4 0x41C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0 0x1B8 0x420 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_RXD0_SAI5_TX_DATA0 0x1B8 0x420 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_RXD0_GPIO4_IO23 0x1B8 0x420 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_RXD0_SIM_M_HSIZE2 0x1B8 0x420 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC 0x1BC 0x424 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_TXFS_SAI5_TX_DATA1 0x1BC 0x424 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_TXFS_GPIO4_IO24 0x1BC 0x424 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_TXFS_SIM_M_HWRITE 0x1BC 0x424 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_TXC_SAI2_TX_BCLK 0x1C0 0x428 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_TXC_SAI5_TX_DATA2 0x1C0 0x428 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25 0x1C0 0x428 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_TXC_SIM_M_HREADYOUT 0x1C0 0x428 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0 0x1C4 0x42C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_TXD0_SAI5_TX_DATA3 0x1C4 0x42C 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_TXD0_GPIO4_IO26 0x1C4 0x42C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_TXD0_TPSMP_CLK 0x1C4 0x42C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_MCLK_SAI2_MCLK 0x1C8 0x430 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_MCLK_SAI5_MCLK 0x1C8 0x430 0x52C 0x1 0x2
|
||||
#define MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27 0x1C8 0x430 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI2_MCLK_TPSMP_HDATA_DIR 0x1C8 0x430 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_RXFS_SAI3_RX_SYNC 0x1CC 0x434 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_RXFS_GPT1_CAPTURE1 0x1CC 0x434 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_RXFS_SAI5_RX_SYNC 0x1CC 0x434 0x4E4 0x2 0x2
|
||||
#define MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28 0x1CC 0x434 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_RXFS_TPSMP_HTRANS0 0x1CC 0x434 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_RXC_SAI3_RX_BCLK 0x1D0 0x438 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_RXC_GPT1_CAPTURE2 0x1D0 0x438 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_RXC_SAI5_RX_BCLK 0x1D0 0x438 0x4D0 0x2 0x2
|
||||
#define MX8MM_IOMUXC_SAI3_RXC_GPIO4_IO29 0x1D0 0x438 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_RXC_TPSMP_HTRANS1 0x1D0 0x438 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_RXD_SAI3_RX_DATA0 0x1D4 0x43C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_RXD_GPT1_COMPARE1 0x1D4 0x43C 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_RXD_SAI5_RX_DATA0 0x1D4 0x43C 0x4D4 0x2 0x2
|
||||
#define MX8MM_IOMUXC_SAI3_RXD_GPIO4_IO30 0x1D4 0x43C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_RXD_TPSMP_HDATA0 0x1D4 0x43C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0x1D8 0x440 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_TXFS_GPT1_CLK 0x1D8 0x440 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_TXFS_SAI5_RX_DATA1 0x1D8 0x440 0x4D8 0x2 0x2
|
||||
#define MX8MM_IOMUXC_SAI3_TXFS_GPIO4_IO31 0x1D8 0x440 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_TXFS_TPSMP_HDATA1 0x1D8 0x440 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK 0x1DC 0x444 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_TXC_GPT1_COMPARE2 0x1DC 0x444 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_TXC_SAI5_RX_DATA2 0x1DC 0x444 0x4DC 0x2 0x2
|
||||
#define MX8MM_IOMUXC_SAI3_TXC_GPIO5_IO0 0x1DC 0x444 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_TXC_TPSMP_HDATA2 0x1DC 0x444 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 0x1E0 0x448 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_TXD_GPT1_COMPARE3 0x1E0 0x448 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_TXD_SAI5_RX_DATA3 0x1E0 0x448 0x4E0 0x2 0x2
|
||||
#define MX8MM_IOMUXC_SAI3_TXD_GPIO5_IO1 0x1E0 0x448 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_TXD_TPSMP_HDATA3 0x1E0 0x448 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_MCLK_SAI3_MCLK 0x1E4 0x44C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_MCLK_PWM4_OUT 0x1E4 0x44C 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_MCLK_SAI5_MCLK 0x1E4 0x44C 0x52C 0x2 0x3
|
||||
#define MX8MM_IOMUXC_SAI3_MCLK_GPIO5_IO2 0x1E4 0x44C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SAI3_MCLK_TPSMP_HDATA4 0x1E4 0x44C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SPDIF_TX_SPDIF1_OUT 0x1E8 0x450 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SPDIF_TX_PWM3_OUT 0x1E8 0x450 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3 0x1E8 0x450 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SPDIF_TX_TPSMP_HDATA5 0x1E8 0x450 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SPDIF_RX_SPDIF1_IN 0x1EC 0x454 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SPDIF_RX_PWM2_OUT 0x1EC 0x454 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SPDIF_RX_GPIO5_IO4 0x1EC 0x454 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SPDIF_RX_TPSMP_HDATA6 0x1EC 0x454 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_SPDIF_EXT_CLK_SPDIF1_EXT_CLK 0x1F0 0x458 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_SPDIF_EXT_CLK_PWM1_OUT 0x1F0 0x458 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5 0x1F0 0x458 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_SPDIF_EXT_CLK_TPSMP_HDATA7 0x1F0 0x458 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x1F4 0x45C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_SCLK_UART3_DCE_RX 0x1F4 0x45C 0x504 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_SCLK_UART3_DTE_TX 0x1F4 0x45C 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_SCLK_GPIO5_IO6 0x1F4 0x45C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_SCLK_TPSMP_HDATA8 0x1F4 0x45C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x1F8 0x460 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_MOSI_UART3_DCE_TX 0x1F8 0x460 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_MOSI_UART3_DTE_RX 0x1F8 0x460 0x504 0x1 0x1
|
||||
#define MX8MM_IOMUXC_ECSPI1_MOSI_GPIO5_IO7 0x1F8 0x460 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_MOSI_TPSMP_HDATA9 0x1F8 0x460 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x1FC 0x464 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B 0x1FC 0x464 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_MISO_UART3_DTE_RTS_B 0x1FC 0x464 0x500 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_MISO_GPIO5_IO8 0x1FC 0x464 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_MISO_TPSMP_HDATA10 0x1FC 0x464 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_SS0_ECSPI1_SS0 0x200 0x468 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B 0x200 0x468 0x500 0x1 0x1
|
||||
#define MX8MM_IOMUXC_ECSPI1_SS0_UART3_DTE_CTS_B 0x200 0x468 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x200 0x468 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI1_SS0_TPSMP_HDATA11 0x200 0x468 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0x204 0x46C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_SCLK_UART4_DCE_RX 0x204 0x46C 0x50C 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_SCLK_UART4_DTE_TX 0x204 0x46C 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_SCLK_GPIO5_IO10 0x204 0x46C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_SCLK_TPSMP_HDATA12 0x204 0x46C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0x208 0x470 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_MOSI_UART4_DCE_TX 0x208 0x470 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_MOSI_UART4_DTE_RX 0x208 0x470 0x50C 0x1 0x1
|
||||
#define MX8MM_IOMUXC_ECSPI2_MOSI_GPIO5_IO11 0x208 0x470 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_MOSI_TPSMP_HDATA13 0x208 0x470 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0x20C 0x474 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_MISO_UART4_DCE_CTS_B 0x20C 0x474 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_MISO_UART4_DTE_RTS_B 0x20C 0x474 0x508 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_MISO_GPIO5_IO12 0x20C 0x474 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_MISO_TPSMP_HDATA14 0x20C 0x474 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_SS0_ECSPI2_SS0 0x210 0x478 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_SS0_UART4_DCE_RTS_B 0x210 0x478 0x508 0x1 0x1
|
||||
#define MX8MM_IOMUXC_ECSPI2_SS0_UART4_DTE_CTS_B 0x210 0x478 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0x210 0x478 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_ECSPI2_SS0_TPSMP_HDATA15 0x210 0x478 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x214 0x47C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_I2C1_SCL_ENET1_MDC 0x214 0x47C 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_I2C1_SCL_GPIO5_IO14 0x214 0x47C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_I2C1_SCL_TPSMP_HDATA16 0x214 0x47C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x218 0x480 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_I2C1_SDA_ENET1_MDIO 0x218 0x480 0x4C0 0x1 0x2
|
||||
#define MX8MM_IOMUXC_I2C1_SDA_GPIO5_IO15 0x218 0x480 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_I2C1_SDA_TPSMP_HDATA17 0x218 0x480 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL 0x21C 0x484 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_I2C2_SCL_ENET1_1588_EVENT1_IN 0x21C 0x484 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_I2C2_SCL_GPIO5_IO16 0x21C 0x484 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_I2C2_SCL_TPSMP_HDATA18 0x21C 0x484 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA 0x220 0x488 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_I2C2_SDA_ENET1_1588_EVENT1_OUT 0x220 0x488 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_I2C2_SDA_GPIO5_IO17 0x220 0x488 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_I2C2_SDA_TPSMP_HDATA19 0x220 0x488 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL 0x224 0x48C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_I2C3_SCL_PWM4_OUT 0x224 0x48C 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_I2C3_SCL_GPT2_CLK 0x224 0x48C 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_I2C3_SCL_GPIO5_IO18 0x224 0x48C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_I2C3_SCL_TPSMP_HDATA20 0x224 0x48C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA 0x228 0x490 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_I2C3_SDA_PWM3_OUT 0x228 0x490 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_I2C3_SDA_GPT3_CLK 0x228 0x490 0x000 0x2 0x0
|
||||
#define MX8MM_IOMUXC_I2C3_SDA_GPIO5_IO19 0x228 0x490 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_I2C3_SDA_TPSMP_HDATA21 0x228 0x490 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL 0x22C 0x494 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_I2C4_SCL_PWM2_OUT 0x22C 0x494 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_I2C4_SCL_PCIE1_CLKREQ_B 0x22C 0x494 0x524 0x12 0x0
|
||||
#define MX8MM_IOMUXC_I2C4_SCL_GPIO5_IO20 0x22C 0x494 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_I2C4_SCL_TPSMP_HDATA22 0x22C 0x494 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA 0x230 0x498 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_I2C4_SDA_PWM1_OUT 0x230 0x498 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_I2C4_SDA_PCIE2_CLKREQ_B 0x230 0x498 0x528 0x2 0x0
|
||||
#define MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21 0x230 0x498 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_I2C4_SDA_TPSMP_HDATA23 0x230 0x498 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX 0x234 0x49C 0x4F4 0x0 0x0
|
||||
#define MX8MM_IOMUXC_UART1_RXD_UART1_DTE_TX 0x234 0x49C 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_UART1_RXD_ECSPI3_SCLK 0x234 0x49C 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_UART1_RXD_GPIO5_IO22 0x234 0x49C 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_UART1_RXD_TPSMP_HDATA24 0x234 0x49C 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX 0x238 0x4A0 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_UART1_TXD_UART1_DTE_RX 0x238 0x4A0 0x4F4 0x0 0x0
|
||||
#define MX8MM_IOMUXC_UART1_TXD_ECSPI3_MOSI 0x238 0x4A0 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_UART1_TXD_GPIO5_IO23 0x238 0x4A0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_UART1_TXD_TPSMP_HDATA25 0x238 0x4A0 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX 0x23C 0x4A4 0x4FC 0x0 0x0
|
||||
#define MX8MM_IOMUXC_UART2_RXD_UART2_DTE_TX 0x23C 0x4A4 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_UART2_RXD_ECSPI3_MISO 0x23C 0x4A4 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_UART2_RXD_GPIO5_IO24 0x23C 0x4A4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_UART2_RXD_TPSMP_HDATA26 0x23C 0x4A4 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX 0x240 0x4A8 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_UART2_TXD_UART2_DTE_RX 0x240 0x4A8 0x4FC 0x0 0x1
|
||||
#define MX8MM_IOMUXC_UART2_TXD_ECSPI3_SS0 0x240 0x4A8 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_UART2_TXD_GPIO5_IO25 0x240 0x4A8 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_UART2_TXD_TPSMP_HDATA27 0x240 0x4A8 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX 0x244 0x4AC 0x504 0x0 0x2
|
||||
#define MX8MM_IOMUXC_UART3_RXD_UART3_DTE_TX 0x244 0x4AC 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_UART3_RXD_UART1_DCE_CTS_B 0x244 0x4AC 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_UART3_RXD_UART1_DTE_RTS_B 0x244 0x4AC 0x4F0 0x1 0x0
|
||||
#define MX8MM_IOMUXC_UART3_RXD_GPIO5_IO26 0x244 0x4AC 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_UART3_RXD_TPSMP_HDATA28 0x244 0x4AC 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX 0x248 0x4B0 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_UART3_TXD_UART3_DTE_RX 0x248 0x4B0 0x504 0x0 0x3
|
||||
#define MX8MM_IOMUXC_UART3_TXD_UART1_DCE_RTS_B 0x248 0x4B0 0x4F0 0x1 0x1
|
||||
#define MX8MM_IOMUXC_UART3_TXD_UART1_DTE_CTS_B 0x248 0x4B0 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_UART3_TXD_GPIO5_IO27 0x248 0x4B0 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_UART3_TXD_TPSMP_HDATA29 0x248 0x4B0 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX 0x24C 0x4B4 0x50C 0x0 0x2
|
||||
#define MX8MM_IOMUXC_UART4_RXD_UART4_DTE_TX 0x24C 0x4B4 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_UART4_RXD_UART2_DCE_CTS_B 0x24C 0x4B4 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_UART4_RXD_UART2_DTE_RTS_B 0x24C 0x4B4 0x4F8 0x1 0x0
|
||||
#define MX8MM_IOMUXC_UART4_RXD_PCIE1_CLKREQ_B 0x24C 0x4B4 0x524 0x2 0x1
|
||||
#define MX8MM_IOMUXC_UART4_RXD_GPIO5_IO28 0x24C 0x4B4 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_UART4_RXD_TPSMP_HDATA30 0x24C 0x4B4 0x000 0x7 0x0
|
||||
#define MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX 0x250 0x4B8 0x000 0x0 0x0
|
||||
#define MX8MM_IOMUXC_UART4_TXD_UART4_DTE_RX 0x250 0x4B8 0x50C 0x0 0x3
|
||||
#define MX8MM_IOMUXC_UART4_TXD_UART2_DCE_RTS_B 0x250 0x4B8 0x4F8 0x1 0x1
|
||||
#define MX8MM_IOMUXC_UART4_TXD_UART2_DTE_CTS_B 0x250 0x4B8 0x000 0x1 0x0
|
||||
#define MX8MM_IOMUXC_UART4_TXD_PCIE2_CLKREQ_B 0x250 0x4B8 0x528 0x2 0x1
|
||||
#define MX8MM_IOMUXC_UART4_TXD_GPIO5_IO29 0x250 0x4B8 0x000 0x5 0x0
|
||||
#define MX8MM_IOMUXC_UART4_TXD_TPSMP_HDATA31 0x250 0x4B8 0x000 0x7 0x0
|
||||
|
||||
#endif /* __DTS_IMX8MM_PINFUNC_H */
|
733
arch/arm/dts/imx8mm.dtsi
Normal file
733
arch/arm/dts/imx8mm.dtsi
Normal file
|
@ -0,0 +1,733 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright 2019 NXP
|
||||
*/
|
||||
|
||||
#include <dt-bindings/clock/imx8mm-clock.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/thermal/thermal.h>
|
||||
|
||||
#include "imx8mm-pinfunc.h"
|
||||
|
||||
/ {
|
||||
compatible = "fsl,imx8mm";
|
||||
interrupt-parent = <&gic>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
aliases {
|
||||
ethernet0 = &fec1;
|
||||
i2c0 = &i2c1;
|
||||
i2c1 = &i2c2;
|
||||
i2c2 = &i2c3;
|
||||
i2c3 = &i2c4;
|
||||
serial0 = &uart1;
|
||||
serial1 = &uart2;
|
||||
serial2 = &uart3;
|
||||
serial3 = &uart4;
|
||||
spi0 = &ecspi1;
|
||||
spi1 = &ecspi2;
|
||||
spi2 = &ecspi3;
|
||||
mmc0 = &usdhc1;
|
||||
mmc1 = &usdhc2;
|
||||
mmc2 = &usdhc3;
|
||||
gpio0 = &gpio1;
|
||||
gpio1 = &gpio2;
|
||||
gpio2 = &gpio3;
|
||||
gpio3 = &gpio4;
|
||||
gpio4 = &gpio5;
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
A53_0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53";
|
||||
reg = <0x0>;
|
||||
clock-latency = <61036>; /* two CLK32 periods */
|
||||
clocks = <&clk IMX8MM_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&A53_L2>;
|
||||
operating-points-v2 = <&a53_opp_table>;
|
||||
};
|
||||
|
||||
A53_1: cpu@1 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53";
|
||||
reg = <0x1>;
|
||||
clock-latency = <61036>; /* two CLK32 periods */
|
||||
clocks = <&clk IMX8MM_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&A53_L2>;
|
||||
operating-points-v2 = <&a53_opp_table>;
|
||||
};
|
||||
|
||||
A53_2: cpu@2 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53";
|
||||
reg = <0x2>;
|
||||
clock-latency = <61036>; /* two CLK32 periods */
|
||||
clocks = <&clk IMX8MM_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&A53_L2>;
|
||||
operating-points-v2 = <&a53_opp_table>;
|
||||
};
|
||||
|
||||
A53_3: cpu@3 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53";
|
||||
reg = <0x3>;
|
||||
clock-latency = <61036>; /* two CLK32 periods */
|
||||
clocks = <&clk IMX8MM_CLK_ARM>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&A53_L2>;
|
||||
operating-points-v2 = <&a53_opp_table>;
|
||||
};
|
||||
|
||||
A53_L2: l2-cache0 {
|
||||
compatible = "cache";
|
||||
};
|
||||
};
|
||||
|
||||
a53_opp_table: opp-table {
|
||||
compatible = "operating-points-v2";
|
||||
opp-shared;
|
||||
|
||||
opp-1200000000 {
|
||||
opp-hz = /bits/ 64 <1200000000>;
|
||||
opp-microvolt = <850000>;
|
||||
clock-latency-ns = <150000>;
|
||||
};
|
||||
|
||||
opp-1600000000 {
|
||||
opp-hz = /bits/ 64 <1600000000>;
|
||||
opp-microvolt = <900000>;
|
||||
clock-latency-ns = <150000>;
|
||||
opp-suspend;
|
||||
};
|
||||
};
|
||||
|
||||
memory@40000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x40000000 0 0x80000000>;
|
||||
};
|
||||
|
||||
osc_32k: clock-osc-32k {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "osc_32k";
|
||||
};
|
||||
|
||||
osc_24m: clock-osc-24m {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24000000>;
|
||||
clock-output-names = "osc_24m";
|
||||
};
|
||||
|
||||
clk_ext1: clock-ext1 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <133000000>;
|
||||
clock-output-names = "clk_ext1";
|
||||
};
|
||||
|
||||
clk_ext2: clock-ext2 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <133000000>;
|
||||
clock-output-names = "clk_ext2";
|
||||
};
|
||||
|
||||
clk_ext3: clock-ext3 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <133000000>;
|
||||
clock-output-names = "clk_ext3";
|
||||
};
|
||||
|
||||
clk_ext4: clock-ext4 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency= <133000000>;
|
||||
clock-output-names = "clk_ext4";
|
||||
};
|
||||
|
||||
gic: interrupt-controller@38800000 {
|
||||
compatible = "arm,gic-v3";
|
||||
reg = <0x0 0x38800000 0 0x10000>, /* GIC Dist */
|
||||
<0x0 0x38880000 0 0xC0000>; /* GICR (RD_base + SGI_base) */
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-controller;
|
||||
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
psci {
|
||||
compatible = "arm,psci-1.0";
|
||||
method = "smc";
|
||||
};
|
||||
|
||||
pmu {
|
||||
compatible = "arm,armv8-pmuv3";
|
||||
interrupts = <GIC_PPI 7
|
||||
(GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
interrupt-affinity = <&A53_0>, <&A53_1>, <&A53_2>, <&A53_3>;
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Secure */
|
||||
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Non-Secure */
|
||||
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Virtual */
|
||||
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>; /* Hypervisor */
|
||||
clock-frequency = <8000000>;
|
||||
arm,no-tick-in-suspend;
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x0 0x0 0x3e000000>;
|
||||
|
||||
aips1: bus@30000000 {
|
||||
compatible = "fsl,aips-bus", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
gpio1: gpio@30200000 {
|
||||
compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x30200000 0x10000>;
|
||||
interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio2: gpio@30210000 {
|
||||
compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x30210000 0x10000>;
|
||||
interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio3: gpio@30220000 {
|
||||
compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x30220000 0x10000>;
|
||||
interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio4: gpio@30230000 {
|
||||
compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x30230000 0x10000>;
|
||||
interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio5: gpio@30240000 {
|
||||
compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x30240000 0x10000>;
|
||||
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
wdog1: watchdog@30280000 {
|
||||
compatible = "fsl,imx8mm-wdt", "fsl,imx21-wdt";
|
||||
reg = <0x30280000 0x10000>;
|
||||
interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_WDOG1_ROOT>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
wdog2: watchdog@30290000 {
|
||||
compatible = "fsl,imx8mm-wdt", "fsl,imx21-wdt";
|
||||
reg = <0x30290000 0x10000>;
|
||||
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_WDOG2_ROOT>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
wdog3: watchdog@302a0000 {
|
||||
compatible = "fsl,imx8mm-wdt", "fsl,imx21-wdt";
|
||||
reg = <0x302a0000 0x10000>;
|
||||
interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_WDOG3_ROOT>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdma2: dma-controller@302c0000 {
|
||||
compatible = "fsl,imx8mm-sdma", "fsl,imx7d-sdma";
|
||||
reg = <0x302c0000 0x10000>;
|
||||
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_SDMA2_ROOT>,
|
||||
<&clk IMX8MM_CLK_SDMA2_ROOT>;
|
||||
clock-names = "ipg", "ahb";
|
||||
#dma-cells = <3>;
|
||||
fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
|
||||
};
|
||||
|
||||
sdma3: dma-controller@302b0000 {
|
||||
compatible = "fsl,imx8mm-sdma", "fsl,imx7d-sdma";
|
||||
reg = <0x302b0000 0x10000>;
|
||||
interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_SDMA3_ROOT>,
|
||||
<&clk IMX8MM_CLK_SDMA3_ROOT>;
|
||||
clock-names = "ipg", "ahb";
|
||||
#dma-cells = <3>;
|
||||
fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
|
||||
};
|
||||
|
||||
iomuxc: pinctrl@30330000 {
|
||||
compatible = "fsl,imx8mm-iomuxc";
|
||||
reg = <0x30330000 0x10000>;
|
||||
};
|
||||
|
||||
gpr: iomuxc-gpr@30340000 {
|
||||
compatible = "fsl,imx8mm-iomuxc-gpr", "syscon";
|
||||
reg = <0x30340000 0x10000>;
|
||||
};
|
||||
|
||||
ocotp: ocotp-ctrl@30350000 {
|
||||
compatible = "fsl,imx8mm-ocotp", "fsl,imx7d-ocotp", "syscon";
|
||||
reg = <0x30350000 0x10000>;
|
||||
clocks = <&clk IMX8MM_CLK_OCOTP_ROOT>;
|
||||
/* For nvmem subnodes */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
};
|
||||
|
||||
anatop: anatop@30360000 {
|
||||
compatible = "fsl,imx8mm-anatop", "syscon", "simple-bus";
|
||||
reg = <0x30360000 0x10000>;
|
||||
};
|
||||
|
||||
snvs: snvs@30370000 {
|
||||
compatible = "fsl,sec-v4.0-mon","syscon", "simple-mfd";
|
||||
reg = <0x30370000 0x10000>;
|
||||
|
||||
snvs_rtc: snvs-rtc-lp {
|
||||
compatible = "fsl,sec-v4.0-mon-rtc-lp";
|
||||
regmap = <&snvs>;
|
||||
offset = <0x34>;
|
||||
interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
snvs_pwrkey: snvs-powerkey {
|
||||
compatible = "fsl,sec-v4.0-pwrkey";
|
||||
regmap = <&snvs>;
|
||||
interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
|
||||
linux,keycode = <KEY_POWER>;
|
||||
wakeup-source;
|
||||
};
|
||||
};
|
||||
|
||||
clk: clock-controller@30380000 {
|
||||
compatible = "fsl,imx8mm-ccm";
|
||||
reg = <0x30380000 0x10000>;
|
||||
#clock-cells = <1>;
|
||||
clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>,
|
||||
<&clk_ext3>, <&clk_ext4>;
|
||||
clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
|
||||
"clk_ext3", "clk_ext4";
|
||||
};
|
||||
|
||||
src: reset-controller@30390000 {
|
||||
compatible = "fsl,imx8mm-src", "syscon";
|
||||
reg = <0x30390000 0x10000>;
|
||||
interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
aips2: bus@30400000 {
|
||||
compatible = "fsl,aips-bus", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
pwm1: pwm@30660000 {
|
||||
compatible = "fsl,imx8mm-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x30660000 0x10000>;
|
||||
interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_PWM1_ROOT>,
|
||||
<&clk IMX8MM_CLK_PWM1_ROOT>;
|
||||
clock-names = "ipg", "per";
|
||||
#pwm-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm2: pwm@30670000 {
|
||||
compatible = "fsl,imx8mm-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x30670000 0x10000>;
|
||||
interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_PWM2_ROOT>,
|
||||
<&clk IMX8MM_CLK_PWM2_ROOT>;
|
||||
clock-names = "ipg", "per";
|
||||
#pwm-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm3: pwm@30680000 {
|
||||
compatible = "fsl,imx8mm-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x30680000 0x10000>;
|
||||
interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_PWM3_ROOT>,
|
||||
<&clk IMX8MM_CLK_PWM3_ROOT>;
|
||||
clock-names = "ipg", "per";
|
||||
#pwm-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm4: pwm@30690000 {
|
||||
compatible = "fsl,imx8mm-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x30690000 0x10000>;
|
||||
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_PWM4_ROOT>,
|
||||
<&clk IMX8MM_CLK_PWM4_ROOT>;
|
||||
clock-names = "ipg", "per";
|
||||
#pwm-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
aips3: bus@30800000 {
|
||||
compatible = "fsl,aips-bus", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
ecspi1: spi@30820000 {
|
||||
compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x30820000 0x10000>;
|
||||
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_ECSPI1_ROOT>,
|
||||
<&clk IMX8MM_CLK_ECSPI1_ROOT>;
|
||||
clock-names = "ipg", "per";
|
||||
dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>;
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ecspi2: spi@30830000 {
|
||||
compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x30830000 0x10000>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_ECSPI2_ROOT>,
|
||||
<&clk IMX8MM_CLK_ECSPI2_ROOT>;
|
||||
clock-names = "ipg", "per";
|
||||
dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>;
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ecspi3: spi@30840000 {
|
||||
compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x30840000 0x10000>;
|
||||
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_ECSPI3_ROOT>,
|
||||
<&clk IMX8MM_CLK_ECSPI3_ROOT>;
|
||||
clock-names = "ipg", "per";
|
||||
dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>;
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: serial@30860000 {
|
||||
compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
|
||||
reg = <0x30860000 0x10000>;
|
||||
interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_UART1_ROOT>,
|
||||
<&clk IMX8MM_CLK_UART1_ROOT>;
|
||||
clock-names = "ipg", "per";
|
||||
dmas = <&sdma1 22 4 0>, <&sdma1 23 4 0>;
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart3: serial@30880000 {
|
||||
compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
|
||||
reg = <0x30880000 0x10000>;
|
||||
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_UART3_ROOT>,
|
||||
<&clk IMX8MM_CLK_UART3_ROOT>;
|
||||
clock-names = "ipg", "per";
|
||||
dmas = <&sdma1 26 4 0>, <&sdma1 27 4 0>;
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart2: serial@30890000 {
|
||||
compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
|
||||
reg = <0x30890000 0x10000>;
|
||||
interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_UART2_ROOT>,
|
||||
<&clk IMX8MM_CLK_UART2_ROOT>;
|
||||
clock-names = "ipg", "per";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c1: i2c@30a20000 {
|
||||
compatible = "fsl,imx8mm-i2c", "fsl,imx21-i2c";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x30a20000 0x10000>;
|
||||
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_I2C1_ROOT>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c2: i2c@30a30000 {
|
||||
compatible = "fsl,imx8mm-i2c", "fsl,imx21-i2c";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x30a30000 0x10000>;
|
||||
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_I2C2_ROOT>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c3: i2c@30a40000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx8mm-i2c", "fsl,imx21-i2c";
|
||||
reg = <0x30a40000 0x10000>;
|
||||
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_I2C3_ROOT>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c4: i2c@30a50000 {
|
||||
compatible = "fsl,imx8mm-i2c", "fsl,imx21-i2c";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x30a50000 0x10000>;
|
||||
interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_I2C4_ROOT>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart4: serial@30a60000 {
|
||||
compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
|
||||
reg = <0x30a60000 0x10000>;
|
||||
interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_UART4_ROOT>,
|
||||
<&clk IMX8MM_CLK_UART4_ROOT>;
|
||||
clock-names = "ipg", "per";
|
||||
dmas = <&sdma1 28 4 0>, <&sdma1 29 4 0>;
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usdhc1: mmc@30b40000 {
|
||||
compatible = "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
|
||||
reg = <0x30b40000 0x10000>;
|
||||
interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_DUMMY>,
|
||||
<&clk IMX8MM_CLK_NAND_USDHC_BUS>,
|
||||
<&clk IMX8MM_CLK_USDHC1_ROOT>;
|
||||
clock-names = "ipg", "ahb", "per";
|
||||
assigned-clocks = <&clk IMX8MM_CLK_USDHC1>;
|
||||
assigned-clock-rates = <400000000>;
|
||||
fsl,tuning-start-tap = <20>;
|
||||
fsl,tuning-step= <2>;
|
||||
bus-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usdhc2: mmc@30b50000 {
|
||||
compatible = "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
|
||||
reg = <0x30b50000 0x10000>;
|
||||
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_DUMMY>,
|
||||
<&clk IMX8MM_CLK_NAND_USDHC_BUS>,
|
||||
<&clk IMX8MM_CLK_USDHC2_ROOT>;
|
||||
clock-names = "ipg", "ahb", "per";
|
||||
fsl,tuning-start-tap = <20>;
|
||||
fsl,tuning-step= <2>;
|
||||
bus-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usdhc3: mmc@30b60000 {
|
||||
compatible = "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
|
||||
reg = <0x30b60000 0x10000>;
|
||||
interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_DUMMY>,
|
||||
<&clk IMX8MM_CLK_NAND_USDHC_BUS>,
|
||||
<&clk IMX8MM_CLK_USDHC3_ROOT>;
|
||||
clock-names = "ipg", "ahb", "per";
|
||||
assigned-clocks = <&clk IMX8MM_CLK_USDHC3_ROOT>;
|
||||
assigned-clock-rates = <400000000>;
|
||||
fsl,tuning-start-tap = <20>;
|
||||
fsl,tuning-step= <2>;
|
||||
bus-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdma1: dma-controller@30bd0000 {
|
||||
compatible = "fsl,imx8mm-sdma", "fsl,imx7d-sdma";
|
||||
reg = <0x30bd0000 0x10000>;
|
||||
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_SDMA1_ROOT>,
|
||||
<&clk IMX8MM_CLK_SDMA1_ROOT>;
|
||||
clock-names = "ipg", "ahb";
|
||||
#dma-cells = <3>;
|
||||
fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
|
||||
};
|
||||
|
||||
fec1: ethernet@30be0000 {
|
||||
compatible = "fsl,imx8mm-fec", "fsl,imx6sx-fec";
|
||||
reg = <0x30be0000 0x10000>;
|
||||
interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_ENET1_ROOT>,
|
||||
<&clk IMX8MM_CLK_ENET1_ROOT>,
|
||||
<&clk IMX8MM_CLK_ENET_TIMER>,
|
||||
<&clk IMX8MM_CLK_ENET_REF>,
|
||||
<&clk IMX8MM_CLK_ENET_PHY_REF>;
|
||||
clock-names = "ipg", "ahb", "ptp",
|
||||
"enet_clk_ref", "enet_out";
|
||||
assigned-clocks = <&clk IMX8MM_CLK_ENET_AXI>,
|
||||
<&clk IMX8MM_CLK_ENET_TIMER>,
|
||||
<&clk IMX8MM_CLK_ENET_REF>,
|
||||
<&clk IMX8MM_CLK_ENET_TIMER>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_266M>,
|
||||
<&clk IMX8MM_SYS_PLL2_100M>,
|
||||
<&clk IMX8MM_SYS_PLL2_125M>;
|
||||
assigned-clock-rates = <0>, <0>, <125000000>, <100000000>;
|
||||
fsl,num-tx-queues = <3>;
|
||||
fsl,num-rx-queues = <3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
aips4: bus@32c00000 {
|
||||
compatible = "fsl,aips-bus", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
usbotg1: usb@32e40000 {
|
||||
compatible = "fsl,imx8mm-usb", "fsl,imx7d-usb";
|
||||
reg = <0x32e40000 0x200>;
|
||||
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_USB1_CTRL_ROOT>;
|
||||
clock-names = "usb1_ctrl_root_clk";
|
||||
assigned-clocks = <&clk IMX8MM_CLK_USB_BUS>,
|
||||
<&clk IMX8MM_CLK_USB_CORE_REF>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>,
|
||||
<&clk IMX8MM_SYS_PLL1_100M>;
|
||||
fsl,usbphy = <&usbphynop1>;
|
||||
fsl,usbmisc = <&usbmisc1 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usbphynop1: usbphynop1 {
|
||||
compatible = "usb-nop-xceiv";
|
||||
clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
|
||||
assigned-clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_100M>;
|
||||
clock-names = "main_clk";
|
||||
};
|
||||
|
||||
usbmisc1: usbmisc@32e40200 {
|
||||
compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc";
|
||||
#index-cells = <1>;
|
||||
reg = <0x32e40200 0x200>;
|
||||
};
|
||||
|
||||
usbotg2: usb@32e50000 {
|
||||
compatible = "fsl,imx8mm-usb", "fsl,imx7d-usb";
|
||||
reg = <0x32e50000 0x200>;
|
||||
interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_USB1_CTRL_ROOT>;
|
||||
clock-names = "usb1_ctrl_root_clk";
|
||||
assigned-clocks = <&clk IMX8MM_CLK_USB_BUS>,
|
||||
<&clk IMX8MM_CLK_USB_CORE_REF>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>,
|
||||
<&clk IMX8MM_SYS_PLL1_100M>;
|
||||
fsl,usbphy = <&usbphynop2>;
|
||||
fsl,usbmisc = <&usbmisc2 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usbphynop2: usbphynop2 {
|
||||
compatible = "usb-nop-xceiv";
|
||||
clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
|
||||
assigned-clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_100M>;
|
||||
clock-names = "main_clk";
|
||||
};
|
||||
|
||||
usbmisc2: usbmisc@32e50200 {
|
||||
compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc";
|
||||
#index-cells = <1>;
|
||||
reg = <0x32e50200 0x200>;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
dma_apbh: dma-controller@33000000 {
|
||||
compatible = "fsl,imx7d-dma-apbh", "fsl,imx28-dma-apbh";
|
||||
reg = <0x33000000 0x2000>;
|
||||
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3";
|
||||
#dma-cells = <1>;
|
||||
dma-channels = <4>;
|
||||
clocks = <&clk IMX8MM_CLK_NAND_USDHC_BUS_RAWNAND_CLK>;
|
||||
};
|
||||
|
||||
gpmi: nand-controller@33002000{
|
||||
compatible = "fsl,imx8mm-gpmi-nand", "fsl,imx7d-gpmi-nand";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x33002000 0x2000>, <0x33004000 0x4000>;
|
||||
reg-names = "gpmi-nand", "bch";
|
||||
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "bch";
|
||||
clocks = <&clk IMX8MM_CLK_NAND_ROOT>,
|
||||
<&clk IMX8MM_CLK_NAND_USDHC_BUS_RAWNAND_CLK>;
|
||||
clock-names = "gpmi_io", "gpmi_bch_apb";
|
||||
dmas = <&dma_apbh 0>;
|
||||
dma-names = "rx-tx";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
|
@ -113,7 +113,7 @@
|
|||
pinctrl_enet1: enet1grp {
|
||||
fsl,pins = <
|
||||
MX6UL_PAD_GPIO1_IO06__ENET1_MDIO 0x1b0b0
|
||||
MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0X1b0b0
|
||||
MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0x1b0b0
|
||||
MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
|
||||
MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
|
||||
MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
|
||||
|
@ -191,6 +191,7 @@
|
|||
MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x170f9
|
||||
MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x170f9
|
||||
MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x170f9
|
||||
MX6UL_PAD_NAND_ALE__USDHC2_RESET_B 0x170f9
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#define MXC_CPU_MX6Q 0x63
|
||||
#define MXC_CPU_MX6UL 0x64
|
||||
#define MXC_CPU_MX6ULL 0x65
|
||||
#define MXC_CPU_MX6ULZ 0x6B
|
||||
#define MXC_CPU_MX6SOLO 0x66 /* dummy */
|
||||
#define MXC_CPU_MX6SLL 0x67
|
||||
#define MXC_CPU_MX6D 0x6A
|
||||
|
@ -25,6 +26,12 @@
|
|||
#define MXC_CPU_MX7S 0x71 /* dummy ID */
|
||||
#define MXC_CPU_MX7D 0x72
|
||||
#define MXC_CPU_IMX8MQ 0x82
|
||||
#define MXC_CPU_IMX8MM 0x85 /* dummy ID */
|
||||
#define MXC_CPU_IMX8MML 0x86 /* dummy ID */
|
||||
#define MXC_CPU_IMX8MMD 0x87 /* dummy ID */
|
||||
#define MXC_CPU_IMX8MMDL 0x88 /* dummy ID */
|
||||
#define MXC_CPU_IMX8MMS 0x89 /* dummy ID */
|
||||
#define MXC_CPU_IMX8MMSL 0x8a /* dummy ID */
|
||||
#define MXC_CPU_IMX8QXP_A0 0x90 /* dummy ID */
|
||||
#define MXC_CPU_IMX8QM 0x91 /* dummy ID */
|
||||
#define MXC_CPU_IMX8QXP 0x92 /* dummy ID */
|
||||
|
|
56
arch/arm/include/asm/arch-imx8/image.h
Normal file
56
arch/arm/include/asm/arch-imx8/image.h
Normal file
|
@ -0,0 +1,56 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2018-2019 NXP
|
||||
*/
|
||||
|
||||
#ifndef __CONTAINER_HEADER_H_
|
||||
#define __CONTAINER_HEADER_H_
|
||||
|
||||
#include <linux/sizes.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#define IV_MAX_LEN 32
|
||||
#define HASH_MAX_LEN 64
|
||||
|
||||
#define CONTAINER_HDR_ALIGNMENT 0x400
|
||||
#define CONTAINER_HDR_EMMC_OFFSET 0
|
||||
#define CONTAINER_HDR_MMCSD_OFFSET SZ_32K
|
||||
#define CONTAINER_HDR_QSPI_OFFSET SZ_4K
|
||||
#define CONTAINER_HDR_NAND_OFFSET SZ_128M
|
||||
|
||||
struct container_hdr {
|
||||
u8 version;
|
||||
u8 length_lsb;
|
||||
u8 length_msb;
|
||||
u8 tag;
|
||||
u32 flags;
|
||||
u16 sw_version;
|
||||
u8 fuse_version;
|
||||
u8 num_images;
|
||||
u16 sig_blk_offset;
|
||||
u16 reserved;
|
||||
} __packed;
|
||||
|
||||
struct boot_img_t {
|
||||
u32 offset;
|
||||
u32 size;
|
||||
u64 dst;
|
||||
u64 entry;
|
||||
u32 hab_flags;
|
||||
u32 meta;
|
||||
u8 hash[HASH_MAX_LEN];
|
||||
u8 iv[IV_MAX_LEN];
|
||||
} __packed;
|
||||
|
||||
struct signature_block_hdr {
|
||||
u8 version;
|
||||
u8 length_lsb;
|
||||
u8 length_msb;
|
||||
u8 tag;
|
||||
u16 srk_table_offset;
|
||||
u16 cert_offset;
|
||||
u16 blob_offset;
|
||||
u16 signature_offset;
|
||||
u32 reserved;
|
||||
} __packed;
|
||||
#endif
|
|
@ -32,7 +32,9 @@
|
|||
#define SC_RPC_SVC_PAD 6U
|
||||
#define SC_RPC_SVC_MISC 7U
|
||||
#define SC_RPC_SVC_IRQ 8U
|
||||
#define SC_RPC_SVC_ABORT 9U
|
||||
#define SC_RPC_SVC_SECO 9U
|
||||
#define SC_RPC_SVC_ABORT 10U
|
||||
|
||||
|
||||
/* Types */
|
||||
|
||||
|
@ -74,6 +76,7 @@ struct sc_rpc_msg_s {
|
|||
#define PM_FUNC_REBOOT 9U
|
||||
#define PM_FUNC_REBOOT_PARTITION 12U
|
||||
#define PM_FUNC_CPU_START 11U
|
||||
#define PM_FUNC_IS_PARTITION_STARTED 24U
|
||||
|
||||
/* MISC RPC */
|
||||
#define MISC_FUNC_UNKNOWN 0
|
||||
|
@ -139,6 +142,7 @@ struct sc_rpc_msg_s {
|
|||
#define RM_FUNC_SET_MASTER_SID 11U
|
||||
#define RM_FUNC_SET_PERIPHERAL_PERMISSIONS 12U
|
||||
#define RM_FUNC_IS_RESOURCE_OWNED 13U
|
||||
#define RM_FUNC_GET_RESOURCE_OWNER 33U
|
||||
#define RM_FUNC_IS_RESOURCE_MASTER 14U
|
||||
#define RM_FUNC_IS_RESOURCE_PERIPHERAL 15U
|
||||
#define RM_FUNC_GET_RESOURCE_INFO 16U
|
||||
|
@ -155,4 +159,27 @@ struct sc_rpc_msg_s {
|
|||
#define RM_FUNC_IS_PAD_OWNED 25U
|
||||
#define RM_FUNC_DUMP 27U
|
||||
|
||||
/* SECO RPC */
|
||||
#define SECO_FUNC_UNKNOWN 0
|
||||
#define SECO_FUNC_IMAGE_LOAD 1U
|
||||
#define SECO_FUNC_AUTHENTICATE 2U
|
||||
#define SECO_FUNC_FORWARD_LIFECYCLE 3U
|
||||
#define SECO_FUNC_RETURN_LIFECYCLE 4U
|
||||
#define SECO_FUNC_COMMIT 5U
|
||||
#define SECO_FUNC_ATTEST_MODE 6U
|
||||
#define SECO_FUNC_ATTEST 7U
|
||||
#define SECO_FUNC_GET_ATTEST_PKEY 8U
|
||||
#define SECO_FUNC_GET_ATTEST_SIGN 9U
|
||||
#define SECO_FUNC_ATTEST_VERIFY 10U
|
||||
#define SECO_FUNC_GEN_KEY_BLOB 11U
|
||||
#define SECO_FUNC_LOAD_KEY 12U
|
||||
#define SECO_FUNC_GET_MP_KEY 13U
|
||||
#define SECO_FUNC_UPDATE_MPMR 14U
|
||||
#define SECO_FUNC_GET_MP_SIGN 15U
|
||||
#define SECO_FUNC_BUILD_INFO 16U
|
||||
#define SECO_FUNC_CHIP_INFO 17U
|
||||
#define SECO_FUNC_ENABLE_DEBUG 18U
|
||||
#define SECO_FUNC_GET_EVENT 19U
|
||||
#define SECO_FUNC_FUSE_WRITE 20U
|
||||
|
||||
#endif /* SC_RPC_H */
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <asm/arch/sci/svc/pad/api.h>
|
||||
#include <asm/arch/sci/svc/pm/api.h>
|
||||
#include <asm/arch/sci/svc/rm/api.h>
|
||||
#include <asm/arch/sci/svc/seco/api.h>
|
||||
#include <asm/arch/sci/rpc.h>
|
||||
#include <dt-bindings/soc/imx_rsrc.h>
|
||||
#include <linux/errno.h>
|
||||
|
@ -58,14 +59,23 @@ static inline int sc_err_to_linux(sc_err_t err)
|
|||
/* PM API*/
|
||||
int sc_pm_set_resource_power_mode(sc_ipc_t ipc, sc_rsrc_t resource,
|
||||
sc_pm_power_mode_t mode);
|
||||
int sc_pm_get_resource_power_mode(sc_ipc_t ipc, sc_rsrc_t resource,
|
||||
sc_pm_power_mode_t *mode);
|
||||
int sc_pm_set_clock_rate(sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk,
|
||||
sc_pm_clock_rate_t *rate);
|
||||
int sc_pm_get_clock_rate(sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk,
|
||||
sc_pm_clock_rate_t *rate);
|
||||
int sc_pm_clock_enable(sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk,
|
||||
sc_bool_t enable, sc_bool_t autog);
|
||||
int sc_pm_set_clock_parent(sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk,
|
||||
sc_pm_clk_parent_t parent);
|
||||
int sc_pm_cpu_start(sc_ipc_t ipc, sc_rsrc_t resource, sc_bool_t enable,
|
||||
sc_faddr_t address);
|
||||
sc_bool_t sc_pm_is_partition_started(sc_ipc_t ipc, sc_rm_pt_t pt);
|
||||
|
||||
/* MISC API */
|
||||
int sc_misc_set_control(sc_ipc_t ipc, sc_rsrc_t resource,
|
||||
sc_ctrl_t ctrl, u32 val);
|
||||
int sc_misc_get_control(sc_ipc_t ipc, sc_rsrc_t resource, sc_ctrl_t ctrl,
|
||||
u32 *val);
|
||||
void sc_misc_get_boot_dev(sc_ipc_t ipc, sc_rsrc_t *boot_dev);
|
||||
|
@ -77,10 +87,40 @@ int sc_misc_get_temp(sc_ipc_t ipc, sc_rsrc_t resource, sc_misc_temp_t temp,
|
|||
|
||||
/* RM API */
|
||||
sc_bool_t sc_rm_is_memreg_owned(sc_ipc_t ipc, sc_rm_mr_t mr);
|
||||
int sc_rm_find_memreg(sc_ipc_t ipc, sc_rm_mr_t *mr, sc_faddr_t addr_start,
|
||||
sc_faddr_t addr_end);
|
||||
int sc_rm_set_memreg_permissions(sc_ipc_t ipc, sc_rm_mr_t mr,
|
||||
sc_rm_pt_t pt, sc_rm_perm_t perm);
|
||||
int sc_rm_get_memreg_info(sc_ipc_t ipc, sc_rm_mr_t mr, sc_faddr_t *addr_start,
|
||||
sc_faddr_t *addr_end);
|
||||
sc_bool_t sc_rm_is_resource_owned(sc_ipc_t ipc, sc_rsrc_t resource);
|
||||
int sc_rm_partition_alloc(sc_ipc_t ipc, sc_rm_pt_t *pt, sc_bool_t secure,
|
||||
sc_bool_t isolated, sc_bool_t restricted,
|
||||
sc_bool_t grant, sc_bool_t coherent);
|
||||
int sc_rm_partition_free(sc_ipc_t ipc, sc_rm_pt_t pt);
|
||||
int sc_rm_get_partition(sc_ipc_t ipc, sc_rm_pt_t *pt);
|
||||
int sc_rm_set_parent(sc_ipc_t ipc, sc_rm_pt_t pt, sc_rm_pt_t pt_parent);
|
||||
int sc_rm_assign_resource(sc_ipc_t ipc, sc_rm_pt_t pt, sc_rsrc_t resource);
|
||||
int sc_rm_assign_pad(sc_ipc_t ipc, sc_rm_pt_t pt, sc_pad_t pad);
|
||||
sc_bool_t sc_rm_is_pad_owned(sc_ipc_t ipc, sc_pad_t pad);
|
||||
int sc_rm_get_resource_owner(sc_ipc_t ipc, sc_rsrc_t resource,
|
||||
sc_rm_pt_t *pt);
|
||||
|
||||
/* PAD API */
|
||||
int sc_pad_set(sc_ipc_t ipc, sc_pad_t pad, u32 val);
|
||||
|
||||
/* SMMU API */
|
||||
int sc_rm_set_master_sid(sc_ipc_t ipc, sc_rsrc_t resource, sc_rm_sid_t sid);
|
||||
|
||||
/* SECO API */
|
||||
int sc_seco_authenticate(sc_ipc_t ipc, sc_seco_auth_cmd_t cmd,
|
||||
sc_faddr_t addr);
|
||||
int sc_seco_forward_lifecycle(sc_ipc_t ipc, u32 change);
|
||||
int sc_seco_chip_info(sc_ipc_t ipc, u16 *lc, u16 *monotonic, u32 *uid_l,
|
||||
u32 *uid_h);
|
||||
void sc_seco_build_info(sc_ipc_t ipc, u32 *version, u32 *commit);
|
||||
int sc_seco_get_event(sc_ipc_t ipc, u8 idx, u32 *event);
|
||||
int sc_seco_gen_key_blob(sc_ipc_t ipc, u32 id, sc_faddr_t load_addr,
|
||||
sc_faddr_t export_addr, u16 max_size);
|
||||
|
||||
#endif
|
||||
|
|
37
arch/arm/include/asm/arch-imx8/sci/svc/seco/api.h
Normal file
37
arch/arm/include/asm/arch-imx8/sci/svc/seco/api.h
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2019 NXP
|
||||
*/
|
||||
|
||||
#ifndef SC_SECO_API_H
|
||||
#define SC_SECO_API_H
|
||||
|
||||
/* Includes */
|
||||
|
||||
#include <asm/arch/sci/types.h>
|
||||
|
||||
/* Defines */
|
||||
#define SC_SECO_AUTH_CONTAINER 0U /* Authenticate container */
|
||||
#define SC_SECO_VERIFY_IMAGE 1U /* Verify image */
|
||||
#define SC_SECO_REL_CONTAINER 2U /* Release container */
|
||||
#define SC_SECO_AUTH_SECO_FW 3U /* SECO Firmware */
|
||||
#define SC_SECO_AUTH_HDMI_TX_FW 4U /* HDMI TX Firmware */
|
||||
#define SC_SECO_AUTH_HDMI_RX_FW 5U /* HDMI RX Firmware */
|
||||
|
||||
#define SC_SECO_RNG_STAT_UNAVAILABLE 0U /* Unable to initialize the RNG */
|
||||
#define SC_SECO_RNG_STAT_INPROGRESS 1U /* Initialization is on-going */
|
||||
#define SC_SECO_RNG_STAT_READY 2U /* Initialized */
|
||||
|
||||
/* Types */
|
||||
|
||||
/*!
|
||||
* This type is used to issue SECO authenticate commands.
|
||||
*/
|
||||
typedef u8 sc_seco_auth_cmd_t;
|
||||
|
||||
/*!
|
||||
* This type is used to return the RNG initialization status.
|
||||
*/
|
||||
typedef u32 sc_seco_rng_stat_t;
|
||||
|
||||
#endif /* SC_SECO_API_H */
|
|
@ -16,6 +16,7 @@ struct pass_over_info_t {
|
|||
u32 g_ap_mu;
|
||||
};
|
||||
|
||||
extern unsigned long boot_pointer[];
|
||||
void build_info(void);
|
||||
enum boot_device get_boot_device(void);
|
||||
int print_bootinfo(void);
|
||||
|
|
|
@ -2,27 +2,32 @@
|
|||
/*
|
||||
* Copyright 2017 NXP
|
||||
*
|
||||
* Peng Fan <peng.fan@nxp.com>
|
||||
* Peng Fan <peng.fan at nxp.com>
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARCH_IMX8M_CLOCK_H
|
||||
#define _ASM_ARCH_IMX8M_CLOCK_H
|
||||
|
||||
#include <linux/bitops.h>
|
||||
|
||||
#ifdef CONFIG_IMX8MQ
|
||||
#include <asm/arch/clock_imx8mq.h>
|
||||
#elif defined(CONFIG_IMX8MM)
|
||||
#include <asm/arch/clock_imx8mm.h>
|
||||
#else
|
||||
#error "Error no clock.h"
|
||||
#endif
|
||||
|
||||
#define MHZ(X) ((X) * 1000000UL)
|
||||
|
||||
enum pll_clocks {
|
||||
ANATOP_ARM_PLL,
|
||||
ANATOP_GPU_PLL,
|
||||
ANATOP_SYSTEM_PLL1,
|
||||
ANATOP_SYSTEM_PLL2,
|
||||
ANATOP_SYSTEM_PLL3,
|
||||
ANATOP_AUDIO_PLL1,
|
||||
ANATOP_AUDIO_PLL2,
|
||||
ANATOP_VIDEO_PLL1,
|
||||
ANATOP_VIDEO_PLL2,
|
||||
ANATOP_DRAM_PLL,
|
||||
/* Mainly for compatible to imx common code. */
|
||||
enum mxc_clock {
|
||||
MXC_ARM_CLK = 0,
|
||||
MXC_IPG_CLK,
|
||||
MXC_CSPI_CLK,
|
||||
MXC_ESDHC_CLK,
|
||||
MXC_ESDHC2_CLK,
|
||||
MXC_ESDHC3_CLK,
|
||||
MXC_I2C_CLK,
|
||||
MXC_UART_CLK,
|
||||
MXC_QSPI_CLK,
|
||||
};
|
||||
|
||||
enum clk_slice_type {
|
||||
|
@ -35,297 +40,6 @@ enum clk_slice_type {
|
|||
DRAM_SEL_CLOCK_SLICE,
|
||||
};
|
||||
|
||||
enum clk_root_index {
|
||||
MXC_ARM_CLK = 0,
|
||||
ARM_A53_CLK_ROOT = 0,
|
||||
ARM_M4_CLK_ROOT = 1,
|
||||
VPU_A53_CLK_ROOT = 2,
|
||||
GPU_CORE_CLK_ROOT = 3,
|
||||
GPU_SHADER_CLK_ROOT = 4,
|
||||
MAIN_AXI_CLK_ROOT = 16,
|
||||
ENET_AXI_CLK_ROOT = 17,
|
||||
NAND_USDHC_BUS_CLK_ROOT = 18,
|
||||
VPU_BUS_CLK_ROOT = 19,
|
||||
DISPLAY_AXI_CLK_ROOT = 20,
|
||||
DISPLAY_APB_CLK_ROOT = 21,
|
||||
DISPLAY_RTRM_CLK_ROOT = 22,
|
||||
USB_BUS_CLK_ROOT = 23,
|
||||
GPU_AXI_CLK_ROOT = 24,
|
||||
GPU_AHB_CLK_ROOT = 25,
|
||||
NOC_CLK_ROOT = 26,
|
||||
NOC_APB_CLK_ROOT = 27,
|
||||
AHB_CLK_ROOT = 32,
|
||||
IPG_CLK_ROOT = 33,
|
||||
MXC_IPG_CLK = 33,
|
||||
AUDIO_AHB_CLK_ROOT = 34,
|
||||
MIPI_DSI_ESC_RX_CLK_ROOT = 36,
|
||||
DRAM_SEL_CFG = 48,
|
||||
CORE_SEL_CFG = 49,
|
||||
DRAM_ALT_CLK_ROOT = 64,
|
||||
DRAM_APB_CLK_ROOT = 65,
|
||||
VPU_G1_CLK_ROOT = 66,
|
||||
VPU_G2_CLK_ROOT = 67,
|
||||
DISPLAY_DTRC_CLK_ROOT = 68,
|
||||
DISPLAY_DC8000_CLK_ROOT = 69,
|
||||
PCIE1_CTRL_CLK_ROOT = 70,
|
||||
PCIE1_PHY_CLK_ROOT = 71,
|
||||
PCIE1_AUX_CLK_ROOT = 72,
|
||||
DC_PIXEL_CLK_ROOT = 73,
|
||||
LCDIF_PIXEL_CLK_ROOT = 74,
|
||||
SAI1_CLK_ROOT = 75,
|
||||
SAI2_CLK_ROOT = 76,
|
||||
SAI3_CLK_ROOT = 77,
|
||||
SAI4_CLK_ROOT = 78,
|
||||
SAI5_CLK_ROOT = 79,
|
||||
SAI6_CLK_ROOT = 80,
|
||||
SPDIF1_CLK_ROOT = 81,
|
||||
SPDIF2_CLK_ROOT = 82,
|
||||
ENET_REF_CLK_ROOT = 83,
|
||||
ENET_TIMER_CLK_ROOT = 84,
|
||||
ENET_PHY_REF_CLK_ROOT = 85,
|
||||
NAND_CLK_ROOT = 86,
|
||||
QSPI_CLK_ROOT = 87,
|
||||
MXC_ESDHC_CLK = 88,
|
||||
USDHC1_CLK_ROOT = 88,
|
||||
MXC_ESDHC2_CLK = 89,
|
||||
USDHC2_CLK_ROOT = 89,
|
||||
I2C1_CLK_ROOT = 90,
|
||||
MXC_I2C_CLK = 90,
|
||||
I2C2_CLK_ROOT = 91,
|
||||
I2C3_CLK_ROOT = 92,
|
||||
I2C4_CLK_ROOT = 93,
|
||||
UART1_CLK_ROOT = 94,
|
||||
UART2_CLK_ROOT = 95,
|
||||
UART3_CLK_ROOT = 96,
|
||||
UART4_CLK_ROOT = 97,
|
||||
USB_CORE_REF_CLK_ROOT = 98,
|
||||
USB_PHY_REF_CLK_ROOT = 99,
|
||||
GIC_CLK_ROOT = 100,
|
||||
ECSPI1_CLK_ROOT = 101,
|
||||
ECSPI2_CLK_ROOT = 102,
|
||||
PWM1_CLK_ROOT = 103,
|
||||
PWM2_CLK_ROOT = 104,
|
||||
PWM3_CLK_ROOT = 105,
|
||||
PWM4_CLK_ROOT = 106,
|
||||
GPT1_CLK_ROOT = 107,
|
||||
GPT2_CLK_ROOT = 108,
|
||||
GPT3_CLK_ROOT = 109,
|
||||
GPT4_CLK_ROOT = 110,
|
||||
GPT5_CLK_ROOT = 111,
|
||||
GPT6_CLK_ROOT = 112,
|
||||
TRACE_CLK_ROOT = 113,
|
||||
WDOG_CLK_ROOT = 114,
|
||||
WRCLK_CLK_ROOT = 115,
|
||||
IPP_DO_CLKO1 = 116,
|
||||
IPP_DO_CLKO2 = 117,
|
||||
MIPI_DSI_CORE_CLK_ROOT = 118,
|
||||
MIPI_DSI_PHY_REF_CLK_ROOT = 119,
|
||||
MIPI_DSI_DBI_CLK_ROOT = 120,
|
||||
OLD_MIPI_DSI_ESC_CLK_ROOT = 121,
|
||||
MIPI_CSI1_CORE_CLK_ROOT = 122,
|
||||
MIPI_CSI1_PHY_REF_CLK_ROOT = 123,
|
||||
MIPI_CSI1_ESC_CLK_ROOT = 124,
|
||||
MIPI_CSI2_CORE_CLK_ROOT = 125,
|
||||
MIPI_CSI2_PHY_REF_CLK_ROOT = 126,
|
||||
MIPI_CSI2_ESC_CLK_ROOT = 127,
|
||||
PCIE2_CTRL_CLK_ROOT = 128,
|
||||
PCIE2_PHY_CLK_ROOT = 129,
|
||||
PCIE2_AUX_CLK_ROOT = 130,
|
||||
ECSPI3_CLK_ROOT = 131,
|
||||
OLD_MIPI_DSI_ESC_RX_ROOT = 132,
|
||||
DISPLAY_HDMI_CLK_ROOT = 133,
|
||||
CLK_ROOT_MAX,
|
||||
};
|
||||
|
||||
enum clk_root_src {
|
||||
OSC_25M_CLK,
|
||||
ARM_PLL_CLK,
|
||||
DRAM_PLL1_CLK,
|
||||
VIDEO_PLL2_CLK,
|
||||
VPU_PLL_CLK,
|
||||
GPU_PLL_CLK,
|
||||
SYSTEM_PLL1_800M_CLK,
|
||||
SYSTEM_PLL1_400M_CLK,
|
||||
SYSTEM_PLL1_266M_CLK,
|
||||
SYSTEM_PLL1_200M_CLK,
|
||||
SYSTEM_PLL1_160M_CLK,
|
||||
SYSTEM_PLL1_133M_CLK,
|
||||
SYSTEM_PLL1_100M_CLK,
|
||||
SYSTEM_PLL1_80M_CLK,
|
||||
SYSTEM_PLL1_40M_CLK,
|
||||
SYSTEM_PLL2_1000M_CLK,
|
||||
SYSTEM_PLL2_500M_CLK,
|
||||
SYSTEM_PLL2_333M_CLK,
|
||||
SYSTEM_PLL2_250M_CLK,
|
||||
SYSTEM_PLL2_200M_CLK,
|
||||
SYSTEM_PLL2_166M_CLK,
|
||||
SYSTEM_PLL2_125M_CLK,
|
||||
SYSTEM_PLL2_100M_CLK,
|
||||
SYSTEM_PLL2_50M_CLK,
|
||||
SYSTEM_PLL3_CLK,
|
||||
AUDIO_PLL1_CLK,
|
||||
AUDIO_PLL2_CLK,
|
||||
VIDEO_PLL_CLK,
|
||||
OSC_32K_CLK,
|
||||
EXT_CLK_1,
|
||||
EXT_CLK_2,
|
||||
EXT_CLK_3,
|
||||
EXT_CLK_4,
|
||||
OSC_27M_CLK,
|
||||
};
|
||||
|
||||
/* CCGR index */
|
||||
enum clk_ccgr_index {
|
||||
CCGR_DVFS = 0,
|
||||
CCGR_ANAMIX = 1,
|
||||
CCGR_CPU = 2,
|
||||
CCGR_CSU = 4,
|
||||
CCGR_DRAM1 = 5,
|
||||
CCGR_DRAM2_OBSOLETE = 6,
|
||||
CCGR_ECSPI1 = 7,
|
||||
CCGR_ECSPI2 = 8,
|
||||
CCGR_ECSPI3 = 9,
|
||||
CCGR_ENET1 = 10,
|
||||
CCGR_GPIO1 = 11,
|
||||
CCGR_GPIO2 = 12,
|
||||
CCGR_GPIO3 = 13,
|
||||
CCGR_GPIO4 = 14,
|
||||
CCGR_GPIO5 = 15,
|
||||
CCGR_GPT1 = 16,
|
||||
CCGR_GPT2 = 17,
|
||||
CCGR_GPT3 = 18,
|
||||
CCGR_GPT4 = 19,
|
||||
CCGR_GPT5 = 20,
|
||||
CCGR_GPT6 = 21,
|
||||
CCGR_HS = 22,
|
||||
CCGR_I2C1 = 23,
|
||||
CCGR_I2C2 = 24,
|
||||
CCGR_I2C3 = 25,
|
||||
CCGR_I2C4 = 26,
|
||||
CCGR_IOMUX = 27,
|
||||
CCGR_IOMUX1 = 28,
|
||||
CCGR_IOMUX2 = 29,
|
||||
CCGR_IOMUX3 = 30,
|
||||
CCGR_IOMUX4 = 31,
|
||||
CCGR_M4 = 32,
|
||||
CCGR_MU = 33,
|
||||
CCGR_OCOTP = 34,
|
||||
CCGR_OCRAM = 35,
|
||||
CCGR_OCRAM_S = 36,
|
||||
CCGR_PCIE = 37,
|
||||
CCGR_PERFMON1 = 38,
|
||||
CCGR_PERFMON2 = 39,
|
||||
CCGR_PWM1 = 40,
|
||||
CCGR_PWM2 = 41,
|
||||
CCGR_PWM3 = 42,
|
||||
CCGR_PWM4 = 43,
|
||||
CCGR_QOS = 44,
|
||||
CCGR_DISMIX = 45,
|
||||
CCGR_MEGAMIX = 46,
|
||||
CCGR_QSPI = 47,
|
||||
CCGR_RAWNAND = 48,
|
||||
CCGR_RDC = 49,
|
||||
CCGR_ROM = 50,
|
||||
CCGR_SAI1 = 51,
|
||||
CCGR_SAI2 = 52,
|
||||
CCGR_SAI3 = 53,
|
||||
CCGR_SAI4 = 54,
|
||||
CCGR_SAI5 = 55,
|
||||
CCGR_SAI6 = 56,
|
||||
CCGR_SCTR = 57,
|
||||
CCGR_SDMA1 = 58,
|
||||
CCGR_SDMA2 = 59,
|
||||
CCGR_SEC_DEBUG = 60,
|
||||
CCGR_SEMA1 = 61,
|
||||
CCGR_SEMA2 = 62,
|
||||
CCGR_SIM_DISPLAY = 63,
|
||||
CCGR_SIM_ENET = 64,
|
||||
CCGR_SIM_M = 65,
|
||||
CCGR_SIM_MAIN = 66,
|
||||
CCGR_SIM_S = 67,
|
||||
CCGR_SIM_WAKEUP = 68,
|
||||
CCGR_SIM_USB = 69,
|
||||
CCGR_SIM_VPU = 70,
|
||||
CCGR_SNVS = 71,
|
||||
CCGR_TRACE = 72,
|
||||
CCGR_UART1 = 73,
|
||||
CCGR_UART2 = 74,
|
||||
CCGR_UART3 = 75,
|
||||
CCGR_UART4 = 76,
|
||||
CCGR_USB_CTRL1 = 77,
|
||||
CCGR_USB_CTRL2 = 78,
|
||||
CCGR_USB_PHY1 = 79,
|
||||
CCGR_USB_PHY2 = 80,
|
||||
CCGR_USDHC1 = 81,
|
||||
CCGR_USDHC2 = 82,
|
||||
CCGR_WDOG1 = 83,
|
||||
CCGR_WDOG2 = 84,
|
||||
CCGR_WDOG3 = 85,
|
||||
CCGR_VA53 = 86,
|
||||
CCGR_GPU = 87,
|
||||
CCGR_HEVC = 88,
|
||||
CCGR_AVC = 89,
|
||||
CCGR_VP9 = 90,
|
||||
CCGR_HEVC_INTER = 91,
|
||||
CCGR_GIC = 92,
|
||||
CCGR_DISPLAY = 93,
|
||||
CCGR_HDMI = 94,
|
||||
CCGR_HDMI_PHY = 95,
|
||||
CCGR_XTAL = 96,
|
||||
CCGR_PLL = 97,
|
||||
CCGR_TSENSOR = 98,
|
||||
CCGR_VPU_DEC = 99,
|
||||
CCGR_PCIE2 = 100,
|
||||
CCGR_MIPI_CSI1 = 101,
|
||||
CCGR_MIPI_CSI2 = 102,
|
||||
CCGR_MAX,
|
||||
};
|
||||
|
||||
/* src index */
|
||||
enum clk_src_index {
|
||||
CLK_SRC_CKIL_SYNC_REQ = 0,
|
||||
CLK_SRC_ARM_PLL_EN = 1,
|
||||
CLK_SRC_GPU_PLL_EN = 2,
|
||||
CLK_SRC_VPU_PLL_EN = 3,
|
||||
CLK_SRC_DRAM_PLL_EN = 4,
|
||||
CLK_SRC_SYSTEM_PLL1_EN = 5,
|
||||
CLK_SRC_SYSTEM_PLL2_EN = 6,
|
||||
CLK_SRC_SYSTEM_PLL3_EN = 7,
|
||||
CLK_SRC_AUDIO_PLL1_EN = 8,
|
||||
CLK_SRC_AUDIO_PLL2_EN = 9,
|
||||
CLK_SRC_VIDEO_PLL1_EN = 10,
|
||||
CLK_SRC_VIDEO_PLL2_EN = 11,
|
||||
CLK_SRC_ARM_PLL = 12,
|
||||
CLK_SRC_GPU_PLL = 13,
|
||||
CLK_SRC_VPU_PLL = 14,
|
||||
CLK_SRC_DRAM_PLL = 15,
|
||||
CLK_SRC_SYSTEM_PLL1_800M = 16,
|
||||
CLK_SRC_SYSTEM_PLL1_400M = 17,
|
||||
CLK_SRC_SYSTEM_PLL1_266M = 18,
|
||||
CLK_SRC_SYSTEM_PLL1_200M = 19,
|
||||
CLK_SRC_SYSTEM_PLL1_160M = 20,
|
||||
CLK_SRC_SYSTEM_PLL1_133M = 21,
|
||||
CLK_SRC_SYSTEM_PLL1_100M = 22,
|
||||
CLK_SRC_SYSTEM_PLL1_80M = 23,
|
||||
CLK_SRC_SYSTEM_PLL1_40M = 24,
|
||||
CLK_SRC_SYSTEM_PLL2_1000M = 25,
|
||||
CLK_SRC_SYSTEM_PLL2_500M = 26,
|
||||
CLK_SRC_SYSTEM_PLL2_333M = 27,
|
||||
CLK_SRC_SYSTEM_PLL2_250M = 28,
|
||||
CLK_SRC_SYSTEM_PLL2_200M = 29,
|
||||
CLK_SRC_SYSTEM_PLL2_166M = 30,
|
||||
CLK_SRC_SYSTEM_PLL2_125M = 31,
|
||||
CLK_SRC_SYSTEM_PLL2_100M = 32,
|
||||
CLK_SRC_SYSTEM_PLL2_50M = 33,
|
||||
CLK_SRC_SYSTEM_PLL3 = 34,
|
||||
CLK_SRC_AUDIO_PLL1 = 35,
|
||||
CLK_SRC_AUDIO_PLL2 = 36,
|
||||
CLK_SRC_VIDEO_PLL1 = 37,
|
||||
CLK_SRC_VIDEO_PLL2 = 38,
|
||||
CLK_SRC_OSC_25M = 39,
|
||||
CLK_SRC_OSC_27M = 40,
|
||||
};
|
||||
|
||||
enum root_pre_div {
|
||||
CLK_ROOT_PRE_DIV1 = 0,
|
||||
CLK_ROOT_PRE_DIV2,
|
||||
|
@ -466,6 +180,29 @@ struct ccm_reg {
|
|||
struct ccm_root ip_root[78];
|
||||
};
|
||||
|
||||
enum enet_freq {
|
||||
ENET_25MHZ = 0,
|
||||
ENET_50MHZ,
|
||||
ENET_125MHZ,
|
||||
};
|
||||
|
||||
#define DRAM_BYPASS_ROOT_CONFIG(_rate, _m, _p, _s, _k) \
|
||||
{ \
|
||||
.clk = (_rate), \
|
||||
.alt_root_sel = (_m), \
|
||||
.alt_pre_div = (_p), \
|
||||
.apb_root_sel = (_s), \
|
||||
.apb_pre_div = (_k), \
|
||||
}
|
||||
|
||||
struct dram_bypass_clk_setting {
|
||||
ulong clk;
|
||||
int alt_root_sel;
|
||||
enum root_pre_div alt_pre_div;
|
||||
int apb_root_sel;
|
||||
enum root_pre_div apb_pre_div;
|
||||
};
|
||||
|
||||
#define CCGR_CLK_ON_MASK 0x03
|
||||
#define CLK_SRC_ON_MASK 0x03
|
||||
|
||||
|
@ -503,117 +240,6 @@ struct ccm_reg {
|
|||
#define CLK_ROOT_IPG_POST_DIV_MASK 0x3
|
||||
#define CLK_ROOT_POST_DIV_SHIFT 0
|
||||
#define CLK_ROOT_POST_DIV(n) ((n) & 0x3f)
|
||||
|
||||
/* AUDIO PLL1/2 VIDEO PLL1 GPU PLL VPU PLL ARM PLL*/
|
||||
#define FRAC_PLL_LOCK_MASK BIT(31)
|
||||
#define FRAC_PLL_CLKE_MASK BIT(21)
|
||||
#define FRAC_PLL_PD_MASK BIT(19)
|
||||
#define FRAC_PLL_REFCLK_SEL_MASK BIT(16)
|
||||
#define FRAC_PLL_LOCK_SEL_MASK BIT(15)
|
||||
#define FRAC_PLL_BYPASS_MASK BIT(14)
|
||||
#define FRAC_PLL_COUNTCLK_SEL_MASK BIT(13)
|
||||
#define FRAC_PLL_NEWDIV_VAL_MASK BIT(12)
|
||||
#define FRAC_PLL_NEWDIV_ACK_MASK BIT(11)
|
||||
#define FRAC_PLL_REFCLK_DIV_VAL(n) (((n) << 5) & (0x3f << 5))
|
||||
#define FRAC_PLL_REFCLK_DIV_VAL_MASK (0x3f << 5)
|
||||
#define FRAC_PLL_REFCLK_DIV_VAL_SHIFT 5
|
||||
#define FRAC_PLL_OUTPUT_DIV_VAL_MASK 0x1f
|
||||
#define FRAC_PLL_OUTPUT_DIV_VAL(n) ((n) & 0x1f)
|
||||
|
||||
#define FRAC_PLL_REFCLK_SEL_OSC_25M (0 << 16)
|
||||
#define FRAC_PLL_REFCLK_SEL_OSC_27M BIT(16)
|
||||
#define FRAC_PLL_REFCLK_SEL_HDMI_PHY_27M (2 << 16)
|
||||
#define FRAC_PLL_REFCLK_SEL_CLK_PN (3 << 16)
|
||||
|
||||
#define FRAC_PLL_FRAC_DIV_CTL_MASK (0x1ffffff << 7)
|
||||
#define FRAC_PLL_FRAC_DIV_CTL_SHIFT 7
|
||||
#define FRAC_PLL_INT_DIV_CTL_MASK 0x7f
|
||||
#define FRAC_PLL_INT_DIV_CTL_VAL(n) ((n) & 0x7f)
|
||||
|
||||
/* SYS PLL1/2/3 VIDEO PLL2 DRAM PLL */
|
||||
#define SSCG_PLL_LOCK_MASK BIT(31)
|
||||
#define SSCG_PLL_CLKE_MASK BIT(25)
|
||||
#define SSCG_PLL_DIV2_CLKE_MASK BIT(23)
|
||||
#define SSCG_PLL_DIV3_CLKE_MASK BIT(21)
|
||||
#define SSCG_PLL_DIV4_CLKE_MASK BIT(19)
|
||||
#define SSCG_PLL_DIV5_CLKE_MASK BIT(17)
|
||||
#define SSCG_PLL_DIV6_CLKE_MASK BIT(15)
|
||||
#define SSCG_PLL_DIV8_CLKE_MASK BIT(13)
|
||||
#define SSCG_PLL_DIV10_CLKE_MASK BIT(11)
|
||||
#define SSCG_PLL_DIV20_CLKE_MASK BIT(9)
|
||||
#define SSCG_PLL_VIDEO_PLL2_CLKE_MASK BIT(9)
|
||||
#define SSCG_PLL_DRAM_PLL_CLKE_MASK BIT(9)
|
||||
#define SSCG_PLL_PLL3_CLKE_MASK BIT(9)
|
||||
#define SSCG_PLL_PD_MASK BIT(7)
|
||||
#define SSCG_PLL_BYPASS1_MASK BIT(5)
|
||||
#define SSCG_PLL_BYPASS2_MASK BIT(4)
|
||||
#define SSCG_PLL_LOCK_SEL_MASK BIT(3)
|
||||
#define SSCG_PLL_COUNTCLK_SEL_MASK BIT(2)
|
||||
#define SSCG_PLL_REFCLK_SEL_MASK 0x3
|
||||
#define SSCG_PLL_REFCLK_SEL_OSC_25M (0 << 16)
|
||||
#define SSCG_PLL_REFCLK_SEL_OSC_27M BIT(16)
|
||||
#define SSCG_PLL_REFCLK_SEL_HDMI_PHY_27M (2 << 16)
|
||||
#define SSCG_PLL_REFCLK_SEL_CLK_PN (3 << 16)
|
||||
|
||||
#define SSCG_PLL_SSDS_MASK BIT(8)
|
||||
#define SSCG_PLL_SSMD_MASK (0x7 << 5)
|
||||
#define SSCG_PLL_SSMF_MASK (0xf << 1)
|
||||
#define SSCG_PLL_SSE_MASK 0x1
|
||||
|
||||
#define SSCG_PLL_REF_DIVR1_MASK (0x7 << 25)
|
||||
#define SSCG_PLL_REF_DIVR1_SHIFT 25
|
||||
#define SSCG_PLL_REF_DIVR1_VAL(n) (((n) << 25) & SSCG_PLL_REF_DIVR1_MASK)
|
||||
#define SSCG_PLL_REF_DIVR2_MASK (0x3f << 19)
|
||||
#define SSCG_PLL_REF_DIVR2_SHIFT 19
|
||||
#define SSCG_PLL_REF_DIVR2_VAL(n) (((n) << 19) & SSCG_PLL_REF_DIVR2_MASK)
|
||||
#define SSCG_PLL_FEEDBACK_DIV_F1_MASK (0x3f << 13)
|
||||
#define SSCG_PLL_FEEDBACK_DIV_F1_SHIFT 13
|
||||
#define SSCG_PLL_FEEDBACK_DIV_F1_VAL(n) (((n) << 13) & \
|
||||
SSCG_PLL_FEEDBACK_DIV_F1_MASK)
|
||||
#define SSCG_PLL_FEEDBACK_DIV_F2_MASK (0x3f << 7)
|
||||
#define SSCG_PLL_FEEDBACK_DIV_F2_SHIFT 7
|
||||
#define SSCG_PLL_FEEDBACK_DIV_F2_VAL(n) (((n) << 7) & \
|
||||
SSCG_PLL_FEEDBACK_DIV_F2_MASK)
|
||||
#define SSCG_PLL_OUTPUT_DIV_VAL_MASK (0x3f << 1)
|
||||
#define SSCG_PLL_OUTPUT_DIV_VAL_SHIFT 1
|
||||
#define SSCG_PLL_OUTPUT_DIV_VAL(n) (((n) << 1) & \
|
||||
SSCG_PLL_OUTPUT_DIV_VAL_MASK)
|
||||
#define SSCG_PLL_FILTER_RANGE_MASK 0x1
|
||||
|
||||
#define HW_DIGPROG_MAJOR_UPPER_MASK (0xff << 16)
|
||||
#define HW_DIGPROG_MAJOR_LOWER_MASK (0xff << 8)
|
||||
#define HW_DIGPROG_MINOR_MASK 0xff
|
||||
|
||||
#define HW_OSC_27M_CLKE_MASK BIT(4)
|
||||
#define HW_OSC_25M_CLKE_MASK BIT(2)
|
||||
#define HW_OSC_32K_SEL_MASK 0x1
|
||||
#define HW_OSC_32K_SEL_RTC 0x1
|
||||
#define HW_OSC_32K_SEL_25M_DIV800 0x0
|
||||
|
||||
#define HW_FRAC_ARM_PLL_DIV_MASK (0x7 << 20)
|
||||
#define HW_FRAC_ARM_PLL_DIV_SHIFT 20
|
||||
#define HW_FRAC_VPU_PLL_DIV_MASK (0x7 << 16)
|
||||
#define HW_FRAC_VPU_PLL_DIV_SHIFT 16
|
||||
#define HW_FRAC_GPU_PLL_DIV_MASK (0x7 << 12)
|
||||
#define HW_FRAC_GPU_PLL_DIV_SHIFT 12
|
||||
#define HW_FRAC_VIDEO_PLL1_DIV_MASK (0x7 << 10)
|
||||
#define HW_FRAC_VIDEO_PLL1_DIV_SHIFT 10
|
||||
#define HW_FRAC_AUDIO_PLL2_DIV_MASK (0x7 << 4)
|
||||
#define HW_FRAC_AUDIO_PLL2_DIV_SHIFT 4
|
||||
#define HW_FRAC_AUDIO_PLL1_DIV_MASK 0x7
|
||||
#define HW_FRAC_AUDIO_PLL1_DIV_SHIFT 0
|
||||
|
||||
#define HW_SSCG_VIDEO_PLL2_DIV_MASK (0x7 << 16)
|
||||
#define HW_SSCG_VIDEO_PLL2_DIV_SHIFT 16
|
||||
#define HW_SSCG_DRAM_PLL_DIV_MASK (0x7 << 14)
|
||||
#define HW_SSCG_DRAM_PLL_DIV_SHIFT 14
|
||||
#define HW_SSCG_SYSTEM_PLL3_DIV_MASK (0x7 << 8)
|
||||
#define HW_SSCG_SYSTEM_PLL3_DIV_SHIFT 8
|
||||
#define HW_SSCG_SYSTEM_PLL2_DIV_MASK (0x7 << 4)
|
||||
#define HW_SSCG_SYSTEM_PLL2_DIV_SHIFT 4
|
||||
#define HW_SSCG_SYSTEM_PLL1_DIV_MASK 0x7
|
||||
#define HW_SSCG_SYSTEM_PLL1_DIV_SHIFT 0
|
||||
|
||||
#define ENET1_REF_CLK_ROOT_FROM_PLL_ENET_MAIN_125M_CLK 0x01000000
|
||||
#define ENET1_REF_CLK_ROOT_FROM_PLL_ENET_MAIN_50M_CLK 0x02000000
|
||||
#define ENET1_REF_CLK_ROOT_FROM_PLL_ENET_MAIN_25M_CLK 0x03000000
|
||||
|
@ -622,34 +248,6 @@ struct ccm_reg {
|
|||
#define ENET1_TIME_CLK_ROOT_FROM_PLL_ENET_MAIN_100M_CLK 0x01000000
|
||||
#define ENET_PHY_REF_CLK_ROOT_FROM_PLL_ENET_MAIN_25M_CLK 0x01000000
|
||||
|
||||
enum enet_freq {
|
||||
ENET_25MHZ = 0,
|
||||
ENET_50MHZ,
|
||||
ENET_125MHZ,
|
||||
};
|
||||
|
||||
enum frac_pll_out_val {
|
||||
FRAC_PLL_OUT_1000M,
|
||||
FRAC_PLL_OUT_1600M,
|
||||
};
|
||||
|
||||
#define DRAM_BYPASS_ROOT_CONFIG(_rate, _m, _p, _s, _k) \
|
||||
{ \
|
||||
.clk = (_rate), \
|
||||
.alt_root_sel = (_m), \
|
||||
.alt_pre_div = (_p), \
|
||||
.apb_root_sel = (_s), \
|
||||
.apb_pre_div = (_k), \
|
||||
}
|
||||
|
||||
struct dram_bypass_clk_setting {
|
||||
ulong clk;
|
||||
int alt_root_sel;
|
||||
enum root_pre_div alt_pre_div;
|
||||
int apb_root_sel;
|
||||
enum root_pre_div apb_pre_div;
|
||||
};
|
||||
|
||||
void dram_pll_init(ulong pll_val);
|
||||
void dram_enable_bypass(ulong clk_val);
|
||||
void dram_disable_bypass(void);
|
||||
|
@ -659,7 +257,7 @@ int clock_init(void);
|
|||
void init_clk_usdhc(u32 index);
|
||||
void init_uart_clk(u32 index);
|
||||
void init_wdog_clk(void);
|
||||
unsigned int mxc_get_clock(enum clk_root_index clk);
|
||||
unsigned int mxc_get_clock(enum mxc_clock clk);
|
||||
int clock_enable(enum clk_ccgr_index index, bool enable);
|
||||
int clock_root_enabled(enum clk_root_index clock_id);
|
||||
int clock_root_cfg(enum clk_root_index clock_id, enum root_pre_div pre_div,
|
||||
|
@ -675,4 +273,3 @@ int set_clk_qspi(void);
|
|||
void enable_ocotp_clk(unsigned char enable);
|
||||
int enable_i2c_clk(unsigned char enable, unsigned int i2c_num);
|
||||
int set_clk_enet(enum enet_freq type);
|
||||
#endif
|
||||
|
|
387
arch/arm/include/asm/arch-imx8m/clock_imx8mm.h
Normal file
387
arch/arm/include/asm/arch-imx8m/clock_imx8mm.h
Normal file
|
@ -0,0 +1,387 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2018-2019 NXP
|
||||
*
|
||||
* Peng Fan <peng.fan@nxp.com>
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARCH_IMX8MM_CLOCK_H
|
||||
#define _ASM_ARCH_IMX8MM_CLOCK_H
|
||||
|
||||
#define PLL_1443X_RATE(_rate, _m, _p, _s, _k) \
|
||||
{ \
|
||||
.rate = (_rate), \
|
||||
.mdiv = (_m), \
|
||||
.pdiv = (_p), \
|
||||
.sdiv = (_s), \
|
||||
.kdiv = (_k), \
|
||||
}
|
||||
|
||||
#define LOCK_STATUS BIT(31)
|
||||
#define LOCK_SEL_MASK BIT(29)
|
||||
#define CLKE_MASK BIT(11)
|
||||
#define RST_MASK BIT(9)
|
||||
#define BYPASS_MASK BIT(4)
|
||||
#define MDIV_SHIFT 12
|
||||
#define MDIV_MASK GENMASK(21, 12)
|
||||
#define PDIV_SHIFT 4
|
||||
#define PDIV_MASK GENMASK(9, 4)
|
||||
#define SDIV_SHIFT 0
|
||||
#define SDIV_MASK GENMASK(2, 0)
|
||||
#define KDIV_SHIFT 0
|
||||
#define KDIV_MASK GENMASK(15, 0)
|
||||
|
||||
struct imx_int_pll_rate_table {
|
||||
u32 rate;
|
||||
int mdiv;
|
||||
int pdiv;
|
||||
int sdiv;
|
||||
int kdiv;
|
||||
};
|
||||
|
||||
enum pll_clocks {
|
||||
ANATOP_ARM_PLL,
|
||||
ANATOP_VPU_PLL,
|
||||
ANATOP_GPU_PLL,
|
||||
ANATOP_SYSTEM_PLL1,
|
||||
ANATOP_SYSTEM_PLL2,
|
||||
ANATOP_SYSTEM_PLL3,
|
||||
ANATOP_AUDIO_PLL1,
|
||||
ANATOP_AUDIO_PLL2,
|
||||
ANATOP_VIDEO_PLL,
|
||||
ANATOP_DRAM_PLL,
|
||||
};
|
||||
|
||||
enum clk_root_index {
|
||||
ARM_A53_CLK_ROOT = 0,
|
||||
ARM_M4_CLK_ROOT = 1,
|
||||
VPU_A53_CLK_ROOT = 2,
|
||||
GPU3D_CLK_ROOT = 3,
|
||||
GPU2D_CLK_ROOT = 4,
|
||||
MAIN_AXI_CLK_ROOT = 16,
|
||||
ENET_AXI_CLK_ROOT = 17,
|
||||
NAND_USDHC_BUS_CLK_ROOT = 18,
|
||||
VPU_BUS_CLK_ROOT = 19,
|
||||
DISPLAY_AXI_CLK_ROOT = 20,
|
||||
DISPLAY_APB_CLK_ROOT = 21,
|
||||
DISPLAY_RTRM_CLK_ROOT = 22,
|
||||
USB_BUS_CLK_ROOT = 23,
|
||||
GPU_AXI_CLK_ROOT = 24,
|
||||
GPU_AHB_CLK_ROOT = 25,
|
||||
NOC_CLK_ROOT = 26,
|
||||
NOC_APB_CLK_ROOT = 27,
|
||||
AHB_CLK_ROOT = 32,
|
||||
IPG_CLK_ROOT = 33,
|
||||
AUDIO_AHB_CLK_ROOT = 34,
|
||||
MIPI_DSI_ESC_RX_CLK_ROOT = 36,
|
||||
DRAM_SEL_CFG = 48,
|
||||
CORE_SEL_CFG = 49,
|
||||
DRAM_ALT_CLK_ROOT = 64,
|
||||
DRAM_APB_CLK_ROOT = 65,
|
||||
VPU_G1_CLK_ROOT = 66,
|
||||
VPU_G2_CLK_ROOT = 67,
|
||||
DISPLAY_DTRC_CLK_ROOT = 68,
|
||||
DISPLAY_DC8000_CLK_ROOT = 69,
|
||||
PCIE_CTRL_CLK_ROOT = 70,
|
||||
PCIE_PHY_CLK_ROOT = 71,
|
||||
PCIE_AUX_CLK_ROOT = 72,
|
||||
DC_PIXEL_CLK_ROOT = 73,
|
||||
LCDIF_PIXEL_CLK_ROOT = 74,
|
||||
SAI1_CLK_ROOT = 75,
|
||||
SAI2_CLK_ROOT = 76,
|
||||
SAI3_CLK_ROOT = 77,
|
||||
SAI4_CLK_ROOT = 78,
|
||||
SAI5_CLK_ROOT = 79,
|
||||
SAI6_CLK_ROOT = 80,
|
||||
SPDIF1_CLK_ROOT = 81,
|
||||
SPDIF2_CLK_ROOT = 82,
|
||||
ENET_REF_CLK_ROOT = 83,
|
||||
ENET_TIMER_CLK_ROOT = 84,
|
||||
ENET_PHY_REF_CLK_ROOT = 85,
|
||||
NAND_CLK_ROOT = 86,
|
||||
QSPI_CLK_ROOT = 87,
|
||||
USDHC1_CLK_ROOT = 88,
|
||||
USDHC2_CLK_ROOT = 89,
|
||||
I2C1_CLK_ROOT = 90,
|
||||
I2C2_CLK_ROOT = 91,
|
||||
I2C3_CLK_ROOT = 92,
|
||||
I2C4_CLK_ROOT = 93,
|
||||
UART1_CLK_ROOT = 94,
|
||||
UART2_CLK_ROOT = 95,
|
||||
UART3_CLK_ROOT = 96,
|
||||
UART4_CLK_ROOT = 97,
|
||||
USB_CORE_REF_CLK_ROOT = 98,
|
||||
USB_PHY_REF_CLK_ROOT = 99,
|
||||
GIC_CLK_ROOT = 100,
|
||||
ECSPI1_CLK_ROOT = 101,
|
||||
ECSPI2_CLK_ROOT = 102,
|
||||
PWM1_CLK_ROOT = 103,
|
||||
PWM2_CLK_ROOT = 104,
|
||||
PWM3_CLK_ROOT = 105,
|
||||
PWM4_CLK_ROOT = 106,
|
||||
GPT1_CLK_ROOT = 107,
|
||||
GPT2_CLK_ROOT = 108,
|
||||
GPT3_CLK_ROOT = 109,
|
||||
GPT4_CLK_ROOT = 110,
|
||||
GPT5_CLK_ROOT = 111,
|
||||
GPT6_CLK_ROOT = 112,
|
||||
TRACE_CLK_ROOT = 113,
|
||||
WDOG_CLK_ROOT = 114,
|
||||
WRCLK_CLK_ROOT = 115,
|
||||
IPP_DO_CLKO1 = 116,
|
||||
IPP_DO_CLKO2 = 117,
|
||||
MIPI_DSI_CORE_CLK_ROOT = 118,
|
||||
MIPI_DSI_PHY_REF_CLK_ROOT = 119,
|
||||
MIPI_DSI_DBI_CLK_ROOT = 120,
|
||||
USDHC3_CLK_ROOT = 121,
|
||||
MIPI_CSI1_CORE_CLK_ROOT = 122,
|
||||
MIPI_CSI1_PHY_REF_CLK_ROOT = 123,
|
||||
MIPI_CSI1_ESC_CLK_ROOT = 124,
|
||||
MIPI_CSI2_CORE_CLK_ROOT = 125,
|
||||
MIPI_CSI2_PHY_REF_CLK_ROOT = 126,
|
||||
MIPI_CSI2_ESC_CLK_ROOT = 127,
|
||||
PCIE2_CTRL_CLK_ROOT = 128,
|
||||
PCIE2_PHY_CLK_ROOT = 129,
|
||||
PCIE2_AUX_CLK_ROOT = 130,
|
||||
ECSPI3_CLK_ROOT = 131,
|
||||
PDM_CLK_ROOT = 132,
|
||||
VPU_H1_CLK_ROOT = 133,
|
||||
CLK_ROOT_MAX,
|
||||
};
|
||||
|
||||
enum clk_root_src {
|
||||
OSC_24M_CLK,
|
||||
ARM_PLL_CLK,
|
||||
DRAM_PLL1_CLK,
|
||||
VIDEO_PLL2_CLK,
|
||||
VPU_PLL_CLK,
|
||||
GPU_PLL_CLK,
|
||||
SYSTEM_PLL1_800M_CLK,
|
||||
SYSTEM_PLL1_400M_CLK,
|
||||
SYSTEM_PLL1_266M_CLK,
|
||||
SYSTEM_PLL1_200M_CLK,
|
||||
SYSTEM_PLL1_160M_CLK,
|
||||
SYSTEM_PLL1_133M_CLK,
|
||||
SYSTEM_PLL1_100M_CLK,
|
||||
SYSTEM_PLL1_80M_CLK,
|
||||
SYSTEM_PLL1_40M_CLK,
|
||||
SYSTEM_PLL2_1000M_CLK,
|
||||
SYSTEM_PLL2_500M_CLK,
|
||||
SYSTEM_PLL2_333M_CLK,
|
||||
SYSTEM_PLL2_250M_CLK,
|
||||
SYSTEM_PLL2_200M_CLK,
|
||||
SYSTEM_PLL2_166M_CLK,
|
||||
SYSTEM_PLL2_125M_CLK,
|
||||
SYSTEM_PLL2_100M_CLK,
|
||||
SYSTEM_PLL2_50M_CLK,
|
||||
SYSTEM_PLL3_CLK,
|
||||
AUDIO_PLL1_CLK,
|
||||
AUDIO_PLL2_CLK,
|
||||
VIDEO_PLL_CLK,
|
||||
OSC_32K_CLK,
|
||||
EXT_CLK_1,
|
||||
EXT_CLK_2,
|
||||
EXT_CLK_3,
|
||||
EXT_CLK_4,
|
||||
OSC_HDMI_CLK
|
||||
};
|
||||
|
||||
enum clk_ccgr_index {
|
||||
CCGR_DVFS = 0,
|
||||
CCGR_ANAMIX = 1,
|
||||
CCGR_CPU = 2,
|
||||
CCGR_CSU = 3,
|
||||
CCGR_DEBUG = 4,
|
||||
CCGR_DDR1 = 5,
|
||||
CCGR_ECSPI1 = 7,
|
||||
CCGR_ECSPI2 = 8,
|
||||
CCGR_ECSPI3 = 9,
|
||||
CCGR_ENET1 = 10,
|
||||
CCGR_GPIO1 = 11,
|
||||
CCGR_GPIO2 = 12,
|
||||
CCGR_GPIO3 = 13,
|
||||
CCGR_GPIO4 = 14,
|
||||
CCGR_GPIO5 = 15,
|
||||
CCGR_GPT1 = 16,
|
||||
CCGR_GPT2 = 17,
|
||||
CCGR_GPT3 = 18,
|
||||
CCGR_GPT4 = 19,
|
||||
CCGR_GPT5 = 20,
|
||||
CCGR_GPT6 = 21,
|
||||
CCGR_HS = 22,
|
||||
CCGR_I2C1 = 23,
|
||||
CCGR_I2C2 = 24,
|
||||
CCGR_I2C3 = 25,
|
||||
CCGR_I2C4 = 26,
|
||||
CCGR_IOMUX = 27,
|
||||
CCGR_IOMUX1 = 28,
|
||||
CCGR_IOMUX2 = 29,
|
||||
CCGR_IOMUX3 = 30,
|
||||
CCGR_IOMUX4 = 31,
|
||||
CCGR_SNVSMIX_IPG_CLK = 32,
|
||||
CCGR_MU = 33,
|
||||
CCGR_OCOTP = 34,
|
||||
CCGR_OCRAM = 35,
|
||||
CCGR_OCRAM_S = 36,
|
||||
CCGR_PCIE = 37,
|
||||
CCGR_PERFMON1 = 38,
|
||||
CCGR_PERFMON2 = 39,
|
||||
CCGR_PWM1 = 40,
|
||||
CCGR_PWM2 = 41,
|
||||
CCGR_PWM3 = 42,
|
||||
CCGR_PWM4 = 43,
|
||||
CCGR_QOS = 44,
|
||||
CCGR_QOS_DISPMIX = 45,
|
||||
CCGR_QOS_ETHENET = 46,
|
||||
CCGR_QSPI = 47,
|
||||
CCGR_RAWNAND = 48,
|
||||
CCGR_RDC = 49,
|
||||
CCGR_ROM = 50,
|
||||
CCGR_SAI1 = 51,
|
||||
CCGR_SAI2 = 52,
|
||||
CCGR_SAI3 = 53,
|
||||
CCGR_SAI4 = 54,
|
||||
CCGR_SAI5 = 55,
|
||||
CCGR_SAI6 = 56,
|
||||
CCGR_SCTR = 57,
|
||||
CCGR_SDMA1 = 58,
|
||||
CCGR_SDMA2 = 59,
|
||||
CCGR_SEC_DEBUG = 60,
|
||||
CCGR_SEMA1 = 61,
|
||||
CCGR_SEMA2 = 62,
|
||||
CCGR_SIM_DISPLAY = 63,
|
||||
CCGR_SIM_ENET = 64,
|
||||
CCGR_SIM_M = 65,
|
||||
CCGR_SIM_MAIN = 66,
|
||||
CCGR_SIM_S = 67,
|
||||
CCGR_SIM_WAKEUP = 68,
|
||||
CCGR_SIM_HSIO = 69,
|
||||
CCGR_SIM_VPU = 70,
|
||||
CCGR_SNVS = 71,
|
||||
CCGR_TRACE = 72,
|
||||
CCGR_UART1 = 73,
|
||||
CCGR_UART2 = 74,
|
||||
CCGR_UART3 = 75,
|
||||
CCGR_UART4 = 76,
|
||||
CCGR_USB_MSCALE_PL301 = 77,
|
||||
CCGR_GPU3D = 79,
|
||||
CCGR_USDHC1 = 81,
|
||||
CCGR_USDHC2 = 82,
|
||||
CCGR_WDOG1 = 83,
|
||||
CCGR_WDOG2 = 84,
|
||||
CCGR_WDOG3 = 85,
|
||||
CCGR_VPUG1 = 86,
|
||||
CCGR_GPU_BUS = 87,
|
||||
CCGR_VPUH1 = 89,
|
||||
CCGR_VPUG2 = 90,
|
||||
CCGR_PDM = 91,
|
||||
CCGR_GIC = 92,
|
||||
CCGR_DISPMIX = 93,
|
||||
CCGR_USDHC3 = 94,
|
||||
CCGR_SDMA3 = 95,
|
||||
CCGR_XTAL = 96,
|
||||
CCGR_PLL = 97,
|
||||
CCGR_TEMP_SENSOR = 98,
|
||||
CCGR_VPUMIX_BUS = 99,
|
||||
CCGR_GPU2D = 102,
|
||||
CCGR_MAX
|
||||
};
|
||||
|
||||
enum clk_src_index {
|
||||
CLK_SRC_CKIL_SYNC_REQ = 0,
|
||||
CLK_SRC_ARM_PLL_EN = 1,
|
||||
CLK_SRC_GPU_PLL_EN = 2,
|
||||
CLK_SRC_VPU_PLL_EN = 3,
|
||||
CLK_SRC_DRAM_PLL_EN = 4,
|
||||
CLK_SRC_SYSTEM_PLL1_EN = 5,
|
||||
CLK_SRC_SYSTEM_PLL2_EN = 6,
|
||||
CLK_SRC_SYSTEM_PLL3_EN = 7,
|
||||
CLK_SRC_AUDIO_PLL1_EN = 8,
|
||||
CLK_SRC_AUDIO_PLL2_EN = 9,
|
||||
CLK_SRC_VIDEO_PLL1_EN = 10,
|
||||
CLK_SRC_RESERVED = 11,
|
||||
CLK_SRC_ARM_PLL = 12,
|
||||
CLK_SRC_GPU_PLL = 13,
|
||||
CLK_SRC_VPU_PLL = 14,
|
||||
CLK_SRC_DRAM_PLL = 15,
|
||||
CLK_SRC_SYSTEM_PLL1_800M = 16,
|
||||
CLK_SRC_SYSTEM_PLL1_400M = 17,
|
||||
CLK_SRC_SYSTEM_PLL1_266M = 18,
|
||||
CLK_SRC_SYSTEM_PLL1_200M = 19,
|
||||
CLK_SRC_SYSTEM_PLL1_160M = 20,
|
||||
CLK_SRC_SYSTEM_PLL1_133M = 21,
|
||||
CLK_SRC_SYSTEM_PLL1_100M = 22,
|
||||
CLK_SRC_SYSTEM_PLL1_80M = 23,
|
||||
CLK_SRC_SYSTEM_PLL1_40M = 24,
|
||||
CLK_SRC_SYSTEM_PLL2_1000M = 25,
|
||||
CLK_SRC_SYSTEM_PLL2_500M = 26,
|
||||
CLK_SRC_SYSTEM_PLL2_333M = 27,
|
||||
CLK_SRC_SYSTEM_PLL2_250M = 28,
|
||||
CLK_SRC_SYSTEM_PLL2_200M = 29,
|
||||
CLK_SRC_SYSTEM_PLL2_166M = 30,
|
||||
CLK_SRC_SYSTEM_PLL2_125M = 31,
|
||||
CLK_SRC_SYSTEM_PLL2_100M = 32,
|
||||
CLK_SRC_SYSTEM_PLL2_50M = 33,
|
||||
CLK_SRC_SYSTEM_PLL3 = 34,
|
||||
CLK_SRC_AUDIO_PLL1 = 35,
|
||||
CLK_SRC_AUDIO_PLL2 = 36,
|
||||
CLK_SRC_VIDEO_PLL1 = 37,
|
||||
};
|
||||
|
||||
#define INTPLL_LOCK_MASK BIT(31)
|
||||
#define INTPLL_LOCK_SEL_MASK BIT(29)
|
||||
#define INTPLL_EXT_BYPASS_MASK BIT(28)
|
||||
#define INTPLL_DIV20_CLKE_MASK BIT(27)
|
||||
#define INTPLL_DIV20_CLKE_OVERRIDE_MASK BIT(26)
|
||||
#define INTPLL_DIV10_CLKE_MASK BIT(25)
|
||||
#define INTPLL_DIV10_CLKE_OVERRIDE_MASK BIT(24)
|
||||
#define INTPLL_DIV8_CLKE_MASK BIT(23)
|
||||
#define INTPLL_DIV8_CLKE_OVERRIDE_MASK BIT(22)
|
||||
#define INTPLL_DIV6_CLKE_MASK BIT(21)
|
||||
#define INTPLL_DIV6_CLKE_OVERRIDE_MASK BIT(20)
|
||||
#define INTPLL_DIV5_CLKE_MASK BIT(19)
|
||||
#define INTPLL_DIV5_CLKE_OVERRIDE_MASK BIT(18)
|
||||
#define INTPLL_DIV4_CLKE_MASK BIT(17)
|
||||
#define INTPLL_DIV4_CLKE_OVERRIDE_MASK BIT(16)
|
||||
#define INTPLL_DIV3_CLKE_MASK BIT(15)
|
||||
#define INTPLL_DIV3_CLKE_OVERRIDE_MASK BIT(14)
|
||||
#define INTPLL_DIV2_CLKE_MASK BIT(13)
|
||||
#define INTPLL_DIV2_CLKE_OVERRIDE_MASK BIT(12)
|
||||
#define INTPLL_CLKE_MASK BIT(11)
|
||||
#define INTPLL_CLKE_OVERRIDE_MASK BIT(10)
|
||||
#define INTPLL_RST_MASK BIT(9)
|
||||
#define INTPLL_RST_OVERRIDE_MASK BIT(8)
|
||||
#define INTPLL_BYPASS_MASK BIT(4)
|
||||
#define INTPLL_PAD_CLK_SEL_MASK GENMASK(3, 2)
|
||||
#define INTPLL_REF_CLK_SEL_MASK GENMASK(1, 0)
|
||||
|
||||
#define INTPLL_MAIN_DIV_MASK GENMASK(21, 12)
|
||||
#define INTPLL_MAIN_DIV_VAL(n) ((n << 12) & GENMASK(21, 12))
|
||||
#define INTPLL_MAIN_DIV_SHIFT 12
|
||||
#define INTPLL_PRE_DIV_MASK GENMASK(9, 4)
|
||||
#define INTPLL_PRE_DIV_VAL(n) ((n << 4) & GENMASK(9, 4))
|
||||
#define INTPLL_PRE_DIV_SHIFT 4
|
||||
#define INTPLL_POST_DIV_MASK GENMASK(2, 0)
|
||||
#define INTPLL_POST_DIV_VAL(n) ((n << 0) & GENMASK(2, 0))
|
||||
#define INTPLL_POST_DIV_SHIFT 0
|
||||
|
||||
#define INTPLL_LOCK_CON_DLY_MASK GENMASK(5, 4)
|
||||
#define INTPLL_LOCK_CON_DLY_SHIFT 4
|
||||
#define INTPLL_LOCK_CON_OUT_MASK GENMASK(3, 2)
|
||||
#define INTPLL_LOCK_CON_OUT_SHIFT 2
|
||||
#define INTPLL_LOCK_CON_IN_MASK GENMASK(1, 0)
|
||||
#define INTPLL_LOCK_CON_IN_SHIFT 0
|
||||
|
||||
#define INTPLL_LRD_EN_MASK BIT(21)
|
||||
#define INTPLL_FOUT_MASK BIT(20)
|
||||
#define INTPLL_AFC_SEL_MASK BIT(19)
|
||||
#define INTPLL_PBIAS_CTRL_MASK BIT(18)
|
||||
#define INTPLL_PBIAS_CTRL_EN_MASK BIT(17)
|
||||
#define INTPLL_AFCINIT_SEL_MASK BIT(16)
|
||||
#define INTPLL_FSEL_MASK BIT(14)
|
||||
#define INTPLL_FEED_EN_MASK BIT(13)
|
||||
#define INTPLL_EXTAFC_MASK GENMASK(7, 3)
|
||||
#define INTPLL_AFC_EN_MASK BIT(2)
|
||||
#define INTPLL_ICP_MASK GENMASK(1, 0)
|
||||
|
||||
#endif
|
424
arch/arm/include/asm/arch-imx8m/clock_imx8mq.h
Normal file
424
arch/arm/include/asm/arch-imx8m/clock_imx8mq.h
Normal file
|
@ -0,0 +1,424 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2017 NXP
|
||||
*
|
||||
* Peng Fan <peng.fan@nxp.com>
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARCH_IMX8M_CLOCK_H
|
||||
#define _ASM_ARCH_IMX8M_CLOCK_H
|
||||
|
||||
enum pll_clocks {
|
||||
ANATOP_ARM_PLL,
|
||||
ANATOP_GPU_PLL,
|
||||
ANATOP_SYSTEM_PLL1,
|
||||
ANATOP_SYSTEM_PLL2,
|
||||
ANATOP_SYSTEM_PLL3,
|
||||
ANATOP_AUDIO_PLL1,
|
||||
ANATOP_AUDIO_PLL2,
|
||||
ANATOP_VIDEO_PLL1,
|
||||
ANATOP_VIDEO_PLL2,
|
||||
ANATOP_DRAM_PLL,
|
||||
};
|
||||
|
||||
enum clk_root_index {
|
||||
ARM_A53_CLK_ROOT = 0,
|
||||
ARM_M4_CLK_ROOT = 1,
|
||||
VPU_A53_CLK_ROOT = 2,
|
||||
GPU_CORE_CLK_ROOT = 3,
|
||||
GPU_SHADER_CLK_ROOT = 4,
|
||||
MAIN_AXI_CLK_ROOT = 16,
|
||||
ENET_AXI_CLK_ROOT = 17,
|
||||
NAND_USDHC_BUS_CLK_ROOT = 18,
|
||||
VPU_BUS_CLK_ROOT = 19,
|
||||
DISPLAY_AXI_CLK_ROOT = 20,
|
||||
DISPLAY_APB_CLK_ROOT = 21,
|
||||
DISPLAY_RTRM_CLK_ROOT = 22,
|
||||
USB_BUS_CLK_ROOT = 23,
|
||||
GPU_AXI_CLK_ROOT = 24,
|
||||
GPU_AHB_CLK_ROOT = 25,
|
||||
NOC_CLK_ROOT = 26,
|
||||
NOC_APB_CLK_ROOT = 27,
|
||||
AHB_CLK_ROOT = 32,
|
||||
IPG_CLK_ROOT = 33,
|
||||
AUDIO_AHB_CLK_ROOT = 34,
|
||||
MIPI_DSI_ESC_RX_CLK_ROOT = 36,
|
||||
DRAM_SEL_CFG = 48,
|
||||
CORE_SEL_CFG = 49,
|
||||
DRAM_ALT_CLK_ROOT = 64,
|
||||
DRAM_APB_CLK_ROOT = 65,
|
||||
VPU_G1_CLK_ROOT = 66,
|
||||
VPU_G2_CLK_ROOT = 67,
|
||||
DISPLAY_DTRC_CLK_ROOT = 68,
|
||||
DISPLAY_DC8000_CLK_ROOT = 69,
|
||||
PCIE1_CTRL_CLK_ROOT = 70,
|
||||
PCIE1_PHY_CLK_ROOT = 71,
|
||||
PCIE1_AUX_CLK_ROOT = 72,
|
||||
DC_PIXEL_CLK_ROOT = 73,
|
||||
LCDIF_PIXEL_CLK_ROOT = 74,
|
||||
SAI1_CLK_ROOT = 75,
|
||||
SAI2_CLK_ROOT = 76,
|
||||
SAI3_CLK_ROOT = 77,
|
||||
SAI4_CLK_ROOT = 78,
|
||||
SAI5_CLK_ROOT = 79,
|
||||
SAI6_CLK_ROOT = 80,
|
||||
SPDIF1_CLK_ROOT = 81,
|
||||
SPDIF2_CLK_ROOT = 82,
|
||||
ENET_REF_CLK_ROOT = 83,
|
||||
ENET_TIMER_CLK_ROOT = 84,
|
||||
ENET_PHY_REF_CLK_ROOT = 85,
|
||||
NAND_CLK_ROOT = 86,
|
||||
QSPI_CLK_ROOT = 87,
|
||||
USDHC1_CLK_ROOT = 88,
|
||||
USDHC2_CLK_ROOT = 89,
|
||||
I2C1_CLK_ROOT = 90,
|
||||
I2C2_CLK_ROOT = 91,
|
||||
I2C3_CLK_ROOT = 92,
|
||||
I2C4_CLK_ROOT = 93,
|
||||
UART1_CLK_ROOT = 94,
|
||||
UART2_CLK_ROOT = 95,
|
||||
UART3_CLK_ROOT = 96,
|
||||
UART4_CLK_ROOT = 97,
|
||||
USB_CORE_REF_CLK_ROOT = 98,
|
||||
USB_PHY_REF_CLK_ROOT = 99,
|
||||
GIC_CLK_ROOT = 100,
|
||||
ECSPI1_CLK_ROOT = 101,
|
||||
ECSPI2_CLK_ROOT = 102,
|
||||
PWM1_CLK_ROOT = 103,
|
||||
PWM2_CLK_ROOT = 104,
|
||||
PWM3_CLK_ROOT = 105,
|
||||
PWM4_CLK_ROOT = 106,
|
||||
GPT1_CLK_ROOT = 107,
|
||||
GPT2_CLK_ROOT = 108,
|
||||
GPT3_CLK_ROOT = 109,
|
||||
GPT4_CLK_ROOT = 110,
|
||||
GPT5_CLK_ROOT = 111,
|
||||
GPT6_CLK_ROOT = 112,
|
||||
TRACE_CLK_ROOT = 113,
|
||||
WDOG_CLK_ROOT = 114,
|
||||
WRCLK_CLK_ROOT = 115,
|
||||
IPP_DO_CLKO1 = 116,
|
||||
IPP_DO_CLKO2 = 117,
|
||||
MIPI_DSI_CORE_CLK_ROOT = 118,
|
||||
MIPI_DSI_PHY_REF_CLK_ROOT = 119,
|
||||
MIPI_DSI_DBI_CLK_ROOT = 120,
|
||||
OLD_MIPI_DSI_ESC_CLK_ROOT = 121,
|
||||
MIPI_CSI1_CORE_CLK_ROOT = 122,
|
||||
MIPI_CSI1_PHY_REF_CLK_ROOT = 123,
|
||||
MIPI_CSI1_ESC_CLK_ROOT = 124,
|
||||
MIPI_CSI2_CORE_CLK_ROOT = 125,
|
||||
MIPI_CSI2_PHY_REF_CLK_ROOT = 126,
|
||||
MIPI_CSI2_ESC_CLK_ROOT = 127,
|
||||
PCIE2_CTRL_CLK_ROOT = 128,
|
||||
PCIE2_PHY_CLK_ROOT = 129,
|
||||
PCIE2_AUX_CLK_ROOT = 130,
|
||||
ECSPI3_CLK_ROOT = 131,
|
||||
OLD_MIPI_DSI_ESC_RX_ROOT = 132,
|
||||
DISPLAY_HDMI_CLK_ROOT = 133,
|
||||
CLK_ROOT_MAX,
|
||||
};
|
||||
|
||||
enum clk_root_src {
|
||||
OSC_25M_CLK,
|
||||
ARM_PLL_CLK,
|
||||
DRAM_PLL1_CLK,
|
||||
VIDEO_PLL2_CLK,
|
||||
VPU_PLL_CLK,
|
||||
GPU_PLL_CLK,
|
||||
SYSTEM_PLL1_800M_CLK,
|
||||
SYSTEM_PLL1_400M_CLK,
|
||||
SYSTEM_PLL1_266M_CLK,
|
||||
SYSTEM_PLL1_200M_CLK,
|
||||
SYSTEM_PLL1_160M_CLK,
|
||||
SYSTEM_PLL1_133M_CLK,
|
||||
SYSTEM_PLL1_100M_CLK,
|
||||
SYSTEM_PLL1_80M_CLK,
|
||||
SYSTEM_PLL1_40M_CLK,
|
||||
SYSTEM_PLL2_1000M_CLK,
|
||||
SYSTEM_PLL2_500M_CLK,
|
||||
SYSTEM_PLL2_333M_CLK,
|
||||
SYSTEM_PLL2_250M_CLK,
|
||||
SYSTEM_PLL2_200M_CLK,
|
||||
SYSTEM_PLL2_166M_CLK,
|
||||
SYSTEM_PLL2_125M_CLK,
|
||||
SYSTEM_PLL2_100M_CLK,
|
||||
SYSTEM_PLL2_50M_CLK,
|
||||
SYSTEM_PLL3_CLK,
|
||||
AUDIO_PLL1_CLK,
|
||||
AUDIO_PLL2_CLK,
|
||||
VIDEO_PLL_CLK,
|
||||
OSC_32K_CLK,
|
||||
EXT_CLK_1,
|
||||
EXT_CLK_2,
|
||||
EXT_CLK_3,
|
||||
EXT_CLK_4,
|
||||
OSC_27M_CLK,
|
||||
};
|
||||
|
||||
/* CCGR index */
|
||||
enum clk_ccgr_index {
|
||||
CCGR_DVFS = 0,
|
||||
CCGR_ANAMIX = 1,
|
||||
CCGR_CPU = 2,
|
||||
CCGR_CSU = 4,
|
||||
CCGR_DRAM1 = 5,
|
||||
CCGR_DRAM2_OBSOLETE = 6,
|
||||
CCGR_ECSPI1 = 7,
|
||||
CCGR_ECSPI2 = 8,
|
||||
CCGR_ECSPI3 = 9,
|
||||
CCGR_ENET1 = 10,
|
||||
CCGR_GPIO1 = 11,
|
||||
CCGR_GPIO2 = 12,
|
||||
CCGR_GPIO3 = 13,
|
||||
CCGR_GPIO4 = 14,
|
||||
CCGR_GPIO5 = 15,
|
||||
CCGR_GPT1 = 16,
|
||||
CCGR_GPT2 = 17,
|
||||
CCGR_GPT3 = 18,
|
||||
CCGR_GPT4 = 19,
|
||||
CCGR_GPT5 = 20,
|
||||
CCGR_GPT6 = 21,
|
||||
CCGR_HS = 22,
|
||||
CCGR_I2C1 = 23,
|
||||
CCGR_I2C2 = 24,
|
||||
CCGR_I2C3 = 25,
|
||||
CCGR_I2C4 = 26,
|
||||
CCGR_IOMUX = 27,
|
||||
CCGR_IOMUX1 = 28,
|
||||
CCGR_IOMUX2 = 29,
|
||||
CCGR_IOMUX3 = 30,
|
||||
CCGR_IOMUX4 = 31,
|
||||
CCGR_M4 = 32,
|
||||
CCGR_MU = 33,
|
||||
CCGR_OCOTP = 34,
|
||||
CCGR_OCRAM = 35,
|
||||
CCGR_OCRAM_S = 36,
|
||||
CCGR_PCIE = 37,
|
||||
CCGR_PERFMON1 = 38,
|
||||
CCGR_PERFMON2 = 39,
|
||||
CCGR_PWM1 = 40,
|
||||
CCGR_PWM2 = 41,
|
||||
CCGR_PWM3 = 42,
|
||||
CCGR_PWM4 = 43,
|
||||
CCGR_QOS = 44,
|
||||
CCGR_DISMIX = 45,
|
||||
CCGR_MEGAMIX = 46,
|
||||
CCGR_QSPI = 47,
|
||||
CCGR_RAWNAND = 48,
|
||||
CCGR_RDC = 49,
|
||||
CCGR_ROM = 50,
|
||||
CCGR_SAI1 = 51,
|
||||
CCGR_SAI2 = 52,
|
||||
CCGR_SAI3 = 53,
|
||||
CCGR_SAI4 = 54,
|
||||
CCGR_SAI5 = 55,
|
||||
CCGR_SAI6 = 56,
|
||||
CCGR_SCTR = 57,
|
||||
CCGR_SDMA1 = 58,
|
||||
CCGR_SDMA2 = 59,
|
||||
CCGR_SEC_DEBUG = 60,
|
||||
CCGR_SEMA1 = 61,
|
||||
CCGR_SEMA2 = 62,
|
||||
CCGR_SIM_DISPLAY = 63,
|
||||
CCGR_SIM_ENET = 64,
|
||||
CCGR_SIM_M = 65,
|
||||
CCGR_SIM_MAIN = 66,
|
||||
CCGR_SIM_S = 67,
|
||||
CCGR_SIM_WAKEUP = 68,
|
||||
CCGR_SIM_USB = 69,
|
||||
CCGR_SIM_VPU = 70,
|
||||
CCGR_SNVS = 71,
|
||||
CCGR_TRACE = 72,
|
||||
CCGR_UART1 = 73,
|
||||
CCGR_UART2 = 74,
|
||||
CCGR_UART3 = 75,
|
||||
CCGR_UART4 = 76,
|
||||
CCGR_USB_CTRL1 = 77,
|
||||
CCGR_USB_CTRL2 = 78,
|
||||
CCGR_USB_PHY1 = 79,
|
||||
CCGR_USB_PHY2 = 80,
|
||||
CCGR_USDHC1 = 81,
|
||||
CCGR_USDHC2 = 82,
|
||||
CCGR_WDOG1 = 83,
|
||||
CCGR_WDOG2 = 84,
|
||||
CCGR_WDOG3 = 85,
|
||||
CCGR_VA53 = 86,
|
||||
CCGR_GPU = 87,
|
||||
CCGR_HEVC = 88,
|
||||
CCGR_AVC = 89,
|
||||
CCGR_VP9 = 90,
|
||||
CCGR_HEVC_INTER = 91,
|
||||
CCGR_GIC = 92,
|
||||
CCGR_DISPLAY = 93,
|
||||
CCGR_HDMI = 94,
|
||||
CCGR_HDMI_PHY = 95,
|
||||
CCGR_XTAL = 96,
|
||||
CCGR_PLL = 97,
|
||||
CCGR_TSENSOR = 98,
|
||||
CCGR_VPU_DEC = 99,
|
||||
CCGR_PCIE2 = 100,
|
||||
CCGR_MIPI_CSI1 = 101,
|
||||
CCGR_MIPI_CSI2 = 102,
|
||||
CCGR_MAX,
|
||||
};
|
||||
|
||||
/* src index */
|
||||
enum clk_src_index {
|
||||
CLK_SRC_CKIL_SYNC_REQ = 0,
|
||||
CLK_SRC_ARM_PLL_EN = 1,
|
||||
CLK_SRC_GPU_PLL_EN = 2,
|
||||
CLK_SRC_VPU_PLL_EN = 3,
|
||||
CLK_SRC_DRAM_PLL_EN = 4,
|
||||
CLK_SRC_SYSTEM_PLL1_EN = 5,
|
||||
CLK_SRC_SYSTEM_PLL2_EN = 6,
|
||||
CLK_SRC_SYSTEM_PLL3_EN = 7,
|
||||
CLK_SRC_AUDIO_PLL1_EN = 8,
|
||||
CLK_SRC_AUDIO_PLL2_EN = 9,
|
||||
CLK_SRC_VIDEO_PLL1_EN = 10,
|
||||
CLK_SRC_VIDEO_PLL2_EN = 11,
|
||||
CLK_SRC_ARM_PLL = 12,
|
||||
CLK_SRC_GPU_PLL = 13,
|
||||
CLK_SRC_VPU_PLL = 14,
|
||||
CLK_SRC_DRAM_PLL = 15,
|
||||
CLK_SRC_SYSTEM_PLL1_800M = 16,
|
||||
CLK_SRC_SYSTEM_PLL1_400M = 17,
|
||||
CLK_SRC_SYSTEM_PLL1_266M = 18,
|
||||
CLK_SRC_SYSTEM_PLL1_200M = 19,
|
||||
CLK_SRC_SYSTEM_PLL1_160M = 20,
|
||||
CLK_SRC_SYSTEM_PLL1_133M = 21,
|
||||
CLK_SRC_SYSTEM_PLL1_100M = 22,
|
||||
CLK_SRC_SYSTEM_PLL1_80M = 23,
|
||||
CLK_SRC_SYSTEM_PLL1_40M = 24,
|
||||
CLK_SRC_SYSTEM_PLL2_1000M = 25,
|
||||
CLK_SRC_SYSTEM_PLL2_500M = 26,
|
||||
CLK_SRC_SYSTEM_PLL2_333M = 27,
|
||||
CLK_SRC_SYSTEM_PLL2_250M = 28,
|
||||
CLK_SRC_SYSTEM_PLL2_200M = 29,
|
||||
CLK_SRC_SYSTEM_PLL2_166M = 30,
|
||||
CLK_SRC_SYSTEM_PLL2_125M = 31,
|
||||
CLK_SRC_SYSTEM_PLL2_100M = 32,
|
||||
CLK_SRC_SYSTEM_PLL2_50M = 33,
|
||||
CLK_SRC_SYSTEM_PLL3 = 34,
|
||||
CLK_SRC_AUDIO_PLL1 = 35,
|
||||
CLK_SRC_AUDIO_PLL2 = 36,
|
||||
CLK_SRC_VIDEO_PLL1 = 37,
|
||||
CLK_SRC_VIDEO_PLL2 = 38,
|
||||
CLK_SRC_OSC_25M = 39,
|
||||
CLK_SRC_OSC_27M = 40,
|
||||
};
|
||||
|
||||
/* AUDIO PLL1/2 VIDEO PLL1 GPU PLL VPU PLL ARM PLL*/
|
||||
#define FRAC_PLL_LOCK_MASK BIT(31)
|
||||
#define FRAC_PLL_CLKE_MASK BIT(21)
|
||||
#define FRAC_PLL_PD_MASK BIT(19)
|
||||
#define FRAC_PLL_REFCLK_SEL_MASK BIT(16)
|
||||
#define FRAC_PLL_LOCK_SEL_MASK BIT(15)
|
||||
#define FRAC_PLL_BYPASS_MASK BIT(14)
|
||||
#define FRAC_PLL_COUNTCLK_SEL_MASK BIT(13)
|
||||
#define FRAC_PLL_NEWDIV_VAL_MASK BIT(12)
|
||||
#define FRAC_PLL_NEWDIV_ACK_MASK BIT(11)
|
||||
#define FRAC_PLL_REFCLK_DIV_VAL(n) (((n) << 5) & (0x3f << 5))
|
||||
#define FRAC_PLL_REFCLK_DIV_VAL_MASK (0x3f << 5)
|
||||
#define FRAC_PLL_REFCLK_DIV_VAL_SHIFT 5
|
||||
#define FRAC_PLL_OUTPUT_DIV_VAL_MASK 0x1f
|
||||
#define FRAC_PLL_OUTPUT_DIV_VAL(n) ((n) & 0x1f)
|
||||
|
||||
#define FRAC_PLL_REFCLK_SEL_OSC_25M (0 << 16)
|
||||
#define FRAC_PLL_REFCLK_SEL_OSC_27M BIT(16)
|
||||
#define FRAC_PLL_REFCLK_SEL_HDMI_PHY_27M (2 << 16)
|
||||
#define FRAC_PLL_REFCLK_SEL_CLK_PN (3 << 16)
|
||||
|
||||
#define FRAC_PLL_FRAC_DIV_CTL_MASK (0x1ffffff << 7)
|
||||
#define FRAC_PLL_FRAC_DIV_CTL_SHIFT 7
|
||||
#define FRAC_PLL_INT_DIV_CTL_MASK 0x7f
|
||||
#define FRAC_PLL_INT_DIV_CTL_VAL(n) ((n) & 0x7f)
|
||||
|
||||
/* SYS PLL1/2/3 VIDEO PLL2 DRAM PLL */
|
||||
#define SSCG_PLL_LOCK_MASK BIT(31)
|
||||
#define SSCG_PLL_CLKE_MASK BIT(25)
|
||||
#define SSCG_PLL_DIV2_CLKE_MASK BIT(23)
|
||||
#define SSCG_PLL_DIV3_CLKE_MASK BIT(21)
|
||||
#define SSCG_PLL_DIV4_CLKE_MASK BIT(19)
|
||||
#define SSCG_PLL_DIV5_CLKE_MASK BIT(17)
|
||||
#define SSCG_PLL_DIV6_CLKE_MASK BIT(15)
|
||||
#define SSCG_PLL_DIV8_CLKE_MASK BIT(13)
|
||||
#define SSCG_PLL_DIV10_CLKE_MASK BIT(11)
|
||||
#define SSCG_PLL_DIV20_CLKE_MASK BIT(9)
|
||||
#define SSCG_PLL_VIDEO_PLL2_CLKE_MASK BIT(9)
|
||||
#define SSCG_PLL_DRAM_PLL_CLKE_MASK BIT(9)
|
||||
#define SSCG_PLL_PLL3_CLKE_MASK BIT(9)
|
||||
#define SSCG_PLL_PD_MASK BIT(7)
|
||||
#define SSCG_PLL_BYPASS1_MASK BIT(5)
|
||||
#define SSCG_PLL_BYPASS2_MASK BIT(4)
|
||||
#define SSCG_PLL_LOCK_SEL_MASK BIT(3)
|
||||
#define SSCG_PLL_COUNTCLK_SEL_MASK BIT(2)
|
||||
#define SSCG_PLL_REFCLK_SEL_MASK 0x3
|
||||
#define SSCG_PLL_REFCLK_SEL_OSC_25M (0 << 16)
|
||||
#define SSCG_PLL_REFCLK_SEL_OSC_27M BIT(16)
|
||||
#define SSCG_PLL_REFCLK_SEL_HDMI_PHY_27M (2 << 16)
|
||||
#define SSCG_PLL_REFCLK_SEL_CLK_PN (3 << 16)
|
||||
|
||||
#define SSCG_PLL_SSDS_MASK BIT(8)
|
||||
#define SSCG_PLL_SSMD_MASK (0x7 << 5)
|
||||
#define SSCG_PLL_SSMF_MASK (0xf << 1)
|
||||
#define SSCG_PLL_SSE_MASK 0x1
|
||||
|
||||
#define SSCG_PLL_REF_DIVR1_MASK (0x7 << 25)
|
||||
#define SSCG_PLL_REF_DIVR1_SHIFT 25
|
||||
#define SSCG_PLL_REF_DIVR1_VAL(n) (((n) << 25) & SSCG_PLL_REF_DIVR1_MASK)
|
||||
#define SSCG_PLL_REF_DIVR2_MASK (0x3f << 19)
|
||||
#define SSCG_PLL_REF_DIVR2_SHIFT 19
|
||||
#define SSCG_PLL_REF_DIVR2_VAL(n) (((n) << 19) & SSCG_PLL_REF_DIVR2_MASK)
|
||||
#define SSCG_PLL_FEEDBACK_DIV_F1_MASK (0x3f << 13)
|
||||
#define SSCG_PLL_FEEDBACK_DIV_F1_SHIFT 13
|
||||
#define SSCG_PLL_FEEDBACK_DIV_F1_VAL(n) (((n) << 13) & \
|
||||
SSCG_PLL_FEEDBACK_DIV_F1_MASK)
|
||||
#define SSCG_PLL_FEEDBACK_DIV_F2_MASK (0x3f << 7)
|
||||
#define SSCG_PLL_FEEDBACK_DIV_F2_SHIFT 7
|
||||
#define SSCG_PLL_FEEDBACK_DIV_F2_VAL(n) (((n) << 7) & \
|
||||
SSCG_PLL_FEEDBACK_DIV_F2_MASK)
|
||||
#define SSCG_PLL_OUTPUT_DIV_VAL_MASK (0x3f << 1)
|
||||
#define SSCG_PLL_OUTPUT_DIV_VAL_SHIFT 1
|
||||
#define SSCG_PLL_OUTPUT_DIV_VAL(n) (((n) << 1) & \
|
||||
SSCG_PLL_OUTPUT_DIV_VAL_MASK)
|
||||
#define SSCG_PLL_FILTER_RANGE_MASK 0x1
|
||||
|
||||
#define HW_DIGPROG_MAJOR_UPPER_MASK (0xff << 16)
|
||||
#define HW_DIGPROG_MAJOR_LOWER_MASK (0xff << 8)
|
||||
#define HW_DIGPROG_MINOR_MASK 0xff
|
||||
|
||||
#define HW_OSC_27M_CLKE_MASK BIT(4)
|
||||
#define HW_OSC_25M_CLKE_MASK BIT(2)
|
||||
#define HW_OSC_32K_SEL_MASK 0x1
|
||||
#define HW_OSC_32K_SEL_RTC 0x1
|
||||
#define HW_OSC_32K_SEL_25M_DIV800 0x0
|
||||
|
||||
#define HW_FRAC_ARM_PLL_DIV_MASK (0x7 << 20)
|
||||
#define HW_FRAC_ARM_PLL_DIV_SHIFT 20
|
||||
#define HW_FRAC_VPU_PLL_DIV_MASK (0x7 << 16)
|
||||
#define HW_FRAC_VPU_PLL_DIV_SHIFT 16
|
||||
#define HW_FRAC_GPU_PLL_DIV_MASK (0x7 << 12)
|
||||
#define HW_FRAC_GPU_PLL_DIV_SHIFT 12
|
||||
#define HW_FRAC_VIDEO_PLL1_DIV_MASK (0x7 << 10)
|
||||
#define HW_FRAC_VIDEO_PLL1_DIV_SHIFT 10
|
||||
#define HW_FRAC_AUDIO_PLL2_DIV_MASK (0x7 << 4)
|
||||
#define HW_FRAC_AUDIO_PLL2_DIV_SHIFT 4
|
||||
#define HW_FRAC_AUDIO_PLL1_DIV_MASK 0x7
|
||||
#define HW_FRAC_AUDIO_PLL1_DIV_SHIFT 0
|
||||
|
||||
#define HW_SSCG_VIDEO_PLL2_DIV_MASK (0x7 << 16)
|
||||
#define HW_SSCG_VIDEO_PLL2_DIV_SHIFT 16
|
||||
#define HW_SSCG_DRAM_PLL_DIV_MASK (0x7 << 14)
|
||||
#define HW_SSCG_DRAM_PLL_DIV_SHIFT 14
|
||||
#define HW_SSCG_SYSTEM_PLL3_DIV_MASK (0x7 << 8)
|
||||
#define HW_SSCG_SYSTEM_PLL3_DIV_SHIFT 8
|
||||
#define HW_SSCG_SYSTEM_PLL2_DIV_MASK (0x7 << 4)
|
||||
#define HW_SSCG_SYSTEM_PLL2_DIV_SHIFT 4
|
||||
#define HW_SSCG_SYSTEM_PLL1_DIV_MASK 0x7
|
||||
#define HW_SSCG_SYSTEM_PLL1_DIV_SHIFT 0
|
||||
|
||||
enum frac_pll_out_val {
|
||||
FRAC_PLL_OUT_1000M,
|
||||
FRAC_PLL_OUT_1600M,
|
||||
};
|
||||
#endif
|
|
@ -10,117 +10,49 @@
|
|||
|
||||
#include <asm/mach-imx/regs-lcdif.h>
|
||||
|
||||
#define ROM_VERSION_A0 0x800
|
||||
#define ROM_VERSION_B0 0x83C
|
||||
#define ROM_VERSION_A0 IS_ENABLED(CONFIG_IMX8MQ) ? 0x800 : 0x800
|
||||
#define ROM_VERSION_B0 IS_ENABLED(CONFIG_IMX8MQ) ? 0x83C : 0x800
|
||||
|
||||
#define M4_BOOTROM_BASE_ADDR 0x007E0000
|
||||
#define M4_BOOTROM_BASE_ADDR 0x007E0000
|
||||
|
||||
#define SAI1_BASE_ADDR 0x30010000
|
||||
#define SAI6_BASE_ADDR 0x30030000
|
||||
#define SAI5_BASE_ADDR 0x30040000
|
||||
#define SAI4_BASE_ADDR 0x30050000
|
||||
#define SPBA2_BASE_ADDR 0x300F0000
|
||||
#define AIPS1_BASE_ADDR 0x301F0000
|
||||
#define GPIO1_BASE_ADDR 0X30200000
|
||||
#define GPIO2_BASE_ADDR 0x30210000
|
||||
#define GPIO3_BASE_ADDR 0x30220000
|
||||
#define GPIO4_BASE_ADDR 0x30230000
|
||||
#define GPIO5_BASE_ADDR 0x30240000
|
||||
#define ANA_TSENSOR_BASE_ADDR 0x30260000
|
||||
#define ANA_OSC_BASE_ADDR 0x30270000
|
||||
#define WDOG1_BASE_ADDR 0x30280000
|
||||
#define WDOG2_BASE_ADDR 0x30290000
|
||||
#define WDOG3_BASE_ADDR 0x302A0000
|
||||
#define SDMA2_BASE_ADDR 0x302C0000
|
||||
#define GPT1_BASE_ADDR 0x302D0000
|
||||
#define GPT2_BASE_ADDR 0x302E0000
|
||||
#define GPT3_BASE_ADDR 0x302F0000
|
||||
#define ROMCP_BASE_ADDR 0x30310000
|
||||
#define LCDIF_BASE_ADDR 0x30320000
|
||||
#define IOMUXC_BASE_ADDR 0x30330000
|
||||
#define IOMUXC_GPR_BASE_ADDR 0x30340000
|
||||
#define OCOTP_BASE_ADDR 0x30350000
|
||||
#define ANATOP_BASE_ADDR 0x30360000
|
||||
#define SNVS_HP_BASE_ADDR 0x30370000
|
||||
#define CCM_BASE_ADDR 0x30380000
|
||||
#define SRC_BASE_ADDR 0x30390000
|
||||
#define GPC_BASE_ADDR 0x303A0000
|
||||
#define SEMAPHORE1_BASE_ADDR 0x303B0000
|
||||
#define SEMAPHORE2_BASE_ADDR 0x303C0000
|
||||
#define RDC_BASE_ADDR 0x303D0000
|
||||
#define CSU_BASE_ADDR 0x303E0000
|
||||
|
||||
#define AIPS2_BASE_ADDR 0x305F0000
|
||||
#define PWM1_BASE_ADDR 0x30660000
|
||||
#define PWM2_BASE_ADDR 0x30670000
|
||||
#define PWM3_BASE_ADDR 0x30680000
|
||||
#define PWM4_BASE_ADDR 0x30690000
|
||||
#define SYSCNT_RD_BASE_ADDR 0x306A0000
|
||||
#define SYSCNT_CMP_BASE_ADDR 0x306B0000
|
||||
#define SYSCNT_CTRL_BASE_ADDR 0x306C0000
|
||||
#define GPT6_BASE_ADDR 0x306E0000
|
||||
#define GPT5_BASE_ADDR 0x306F0000
|
||||
#define GPT4_BASE_ADDR 0x30700000
|
||||
#define PERFMON1_BASE_ADDR 0x307C0000
|
||||
#define PERFMON2_BASE_ADDR 0x307D0000
|
||||
#define QOSC_BASE_ADDR 0x307F0000
|
||||
|
||||
#define SPDIF1_BASE_ADDR 0x30810000
|
||||
#define ECSPI1_BASE_ADDR 0x30820000
|
||||
#define ECSPI2_BASE_ADDR 0x30830000
|
||||
#define ECSPI3_BASE_ADDR 0x30840000
|
||||
#define UART1_BASE_ADDR 0x30860000
|
||||
#define UART3_BASE_ADDR 0x30880000
|
||||
#define UART2_BASE_ADDR 0x30890000
|
||||
#define SPDIF2_BASE_ADDR 0x308A0000
|
||||
#define SAI2_BASE_ADDR 0x308B0000
|
||||
#define SAI3_BASE_ADDR 0x308C0000
|
||||
#define SPBA1_BASE_ADDR 0x308F0000
|
||||
#define CAAM_BASE_ADDR 0x30900000
|
||||
#define AIPS3_BASE_ADDR 0x309F0000
|
||||
#define MIPI_PHY_BASE_ADDR 0x30A00000
|
||||
#define MIPI_DSI_BASE_ADDR 0x30A10000
|
||||
#define I2C1_BASE_ADDR 0x30A20000
|
||||
#define I2C2_BASE_ADDR 0x30A30000
|
||||
#define I2C3_BASE_ADDR 0x30A40000
|
||||
#define I2C4_BASE_ADDR 0x30A50000
|
||||
#define UART4_BASE_ADDR 0x30A60000
|
||||
#define MIPI_CSI_BASE_ADDR 0x30A70000
|
||||
#define MIPI_CSI_PHY1_BASE_ADDR 0x30A80000
|
||||
#define CSI1_BASE_ADDR 0x30A90000
|
||||
#define MU_A_BASE_ADDR 0x30AA0000
|
||||
#define MU_B_BASE_ADDR 0x30AB0000
|
||||
#define SEMAPHOR_HS_BASE_ADDR 0x30AC0000
|
||||
#define USDHC1_BASE_ADDR 0x30B40000
|
||||
#define USDHC2_BASE_ADDR 0x30B50000
|
||||
#define MIPI_CS2_BASE_ADDR 0x30B60000
|
||||
#define MIPI_CSI_PHY2_BASE_ADDR 0x30B70000
|
||||
#define CSI2_BASE_ADDR 0x30B80000
|
||||
#define QSPI0_BASE_ADDR 0x30BB0000
|
||||
#define QSPI0_AMBA_BASE 0x08000000
|
||||
#define SDMA1_BASE_ADDR 0x30BD0000
|
||||
#define ENET1_BASE_ADDR 0x30BE0000
|
||||
#ifdef CONFIG_IMX8MM
|
||||
#define USDHC3_BASE_ADDR 0x30B60000
|
||||
#endif
|
||||
|
||||
#define HDMI_CTRL_BASE_ADDR 0x32C00000
|
||||
#define AIPS4_BASE_ADDR 0x32DF0000
|
||||
#define DC1_BASE_ADDR 0x32E00000
|
||||
#define DC2_BASE_ADDR 0x32E10000
|
||||
#define DC3_BASE_ADDR 0x32E20000
|
||||
#define HDMI_SEC_BASE_ADDR 0x32E40000
|
||||
#define TZASC_BASE_ADDR 0x32F80000
|
||||
#define MTR_BASE_ADDR 0x32FB0000
|
||||
#define PLATFORM_CTRL_BASE_ADDR 0x32FE0000
|
||||
|
||||
#define MXS_APBH_BASE 0x33000000
|
||||
#define MXS_GPMI_BASE 0x33002000
|
||||
#define MXS_BCH_BASE 0x33004000
|
||||
|
||||
#define USB1_BASE_ADDR 0x38100000
|
||||
#define USB2_BASE_ADDR 0x38200000
|
||||
#define USB1_PHY_BASE_ADDR 0x381F0000
|
||||
#define USB2_PHY_BASE_ADDR 0x382F0000
|
||||
|
||||
#define MXS_LCDIF_BASE LCDIF_BASE_ADDR
|
||||
#define MXS_LCDIF_BASE IS_ENABLED(CONFIG_IMX8MQ) ? \
|
||||
0x30320000 : 0x32e00000
|
||||
|
||||
#define SRC_IPS_BASE_ADDR 0x30390000
|
||||
#define SRC_DDRC_RCR_ADDR 0x30391000
|
||||
|
@ -205,6 +137,7 @@ struct fuse_bank1_regs {
|
|||
u32 rsvd3[3];
|
||||
};
|
||||
|
||||
#ifdef CONFIG_IMX8MQ
|
||||
struct anamix_pll {
|
||||
u32 audio_pll1_cfg0;
|
||||
u32 audio_pll1_cfg1;
|
||||
|
@ -239,6 +172,60 @@ struct anamix_pll {
|
|||
u32 frac_pllout_div_cfg;
|
||||
u32 sscg_pllout_div_cfg;
|
||||
};
|
||||
#else
|
||||
struct anamix_pll {
|
||||
u32 audio_pll1_gnrl_ctl;
|
||||
u32 audio_pll1_fdiv_ctl0;
|
||||
u32 audio_pll1_fdiv_ctl1;
|
||||
u32 audio_pll1_sscg_ctl;
|
||||
u32 audio_pll1_mnit_ctl;
|
||||
u32 audio_pll2_gnrl_ctl;
|
||||
u32 audio_pll2_fdiv_ctl0;
|
||||
u32 audio_pll2_fdiv_ctl1;
|
||||
u32 audio_pll2_sscg_ctl;
|
||||
u32 audio_pll2_mnit_ctl;
|
||||
u32 video_pll1_gnrl_ctl;
|
||||
u32 video_pll1_fdiv_ctl0;
|
||||
u32 video_pll1_fdiv_ctl1;
|
||||
u32 video_pll1_sscg_ctl;
|
||||
u32 video_pll1_mnit_ctl;
|
||||
u32 reserved[5];
|
||||
u32 dram_pll_gnrl_ctl;
|
||||
u32 dram_pll_fdiv_ctl0;
|
||||
u32 dram_pll_fdiv_ctl1;
|
||||
u32 dram_pll_sscg_ctl;
|
||||
u32 dram_pll_mnit_ctl;
|
||||
u32 gpu_pll_gnrl_ctl;
|
||||
u32 gpu_pll_div_ctl;
|
||||
u32 gpu_pll_locked_ctl1;
|
||||
u32 gpu_pll_mnit_ctl;
|
||||
u32 vpu_pll_gnrl_ctl;
|
||||
u32 vpu_pll_div_ctl;
|
||||
u32 vpu_pll_locked_ctl1;
|
||||
u32 vpu_pll_mnit_ctl;
|
||||
u32 arm_pll_gnrl_ctl;
|
||||
u32 arm_pll_div_ctl;
|
||||
u32 arm_pll_locked_ctl1;
|
||||
u32 arm_pll_mnit_ctl;
|
||||
u32 sys_pll1_gnrl_ctl;
|
||||
u32 sys_pll1_div_ctl;
|
||||
u32 sys_pll1_locked_ctl1;
|
||||
u32 reserved2[24];
|
||||
u32 sys_pll1_mnit_ctl;
|
||||
u32 sys_pll2_gnrl_ctl;
|
||||
u32 sys_pll2_div_ctl;
|
||||
u32 sys_pll2_locked_ctl1;
|
||||
u32 sys_pll2_mnit_ctl;
|
||||
u32 sys_pll3_gnrl_ctl;
|
||||
u32 sys_pll3_div_ctl;
|
||||
u32 sys_pll3_locked_ctl1;
|
||||
u32 sys_pll3_mnit_ctl;
|
||||
u32 anamix_misc_ctl;
|
||||
u32 anamix_clk_mnit_ctl;
|
||||
u32 reserved3[437];
|
||||
u32 digprog;
|
||||
};
|
||||
#endif
|
||||
|
||||
struct fuse_bank9_regs {
|
||||
u32 mac_addr0;
|
||||
|
@ -288,155 +275,6 @@ struct src {
|
|||
u32 ddr2_rcr;
|
||||
};
|
||||
|
||||
struct gpc_reg {
|
||||
u32 lpcr_bsc;
|
||||
u32 lpcr_ad;
|
||||
u32 lpcr_cpu1;
|
||||
u32 lpcr_cpu2;
|
||||
u32 lpcr_cpu3;
|
||||
u32 slpcr;
|
||||
u32 mst_cpu_mapping;
|
||||
u32 mmdc_cpu_mapping;
|
||||
u32 mlpcr;
|
||||
u32 pgc_ack_sel;
|
||||
u32 pgc_ack_sel_m4;
|
||||
u32 gpc_misc;
|
||||
u32 imr1_core0;
|
||||
u32 imr2_core0;
|
||||
u32 imr3_core0;
|
||||
u32 imr4_core0;
|
||||
u32 imr1_core1;
|
||||
u32 imr2_core1;
|
||||
u32 imr3_core1;
|
||||
u32 imr4_core1;
|
||||
u32 imr1_cpu1;
|
||||
u32 imr2_cpu1;
|
||||
u32 imr3_cpu1;
|
||||
u32 imr4_cpu1;
|
||||
u32 imr1_cpu3;
|
||||
u32 imr2_cpu3;
|
||||
u32 imr3_cpu3;
|
||||
u32 imr4_cpu3;
|
||||
u32 isr1_cpu0;
|
||||
u32 isr2_cpu0;
|
||||
u32 isr3_cpu0;
|
||||
u32 isr4_cpu0;
|
||||
u32 isr1_cpu1;
|
||||
u32 isr2_cpu1;
|
||||
u32 isr3_cpu1;
|
||||
u32 isr4_cpu1;
|
||||
u32 isr1_cpu2;
|
||||
u32 isr2_cpu2;
|
||||
u32 isr3_cpu2;
|
||||
u32 isr4_cpu2;
|
||||
u32 isr1_cpu3;
|
||||
u32 isr2_cpu3;
|
||||
u32 isr3_cpu3;
|
||||
u32 isr4_cpu3;
|
||||
u32 slt0_cfg;
|
||||
u32 slt1_cfg;
|
||||
u32 slt2_cfg;
|
||||
u32 slt3_cfg;
|
||||
u32 slt4_cfg;
|
||||
u32 slt5_cfg;
|
||||
u32 slt6_cfg;
|
||||
u32 slt7_cfg;
|
||||
u32 slt8_cfg;
|
||||
u32 slt9_cfg;
|
||||
u32 slt10_cfg;
|
||||
u32 slt11_cfg;
|
||||
u32 slt12_cfg;
|
||||
u32 slt13_cfg;
|
||||
u32 slt14_cfg;
|
||||
u32 pgc_cpu_0_1_mapping;
|
||||
u32 cpu_pgc_up_trg;
|
||||
u32 mix_pgc_up_trg;
|
||||
u32 pu_pgc_up_trg;
|
||||
u32 cpu_pgc_dn_trg;
|
||||
u32 mix_pgc_dn_trg;
|
||||
u32 pu_pgc_dn_trg;
|
||||
u32 lpcr_bsc2;
|
||||
u32 pgc_cpu_2_3_mapping;
|
||||
u32 lps_cpu0;
|
||||
u32 lps_cpu1;
|
||||
u32 lps_cpu2;
|
||||
u32 lps_cpu3;
|
||||
u32 gpc_gpr;
|
||||
u32 gtor;
|
||||
u32 debug_addr1;
|
||||
u32 debug_addr2;
|
||||
u32 cpu_pgc_up_status1;
|
||||
u32 mix_pgc_up_status0;
|
||||
u32 mix_pgc_up_status1;
|
||||
u32 mix_pgc_up_status2;
|
||||
u32 m4_mix_pgc_up_status0;
|
||||
u32 m4_mix_pgc_up_status1;
|
||||
u32 m4_mix_pgc_up_status2;
|
||||
u32 pu_pgc_up_status0;
|
||||
u32 pu_pgc_up_status1;
|
||||
u32 pu_pgc_up_status2;
|
||||
u32 m4_pu_pgc_up_status0;
|
||||
u32 m4_pu_pgc_up_status1;
|
||||
u32 m4_pu_pgc_up_status2;
|
||||
u32 a53_lp_io_0;
|
||||
u32 a53_lp_io_1;
|
||||
u32 a53_lp_io_2;
|
||||
u32 cpu_pgc_dn_status1;
|
||||
u32 mix_pgc_dn_status0;
|
||||
u32 mix_pgc_dn_status1;
|
||||
u32 mix_pgc_dn_status2;
|
||||
u32 m4_mix_pgc_dn_status0;
|
||||
u32 m4_mix_pgc_dn_status1;
|
||||
u32 m4_mix_pgc_dn_status2;
|
||||
u32 pu_pgc_dn_status0;
|
||||
u32 pu_pgc_dn_status1;
|
||||
u32 pu_pgc_dn_status2;
|
||||
u32 m4_pu_pgc_dn_status0;
|
||||
u32 m4_pu_pgc_dn_status1;
|
||||
u32 m4_pu_pgc_dn_status2;
|
||||
u32 res[3];
|
||||
u32 mix_pdn_flg;
|
||||
u32 pu_pdn_flg;
|
||||
u32 m4_mix_pdn_flg;
|
||||
u32 m4_pu_pdn_flg;
|
||||
u32 imr1_core2;
|
||||
u32 imr2_core2;
|
||||
u32 imr3_core2;
|
||||
u32 imr4_core2;
|
||||
u32 imr1_core3;
|
||||
u32 imr2_core3;
|
||||
u32 imr3_core3;
|
||||
u32 imr4_core3;
|
||||
u32 pgc_ack_sel_pu;
|
||||
u32 pgc_ack_sel_m4_pu;
|
||||
u32 slt15_cfg;
|
||||
u32 slt16_cfg;
|
||||
u32 slt17_cfg;
|
||||
u32 slt18_cfg;
|
||||
u32 slt19_cfg;
|
||||
u32 gpc_pu_pwrhsk;
|
||||
u32 slt0_cfg_pu;
|
||||
u32 slt1_cfg_pu;
|
||||
u32 slt2_cfg_pu;
|
||||
u32 slt3_cfg_pu;
|
||||
u32 slt4_cfg_pu;
|
||||
u32 slt5_cfg_pu;
|
||||
u32 slt6_cfg_pu;
|
||||
u32 slt7_cfg_pu;
|
||||
u32 slt8_cfg_pu;
|
||||
u32 slt9_cfg_pu;
|
||||
u32 slt10_cfg_pu;
|
||||
u32 slt11_cfg_pu;
|
||||
u32 slt12_cfg_pu;
|
||||
u32 slt13_cfg_pu;
|
||||
u32 slt14_cfg_pu;
|
||||
u32 slt15_cfg_pu;
|
||||
u32 slt16_cfg_pu;
|
||||
u32 slt17_cfg_pu;
|
||||
u32 slt18_cfg_pu;
|
||||
u32 slt19_cfg_pu;
|
||||
};
|
||||
|
||||
#define WDOG_WDT_MASK BIT(3)
|
||||
#define WDOG_WDZST_MASK BIT(0)
|
||||
struct wdog_regs {
|
||||
|
@ -459,7 +297,8 @@ struct bootrom_sw_info {
|
|||
u32 reserved_3[3];
|
||||
};
|
||||
|
||||
#define ROM_SW_INFO_ADDR_B0 0x00000968
|
||||
#define ROM_SW_INFO_ADDR_B0 (IS_ENABLED(CONFIG_IMX8MQ) ? 0x00000968 :\
|
||||
0x000009e8)
|
||||
#define ROM_SW_INFO_ADDR_A0 0x000009e8
|
||||
|
||||
#define ROM_SW_INFO_ADDR is_soc_rev(CHIP_REV_1_0) ? \
|
||||
|
|
691
arch/arm/include/asm/arch-imx8m/imx8mm_pins.h
Normal file
691
arch/arm/include/asm/arch-imx8m/imx8mm_pins.h
Normal file
|
@ -0,0 +1,691 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2018-2019 NXP
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_IMX8MM_PINS_H__
|
||||
#define __ASM_ARCH_IMX8MM_PINS_H__
|
||||
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
|
||||
enum {
|
||||
IMX8MM_PAD_GPIO1_IO00_GPIO1_IO0 = IOMUX_PAD(0x0290, 0x0028, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO00_CCM_ENET_PHY_REF_CLK_ROOT = IOMUX_PAD(0x0290, 0x0028, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO00_XTALOSC_REF_CLK_32K = IOMUX_PAD(0x0290, 0x0028, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO00_CCM_EXT_CLK1 = IOMUX_PAD(0x0290, 0x0028, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO01_GPIO1_IO1 = IOMUX_PAD(0x0294, 0x002C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO01_PWM1_OUT = IOMUX_PAD(0x0294, 0x002C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO01_XTALOSC_REF_CLK_24M = IOMUX_PAD(0x0294, 0x002C, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO01_CCM_EXT_CLK2 = IOMUX_PAD(0x0294, 0x002C, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO02_GPIO1_IO2 = IOMUX_PAD(0x0298, 0x0030, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO02_WDOG1_WDOG_B = IOMUX_PAD(0x0298, 0x0030, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO02_WDOG1_WDOG_ANY = IOMUX_PAD(0x0298, 0x0030, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO03_GPIO1_IO3 = IOMUX_PAD(0x029C, 0x0034, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO03_USDHC1_VSELECT = IOMUX_PAD(0x029C, 0x0034, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO03_SDMA1_EXT_EVENT0 = IOMUX_PAD(0x029C, 0x0034, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO04_GPIO1_IO4 = IOMUX_PAD(0x02A0, 0x0038, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO04_USDHC2_VSELECT = IOMUX_PAD(0x02A0, 0x0038, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO04_SDMA1_EXT_EVENT1 = IOMUX_PAD(0x02A0, 0x0038, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO05_GPIO1_IO5 = IOMUX_PAD(0x02A4, 0x003C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO05_ARM_PLATFORM_M4_NMI = IOMUX_PAD(0x02A4, 0x003C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO05_CCM_PMIC_READY = IOMUX_PAD(0x02A4, 0x003C, 5, 0x04BC, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO05_SRC_INT_BOOT = IOMUX_PAD(0x02A4, 0x003C, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO06_GPIO1_IO6 = IOMUX_PAD(0x02A8, 0x0040, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO06_ENET1_MDC = IOMUX_PAD(0x02A8, 0x0040, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO06_USDHC1_CD_B = IOMUX_PAD(0x02A8, 0x0040, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO06_CCM_EXT_CLK3 = IOMUX_PAD(0x02A8, 0x0040, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO07_GPIO1_IO7 = IOMUX_PAD(0x02AC, 0x0044, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO07_ENET1_MDIO = IOMUX_PAD(0x02AC, 0x0044, 1, 0x04C0, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO07_USDHC1_WP = IOMUX_PAD(0x02AC, 0x0044, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO07_CCM_EXT_CLK4 = IOMUX_PAD(0x02AC, 0x0044, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO08_GPIO1_IO8 = IOMUX_PAD(0x02B0, 0x0048, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO08_ENET1_1588_EVENT0_IN = IOMUX_PAD(0x02B0, 0x0048, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO08_USDHC2_RESET_B = IOMUX_PAD(0x02B0, 0x0048, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO08_CCM_WAIT = IOMUX_PAD(0x02B0, 0x0048, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO09_GPIO1_IO9 = IOMUX_PAD(0x02B4, 0x004C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO09_ENET1_1588_EVENT0_OUT = IOMUX_PAD(0x02B4, 0x004C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO09_USDHC3_RESET_B = IOMUX_PAD(0x02B4, 0x004C, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO09_SDMA2_EXT_EVENT0 = IOMUX_PAD(0x02B4, 0x004C, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO09_CCM_STOP = IOMUX_PAD(0x02B4, 0x004C, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO10_GPIO1_IO10 = IOMUX_PAD(0x02B8, 0x0050, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO10_USB1_OTG_ID = IOMUX_PAD(0x02B8, 0x0050, 1, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO11_GPIO1_IO11 = IOMUX_PAD(0x02BC, 0x0054, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO11_USB2_OTG_ID = IOMUX_PAD(0x02BC, 0x0054, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO11_USDHC3_VSELECT = IOMUX_PAD(0x02BC, 0x0054, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO11_CCM_PMIC_READY = IOMUX_PAD(0x02BC, 0x0054, 5, 0x04BC, 1, 0),
|
||||
IMX8MM_PAD_GPIO1_IO11_CCM_OUT0 = IOMUX_PAD(0x02BC, 0x0054, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO12_GPIO1_IO12 = IOMUX_PAD(0x02C0, 0x0058, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO12_USB1_OTG_PWR = IOMUX_PAD(0x02C0, 0x0058, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO12_SDMA2_EXT_EVENT1 = IOMUX_PAD(0x02C0, 0x0058, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO12_CCM_OUT1 = IOMUX_PAD(0x02C0, 0x0058, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO13_GPIO1_IO13 = IOMUX_PAD(0x02C4, 0x005C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO13_USB1_OTG_OC = IOMUX_PAD(0x02C4, 0x005C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO13_PWM2_OUT = IOMUX_PAD(0x02C4, 0x005C, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO13_CCM_OUT2 = IOMUX_PAD(0x02C4, 0x005C, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO14_GPIO1_IO14 = IOMUX_PAD(0x02C8, 0x0060, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO14_USB2_OTG_PWR = IOMUX_PAD(0x02C8, 0x0060, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO14_USDHC3_CD_B = IOMUX_PAD(0x02C8, 0x0060, 4, 0x0544, 2, 0),
|
||||
IMX8MM_PAD_GPIO1_IO14_PWM3_OUT = IOMUX_PAD(0x02C8, 0x0060, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO14_CCM_CLKO1 = IOMUX_PAD(0x02C8, 0x0060, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_GPIO1_IO15_GPIO1_IO15 = IOMUX_PAD(0x02CC, 0x0064, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO15_USB2_OTG_OC = IOMUX_PAD(0x02CC, 0x0064, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO15_USDHC3_WP = IOMUX_PAD(0x02CC, 0x0064, 4, 0x0548, 2, 0),
|
||||
IMX8MM_PAD_GPIO1_IO15_PWM4_OUT = IOMUX_PAD(0x02CC, 0x0064, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_GPIO1_IO15_CCM_CLKO2 = IOMUX_PAD(0x02CC, 0x0064, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_MDC_ENET1_MDC = IOMUX_PAD(0x02D0, 0x0068, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_MDC_GPIO1_IO16 = IOMUX_PAD(0x02D0, 0x0068, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_MDIO_ENET1_MDIO = IOMUX_PAD(0x02D4, 0x006C, 0, 0x04C0, 1, 0),
|
||||
IMX8MM_PAD_ENET_MDIO_GPIO1_IO17 = IOMUX_PAD(0x02D4, 0x006C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_TD3_ENET1_RGMII_TD3 = IOMUX_PAD(0x02D8, 0x0070, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_TD3_GPIO1_IO18 = IOMUX_PAD(0x02D8, 0x0070, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_TD2_ENET1_RGMII_TD2 = IOMUX_PAD(0x02DC, 0x0074, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_TD2_ENET1_TX_CLK = IOMUX_PAD(0x02DC, 0x0074, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_TD2_CCM_ENET_REF_CLK_ROOT = IOMUX_PAD(0x02DC, 0x0074, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_TD2_GPIO1_IO19 = IOMUX_PAD(0x02DC, 0x0074, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_TD1_ENET1_RGMII_TD1 = IOMUX_PAD(0x02E0, 0x0078, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_TD1_GPIO1_IO20 = IOMUX_PAD(0x02E0, 0x0078, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_TD0_ENET1_RGMII_TD0 = IOMUX_PAD(0x02E4, 0x007C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_TD0_GPIO1_IO21 = IOMUX_PAD(0x02E4, 0x007C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_TX_CTL_ENET1_RGMII_TX_CTL = IOMUX_PAD(0x02E8, 0x0080, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_TX_CTL_GPIO1_IO22 = IOMUX_PAD(0x02E8, 0x0080, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_TXC_ENET1_RGMII_TXC = IOMUX_PAD(0x02EC, 0x0084, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_TXC_ENET1_TX_ER = IOMUX_PAD(0x02EC, 0x0084, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_TXC_GPIO1_IO23 = IOMUX_PAD(0x02EC, 0x0084, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_RX_CTL_ENET1_RGMII_RX_CTL = IOMUX_PAD(0x02F0, 0x0088, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_RX_CTL_GPIO1_IO24 = IOMUX_PAD(0x02F0, 0x0088, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_RXC_ENET1_RGMII_RXC = IOMUX_PAD(0x02F4, 0x008C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_RXC_ENET1_RX_ER = IOMUX_PAD(0x02F4, 0x008C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_RXC_GPIO1_IO25 = IOMUX_PAD(0x02F4, 0x008C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_RD0_ENET1_RGMII_RD0 = IOMUX_PAD(0x02F8, 0x0090, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_RD0_GPIO1_IO26 = IOMUX_PAD(0x02F8, 0x0090, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_RD1_ENET1_RGMII_RD1 = IOMUX_PAD(0x02FC, 0x0094, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_RD1_GPIO1_IO27 = IOMUX_PAD(0x02FC, 0x0094, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_RD2_ENET1_RGMII_RD2 = IOMUX_PAD(0x0300, 0x0098, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_RD2_GPIO1_IO28 = IOMUX_PAD(0x0300, 0x0098, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ENET_RD3_ENET1_RGMII_RD3 = IOMUX_PAD(0x0304, 0x009C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ENET_RD3_GPIO1_IO29 = IOMUX_PAD(0x0304, 0x009C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD1_CLK_USDHC1_CLK = IOMUX_PAD(0x0308, 0x00A0, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD1_CLK_GPIO2_IO0 = IOMUX_PAD(0x0308, 0x00A0, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD1_CMD_USDHC1_CMD = IOMUX_PAD(0x030C, 0x00A4, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD1_CMD_GPIO2_IO1 = IOMUX_PAD(0x030C, 0x00A4, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD1_DATA0_USDHC1_DATA0 = IOMUX_PAD(0x0310, 0x00A8, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD1_DATA0_GPIO2_IO2 = IOMUX_PAD(0x0310, 0x00A8, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD1_DATA1_USDHC1_DATA1 = IOMUX_PAD(0x0314, 0x00AC, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD1_DATA1_GPIO2_IO3 = IOMUX_PAD(0x0314, 0x00AC, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD1_DATA2_USDHC1_DATA2 = IOMUX_PAD(0x0318, 0x00B0, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD1_DATA2_GPIO2_IO4 = IOMUX_PAD(0x0318, 0x00B0, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD1_DATA3_USDHC1_DATA3 = IOMUX_PAD(0x031C, 0x00B4, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD1_DATA3_GPIO2_IO5 = IOMUX_PAD(0x031C, 0x00B4, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD1_DATA4_USDHC1_DATA4 = IOMUX_PAD(0x0320, 0x00B8, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD1_DATA4_GPIO2_IO6 = IOMUX_PAD(0x0320, 0x00B8, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD1_DATA5_USDHC1_DATA5 = IOMUX_PAD(0x0324, 0x00BC, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD1_DATA5_GPIO2_IO7 = IOMUX_PAD(0x0324, 0x00BC, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD1_DATA6_USDHC1_DATA6 = IOMUX_PAD(0x0328, 0x00C0, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD1_DATA6_GPIO2_IO8 = IOMUX_PAD(0x0328, 0x00C0, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD1_DATA7_USDHC1_DATA7 = IOMUX_PAD(0x032C, 0x00C4, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD1_DATA7_GPIO2_IO9 = IOMUX_PAD(0x032C, 0x00C4, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD1_RESET_B_USDHC1_RESET_B = IOMUX_PAD(0x0330, 0x00C8, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD1_RESET_B_GPIO2_IO10 = IOMUX_PAD(0x0330, 0x00C8, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD1_STROBE_USDHC1_STROBE = IOMUX_PAD(0x0334, 0x00CC, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD1_STROBE_GPIO2_IO11 = IOMUX_PAD(0x0334, 0x00CC, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD2_CD_B_USDHC2_CD_B = IOMUX_PAD(0x0338, 0x00D0, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_CD_B_GPIO2_IO12 = IOMUX_PAD(0x0338, 0x00D0, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD2_CLK_USDHC2_CLK = IOMUX_PAD(0x033C, 0x00D4, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_CLK_GPIO2_IO13 = IOMUX_PAD(0x033C, 0x00D4, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_CLK_CCM_OBSERVE0 = IOMUX_PAD(0x033C, 0x00D4, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD2_CMD_USDHC2_CMD = IOMUX_PAD(0x0340, 0x00D8, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_CMD_GPIO2_IO14 = IOMUX_PAD(0x0340, 0x00D8, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_CMD_CCM_OBSERVE1 = IOMUX_PAD(0x0340, 0x00D8, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD2_DATA0_USDHC2_DATA0 = IOMUX_PAD(0x0344, 0x00DC, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_DATA0_GPIO2_IO15 = IOMUX_PAD(0x0344, 0x00DC, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_DATA0_CCM_OBSERVE2 = IOMUX_PAD(0x0344, 0x00DC, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD2_DATA1_USDHC2_DATA1 = IOMUX_PAD(0x0348, 0x00E0, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_DATA1_GPIO2_IO16 = IOMUX_PAD(0x0348, 0x00E0, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_DATA1_CCM_WAIT = IOMUX_PAD(0x0348, 0x00E0, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD2_DATA2_USDHC2_DATA2 = IOMUX_PAD(0x034C, 0x00E4, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_DATA2_GPIO2_IO17 = IOMUX_PAD(0x034C, 0x00E4, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_DATA2_CCM_STOP = IOMUX_PAD(0x034C, 0x00E4, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD2_DATA3_USDHC2_DATA3 = IOMUX_PAD(0x0350, 0x00E8, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_DATA3_GPIO2_IO18 = IOMUX_PAD(0x0350, 0x00E8, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_DATA3_SRC_EARLY_RESET = IOMUX_PAD(0x0350, 0x00E8, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD2_RESET_B_USDHC2_RESET_B = IOMUX_PAD(0x0354, 0x00EC, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_RESET_B_GPIO2_IO19 = IOMUX_PAD(0x0354, 0x00EC, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_RESET_B_SRC_SYSTEM_RESET = IOMUX_PAD(0x0354, 0x00EC, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SD2_WP_USDHC2_WP = IOMUX_PAD(0x0358, 0x00F0, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SD2_WP_GPIO2_IO20 = IOMUX_PAD(0x0358, 0x00F0, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_ALE_RAWNAND_ALE = IOMUX_PAD(0x035C, 0x00F4, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_ALE_QSPI_A_SCLK = IOMUX_PAD(0x035C, 0x00F4, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_ALE_GPIO3_IO0 = IOMUX_PAD(0x035C, 0x00F4, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_CE0_B_RAWNAND_CE0_B = IOMUX_PAD(0x0360, 0x00F8, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CE0_B_QSPI_A_SS0_B = IOMUX_PAD(0x0360, 0x00F8, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CE0_B_GPIO3_IO1 = IOMUX_PAD(0x0360, 0x00F8, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_CE1_B_RAWNAND_CE1_B = IOMUX_PAD(0x0364, 0x00FC, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CE1_B_QSPI_A_SS1_B = IOMUX_PAD(0x0364, 0x00FC, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CE1_B_USDHC3_STROBE = IOMUX_PAD(0x0364, 0x00FC, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CE1_B_GPIO3_IO2 = IOMUX_PAD(0x0364, 0x00FC, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_CE2_B_RAWNAND_CE2_B = IOMUX_PAD(0x0368, 0x0100, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CE2_B_QSPI_B_SS0_B = IOMUX_PAD(0x0368, 0x0100, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CE2_B_USDHC3_DATA5 = IOMUX_PAD(0x0368, 0x0100, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CE2_B_GPIO3_IO3 = IOMUX_PAD(0x0368, 0x0100, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_CE3_B_RAWNAND_CE3_B = IOMUX_PAD(0x036C, 0x0104, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CE3_B_QSPI_B_SS1_B = IOMUX_PAD(0x036C, 0x0104, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CE3_B_USDHC3_DATA6 = IOMUX_PAD(0x036C, 0x0104, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CE3_B_GPIO3_IO4 = IOMUX_PAD(0x036C, 0x0104, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_CLE_RAWNAND_CLE = IOMUX_PAD(0x0370, 0x0108, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CLE_QSPI_B_SCLK = IOMUX_PAD(0x0370, 0x0108, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CLE_USDHC3_DATA7 = IOMUX_PAD(0x0370, 0x0108, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_CLE_GPIO3_IO5 = IOMUX_PAD(0x0370, 0x0108, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_DATA00_RAWNAND_DATA00 = IOMUX_PAD(0x0374, 0x010C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA00_QSPI_A_DATA0 = IOMUX_PAD(0x0374, 0x010C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA00_GPIO3_IO6 = IOMUX_PAD(0x0374, 0x010C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_DATA01_RAWNAND_DATA01 = IOMUX_PAD(0x0378, 0x0110, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA01_QSPI_A_DATA1 = IOMUX_PAD(0x0378, 0x0110, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA01_GPIO3_IO7 = IOMUX_PAD(0x0378, 0x0110, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_DATA02_RAWNAND_DATA02 = IOMUX_PAD(0x037C, 0x0114, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA02_QSPI_A_DATA2 = IOMUX_PAD(0x037C, 0x0114, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA02_USDHC3_CD_B = IOMUX_PAD(0x037C, 0x0114, 2, 0x0544, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA02_GPIO3_IO8 = IOMUX_PAD(0x037C, 0x0114, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_DATA03_RAWNAND_DATA03 = IOMUX_PAD(0x0380, 0x0118, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA03_QSPI_A_DATA3 = IOMUX_PAD(0x0380, 0x0118, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA03_USDHC3_WP = IOMUX_PAD(0x0380, 0x0118, 2, 0x0548, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA03_GPIO3_IO9 = IOMUX_PAD(0x0380, 0x0118, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_DATA04_RAWNAND_DATA04 = IOMUX_PAD(0x0384, 0x011C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA04_QSPI_B_DATA0 = IOMUX_PAD(0x0384, 0x011C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA04_USDHC3_DATA0 = IOMUX_PAD(0x0384, 0x011C, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA04_GPIO3_IO10 = IOMUX_PAD(0x0384, 0x011C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_DATA05_RAWNAND_DATA05 = IOMUX_PAD(0x0388, 0x0120, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA05_QSPI_B_DATA1 = IOMUX_PAD(0x0388, 0x0120, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA05_USDHC3_DATA1 = IOMUX_PAD(0x0388, 0x0120, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA05_GPIO3_IO11 = IOMUX_PAD(0x0388, 0x0120, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_DATA06_RAWNAND_DATA06 = IOMUX_PAD(0x038C, 0x0124, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA06_QSPI_B_DATA2 = IOMUX_PAD(0x038C, 0x0124, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA06_USDHC3_DATA2 = IOMUX_PAD(0x038C, 0x0124, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA06_GPIO3_IO12 = IOMUX_PAD(0x038C, 0x0124, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_DATA07_RAWNAND_DATA07 = IOMUX_PAD(0x0390, 0x0128, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA07_QSPI_B_DATA3 = IOMUX_PAD(0x0390, 0x0128, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA07_USDHC3_DATA3 = IOMUX_PAD(0x0390, 0x0128, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DATA07_GPIO3_IO13 = IOMUX_PAD(0x0390, 0x0128, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_DQS_RAWNAND_DQS = IOMUX_PAD(0x0394, 0x012C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DQS_QSPI_A_DQS = IOMUX_PAD(0x0394, 0x012C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_DQS_GPIO3_IO14 = IOMUX_PAD(0x0394, 0x012C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_RE_B_RAWNAND_RE_B = IOMUX_PAD(0x0398, 0x0130, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_RE_B_QSPI_B_DQS = IOMUX_PAD(0x0398, 0x0130, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_RE_B_USDHC3_DATA4 = IOMUX_PAD(0x0398, 0x0130, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_RE_B_GPIO3_IO15 = IOMUX_PAD(0x0398, 0x0130, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_READY_B_RAWNAND_READY_B = IOMUX_PAD(0x039C, 0x0134, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_READY_B_USDHC3_RESET_B = IOMUX_PAD(0x039C, 0x0134, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_READY_B_GPIO3_IO16 = IOMUX_PAD(0x039C, 0x0134, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_WE_B_RAWNAND_WE_B = IOMUX_PAD(0x03A0, 0x0138, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_WE_B_USDHC3_CLK = IOMUX_PAD(0x03A0, 0x0138, 2 | IOMUX_CONFIG_SION, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_WE_B_GPIO3_IO17 = IOMUX_PAD(0x03A0, 0x0138, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_NAND_WP_B_RAWNAND_WP_B = IOMUX_PAD(0x03A4, 0x013C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_WP_B_USDHC3_CMD = IOMUX_PAD(0x03A4, 0x013C, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_NAND_WP_B_GPIO3_IO18 = IOMUX_PAD(0x03A4, 0x013C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI5_RXFS_SAI5_RX_SYNC = IOMUX_PAD(0x03A8, 0x0140, 0, 0x04E4, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXFS_SAI1_TX_DATA0 = IOMUX_PAD(0x03A8, 0x0140, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXFS_GPIO3_IO19 = IOMUX_PAD(0x03A8, 0x0140, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI5_RXC_SAI5_RX_BCLK = IOMUX_PAD(0x03AC, 0x0144, 0, 0x04D0, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXC_SAI1_TX_DATA1 = IOMUX_PAD(0x03AC, 0x0144, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXC_PDM_CLK = IOMUX_PAD(0x03AC, 0x0144, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXC_GPIO3_IO20 = IOMUX_PAD(0x03AC, 0x0144, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI5_RXD0_SAI5_RX_DATA0 = IOMUX_PAD(0x03B0, 0x0148, 0, 0x04D4, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD0_SAI1_TX_DATA2 = IOMUX_PAD(0x03B0, 0x0148, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD0_PDM_BIT_STREAM0 = IOMUX_PAD(0x03B0, 0x0148, 4, 0x0534, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD0_GPIO3_IO21 = IOMUX_PAD(0x03B0, 0x0148, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI5_RXD1_SAI5_RX_DATA1 = IOMUX_PAD(0x03B4, 0x014C, 0, 0x04D8, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD1_SAI1_TX_DATA3 = IOMUX_PAD(0x03B4, 0x014C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD1_SAI1_TX_SYNC = IOMUX_PAD(0x03B4, 0x014C, 2, 0x04CC, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD1_SAI5_TX_SYNC = IOMUX_PAD(0x03B4, 0x014C, 3, 0x04EC, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD1_PDM_BIT_STREAM1 = IOMUX_PAD(0x03B4, 0x014C, 4, 0x0538, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD1_GPIO3_IO22 = IOMUX_PAD(0x03B4, 0x014C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI5_RXD2_SAI5_RX_DATA2 = IOMUX_PAD(0x03B8, 0x0150, 0, 0x04DC, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD2_SAI1_TX_DATA4 = IOMUX_PAD(0x03B8, 0x0150, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD2_SAI1_TX_SYNC = IOMUX_PAD(0x03B8, 0x0150, 2, 0x04CC, 1, 0),
|
||||
IMX8MM_PAD_SAI5_RXD2_SAI5_TX_BCLK = IOMUX_PAD(0x03B8, 0x0150, 3, 0x04E8, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD2_PDM_BIT_STREAM2 = IOMUX_PAD(0x03B8, 0x0150, 4, 0x053C, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD2_GPIO3_IO23 = IOMUX_PAD(0x03B8, 0x0150, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI5_RXD3_SAI5_RX_DATA3 = IOMUX_PAD(0x03BC, 0x0154, 0, 0x04E0, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD3_SAI1_TX_DATA5 = IOMUX_PAD(0x03BC, 0x0154, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD3_SAI1_TX_SYNC = IOMUX_PAD(0x03BC, 0x0154, 2, 0x04CC, 2, 0),
|
||||
IMX8MM_PAD_SAI5_RXD3_SAI5_TX_DATA0 = IOMUX_PAD(0x03BC, 0x0154, 3, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD3_PDM_BIT_STREAM3 = IOMUX_PAD(0x03BC, 0x0154, 4, 0x0540, 0, 0),
|
||||
IMX8MM_PAD_SAI5_RXD3_GPIO3_IO24 = IOMUX_PAD(0x03BC, 0x0154, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI5_MCLK_SAI5_MCLK = IOMUX_PAD(0x03C0, 0x0158, 0, 0x052C, 0, 0),
|
||||
IMX8MM_PAD_SAI5_MCLK_SAI1_TX_BCLK = IOMUX_PAD(0x03C0, 0x0158, 1, 0x04C8, 0, 0),
|
||||
IMX8MM_PAD_SAI5_MCLK_GPIO3_IO25 = IOMUX_PAD(0x03C0, 0x0158, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI5_MCLK_SRC_TESTER_ACK = IOMUX_PAD(0x03C0, 0x0158, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_RXFS_SAI1_RX_SYNC = IOMUX_PAD(0x03C4, 0x015C, 0, 0x04C4, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXFS_SAI5_RX_SYNC = IOMUX_PAD(0x03C4, 0x015C, 1, 0x04E4, 1, 0),
|
||||
IMX8MM_PAD_SAI1_RXFS_ARM_PLATFORM_TRACE_CLK = IOMUX_PAD(0x03C4, 0x015C, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXFS_GPIO4_IO0 = IOMUX_PAD(0x03C4, 0x015C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_RXC_SAI1_RX_BCLK = IOMUX_PAD(0x03C8, 0x0160, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXC_SAI5_RX_BCLK = IOMUX_PAD(0x03C8, 0x0160, 1, 0x04D0, 1, 0),
|
||||
IMX8MM_PAD_SAI1_RXC_ARM_PLATFORM_TRACE_CTL = IOMUX_PAD(0x03C8, 0x0160, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXC_GPIO4_IO1 = IOMUX_PAD(0x03C8, 0x0160, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_RXD0_SAI1_RX_DATA0 = IOMUX_PAD(0x03CC, 0x0164, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD0_SAI5_RX_DATA0 = IOMUX_PAD(0x03CC, 0x0164, 1, 0x04D4, 1, 0),
|
||||
IMX8MM_PAD_SAI1_RXD0_SAI1_TX_DATA1 = IOMUX_PAD(0x03CC, 0x0164, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD0_PDM_BIT_STREAM0 = IOMUX_PAD(0x03CC, 0x0164, 3, 0x0534, 1, 0),
|
||||
IMX8MM_PAD_SAI1_RXD0_ARM_PLATFORM_TRACE0 = IOMUX_PAD(0x03CC, 0x0164, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD0_GPIO4_IO2 = IOMUX_PAD(0x03CC, 0x0164, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD0_SRC_BOOT_CFG0 = IOMUX_PAD(0x03CC, 0x0164, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_RXD1_SAI1_RX_DATA1 = IOMUX_PAD(0x03D0, 0x0168, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD1_SAI5_RX_DATA1 = IOMUX_PAD(0x03D0, 0x0168, 1, 0x04D8, 1, 0),
|
||||
IMX8MM_PAD_SAI1_RXD1_PDM_BIT_STREAM1 = IOMUX_PAD(0x03D0, 0x0168, 3, 0x0538, 1, 0),
|
||||
IMX8MM_PAD_SAI1_RXD1_ARM_PLATFORM_TRACE1 = IOMUX_PAD(0x03D0, 0x0168, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD1_GPIO4_IO3 = IOMUX_PAD(0x03D0, 0x0168, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD1_SRC_BOOT_CFG1 = IOMUX_PAD(0x03D0, 0x0168, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_RXD2_SAI1_RX_DATA2 = IOMUX_PAD(0x03D4, 0x016C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD2_SAI5_RX_DATA2 = IOMUX_PAD(0x03D4, 0x016C, 1, 0x04DC, 1, 0),
|
||||
IMX8MM_PAD_SAI1_RXD2_PDM_BIT_STREAM2 = IOMUX_PAD(0x03D4, 0x016C, 3, 0x053C, 1, 0),
|
||||
IMX8MM_PAD_SAI1_RXD2_ARM_PLATFORM_TRACE2 = IOMUX_PAD(0x03D4, 0x016C, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD2_GPIO4_IO4 = IOMUX_PAD(0x03D4, 0x016C, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD2_SRC_BOOT_CFG2 = IOMUX_PAD(0x03D4, 0x016C, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_RXD3_SAI1_RX_DATA3 = IOMUX_PAD(0x03D8, 0x0170, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD3_SAI5_RX_DATA3 = IOMUX_PAD(0x03D8, 0x0170, 1, 0x04E0, 1, 0),
|
||||
IMX8MM_PAD_SAI1_RXD3_PDM_BIT_STREAM3 = IOMUX_PAD(0x03D8, 0x0170, 3, 0x0540, 1, 0),
|
||||
IMX8MM_PAD_SAI1_RXD3_ARM_PLATFORM_TRACE3 = IOMUX_PAD(0x03D8, 0x0170, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD3_GPIO4_IO5 = IOMUX_PAD(0x03D8, 0x0170, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD3_SRC_BOOT_CFG3 = IOMUX_PAD(0x03D8, 0x0170, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_RXD4_SAI1_RX_DATA4 = IOMUX_PAD(0x03DC, 0x0174, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD4_SAI6_TX_BCLK = IOMUX_PAD(0x03DC, 0x0174, 1, 0x051C, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD4_SAI6_RX_BCLK = IOMUX_PAD(0x03DC, 0x0174, 2, 0x0510, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD4_ARM_PLATFORM_TRACE4 = IOMUX_PAD(0x03DC, 0x0174, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD4_GPIO4_IO6 = IOMUX_PAD(0x03DC, 0x0174, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD4_SRC_BOOT_CFG4 = IOMUX_PAD(0x03DC, 0x0174, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_RXD5_SAI1_RX_DATA5 = IOMUX_PAD(0x03E0, 0x0178, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD5_SAI6_TX_DATA0 = IOMUX_PAD(0x03E0, 0x0178, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD5_SAI6_RX_DATA0 = IOMUX_PAD(0x03E0, 0x0178, 2, 0x0514, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD5_SAI1_RX_SYNC = IOMUX_PAD(0x03E0, 0x0178, 3, 0x04C4, 1, 0),
|
||||
IMX8MM_PAD_SAI1_RXD5_ARM_PLATFORM_TRACE5 = IOMUX_PAD(0x03E0, 0x0178, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD5_GPIO4_IO7 = IOMUX_PAD(0x03E0, 0x0178, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD5_SRC_BOOT_CFG5 = IOMUX_PAD(0x03E0, 0x0178, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_RXD6_SAI1_RX_DATA6 = IOMUX_PAD(0x03E4, 0x017C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD6_SAI6_TX_SYNC = IOMUX_PAD(0x03E4, 0x017C, 1, 0x0520, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD6_SAI6_RX_SYNC = IOMUX_PAD(0x03E4, 0x017C, 2, 0x0518, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD6_ARM_PLATFORM_TRACE6 = IOMUX_PAD(0x03E4, 0x017C, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD6_GPIO4_IO8 = IOMUX_PAD(0x03E4, 0x017C, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD6_SRC_BOOT_CFG6 = IOMUX_PAD(0x03E4, 0x017C, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_RXD7_SAI1_RX_DATA7 = IOMUX_PAD(0x03E8, 0x0180, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD7_SAI6_MCLK = IOMUX_PAD(0x03E8, 0x0180, 1, 0x0530, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD7_SAI1_TX_SYNC = IOMUX_PAD(0x03E8, 0x0180, 2, 0x04CC, 4, 0),
|
||||
IMX8MM_PAD_SAI1_RXD7_SAI1_TX_DATA4 = IOMUX_PAD(0x03E8, 0x0180, 3, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD7_ARM_PLATFORM_TRACE7 = IOMUX_PAD(0x03E8, 0x0180, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD7_GPIO4_IO9 = IOMUX_PAD(0x03E8, 0x0180, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_RXD7_SRC_BOOT_CFG7 = IOMUX_PAD(0x03E8, 0x0180, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_TXFS_SAI1_TX_SYNC = IOMUX_PAD(0x03EC, 0x0184, 0, 0x04CC, 3, 0),
|
||||
IMX8MM_PAD_SAI1_TXFS_SAI5_TX_SYNC = IOMUX_PAD(0x03EC, 0x0184, 1, 0x04EC, 1, 0),
|
||||
IMX8MM_PAD_SAI1_TXFS_ARM_PLATFORM_EVENTO = IOMUX_PAD(0x03EC, 0x0184, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXFS_GPIO4_IO10 = IOMUX_PAD(0x03EC, 0x0184, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_TXC_SAI1_TX_BCLK = IOMUX_PAD(0x03F0, 0x0188, 0, 0x04C8, 1, 0),
|
||||
IMX8MM_PAD_SAI1_TXC_SAI5_TX_BCLK = IOMUX_PAD(0x03F0, 0x0188, 1, 0x04E8, 1, 0),
|
||||
IMX8MM_PAD_SAI1_TXC_ARM_PLATFORM_EVENTI = IOMUX_PAD(0x03F0, 0x0188, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXC_GPIO4_IO11 = IOMUX_PAD(0x03F0, 0x0188, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_TXD0_SAI1_TX_DATA0 = IOMUX_PAD(0x03F4, 0x018C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD0_SAI5_TX_DATA0 = IOMUX_PAD(0x03F4, 0x018C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD0_ARM_PLATFORM_TRACE8 = IOMUX_PAD(0x03F4, 0x018C, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD0_GPIO4_IO12 = IOMUX_PAD(0x03F4, 0x018C, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD0_SRC_BOOT_CFG8 = IOMUX_PAD(0x03F4, 0x018C, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_TXD1_SAI1_TX_DATA1 = IOMUX_PAD(0x03F8, 0x0190, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD1_SAI5_TX_DATA1 = IOMUX_PAD(0x03F8, 0x0190, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD1_ARM_PLATFORM_TRACE9 = IOMUX_PAD(0x03F8, 0x0190, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD1_GPIO4_IO13 = IOMUX_PAD(0x03F8, 0x0190, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD1_SRC_BOOT_CFG9 = IOMUX_PAD(0x03F8, 0x0190, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_TXD2_SAI1_TX_DATA2 = IOMUX_PAD(0x03FC, 0x0194, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD2_SAI5_TX_DATA2 = IOMUX_PAD(0x03FC, 0x0194, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD2_ARM_PLATFORM_TRACE10 = IOMUX_PAD(0x03FC, 0x0194, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD2_GPIO4_IO14 = IOMUX_PAD(0x03FC, 0x0194, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD2_SRC_BOOT_CFG10 = IOMUX_PAD(0x03FC, 0x0194, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_TXD3_SAI1_TX_DATA3 = IOMUX_PAD(0x0400, 0x0198, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD3_SAI5_TX_DATA3 = IOMUX_PAD(0x0400, 0x0198, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD3_ARM_PLATFORM_TRACE11 = IOMUX_PAD(0x0400, 0x0198, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD3_GPIO4_IO15 = IOMUX_PAD(0x0400, 0x0198, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD3_SRC_BOOT_CFG11 = IOMUX_PAD(0x0400, 0x0198, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_TXD4_SAI1_TX_DATA4 = IOMUX_PAD(0x0404, 0x019C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD4_SAI6_RX_BCLK = IOMUX_PAD(0x0404, 0x019C, 1, 0x0510, 1, 0),
|
||||
IMX8MM_PAD_SAI1_TXD4_SAI6_TX_BCLK = IOMUX_PAD(0x0404, 0x019C, 2, 0x051C, 1, 0),
|
||||
IMX8MM_PAD_SAI1_TXD4_ARM_PLATFORM_TRACE12 = IOMUX_PAD(0x0404, 0x019C, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD4_GPIO4_IO16 = IOMUX_PAD(0x0404, 0x019C, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD4_SRC_BOOT_CFG12 = IOMUX_PAD(0x0404, 0x019C, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_TXD5_SAI1_TX_DATA5 = IOMUX_PAD(0x0408, 0x01A0, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD5_SAI6_RX_DATA0 = IOMUX_PAD(0x0408, 0x01A0, 1, 0x0514, 1, 0),
|
||||
IMX8MM_PAD_SAI1_TXD5_SAI6_TX_DATA0 = IOMUX_PAD(0x0408, 0x01A0, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD5_ARM_PLATFORM_TRACE13 = IOMUX_PAD(0x0408, 0x01A0, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD5_GPIO4_IO17 = IOMUX_PAD(0x0408, 0x01A0, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD5_SRC_BOOT_CFG13 = IOMUX_PAD(0x0408, 0x01A0, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_TXD6_SAI1_TX_DATA6 = IOMUX_PAD(0x040C, 0x01A4, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD6_SAI6_RX_SYNC = IOMUX_PAD(0x040C, 0x01A4, 1, 0x0518, 1, 0),
|
||||
IMX8MM_PAD_SAI1_TXD6_SAI6_TX_SYNC = IOMUX_PAD(0x040C, 0x01A4, 2, 0x0520, 1, 0),
|
||||
IMX8MM_PAD_SAI1_TXD6_ARM_PLATFORM_TRACE14 = IOMUX_PAD(0x040C, 0x01A4, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD6_GPIO4_IO18 = IOMUX_PAD(0x040C, 0x01A4, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD6_SRC_BOOT_CFG14 = IOMUX_PAD(0x040C, 0x01A4, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_TXD7_SAI1_TX_DATA7 = IOMUX_PAD(0x0410, 0x01A8, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD7_SAI6_MCLK = IOMUX_PAD(0x0410, 0x01A8, 1, 0x0530, 1, 0),
|
||||
IMX8MM_PAD_SAI1_TXD7_PDM_CLK = IOMUX_PAD(0x0410, 0x01A8, 3, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD7_ARM_PLATFORM_TRACE15 = IOMUX_PAD(0x0410, 0x01A8, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD7_GPIO4_IO19 = IOMUX_PAD(0x0410, 0x01A8, 5, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_TXD7_SRC_BOOT_CFG15 = IOMUX_PAD(0x0410, 0x01A8, 6, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI1_MCLK_SAI1_MCLK = IOMUX_PAD(0x0414, 0x01AC, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_MCLK_SAI5_MCLK = IOMUX_PAD(0x0414, 0x01AC, 1, 0x052C, 1, 0),
|
||||
IMX8MM_PAD_SAI1_MCLK_SAI1_TX_BCLK = IOMUX_PAD(0x0414, 0x01AC, 2, 0x04C8, 2, 0),
|
||||
IMX8MM_PAD_SAI1_MCLK_PDM_CLK = IOMUX_PAD(0x0414, 0x01AC, 3, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI1_MCLK_GPIO4_IO20 = IOMUX_PAD(0x0414, 0x01AC, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI2_RXFS_SAI2_RX_SYNC = IOMUX_PAD(0x0418, 0x01B0, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_RXFS_SAI5_TX_SYNC = IOMUX_PAD(0x0418, 0x01B0, 1, 0x04EC, 2, 0),
|
||||
IMX8MM_PAD_SAI2_RXFS_SAI5_TX_DATA1 = IOMUX_PAD(0x0418, 0x01B0, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_RXFS_SAI2_RX_DATA1 = IOMUX_PAD(0x0418, 0x01B0, 3, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_RXFS_UART1_TX = IOMUX_PAD(0x0418, 0x01B0, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_RXFS_UART1_RX = IOMUX_PAD(0x0418, 0x01B0, 4, 0x04F4, 2, 0),
|
||||
IMX8MM_PAD_SAI2_RXFS_GPIO4_IO21 = IOMUX_PAD(0x0418, 0x01B0, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI2_RXC_SAI2_RX_BCLK = IOMUX_PAD(0x041C, 0x01B4, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_RXC_SAI5_TX_BCLK = IOMUX_PAD(0x041C, 0x01B4, 1, 0x04E8, 2, 0),
|
||||
IMX8MM_PAD_SAI2_RXC_UART1_RX = IOMUX_PAD(0x041C, 0x01B4, 4, 0x04F4, 3, 0),
|
||||
IMX8MM_PAD_SAI2_RXC_UART1_TX = IOMUX_PAD(0x041C, 0x01B4, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_RXC_GPIO4_IO22 = IOMUX_PAD(0x041C, 0x01B4, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI2_RXD0_SAI2_RX_DATA0 = IOMUX_PAD(0x0420, 0x01B8, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_RXD0_SAI5_TX_DATA0 = IOMUX_PAD(0x0420, 0x01B8, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_RXD0_UART1_RTS_B = IOMUX_PAD(0x0420, 0x01B8, 4, 0x04F0, 2, 0),
|
||||
IMX8MM_PAD_SAI2_RXD0_UART1_CTS_B = IOMUX_PAD(0x0420, 0x01B8, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_RXD0_GPIO4_IO23 = IOMUX_PAD(0x0420, 0x01B8, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI2_TXFS_SAI2_TX_SYNC = IOMUX_PAD(0x0424, 0x01BC, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_TXFS_SAI5_TX_DATA1 = IOMUX_PAD(0x0424, 0x01BC, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_TXFS_SAI2_TX_DATA1 = IOMUX_PAD(0x0424, 0x01BC, 3, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_TXFS_UART1_CTS_B = IOMUX_PAD(0x0424, 0x01BC, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_TXFS_UART1_RTS_B = IOMUX_PAD(0x0424, 0x01BC, 4, 0x04F0, 3, 0),
|
||||
IMX8MM_PAD_SAI2_TXFS_GPIO4_IO24 = IOMUX_PAD(0x0424, 0x01BC, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI2_TXC_SAI2_TX_BCLK = IOMUX_PAD(0x0428, 0x01C0, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_TXC_SAI5_TX_DATA2 = IOMUX_PAD(0x0428, 0x01C0, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_TXC_GPIO4_IO25 = IOMUX_PAD(0x0428, 0x01C0, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI2_TXD0_SAI2_TX_DATA0 = IOMUX_PAD(0x042C, 0x01C4, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_TXD0_SAI5_TX_DATA3 = IOMUX_PAD(0x042C, 0x01C4, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_TXD0_GPIO4_IO26 = IOMUX_PAD(0x042C, 0x01C4, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI2_MCLK_SAI2_MCLK = IOMUX_PAD(0x0430, 0x01C8, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI2_MCLK_SAI5_MCLK = IOMUX_PAD(0x0430, 0x01C8, 1, 0x052C, 2, 0),
|
||||
IMX8MM_PAD_SAI2_MCLK_GPIO4_IO27 = IOMUX_PAD(0x0430, 0x01C8, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI3_RXFS_SAI3_RX_SYNC = IOMUX_PAD(0x0434, 0x01CC, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_RXFS_GPT1_CAPTURE1 = IOMUX_PAD(0x0434, 0x01CC, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_RXFS_SAI5_RX_SYNC = IOMUX_PAD(0x0434, 0x01CC, 2, 0x04E4, 2, 0),
|
||||
IMX8MM_PAD_SAI3_RXFS_SAI3_RX_DATA1 = IOMUX_PAD(0x0434, 0x01CC, 3, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_RXFS_GPIO4_IO28 = IOMUX_PAD(0x0434, 0x01CC, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI3_RXC_SAI3_RX_BCLK = IOMUX_PAD(0x0438, 0x01D0, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_RXC_GPT1_CLK = IOMUX_PAD(0x0438, 0x01D0, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_RXC_SAI5_RX_BCLK = IOMUX_PAD(0x0438, 0x01D0, 2, 0x04D0, 2, 0),
|
||||
IMX8MM_PAD_SAI3_RXC_UART2_CTS_B = IOMUX_PAD(0x0438, 0x01D0, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_RXC_UART2_RTS_B = IOMUX_PAD(0x0438, 0x01D0, 4, 0x04F8, 2, 0),
|
||||
IMX8MM_PAD_SAI3_RXC_GPIO4_IO29 = IOMUX_PAD(0x0438, 0x01D0, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI3_RXD_SAI3_RX_DATA0 = IOMUX_PAD(0x043C, 0x01D4, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_RXD_GPT1_COMPARE1 = IOMUX_PAD(0x043C, 0x01D4, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_RXD_SAI5_RX_DATA0 = IOMUX_PAD(0x043C, 0x01D4, 2, 0x04D4, 2, 0),
|
||||
IMX8MM_PAD_SAI3_RXD_UART2_RTS_B = IOMUX_PAD(0x043C, 0x01D4, 4, 0x04F8, 3, 0),
|
||||
IMX8MM_PAD_SAI3_RXD_UART2_CTS_B = IOMUX_PAD(0x043C, 0x01D4, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_RXD_GPIO4_IO30 = IOMUX_PAD(0x043C, 0x01D4, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI3_TXFS_SAI3_TX_SYNC = IOMUX_PAD(0x0440, 0x01D8, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_TXFS_GPT1_CAPTURE2 = IOMUX_PAD(0x0440, 0x01D8, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_TXFS_SAI5_RX_DATA1 = IOMUX_PAD(0x0440, 0x01D8, 2, 0x04D8, 2, 0),
|
||||
IMX8MM_PAD_SAI3_TXFS_SAI3_TX_DATA1 = IOMUX_PAD(0x0440, 0x01D8, 3, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_TXFS_UART2_RX = IOMUX_PAD(0x0440, 0x01D8, 4, 0x04FC, 2, 0),
|
||||
IMX8MM_PAD_SAI3_TXFS_UART2_TX = IOMUX_PAD(0x0440, 0x01D8, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_TXFS_GPIO4_IO31 = IOMUX_PAD(0x0440, 0x01D8, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI3_TXC_SAI3_TX_BCLK = IOMUX_PAD(0x0444, 0x01DC, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_TXC_GPT1_COMPARE2 = IOMUX_PAD(0x0444, 0x01DC, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_TXC_SAI5_RX_DATA2 = IOMUX_PAD(0x0444, 0x01DC, 2, 0x04DC, 2, 0),
|
||||
IMX8MM_PAD_SAI3_TXC_UART2_TX = IOMUX_PAD(0x0444, 0x01DC, 4, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_TXC_UART2_RX = IOMUX_PAD(0x0444, 0x01DC, 4, 0x04FC, 3, 0),
|
||||
IMX8MM_PAD_SAI3_TXC_GPIO5_IO0 = IOMUX_PAD(0x0444, 0x01DC, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI3_TXD_SAI3_TX_DATA0 = IOMUX_PAD(0x0448, 0x01E0, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_TXD_GPT1_COMPARE3 = IOMUX_PAD(0x0448, 0x01E0, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_TXD_SAI5_RX_DATA3 = IOMUX_PAD(0x0448, 0x01E0, 2, 0x04E0, 2, 0),
|
||||
IMX8MM_PAD_SAI3_TXD_GPIO5_IO1 = IOMUX_PAD(0x0448, 0x01E0, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SAI3_MCLK_SAI3_MCLK = IOMUX_PAD(0x044C, 0x01E4, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_MCLK_PWM4_OUT = IOMUX_PAD(0x044C, 0x01E4, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SAI3_MCLK_SAI5_MCLK = IOMUX_PAD(0x044C, 0x01E4, 2, 0x052C, 3, 0),
|
||||
IMX8MM_PAD_SAI3_MCLK_GPIO5_IO2 = IOMUX_PAD(0x044C, 0x01E4, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SPDIF_TX_SPDIF1_OUT = IOMUX_PAD(0x0450, 0x01E8, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SPDIF_TX_PWM3_OUT = IOMUX_PAD(0x0450, 0x01E8, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SPDIF_TX_GPIO5_IO3 = IOMUX_PAD(0x0450, 0x01E8, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SPDIF_RX_SPDIF1_IN = IOMUX_PAD(0x0454, 0x01EC, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SPDIF_RX_PWM2_OUT = IOMUX_PAD(0x0454, 0x01EC, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SPDIF_RX_GPIO5_IO4 = IOMUX_PAD(0x0454, 0x01EC, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_SPDIF_EXT_CLK_SPDIF1_EXT_CLK = IOMUX_PAD(0x0458, 0x01F0, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SPDIF_EXT_CLK_PWM1_OUT = IOMUX_PAD(0x0458, 0x01F0, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_SPDIF_EXT_CLK_GPIO5_IO5 = IOMUX_PAD(0x0458, 0x01F0, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ECSPI1_SCLK_ECSPI1_SCLK = IOMUX_PAD(0x045C, 0x01F4, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI1_SCLK_UART3_RX = IOMUX_PAD(0x045C, 0x01F4, 1, 0x0504, 0, 0),
|
||||
IMX8MM_PAD_ECSPI1_SCLK_UART3_TX = IOMUX_PAD(0x045C, 0x01F4, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI1_SCLK_GPIO5_IO6 = IOMUX_PAD(0x045C, 0x01F4, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ECSPI1_MOSI_ECSPI1_MOSI = IOMUX_PAD(0x0460, 0x01F8, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI1_MOSI_UART3_TX = IOMUX_PAD(0x0460, 0x01F8, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI1_MOSI_UART3_RX = IOMUX_PAD(0x0460, 0x01F8, 1, 0x0504, 1, 0),
|
||||
IMX8MM_PAD_ECSPI1_MOSI_GPIO5_IO7 = IOMUX_PAD(0x0460, 0x01F8, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ECSPI1_MISO_ECSPI1_MISO = IOMUX_PAD(0x0464, 0x01FC, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI1_MISO_UART3_CTS_B = IOMUX_PAD(0x0464, 0x01FC, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI1_MISO_UART3_RTS_B = IOMUX_PAD(0x0464, 0x01FC, 1, 0x0500, 0, 0),
|
||||
IMX8MM_PAD_ECSPI1_MISO_GPIO5_IO8 = IOMUX_PAD(0x0464, 0x01FC, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ECSPI1_SS0_ECSPI1_SS0 = IOMUX_PAD(0x0468, 0x0200, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI1_SS0_UART3_RTS_B = IOMUX_PAD(0x0468, 0x0200, 1, 0x0500, 1, 0),
|
||||
IMX8MM_PAD_ECSPI1_SS0_UART3_CTS_B = IOMUX_PAD(0x0468, 0x0200, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI1_SS0_GPIO5_IO9 = IOMUX_PAD(0x0468, 0x0200, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ECSPI2_SCLK_ECSPI2_SCLK = IOMUX_PAD(0x046C, 0x0204, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI2_SCLK_UART4_RX = IOMUX_PAD(0x046C, 0x0204, 1, 0x050C, 0, 0),
|
||||
IMX8MM_PAD_ECSPI2_SCLK_UART4_TX = IOMUX_PAD(0x046C, 0x0204, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI2_SCLK_GPIO5_IO10 = IOMUX_PAD(0x046C, 0x0204, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ECSPI2_MOSI_ECSPI2_MOSI = IOMUX_PAD(0x0470, 0x0208, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI2_MOSI_UART4_TX = IOMUX_PAD(0x0470, 0x0208, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI2_MOSI_UART4_RX = IOMUX_PAD(0x0470, 0x0208, 1, 0x050C, 1, 0),
|
||||
IMX8MM_PAD_ECSPI2_MOSI_GPIO5_IO11 = IOMUX_PAD(0x0470, 0x0208, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ECSPI2_MISO_ECSPI2_MISO = IOMUX_PAD(0x0474, 0x020C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI2_MISO_UART4_CTS_B = IOMUX_PAD(0x0474, 0x020C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI2_MISO_UART4_RTS_B = IOMUX_PAD(0x0474, 0x020C, 1, 0x0508, 0, 0),
|
||||
IMX8MM_PAD_ECSPI2_MISO_GPIO5_IO12 = IOMUX_PAD(0x0474, 0x020C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_ECSPI2_SS0_ECSPI2_SS0 = IOMUX_PAD(0x0478, 0x0210, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI2_SS0_UART4_RTS_B = IOMUX_PAD(0x0478, 0x0210, 1, 0x0508, 1, 0),
|
||||
IMX8MM_PAD_ECSPI2_SS0_UART4_CTS_B = IOMUX_PAD(0x0478, 0x0210, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_ECSPI2_SS0_GPIO5_IO13 = IOMUX_PAD(0x0478, 0x0210, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_I2C1_SCL_I2C1_SCL = IOMUX_PAD(0x047C, 0x0214, 0 | IOMUX_CONFIG_SION, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C1_SCL_ENET1_MDC = IOMUX_PAD(0x047C, 0x0214, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C1_SCL_GPIO5_IO14 = IOMUX_PAD(0x047C, 0x0214, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_I2C1_SDA_I2C1_SDA = IOMUX_PAD(0x0480, 0x0218, 0 | IOMUX_CONFIG_SION, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C1_SDA_ENET1_MDIO = IOMUX_PAD(0x0480, 0x0218, 1, 0x04C0, 2, 0),
|
||||
IMX8MM_PAD_I2C1_SDA_GPIO5_IO15 = IOMUX_PAD(0x0480, 0x0218, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_I2C2_SCL_I2C2_SCL = IOMUX_PAD(0x0484, 0x021C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C2_SCL_ENET1_1588_EVENT1_IN = IOMUX_PAD(0x0484, 0x021C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C2_SCL_USDHC3_CD_B = IOMUX_PAD(0x0484, 0x021C, 2, 0x0544, 1, 0),
|
||||
IMX8MM_PAD_I2C2_SCL_GPIO5_IO16 = IOMUX_PAD(0x0484, 0x021C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_I2C2_SDA_I2C2_SDA = IOMUX_PAD(0x0488, 0x0220, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C2_SDA_ENET1_1588_EVENT1_OUT = IOMUX_PAD(0x0488, 0x0220, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C2_SDA_USDHC3_WP = IOMUX_PAD(0x0488, 0x0220, 2, 0x0548, 1, 0),
|
||||
IMX8MM_PAD_I2C2_SDA_GPIO5_IO17 = IOMUX_PAD(0x0488, 0x0220, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_I2C3_SCL_I2C3_SCL = IOMUX_PAD(0x048C, 0x0224, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C3_SCL_PWM4_OUT = IOMUX_PAD(0x048C, 0x0224, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C3_SCL_GPT2_CLK = IOMUX_PAD(0x048C, 0x0224, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C3_SCL_GPIO5_IO18 = IOMUX_PAD(0x048C, 0x0224, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_I2C3_SDA_I2C3_SDA = IOMUX_PAD(0x0490, 0x0228, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C3_SDA_PWM3_OUT = IOMUX_PAD(0x0490, 0x0228, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C3_SDA_GPT3_CLK = IOMUX_PAD(0x0490, 0x0228, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C3_SDA_GPIO5_IO19 = IOMUX_PAD(0x0490, 0x0228, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_I2C4_SCL_I2C4_SCL = IOMUX_PAD(0x0494, 0x022C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C4_SCL_PWM2_OUT = IOMUX_PAD(0x0494, 0x022C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C4_SCL_PCIE1_CLKREQ_B = IOMUX_PAD(0x0494, 0x022C, 2, 0x0524, 0, 0),
|
||||
IMX8MM_PAD_I2C4_SCL_GPIO5_IO20 = IOMUX_PAD(0x0494, 0x022C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_I2C4_SDA_I2C4_SDA = IOMUX_PAD(0x0498, 0x0230, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C4_SDA_PWM1_OUT = IOMUX_PAD(0x0498, 0x0230, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_I2C4_SDA_GPIO5_IO21 = IOMUX_PAD(0x0498, 0x0230, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_UART1_RXD_UART1_RX = IOMUX_PAD(0x049C, 0x0234, 0, 0x04F4, 0, 0),
|
||||
IMX8MM_PAD_UART1_RXD_UART1_TX = IOMUX_PAD(0x049C, 0x0234, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART1_RXD_ECSPI3_SCLK = IOMUX_PAD(0x049C, 0x0234, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART1_RXD_GPIO5_IO22 = IOMUX_PAD(0x049C, 0x0234, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_UART1_TXD_UART1_TX = IOMUX_PAD(0x04A0, 0x0238, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART1_TXD_UART1_RX = IOMUX_PAD(0x04A0, 0x0238, 0, 0x04F4, 1, 0),
|
||||
IMX8MM_PAD_UART1_TXD_ECSPI3_MOSI = IOMUX_PAD(0x04A0, 0x0238, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART1_TXD_GPIO5_IO23 = IOMUX_PAD(0x04A0, 0x0238, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_UART2_RXD_UART2_RX = IOMUX_PAD(0x04A4, 0x023C, 0, 0x04FC, 0, 0),
|
||||
IMX8MM_PAD_UART2_RXD_UART2_TX = IOMUX_PAD(0x04A4, 0x023C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART2_RXD_ECSPI3_MISO = IOMUX_PAD(0x04A4, 0x023C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART2_RXD_GPIO5_IO24 = IOMUX_PAD(0x04A4, 0x023C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_UART2_TXD_UART2_TX = IOMUX_PAD(0x04A8, 0x0240, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART2_TXD_UART2_RX = IOMUX_PAD(0x04A8, 0x0240, 0, 0x04FC, 1, 0),
|
||||
IMX8MM_PAD_UART2_TXD_ECSPI3_SS0 = IOMUX_PAD(0x04A8, 0x0240, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART2_TXD_GPIO5_IO25 = IOMUX_PAD(0x04A8, 0x0240, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_UART3_RXD_UART3_RX = IOMUX_PAD(0x04AC, 0x0244, 0, 0x0504, 2, 0),
|
||||
IMX8MM_PAD_UART3_RXD_UART3_TX = IOMUX_PAD(0x04AC, 0x0244, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART3_RXD_UART1_CTS_B = IOMUX_PAD(0x04AC, 0x0244, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART3_RXD_UART1_RTS_B = IOMUX_PAD(0x04AC, 0x0244, 1, 0x04F0, 0, 0),
|
||||
IMX8MM_PAD_UART3_RXD_USDHC3_RESET_B = IOMUX_PAD(0x04AC, 0x0244, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART3_RXD_GPIO5_IO26 = IOMUX_PAD(0x04AC, 0x0244, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_UART3_TXD_UART3_TX = IOMUX_PAD(0x04B0, 0x0248, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART3_TXD_UART3_RX = IOMUX_PAD(0x04B0, 0x0248, 0, 0x0504, 3, 0),
|
||||
IMX8MM_PAD_UART3_TXD_UART1_RTS_B = IOMUX_PAD(0x04B0, 0x0248, 1, 0x04F0, 1, 0),
|
||||
IMX8MM_PAD_UART3_TXD_UART1_CTS_B = IOMUX_PAD(0x04B0, 0x0248, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART3_TXD_USDHC3_VSELECT = IOMUX_PAD(0x04B0, 0x0248, 2, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART3_TXD_GPIO5_IO27 = IOMUX_PAD(0x04B0, 0x0248, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_UART4_RXD_UART4_RX = IOMUX_PAD(0x04B4, 0x024C, 0, 0x050C, 2, 0),
|
||||
IMX8MM_PAD_UART4_RXD_UART4_TX = IOMUX_PAD(0x04B4, 0x024C, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART4_RXD_UART2_CTS_B = IOMUX_PAD(0x04B4, 0x024C, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART4_RXD_UART2_RTS_B = IOMUX_PAD(0x04B4, 0x024C, 1, 0x04F8, 0, 0),
|
||||
IMX8MM_PAD_UART4_RXD_PCIE1_CLKREQ_B = IOMUX_PAD(0x04B4, 0x024C, 2, 0x0524, 1, 0),
|
||||
IMX8MM_PAD_UART4_RXD_GPIO5_IO28 = IOMUX_PAD(0x04B4, 0x024C, 5, 0x0000, 0, 0),
|
||||
|
||||
IMX8MM_PAD_UART4_TXD_UART4_TX = IOMUX_PAD(0x04B8, 0x0250, 0, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART4_TXD_UART4_RX = IOMUX_PAD(0x04B8, 0x0250, 0, 0x050C, 3, 0),
|
||||
IMX8MM_PAD_UART4_TXD_UART2_RTS_B = IOMUX_PAD(0x04B8, 0x0250, 1, 0x04F8, 1, 0),
|
||||
IMX8MM_PAD_UART4_TXD_UART2_CTS_B = IOMUX_PAD(0x04B8, 0x0250, 1, 0x0000, 0, 0),
|
||||
IMX8MM_PAD_UART4_TXD_GPIO5_IO29 = IOMUX_PAD(0x04B8, 0x0250, 5, 0x0000, 0, 0),
|
||||
};
|
||||
#endif
|
15
arch/arm/include/asm/arch-imx8m/power-domain.h
Normal file
15
arch/arm/include/asm/arch-imx8m/power-domain.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright 2017 NXP
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARCH_IMX8M_POWER_DOMAIN_H
|
||||
#define _ASM_ARCH_IMX8M_POWER_DOMAIN_H
|
||||
|
||||
struct imx8m_power_domain_platdata {
|
||||
int resource_id;
|
||||
int has_pd;
|
||||
struct power_domain pd;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -357,7 +357,7 @@ int set_clk_nand(void);
|
|||
void enable_ocotp_clk(unsigned char enable);
|
||||
#endif
|
||||
void enable_usboh3_clk(unsigned char enable);
|
||||
#ifdef CONFIG_SECURE_BOOT
|
||||
#ifdef CONFIG_IMX_HAB
|
||||
void hab_caam_clock_enable(unsigned char enable);
|
||||
#endif
|
||||
void mxs_set_lcdclk(uint32_t base_addr, uint32_t freq);
|
||||
|
|
|
@ -26,7 +26,7 @@ enum mxc_clock {
|
|||
|
||||
u32 mxc_get_clock(enum mxc_clock clk);
|
||||
u32 get_lpuart_clk(void);
|
||||
#ifdef CONFIG_SYS_LPI2C_IMX
|
||||
#ifdef CONFIG_SYS_I2C_IMX_LPI2C
|
||||
int enable_i2c_clk(unsigned char enable, unsigned i2c_num);
|
||||
u32 imx_get_i2cclk(unsigned i2c_num);
|
||||
#endif
|
||||
|
|
|
@ -10,6 +10,8 @@
|
|||
|
||||
#define ARCH_MXC
|
||||
|
||||
#define ROM_SW_INFO_ADDR 0x000001E8
|
||||
|
||||
#define CAAM_SEC_SRAM_BASE (0x26000000)
|
||||
#define CAAM_SEC_SRAM_SIZE (SZ_32K)
|
||||
#define CAAM_SEC_SRAM_END (CAAM_SEC_SRAM_BASE + CAAM_SEC_SRAM_SIZE - 1)
|
||||
|
@ -56,6 +58,7 @@
|
|||
#define USDHC1_AIPS2_SLOT (56)
|
||||
#define RGPIO2P0_AIPS0_SLOT (15)
|
||||
#define RGPIO2P1_AIPS2_SLOT (15)
|
||||
#define SNVS_AIPS2_SLOT (35)
|
||||
#define IOMUXC0_AIPS0_SLOT (61)
|
||||
#define OCOTP_CTRL_AIPS1_SLOT (38)
|
||||
#define OCOTP_CTRL_PCC1_SLOT (38)
|
||||
|
@ -175,6 +178,9 @@
|
|||
#define USDHC0_RBASE ((AIPS2_BASE + (AIPS2_SLOT_SIZE * USDHC0_AIPS2_SLOT)))
|
||||
#define USDHC1_RBASE ((AIPS2_BASE + (AIPS2_SLOT_SIZE * USDHC1_AIPS2_SLOT)))
|
||||
|
||||
#define SNVS_BASE ((AIPS2_BASE + (AIPS2_SLOT_SIZE * SNVS_AIPS2_SLOT)))
|
||||
#define SNVS_LP_LPCR (SNVS_BASE + 0x38)
|
||||
|
||||
#define RGPIO2P0_RBASE ((AIPS0_BASE + (AIPS0_SLOT_SIZE * RGPIO2P0_AIPS0_SLOT)))
|
||||
#define RGPIO2P1_RBASE ((AIPS2_BASE + (AIPS2_SLOT_SIZE * RGPIO2P1_AIPS2_SLOT)))
|
||||
|
||||
|
@ -937,6 +943,9 @@
|
|||
#define MMDC_MPWRDQBY3DL_WR_DQ25_DEL_MASK ((0x3f << MMDC_MPWRDQBY3DL_WR_DQ25_DEL))
|
||||
#define MMDC_MPWRDQBY3DL_WR_DQ24_DEL_MASK ((0x3f << MMDC_MPWRDQBY3DL_WR_DQ24_DEL))
|
||||
|
||||
#define SNVS_LPCR_DPEN (0x20)
|
||||
#define SNVS_LPCR_SRTC_ENV (0x1)
|
||||
|
||||
#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
|
||||
|
||||
#include <asm/types.h>
|
||||
|
@ -1112,6 +1121,17 @@ struct usbphy_regs {
|
|||
u32 usb1_pfda_ctrl1_tog; /* 0x14c */
|
||||
};
|
||||
|
||||
struct bootrom_sw_info {
|
||||
u8 reserved_1;
|
||||
u8 boot_dev_instance;
|
||||
u8 boot_dev_type;
|
||||
u8 reserved_2;
|
||||
u32 core_freq;
|
||||
u32 axi_freq;
|
||||
u32 ddr_freq;
|
||||
u32 rom_tick_freq;
|
||||
u32 reserved_3[3];
|
||||
};
|
||||
|
||||
#define is_boot_from_usb(void) (!(readl(USB_PHY0_BASE_ADDR) & (1<<20)))
|
||||
#define disconnect_from_pc(void) writel(0x0, USBOTG0_RBASE + 0x140)
|
||||
|
|
|
@ -289,10 +289,10 @@ enum pcc3_entry {
|
|||
#define PCC_INUSE_MASK (0x1 << PCC_INUSE_OFFSET)
|
||||
#define PCC_PCS_OFFSET 24
|
||||
#define PCC_PCS_MASK (0x7 << PCC_PCS_OFFSET)
|
||||
#define PCC_FRAC_OFFSET 4
|
||||
#define PCC_FRAC_OFFSET 3
|
||||
#define PCC_FRAC_MASK (0x1 << PCC_FRAC_OFFSET)
|
||||
#define PCC_PCD_OFFSET 0
|
||||
#define PCC_PCD_MASK (0xf << PCC_PCD_OFFSET)
|
||||
#define PCC_PCD_MASK (0x7 << PCC_PCD_OFFSET)
|
||||
|
||||
|
||||
enum pcc_clksrc_type {
|
||||
|
|
|
@ -337,5 +337,6 @@ void scg_a7_nicclk_init(void);
|
|||
void scg_a7_sys_clk_sel(enum scg_sys_src clk);
|
||||
void scg_a7_info(void);
|
||||
void scg_a7_soscdiv_init(void);
|
||||
void scg_a7_init_core_clk(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -17,4 +17,5 @@ enum bt_mode {
|
|||
SINGLE_BOOT /* LP_BT = 0, DUAL_BT = 0 */
|
||||
};
|
||||
|
||||
enum boot_device get_boot_device(void);
|
||||
#endif
|
||||
|
|
|
@ -130,7 +130,7 @@ struct imx_sec_config_fuse_t {
|
|||
int word;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_SECURE_BOOT)
|
||||
#if defined(CONFIG_IMX_HAB)
|
||||
extern struct imx_sec_config_fuse_t const imx_sec_config_fuse;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -104,7 +104,11 @@ typedef u64 iomux_v3_cfg_t;
|
|||
#define PAD_CTL_ODE (0x1 << 5)
|
||||
#define PAD_CTL_PUE (0x1 << 6)
|
||||
#define PAD_CTL_HYS (0x1 << 7)
|
||||
#ifdef CONFIG_IMX8MM
|
||||
#define PAD_CTL_PE (0x1 << 8)
|
||||
#else
|
||||
#define PAD_CTL_LVTTL (0x1 << 8)
|
||||
#endif
|
||||
|
||||
#elif defined CONFIG_MX7
|
||||
|
||||
|
|
|
@ -38,11 +38,21 @@
|
|||
#define is_mx6solo() (is_cpu_type(MXC_CPU_MX6SOLO))
|
||||
#define is_mx6ul() (is_cpu_type(MXC_CPU_MX6UL))
|
||||
#define is_mx6ull() (is_cpu_type(MXC_CPU_MX6ULL))
|
||||
#define is_mx6ulz() (is_cpu_type(MXC_CPU_MX6ULZ))
|
||||
#define is_mx6sll() (is_cpu_type(MXC_CPU_MX6SLL))
|
||||
|
||||
#define is_mx7ulp() (is_cpu_type(MXC_CPU_MX7ULP))
|
||||
|
||||
#define is_imx8mq() (is_cpu_type(MXC_CPU_IMX8MQ))
|
||||
#define is_imx8qm() (is_cpu_type(MXC_CPU_IMX8QM))
|
||||
#define is_imx8mm() (is_cpu_type(MXC_CPU_IMX8MM) || is_cpu_type(MXC_CPU_IMX8MML) ||\
|
||||
is_cpu_type(MXC_CPU_IMX8MMD) || is_cpu_type(MXC_CPU_IMX8MMDL) || \
|
||||
is_cpu_type(MXC_CPU_IMX8MMS) || is_cpu_type(MXC_CPU_IMX8MMSL))
|
||||
#define is_imx8mml() (is_cpu_type(MXC_CPU_IMX8MML))
|
||||
#define is_imx8mmd() (is_cpu_type(MXC_CPU_IMX8MMD))
|
||||
#define is_imx8mmdl() (is_cpu_type(MXC_CPU_IMX8MMDL))
|
||||
#define is_imx8mms() (is_cpu_type(MXC_CPU_IMX8MMS))
|
||||
#define is_imx8mmsl() (is_cpu_type(MXC_CPU_IMX8MMSL))
|
||||
#define is_imx8qxp() (is_cpu_type(MXC_CPU_IMX8QXP))
|
||||
|
||||
#ifdef CONFIG_MX6
|
||||
|
|
|
@ -34,7 +34,7 @@ config USE_IMXIMG_PLUGIN
|
|||
i.MX6/7 supports DCD and Plugin. Enable this configuration
|
||||
to use Plugin, otherwise DCD will be used.
|
||||
|
||||
config SECURE_BOOT
|
||||
config IMX_HAB
|
||||
bool "Support i.MX HAB features"
|
||||
depends on ARCH_MX7 || ARCH_MX6 || ARCH_MX5
|
||||
select FSL_CAAM if HAS_CAAM
|
||||
|
@ -43,6 +43,13 @@ config SECURE_BOOT
|
|||
This option enables the support for secure boot (HAB).
|
||||
See doc/README.mxc_hab for more details.
|
||||
|
||||
config CSF_SIZE
|
||||
hex "Maximum size for Command Sequence File (CSF) binary"
|
||||
default 0x2060
|
||||
help
|
||||
Define the maximum size for Command Sequence File (CSF) binary
|
||||
this information is used to define the image boot data.
|
||||
|
||||
config CMD_BMODE
|
||||
bool "Support the 'bmode' command"
|
||||
default y
|
||||
|
|
|
@ -44,12 +44,12 @@ ifneq ($(CONFIG_SPL_BUILD),y)
|
|||
obj-$(CONFIG_IMX_BOOTAUX) += imx_bootaux.o
|
||||
endif
|
||||
obj-$(CONFIG_SATA) += sata.o
|
||||
obj-$(CONFIG_SECURE_BOOT) += hab.o
|
||||
obj-$(CONFIG_IMX_HAB) += hab.o
|
||||
obj-$(CONFIG_SYSCOUNTER_TIMER) += syscounter.o
|
||||
endif
|
||||
ifeq ($(SOC),$(filter $(SOC),mx7ulp))
|
||||
obj-y += cache.o
|
||||
obj-$(CONFIG_SECURE_BOOT) += hab.o
|
||||
obj-$(CONFIG_IMX_HAB) += hab.o
|
||||
endif
|
||||
ifeq ($(SOC),$(filter $(SOC),vf610))
|
||||
obj-y += ddrmc-vf610.o
|
||||
|
@ -90,6 +90,11 @@ IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%)
|
|||
$(Q)mkdir -p $(dir $@)
|
||||
$(call if_changed_dep,cpp_cfg)
|
||||
|
||||
IMX_CONTAINER_CFG = $(CONFIG_IMX_CONTAINER_CFG:"%"=%)
|
||||
container.cfg: $(IMX_CONTAINER_CFG) FORCE
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(call if_changed_dep,cpp_cfg)
|
||||
|
||||
ifeq ($(CONFIG_ARCH_IMX8), y)
|
||||
CNTR_DEPFILES := $(srctree)/tools/imx_cntr_image.sh
|
||||
IMAGE_TYPE := imx8image
|
||||
|
@ -158,8 +163,20 @@ SPL:
|
|||
MKIMAGEFLAGS_flash.bin = -n spl/u-boot-spl.cfgout -T $(IMAGE_TYPE) -e 0x100000
|
||||
flash.bin: MKIMAGEOUTPUT = flash.log
|
||||
|
||||
flash.bin: spl/u-boot-spl.bin u-boot.itb FORCE
|
||||
ifeq ($(SPL_DEPFILE_EXISTS),0)
|
||||
MKIMAGEFLAGS_u-boot.cnt = -n container.cfg -T $(IMAGE_TYPE) -e 0x100000
|
||||
u-boot.cnt: MKIMAGEOUTPUT = u-boot.cnt.log
|
||||
|
||||
ifeq ($(CONFIG_SPL_LOAD_IMX_CONTAINER), y)
|
||||
u-boot.cnt: u-boot.bin container.cfg FORCE
|
||||
$(call if_changed,mkimage)
|
||||
flash.bin: spl/u-boot-spl.bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
@flashbin_size=`wc -c flash.bin | awk '{print $$1}'`; \
|
||||
pad_cnt=$$(((flashbin_size + 0x400 - 1) / 0x400)); \
|
||||
echo "append u-boot.cnt at $$pad_cnt KB"; \
|
||||
dd if=u-boot.cnt of=flash.bin bs=1K seek=$$pad_cnt;
|
||||
else
|
||||
flash.bin: spl/u-boot-spl.bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -359,9 +359,11 @@ usage:
|
|||
return CMD_RET_USAGE;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SYS_LONGHELP
|
||||
static char nandbcb_help_text[] =
|
||||
"update addr off|partition len - update 'len' bytes starting at\n"
|
||||
" 'off|part' to memory address 'addr', skipping bad blocks";
|
||||
#endif
|
||||
|
||||
U_BOOT_CMD(nandbcb, 5, 1, do_nandbcb,
|
||||
"i.MX6 Nand BCB",
|
||||
|
|
|
@ -145,6 +145,18 @@ unsigned imx_ddr_size(void)
|
|||
const char *get_imx_type(u32 imxtype)
|
||||
{
|
||||
switch (imxtype) {
|
||||
case MXC_CPU_IMX8MM:
|
||||
return "8MMQ"; /* Quad-core version of the imx8mm */
|
||||
case MXC_CPU_IMX8MML:
|
||||
return "8MMQL"; /* Quad-core Lite version of the imx8mm */
|
||||
case MXC_CPU_IMX8MMD:
|
||||
return "8MMD"; /* Dual-core version of the imx8mm */
|
||||
case MXC_CPU_IMX8MMDL:
|
||||
return "8MMDL"; /* Dual-core Lite version of the imx8mm */
|
||||
case MXC_CPU_IMX8MMS:
|
||||
return "8MMS"; /* Single-core version of the imx8mm */
|
||||
case MXC_CPU_IMX8MMSL:
|
||||
return "8MMSL"; /* Single-core Lite version of the imx8mm */
|
||||
case MXC_CPU_IMX8MQ:
|
||||
return "8MQ"; /* Quad-core version of the imx8m */
|
||||
case MXC_CPU_MX7S:
|
||||
|
@ -173,6 +185,8 @@ const char *get_imx_type(u32 imxtype)
|
|||
return "6UL"; /* Ultra-Lite version of the mx6 */
|
||||
case MXC_CPU_MX6ULL:
|
||||
return "6ULL"; /* ULL version of the mx6 */
|
||||
case MXC_CPU_MX6ULZ:
|
||||
return "6ULZ"; /* ULZ version of the mx6 */
|
||||
case MXC_CPU_MX51:
|
||||
return "51";
|
||||
case MXC_CPU_MX53:
|
||||
|
|
|
@ -23,6 +23,19 @@ config IMX8QXP
|
|||
config SYS_SOC
|
||||
default "imx8"
|
||||
|
||||
config SPL_LOAD_IMX_CONTAINER
|
||||
bool "Enable SPL loading U-Boot as a i.MX Container image"
|
||||
depends on SPL
|
||||
help
|
||||
This is to let SPL could load i.MX8 Container image
|
||||
|
||||
config IMX_CONTAINER_CFG
|
||||
string "i.MX Container config file"
|
||||
depends on SPL
|
||||
help
|
||||
This is to specific the cfg file for generating container
|
||||
image which will be loaded by SPL.
|
||||
|
||||
choice
|
||||
prompt "i.MX8 board select"
|
||||
optional
|
||||
|
|
|
@ -4,4 +4,9 @@
|
|||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
obj-y += cpu.o iomux.o misc.o
|
||||
obj-y += cpu.o iomux.o misc.o lowlevel_init.o
|
||||
obj-$(CONFIG_OF_SYSTEM_SETUP) += fdt.o
|
||||
|
||||
ifdef CONFIG_SPL_BUILD
|
||||
obj-$(CONFIG_SPL_LOAD_IMX_CONTAINER) += image.o parse-container.o
|
||||
endif
|
||||
|
|
|
@ -60,18 +60,18 @@ int arch_cpu_init_dm(void)
|
|||
int node, ret;
|
||||
|
||||
node = fdt_node_offset_by_compatible(gd->fdt_blob, -1, "fsl,imx8-mu");
|
||||
ret = device_bind_driver_to_node(gd->dm_root, "imx8_scu", "imx8_scu",
|
||||
offset_to_ofnode(node), &devp);
|
||||
|
||||
ret = uclass_get_device_by_of_offset(UCLASS_MISC, node, &devp);
|
||||
if (ret) {
|
||||
printf("could not find scu %d\n", ret);
|
||||
printf("could not get scu %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = device_probe(devp);
|
||||
if (ret) {
|
||||
printf("scu probe failed %d\n", ret);
|
||||
return ret;
|
||||
if (is_imx8qm()) {
|
||||
ret = sc_pm_set_resource_power_mode(-1, SC_R_SMMU,
|
||||
SC_PM_PW_MODE_ON);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -475,10 +475,17 @@ u64 get_page_table_size(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_IMX8QM)
|
||||
#define FUSE_MAC0_WORD0 452
|
||||
#define FUSE_MAC0_WORD1 453
|
||||
#define FUSE_MAC1_WORD0 454
|
||||
#define FUSE_MAC1_WORD1 455
|
||||
#elif defined(CONFIG_IMX8QXP)
|
||||
#define FUSE_MAC0_WORD0 708
|
||||
#define FUSE_MAC0_WORD1 709
|
||||
#define FUSE_MAC1_WORD0 710
|
||||
#define FUSE_MAC1_WORD1 711
|
||||
#endif
|
||||
|
||||
void imx_get_mac_from_fuse(int dev_id, unsigned char *mac)
|
||||
{
|
||||
|
@ -528,171 +535,3 @@ u32 get_cpu_rev(void)
|
|||
return (id << 12) | rev;
|
||||
}
|
||||
|
||||
#if CONFIG_IS_ENABLED(CPU)
|
||||
struct cpu_imx_platdata {
|
||||
const char *name;
|
||||
const char *rev;
|
||||
const char *type;
|
||||
u32 cpurev;
|
||||
u32 freq_mhz;
|
||||
};
|
||||
|
||||
const char *get_imx8_type(u32 imxtype)
|
||||
{
|
||||
switch (imxtype) {
|
||||
case MXC_CPU_IMX8QXP:
|
||||
case MXC_CPU_IMX8QXP_A0:
|
||||
return "QXP";
|
||||
case MXC_CPU_IMX8QM:
|
||||
return "QM";
|
||||
default:
|
||||
return "??";
|
||||
}
|
||||
}
|
||||
|
||||
const char *get_imx8_rev(u32 rev)
|
||||
{
|
||||
switch (rev) {
|
||||
case CHIP_REV_A:
|
||||
return "A";
|
||||
case CHIP_REV_B:
|
||||
return "B";
|
||||
default:
|
||||
return "?";
|
||||
}
|
||||
}
|
||||
|
||||
const char *get_core_name(void)
|
||||
{
|
||||
if (is_cortex_a35())
|
||||
return "A35";
|
||||
else if (is_cortex_a53())
|
||||
return "A53";
|
||||
else if (is_cortex_a72())
|
||||
return "A72";
|
||||
else
|
||||
return "?";
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_IMX_SCU_THERMAL)
|
||||
static int cpu_imx_get_temp(void)
|
||||
{
|
||||
struct udevice *thermal_dev;
|
||||
int cpu_tmp, ret;
|
||||
|
||||
ret = uclass_get_device_by_name(UCLASS_THERMAL, "cpu-thermal0",
|
||||
&thermal_dev);
|
||||
|
||||
if (!ret) {
|
||||
ret = thermal_get_temp(thermal_dev, &cpu_tmp);
|
||||
if (ret)
|
||||
return 0xdeadbeef;
|
||||
} else {
|
||||
return 0xdeadbeef;
|
||||
}
|
||||
|
||||
return cpu_tmp;
|
||||
}
|
||||
#else
|
||||
static int cpu_imx_get_temp(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
int cpu_imx_get_desc(struct udevice *dev, char *buf, int size)
|
||||
{
|
||||
struct cpu_imx_platdata *plat = dev_get_platdata(dev);
|
||||
int ret;
|
||||
|
||||
if (size < 100)
|
||||
return -ENOSPC;
|
||||
|
||||
ret = snprintf(buf, size, "NXP i.MX8%s Rev%s %s at %u MHz",
|
||||
plat->type, plat->rev, plat->name, plat->freq_mhz);
|
||||
|
||||
if (IS_ENABLED(CONFIG_IMX_SCU_THERMAL)) {
|
||||
buf = buf + ret;
|
||||
size = size - ret;
|
||||
ret = snprintf(buf, size, " at %dC", cpu_imx_get_temp());
|
||||
}
|
||||
|
||||
snprintf(buf + ret, size - ret, "\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cpu_imx_get_info(struct udevice *dev, struct cpu_info *info)
|
||||
{
|
||||
struct cpu_imx_platdata *plat = dev_get_platdata(dev);
|
||||
|
||||
info->cpu_freq = plat->freq_mhz * 1000;
|
||||
info->features = BIT(CPU_FEAT_L1_CACHE) | BIT(CPU_FEAT_MMU);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cpu_imx_get_count(struct udevice *dev)
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
||||
static int cpu_imx_get_vendor(struct udevice *dev, char *buf, int size)
|
||||
{
|
||||
snprintf(buf, size, "NXP");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct cpu_ops cpu_imx8_ops = {
|
||||
.get_desc = cpu_imx_get_desc,
|
||||
.get_info = cpu_imx_get_info,
|
||||
.get_count = cpu_imx_get_count,
|
||||
.get_vendor = cpu_imx_get_vendor,
|
||||
};
|
||||
|
||||
static const struct udevice_id cpu_imx8_ids[] = {
|
||||
{ .compatible = "arm,cortex-a35" },
|
||||
{ .compatible = "arm,cortex-a53" },
|
||||
{ }
|
||||
};
|
||||
|
||||
static ulong imx8_get_cpu_rate(void)
|
||||
{
|
||||
ulong rate;
|
||||
int ret;
|
||||
int type = is_cortex_a35() ? SC_R_A35 : is_cortex_a53() ?
|
||||
SC_R_A53 : SC_R_A72;
|
||||
|
||||
ret = sc_pm_get_clock_rate(-1, type, SC_PM_CLK_CPU,
|
||||
(sc_pm_clock_rate_t *)&rate);
|
||||
if (ret) {
|
||||
printf("Could not read CPU frequency: %d\n", ret);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return rate;
|
||||
}
|
||||
|
||||
static int imx8_cpu_probe(struct udevice *dev)
|
||||
{
|
||||
struct cpu_imx_platdata *plat = dev_get_platdata(dev);
|
||||
u32 cpurev;
|
||||
|
||||
cpurev = get_cpu_rev();
|
||||
plat->cpurev = cpurev;
|
||||
plat->name = get_core_name();
|
||||
plat->rev = get_imx8_rev(cpurev & 0xFFF);
|
||||
plat->type = get_imx8_type((cpurev & 0xFF000) >> 12);
|
||||
plat->freq_mhz = imx8_get_cpu_rate() / 1000000;
|
||||
return 0;
|
||||
}
|
||||
|
||||
U_BOOT_DRIVER(cpu_imx8_drv) = {
|
||||
.name = "imx8x_cpu",
|
||||
.id = UCLASS_CPU,
|
||||
.of_match = cpu_imx8_ids,
|
||||
.ops = &cpu_imx8_ops,
|
||||
.probe = imx8_cpu_probe,
|
||||
.platdata_auto_alloc_size = sizeof(struct cpu_imx_platdata),
|
||||
.flags = DM_FLAG_PRE_RELOC,
|
||||
};
|
||||
#endif
|
||||
|
|
292
arch/arm/mach-imx/imx8/fdt.c
Normal file
292
arch/arm/mach-imx/imx8/fdt.c
Normal file
|
@ -0,0 +1,292 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright 2019 NXP
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/arch/sci/sci.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <dm/ofnode.h>
|
||||
#include <fdt_support.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
static bool check_owned_resource(sc_rsrc_t rsrc_id)
|
||||
{
|
||||
bool owned;
|
||||
|
||||
owned = sc_rm_is_resource_owned(-1, rsrc_id);
|
||||
|
||||
return owned;
|
||||
}
|
||||
|
||||
static int disable_fdt_node(void *blob, int nodeoffset)
|
||||
{
|
||||
int rc, ret;
|
||||
const char *status = "disabled";
|
||||
|
||||
do {
|
||||
rc = fdt_setprop(blob, nodeoffset, "status", status,
|
||||
strlen(status) + 1);
|
||||
if (rc) {
|
||||
if (rc == -FDT_ERR_NOSPACE) {
|
||||
ret = fdt_increase_size(blob, 512);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
} while (rc == -FDT_ERR_NOSPACE);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
static void update_fdt_with_owned_resources(void *blob)
|
||||
{
|
||||
/*
|
||||
* Traverses the fdt nodes, check its power domain and use
|
||||
* the resource id in the power domain for checking whether
|
||||
* it is owned by current partition
|
||||
*/
|
||||
struct fdtdec_phandle_args args;
|
||||
int offset = 0, depth = 0;
|
||||
u32 rsrc_id;
|
||||
int rc, i;
|
||||
|
||||
for (offset = fdt_next_node(blob, offset, &depth); offset > 0;
|
||||
offset = fdt_next_node(blob, offset, &depth)) {
|
||||
debug("Node name: %s, depth %d\n",
|
||||
fdt_get_name(blob, offset, NULL), depth);
|
||||
|
||||
if (!fdt_get_property(blob, offset, "power-domains", NULL)) {
|
||||
debug(" - ignoring node %s\n",
|
||||
fdt_get_name(blob, offset, NULL));
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!fdtdec_get_is_enabled(blob, offset)) {
|
||||
debug(" - ignoring node %s\n",
|
||||
fdt_get_name(blob, offset, NULL));
|
||||
continue;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
while (true) {
|
||||
rc = fdtdec_parse_phandle_with_args(blob, offset,
|
||||
"power-domains",
|
||||
"#power-domain-cells",
|
||||
0, i++, &args);
|
||||
if (rc == -ENOENT) {
|
||||
break;
|
||||
} else if (rc) {
|
||||
printf("Parse power-domains of %s wrong: %d\n",
|
||||
fdt_get_name(blob, offset, NULL), rc);
|
||||
continue;
|
||||
}
|
||||
|
||||
rsrc_id = args.args[0];
|
||||
|
||||
if (!check_owned_resource(rsrc_id)) {
|
||||
rc = disable_fdt_node(blob, offset);
|
||||
if (!rc) {
|
||||
printf("Disable %s rsrc %u not owned\n",
|
||||
fdt_get_name(blob, offset, NULL),
|
||||
rsrc_id);
|
||||
} else {
|
||||
printf("Unable to disable %s, err=%s\n",
|
||||
fdt_get_name(blob, offset, NULL),
|
||||
fdt_strerror(rc));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static int config_smmu_resource_sid(int rsrc, int sid)
|
||||
{
|
||||
int err;
|
||||
|
||||
if (!check_owned_resource(rsrc)) {
|
||||
printf("%s rsrc[%d] not owned\n", __func__, rsrc);
|
||||
return -1;
|
||||
}
|
||||
err = sc_rm_set_master_sid(-1, rsrc, sid);
|
||||
debug("set_master_sid rsrc=%d sid=0x%x err=%d\n", rsrc, sid, err);
|
||||
if (err != SC_ERR_NONE) {
|
||||
pr_err("fail set_master_sid rsrc=%d sid=0x%x err=%d\n", rsrc, sid, err);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int config_smmu_fdt_device_sid(void *blob, int device_offset, int sid)
|
||||
{
|
||||
const char *name = fdt_get_name(blob, device_offset, NULL);
|
||||
struct fdtdec_phandle_args args;
|
||||
int rsrc, ret;
|
||||
int proplen;
|
||||
const fdt32_t *prop;
|
||||
int i;
|
||||
|
||||
prop = fdt_getprop(blob, device_offset, "fsl,sc_rsrc_id", &proplen);
|
||||
if (prop) {
|
||||
int i;
|
||||
|
||||
debug("configure node %s sid 0x%x for %d resources\n",
|
||||
name, sid, (int)(proplen / sizeof(fdt32_t)));
|
||||
for (i = 0; i < proplen / sizeof(fdt32_t); ++i) {
|
||||
ret = config_smmu_resource_sid(fdt32_to_cpu(prop[i]),
|
||||
sid);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
while (true) {
|
||||
ret = fdtdec_parse_phandle_with_args(blob, device_offset,
|
||||
"power-domains",
|
||||
"#power-domain-cells",
|
||||
0, i++, &args);
|
||||
if (ret == -ENOENT) {
|
||||
break;
|
||||
} else if (ret) {
|
||||
printf("Parse power-domains of node %s wrong: %d\n",
|
||||
fdt_get_name(blob, device_offset, NULL), ret);
|
||||
continue;
|
||||
}
|
||||
|
||||
debug("configure node %s sid 0x%x rsrc=%d\n",
|
||||
name, sid, rsrc);
|
||||
rsrc = args.args[0];
|
||||
|
||||
ret = config_smmu_resource_sid(rsrc, sid);
|
||||
if (ret)
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int config_smmu_fdt(void *blob)
|
||||
{
|
||||
int offset, proplen, i, ret;
|
||||
const fdt32_t *prop;
|
||||
const char *name;
|
||||
|
||||
/* Legacy smmu bindings, still used by xen. */
|
||||
offset = fdt_node_offset_by_compatible(blob, 0, "arm,mmu-500");
|
||||
prop = fdt_getprop(blob, offset, "mmu-masters", &proplen);
|
||||
if (offset > 0 && prop) {
|
||||
debug("found legacy mmu-masters property\n");
|
||||
|
||||
for (i = 0; i < proplen / 8; ++i) {
|
||||
u32 phandle = fdt32_to_cpu(prop[2 * i]);
|
||||
int sid = fdt32_to_cpu(prop[2 * i + 1]);
|
||||
int device_offset;
|
||||
|
||||
device_offset = fdt_node_offset_by_phandle(blob,
|
||||
phandle);
|
||||
if (device_offset < 0) {
|
||||
pr_err("Not find device from mmu_masters: %d",
|
||||
device_offset);
|
||||
continue;
|
||||
}
|
||||
ret = config_smmu_fdt_device_sid(blob, device_offset,
|
||||
sid);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Ignore new bindings if old bindings found, just like linux. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Generic smmu bindings */
|
||||
offset = 0;
|
||||
while ((offset = fdt_next_node(blob, offset, NULL)) > 0) {
|
||||
name = fdt_get_name(blob, offset, NULL);
|
||||
prop = fdt_getprop(blob, offset, "iommus", &proplen);
|
||||
if (!prop)
|
||||
continue;
|
||||
debug("node %s iommus proplen %d\n", name, proplen);
|
||||
|
||||
if (proplen == 12) {
|
||||
int sid = fdt32_to_cpu(prop[1]);
|
||||
|
||||
config_smmu_fdt_device_sid(blob, offset, sid);
|
||||
} else if (proplen != 4) {
|
||||
debug("node %s ignore unexpected iommus proplen=%d\n",
|
||||
name, proplen);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ft_add_optee_node(void *fdt, bd_t *bd)
|
||||
{
|
||||
const char *path, *subpath;
|
||||
int offs;
|
||||
|
||||
/*
|
||||
* No TEE space allocated indicating no TEE running, so no
|
||||
* need to add optee node in dts
|
||||
*/
|
||||
if (!boot_pointer[1])
|
||||
return 0;
|
||||
|
||||
offs = fdt_increase_size(fdt, 512);
|
||||
if (offs) {
|
||||
printf("No Space for dtb\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
path = "/firmware";
|
||||
offs = fdt_path_offset(fdt, path);
|
||||
if (offs < 0) {
|
||||
path = "/";
|
||||
offs = fdt_path_offset(fdt, path);
|
||||
|
||||
if (offs < 0) {
|
||||
printf("Could not find root node.\n");
|
||||
return offs;
|
||||
}
|
||||
|
||||
subpath = "firmware";
|
||||
offs = fdt_add_subnode(fdt, offs, subpath);
|
||||
if (offs < 0) {
|
||||
printf("Could not create %s node.\n", subpath);
|
||||
return offs;
|
||||
}
|
||||
}
|
||||
|
||||
subpath = "optee";
|
||||
offs = fdt_add_subnode(fdt, offs, subpath);
|
||||
if (offs < 0) {
|
||||
printf("Could not create %s node.\n", subpath);
|
||||
return offs;
|
||||
}
|
||||
|
||||
fdt_setprop_string(fdt, offs, "compatible", "linaro,optee-tz");
|
||||
fdt_setprop_string(fdt, offs, "method", "smc");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ft_system_setup(void *blob, bd_t *bd)
|
||||
{
|
||||
int ret;
|
||||
|
||||
update_fdt_with_owned_resources(blob);
|
||||
|
||||
if (is_imx8qm()) {
|
||||
ret = config_smmu_fdt(blob);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return ft_add_optee_node(blob, bd);
|
||||
}
|
246
arch/arm/mach-imx/imx8/image.c
Normal file
246
arch/arm/mach-imx/imx8/image.c
Normal file
|
@ -0,0 +1,246 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright 2019 NXP
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <errno.h>
|
||||
#include <asm/io.h>
|
||||
#include <mmc.h>
|
||||
#include <spi_flash.h>
|
||||
#include <nand.h>
|
||||
#include <asm/arch/image.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
|
||||
#define MMC_DEV 0
|
||||
#define QSPI_DEV 1
|
||||
#define NAND_DEV 2
|
||||
#define QSPI_NOR_DEV 3
|
||||
|
||||
static int __get_container_size(ulong addr)
|
||||
{
|
||||
struct container_hdr *phdr;
|
||||
struct boot_img_t *img_entry;
|
||||
struct signature_block_hdr *sign_hdr;
|
||||
u8 i = 0;
|
||||
u32 max_offset = 0, img_end;
|
||||
|
||||
phdr = (struct container_hdr *)addr;
|
||||
if (phdr->tag != 0x87 && phdr->version != 0x0) {
|
||||
debug("Wrong container header\n");
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
max_offset = sizeof(struct container_hdr);
|
||||
|
||||
img_entry = (struct boot_img_t *)(addr + sizeof(struct container_hdr));
|
||||
for (i = 0; i < phdr->num_images; i++) {
|
||||
img_end = img_entry->offset + img_entry->size;
|
||||
if (img_end > max_offset)
|
||||
max_offset = img_end;
|
||||
|
||||
debug("img[%u], end = 0x%x\n", i, img_end);
|
||||
|
||||
img_entry++;
|
||||
}
|
||||
|
||||
if (phdr->sig_blk_offset != 0) {
|
||||
sign_hdr = (struct signature_block_hdr *)(addr + phdr->sig_blk_offset);
|
||||
u16 len = sign_hdr->length_lsb + (sign_hdr->length_msb << 8);
|
||||
|
||||
if (phdr->sig_blk_offset + len > max_offset)
|
||||
max_offset = phdr->sig_blk_offset + len;
|
||||
|
||||
debug("sigblk, end = 0x%x\n", phdr->sig_blk_offset + len);
|
||||
}
|
||||
|
||||
return max_offset;
|
||||
}
|
||||
|
||||
static int get_container_size(void *dev, int dev_type, unsigned long offset)
|
||||
{
|
||||
u8 *buf = malloc(CONTAINER_HDR_ALIGNMENT);
|
||||
int ret = 0;
|
||||
|
||||
if (!buf) {
|
||||
printf("Malloc buffer failed\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SPL_MMC_SUPPORT
|
||||
if (dev_type == MMC_DEV) {
|
||||
unsigned long count = 0;
|
||||
struct mmc *mmc = (struct mmc *)dev;
|
||||
|
||||
count = blk_dread(mmc_get_blk_desc(mmc),
|
||||
offset / mmc->read_bl_len,
|
||||
CONTAINER_HDR_ALIGNMENT / mmc->read_bl_len,
|
||||
buf);
|
||||
if (count == 0) {
|
||||
printf("Read container image from MMC/SD failed\n");
|
||||
return -EIO;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SPL_SPI_LOAD
|
||||
if (dev_type == QSPI_DEV) {
|
||||
struct spi_flash *flash = (struct spi_flash *)dev;
|
||||
|
||||
ret = spi_flash_read(flash, offset,
|
||||
CONTAINER_HDR_ALIGNMENT, buf);
|
||||
if (ret != 0) {
|
||||
printf("Read container image from QSPI failed\n");
|
||||
return -EIO;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SPL_NAND_SUPPORT
|
||||
if (dev_type == NAND_DEV) {
|
||||
ret = nand_spl_load_image(offset, CONTAINER_HDR_ALIGNMENT,
|
||||
buf);
|
||||
if (ret != 0) {
|
||||
printf("Read container image from NAND failed\n");
|
||||
return -EIO;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SPL_NOR_SUPPORT
|
||||
if (dev_type == QSPI_NOR_DEV)
|
||||
memcpy(buf, (const void *)offset, CONTAINER_HDR_ALIGNMENT);
|
||||
#endif
|
||||
|
||||
ret = __get_container_size((ulong)buf);
|
||||
|
||||
free(buf);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static unsigned long get_boot_device_offset(void *dev, int dev_type)
|
||||
{
|
||||
unsigned long offset = 0;
|
||||
|
||||
if (dev_type == MMC_DEV) {
|
||||
struct mmc *mmc = (struct mmc *)dev;
|
||||
|
||||
if (IS_SD(mmc) || mmc->part_config == MMCPART_NOAVAILABLE) {
|
||||
offset = CONTAINER_HDR_MMCSD_OFFSET;
|
||||
} else {
|
||||
u8 part = EXT_CSD_EXTRACT_BOOT_PART(mmc->part_config);
|
||||
|
||||
if (part == 1 || part == 2) {
|
||||
if (is_imx8qxp() && is_soc_rev(CHIP_REV_B))
|
||||
offset = CONTAINER_HDR_MMCSD_OFFSET;
|
||||
else
|
||||
offset = CONTAINER_HDR_EMMC_OFFSET;
|
||||
} else {
|
||||
offset = CONTAINER_HDR_MMCSD_OFFSET;
|
||||
}
|
||||
}
|
||||
} else if (dev_type == QSPI_DEV) {
|
||||
offset = CONTAINER_HDR_QSPI_OFFSET;
|
||||
} else if (dev_type == NAND_DEV) {
|
||||
offset = CONTAINER_HDR_NAND_OFFSET;
|
||||
} else if (dev_type == QSPI_NOR_DEV) {
|
||||
offset = CONTAINER_HDR_QSPI_OFFSET + 0x08000000;
|
||||
}
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
static int get_imageset_end(void *dev, int dev_type)
|
||||
{
|
||||
unsigned long offset1 = 0, offset2 = 0;
|
||||
int value_container[2];
|
||||
|
||||
offset1 = get_boot_device_offset(dev, dev_type);
|
||||
offset2 = CONTAINER_HDR_ALIGNMENT + offset1;
|
||||
|
||||
value_container[0] = get_container_size(dev, dev_type, offset1);
|
||||
if (value_container[0] < 0) {
|
||||
printf("Parse seco container failed %d\n", value_container[0]);
|
||||
return value_container[0];
|
||||
}
|
||||
|
||||
debug("seco container size 0x%x\n", value_container[0]);
|
||||
|
||||
value_container[1] = get_container_size(dev, dev_type, offset2);
|
||||
if (value_container[1] < 0) {
|
||||
debug("Parse scu container failed %d, only seco container\n",
|
||||
value_container[1]);
|
||||
/* return seco container total size */
|
||||
return value_container[0] + offset1;
|
||||
}
|
||||
|
||||
debug("scu container size 0x%x\n", value_container[1]);
|
||||
|
||||
return value_container[1] + offset2;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SPL_SPI_LOAD
|
||||
unsigned long spl_spi_get_uboot_offs(struct spi_flash *flash)
|
||||
{
|
||||
int end;
|
||||
|
||||
end = get_imageset_end(flash, QSPI_DEV);
|
||||
end = ROUND(end, SZ_1K);
|
||||
|
||||
printf("Load image from QSPI 0x%x\n", end);
|
||||
|
||||
return end;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SPL_MMC_SUPPORT
|
||||
unsigned long spl_mmc_get_uboot_raw_sector(struct mmc *mmc)
|
||||
{
|
||||
int end;
|
||||
|
||||
end = get_imageset_end(mmc, MMC_DEV);
|
||||
end = ROUND(end, SZ_1K);
|
||||
|
||||
printf("Load image from MMC/SD 0x%x\n", end);
|
||||
|
||||
return end / mmc->read_bl_len;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SPL_NAND_SUPPORT
|
||||
uint32_t spl_nand_get_uboot_raw_page(void)
|
||||
{
|
||||
int end;
|
||||
|
||||
end = get_imageset_end((void *)NULL, NAND_DEV);
|
||||
end = ROUND(end, SZ_16K);
|
||||
|
||||
printf("Load image from NAND 0x%x\n", end);
|
||||
|
||||
return end;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SPL_NOR_SUPPORT
|
||||
unsigned long spl_nor_get_uboot_base(void)
|
||||
{
|
||||
int end;
|
||||
|
||||
/* Calculate the image set end,
|
||||
* if it is less than CONFIG_SYS_UBOOT_BASE(0x8281000),
|
||||
* we use CONFIG_SYS_UBOOT_BASE
|
||||
* Otherwise, use the calculated address
|
||||
*/
|
||||
end = get_imageset_end((void *)NULL, QSPI_NOR_DEV);
|
||||
if (end <= CONFIG_SYS_UBOOT_BASE)
|
||||
end = CONFIG_SYS_UBOOT_BASE;
|
||||
else
|
||||
end = ROUND(end, SZ_1K);
|
||||
|
||||
printf("Load image from NOR 0x%x\n", end);
|
||||
|
||||
return end;
|
||||
}
|
||||
#endif
|
36
arch/arm/mach-imx/imx8/lowlevel_init.S
Normal file
36
arch/arm/mach-imx/imx8/lowlevel_init.S
Normal file
|
@ -0,0 +1,36 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2019 NXP
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
.align 8
|
||||
.global boot_pointer
|
||||
boot_pointer:
|
||||
.space 32
|
||||
|
||||
/*
|
||||
* Routine: save_boot_params (called after reset from start.S)
|
||||
*/
|
||||
|
||||
.global save_boot_params
|
||||
save_boot_params:
|
||||
/* The firmware provided ATAG/FDT address can be found in r2/x0 */
|
||||
adr x0, boot_pointer
|
||||
stp x1, x2, [x0], #16
|
||||
stp x3, x4, [x0], #16
|
||||
|
||||
/*
|
||||
* We use absolute address not PC relative address for return.
|
||||
* When running SPL on iMX8, the A core starts at address 0,
|
||||
* an alias to OCRAM 0x100000, our linker address for SPL is
|
||||
* from 0x100000. So using absolute address can jump to the OCRAM
|
||||
* address from the alias. The alias only map first 96KB of OCRAM,
|
||||
* so this require the SPL size can't beyond 96KB.
|
||||
* But when using SPL DM, the size increase significantly and
|
||||
* always beyonds 96KB. That's why we have to jump to OCRAM.
|
||||
* Normal u-boot also runs into this codes, but there is no impact.
|
||||
*/
|
||||
ldr x1, =save_boot_params_ret
|
||||
br x1
|
120
arch/arm/mach-imx/imx8/parse-container.c
Normal file
120
arch/arm/mach-imx/imx8/parse-container.c
Normal file
|
@ -0,0 +1,120 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright 2018-2019 NXP
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <errno.h>
|
||||
#include <spl.h>
|
||||
#include <asm/arch/image.h>
|
||||
|
||||
static struct boot_img_t *read_auth_image(struct spl_image_info *spl_image,
|
||||
struct spl_load_info *info,
|
||||
struct container_hdr *container,
|
||||
int image_index,
|
||||
u32 container_sector)
|
||||
{
|
||||
struct boot_img_t *images;
|
||||
ulong sector;
|
||||
u32 sectors;
|
||||
|
||||
if (image_index > container->num_images) {
|
||||
debug("Invalid image number\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
images = (struct boot_img_t *)((u8 *)container +
|
||||
sizeof(struct container_hdr));
|
||||
|
||||
if (images[image_index].offset % info->bl_len) {
|
||||
printf("%s: image%d offset not aligned to %u\n",
|
||||
__func__, image_index, info->bl_len);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
sectors = roundup(images[image_index].size, info->bl_len) /
|
||||
info->bl_len;
|
||||
sector = images[image_index].offset / info->bl_len +
|
||||
container_sector;
|
||||
|
||||
debug("%s: container: %p sector: %lu sectors: %u\n", __func__,
|
||||
container, sector, sectors);
|
||||
if (info->read(info, sector, sectors,
|
||||
(void *)images[image_index].entry) != sectors) {
|
||||
printf("%s wrong\n", __func__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return &images[image_index];
|
||||
}
|
||||
|
||||
static int read_auth_container(struct spl_image_info *spl_image,
|
||||
struct spl_load_info *info, ulong sector)
|
||||
{
|
||||
struct container_hdr *container = NULL;
|
||||
u16 length;
|
||||
u32 sectors;
|
||||
int i, size;
|
||||
|
||||
size = roundup(CONTAINER_HDR_ALIGNMENT, info->bl_len);
|
||||
sectors = size / info->bl_len;
|
||||
|
||||
/*
|
||||
* It will not override the ATF code, so safe to use it here,
|
||||
* no need malloc
|
||||
*/
|
||||
container = (struct container_hdr *)spl_get_load_buffer(-size, size);
|
||||
|
||||
debug("%s: container: %p sector: %lu sectors: %u\n", __func__,
|
||||
container, sector, sectors);
|
||||
if (info->read(info, sector, sectors, container) != sectors)
|
||||
return -EIO;
|
||||
|
||||
if (container->tag != 0x87 && container->version != 0x0) {
|
||||
printf("Wrong container header");
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
if (!container->num_images) {
|
||||
printf("Wrong container, no image found");
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
length = container->length_lsb + (container->length_msb << 8);
|
||||
debug("Container length %u\n", length);
|
||||
|
||||
if (length > CONTAINER_HDR_ALIGNMENT) {
|
||||
size = roundup(length, info->bl_len);
|
||||
sectors = size / info->bl_len;
|
||||
|
||||
container = (struct container_hdr *)spl_get_load_buffer(-size, size);
|
||||
|
||||
debug("%s: container: %p sector: %lu sectors: %u\n",
|
||||
__func__, container, sector, sectors);
|
||||
if (info->read(info, sector, sectors, container) !=
|
||||
sectors)
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
for (i = 0; i < container->num_images; i++) {
|
||||
struct boot_img_t *image = read_auth_image(spl_image, info,
|
||||
container, i,
|
||||
sector);
|
||||
|
||||
if (!image)
|
||||
return -EINVAL;
|
||||
|
||||
if (i == 0) {
|
||||
spl_image->load_addr = image->dst;
|
||||
spl_image->entry_point = image->entry;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int spl_load_imx_container(struct spl_image_info *spl_image,
|
||||
struct spl_load_info *info, ulong sector)
|
||||
{
|
||||
return read_auth_container(spl_image, info, sector);
|
||||
}
|
|
@ -4,6 +4,14 @@ config IMX8M
|
|||
bool
|
||||
select ROM_UNIFIED_SECTIONS
|
||||
|
||||
config IMX8MQ
|
||||
bool
|
||||
select IMX8M
|
||||
|
||||
config IMX8MM
|
||||
bool
|
||||
select IMX8M
|
||||
|
||||
config SYS_SOC
|
||||
default "imx8m"
|
||||
|
||||
|
@ -13,11 +21,18 @@ choice
|
|||
|
||||
config TARGET_IMX8MQ_EVK
|
||||
bool "imx8mq_evk"
|
||||
select IMX8M
|
||||
select IMX8MQ
|
||||
select IMX8M_LPDDR4
|
||||
|
||||
config TARGET_IMX8MM_EVK
|
||||
bool "imx8mm LPDDR4 EVK board"
|
||||
select IMX8MM
|
||||
select SUPPORT_SPL
|
||||
select IMX8M_LPDDR4
|
||||
|
||||
endchoice
|
||||
|
||||
source "board/freescale/imx8mq_evk/Kconfig"
|
||||
source "board/freescale/imx8mm_evk/Kconfig"
|
||||
|
||||
endif
|
||||
|
|
|
@ -3,4 +3,6 @@
|
|||
# Copyright 2017 NXP
|
||||
|
||||
obj-y += lowlevel_init.o
|
||||
obj-y += clock.o clock_slice.o soc.o
|
||||
obj-y += clock_slice.o soc.o
|
||||
obj-$(CONFIG_IMX8MQ) += clock_imx8mq.o
|
||||
obj-$(CONFIG_IMX8MM) += clock_imx8mm.o
|
||||
|
|
306
arch/arm/mach-imx/imx8m/clock_imx8mm.c
Normal file
306
arch/arm/mach-imx/imx8m/clock_imx8mm.c
Normal file
|
@ -0,0 +1,306 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright 2018-2019 NXP
|
||||
*
|
||||
* Peng Fan <peng.fan@nxp.com>
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/io.h>
|
||||
#include <clk.h>
|
||||
#include <clk-uclass.h>
|
||||
#include <dt-bindings/clock/imx8mm-clock.h>
|
||||
#include <div64.h>
|
||||
#include <errno.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
static struct anamix_pll *ana_pll = (struct anamix_pll *)ANATOP_BASE_ADDR;
|
||||
|
||||
void enable_ocotp_clk(unsigned char enable)
|
||||
{
|
||||
struct clk *clkp;
|
||||
int ret;
|
||||
|
||||
ret = clk_get_by_id(IMX8MM_CLK_OCOTP_ROOT, &clkp);
|
||||
if (ret) {
|
||||
printf("%s: err: %d\n", __func__, ret);
|
||||
return;
|
||||
}
|
||||
|
||||
enable ? clk_enable(clkp) : clk_disable(clkp);
|
||||
}
|
||||
|
||||
int enable_i2c_clk(unsigned char enable, unsigned i2c_num)
|
||||
{
|
||||
struct clk *clkp;
|
||||
int ret;
|
||||
|
||||
ret = clk_get_by_id(IMX8MM_CLK_I2C1_ROOT + i2c_num, &clkp);
|
||||
if (ret) {
|
||||
printf("%s: err: %d\n", __func__, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return enable ? clk_enable(clkp) : clk_disable(clkp);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
static struct imx_int_pll_rate_table imx8mm_fracpll_tbl[] = {
|
||||
PLL_1443X_RATE(800000000U, 300, 9, 0, 0),
|
||||
PLL_1443X_RATE(750000000U, 250, 8, 0, 0),
|
||||
PLL_1443X_RATE(650000000U, 325, 3, 2, 0),
|
||||
PLL_1443X_RATE(600000000U, 300, 3, 2, 0),
|
||||
PLL_1443X_RATE(594000000U, 99, 1, 2, 0),
|
||||
PLL_1443X_RATE(400000000U, 300, 9, 1, 0),
|
||||
PLL_1443X_RATE(266666667U, 400, 9, 2, 0),
|
||||
PLL_1443X_RATE(167000000U, 334, 3, 4, 0),
|
||||
PLL_1443X_RATE(100000000U, 300, 9, 3, 0),
|
||||
};
|
||||
|
||||
int fracpll_configure(enum pll_clocks pll, u32 freq)
|
||||
{
|
||||
int i;
|
||||
u32 tmp, div_val;
|
||||
void *pll_base;
|
||||
struct imx_int_pll_rate_table *rate;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(imx8mm_fracpll_tbl); i++) {
|
||||
if (freq == imx8mm_fracpll_tbl[i].rate)
|
||||
break;
|
||||
}
|
||||
|
||||
if (i == ARRAY_SIZE(imx8mm_fracpll_tbl)) {
|
||||
printf("No matched freq table %u\n", freq);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
rate = &imx8mm_fracpll_tbl[i];
|
||||
|
||||
switch (pll) {
|
||||
case ANATOP_DRAM_PLL:
|
||||
setbits_le32(GPC_BASE_ADDR + 0xEC, 1 << 7);
|
||||
setbits_le32(GPC_BASE_ADDR + 0xF8, 1 << 5);
|
||||
writel(SRC_DDR1_ENABLE_MASK, SRC_BASE_ADDR + 0x1004);
|
||||
|
||||
pll_base = &ana_pll->dram_pll_gnrl_ctl;
|
||||
break;
|
||||
case ANATOP_VIDEO_PLL:
|
||||
pll_base = &ana_pll->video_pll1_gnrl_ctl;
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
/* Bypass clock and set lock to pll output lock */
|
||||
tmp = readl(pll_base);
|
||||
tmp |= BYPASS_MASK;
|
||||
writel(tmp, pll_base);
|
||||
|
||||
/* Enable RST */
|
||||
tmp &= ~RST_MASK;
|
||||
writel(tmp, pll_base);
|
||||
|
||||
div_val = (rate->mdiv << MDIV_SHIFT) | (rate->pdiv << PDIV_SHIFT) |
|
||||
(rate->sdiv << SDIV_SHIFT);
|
||||
writel(div_val, pll_base + 4);
|
||||
writel(rate->kdiv << KDIV_SHIFT, pll_base + 8);
|
||||
|
||||
__udelay(100);
|
||||
|
||||
/* Disable RST */
|
||||
tmp |= RST_MASK;
|
||||
writel(tmp, pll_base);
|
||||
|
||||
/* Wait Lock*/
|
||||
while (!(readl(pll_base) & LOCK_STATUS))
|
||||
;
|
||||
|
||||
/* Bypass */
|
||||
tmp &= ~BYPASS_MASK;
|
||||
writel(tmp, pll_base);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void dram_pll_init(ulong pll_val)
|
||||
{
|
||||
fracpll_configure(ANATOP_DRAM_PLL, pll_val);
|
||||
}
|
||||
|
||||
static struct dram_bypass_clk_setting imx8mm_dram_bypass_tbl[] = {
|
||||
DRAM_BYPASS_ROOT_CONFIG(MHZ(100), 2, CLK_ROOT_PRE_DIV1, 2,
|
||||
CLK_ROOT_PRE_DIV2),
|
||||
DRAM_BYPASS_ROOT_CONFIG(MHZ(250), 3, CLK_ROOT_PRE_DIV2, 2,
|
||||
CLK_ROOT_PRE_DIV2),
|
||||
DRAM_BYPASS_ROOT_CONFIG(MHZ(400), 1, CLK_ROOT_PRE_DIV2, 3,
|
||||
CLK_ROOT_PRE_DIV2),
|
||||
};
|
||||
|
||||
void dram_enable_bypass(ulong clk_val)
|
||||
{
|
||||
int i;
|
||||
struct dram_bypass_clk_setting *config;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(imx8mm_dram_bypass_tbl); i++) {
|
||||
if (clk_val == imx8mm_dram_bypass_tbl[i].clk)
|
||||
break;
|
||||
}
|
||||
|
||||
if (i == ARRAY_SIZE(imx8mm_dram_bypass_tbl)) {
|
||||
printf("No matched freq table %lu\n", clk_val);
|
||||
return;
|
||||
}
|
||||
|
||||
config = &imx8mm_dram_bypass_tbl[i];
|
||||
|
||||
clock_set_target_val(DRAM_ALT_CLK_ROOT, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(config->alt_root_sel) |
|
||||
CLK_ROOT_PRE_DIV(config->alt_pre_div));
|
||||
clock_set_target_val(DRAM_APB_CLK_ROOT, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(config->apb_root_sel) |
|
||||
CLK_ROOT_PRE_DIV(config->apb_pre_div));
|
||||
clock_set_target_val(DRAM_SEL_CFG, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(1));
|
||||
}
|
||||
|
||||
void dram_disable_bypass(void)
|
||||
{
|
||||
clock_set_target_val(DRAM_SEL_CFG, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(0));
|
||||
clock_set_target_val(DRAM_APB_CLK_ROOT, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(4) |
|
||||
CLK_ROOT_PRE_DIV(CLK_ROOT_PRE_DIV5));
|
||||
}
|
||||
#endif
|
||||
|
||||
void init_uart_clk(u32 index)
|
||||
{
|
||||
/*
|
||||
* set uart clock root
|
||||
* 24M OSC
|
||||
*/
|
||||
switch (index) {
|
||||
case 0:
|
||||
clock_enable(CCGR_UART1, 0);
|
||||
clock_set_target_val(UART1_CLK_ROOT, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(0));
|
||||
clock_enable(CCGR_UART1, 1);
|
||||
return;
|
||||
case 1:
|
||||
clock_enable(CCGR_UART2, 0);
|
||||
clock_set_target_val(UART2_CLK_ROOT, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(0));
|
||||
clock_enable(CCGR_UART2, 1);
|
||||
return;
|
||||
case 2:
|
||||
clock_enable(CCGR_UART3, 0);
|
||||
clock_set_target_val(UART3_CLK_ROOT, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(0));
|
||||
clock_enable(CCGR_UART3, 1);
|
||||
return;
|
||||
case 3:
|
||||
clock_enable(CCGR_UART4, 0);
|
||||
clock_set_target_val(UART4_CLK_ROOT, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(0));
|
||||
clock_enable(CCGR_UART4, 1);
|
||||
return;
|
||||
default:
|
||||
printf("Invalid uart index\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void init_wdog_clk(void)
|
||||
{
|
||||
clock_enable(CCGR_WDOG1, 0);
|
||||
clock_enable(CCGR_WDOG2, 0);
|
||||
clock_enable(CCGR_WDOG3, 0);
|
||||
clock_set_target_val(WDOG_CLK_ROOT, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(0));
|
||||
clock_enable(CCGR_WDOG1, 1);
|
||||
clock_enable(CCGR_WDOG2, 1);
|
||||
clock_enable(CCGR_WDOG3, 1);
|
||||
}
|
||||
|
||||
int clock_init(void)
|
||||
{
|
||||
u32 val_cfg0;
|
||||
|
||||
/*
|
||||
* The gate is not exported to clk tree, so configure them here.
|
||||
* According to ANAMIX SPEC
|
||||
* sys pll1 fixed at 800MHz
|
||||
* sys pll2 fixed at 1GHz
|
||||
* Here we only enable the outputs.
|
||||
*/
|
||||
val_cfg0 = readl(&ana_pll->sys_pll1_gnrl_ctl);
|
||||
val_cfg0 |= INTPLL_CLKE_MASK | INTPLL_DIV2_CLKE_MASK |
|
||||
INTPLL_DIV3_CLKE_MASK | INTPLL_DIV4_CLKE_MASK |
|
||||
INTPLL_DIV5_CLKE_MASK | INTPLL_DIV6_CLKE_MASK |
|
||||
INTPLL_DIV8_CLKE_MASK | INTPLL_DIV10_CLKE_MASK |
|
||||
INTPLL_DIV20_CLKE_MASK;
|
||||
writel(val_cfg0, &ana_pll->sys_pll1_gnrl_ctl);
|
||||
|
||||
val_cfg0 = readl(&ana_pll->sys_pll2_gnrl_ctl);
|
||||
val_cfg0 |= INTPLL_CLKE_MASK | INTPLL_DIV2_CLKE_MASK |
|
||||
INTPLL_DIV3_CLKE_MASK | INTPLL_DIV4_CLKE_MASK |
|
||||
INTPLL_DIV5_CLKE_MASK | INTPLL_DIV6_CLKE_MASK |
|
||||
INTPLL_DIV8_CLKE_MASK | INTPLL_DIV10_CLKE_MASK |
|
||||
INTPLL_DIV20_CLKE_MASK;
|
||||
writel(val_cfg0, &ana_pll->sys_pll2_gnrl_ctl);
|
||||
|
||||
/* config GIC to sys_pll2_100m */
|
||||
clock_enable(CCGR_GIC, 0);
|
||||
clock_set_target_val(GIC_CLK_ROOT, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(3));
|
||||
clock_enable(CCGR_GIC, 1);
|
||||
|
||||
clock_set_target_val(NAND_USDHC_BUS_CLK_ROOT, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(1));
|
||||
|
||||
clock_enable(CCGR_DDR1, 0);
|
||||
clock_set_target_val(DRAM_ALT_CLK_ROOT, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(1));
|
||||
clock_set_target_val(DRAM_APB_CLK_ROOT, CLK_ROOT_ON |
|
||||
CLK_ROOT_SOURCE_SEL(1));
|
||||
clock_enable(CCGR_DDR1, 1);
|
||||
|
||||
init_wdog_clk();
|
||||
|
||||
clock_enable(CCGR_TEMP_SENSOR, 1);
|
||||
|
||||
clock_enable(CCGR_SEC_DEBUG, 1);
|
||||
|
||||
return 0;
|
||||
};
|
||||
|
||||
u32 imx_get_uartclk(void)
|
||||
{
|
||||
return 24000000U;
|
||||
}
|
||||
|
||||
u32 mxc_get_clock(enum mxc_clock clk)
|
||||
{
|
||||
struct clk *clkp;
|
||||
int ret;
|
||||
|
||||
switch (clk) {
|
||||
case MXC_IPG_CLK:
|
||||
ret = clk_get_by_id(IMX8MM_CLK_IPG_ROOT, &clkp);
|
||||
if (ret)
|
||||
return 0;
|
||||
return clk_get_rate(clkp);
|
||||
case MXC_ARM_CLK:
|
||||
ret = clk_get_by_id(IMX8MM_CLK_A53_DIV, &clkp);
|
||||
if (ret)
|
||||
return 0;
|
||||
return clk_get_rate(clkp);
|
||||
default:
|
||||
printf("%s: %d not supported\n", __func__, clk);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -322,13 +322,10 @@ int enable_i2c_clk(unsigned char enable, unsigned int i2c_num)
|
|||
return 0;
|
||||
}
|
||||
|
||||
unsigned int mxc_get_clock(enum clk_root_index clk)
|
||||
unsigned int mxc_get_clock(enum mxc_clock clk)
|
||||
{
|
||||
u32 val;
|
||||
|
||||
if (clk >= CLK_ROOT_MAX)
|
||||
return 0;
|
||||
|
||||
if (clk == MXC_ARM_CLK)
|
||||
return get_root_clk(ARM_A53_CLK_ROOT);
|
||||
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
static struct ccm_reg *ccm_reg = (struct ccm_reg *)CCM_BASE_ADDR;
|
||||
|
||||
#ifdef CONFIG_IMX8MQ
|
||||
static struct clk_root_map root_array[] = {
|
||||
{ARM_A53_CLK_ROOT, CORE_CLOCK_SLICE, 0,
|
||||
{OSC_25M_CLK, ARM_PLL_CLK, SYSTEM_PLL2_500M_CLK,
|
||||
|
@ -474,6 +475,68 @@ static struct clk_root_map root_array[] = {
|
|||
{DRAM_PLL1_CLK}
|
||||
},
|
||||
};
|
||||
#elif defined(CONFIG_IMX8MM)
|
||||
static struct clk_root_map root_array[] = {
|
||||
{NAND_USDHC_BUS_CLK_ROOT, BUS_CLOCK_SLICE, 2,
|
||||
{OSC_24M_CLK, SYSTEM_PLL1_266M_CLK, SYSTEM_PLL1_800M_CLK,
|
||||
SYSTEM_PLL2_200M_CLK, SYSTEM_PLL1_133M_CLK,
|
||||
SYSTEM_PLL3_CLK, SYSTEM_PLL2_250M_CLK, AUDIO_PLL1_CLK}
|
||||
},
|
||||
{NOC_CLK_ROOT, BUS_CLOCK_SLICE, 10,
|
||||
{OSC_24M_CLK, SYSTEM_PLL1_800M_CLK, SYSTEM_PLL3_CLK,
|
||||
SYSTEM_PLL2_1000M_CLK, SYSTEM_PLL2_500M_CLK,
|
||||
AUDIO_PLL1_CLK, VIDEO_PLL_CLK, AUDIO_PLL2_CLK}
|
||||
},
|
||||
{NOC_APB_CLK_ROOT, BUS_CLOCK_SLICE, 11,
|
||||
{OSC_24M_CLK, SYSTEM_PLL1_400M_CLK, SYSTEM_PLL3_CLK,
|
||||
SYSTEM_PLL2_333M_CLK, SYSTEM_PLL2_200M_CLK,
|
||||
SYSTEM_PLL1_800M_CLK, AUDIO_PLL1_CLK, VIDEO_PLL_CLK}
|
||||
},
|
||||
{DRAM_ALT_CLK_ROOT, IP_CLOCK_SLICE, 0,
|
||||
{OSC_24M_CLK, SYSTEM_PLL1_800M_CLK, SYSTEM_PLL1_100M_CLK,
|
||||
SYSTEM_PLL2_500M_CLK, SYSTEM_PLL2_1000M_CLK,
|
||||
SYSTEM_PLL3_CLK, AUDIO_PLL1_CLK, SYSTEM_PLL1_266M_CLK}
|
||||
},
|
||||
{DRAM_APB_CLK_ROOT, IP_CLOCK_SLICE, 1,
|
||||
{OSC_24M_CLK, SYSTEM_PLL2_200M_CLK, SYSTEM_PLL1_40M_CLK,
|
||||
SYSTEM_PLL1_160M_CLK, SYSTEM_PLL1_800M_CLK,
|
||||
SYSTEM_PLL3_CLK, SYSTEM_PLL2_250M_CLK, AUDIO_PLL2_CLK}
|
||||
},
|
||||
{UART1_CLK_ROOT, IP_CLOCK_SLICE, 30,
|
||||
{OSC_24M_CLK, SYSTEM_PLL1_80M_CLK, SYSTEM_PLL2_200M_CLK,
|
||||
SYSTEM_PLL2_100M_CLK, SYSTEM_PLL3_CLK,
|
||||
EXT_CLK_2, EXT_CLK_4, AUDIO_PLL2_CLK}
|
||||
},
|
||||
{UART2_CLK_ROOT, IP_CLOCK_SLICE, 31,
|
||||
{OSC_24M_CLK, SYSTEM_PLL1_80M_CLK, SYSTEM_PLL2_200M_CLK,
|
||||
SYSTEM_PLL2_100M_CLK, SYSTEM_PLL3_CLK,
|
||||
EXT_CLK_2, EXT_CLK_3, AUDIO_PLL2_CLK}
|
||||
},
|
||||
{UART3_CLK_ROOT, IP_CLOCK_SLICE, 32,
|
||||
{OSC_24M_CLK, SYSTEM_PLL1_80M_CLK, SYSTEM_PLL2_200M_CLK,
|
||||
SYSTEM_PLL2_100M_CLK, SYSTEM_PLL3_CLK,
|
||||
EXT_CLK_2, EXT_CLK_4, AUDIO_PLL2_CLK}
|
||||
},
|
||||
{UART4_CLK_ROOT, IP_CLOCK_SLICE, 33,
|
||||
{OSC_24M_CLK, SYSTEM_PLL1_80M_CLK, SYSTEM_PLL2_200M_CLK,
|
||||
SYSTEM_PLL2_100M_CLK, SYSTEM_PLL3_CLK,
|
||||
EXT_CLK_2, EXT_CLK_3, AUDIO_PLL2_CLK}
|
||||
},
|
||||
{GIC_CLK_ROOT, IP_CLOCK_SLICE, 36,
|
||||
{OSC_24M_CLK, SYSTEM_PLL2_200M_CLK, SYSTEM_PLL1_40M_CLK,
|
||||
SYSTEM_PLL2_100M_CLK, SYSTEM_PLL1_800M_CLK,
|
||||
EXT_CLK_2, EXT_CLK_4, AUDIO_PLL2_CLK}
|
||||
},
|
||||
{WDOG_CLK_ROOT, IP_CLOCK_SLICE, 50,
|
||||
{OSC_24M_CLK, SYSTEM_PLL1_133M_CLK, SYSTEM_PLL1_160M_CLK,
|
||||
VPU_PLL_CLK, SYSTEM_PLL2_125M_CLK,
|
||||
SYSTEM_PLL3_CLK, SYSTEM_PLL1_80M_CLK, SYSTEM_PLL2_166M_CLK}
|
||||
},
|
||||
{DRAM_SEL_CFG, DRAM_SEL_CLOCK_SLICE, 0,
|
||||
{DRAM_PLL1_CLK}
|
||||
},
|
||||
};
|
||||
#endif
|
||||
|
||||
static int select(enum clk_root_index clock_id)
|
||||
{
|
||||
|
|
16
arch/arm/mach-imx/imx8m/imximage-8mm-lpddr4.cfg
Normal file
16
arch/arm/mach-imx/imx8m/imximage-8mm-lpddr4.cfg
Normal file
|
@ -0,0 +1,16 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2019 NXP
|
||||
*/
|
||||
|
||||
#define __ASSEMBLY__
|
||||
|
||||
FIT
|
||||
BOOT_FROM sd
|
||||
LOADER spl/u-boot-spl-ddr.bin 0x7E1000
|
||||
SECOND_LOADER u-boot.itb 0x40200000 0x60000
|
||||
|
||||
DDR_FW lpddr4_pmu_train_1d_imem.bin
|
||||
DDR_FW lpddr4_pmu_train_1d_dmem.bin
|
||||
DDR_FW lpddr4_pmu_train_2d_imem.bin
|
||||
DDR_FW lpddr4_pmu_train_2d_dmem.bin
|
|
@ -14,6 +14,7 @@
|
|||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/mach-imx/syscounter.h>
|
||||
#include <asm/armv8/mmu.h>
|
||||
#include <dm/uclass.h>
|
||||
#include <errno.h>
|
||||
#include <fdt_support.h>
|
||||
#include <fsl_wdog.h>
|
||||
|
@ -21,7 +22,7 @@
|
|||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#if defined(CONFIG_SECURE_BOOT)
|
||||
#if defined(CONFIG_IMX_HAB)
|
||||
struct imx_sec_config_fuse_t const imx_sec_config_fuse = {
|
||||
.bank = 1,
|
||||
.word = 3,
|
||||
|
@ -55,6 +56,14 @@ void enable_tzc380(void)
|
|||
/* Enable TZASC and lock setting */
|
||||
setbits_le32(&gpr->gpr[10], GPR_TZASC_EN);
|
||||
setbits_le32(&gpr->gpr[10], GPR_TZASC_EN_LOCK);
|
||||
if (IS_ENABLED(CONFIG_IMX8MM))
|
||||
setbits_le32(&gpr->gpr[10], BIT(1));
|
||||
/*
|
||||
* set Region 0 attribute to allow secure and non-secure
|
||||
* read/write permission. Found some masters like usb dwc3
|
||||
* controllers can't work with secure memory.
|
||||
*/
|
||||
writel(0xf0000000, TZASC_BASE_ADDR + 0x108);
|
||||
}
|
||||
|
||||
void set_wdog_reset(struct wdog_regs *wdog)
|
||||
|
@ -112,16 +121,18 @@ static struct mm_region imx8m_mem_map[] = {
|
|||
/* DRAM1 */
|
||||
.virt = 0x40000000UL,
|
||||
.phys = 0x40000000UL,
|
||||
.size = 0xC0000000UL,
|
||||
.size = PHYS_SDRAM_SIZE,
|
||||
.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
||||
PTE_BLOCK_OUTER_SHARE
|
||||
#ifdef PHYS_SDRAM_2_SIZE
|
||||
}, {
|
||||
/* DRAM2 */
|
||||
.virt = 0x100000000UL,
|
||||
.phys = 0x100000000UL,
|
||||
.size = 0x040000000UL,
|
||||
.size = PHYS_SDRAM_2_SIZE,
|
||||
.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
||||
PTE_BLOCK_OUTER_SHARE
|
||||
#endif
|
||||
}, {
|
||||
/* List terminator */
|
||||
0,
|
||||
|
@ -130,25 +141,76 @@ static struct mm_region imx8m_mem_map[] = {
|
|||
|
||||
struct mm_region *mem_map = imx8m_mem_map;
|
||||
|
||||
void enable_caches(void)
|
||||
{
|
||||
/*
|
||||
* If OPTEE runs, remove OPTEE memory from MMU table to
|
||||
* avoid speculative prefetch. OPTEE runs at the top of
|
||||
* the first memory bank
|
||||
*/
|
||||
if (rom_pointer[1])
|
||||
imx8m_mem_map[5].size -= rom_pointer[1];
|
||||
|
||||
icache_enable();
|
||||
dcache_enable();
|
||||
}
|
||||
|
||||
static u32 get_cpu_variant_type(u32 type)
|
||||
{
|
||||
struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
|
||||
struct fuse_bank *bank = &ocotp->bank[1];
|
||||
struct fuse_bank1_regs *fuse =
|
||||
(struct fuse_bank1_regs *)bank->fuse_regs;
|
||||
|
||||
u32 value = readl(&fuse->tester4);
|
||||
|
||||
if (type == MXC_CPU_IMX8MM) {
|
||||
switch (value & 0x3) {
|
||||
case 2:
|
||||
if (value & 0x1c0000)
|
||||
return MXC_CPU_IMX8MMDL;
|
||||
else
|
||||
return MXC_CPU_IMX8MMD;
|
||||
case 3:
|
||||
if (value & 0x1c0000)
|
||||
return MXC_CPU_IMX8MMSL;
|
||||
else
|
||||
return MXC_CPU_IMX8MMS;
|
||||
default:
|
||||
if (value & 0x1c0000)
|
||||
return MXC_CPU_IMX8MML;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
u32 get_cpu_rev(void)
|
||||
{
|
||||
struct anamix_pll *ana_pll = (struct anamix_pll *)ANATOP_BASE_ADDR;
|
||||
u32 reg = readl(&ana_pll->digprog);
|
||||
u32 type = (reg >> 16) & 0xff;
|
||||
u32 major_low = (reg >> 8) & 0xff;
|
||||
u32 rom_version;
|
||||
|
||||
reg &= 0xff;
|
||||
|
||||
if (reg == CHIP_REV_1_0) {
|
||||
/*
|
||||
* For B0 chip, the DIGPROG is not updated, still TO1.0.
|
||||
* we have to check ROM version further
|
||||
*/
|
||||
rom_version = readl((void __iomem *)ROM_VERSION_A0);
|
||||
if (rom_version != CHIP_REV_1_0) {
|
||||
rom_version = readl((void __iomem *)ROM_VERSION_B0);
|
||||
if (rom_version >= CHIP_REV_2_0)
|
||||
reg = CHIP_REV_2_0;
|
||||
/* i.MX8MM */
|
||||
if (major_low == 0x41) {
|
||||
type = get_cpu_variant_type(MXC_CPU_IMX8MM);
|
||||
} else {
|
||||
if (reg == CHIP_REV_1_0) {
|
||||
/*
|
||||
* For B0 chip, the DIGPROG is not updated, still TO1.0.
|
||||
* we have to check ROM version further
|
||||
*/
|
||||
rom_version = readl((void __iomem *)ROM_VERSION_A0);
|
||||
if (rom_version != CHIP_REV_1_0) {
|
||||
rom_version = readl((void __iomem *)ROM_VERSION_B0);
|
||||
if (rom_version >= CHIP_REV_2_0)
|
||||
reg = CHIP_REV_2_0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -167,9 +229,31 @@ static void imx_set_wdog_powerdown(bool enable)
|
|||
writew(enable, &wdog3->wmcr);
|
||||
}
|
||||
|
||||
int arch_cpu_init_dm(void)
|
||||
{
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
|
||||
ret = uclass_get_device_by_name(UCLASS_CLK,
|
||||
"clock-controller@30380000",
|
||||
&dev);
|
||||
if (ret < 0) {
|
||||
printf("Failed to find clock node. Check device tree\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int arch_cpu_init(void)
|
||||
{
|
||||
struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
|
||||
/*
|
||||
* ROM might disable clock for SCTR,
|
||||
* enable the clock before timer_init.
|
||||
*/
|
||||
if (IS_ENABLED(CONFIG_SPL_BUILD))
|
||||
clock_enable(CCGR_SCTR, 1);
|
||||
/*
|
||||
* Init timer at very early state, because sscg pll setting
|
||||
* will use it
|
||||
|
@ -234,16 +318,21 @@ int ft_system_setup(void *blob, bd_t *bd)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_SYSRESET)
|
||||
void reset_cpu(ulong addr)
|
||||
{
|
||||
struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
|
||||
struct watchdog_regs *wdog = (struct watchdog_regs *)addr;
|
||||
|
||||
/* Clear WDA to trigger WDOG_B immediately */
|
||||
writew((WCR_WDE | WCR_SRS), &wdog->wcr);
|
||||
if (!addr)
|
||||
wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
|
||||
|
||||
while (1) {
|
||||
/*
|
||||
* spin for .5 seconds before reset
|
||||
*/
|
||||
}
|
||||
/* Clear WDA to trigger WDOG_B immediately */
|
||||
writew((WCR_WDE | WCR_SRS), &wdog->wcr);
|
||||
|
||||
while (1) {
|
||||
/*
|
||||
* spin for .5 seconds before reset
|
||||
*/
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -55,6 +55,7 @@ cat << __HEADER_EOF
|
|||
images {
|
||||
uboot@1 {
|
||||
description = "U-Boot (64-bit)";
|
||||
os = "u-boot";
|
||||
data = /incbin/("$BL33");
|
||||
type = "standalone";
|
||||
arch = "arm64";
|
||||
|
@ -63,6 +64,7 @@ cat << __HEADER_EOF
|
|||
};
|
||||
atf@1 {
|
||||
description = "ARM Trusted Firmware";
|
||||
os = "arm-trusted-firmware";
|
||||
data = /incbin/("$BL31");
|
||||
type = "firmware";
|
||||
arch = "arm64";
|
||||
|
@ -114,8 +116,8 @@ if [ -f $BL32 ]; then
|
|||
cat << __CONF_SECTION_EOF
|
||||
config@$cnt {
|
||||
description = "$(basename $dtname .dtb)";
|
||||
firmware = "uboot@1";
|
||||
loadables = "atf@1", "tee@1";
|
||||
firmware = "atf@1";
|
||||
loadables = "uboot@1", "tee@1";
|
||||
fdt = "fdt@$cnt";
|
||||
};
|
||||
__CONF_SECTION_EOF
|
||||
|
@ -123,8 +125,8 @@ else
|
|||
cat << __CONF_SECTION1_EOF
|
||||
config@$cnt {
|
||||
description = "$(basename $dtname .dtb)";
|
||||
firmware = "uboot@1";
|
||||
loadables = "atf@1";
|
||||
firmware = "atf@1";
|
||||
loadables = "uboot@1";
|
||||
fdt = "fdt@$cnt";
|
||||
};
|
||||
__CONF_SECTION1_EOF
|
||||
|
|
|
@ -87,6 +87,15 @@ config MX6ULL
|
|||
select SYSCOUNTER_TIMER
|
||||
select SYS_L2CACHE_OFF
|
||||
|
||||
config MX6_OCRAM_256KB
|
||||
bool "Support 256KB OCRAM"
|
||||
depends on MX6D || MX6Q
|
||||
help
|
||||
Allows using the full 256KB size of the OCRAM on the MX6Q/MX6D series
|
||||
of chips, such as for SPL. The OCRAM of the Lite series of chips is
|
||||
only 128KB, so using this option will prevent the resulting code from
|
||||
working on those chips.
|
||||
|
||||
config MX6_DDRCAL
|
||||
bool "Include dynamic DDR calibration routines"
|
||||
depends on SPL
|
||||
|
@ -108,6 +117,7 @@ config TARGET_ADVANTECH_DMS_BA16
|
|||
config TARGET_APALIS_IMX6
|
||||
bool "Toradex Apalis iMX6 board"
|
||||
select BOARD_LATE_INIT
|
||||
select MX6Q
|
||||
select DM
|
||||
select DM_SERIAL
|
||||
select DM_THERMAL
|
||||
|
@ -187,6 +197,11 @@ config TARGET_DHCOMIMX6
|
|||
config TARGET_DISPLAY5
|
||||
bool "LWN DISPLAY5 board"
|
||||
select DM
|
||||
select DM_ETH
|
||||
select DM_I2C
|
||||
select DM_MMC
|
||||
select DM_SPI
|
||||
select DM_GPIO
|
||||
select DM_SERIAL
|
||||
select SUPPORT_SPL
|
||||
imply CMD_DM
|
||||
|
@ -412,6 +427,16 @@ config TARGET_OT1200
|
|||
select SUPPORT_SPL
|
||||
imply CMD_SATA
|
||||
|
||||
config TARGET_PICO_IMX6
|
||||
bool "PICO-IMX6"
|
||||
select BOARD_EARLY_INIT_F
|
||||
select BOARD_LATE_INIT
|
||||
select DM
|
||||
select DM_THERMAL
|
||||
select MX6QDL
|
||||
select SUPPORT_SPL
|
||||
imply CMD_DM
|
||||
|
||||
config TARGET_PICO_IMX6UL
|
||||
bool "PICO-IMX6UL-EMMC"
|
||||
select MX6UL
|
||||
|
@ -599,6 +624,7 @@ source "board/logicpd/imx6/Kconfig"
|
|||
source "board/seco/Kconfig"
|
||||
source "board/sks-kinkel/sksimx6/Kconfig"
|
||||
source "board/solidrun/mx6cuboxi/Kconfig"
|
||||
source "board/technexion/pico-imx6/Kconfig"
|
||||
source "board/technexion/pico-imx6ul/Kconfig"
|
||||
source "board/tbs/tbs2910/Kconfig"
|
||||
source "board/tqc/tqma6/Kconfig"
|
||||
|
|
|
@ -1152,7 +1152,7 @@ int enable_pcie_clock(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SECURE_BOOT
|
||||
#ifdef CONFIG_IMX_HAB
|
||||
void hab_caam_clock_enable(unsigned char enable)
|
||||
{
|
||||
u32 reg;
|
||||
|
@ -1275,6 +1275,22 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_MX6SX
|
||||
void enable_ipu_clock(void)
|
||||
{
|
||||
struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
|
||||
int reg;
|
||||
reg = readl(&mxc_ccm->CCGR3);
|
||||
reg |= MXC_CCM_CCGR3_IPU1_IPU_MASK;
|
||||
writel(reg, &mxc_ccm->CCGR3);
|
||||
|
||||
if (is_mx6dqp()) {
|
||||
setbits_le32(&mxc_ccm->CCGR6, MXC_CCM_CCGR6_PRG_CLK0_MASK);
|
||||
setbits_le32(&mxc_ccm->CCGR3, MXC_CCM_CCGR3_IPU2_IPU_MASK);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
/*
|
||||
* Dump some core clockes.
|
||||
|
@ -1311,22 +1327,6 @@ int do_mx6_showclocks(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_MX6SX
|
||||
void enable_ipu_clock(void)
|
||||
{
|
||||
struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
|
||||
int reg;
|
||||
reg = readl(&mxc_ccm->CCGR3);
|
||||
reg |= MXC_CCM_CCGR3_IPU1_IPU_MASK;
|
||||
writel(reg, &mxc_ccm->CCGR3);
|
||||
|
||||
if (is_mx6dqp()) {
|
||||
setbits_le32(&mxc_ccm->CCGR6, MXC_CCM_CCGR6_PRG_CLK0_MASK);
|
||||
setbits_le32(&mxc_ccm->CCGR3, MXC_CCM_CCGR3_IPU2_IPU_MASK);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6D) || defined(CONFIG_MX6DL) || \
|
||||
defined(CONFIG_MX6S)
|
||||
static void disable_ldb_di_clock_sources(void)
|
||||
|
|
|
@ -50,7 +50,7 @@ U_BOOT_DEVICE(imx6_thermal) = {
|
|||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SECURE_BOOT)
|
||||
#if defined(CONFIG_IMX_HAB)
|
||||
struct imx_sec_config_fuse_t const imx_sec_config_fuse = {
|
||||
.bank = 0,
|
||||
.word = 6,
|
||||
|
@ -85,6 +85,10 @@ u32 get_cpu_rev(void)
|
|||
type = MXC_CPU_MX6D;
|
||||
}
|
||||
|
||||
if (type == MXC_CPU_MX6ULL) {
|
||||
if (readl(SRC_BASE_ADDR + 0x1c) & (1 << 6))
|
||||
type = MXC_CPU_MX6ULZ;
|
||||
}
|
||||
}
|
||||
major = ((reg >> 8) & 0xff);
|
||||
if ((major >= 1) &&
|
||||
|
|
|
@ -1074,7 +1074,7 @@ void clock_init(void)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SECURE_BOOT
|
||||
#ifdef CONFIG_IMX_HAB
|
||||
void hab_caam_clock_enable(unsigned char enable)
|
||||
{
|
||||
if (enable)
|
||||
|
|
|
@ -122,7 +122,7 @@ static void isolate_resource(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SECURE_BOOT)
|
||||
#if defined(CONFIG_IMX_HAB)
|
||||
struct imx_sec_config_fuse_t const imx_sec_config_fuse = {
|
||||
.bank = 1,
|
||||
.word = 3,
|
||||
|
|
|
@ -3,12 +3,16 @@ if ARCH_MX7ULP
|
|||
config SYS_SOC
|
||||
default "mx7ulp"
|
||||
|
||||
config MX7ULP
|
||||
bool
|
||||
|
||||
choice
|
||||
prompt "MX7ULP board select"
|
||||
optional
|
||||
|
||||
config TARGET_MX7ULP_EVK
|
||||
bool "Support mx7ulp EVK board"
|
||||
bool "Support mx7ulp EVK board"
|
||||
select MX7ULP
|
||||
select SYS_ARCH_TIMER
|
||||
|
||||
endchoice
|
||||
|
|
|
@ -72,7 +72,7 @@ u32 get_lpuart_clk(void)
|
|||
return pcc_clock_get_rate(lpuart_pcc_clks[index - 4]);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SYS_LPI2C_IMX
|
||||
#ifdef CONFIG_SYS_I2C_IMX_LPI2C
|
||||
int enable_i2c_clk(unsigned char enable, unsigned i2c_num)
|
||||
{
|
||||
/* Set parent to FIRC DIV2 clock */
|
||||
|
@ -300,9 +300,11 @@ void clock_init(void)
|
|||
|
||||
scg_a7_soscdiv_init();
|
||||
|
||||
/* APLL PFD1 = 270Mhz, PFD2=480Mhz, PFD3=800Mhz */
|
||||
scg_a7_init_core_clk();
|
||||
|
||||
/* APLL PFD1 = 270Mhz, PFD2=345.6Mhz, PFD3=800Mhz */
|
||||
scg_enable_pll_pfd(SCG_APLL_PFD1_CLK, 35);
|
||||
scg_enable_pll_pfd(SCG_APLL_PFD2_CLK, 20);
|
||||
scg_enable_pll_pfd(SCG_APLL_PFD2_CLK, 28);
|
||||
scg_enable_pll_pfd(SCG_APLL_PFD3_CLK, 12);
|
||||
|
||||
init_clk_lpuart();
|
||||
|
@ -312,7 +314,7 @@ void clock_init(void)
|
|||
enable_usboh3_clk(1);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SECURE_BOOT
|
||||
#ifdef CONFIG_IMX_HAB
|
||||
void hab_caam_clock_enable(unsigned char enable)
|
||||
{
|
||||
if (enable)
|
||||
|
|
|
@ -352,7 +352,7 @@ static u32 scg_ddr_get_rate(void)
|
|||
|
||||
static u32 scg_nic_get_rate(enum scg_clk clk)
|
||||
{
|
||||
u32 reg, val, rate;
|
||||
u32 reg, val, rate, nic0_rate;
|
||||
u32 shift, mask;
|
||||
|
||||
reg = readl(&scg1_regs->niccsr);
|
||||
|
@ -370,6 +370,7 @@ static u32 scg_nic_get_rate(enum scg_clk clk)
|
|||
val = (reg & SCG_NICCSR_NIC0DIV_MASK) >> SCG_NICCSR_NIC0DIV_SHIFT;
|
||||
|
||||
rate = rate / (val + 1);
|
||||
nic0_rate = rate;
|
||||
|
||||
clk_debug("scg_nic_get_rate NIC0 rate %u\n", rate);
|
||||
|
||||
|
@ -411,6 +412,13 @@ static u32 scg_nic_get_rate(enum scg_clk clk)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* On RevB, the nic_bus and nic_ext dividers are parallel
|
||||
* not chained with nic div
|
||||
*/
|
||||
if (soc_rev() >= CHIP_REV_2_0)
|
||||
rate = nic0_rate;
|
||||
|
||||
val = (reg & mask) >> shift;
|
||||
rate = rate / (val + 1);
|
||||
|
||||
|
@ -440,7 +448,7 @@ static u32 scg_sys_get_rate(enum scg_clk clk)
|
|||
case SCG_SCS_SLOW_IRC:
|
||||
case SCG_SCS_FAST_IRC:
|
||||
case SCG_SCS_RTC_OSC:
|
||||
rate = scg_src_get_rate(scg_scs_array[val]);
|
||||
rate = scg_src_get_rate(scg_scs_array[val - 1]);
|
||||
break;
|
||||
case 5:
|
||||
rate = scg_apll_get_rate();
|
||||
|
@ -503,7 +511,10 @@ u32 decode_pll(enum pll_clocks pll)
|
|||
|
||||
infreq = infreq / pre_div;
|
||||
|
||||
return infreq * mult + infreq * num / denom;
|
||||
if (denom)
|
||||
return infreq * mult + infreq * num / denom;
|
||||
else
|
||||
return infreq * mult;
|
||||
|
||||
case PLL_A7_APLL:
|
||||
reg = readl(&scg1_regs->apllcsr);
|
||||
|
@ -532,7 +543,10 @@ u32 decode_pll(enum pll_clocks pll)
|
|||
|
||||
infreq = infreq / pre_div;
|
||||
|
||||
return infreq * mult + infreq * num / denom;
|
||||
if (denom)
|
||||
return infreq * mult + infreq * num / denom;
|
||||
else
|
||||
return infreq * mult;
|
||||
|
||||
case PLL_USB:
|
||||
reg = readl(&scg1_regs->upllcsr);
|
||||
|
@ -1085,3 +1099,44 @@ void scg_a7_info(void)
|
|||
debug("SCG RCCR Value: 0x%x\n", readl(&scg1_regs->rccr));
|
||||
debug("SCG Clock Status: 0x%x\n", readl(&scg1_regs->csr));
|
||||
}
|
||||
|
||||
void scg_a7_init_core_clk(void)
|
||||
{
|
||||
u32 val = 0;
|
||||
|
||||
/*
|
||||
* The normal target frequency for ULP B0 is 500Mhz,
|
||||
* but ROM set it to 413Mhz, need to change SPLL PFD0 FRAC
|
||||
*/
|
||||
if (soc_rev() >= CHIP_REV_2_0) {
|
||||
/* Switch RCCR SCG to SOSC, firstly check the SOSC is valid */
|
||||
if ((readl(&scg1_regs->sosccsr) & SCG_SOSC_CSR_SOSCVLD_MASK)) {
|
||||
val = readl(&scg1_regs->rccr);
|
||||
val &= (~SCG_CCR_SCS_MASK);
|
||||
val |= ((SCG_SCS_SYS_OSC) << SCG_CCR_SCS_SHIFT);
|
||||
writel(val, &scg1_regs->rccr);
|
||||
|
||||
/* Switch the PLLS to SPLL clk */
|
||||
val = readl(&scg1_regs->spllcfg);
|
||||
val &= ~SCG_PLL_CFG_PLLSEL_MASK;
|
||||
writel(val, &scg1_regs->spllcfg);
|
||||
|
||||
/*
|
||||
* Re-configure PFD0 to 19,
|
||||
* A7 SPLL(528MHz) * 18 / 19 = 500MHz
|
||||
*/
|
||||
scg_enable_pll_pfd(SCG_SPLL_PFD0_CLK, 19);
|
||||
|
||||
/* Switch the PLLS to SPLL PFD0 */
|
||||
val = readl(&scg1_regs->spllcfg);
|
||||
val |= SCG_PLL_CFG_PLLSEL_MASK;
|
||||
writel(val, &scg1_regs->spllcfg);
|
||||
|
||||
/* Set RCCR SCG to SPLL clk out */
|
||||
val = readl(&scg1_regs->rccr);
|
||||
val &= (~SCG_CCR_SCS_MASK);
|
||||
val |= ((SCG_SCS_SYS_PLL) << SCG_CCR_SCS_SHIFT);
|
||||
writel(val, &scg1_regs->rccr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,21 +6,25 @@
|
|||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/mach-imx/hab.h>
|
||||
|
||||
static char *get_reset_cause(char *);
|
||||
|
||||
#if defined(CONFIG_SECURE_BOOT)
|
||||
#if defined(CONFIG_IMX_HAB)
|
||||
struct imx_sec_config_fuse_t const imx_sec_config_fuse = {
|
||||
.bank = 29,
|
||||
.word = 6,
|
||||
};
|
||||
#endif
|
||||
|
||||
#define ROM_VERSION_ADDR 0x80
|
||||
u32 get_cpu_rev(void)
|
||||
{
|
||||
/* Temporally hard code the CPU rev to 0x73, rev 1.0. Fix it later */
|
||||
return (MXC_CPU_MX7ULP << 12) | (1 << 4);
|
||||
/* Check the ROM version for cpu revision */
|
||||
u32 rom_version = readl((void __iomem *)ROM_VERSION_ADDR);
|
||||
|
||||
return (MXC_CPU_MX7ULP << 12) | (rom_version & 0xFF);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_REVISION_TAG
|
||||
|
@ -105,6 +109,10 @@ void s_init(void)
|
|||
/* clock configuration. */
|
||||
clock_init();
|
||||
|
||||
if (soc_rev() < CHIP_REV_2_0) {
|
||||
/* enable dumb pmic */
|
||||
writel((readl(SNVS_LP_LPCR) | SNVS_LPCR_DPEN), SNVS_LP_LPCR);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -244,3 +252,29 @@ int mmc_get_env_dev(void)
|
|||
return board_mmc_get_env_dev(devno);
|
||||
}
|
||||
#endif
|
||||
|
||||
enum boot_device get_boot_device(void)
|
||||
{
|
||||
struct bootrom_sw_info **p =
|
||||
(struct bootrom_sw_info **)ROM_SW_INFO_ADDR;
|
||||
|
||||
enum boot_device boot_dev = SD1_BOOT;
|
||||
u8 boot_type = (*p)->boot_dev_type;
|
||||
u8 boot_instance = (*p)->boot_dev_instance;
|
||||
|
||||
switch (boot_type) {
|
||||
case BOOT_TYPE_SD:
|
||||
boot_dev = boot_instance + SD1_BOOT;
|
||||
break;
|
||||
case BOOT_TYPE_MMC:
|
||||
boot_dev = boot_instance + MMC1_BOOT;
|
||||
break;
|
||||
case BOOT_TYPE_USB:
|
||||
boot_dev = USB_BOOT;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return boot_dev;
|
||||
}
|
||||
|
|
|
@ -18,13 +18,17 @@
|
|||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
__weak int spl_board_boot_device(enum boot_device boot_dev_spl)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_MX6)
|
||||
/* determine boot device from SRC_SBMR1 (BOOT_CFG[4:1]) or SRC_GPR9 register */
|
||||
u32 spl_boot_device(void)
|
||||
{
|
||||
unsigned int bmode = readl(&src_base->sbmr2);
|
||||
u32 reg = imx6_src_get_boot_mode();
|
||||
u32 mmc_index = ((reg >> 11) & 0x03);
|
||||
|
||||
/*
|
||||
* Check for BMODE if serial downloader is enabled
|
||||
|
@ -85,15 +89,19 @@ u32 spl_boot_device(void)
|
|||
/* SD/eSD: 8.5.3, Table 8-15 */
|
||||
case IMX6_BMODE_SD:
|
||||
case IMX6_BMODE_ESD:
|
||||
return BOOT_DEVICE_MMC1;
|
||||
/* MMC/eMMC: 8.5.3 */
|
||||
case IMX6_BMODE_MMC:
|
||||
case IMX6_BMODE_EMMC:
|
||||
if (mmc_index == 1)
|
||||
return BOOT_DEVICE_MMC2;
|
||||
else
|
||||
return BOOT_DEVICE_MMC1;
|
||||
return BOOT_DEVICE_MMC1;
|
||||
/* NAND Flash: 8.5.2, Table 8-10 */
|
||||
case IMX6_BMODE_NAND_MIN ... IMX6_BMODE_NAND_MAX:
|
||||
return BOOT_DEVICE_NAND;
|
||||
#if defined(CONFIG_MX6UL) || defined(CONFIG_MX6ULL)
|
||||
/* QSPI boot */
|
||||
case IMX6_BMODE_QSPI:
|
||||
return BOOT_DEVICE_SPI;
|
||||
#endif
|
||||
}
|
||||
return BOOT_DEVICE_NONE;
|
||||
}
|
||||
|
@ -127,6 +135,9 @@ u32 spl_boot_device(void)
|
|||
|
||||
enum boot_device boot_device_spl = get_boot_device();
|
||||
|
||||
if (IS_ENABLED(CONFIG_IMX8MM))
|
||||
return spl_board_boot_device(boot_device_spl);
|
||||
|
||||
switch (boot_device_spl) {
|
||||
#if defined(CONFIG_MX7)
|
||||
case SD1_BOOT:
|
||||
|
@ -178,7 +189,18 @@ int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name)
|
|||
/* called from spl_mmc to see type of boot mode for storage (RAW or FAT) */
|
||||
u32 spl_boot_mode(const u32 boot_device)
|
||||
{
|
||||
/*
|
||||
* When CONFIG_SPL_FORCE_MMC_BOOT is defined the 'boot_device' is used
|
||||
* unconditionally to decide about device to use for booting.
|
||||
* This is crucial for falcon boot mode, when board boots up (i.e. ROM
|
||||
* loads SPL) from slow SPI-NOR memory and afterwards the SPL's 'falcon' boot
|
||||
* mode is used to load Linux OS from eMMC partition.
|
||||
*/
|
||||
#ifdef CONFIG_SPL_FORCE_MMC_BOOT
|
||||
switch (boot_device) {
|
||||
#else
|
||||
switch (spl_boot_device()) {
|
||||
#endif
|
||||
/* for MMC return either RAW or FAT mode */
|
||||
case BOOT_DEVICE_MMC1:
|
||||
case BOOT_DEVICE_MMC2:
|
||||
|
@ -198,7 +220,7 @@ u32 spl_boot_mode(const u32 boot_device)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SECURE_BOOT)
|
||||
#if defined(CONFIG_IMX_HAB)
|
||||
|
||||
/*
|
||||
* +------------+ 0x0 (DDR_UIMAGE_START) -
|
||||
|
@ -261,6 +283,7 @@ __weak void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
|
|||
}
|
||||
}
|
||||
|
||||
#if !defined(CONFIG_SPL_FIT_SIGNATURE)
|
||||
ulong board_spl_fit_size_align(ulong size)
|
||||
{
|
||||
/*
|
||||
|
@ -285,6 +308,7 @@ void board_spl_fit_post_load(ulong load_addr, size_t length)
|
|||
hang();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
|
17
arch/arm/mach-imx/spl_qspi.cfg
Normal file
17
arch/arm/mach-imx/spl_qspi.cfg
Normal file
|
@ -0,0 +1,17 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright (C) 2014, Compulab Ltd - http://compulab.co.il/
|
||||
*/
|
||||
|
||||
#define __ASSEMBLY__
|
||||
#include <config.h>
|
||||
|
||||
IMAGE_VERSION 2
|
||||
BOOT_FROM qspi
|
||||
|
||||
/*
|
||||
* Secure boot support
|
||||
*/
|
||||
#ifdef CONFIG_SECURE_BOOT
|
||||
CSF CONFIG_CSF_SIZE
|
||||
#endif
|
|
@ -12,6 +12,6 @@ BOOT_FROM sd
|
|||
/*
|
||||
* Secure boot support
|
||||
*/
|
||||
#ifdef CONFIG_SECURE_BOOT
|
||||
#ifdef CONFIG_IMX_HAB
|
||||
CSF CONFIG_CSF_SIZE
|
||||
#endif
|
||||
|
|
|
@ -14,9 +14,12 @@
|
|||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
void board_return_to_bootrom(void)
|
||||
int board_return_to_bootrom(struct spl_image_info *spl_image,
|
||||
struct spl_boot_device *bootdev)
|
||||
{
|
||||
back_to_bootrom(BROM_BOOT_NEXTSTAGE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
__weak const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
|
||||
|
|
|
@ -77,9 +77,12 @@ void board_init_f(ulong dummy)
|
|||
}
|
||||
}
|
||||
|
||||
void board_return_to_bootrom(void)
|
||||
int board_return_to_bootrom(struct spl_image_info *spl_image,
|
||||
struct spl_boot_device *bootdev)
|
||||
{
|
||||
back_to_bootrom(BROM_BOOT_NEXTSTAGE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 spl_boot_device(void)
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
NITROGEN6X BOARD
|
||||
M: Troy Kisky <troy.kisky@boundarydevices.com>
|
||||
S: Maintained
|
||||
F: arch/arm/dts/imx6dl-nitrogen6x.dts
|
||||
F: arch/arm/dts/imx6q-nitrogen6x.dts
|
||||
F: arch/arm/dts/imx6q-sabrelite.dts
|
||||
F: arch/arm/dts/imx6qdl-nitrogen6x.dtsi
|
||||
F: arch/arm/dts/imx6qdl-sabrelite.dtsi
|
||||
F: board/boundary/nitrogen6x/
|
||||
F: include/configs/nitrogen6x.h
|
||||
F: configs/mx6qsabrelite_defconfig
|
||||
|
|
|
@ -19,7 +19,7 @@ BOOT_FROM spi
|
|||
|
||||
#define __ASSEMBLY__
|
||||
#include <config.h>
|
||||
#ifdef CONFIG_SECURE_BOOT
|
||||
#ifdef CONFIG_IMX_HAB
|
||||
CSF CONFIG_CSF_SIZE
|
||||
#endif
|
||||
#include "asm/arch/mx6-ddr.h"
|
||||
|
|
|
@ -19,7 +19,7 @@ BOOT_FROM spi
|
|||
|
||||
#define __ASSEMBLY__
|
||||
#include <config.h>
|
||||
#ifdef CONFIG_SECURE_BOOT
|
||||
#ifdef CONFIG_IMX_HAB
|
||||
CSF CONFIG_CSF_SIZE
|
||||
#endif
|
||||
#include "asm/arch/mx6-ddr.h"
|
||||
|
|
|
@ -19,7 +19,7 @@ BOOT_FROM spi
|
|||
|
||||
#define __ASSEMBLY__
|
||||
#include <config.h>
|
||||
#ifdef CONFIG_SECURE_BOOT
|
||||
#ifdef CONFIG_IMX_HAB
|
||||
CSF CONFIG_CSF_SIZE
|
||||
#endif
|
||||
#include "asm/arch/mx6-ddr.h"
|
||||
|
|
|
@ -19,7 +19,7 @@ BOOT_FROM spi
|
|||
|
||||
#define __ASSEMBLY__
|
||||
#include <config.h>
|
||||
#ifdef CONFIG_SECURE_BOOT
|
||||
#ifdef CONFIG_IMX_HAB
|
||||
CSF CONFIG_CSF_SIZE
|
||||
#endif
|
||||
#include "asm/arch/mx6-ddr.h"
|
||||
|
|
|
@ -19,7 +19,7 @@ BOOT_FROM spi
|
|||
|
||||
#define __ASSEMBLY__
|
||||
#include <config.h>
|
||||
#ifdef CONFIG_SECURE_BOOT
|
||||
#ifdef CONFIG_IMX_HAB
|
||||
CSF CONFIG_CSF_SIZE
|
||||
#endif
|
||||
#include "asm/arch/mx6-ddr.h"
|
||||
|
|
|
@ -19,7 +19,7 @@ BOOT_FROM spi
|
|||
|
||||
#define __ASSEMBLY__
|
||||
#include <config.h>
|
||||
#ifdef CONFIG_SECURE_BOOT
|
||||
#ifdef CONFIG_IMX_HAB
|
||||
CSF CONFIG_CSF_SIZE
|
||||
#endif
|
||||
#include "asm/arch/mx6-ddr.h"
|
||||
|
|
|
@ -382,6 +382,15 @@ int board_eth_init(bd_t *bis)
|
|||
struct phy_device *phydev = NULL;
|
||||
int ret;
|
||||
|
||||
gpio_request(WL12XX_WL_IRQ_GP, "wifi_irq");
|
||||
gpio_request(IMX_GPIO_NR(6, 30), "rgmii_rxc");
|
||||
gpio_request(IMX_GPIO_NR(6, 25), "rgmii_rd0");
|
||||
gpio_request(IMX_GPIO_NR(6, 27), "rgmii_rd1");
|
||||
gpio_request(IMX_GPIO_NR(6, 28), "rgmii_rd2");
|
||||
gpio_request(IMX_GPIO_NR(6, 29), "rgmii_rd3");
|
||||
gpio_request(IMX_GPIO_NR(6, 24), "rgmii_rx_ctl");
|
||||
gpio_request(IMX_GPIO_NR(3, 23), "rgmii_reset_sabrelite");
|
||||
gpio_request(IMX_GPIO_NR(1, 27), "rgmii_reset_nitrogen6x");
|
||||
setup_iomux_enet();
|
||||
|
||||
#ifdef CONFIG_FEC_MXC
|
||||
|
@ -912,7 +921,16 @@ int board_init(void)
|
|||
|
||||
int checkboard(void)
|
||||
{
|
||||
if (gpio_get_value(WL12XX_WL_IRQ_GP))
|
||||
int ret = gpio_get_value(WL12XX_WL_IRQ_GP);
|
||||
|
||||
if (ret < 0) {
|
||||
/* The gpios have not been probed yet. Read it myself */
|
||||
struct gpio_regs *regs = (struct gpio_regs *)GPIO6_BASE_ADDR;
|
||||
int gpio = WL12XX_WL_IRQ_GP & 0x1f;
|
||||
|
||||
ret = (readl(®s->gpio_psr) >> gpio) & 0x01;
|
||||
}
|
||||
if (ret)
|
||||
puts("Board: Nitrogen6X\n");
|
||||
else
|
||||
puts("Board: SABRE Lite\n");
|
||||
|
@ -1014,6 +1032,16 @@ static const struct boot_mode board_boot_modes[] = {
|
|||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
gpio_request(RGB_BACKLIGHT_GP, "lvds backlight");
|
||||
gpio_request(LVDS_BACKLIGHT_GP, "lvds backlight");
|
||||
gpio_request(GP_USB_OTG_PWR, "usbotg power");
|
||||
gpio_request(IMX_GPIO_NR(7, 12), "usbh1 hub reset");
|
||||
gpio_request(IMX_GPIO_NR(2, 2), "back");
|
||||
gpio_request(IMX_GPIO_NR(2, 4), "home");
|
||||
gpio_request(IMX_GPIO_NR(2, 1), "menu");
|
||||
gpio_request(IMX_GPIO_NR(2, 3), "search");
|
||||
gpio_request(IMX_GPIO_NR(7, 13), "volup");
|
||||
gpio_request(IMX_GPIO_NR(4, 5), "voldown");
|
||||
#ifdef CONFIG_PREBOOT
|
||||
preboot_keys();
|
||||
#endif
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue