Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: imx6qdl: add TQMa6{S,Q,QP} SoM

Add device trees for TQMa6S, TQMa6Q, and TQMa6QP embedded modules.
The A and B SoM variants are for hardware revisions that differ in
how the I2C devices are connected. For details, see [1].

This is a combination of the patches
"arm: dt: imx6qdl: add tqma6[qdl] som on mba6 mainboard",
"arm: dt: tqma6: add spi with spi nor flash on SOM",
"arm: dt: add basic support for tqma6qp on mba6", and
"arm: dt: imx6qdl-tqma6: use generic jedec,spi-nor"
from the TQMa6x BSP, with the MBa6 specific parts removed.

[1] https://support.tq-group.com/en/arm/tqma6x/linux/ptxdist/overview

Signed-off-by: Markus Niebel <Markus.Niebel@tq-group.com>
[bst@pengutronix.de: remove unnecessary container node in the iomuxc
node]
Signed-off-by: Bastian Krause <bst@pengutronix.de>
[p.zabel@pengutronix.de: merged patches from TQMa6x BSP REV.0114,
separated MBa6 DTs, fixed checkpatch and dtbs_check warnings,
added no-sd(io) properties to eMMC, added SPDX license identifiers
and commit message]
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>

authored by

Markus Niebel and committed by
Shawn Guo
cac849e9 f7e630bc

