diff mbox

[V3,10/10] add imx7ulp support

Message ID 1516367470-24340-11-git-send-email-aisheng.dong@nxp.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Aisheng Dong Jan. 19, 2018, 1:11 p.m. UTC
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
 arch/arm/boot/dts/Makefile           |   2 +
 arch/arm/boot/dts/imx7ulp-evk.dts    |  87 +++++++++++++++
 arch/arm/boot/dts/imx7ulp.dtsi       | 202 +++++++++++++++++++++++++++++++++++
 arch/arm/configs/imx_v6_v7_defconfig |  16 ++-
 arch/arm/mach-imx/Kconfig            |   9 ++
 arch/arm/mach-imx/Makefile           |   1 +
 arch/arm/mach-imx/common.h           |   1 +
 arch/arm/mach-imx/cpu.c              |   3 +
 arch/arm/mach-imx/mach-imx7ulp.c     |  37 +++++++
 arch/arm/mach-imx/mxc.h              |   1 +
 arch/arm/mach-imx/pm-imx7ulp.c       |  32 ++++++
 11 files changed, 381 insertions(+), 10 deletions(-)
 create mode 100644 arch/arm/boot/dts/imx7ulp-evk.dts
 create mode 100644 arch/arm/boot/dts/imx7ulp.dtsi
 create mode 100644 arch/arm/mach-imx/mach-imx7ulp.c
 create mode 100644 arch/arm/mach-imx/pm-imx7ulp.c

Comments

Fabio Estevam Jan. 25, 2018, 1:22 p.m. UTC | #1
On Fri, Jan 19, 2018 at 11:11 AM, Dong Aisheng <aisheng.dong@nxp.com> wrote:

Please always add a commit log.

> Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>

> ---
>  arch/arm/boot/dts/Makefile           |   2 +
>  arch/arm/boot/dts/imx7ulp-evk.dts    |  87 +++++++++++++++
>  arch/arm/boot/dts/imx7ulp.dtsi       | 202 +++++++++++++++++++++++++++++++++++
>  arch/arm/configs/imx_v6_v7_defconfig |  16 ++-
>  arch/arm/mach-imx/Kconfig            |   9 ++
>  arch/arm/mach-imx/Makefile           |   1 +
>  arch/arm/mach-imx/common.h           |   1 +
>  arch/arm/mach-imx/cpu.c              |   3 +
>  arch/arm/mach-imx/mach-imx7ulp.c     |  37 +++++++
>  arch/arm/mach-imx/mxc.h              |   1 +
>  arch/arm/mach-imx/pm-imx7ulp.c       |  32 ++++++
>  11 files changed, 381 insertions(+), 10 deletions(-)
>  create mode 100644 arch/arm/boot/dts/imx7ulp-evk.dts
>  create mode 100644 arch/arm/boot/dts/imx7ulp.dtsi
>  create mode 100644 arch/arm/mach-imx/mach-imx7ulp.c
>  create mode 100644 arch/arm/mach-imx/pm-imx7ulp.c
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index d0381e9..3257e71 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -519,6 +519,8 @@ dtb-$(CONFIG_SOC_IMX7D) += \
>         imx7d-sdb-sht11.dtb \
>         imx7s-colibri-eval-v3.dtb \
>         imx7s-warp.dtb
> +dtb-$(CONFIG_SOC_IMX7ULP) += \
> +       imx7ulp-evk.dtb
>  dtb-$(CONFIG_SOC_LS1021A) += \
>         ls1021a-qds.dtb \
>         ls1021a-twr.dtb
> diff --git a/arch/arm/boot/dts/imx7ulp-evk.dts b/arch/arm/boot/dts/imx7ulp-evk.dts
> new file mode 100644
> index 0000000..cc4e6ef
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx7ulp-evk.dts
> @@ -0,0 +1,87 @@
> +/*
> + * Copyright 2017 NXP
> + *
> + * 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.

Please use SPDX identifier.


> + */
> +
> +/dts-v1/;
> +
> +#include "imx7ulp.dtsi"
> +
> +/ {
> +       model = "NXP i.MX7ULP EVK";
> +       compatible = "fsl,imx7ulp-evk", "fsl,imx7ulp", "Generic DT based system";

Please remove the '"Generic DT based system" entry.


> +
> +       chosen {
> +               bootargs = "console=ttyLP0,115200 earlycon=lpuart32,0x402D0010,115200";
> +               stdout-path = &lpuart4;

Better remove bootargs.


> +       };
> +
> +       memory {

memory@60000000 , otherwise building with W=1 will give you warning.

Please make sure that you don't get dtc warnings with W=1.

> +               device_type = "memory";
> +               reg = <0x60000000 0x40000000>;
> +       };
> +};
> +
> +&lpuart4 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_lpuart4>;
> +       status = "okay";
> +};
> +
> +&usdhc0 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <>;
> +       pinctrl-0 = <&pinctrl_usdhc0_cmd_data>, <&pinctrl_usdhc0_clk>;
> +//                 <&pinctrl_usdhc0_cd>, <&pinctrl_usdhc0_rst>;

Just remove the line instead of commenting it.

> diff --git a/arch/arm/boot/dts/imx7ulp.dtsi b/arch/arm/boot/dts/imx7ulp.dtsi
> new file mode 100644
> index 0000000..05410ba
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx7ulp.dtsi
> @@ -0,0 +1,202 @@
> +/*
> + * Copyright NXP

No year information?


> + *
> + * 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.


Please use SPDX identifier instead.

> diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig
> index 0d44949..3ce8ff6 100644
> --- a/arch/arm/configs/imx_v6_v7_defconfig
> +++ b/arch/arm/configs/imx_v6_v7_defconfig
> @@ -41,6 +41,7 @@ CONFIG_SOC_IMX6SL=y
>  CONFIG_SOC_IMX6SX=y
>  CONFIG_SOC_IMX6UL=y
>  CONFIG_SOC_IMX7D=y
> +CONFIG_SOC_IMX7ULP=y

This should be part of a separate patch.


>  CONFIG_SOC_VF610=y
>  CONFIG_PCI=y
>  CONFIG_PCI_MSI=y
> @@ -48,9 +49,7 @@ CONFIG_PCI_IMX6=y
>  CONFIG_SMP=y
>  CONFIG_ARM_PSCI=y
>  CONFIG_PREEMPT_VOLUNTARY=y
> -CONFIG_AEABI=y
>  CONFIG_HIGHMEM=y
> -CONFIG_CMA=y
>  CONFIG_FORCE_MAX_ZONEORDER=14
>  CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"
>  CONFIG_KEXEC=y
> @@ -81,7 +80,6 @@ CONFIG_CAN_FLEXCAN=y
>  CONFIG_BT=y
>  CONFIG_BT_HCIUART=y
>  CONFIG_BT_HCIUART_H4=y
> -CONFIG_BT_HCIUART_LL=y
>  CONFIG_CFG80211=y
>  CONFIG_CFG80211_WEXT=y
>  CONFIG_MAC80211=y
> @@ -90,7 +88,6 @@ CONFIG_RFKILL_INPUT=y
>  CONFIG_DEVTMPFS=y
>  CONFIG_DEVTMPFS_MOUNT=y
>  # CONFIG_STANDALONE is not set
> -CONFIG_DMA_CMA=y
>  CONFIG_CMA_SIZE_MBYTES=64
>  CONFIG_IMX_WEIM=y
>  CONFIG_CONNECTOR=y
> @@ -167,9 +164,9 @@ CONFIG_MOUSE_PS2_ELANTECH=y
>  CONFIG_INPUT_TOUCHSCREEN=y
>  CONFIG_TOUCHSCREEN_ADS7846=y
>  CONFIG_TOUCHSCREEN_EGALAX=y
> +CONFIG_TOUCHSCREEN_MAX11801=y
>  CONFIG_TOUCHSCREEN_IMX6UL_TSC=y
>  CONFIG_TOUCHSCREEN_EDT_FT5X06=y
> -CONFIG_TOUCHSCREEN_MAX11801=y
>  CONFIG_TOUCHSCREEN_MC13783=y
>  CONFIG_TOUCHSCREEN_TSC2004=y
>  CONFIG_TOUCHSCREEN_TSC2007=y
> @@ -178,7 +175,6 @@ CONFIG_TOUCHSCREEN_SX8654=y
>  CONFIG_TOUCHSCREEN_COLIBRI_VF50=y
>  CONFIG_INPUT_MISC=y
>  CONFIG_INPUT_MMA8450=y
> -CONFIG_HID_MULTITOUCH=y
>  CONFIG_SERIO_SERPORT=m
>  # CONFIG_LEGACY_PTYS is not set
>  CONFIG_SERIAL_IMX=y
> @@ -228,13 +224,13 @@ CONFIG_REGULATOR_GPIO=y
>  CONFIG_REGULATOR_MC13783=y
>  CONFIG_REGULATOR_MC13892=y
>  CONFIG_REGULATOR_PFUZE100=y
> +CONFIG_RC_CORE=y
> +CONFIG_RC_DEVICES=y
> +CONFIG_IR_GPIO_CIR=y
>  CONFIG_MEDIA_SUPPORT=y
>  CONFIG_MEDIA_CAMERA_SUPPORT=y
> -CONFIG_RC_CORE=y
>  CONFIG_MEDIA_CONTROLLER=y
>  CONFIG_VIDEO_V4L2_SUBDEV_API=y
> -CONFIG_RC_DEVICES=y
> -CONFIG_IR_GPIO_CIR=y
>  CONFIG_MEDIA_USB_SUPPORT=y
>  CONFIG_USB_VIDEO_CLASS=m
>  CONFIG_V4L_PLATFORM_DRIVERS=y
> @@ -245,7 +241,6 @@ CONFIG_VIDEO_CODA=m
>  # CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
>  CONFIG_VIDEO_ADV7180=m
>  CONFIG_VIDEO_OV5640=m
> -CONFIG_SOC_CAMERA_OV2640=y
>  CONFIG_IMX_IPUV3_CORE=y
>  CONFIG_DRM=y
>  CONFIG_DRM_PANEL_SIMPLE=y
> @@ -283,6 +278,7 @@ CONFIG_SND_SOC_CS42XX8_I2C=y
>  CONFIG_SND_SOC_TLV320AIC3X=y
>  CONFIG_SND_SOC_WM8960=y
>  CONFIG_SND_SIMPLE_CARD=y
> +CONFIG_HID_MULTITOUCH=y

Don't do the defconfig cleanup in the same patch.

>  CONFIG_USB=y
>  CONFIG_USB_EHCI_HCD=y
>  CONFIG_USB_EHCI_MXC=y
> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
> index 782699e..54002c3 100644
> --- a/arch/arm/mach-imx/Kconfig
> +++ b/arch/arm/mach-imx/Kconfig
> @@ -554,6 +554,15 @@ comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
>
>  if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
>
> +config SOC_IMX7ULP
> +       bool "i.MX7ULP support"
> +       select ARM_GIC
> +       select CLKSRC_IMX_TPM
> +       select HAVE_ARM_ARCH_TIMER
> +       select PINCTRL_IMX7ULP
> +       help
> +         This enables support for Freescale i.MX7 Ultra Low Power processor.
> +
>  config SOC_VF610
>         bool "Vybrid Family VF610 support"
>         select ARM_GIC if ARCH_MULTI_V7
> diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
> index 8ff7105..69c2517 100644
> --- a/arch/arm/mach-imx/Makefile
> +++ b/arch/arm/mach-imx/Makefile

arch/arm/mach-imx changes can also go in a different patch.
--
To unsubscribe from this list: send the line "unsubscribe linux-clk" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Aisheng Dong Jan. 25, 2018, 1:46 p.m. UTC | #2
SGkgRmFiaW8sDQoNClRoaXMgcGF0Y2ggKFBhdGNoIDEwKSBpcyB1c2VkIGZvciB0ZXN0IGFuZCB3
YXMgc2VudCBvdXQgYnkgYWNjaWRlbnRseSwgbm90IGZvcm1hbCBvbmUuDQpJIGFsc28gZXhwbGFp
bmVkIGluIGFub3RoZXIgZW1haWwuIEd1ZXNzIHlvdSBtYXkgbm90IHNlZSBpdC4NCg0KUmVhbGx5
IHNvcnJ5IGZvciB0aGUgaW5jb252ZW5pZW5jZS4NCg0KUmVnYXJkcw0KRG9uZyBBaXNoZW5nDQoN
Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmFiaW8gRXN0ZXZhbSBbbWFp
bHRvOmZlc3RldmFtQGdtYWlsLmNvbV0NCj4gU2VudDogVGh1cnNkYXksIEphbnVhcnkgMjUsIDIw
MTggOToyMiBQTQ0KPiBUbzogQS5zLiBEb25nIDxhaXNoZW5nLmRvbmdAbnhwLmNvbT4NCj4gQ2M6
IGxpbnV4LWNsayA8bGludXgtY2xrQHZnZXIua2VybmVsLm9yZz47IEphY2t5IEJhaSA8cGluZy5i
YWlAbnhwLmNvbT47DQo+IEFuc29uIEh1YW5nIDxhbnNvbi5odWFuZ0BueHAuY29tPjsgTWljaGFl
bCBUdXJxdWV0dGUNCj4gPG10dXJxdWV0dGVAYmF5bGlicmUuY29tPjsgU3RlcGhlbiBCb3lkIDxz
Ym95ZEBjb2RlYXVyb3JhLm9yZz47IGxpbnV4LQ0KPiBrZXJuZWwgPGxpbnV4LWtlcm5lbEB2Z2Vy
Lmtlcm5lbC5vcmc+OyBkbC1saW51eC1pbXggPGxpbnV4LWlteEBueHAuY29tPjsNCj4gRmFiaW8g
RXN0ZXZhbSA8ZmFiaW8uZXN0ZXZhbUBueHAuY29tPjsgU2hhd24gR3VvDQo+IDxzaGF3bmd1b0Br
ZXJuZWwub3JnPjsgbW9kZXJhdGVkIGxpc3Q6QVJNL0ZSRUVTQ0FMRSBJTVggLyBNWEMgQVJNDQo+
IEFSQ0hJVEVDVFVSRSA8bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnPg0KPiBT
dWJqZWN0OiBSZTogW1BBVENIIFYzIDEwLzEwXSBhZGQgaW14N3VscCBzdXBwb3J0DQo+IA0KPiBP
biBGcmksIEphbiAxOSwgMjAxOCBhdCAxMToxMSBBTSwgRG9uZyBBaXNoZW5nIDxhaXNoZW5nLmRv
bmdAbnhwLmNvbT4NCj4gd3JvdGU6DQo+IA0KPiBQbGVhc2UgYWx3YXlzIGFkZCBhIGNvbW1pdCBs
b2cuDQo+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IERvbmcgQWlzaGVuZyA8YWlzaGVuZy5kb25nQG54
cC5jb20+DQo+IA0KPiA+IC0tLQ0KPiA+ICBhcmNoL2FybS9ib290L2R0cy9NYWtlZmlsZSAgICAg
ICAgICAgfCAgIDIgKw0KPiA+ICBhcmNoL2FybS9ib290L2R0cy9pbXg3dWxwLWV2ay5kdHMgICAg
fCAgODcgKysrKysrKysrKysrKysrDQo+ID4gIGFyY2gvYXJtL2Jvb3QvZHRzL2lteDd1bHAuZHRz
aSAgICAgICB8IDIwMg0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+
ICBhcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWcgfCAgMTYgKystDQo+ID4gIGFy
Y2gvYXJtL21hY2gtaW14L0tjb25maWcgICAgICAgICAgICB8ICAgOSArKw0KPiA+ICBhcmNoL2Fy
bS9tYWNoLWlteC9NYWtlZmlsZSAgICAgICAgICAgfCAgIDEgKw0KPiA+ICBhcmNoL2FybS9tYWNo
LWlteC9jb21tb24uaCAgICAgICAgICAgfCAgIDEgKw0KPiA+ICBhcmNoL2FybS9tYWNoLWlteC9j
cHUuYyAgICAgICAgICAgICAgfCAgIDMgKw0KPiA+ICBhcmNoL2FybS9tYWNoLWlteC9tYWNoLWlt
eDd1bHAuYyAgICAgfCAgMzcgKysrKysrKw0KPiA+ICBhcmNoL2FybS9tYWNoLWlteC9teGMuaCAg
ICAgICAgICAgICAgfCAgIDEgKw0KPiA+ICBhcmNoL2FybS9tYWNoLWlteC9wbS1pbXg3dWxwLmMg
ICAgICAgfCAgMzIgKysrKysrDQo+ID4gIDExIGZpbGVzIGNoYW5nZWQsIDM4MSBpbnNlcnRpb25z
KCspLCAxMCBkZWxldGlvbnMoLSkgIGNyZWF0ZSBtb2RlDQo+ID4gMTAwNjQ0IGFyY2gvYXJtL2Jv
b3QvZHRzL2lteDd1bHAtZXZrLmR0cyAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gYXJjaC9hcm0v
Ym9vdC9kdHMvaW14N3VscC5kdHNpICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBhcmNoL2FybS9t
YWNoLWlteC9tYWNoLWlteDd1bHAuYyAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gYXJjaC9hcm0v
bWFjaC1pbXgvcG0taW14N3VscC5jDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9v
dC9kdHMvTWFrZWZpbGUgYi9hcmNoL2FybS9ib290L2R0cy9NYWtlZmlsZQ0KPiA+IGluZGV4IGQw
MzgxZTkuLjMyNTdlNzEgMTAwNjQ0DQo+ID4gLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvTWFrZWZp
bGUNCj4gPiArKysgYi9hcmNoL2FybS9ib290L2R0cy9NYWtlZmlsZQ0KPiA+IEBAIC01MTksNiAr
NTE5LDggQEAgZHRiLSQoQ09ORklHX1NPQ19JTVg3RCkgKz0gXA0KPiA+ICAgICAgICAgaW14N2Qt
c2RiLXNodDExLmR0YiBcDQo+ID4gICAgICAgICBpbXg3cy1jb2xpYnJpLWV2YWwtdjMuZHRiIFwN
Cj4gPiAgICAgICAgIGlteDdzLXdhcnAuZHRiDQo+ID4gK2R0Yi0kKENPTkZJR19TT0NfSU1YN1VM
UCkgKz0gXA0KPiA+ICsgICAgICAgaW14N3VscC1ldmsuZHRiDQo+ID4gIGR0Yi0kKENPTkZJR19T
T0NfTFMxMDIxQSkgKz0gXA0KPiA+ICAgICAgICAgbHMxMDIxYS1xZHMuZHRiIFwNCj4gPiAgICAg
ICAgIGxzMTAyMWEtdHdyLmR0Yg0KPiA+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy9p
bXg3dWxwLWV2ay5kdHMNCj4gPiBiL2FyY2gvYXJtL2Jvb3QvZHRzL2lteDd1bHAtZXZrLmR0cw0K
PiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMC4uY2M0ZTZlZg0KPiA+
IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9hcmNoL2FybS9ib290L2R0cy9pbXg3dWxwLWV2ay5k
dHMNCj4gPiBAQCAtMCwwICsxLDg3IEBADQo+ID4gKy8qDQo+ID4gKyAqIENvcHlyaWdodCAyMDE3
IE5YUA0KPiA+ICsgKg0KPiA+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yDQo+ID4gK21vZGlmeQ0KPiA+ICsgKiBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBh
cw0KPiA+ICsgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4NCj4g
DQo+IFBsZWFzZSB1c2UgU1BEWCBpZGVudGlmaWVyLg0KPiANCj4gDQo+ID4gKyAqLw0KPiA+ICsN
Cj4gPiArL2R0cy12MS87DQo+ID4gKw0KPiA+ICsjaW5jbHVkZSAiaW14N3VscC5kdHNpIg0KPiA+
ICsNCj4gPiArLyB7DQo+ID4gKyAgICAgICBtb2RlbCA9ICJOWFAgaS5NWDdVTFAgRVZLIjsNCj4g
PiArICAgICAgIGNvbXBhdGlibGUgPSAiZnNsLGlteDd1bHAtZXZrIiwgImZzbCxpbXg3dWxwIiwg
IkdlbmVyaWMgRFQNCj4gPiArYmFzZWQgc3lzdGVtIjsNCj4gDQo+IFBsZWFzZSByZW1vdmUgdGhl
ICciR2VuZXJpYyBEVCBiYXNlZCBzeXN0ZW0iIGVudHJ5Lg0KPiANCj4gDQo+ID4gKw0KPiA+ICsg
ICAgICAgY2hvc2VuIHsNCj4gPiArICAgICAgICAgICAgICAgYm9vdGFyZ3MgPSAiY29uc29sZT10
dHlMUDAsMTE1MjAwDQo+IGVhcmx5Y29uPWxwdWFydDMyLDB4NDAyRDAwMTAsMTE1MjAwIjsNCj4g
PiArICAgICAgICAgICAgICAgc3Rkb3V0LXBhdGggPSAmbHB1YXJ0NDsNCj4gDQo+IEJldHRlciBy
ZW1vdmUgYm9vdGFyZ3MuDQo+IA0KPiANCj4gPiArICAgICAgIH07DQo+ID4gKw0KPiA+ICsgICAg
ICAgbWVtb3J5IHsNCj4gDQo+IG1lbW9yeUA2MDAwMDAwMCAsIG90aGVyd2lzZSBidWlsZGluZyB3
aXRoIFc9MSB3aWxsIGdpdmUgeW91IHdhcm5pbmcuDQo+IA0KPiBQbGVhc2UgbWFrZSBzdXJlIHRo
YXQgeW91IGRvbid0IGdldCBkdGMgd2FybmluZ3Mgd2l0aCBXPTEuDQo+IA0KPiA+ICsgICAgICAg
ICAgICAgICBkZXZpY2VfdHlwZSA9ICJtZW1vcnkiOw0KPiA+ICsgICAgICAgICAgICAgICByZWcg
PSA8MHg2MDAwMDAwMCAweDQwMDAwMDAwPjsNCj4gPiArICAgICAgIH07DQo+ID4gK307DQo+ID4g
Kw0KPiA+ICsmbHB1YXJ0NCB7DQo+ID4gKyAgICAgICBwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQi
Ow0KPiA+ICsgICAgICAgcGluY3RybC0wID0gPCZwaW5jdHJsX2xwdWFydDQ+Ow0KPiA+ICsgICAg
ICAgc3RhdHVzID0gIm9rYXkiOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArJnVzZGhjMCB7DQo+ID4g
KyAgICAgICBwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOw0KPiA+ICsgICAgICAgcGluY3RybC0w
ID0gPD47DQo+ID4gKyAgICAgICBwaW5jdHJsLTAgPSA8JnBpbmN0cmxfdXNkaGMwX2NtZF9kYXRh
PiwgPCZwaW5jdHJsX3VzZGhjMF9jbGs+Ow0KPiA+ICsvLyAgICAgICAgICAgICAgICAgPCZwaW5j
dHJsX3VzZGhjMF9jZD4sIDwmcGluY3RybF91c2RoYzBfcnN0PjsNCj4gDQo+IEp1c3QgcmVtb3Zl
IHRoZSBsaW5lIGluc3RlYWQgb2YgY29tbWVudGluZyBpdC4NCj4gDQo+ID4gZGlmZiAtLWdpdCBh
L2FyY2gvYXJtL2Jvb3QvZHRzL2lteDd1bHAuZHRzaQ0KPiA+IGIvYXJjaC9hcm0vYm9vdC9kdHMv
aW14N3VscC5kdHNpIG5ldyBmaWxlIG1vZGUgMTAwNjQ0IGluZGV4DQo+ID4gMDAwMDAwMC4uMDU0
MTBiYQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9hcmNoL2FybS9ib290L2R0cy9pbXg3
dWxwLmR0c2kNCj4gPiBAQCAtMCwwICsxLDIwMiBAQA0KPiA+ICsvKg0KPiA+ICsgKiBDb3B5cmln
aHQgTlhQDQo+IA0KPiBObyB5ZWFyIGluZm9ybWF0aW9uPw0KPiANCj4gDQo+ID4gKyAqDQo+ID4g
KyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3INCj4gPiArIG1vZGlmeQ0KPiA+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcw0KPiA+ICsgKiBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4NCj4gDQo+IA0KPiBQbGVhc2UgdXNl
IFNQRFggaWRlbnRpZmllciBpbnN0ZWFkLg0KPiANCj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v
Y29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnDQo+ID4gYi9hcmNoL2FybS9jb25maWdzL2lteF92
Nl92N19kZWZjb25maWcNCj4gPiBpbmRleCAwZDQ0OTQ5Li4zY2U4ZmY2IDEwMDY0NA0KPiA+IC0t
LSBhL2FyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZw0KPiA+ICsrKyBiL2FyY2gv
YXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZw0KPiA+IEBAIC00MSw2ICs0MSw3IEBAIENP
TkZJR19TT0NfSU1YNlNMPXkNCj4gPiAgQ09ORklHX1NPQ19JTVg2U1g9eQ0KPiA+ICBDT05GSUdf
U09DX0lNWDZVTD15DQo+ID4gIENPTkZJR19TT0NfSU1YN0Q9eQ0KPiA+ICtDT05GSUdfU09DX0lN
WDdVTFA9eQ0KPiANCj4gVGhpcyBzaG91bGQgYmUgcGFydCBvZiBhIHNlcGFyYXRlIHBhdGNoLg0K
PiANCj4gDQo+ID4gIENPTkZJR19TT0NfVkY2MTA9eQ0KPiA+ICBDT05GSUdfUENJPXkNCj4gPiAg
Q09ORklHX1BDSV9NU0k9eQ0KPiA+IEBAIC00OCw5ICs0OSw3IEBAIENPTkZJR19QQ0lfSU1YNj15
DQo+ID4gIENPTkZJR19TTVA9eQ0KPiA+ICBDT05GSUdfQVJNX1BTQ0k9eQ0KPiA+ICBDT05GSUdf
UFJFRU1QVF9WT0xVTlRBUlk9eQ0KPiA+IC1DT05GSUdfQUVBQkk9eQ0KPiA+ICBDT05GSUdfSElH
SE1FTT15DQo+ID4gLUNPTkZJR19DTUE9eQ0KPiA+ICBDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRF
Uj0xNA0KPiA+ICBDT05GSUdfQ01ETElORT0ibm9pbml0cmQgY29uc29sZT10dHlteGMwLDExNTIw
MCINCj4gPiAgQ09ORklHX0tFWEVDPXkNCj4gPiBAQCAtODEsNyArODAsNiBAQCBDT05GSUdfQ0FO
X0ZMRVhDQU49eSAgQ09ORklHX0JUPXkNCj4gPiBDT05GSUdfQlRfSENJVUFSVD15ICBDT05GSUdf
QlRfSENJVUFSVF9IND15IC0NCj4gQ09ORklHX0JUX0hDSVVBUlRfTEw9eQ0KPiA+IENPTkZJR19D
Rkc4MDIxMT15ICBDT05GSUdfQ0ZHODAyMTFfV0VYVD15ICBDT05GSUdfTUFDODAyMTE9eQ0KPiBA
QCAtOTAsNw0KPiA+ICs4OCw2IEBAIENPTkZJR19SRktJTExfSU5QVVQ9eSAgQ09ORklHX0RFVlRN
UEZTPXkNCj4gPiBDT05GSUdfREVWVE1QRlNfTU9VTlQ9eSAgIyBDT05GSUdfU1RBTkRBTE9ORSBp
cyBub3Qgc2V0DQo+ID4gLUNPTkZJR19ETUFfQ01BPXkNCj4gPiAgQ09ORklHX0NNQV9TSVpFX01C
WVRFUz02NA0KPiA+ICBDT05GSUdfSU1YX1dFSU09eQ0KPiA+ICBDT05GSUdfQ09OTkVDVE9SPXkN
Cj4gPiBAQCAtMTY3LDkgKzE2NCw5IEBAIENPTkZJR19NT1VTRV9QUzJfRUxBTlRFQ0g9eQ0KPiA+
IENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTj15ICBDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0Nj15
DQo+ID4gQ09ORklHX1RPVUNIU0NSRUVOX0VHQUxBWD15DQo+ID4gK0NPTkZJR19UT1VDSFNDUkVF
Tl9NQVgxMTgwMT15DQo+ID4gIENPTkZJR19UT1VDSFNDUkVFTl9JTVg2VUxfVFNDPXkNCj4gPiAg
Q09ORklHX1RPVUNIU0NSRUVOX0VEVF9GVDVYMDY9eQ0KPiA+IC1DT05GSUdfVE9VQ0hTQ1JFRU5f
TUFYMTE4MDE9eQ0KPiA+ICBDT05GSUdfVE9VQ0hTQ1JFRU5fTUMxMzc4Mz15DQo+ID4gIENPTkZJ
R19UT1VDSFNDUkVFTl9UU0MyMDA0PXkNCj4gPiAgQ09ORklHX1RPVUNIU0NSRUVOX1RTQzIwMDc9
eQ0KPiA+IEBAIC0xNzgsNyArMTc1LDYgQEAgQ09ORklHX1RPVUNIU0NSRUVOX1NYODY1ND15DQo+
ID4gQ09ORklHX1RPVUNIU0NSRUVOX0NPTElCUklfVkY1MD15ICBDT05GSUdfSU5QVVRfTUlTQz15
DQo+ID4gQ09ORklHX0lOUFVUX01NQTg0NTA9eSAtQ09ORklHX0hJRF9NVUxUSVRPVUNIPXkNCj4g
PiBDT05GSUdfU0VSSU9fU0VSUE9SVD1tICAjIENPTkZJR19MRUdBQ1lfUFRZUyBpcyBub3Qgc2V0
DQo+ID4gQ09ORklHX1NFUklBTF9JTVg9eSBAQCAtMjI4LDEzICsyMjQsMTMgQEANCj4gQ09ORklH
X1JFR1VMQVRPUl9HUElPPXkNCj4gPiBDT05GSUdfUkVHVUxBVE9SX01DMTM3ODM9eSAgQ09ORklH
X1JFR1VMQVRPUl9NQzEzODkyPXkNCj4gPiBDT05GSUdfUkVHVUxBVE9SX1BGVVpFMTAwPXkNCj4g
PiArQ09ORklHX1JDX0NPUkU9eQ0KPiA+ICtDT05GSUdfUkNfREVWSUNFUz15DQo+ID4gK0NPTkZJ
R19JUl9HUElPX0NJUj15DQo+ID4gIENPTkZJR19NRURJQV9TVVBQT1JUPXkNCj4gPiAgQ09ORklH
X01FRElBX0NBTUVSQV9TVVBQT1JUPXkNCj4gPiAtQ09ORklHX1JDX0NPUkU9eQ0KPiA+ICBDT05G
SUdfTUVESUFfQ09OVFJPTExFUj15DQo+ID4gIENPTkZJR19WSURFT19WNEwyX1NVQkRFVl9BUEk9
eQ0KPiA+IC1DT05GSUdfUkNfREVWSUNFUz15DQo+ID4gLUNPTkZJR19JUl9HUElPX0NJUj15DQo+
ID4gIENPTkZJR19NRURJQV9VU0JfU1VQUE9SVD15DQo+ID4gIENPTkZJR19VU0JfVklERU9fQ0xB
U1M9bQ0KPiA+ICBDT05GSUdfVjRMX1BMQVRGT1JNX0RSSVZFUlM9eQ0KPiA+IEBAIC0yNDUsNyAr
MjQxLDYgQEAgQ09ORklHX1ZJREVPX0NPREE9bSAgIw0KPiA+IENPTkZJR19NRURJQV9TVUJEUlZf
QVVUT1NFTEVDVCBpcyBub3Qgc2V0DQo+IENPTkZJR19WSURFT19BRFY3MTgwPW0NCj4gPiBDT05G
SUdfVklERU9fT1Y1NjQwPW0gLUNPTkZJR19TT0NfQ0FNRVJBX09WMjY0MD15DQo+ID4gQ09ORklH
X0lNWF9JUFVWM19DT1JFPXkgIENPTkZJR19EUk09eQ0KPiBDT05GSUdfRFJNX1BBTkVMX1NJTVBM
RT15IEBADQo+ID4gLTI4Myw2ICsyNzgsNyBAQCBDT05GSUdfU05EX1NPQ19DUzQyWFg4X0kyQz15
DQo+ID4gQ09ORklHX1NORF9TT0NfVExWMzIwQUlDM1g9eSAgQ09ORklHX1NORF9TT0NfV004OTYw
PXkNCj4gPiBDT05GSUdfU05EX1NJTVBMRV9DQVJEPXkNCj4gPiArQ09ORklHX0hJRF9NVUxUSVRP
VUNIPXkNCj4gDQo+IERvbid0IGRvIHRoZSBkZWZjb25maWcgY2xlYW51cCBpbiB0aGUgc2FtZSBw
YXRjaC4NCj4gDQo+ID4gIENPTkZJR19VU0I9eQ0KPiA+ICBDT05GSUdfVVNCX0VIQ0lfSENEPXkN
Cj4gPiAgQ09ORklHX1VTQl9FSENJX01YQz15DQo+ID4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21h
Y2gtaW14L0tjb25maWcgYi9hcmNoL2FybS9tYWNoLWlteC9LY29uZmlnDQo+ID4gaW5kZXggNzgy
Njk5ZS4uNTQwMDJjMyAxMDA2NDQNCj4gPiAtLS0gYS9hcmNoL2FybS9tYWNoLWlteC9LY29uZmln
DQo+ID4gKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvS2NvbmZpZw0KPiA+IEBAIC01NTQsNiArNTU0
LDE1IEBAIGNvbW1lbnQgIkNvcnRleC1BL0NvcnRleC1NIGFzeW1tZXRyaWMNCj4gbXVsdGlwcm9j
ZXNzaW5nIHBsYXRmb3JtcyINCj4gPg0KPiA+ICBpZiBBUkNIX01VTFRJX1Y3IHx8IEFSTV9TSU5H
TEVfQVJNVjdNDQo+ID4NCj4gPiArY29uZmlnIFNPQ19JTVg3VUxQDQo+ID4gKyAgICAgICBib29s
ICJpLk1YN1VMUCBzdXBwb3J0Ig0KPiA+ICsgICAgICAgc2VsZWN0IEFSTV9HSUMNCj4gPiArICAg
ICAgIHNlbGVjdCBDTEtTUkNfSU1YX1RQTQ0KPiA+ICsgICAgICAgc2VsZWN0IEhBVkVfQVJNX0FS
Q0hfVElNRVINCj4gPiArICAgICAgIHNlbGVjdCBQSU5DVFJMX0lNWDdVTFANCj4gPiArICAgICAg
IGhlbHANCj4gPiArICAgICAgICAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIEZyZWVzY2FsZSBp
Lk1YNyBVbHRyYSBMb3cgUG93ZXIgcHJvY2Vzc29yLg0KPiA+ICsNCj4gPiAgY29uZmlnIFNPQ19W
RjYxMA0KPiA+ICAgICAgICAgYm9vbCAiVnlicmlkIEZhbWlseSBWRjYxMCBzdXBwb3J0Ig0KPiA+
ICAgICAgICAgc2VsZWN0IEFSTV9HSUMgaWYgQVJDSF9NVUxUSV9WNyBkaWZmIC0tZ2l0DQo+ID4g
YS9hcmNoL2FybS9tYWNoLWlteC9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtaW14L01ha2VmaWxl
IGluZGV4DQo+ID4gOGZmNzEwNS4uNjljMjUxNyAxMDA2NDQNCj4gPiAtLS0gYS9hcmNoL2FybS9t
YWNoLWlteC9NYWtlZmlsZQ0KPiA+ICsrKyBiL2FyY2gvYXJtL21hY2gtaW14L01ha2VmaWxlDQo+
IA0KPiBhcmNoL2FybS9tYWNoLWlteCBjaGFuZ2VzIGNhbiBhbHNvIGdvIGluIGEgZGlmZmVyZW50
IHBhdGNoLg0K
--
To unsubscribe from this list: send the line "unsubscribe linux-clk" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index d0381e9..3257e71 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -519,6 +519,8 @@  dtb-$(CONFIG_SOC_IMX7D) += \
 	imx7d-sdb-sht11.dtb \
 	imx7s-colibri-eval-v3.dtb \
 	imx7s-warp.dtb
+dtb-$(CONFIG_SOC_IMX7ULP) += \
+	imx7ulp-evk.dtb
 dtb-$(CONFIG_SOC_LS1021A) += \
 	ls1021a-qds.dtb \
 	ls1021a-twr.dtb
diff --git a/arch/arm/boot/dts/imx7ulp-evk.dts b/arch/arm/boot/dts/imx7ulp-evk.dts
new file mode 100644
index 0000000..cc4e6ef
--- /dev/null
+++ b/arch/arm/boot/dts/imx7ulp-evk.dts
@@ -0,0 +1,87 @@ 
+/*
+ * Copyright 2017 NXP
+ *
+ * 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.
+ */
+
+/dts-v1/;
+
+#include "imx7ulp.dtsi"
+
+/ {
+	model = "NXP i.MX7ULP EVK";
+	compatible = "fsl,imx7ulp-evk", "fsl,imx7ulp", "Generic DT based system";
+
+	chosen {
+		bootargs = "console=ttyLP0,115200 earlycon=lpuart32,0x402D0010,115200";
+		stdout-path = &lpuart4;
+	};
+
+	memory {
+		device_type = "memory";
+		reg = <0x60000000 0x40000000>;
+	};
+};
+
+&lpuart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_lpuart4>;
+	status = "okay";
+};
+
+&usdhc0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <>;
+	pinctrl-0 = <&pinctrl_usdhc0_cmd_data>, <&pinctrl_usdhc0_clk>;
+//		    <&pinctrl_usdhc0_cd>, <&pinctrl_usdhc0_rst>;
+	status = "okay";
+};
+
+&iomuxc1 {
+	pinctrl_lpuart4: lpuart4grp {
+		pins = <
+			IMX7ULP_PAD_PTC3__LPUART4_RX
+			IMX7ULP_PAD_PTC2__LPUART4_TX
+		>;
+		bias-pull-up;
+	};
+
+	pinctrl_usdhc0_cmd_data: usdhc0_cmd_data_0_3_grp {
+		pins = <
+			IMX7ULP_PAD_PTD1__SDHC0_CMD
+			IMX7ULP_PAD_PTD2__SDHC0_CLK
+			IMX7ULP_PAD_PTD7__SDHC0_D3
+			IMX7ULP_PAD_PTD8__SDHC0_D2
+			IMX7ULP_PAD_PTD9__SDHC0_D1
+			IMX7ULP_PAD_PTD10__SDHC0_D0
+		>;
+		drive-strength = <1>;
+		bias-pull-up;
+	};
+
+	pinctrl_usdhc0_clk: usdhc0_clk_grp {
+		pins = <
+			IMX7ULP_PAD_PTD2__SDHC0_CLK
+		>;
+		drive-strength = <1>;
+		bias-pull-down;
+	};
+
+	pinctrl_usdhc0_cd: usdhc0_gpios_cd_grp {
+		pins = <
+			IMX7ULP_PAD_PTC10__PTC10		/* USDHC0 CD */
+		>;
+		nxp,input-buffer-enable;
+		bias-pull-up;
+	};
+
+	pinctrl_usdhc0_rst: usdhc0_gpios_rst_grp {
+		pins = <
+			IMX7ULP_PAD_PTD0__PTD0		/* USDHC0 RST */
+		>;
+		nxp,output-buffer-enable;
+		bias-pull-up;
+	};
+};
diff --git a/arch/arm/boot/dts/imx7ulp.dtsi b/arch/arm/boot/dts/imx7ulp.dtsi
new file mode 100644
index 0000000..05410ba
--- /dev/null
+++ b/arch/arm/boot/dts/imx7ulp.dtsi
@@ -0,0 +1,202 @@ 
+/*
+ * Copyright NXP
+ *
+ * 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.
+ */
+
+#include <dt-bindings/clock/imx7ulp-clock.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include "skeleton.dtsi"
+
+#include "imx7ulp-pinfunc.h"
+
+/ {
+	interrupt-parent = <&intc>;
+
+	aliases {
+		serial0 = &lpuart4;
+		serial1 = &lpuart6;
+		serial2 = &lpuart5;
+	};
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		cpu0: cpu@0 {
+			compatible = "arm,cortex-a7";
+			device_type = "cpu";
+			reg = <0>;
+		};
+	};
+
+	intc: interrupt-controller@40021000 {
+		compatible = "arm,cortex-a7-gic";
+		#interrupt-cells = <3>;
+		interrupt-controller;
+		reg = <0x40021000 0x1000>,
+		      <0x40022000 0x100>;
+	};
+
+	clocks {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		rosc: clock@0 {
+			compatible = "fixed-clock";
+			reg = <0>;
+			clock-frequency = <32768>;
+			clock-output-names = "rosc";
+			#clock-cells = <0>;
+		};
+
+		sosc: clock@1 {
+			compatible = "fixed-clock";
+			reg = <1>;
+			clock-frequency = <24000000>;
+			clock-output-names = "sosc";
+			#clock-cells = <0>;
+		};
+
+		sirc: clock@2 {
+			compatible = "fixed-clock";
+			reg = <2>;
+			clock-frequency = <16000000>;
+			clock-output-names = "sirc";
+			#clock-cells = <0>;
+		};
+
+		firc: clock@3 {
+			compatible = "fixed-clock";
+			reg = <3>;
+			clock-frequency = <48000000>;
+			clock-output-names = "firc";
+			#clock-cells = <0>;
+		};
+
+		upll: clock@4 {
+			compatible = "fixed-clock";
+			reg = <4>;
+			clock-frequency = <480000000>;
+			clock-output-names = "upll";
+			#clock-cells = <0>;
+		};
+
+		mpll: clock@5 {
+			compatible = "fixed-clock";
+			reg = <5>;
+			clock-frequency = <480000000>;
+			clock-output-names = "mpll";
+			#clock-cells = <0>;
+		};
+	};
+
+	timer {
+		compatible = "arm,armv7-timer";
+		arm,cpu-registers-not-fw-configured;
+		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+		interrupt-parent = <&intc>;
+		clock-frequency = <1000000>;
+		status = "disabled";
+	};
+
+	sram: sram@20000000 {
+		compatible = "fsl,lpm-sram";
+		reg = <0x20008000 0x4000>;
+	};
+
+	ahbbridge0: ahb-bridge0@40000000 {
+		compatible = "fsl,aips-bus", "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <0x40000000 0x800000>;
+		ranges;
+
+		lpuart4: serial@402D0000 {
+			compatible = "fsl,imx7ulp-lpuart";
+			reg = <0x402D0000 0x1000>;
+			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clks IMX7ULP_CLK_LPUART4>;
+			clock-names = "ipg";
+			assigned-clocks = <&clks IMX7ULP_CLK_LPUART4>;
+			assigned-clock-parents = <&clks IMX7ULP_CLK_SOSC_BUS_CLK>;
+			assigned-clock-rates = <24000000>;
+			status = "disabled";
+		};
+
+		lpuart5: serial@402E0000 {
+			compatible = "fsl,imx7ulp-lpuart";
+			reg = <0x402E0000 0x1000>;
+			interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+			assigned-clocks = <&clks IMX7ULP_CLK_LPUART5>;
+			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC>;
+			assigned-clock-rates = <48000000>;
+			status = "disabled";
+		};
+
+		tpm5: tpm@40260000 {
+			compatible = "fsl,imx7ulp-tpm";
+			reg = <0x40260000 0x1000>;
+			interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clks IMX7ULP_CLK_NIC1_BUS_DIV>,
+				 <&clks IMX7ULP_CLK_LPTPM5>;
+			clock-names = "ipg", "per";
+		};
+
+		usdhc0: usdhc@40370000 {
+			compatible = "fsl,imx7ulp-usdhc", "fsl,imx6sl-usdhc";
+			reg = <0x40370000 0x10000>;
+			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clks IMX7ULP_CLK_NIC1_BUS_DIV>,
+				 <&clks IMX7ULP_CLK_NIC1_DIV>,
+				 <&clks IMX7ULP_CLK_USDHC0>;
+			clock-names ="ipg", "ahb", "per";
+			bus-width = <4>;
+			status = "disabled";
+		};
+
+		clks: scg1@403e0000 {
+			compatible = "fsl,imx7ulp-clock";
+			reg = <0x403e0000 0x10000>,
+			      <0x403f0000 0x10000>,
+			      <0x40b30000 0x10000>;
+			reg-names = "scg1", "pcc2", "pcc3";
+			clocks = <&rosc>, <&sosc>, <&sirc>,
+				 <&firc>, <&upll>, <&mpll>;
+			clock-names = "rosc", "sosc", "sirc",
+				      "firc", "upll", "mpll";
+			assigned-clocks = <&clks IMX7ULP_CLK_LPTPM5>,
+					  <&clks IMX7ULP_CLK_USDHC1>;
+			assigned-clock-parents = <&clks IMX7ULP_CLK_SOSC_BUS_CLK>,
+						 <&clks IMX7ULP_CLK_NIC1_DIV>;
+			#clock-cells = <1>;
+		};
+
+		smc1: smc1@40410000 {
+			compatible = "fsl,imx7ulp-smc1";
+			reg = <0x40410000 0x1000>;
+		};
+	};
+
+	ahbbridge1: ahb-bridge1@40800000 {
+		compatible = "fsl,aips-bus", "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <0x40800000 0x800000>;
+		ranges;
+
+		iomuxc1: iomuxc1@40ac0000 {
+			compatible = "fsl,imx7ulp-iomuxc1";
+			reg = <0x40ac0000 0x1000>;
+		};
+
+		lpuart6: serial@40A60000 {
+			compatible = "fsl,imx7ulp-lpuart";
+			reg = <0x40A60000 0x1000>;
+			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+			status = "disabled";
+		};
+	};
+};
diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig
index 0d44949..3ce8ff6 100644
--- a/arch/arm/configs/imx_v6_v7_defconfig
+++ b/arch/arm/configs/imx_v6_v7_defconfig
@@ -41,6 +41,7 @@  CONFIG_SOC_IMX6SL=y
 CONFIG_SOC_IMX6SX=y
 CONFIG_SOC_IMX6UL=y
 CONFIG_SOC_IMX7D=y