+337
+16
arch/arm/boot/dts/imx6dl-tqma6a.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later 2 + /* 3 + * Copyright 2013 Sascha Hauer, Pengutronix 4 + * Copyright 2013-2017 Markus Niebel <Markus.Niebel@tq-group.com> 5 + */ 6 + 7 + #include "imx6dl.dtsi" 8 + #include "imx6qdl-tqma6a.dtsi" 9 + #include "imx6qdl-tqma6.dtsi" 10 + 11 + / { 12 + memory@10000000 { 13 + device_type = "memory"; 14 + reg = <0x10000000 0x20000000>; 15 + }; 16 + };
+16
arch/arm/boot/dts/imx6dl-tqma6b.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later 2 + /* 3 + * Copyright 2013 Sascha Hauer, Pengutronix 4 + * Copyright 2013-2017 Markus Niebel <Markus.Niebel@tq-group.com> 5 + */ 6 + 7 + #include "imx6dl.dtsi" 8 + #include "imx6qdl-tqma6b.dtsi" 9 + #include "imx6qdl-tqma6.dtsi" 10 + 11 + / { 12 + memory@10000000 { 13 + device_type = "memory"; 14 + reg = <0x10000000 0x20000000>; 15 + }; 16 + };
+16
arch/arm/boot/dts/imx6q-tqma6a.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later 2 + /* 3 + * Copyright 2013 Sascha Hauer, Pengutronix 4 + * Copyright 2013-2017 Markus Niebel <Markus.Niebel@tq-group.com> 5 + */ 6 + 7 + #include "imx6q.dtsi" 8 + #include "imx6qdl-tqma6a.dtsi" 9 + #include "imx6qdl-tqma6.dtsi" 10 + 11 + / { 12 + memory@10000000 { 13 + device_type = "memory"; 14 + reg = <0x10000000 0x40000000>; 15 + }; 16 + };
+15
arch/arm/boot/dts/imx6q-tqma6b.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later 2 + /* 3 + * Copyright 2013 Sascha Hauer, Pengutronix 4 + */ 5 + 6 + #include "imx6q.dtsi" 7 + #include "imx6qdl-tqma6b.dtsi" 8 + #include "imx6qdl-tqma6.dtsi" 9 + 10 + / { 11 + memory@10000000 { 12 + device_type = "memory"; 13 + reg = <0x10000000 0x40000000>; 14 + }; 15 + };
+202
arch/arm/boot/dts/imx6qdl-tqma6.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later 2 + /* 3 + * Copyright 2013 Sascha Hauer, Pengutronix 4 + * Copyright 2013-2017 Markus Niebel <Markus.Niebel@tq-group.com> 5 + */ 6 + 7 + #include <dt-bindings/gpio/gpio.h> 8 + #include <dt-bindings/interrupt-controller/irq.h> 9 + 10 + / { 11 + reg_3p3v: regulator-3p3v { 12 + compatible = "regulator-fixed"; 13 + regulator-name = "supply-3p3v"; 14 + regulator-min-microvolt = <3300000>; 15 + regulator-max-microvolt = <3300000>; 16 + regulator-always-on; 17 + }; 18 + }; 19 + 20 + &ecspi1 { 21 + pinctrl-names = "default"; 22 + pinctrl-0 = <&pinctrl_ecspi1>; 23 + fsl,spi-num-chipselects = <1>; 24 + cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; 25 + status = "okay"; 26 + 27 + m25p80: flash@0 { 28 + compatible = "jedec,spi-nor"; 29 + spi-max-frequency = <50000000>; 30 + reg = <0>; 31 + #address-cells = <1>; 32 + #size-cells = <1>; 33 + m25p,fast-read; 34 + }; 35 + }; 36 + 37 + &iomuxc { 38 + pinctrl_ecspi1: ecspi1grp { 39 + fsl,pins = < 40 + /* HYS, SPEED = MED, 100k up, DSE = 011, SRE_FAST */ 41 + MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x1b099 42 + MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0xb099 43 + MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0xb099 44 + /* eCSPI1 SS1 */ 45 + MX6QDL_PAD_EIM_D19__GPIO3_IO19 0xb099 46 + >; 47 + }; 48 + 49 + pinctrl_i2c1: i2c1grp { 50 + fsl,pins = < 51 + MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b899 52 + MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b899 53 + >; 54 + }; 55 + 56 + pinctrl_i2c3: i2c3grp { 57 + fsl,pins = < 58 + MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b899 59 + MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b899 60 + >; 61 + }; 62 + 63 + pinctrl_pmic: pmicgrp { 64 + fsl,pins = < 65 + MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x1b099 /* PMIC irq */ 66 + >; 67 + }; 68 + 69 + pinctrl_usdhc3: usdhc3grp { 70 + fsl,pins = < 71 + MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 72 + MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 73 + MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 74 + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 75 + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 76 + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 77 + MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059 78 + MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059 79 + MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059 80 + MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059 81 + >; 82 + }; 83 + }; 84 + 85 + &pmic { 86 + pinctrl-names = "default"; 87 + pinctrl-0 = <&pinctrl_pmic>; 88 + interrupt-parent = <&gpio6>; 89 + interrupts = <10 IRQ_TYPE_LEVEL_LOW>; 90 + 91 + regulators { 92 + reg_vddcore: sw1ab { 93 + regulator-min-microvolt = <300000>; 94 + regulator-max-microvolt = <1875000>; 95 + regulator-always-on; 96 + }; 97 + 98 + reg_vddsoc: sw1c { 99 + regulator-min-microvolt = <300000>; 100 + regulator-max-microvolt = <1875000>; 101 + regulator-always-on; 102 + }; 103 + 104 + reg_gen_3v3: sw2 { 105 + regulator-min-microvolt = <800000>; 106 + regulator-max-microvolt = <3300000>; 107 + regulator-always-on; 108 + }; 109 + 110 + reg_ddr_1v5a: sw3a { 111 + regulator-min-microvolt = <400000>; 112 + regulator-max-microvolt = <1975000>; 113 + regulator-always-on; 114 + }; 115 + 116 + reg_ddr_1v5b: sw3b { 117 + regulator-min-microvolt = <400000>; 118 + regulator-max-microvolt = <1975000>; 119 + regulator-always-on; 120 + }; 121 + 122 + sw4_reg: sw4 { 123 + regulator-min-microvolt = <800000>; 124 + regulator-max-microvolt = <3300000>; 125 + regulator-always-on; 126 + }; 127 + 128 + reg_5v_600mA: swbst { 129 + regulator-min-microvolt = <5000000>; 130 + regulator-max-microvolt = <5150000>; 131 + regulator-always-on; 132 + }; 133 + 134 + reg_snvs_3v: vsnvs { 135 + regulator-min-microvolt = <1500000>; 136 + regulator-max-microvolt = <3000000>; 137 + regulator-always-on; 138 + }; 139 + 140 + reg_vrefddr: vrefddr { 141 + regulator-boot-on; 142 + regulator-always-on; 143 + }; 144 + 145 + reg_vgen1_1v5: vgen1 { 146 + regulator-min-microvolt = <800000>; 147 + regulator-max-microvolt = <1550000>; 148 + /* not used */ 149 + }; 150 + 151 + reg_vgen2_1v2_eth: vgen2 { 152 + regulator-min-microvolt = <800000>; 153 + regulator-max-microvolt = <1550000>; 154 + regulator-always-on; 155 + }; 156 + 157 + reg_vgen3_2v8: vgen3 { 158 + regulator-min-microvolt = <1800000>; 159 + regulator-max-microvolt = <3300000>; 160 + regulator-always-on; 161 + }; 162 + 163 + reg_vgen4_1v8: vgen4 { 164 + regulator-min-microvolt = <1800000>; 165 + regulator-max-microvolt = <3300000>; 166 + regulator-always-on; 167 + }; 168 + 169 + reg_vgen5_1v8_eth: vgen5 { 170 + regulator-min-microvolt = <1800000>; 171 + regulator-max-microvolt = <3300000>; 172 + regulator-always-on; 173 + }; 174 + 175 + reg_vgen6_3v3: vgen6 { 176 + regulator-min-microvolt = <1800000>; 177 + regulator-max-microvolt = <3300000>; 178 + regulator-always-on; 179 + }; 180 + }; 181 + }; 182 + 183 + /* eMMC */ 184 + &usdhc3 { 185 + pinctrl-names = "default"; 186 + pinctrl-0 = <&pinctrl_usdhc3>; 187 + vmmc-supply = <&reg_3p3v>; 188 + non-removable; 189 + disable-wp; 190 + no-sd; 191 + no-sdio; 192 + bus-width = <8>; 193 + #address-cells = <1>; 194 + #size-cells = <0>; 195 + status = "okay"; 196 + 197 + mmccard: mmccard@0 { 198 + reg = <0>; 199 + compatible = "mmc-card"; 200 + broken-hpi; 201 + }; 202 + };
+28
arch/arm/boot/dts/imx6qdl-tqma6a.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later 2 + /* 3 + * Copyright 2013 Sascha Hauer, Pengutronix 4 + * Copyright 2013-2017 Markus Niebel <Markus.Niebel@tq-group.com> 5 + */ 6 + 7 + &i2c1 { 8 + pinctrl-names = "default"; 9 + pinctrl-0 = <&pinctrl_i2c1>; 10 + clock-frequency = <100000>; 11 + status = "okay"; 12 + 13 + pmic: pmic@8 { 14 + compatible = "fsl,pfuze100"; 15 + reg = <0x08>; 16 + }; 17 + 18 + sensor@48 { 19 + compatible = "lm75"; 20 + reg = <0x48>; 21 + }; 22 + 23 + eeprom@50 { 24 + compatible = "st,24c64", "atmel,24c64"; 25 + reg = <0x50>; 26 + pagesize = <32>; 27 + }; 28 + };
+28
arch/arm/boot/dts/imx6qdl-tqma6b.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later 2 + /* 3 + * Copyright 2013 Sascha Hauer, Pengutronix 4 + * Copyright 2013-2017 Markus Niebel <Markus.Niebel@tq-group.com> 5 + */ 6 + 7 + &i2c3 { 8 + pinctrl-names = "default"; 9 + pinctrl-0 = <&pinctrl_i2c3>; 10 + clock-frequency = <100000>; 11 + status = "okay"; 12 + 13 + pmic: pmic@8 { 14 + compatible = "fsl,pfuze100"; 15 + reg = <0x08>; 16 + }; 17 + 18 + sensor@48 { 19 + compatible = "lm75"; 20 + reg = <0x48>; 21 + }; 22 + 23 + eeprom@50 { 24 + compatible = "st,24c64", "atmel,24c64"; 25 + reg = <0x50>; 26 + pagesize = <32>; 27 + }; 28 + };
+16
arch/arm/boot/dts/imx6qp-tqma6b.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later 2 + /* 3 + * Copyright 2013 Sascha Hauer, Pengutronix 4 + */ 5 + 6 + #include "imx6q.dtsi" 7 + #include "imx6qp.dtsi" 8 + #include "imx6qdl-tqma6b.dtsi" 9 + #include "imx6qdl-tqma6.dtsi" 10 + 11 + / { 12 + memory@10000000 { 13 + device_type = "memory"; 14 + reg = <0x10000000 0x40000000>; 15 + }; 16 + };