+CONFIG_SOC_IMX7ULP=y
 CONFIG_SOC_VF610=y
 CONFIG_PCI=y
 CONFIG_PCI_MSI=y
@@ -48,9 +49,7 @@  CONFIG_PCI_IMX6=y
 CONFIG_SMP=y
 CONFIG_ARM_PSCI=y
 CONFIG_PREEMPT_VOLUNTARY=y
-CONFIG_AEABI=y
 CONFIG_HIGHMEM=y
-CONFIG_CMA=y
 CONFIG_FORCE_MAX_ZONEORDER=14
 CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"
 CONFIG_KEXEC=y
@@ -81,7 +80,6 @@  CONFIG_CAN_FLEXCAN=y
 CONFIG_BT=y
 CONFIG_BT_HCIUART=y
 CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_LL=y
 CONFIG_CFG80211=y
 CONFIG_CFG80211_WEXT=y
 CONFIG_MAC80211=y
@@ -90,7 +88,6 @@  CONFIG_RFKILL_INPUT=y
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
 # CONFIG_STANDALONE is not set
-CONFIG_DMA_CMA=y
 CONFIG_CMA_SIZE_MBYTES=64
 CONFIG_IMX_WEIM=y
 CONFIG_CONNECTOR=y
@@ -167,9 +164,9 @@  CONFIG_MOUSE_PS2_ELANTECH=y
 CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_TOUCHSCREEN_ADS7846=y
 CONFIG_TOUCHSCREEN_EGALAX=y
+CONFIG_TOUCHSCREEN_MAX11801=y
 CONFIG_TOUCHSCREEN_IMX6UL_TSC=y
 CONFIG_TOUCHSCREEN_EDT_FT5X06=y
-CONFIG_TOUCHSCREEN_MAX11801=y
 CONFIG_TOUCHSCREEN_MC13783=y
 CONFIG_TOUCHSCREEN_TSC2004=y
 CONFIG_TOUCHSCREEN_TSC2007=y
@@ -178,7 +175,6 @@  CONFIG_TOUCHSCREEN_SX8654=y
 CONFIG_TOUCHSCREEN_COLIBRI_VF50=y
 CONFIG_INPUT_MISC=y
 CONFIG_INPUT_MMA8450=y
-CONFIG_HID_MULTITOUCH=y
 CONFIG_SERIO_SERPORT=m
 # CONFIG_LEGACY_PTYS is not set
 CONFIG_SERIAL_IMX=y
@@ -228,13 +224,13 @@  CONFIG_REGULATOR_GPIO=y
 CONFIG_REGULATOR_MC13783=y
 CONFIG_REGULATOR_MC13892=y
 CONFIG_REGULATOR_PFUZE100=y
+CONFIG_RC_CORE=y
+CONFIG_RC_DEVICES=y
+CONFIG_IR_GPIO_CIR=y
 CONFIG_MEDIA_SUPPORT=y
 CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_RC_CORE=y
 CONFIG_MEDIA_CONTROLLER=y
 CONFIG_VIDEO_V4L2_SUBDEV_API=y
-CONFIG_RC_DEVICES=y
-CONFIG_IR_GPIO_CIR=y
 CONFIG_MEDIA_USB_SUPPORT=y
 CONFIG_USB_VIDEO_CLASS=m
 CONFIG_V4L_PLATFORM_DRIVERS=y
@@ -245,7 +241,6 @@  CONFIG_VIDEO_CODA=m
 # CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
 CONFIG_VIDEO_ADV7180=m
 CONFIG_VIDEO_OV5640=m
-CONFIG_SOC_CAMERA_OV2640=y
 CONFIG_IMX_IPUV3_CORE=y
 CONFIG_DRM=y
 CONFIG_DRM_PANEL_SIMPLE=y
@@ -283,6 +278,7 @@  CONFIG_SND_SOC_CS42XX8_I2C=y
 CONFIG_SND_SOC_TLV320AIC3X=y
 CONFIG_SND_SOC_WM8960=y
 CONFIG_SND_SIMPLE_CARD=y
+CONFIG_HID_MULTITOUCH=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_MXC=y
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 782699e..54002c3 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -554,6 +554,15 @@  comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
 
 if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
 
+config SOC_IMX7ULP
+	bool "i.MX7ULP support"
+	select ARM_GIC
+	select CLKSRC_IMX_TPM
+	select HAVE_ARM_ARCH_TIMER
+	select PINCTRL_IMX7ULP
+	help
+	  This enables support for Freescale i.MX7 Ultra Low Power processor.
+
 config SOC_VF610
 	bool "Vybrid Family VF610 support"
 	select ARM_GIC if ARCH_MULTI_V7
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
index 8ff7105..69c2517 100644
--- a/arch/arm/mach-imx/Makefile
+++ b/arch/arm/mach-imx/Makefile
@@ -81,6 +81,7 @@  obj-$(CONFIG_SOC_IMX6SL) += mach-imx6sl.o
 obj-$(CONFIG_SOC_IMX6SX) += mach-imx6sx.o
 obj-$(CONFIG_SOC_IMX6UL) += mach-imx6ul.o
 obj-$(CONFIG_SOC_IMX7D) += mach-imx7d.o
+obj-$(CONFIG_SOC_IMX7ULP) += mach-imx7ulp.o pm-imx7ulp.o
 
 ifeq ($(CONFIG_SUSPEND),y)
 AFLAGS_suspend-imx6.o :=-Wa,-march=armv7-a
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h
index b09a2ec..b0e85df 100644
--- a/arch/arm/mach-imx/common.h
+++ b/arch/arm/mach-imx/common.h
@@ -128,6 +128,7 @@  void imx6dl_pm_init(void);
 void imx6sl_pm_init(void);
 void imx6sx_pm_init(void);
 void imx6ul_pm_init(void);
+void imx7ulp_pm_init(void);
 
 #ifdef CONFIG_PM
 void imx51_pm_init(void);
diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c
index d4e55f2..46f344f 100644
--- a/arch/arm/mach-imx/cpu.c
+++ b/arch/arm/mach-imx/cpu.c
@@ -138,6 +138,9 @@  struct device * __init imx_soc_device_init(void)
 	case MXC_CPU_IMX7D:
 		soc_id = "i.MX7D";
 		break;
+	case MXC_CPU_IMX7ULP:
+		soc_id = "i.MX7ULP";
+		break;
 	default:
 		soc_id = "Unknown";
 	}
diff --git a/arch/arm/mach-imx/mach-imx7ulp.c b/arch/arm/mach-imx/mach-imx7ulp.c
new file mode 100644
index 0000000..9f7a25c
--- /dev/null
+++ b/arch/arm/mach-imx/mach-imx7ulp.c
@@ -0,0 +1,37 @@ 
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright (C) 2017 NXP
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <linux/irqchip.h>
+#include <linux/of_platform.h>
+#include <asm/mach/arch.h>
+
+#include "common.h"
+#include "hardware.h"
+
+static void __init imx7ulp_init_machine(void)
+{
+	imx7ulp_pm_init();
+
+	mxc_set_cpu_type(MXC_CPU_IMX7ULP);
+	imx_print_silicon_rev("i.MX7ULP", IMX_CHIP_REVISION_1_0);
+	of_platform_default_populate(NULL, NULL, imx_soc_device_init());
+}
+
+static const char *const imx7ulp_dt_compat[] __initconst = {
+	"fsl,imx7ulp",
+	NULL,
+};
+
+DT_MACHINE_START(IMX7ulp, "Freescale i.MX7ULP (Device Tree)")
+	.init_machine	= imx7ulp_init_machine,
+	.dt_compat	= imx7ulp_dt_compat,
+MACHINE_END
diff --git a/arch/arm/mach-imx/mxc.h b/arch/arm/mach-imx/mxc.h
index e00d626..ac9677b 100644
--- a/arch/arm/mach-imx/mxc.h
+++ b/arch/arm/mach-imx/mxc.h
@@ -41,6 +41,7 @@ 
 #define MXC_CPU_IMX6UL		0x64
 #define MXC_CPU_IMX6ULL		0x65
 #define MXC_CPU_IMX7D		0x72
+#define MXC_CPU_IMX7ULP		0xff
 
 #define IMX_DDR_TYPE_LPDDR2		1
 
diff --git a/arch/arm/mach-imx/pm-imx7ulp.c b/arch/arm/mach-imx/pm-imx7ulp.c
new file mode 100644
index 0000000..00401e0
--- /dev/null
+++ b/arch/arm/mach-imx/pm-imx7ulp.c
@@ -0,0 +1,32 @@ 
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright (C) 2017 NXP
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <linux/io.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+
+#define SMC_PMCTRL		0x10
+#define BP_PMCTRL_PSTOPO        16
+#define PSTOPO_PSTOP3		0x3
+
+void __init imx7ulp_pm_init(void)
+{
+	struct device_node *np;
+	void __iomem *smc1_base;
+
+	np = of_find_compatible_node(NULL, NULL, "fsl,imx7ulp-smc1");
+	smc1_base = of_iomap(np, 0);
+	WARN_ON(!smc1_base);
+
+	/* Partial Stop mode 3 with system/bus clock enabled */
+	writel_relaxed(PSTOPO_PSTOP3 << BP_PMCTRL_PSTOPO, smc1_base + SMC_PMCTRL);
+}