From mboxrd@z Thu Jan 1 00:00:00 1970 From: marcel.ziswiler@toradex.com (Marcel Ziswiler) Date: Tue, 27 Sep 2016 06:27:43 +0000 Subject: [PATCH] ARM: dts: imx6: Add support for Toradex Colibri iMX6 module In-Reply-To: <20160921112438.8661-1-maitysanchayan@gmail.com> References: <20160921112438.8661-1-maitysanchayan@gmail.com> Message-ID: <1474957662.3739.2.camel@toradex.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Wed, 2016-09-21 at 16:54 +0530, Sanchayan Maity wrote: > Add support for Toradex Colibri iMX6 module. > > Signed-off-by: Sanchayan Maity Acked-by: Marcel Ziswiler > --- > ?arch/arm/boot/dts/Makefile???????????????????|???1 + > ?arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts | 253 ++++++++ > ?arch/arm/boot/dts/imx6qdl-colibri.dtsi???????| 890 > +++++++++++++++++++++++++++ > ?3 files changed, 1144 insertions(+) > ?create mode 100644 arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts > ?create mode 100644 arch/arm/boot/dts/imx6qdl-colibri.dtsi > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index f79cac2..44ff380 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -323,6 +323,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ > ? imx6dl-aristainetos_7.dtb \ > ? imx6dl-aristainetos2_4.dtb \ > ? imx6dl-aristainetos2_7.dtb \ > + imx6dl-colibri-eval-v3.dtb \ > ? imx6dl-cubox-i.dtb \ > ? imx6dl-dfi-fs700-m60.dtb \ > ? imx6dl-gw51xx.dtb \ > diff --git a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts > b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts > new file mode 100644 > index 0000000..e0c2172 > --- /dev/null > +++ b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts > @@ -0,0 +1,253 @@ > +/* > + * Copyright 2014-2016 Toradex AG > + * Copyright 2012 Freescale Semiconductor, Inc. > + * Copyright 2011 Linaro Ltd. > + * > + * This file is dual-licensed: you can use it either under the terms > + * of the GPL or the X11 license, at your option. Note that this > dual > + * licensing only applies to this file, and not this project as a > + * whole. > + * > + *??a) This file 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. > + * > + *?????This file is distributed in the hope that it will be useful > + *?????but WITHOUT ANY WARRANTY; without even the implied warranty > of > + *?????MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.??See the > + *?????GNU General Public License for more details. > + * > + * Or, alternatively > + * > + *??b) Permission is hereby granted, free of charge, to any person > + *?????obtaining a copy of this software and associated > documentation > + *?????files (the "Software"), to deal in the Software without > + *?????restriction, including without limitation the rights to use > + *?????copy, modify, merge, publish, distribute, sublicense, and/or > + *?????sell copies of the Software, and to permit persons to whom > the > + *?????Software is furnished to do so, subject to the following > + *?????conditions: > + * > + *?????The above copyright notice and this permission notice shall > be > + *?????included in all copies or substantial portions of the > Software. > + * > + *?????THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND > + *?????EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE > WARRANTIES > + *?????OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + *?????NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT > + *?????HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY > + *?????WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + *?????FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + *?????OTHER DEALINGS IN THE SOFTWARE. > + */ > + > +/dts-v1/; > + > +#include > +#include > +#include "imx6dl.dtsi" > +#include "imx6qdl-colibri.dtsi" > + > +/ { > + model = "Toradex Colibri iMX6DL/S on Colibri Evaluation > Board V3"; > + compatible = "toradex,colibri_imx6dl-eval-v3", > "toradex,colibri_imx6dl", > + ?????"fsl,imx6dl"; > + > + aliases { > + i2c0 = &i2c2; > + i2c1 = &i2c3; > + }; > + > + aliases { > + rtc0 = &rtc_i2c; > + rtc1 = &snvs_rtc; > + }; > + > + clocks { > + /* Fixed crystal dedicated to mcp251x */ > + clk16m: clk at 1 { > + compatible = "fixed-clock"; > + reg = <1>; > + #clock-cells = <0>; > + clock-frequency = <16000000>; > + clock-output-names = "clk16m"; > + }; > + }; > + > + gpio-keys { > + compatible = "gpio-keys"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_gpio_keys>; > + > + wakeup { > + label = "Wake-Up"; > + gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* > SODIMM 45 */ > + linux,code = ; > + debounce-interval = <10>; > + wakeup-source; > + }; > + }; > + > + lcd_display: display at di0 { > + compatible = "fsl,imx-parallel-display"; > + #address-cells = <1>; > + #size-cells = <0>; > + interface-pix-fmt = "bgr666"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ipu1_lcdif>; > + status = "okay"; > + > + port at 0 { > + reg = <0>; > + > + lcd_display_in: endpoint { > + remote-endpoint = <&ipu1_di0_disp0>; > + }; > + }; > + > + port at 1 { > + reg = <1>; > + > + lcd_display_out: endpoint { > + remote-endpoint = <&lcd_panel_in>; > + }; > + }; > + }; > + > + panel: panel { > + /* > + ?* edt,et057090dhu: EDT 5.7" LCD TFT > + ?* edt,et070080dh6: EDT 7.0" LCD TFT > + ?*/ > + compatible = "edt,et057090dhu"; > + backlight = <&backlight>; > + > + port { > + lcd_panel_in: endpoint { > + remote-endpoint = > <&lcd_display_out>; > + }; > + }; > + }; > +}; > + > +&backlight { > + brightness-levels = <0 127 191 223 239 247 251 255>; > + default-brightness-level = <1>; > + status = "okay"; > +}; > + > +/* Colibri SSP */ > +&ecspi4 { > + status = "okay"; > + > + mcp251x0: mcp251x at 1 { > + compatible = "microchip,mcp2515"; > + reg = <0>; > + clocks = <&clk16m>; > + interrupt-parent = <&gpio3>; > + interrupts = <27 0x2>; > + spi-max-frequency = <10000000>; > + status = "okay"; > + }; > +}; > + > +&hdmi { > + status = "okay"; > +}; > + > +/* > + * Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier > board) > + */ > +&i2c3 { > + status = "okay"; > + > + /* M41T0M6 real time clock on carrier board */ > + rtc_i2c: rtc at 68 { > + compatible = "st,m41t00"; > + reg = <0x68>; > + }; > +}; > + > +&ipu1_di0_disp0 { > + remote-endpoint = <&lcd_display_in>; > +}; > + > +&pwm1 { > + status = "okay"; > +}; > + > +&pwm2 { > + status = "okay"; > +}; > + > +&pwm3 { > + status = "okay"; > +}; > + > +&pwm4 { > + status = "okay"; > +}; > + > +®_usb_host_vbus { > + status = "okay"; > +}; > + > +&uart1 { > + status = "okay"; > +}; > + > +&uart2 { > + status = "okay"; > +}; > + > +&uart3 { > + status = "okay"; > +}; > + > +&usbh1 { > + vbus-supply = <®_usb_host_vbus>; > + status = "okay"; > +}; > + > +&usbotg { > + status = "okay"; > +}; > + > +/* Colibri MMC */ > +&usdhc1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_mmc_cd>; > + cd-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; /* MMCD */ > + status = "okay"; > +}; > + > +&weim { > + status = "okay"; > + > + /* weim memory map: 32MB on CS0, 32MB on CS1, 32MB on CS2 */ > + ranges = <0 0 0x08000000 0x02000000 > + ??1 0 0x0a000000 0x02000000 > + ??2 0 0x0c000000 0x02000000>; > + > + /* SRAM on Colibri nEXT_CS0 */ > + sram at 0,0 { > + compatible = "cypress,cy7c1019dv33-10zsxi, mtd-ram"; > + reg = <0 0 0x00010000>; > + #address-cells = <1>; > + #size-cells = <1>; > + bank-width = <2>; > + fsl,weim-cs-timing = <0x00010081 0x00000000 > 0x04000000 > + ??????0x00000000 0x04000040 > 0x00000000>; > + }; > + > + /* SRAM on Colibri nEXT_CS1 */ > + sram at 1,0 { > + compatible = "cypress,cy7c1019dv33-10zsxi, mtd-ram"; > + reg = <1 0 0x00010000>; > + #address-cells = <1>; > + #size-cells = <1>; > + bank-width = <2>; > + fsl,weim-cs-timing = <0x00010081 0x00000000 > 0x04000000 > + ??????0x00000000 0x04000040 > 0x00000000>; > + }; > +}; > diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi > b/arch/arm/boot/dts/imx6qdl-colibri.dtsi > new file mode 100644 > index 0000000..e6faa65 > --- /dev/null > +++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi > @@ -0,0 +1,890 @@ > +/* > + * Copyright 2014-2016 Toradex AG > + * Copyright 2012 Freescale Semiconductor, Inc. > + * Copyright 2011 Linaro Ltd. > + * > + * This file is dual-licensed: you can use it either under the terms > + * of the GPL or the X11 license, at your option. Note that this > dual > + * licensing only applies to this file, and not this project as a > + * whole. > + * > + *??a) This file 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. > + * > + *?????This file is distributed in the hope that it will be useful > + *?????but WITHOUT ANY WARRANTY; without even the implied warranty > of > + *?????MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.??See the > + *?????GNU General Public License for more details. > + * > + * Or, alternatively > + * > + *??b) Permission is hereby granted, free of charge, to any person > + *?????obtaining a copy of this software and associated > documentation > + *?????files (the "Software"), to deal in the Software without > + *?????restriction, including without limitation the rights to use > + *?????copy, modify, merge, publish, distribute, sublicense, and/or > + *?????sell copies of the Software, and to permit persons to whom > the > + *?????Software is furnished to do so, subject to the following > + *?????conditions: > + * > + *?????The above copyright notice and this permission notice shall > be > + *?????included in all copies or substantial portions of the > Software. > + * > + *?????THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND > + *?????EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE > WARRANTIES > + *?????OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + *?????NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT > + *?????HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY > + *?????WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + *?????FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + *?????OTHER DEALINGS IN THE SOFTWARE. > + */ > + > +#include > + > +/ { > + model = "Toradex Colibri iMX6DL/S Module"; > + compatible = "toradex,colibri_imx6dl", "fsl,imx6dl"; > + > + backlight: backlight { > + compatible = "pwm-backlight"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_gpio_bl_on>; > + pwms = <&pwm3 0 5000000>; > + enable-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* > Colibri BL_ON */ > + status = "disabled"; > + }; > + > + reg_1p8v: regulator-1p8v { > + compatible = "regulator-fixed"; > + regulator-name = "1P8V"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + }; > + > + 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_usb_host_vbus: regulator-usb-host-vbus { > + compatible = "regulator-fixed"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_regulator_usbh_pwr>; > + regulator-name = "usb_host_vbus"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>; /* USBH_PEN */ > + status = "disabled"; > + }; > + > + sound { > + compatible = "fsl,imx-audio-sgtl5000"; > + model = "imx6dl-colibri-sgtl5000"; > + ssi-controller = <&ssi1>; > + audio-codec = <&codec>; > + audio-routing = > + "Headphone Jack", "HP_OUT", > + "LINE_IN", "Line In Jack", > + "MIC_IN", "Mic Jack", > + "Mic Jack", "Mic Bias"; > + mux-int-port = <1>; > + mux-ext-port = <5>; > + }; > + > + /* Optional S/PDIF in on SODIMM 88 and out on SODIMM 90, 137 > or 168 */ > + sound_spdif: sound-spdif { > + compatible = "fsl,imx-audio-spdif"; > + model = "imx-spdif"; > + spdif-controller = <&spdif>; > + spdif-in; > + spdif-out; > + status = "disabled"; > + }; > +}; > + > +&audmux { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_audmux &pinctrl_mic_gnd>; > + status = "okay"; > +}; > + > +/* Optional on SODIMM 55/63 */ > +&can1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_flexcan1>; > + status = "disabled"; > +}; > + > +/* Optional on SODIMM 178/188 */ > +&can2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_flexcan2>; > + status = "disabled"; > +}; > + > +/* Colibri SSP */ > +&ecspi4 { > + fsl,spi-num-chipselects = <1>; > + cs-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ecspi4>; > + status = "disabled"; > +}; > + > +&fec { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_enet>; > + phy-mode = "rmii"; > + status = "okay"; > +}; > + > +&hdmi { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_hdmi_ddc>; > + status = "disabled"; > +}; > + > +/* > + * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and > + * touch screen controller > + */ > +&i2c2 { > + clock-frequency = <100000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_i2c2>; > + status = "okay"; > + > + pmic: pfuze100 at 08 { > + compatible = "fsl,pfuze100"; > + reg = <0x08>; > + > + regulators { > + sw1a_reg: sw1ab { > + regulator-min-microvolt = <300000>; > + regulator-max-microvolt = <1875000>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <6250>; > + }; > + > + sw1c_reg: sw1c { > + regulator-min-microvolt = <300000>; > + regulator-max-microvolt = <1875000>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <6250>; > + }; > + > + sw3a_reg: sw3a { > + regulator-min-microvolt = <400000>; > + regulator-max-microvolt = <1975000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + swbst_reg: swbst { > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5150000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + snvs_reg: vsnvs { > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <3000000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + vref_reg: vrefddr { > + regulator-boot-on; > + regulator-always-on; > + }; > + > + /* vgen1: unused */ > + > + vgen2_reg: vgen2 { > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <1550000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + /* vgen3: unused */ > + > + vgen4_reg: vgen4 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + vgen5_reg: vgen5 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + vgen6_reg: vgen6 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + }; > + }; > + > + codec: sgtl5000 at 0a { > + compatible = "fsl,sgtl5000"; > + reg = <0x0a>; > + clocks = <&clks IMX6QDL_CLK_CKO>; > + VDDA-supply = <®_2p5v>; > + VDDIO-supply = <®_3p3v>; > + }; > + > + /* STMPE811 touch screen controller */ > + stmpe811 at 41 { > + compatible = "st,stmpe811"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_touch_int>; > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <0x41>; > + interrupts = <20 IRQ_TYPE_LEVEL_LOW>; > + interrupt-parent = <&gpio6>; > + interrupt-controller; > + id = <0>; > + blocks = <0x5>; > + irq-trigger = <0x1>; > + > + stmpe_touchscreen { > + compatible = "st,stmpe-ts"; > + reg = <0>; > + /* 3.25 MHz ADC clock speed */ > + st,adc-freq = <1>; > + /* 8 sample average control */ > + st,ave-ctrl = <3>; > + /* 7 length fractional part in z */ > + st,fraction-z = <7>; > + /* > + ?* 50 mA typical 80 mA max touchscreen > drivers > + ?* current limit value > + ?*/ > + st,i-drive = <1>; > + /* 12-bit ADC */ > + st,mod-12b = <1>; > + /* internal ADC reference */ > + st,ref-sel = <0>; > + /* ADC converstion time: 80 clocks */ > + st,sample-time = <4>; > + /* 1 ms panel driver settling time */ > + st,settling = <3>; > + /* 5 ms touch detect interrupt delay */ > + st,touch-det-delay = <5>; > + }; > + }; > +}; > + > +/* > + * I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board) > + */ > +&i2c3 { > + clock-frequency = <100000>; > + pinctrl-names = "default", "recovery"; > + pinctrl-0 = <&pinctrl_i2c3>; > + pinctrl-1 = <&pinctrl_i2c3_recovery>; > + scl-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>; > + sda-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>; > + status = "disabled"; > +}; > + > +/* Colibri PWM */ > +&pwm1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_pwm1>; > + status = "disabled"; > +}; > + > +/* Colibri PWM */ > +&pwm2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_pwm2>; > + status = "disabled"; > +}; > + > +/* Colibri PWM */ > +&pwm3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_pwm3>; > + status = "disabled"; > +}; > + > +/* Colibri PWM */ > +&pwm4 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_pwm4>; > + status = "disabled"; > +}; > + > +/* Optional S/PDIF out on SODIMM 137 */ > +&spdif { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_spdif>; > + status = "disabled"; > +}; > + > +&ssi1 { > + status = "okay"; > +}; > + > +/* Colibri UART_A */ > +&uart1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart1_dte &pinctrl_uart1_ctrl>; > + fsl,dte-mode; > + uart-has-rtscts; > + status = "disabled"; > +}; > + > +/* Colibri UART_B */ > +&uart2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart2_dte>; > + fsl,dte-mode; > + uart-has-rtscts; > + status = "disabled"; > +}; > + > +/* Colibri UART_C */ > +&uart3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart3_dte>; > + fsl,dte-mode; > + status = "disabled"; > +}; > + > +&usbotg { > + pinctrl-names = "default"; > + disable-over-current; > + dr_mode = "peripheral"; > + status = "disabled"; > +}; > + > +/* Colibri MMC */ > +&usdhc1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc1>; > + vqmmc-supply = <®_3p3v>; > + bus-width = <4>; > + voltage-ranges = <3300 3300>; > + status = "disabled"; > +}; > + > +/* eMMC */ > +&usdhc3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc3>; > + vqmmc-supply = <®_3p3v>; > + bus-width = <8>; > + voltage-ranges = <3300 3300>; > + non-removable; > + status = "okay"; > +}; > + > +&weim { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_weim_sram??&pinctrl_weim_cs0 > + ?????&pinctrl_weim_cs1???&pinctrl_weim_cs2 > + ?????&pinctrl_weim_rdnwr &pinctrl_weim_npwe>; > + #address-cells = <2>; > + #size-cells = <1>; > + status = "disabled"; > +}; > + > +&iomuxc { > + pinctrl_audmux: audmuxgrp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x130b0 > + MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x130b0 > + MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x130b > 0 > + MX6QDL_PAD_KEY_ROW1__AUD5_RXD 0x130b0 > + /* SGTL5000 sys_mclk */ > + MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x000b0 > + >; > + }; > + > + pinctrl_cam_mclk: cammclkgrp { > + fsl,pins = < > + /* Parallel Camera CAM sys_mclk */ > + MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x00b > 0 > + >; > + }; > + > + pinctrl_ecspi4: ecspi4grp { > + fsl,pins = < > + MX6QDL_PAD_EIM_D22__ECSPI4_MISO 0x100 > b1 > + MX6QDL_PAD_EIM_D28__ECSPI4_MOSI 0x100 > b1 > + MX6QDL_PAD_EIM_D21__ECSPI4_SCLK 0x100b1 > + /* SPI CS */ > + MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x000b > 1 > + >; > + }; > + > + pinctrl_enet: enetgrp { > + fsl,pins = < > + MX6QDL_PAD_ENET_MDC__ENET_MDC > 0x1b0b0 > + MX6QDL_PAD_ENET_MDIO__ENET_MDIO > 0x1b0b0 > + MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0 > x1b0b0 > + MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0 > x1b0b0 > + MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1 > b0b0 > + MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1 > b0b0 > + MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0 > x1b0b0 > + MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0 > x1b0b0 > + MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x > 1b0b0 > + MX6QDL_PAD_GPIO_16__ENET_REF_CLK?????((1<<30 > ) | 0x1b0b0) > + >; > + }; > + > + pinctrl_flexcan1: flexcan1grp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_7__FLEXCAN1_TX > 0x1b0b0 > + MX6QDL_PAD_GPIO_8__FLEXCAN1_RX > 0x1b0b0 > + >; > + }; > + > + pinctrl_flexcan2: flexcan2grp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x1b > 0b0 > + MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x1b > 0b0 > + >; > + }; > + > + pinctrl_gpio_bl_on: gpioblon { > + fsl,pins = < > + MX6QDL_PAD_EIM_D26__GPIO3_IO26 > 0x1b0b0 > + >; > + }; > + > + pinctrl_gpio_keys: gpiokeys { > + fsl,pins = < > + /* Power button */ > + MX6QDL_PAD_EIM_A16__GPIO2_IO22 > 0x1b0b0 > + >; > + }; > + > + pinctrl_hdmi_ddc: hdmiddcgrp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL3__HDMI_TX_DDC_SCL > 0x4001b8b1 > + MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA > 0x4001b8b1 > + >; > + }; > + > + pinctrl_i2c2: i2c2grp { > + fsl,pins = < > + MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1 > + MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1 > + >; > + }; > + > + pinctrl_i2c3: i2c3grp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 > + MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 > + >; > + }; > + > + pinctrl_i2c3_recovery: i2c3recoverygrp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_3__GPIO1_IO03 0x4001b8b1 > + MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x4001b8b1 > + >; > + }; > + > + pinctrl_ipu1_csi0: ipu1csi0grp { /* Parallel Camera */ > + fsl,pins = < > + MX6QDL_PAD_EIM_A17__IPU1_CSI1_DATA12 > 0xb0b1 > + MX6QDL_PAD_EIM_A18__IPU1_CSI1_DATA13 > 0xb0b1 > + MX6QDL_PAD_EIM_A19__IPU1_CSI1_DATA14 > 0xb0b1 > + MX6QDL_PAD_EIM_A20__IPU1_CSI1_DATA15 > 0xb0b1 > + MX6QDL_PAD_EIM_A21__IPU1_CSI1_DATA16 > 0xb0b1 > + MX6QDL_PAD_EIM_A22__IPU1_CSI1_DATA17 > 0xb0b1 > + MX6QDL_PAD_EIM_A23__IPU1_CSI1_DATA18 > 0xb0b1 > + MX6QDL_PAD_EIM_A24__IPU1_CSI1_DATA19 > 0xb0b1 > + MX6QDL_PAD_EIM_D17__IPU1_CSI1_PIXCLK > 0xb0b1 > + MX6QDL_PAD_EIM_EB3__IPU1_CSI1_HSYNC 0 > xb0b1 > + MX6QDL_PAD_EIM_D29__IPU1_CSI1_VSYNC 0 > xb0b1 > + /* Disable PWM pins on camera interface */ > + MX6QDL_PAD_SD4_DAT1__GPIO2_IO09 > 0x40 > + MX6QDL_PAD_GPIO_1__GPIO1_IO01 > 0x40 > + >; > + }; > + > + pinctrl_ipu1_lcdif: ipu1lcdifgrp { > + fsl,pins = < > + MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK > 0xa1 > + MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 > 0xa1 > + MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 > 0xa1 > + MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 > 0xa1 > + MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 > 0xa1 > + MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 > 0xa1 > + MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 > 0xa1 > + MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 > 0xa1 > + MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 > 0xa1 > + MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 > 0xa1 > + MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 > 0xa1 > + MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 > 0xa1 > + MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 > 0xa1 > + MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 > 0xa1 > + MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 > 0xa1 > + MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 > 0xa1 > + MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 > 0xa1 > + MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 > 0xa1 > + MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 > 0xa1 > + MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 > 0xa1 > + MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 > 0xa1 > + MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 > 0xa1 > + >; > + }; > + > + pinctrl_mic_gnd: gpiomicgnd { > + fsl,pins = < > + /* Controls Mic GND, PU or '1' pull Mic GND > to GND */ > + MX6QDL_PAD_RGMII_TD1__GPIO6_IO21 0x1b0b0 > + >; > + }; > + > + pinctrl_mmc_cd: gpiommccd { > + fsl,pins = < > + MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x800 > 00000 > + >; > + }; > + > + pinctrl_pwm1: pwm1grp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_9__PWM1_OUT 0x1b0b1 > + >; > + }; > + > + pinctrl_pwm2: pwm2grp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_1__PWM2_OUT 0x1b0b1 > + MX6QDL_PAD_EIM_A21__GPIO2_IO17 0x0004 > 0 > + >; > + }; > + > + pinctrl_pwm3: pwm3grp { > + fsl,pins = < > + MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1 > + MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x0004 > 0 > + >; > + }; > + > + pinctrl_pwm4: pwm4grp { > + fsl,pins = < > + MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x1b0b1 > + >; > + }; > + > + pinctrl_regulator_usbh_pwr: gpioregusbhpwrgrp { > + fsl,pins = < > + /* USBH_EN */ > + MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x0f05 > 8 > + >; > + }; > + > + pinctrl_spdif: spdifgrp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0 > + >; > + }; > + > + pinctrl_touch_int: gpiotouchintgrp { > + fsl,pins = < > + /* STMPE811 interrupt */ > + MX6QDL_PAD_RGMII_TD0__GPIO6_IO20 0x1b0b0 > + >; > + }; > + > + pinctrl_uart1_dce: uart1dcegrp { > + fsl,pins = < > + MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1 > + MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1 > + >; > + }; > + > + /* DTE mode */ > + pinctrl_uart1_dte: uart1dtegrp { > + fsl,pins = < > + MX6QDL_PAD_CSI0_DAT10__UART1_RX_DATA 0x1b0b1 > + MX6QDL_PAD_CSI0_DAT11__UART1_TX_DATA 0x1b0b1 > + MX6QDL_PAD_EIM_D19__UART1_RTS_B 0x1b0 > b1 > + MX6QDL_PAD_EIM_D20__UART1_CTS_B 0x1b0b1 > + >; > + }; > + > + /* Additional DTR, DSR, DCD */ > + pinctrl_uart1_ctrl: uart1ctrlgrp { > + fsl,pins = < > + MX6QDL_PAD_EIM_D23__UART1_DCD_B 0x1b0b0 > + MX6QDL_PAD_EIM_D24__UART1_DTR_B 0x1b0b0 > + MX6QDL_PAD_EIM_D25__UART1_DSR_B 0x1b0b0 > + >; > + }; > + > + pinctrl_uart2_dte: uart2dtegrp { > + fsl,pins = < > + MX6QDL_PAD_SD4_DAT4__UART2_TX_DATA 0x > 1b0b1 > + MX6QDL_PAD_SD4_DAT7__UART2_RX_DATA 0x > 1b0b1 > + MX6QDL_PAD_SD4_DAT6__UART2_RTS_B 0x1b > 0b1 > + MX6QDL_PAD_SD4_DAT5__UART2_CTS_B 0x1b > 0b1 > + >; > + }; > + > + pinctrl_uart3_dte: uart3dtegrp { > + fsl,pins = < > + MX6QDL_PAD_SD4_CLK__UART3_TX_DATA 0x1 > b0b1 > + MX6QDL_PAD_SD4_CMD__UART3_RX_DATA 0x1 > b0b1 > + >; > + }; > + > + pinctrl_usbc_det: usbcdetgrp { > + fsl,pins = < > + /* USBC_DET */ > + MX6QDL_PAD_GPIO_17__GPIO7_IO12 > 0x1b0b0 > + /* USBC_DET_EN */ > + MX6QDL_PAD_RGMII_TX_CTL__GPIO6_IO26 0 > x0f058 > + /* USBC_DET_OVERWRITE */ > + MX6QDL_PAD_RGMII_RXC__GPIO6_IO30 0x0f > 058 > + >; > + }; > + > + pinctrl_usdhc1: usdhc1grp { > + fsl,pins = < > + MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17071 > + MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10071 > + MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x1707 > 1 > + MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x1707 > 1 > + MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x1707 > 1 > + MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x1707 > 1 > + >; > + }; > + > + 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 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x1705 > 9 > + /* eMMC reset */ > + MX6QDL_PAD_SD3_RST__SD3_RESET 0x17059 > + >; > + }; > + > + pinctrl_usdhc3_100mhz: usdhc3100mhzgrp { > + fsl,pins = < > + MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9 > + MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b9 > + MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b > 9 > + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b > 9 > + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b > 9 > + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b > 9 > + MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170b > 9 > + MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170b > 9 > + MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170b > 9 > + MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170b > 9 > + /* eMMC reset */ > + MX6QDL_PAD_SD3_RST__SD3_RESET 0x170b9 > + >; > + }; > + > + pinctrl_usdhc3_200mhz: usdhc3200mhzgrp { > + fsl,pins = < > + MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9 > + MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9 > + MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f > 9 > + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f > 9 > + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f > 9 > + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f > 9 > + MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170f > 9 > + MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170f > 9 > + MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170f > 9 > + MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170f > 9 > + /* eMMC reset */ > + MX6QDL_PAD_SD3_RST__SD3_RESET 0x170f9 > + >; > + }; > + > + pinctrl_weim_cs0: weimcs0grp { > + fsl,pins = < > + /* nEXT_CS0 */ > + MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0xb0b1 > + >; > + }; > + > + pinctrl_weim_cs1: weimcs1grp { > + fsl,pins = < > + /* nEXT_CS1 */ > + MX6QDL_PAD_EIM_CS1__EIM_CS1_B 0xb0b1 > + >; > + }; > + > + pinctrl_weim_cs2: weimcs2grp { > + fsl,pins = < > + /* nEXT_CS2 */ > + MX6QDL_PAD_SD2_DAT1__EIM_CS2_B 0xb0b1 > + >; > + }; > + > + pinctrl_weim_sram: weimsramgrp { > + fsl,pins = < > + MX6QDL_PAD_EIM_OE__EIM_OE_B 0 > xb0b1 > + MX6QDL_PAD_EIM_RW__EIM_RW 0xb > 0b1 > + /* Data */ > + MX6QDL_PAD_CSI0_DATA_EN__EIM_DATA00 0 > x1b0b0 > + MX6QDL_PAD_CSI0_VSYNC__EIM_DATA01 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT4__EIM_DATA02 0x1b > 0b0 > + MX6QDL_PAD_CSI0_DAT5__EIM_DATA03 0x1b > 0b0 > + MX6QDL_PAD_CSI0_DAT6__EIM_DATA04 0x1b > 0b0 > + MX6QDL_PAD_CSI0_DAT7__EIM_DATA05 0x1b > 0b0 > + MX6QDL_PAD_CSI0_DAT8__EIM_DATA06 0x1b > 0b0 > + MX6QDL_PAD_CSI0_DAT9__EIM_DATA07 0x1b > 0b0 > + MX6QDL_PAD_CSI0_DAT12__EIM_DATA08 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT13__EIM_DATA09 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT14__EIM_DATA10 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT15__EIM_DATA11 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT16__EIM_DATA12 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT17__EIM_DATA13 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT18__EIM_DATA14 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT19__EIM_DATA15 0x1 > b0b0 > + /* Address */ > + MX6QDL_PAD_EIM_DA15__EIM_AD15 > 0xb0b1 > + MX6QDL_PAD_EIM_DA14__EIM_AD14 > 0xb0b1 > + MX6QDL_PAD_EIM_DA13__EIM_AD13 > 0xb0b1 > + MX6QDL_PAD_EIM_DA12__EIM_AD12 > 0xb0b1 > + MX6QDL_PAD_EIM_DA11__EIM_AD11 > 0xb0b1 > + MX6QDL_PAD_EIM_DA10__EIM_AD10 > 0xb0b1 > + MX6QDL_PAD_EIM_DA9__EIM_AD09 > 0xb0b1 > + MX6QDL_PAD_EIM_DA8__EIM_AD08 > 0xb0b1 > + MX6QDL_PAD_EIM_DA7__EIM_AD07 > 0xb0b1 > + MX6QDL_PAD_EIM_DA6__EIM_AD06 > 0xb0b1 > + MX6QDL_PAD_EIM_DA5__EIM_AD05 > 0xb0b1 > + MX6QDL_PAD_EIM_DA4__EIM_AD04 > 0xb0b1 > + MX6QDL_PAD_EIM_DA3__EIM_AD03 > 0xb0b1 > + MX6QDL_PAD_EIM_DA2__EIM_AD02 > 0xb0b1 > + MX6QDL_PAD_EIM_DA1__EIM_AD01 > 0xb0b1 > + MX6QDL_PAD_EIM_DA0__EIM_AD00 > 0xb0b1 > + >; > + }; > + > + pinctrl_weim_rdnwr: weimrdnwr { > + fsl,pins = < > + MX6QDL_PAD_SD2_CLK__GPIO1_IO10 > 0x0040 > + MX6QDL_PAD_RGMII_TD3__GPIO6_IO23 0x13 > 0b0 > + >; > + }; > + > + pinctrl_weim_npwe: weimnpwe { > + fsl,pins = < > + MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 > 0x0040 > + MX6QDL_PAD_RGMII_TD2__GPIO6_IO22 0x13 > 0b0 > + >; > + }; > + > + /* ADDRESS[16:18] [25] used as GPIO */ > + pinctrl_weim_gpio_1: weimgpio-1 { > + fsl,pins = < > + MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 > 0x1b0b0 > + MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 > 0x1b0b0 > + MX6QDL_PAD_KEY_COL2__GPIO4_IO10 > 0x1b0b0 > + MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x > 1b0b0 > + MX6QDL_PAD_NANDF_D1__GPIO2_IO01 > 0x1b0b0 > + >; > + }; > + > + /* ADDRESS[19:24] used as GPIO */ > + pinctrl_weim_gpio_2: weimgpio-2 { > + fsl,pins = < > + MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 > 0x1b0b0 > + MX6QDL_PAD_KEY_COL2__GPIO4_IO10 > 0x1b0b0 > + MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x > 1b0b0 > + MX6QDL_PAD_NANDF_D1__GPIO2_IO01 > 0x1b0b0 > + >; > + }; > + > + /* DATA[16:31] used as GPIO */ > + pinctrl_weim_gpio_3: weimgpio-3 { > + fsl,pins = < > + MX6QDL_PAD_EIM_LBA__GPIO2_IO27 > 0x1b0b0 > + MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 > 0x1b0b0 > + MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x1b > 0b0 > + MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x1b > 0b0 > + MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x1b > 0b0 > + MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x1b > 0b0 > + MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09 0x1 > b0b0 > + MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x1b > 0b0 > + MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x1b > 0b0 > + MX6QDL_PAD_GPIO_19__GPIO4_IO05 > 0x1b0b0 > + MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19 0x1b > 0b0 > + MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x > 1b0b0 > + MX6QDL_PAD_GPIO_4__GPIO1_IO04 > 0x1b0b0 > + MX6QDL_PAD_GPIO_5__GPIO1_IO05 > 0x1b0b0 > + MX6QDL_PAD_GPIO_2__GPIO1_IO02 > 0x1b0b0 > + >; > + }; > + > + /* DQM[0:3] used as GPIO */ > + pinctrl_weim_gpio_4: weimgpio-4 { > + fsl,pins = < > + MX6QDL_PAD_EIM_EB0__GPIO2_IO28 > 0x1b0b0 > + MX6QDL_PAD_EIM_EB1__GPIO2_IO29 > 0x1b0b0 > + MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 > 0x1b0b0 > + MX6QDL_PAD_NANDF_D0__GPIO2_IO00 > 0x1b0b0 > + >; > + }; > + > + /* RDY used as GPIO */ > + pinctrl_weim_gpio_5: weimgpio-5 { > + fsl,pins = < > + MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 > 0x1b0b0 > + >; > + }; > + > + /* ADDRESS[16] DATA[30] used as GPIO */ > + pinctrl_weim_gpio_6: weimgpio-6 { > + fsl,pins = < > + MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 > 0x1b0b0 > + MX6QDL_PAD_KEY_COL4__GPIO4_IO14 > 0x1b0b0 > + >; > + }; > +}; From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcel Ziswiler Subject: Re: [PATCH] ARM: dts: imx6: Add support for Toradex Colibri iMX6 module Date: Tue, 27 Sep 2016 06:27:43 +0000 Message-ID: <1474957662.3739.2.camel@toradex.com> References: <20160921112438.8661-1-maitysanchayan@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160921112438.8661-1-maitysanchayan@gmail.com> Content-Language: en-US Content-ID: <2D8DCE901717784988B3CF903CE6919F@eurprd05.prod.outlook.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: "shawnguo@kernel.org" , "maitysanchayan@gmail.com" Cc: "devicetree@vger.kernel.org" , "stefan@agner.ch" , "robh+dt@kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" List-Id: devicetree@vger.kernel.org T24gV2VkLCAyMDE2LTA5LTIxIGF0IDE2OjU0ICswNTMwLCBTYW5jaGF5YW4gTWFpdHkgd3JvdGU6 DQo+IEFkZCBzdXBwb3J0IGZvciBUb3JhZGV4IENvbGlicmkgaU1YNiBtb2R1bGUuDQo+IA0KPiBT aWduZWQtb2ZmLWJ5OiBTYW5jaGF5YW4gTWFpdHkgPG1haXR5c2FuY2hheWFuQGdtYWlsLmNvbT4N Cg0KQWNrZWQtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsLnppc3dpbGVyQHRvcmFkZXguY29t Pg0KDQo+IC0tLQ0KPiDCoGFyY2gvYXJtL2Jvb3QvZHRzL01ha2VmaWxlwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoMKgMSArDQo+IMKgYXJjaC9hcm0vYm9vdC9kdHMv aW14NmRsLWNvbGlicmktZXZhbC12My5kdHMgfCAyNTMgKysrKysrKysNCj4gwqBhcmNoL2FybS9i b290L2R0cy9pbXg2cWRsLWNvbGlicmkuZHRzacKgwqDCoMKgwqDCoMKgfCA4OTANCj4gKysrKysr KysrKysrKysrKysrKysrKysrKysrDQo+IMKgMyBmaWxlcyBjaGFuZ2VkLCAxMTQ0IGluc2VydGlv bnMoKykNCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9vdC9kdHMvaW14NmRsLWNv bGlicmktZXZhbC12My5kdHMNCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9vdC9k dHMvaW14NnFkbC1jb2xpYnJpLmR0c2kNCj4gDQo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290 L2R0cy9NYWtlZmlsZSBiL2FyY2gvYXJtL2Jvb3QvZHRzL01ha2VmaWxlDQo+IGluZGV4IGY3OWNh YzIuLjQ0ZmYzODAgMTAwNjQ0DQo+IC0tLSBhL2FyY2gvYXJtL2Jvb3QvZHRzL01ha2VmaWxlDQo+ ICsrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL01ha2VmaWxlDQo+IEBAIC0zMjMsNiArMzIzLDcgQEAg ZHRiLSQoQ09ORklHX1NPQ19JTVg2USkgKz0gXA0KPiDCoAlpbXg2ZGwtYXJpc3RhaW5ldG9zXzcu ZHRiIFwNCj4gwqAJaW14NmRsLWFyaXN0YWluZXRvczJfNC5kdGIgXA0KPiDCoAlpbXg2ZGwtYXJp c3RhaW5ldG9zMl83LmR0YiBcDQo+ICsJaW14NmRsLWNvbGlicmktZXZhbC12My5kdGIgXA0KPiDC oAlpbXg2ZGwtY3Vib3gtaS5kdGIgXA0KPiDCoAlpbXg2ZGwtZGZpLWZzNzAwLW02MC5kdGIgXA0K PiDCoAlpbXg2ZGwtZ3c1MXh4LmR0YiBcDQo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0 cy9pbXg2ZGwtY29saWJyaS1ldmFsLXYzLmR0cw0KPiBiL2FyY2gvYXJtL2Jvb3QvZHRzL2lteDZk bC1jb2xpYnJpLWV2YWwtdjMuZHRzDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAw MDAwMDAuLmUwYzIxNzINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9hcmNoL2FybS9ib290L2R0 cy9pbXg2ZGwtY29saWJyaS1ldmFsLXYzLmR0cw0KPiBAQCAtMCwwICsxLDI1MyBAQA0KPiArLyoN Cj4gKyAqIENvcHlyaWdodCAyMDE0LTIwMTYgVG9yYWRleCBBRw0KPiArICogQ29weXJpZ2h0IDIw MTIgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4NCj4gKyAqIENvcHlyaWdodCAyMDExIExp bmFybyBMdGQuDQo+ICsgKg0KPiArICogVGhpcyBmaWxlIGlzIGR1YWwtbGljZW5zZWQ6IHlvdSBj YW4gdXNlIGl0IGVpdGhlciB1bmRlciB0aGUgdGVybXMNCj4gKyAqIG9mIHRoZSBHUEwgb3IgdGhl IFgxMSBsaWNlbnNlLCBhdCB5b3VyIG9wdGlvbi4gTm90ZSB0aGF0IHRoaXMNCj4gZHVhbA0KPiAr ICogbGljZW5zaW5nIG9ubHkgYXBwbGllcyB0byB0aGlzIGZpbGUsIGFuZCBub3QgdGhpcyBwcm9q ZWN0IGFzIGENCj4gKyAqIHdob2xlLg0KPiArICoNCj4gKyAqwqDCoGEpIFRoaXMgZmlsZSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3INCj4gKyAqwqDCoMKg wqDCoG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlDQo+ICsgKsKgwqDCoMKgwqB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24uDQo+ICsgKg0KPiArICrCoMKgwqDCoMKgVGhpcyBmaWxlIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwNCj4gKyAqwqDC oMKgwqDCoGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5DQo+IG9mDQo+ICsgKsKgwqDCoMKgwqBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuwqDCoFNlZSB0aGUNCj4gKyAqwqDCoMKgwqDCoEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQo+ICsgKg0KPiArICog T3IsIGFsdGVybmF0aXZlbHkNCj4gKyAqDQo+ICsgKsKgwqBiKSBQZXJtaXNzaW9uIGlzIGhlcmVi eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbg0KPiArICrCoMKgwqDCoMKg b2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkDQo+IGRvY3Vt ZW50YXRpb24NCj4gKyAqwqDCoMKgwqDCoGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQNCj4gKyAqwqDCoMKgwqDCoHJlc3RyaWN0aW9uLCBpbmNs dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlDQo+ICsgKsKgwqDCoMKg wqBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBh bmQvb3INCj4gKyAqwqDCoMKgwqDCoHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRv IHBlcm1pdCBwZXJzb25zIHRvIHdob20NCj4gdGhlDQo+ICsgKsKgwqDCoMKgwqBTb2Z0d2FyZSBp cyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZw0KPiArICrCoMKg wqDCoMKgY29uZGl0aW9uczoNCj4gKyAqDQo+ICsgKsKgwqDCoMKgwqBUaGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbA0KPiBiZQ0KPiArICrC oMKgwqDCoMKgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv ZiB0aGUNCj4gU29mdHdhcmUuDQo+ICsgKg0KPiArICrCoMKgwqDCoMKgVEhFIFNPRlRXQVJFIElT IFBST1ZJREVEICwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORA0KPiArICrCoMKgwqDCoMKg RVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRQ0KPiBX QVJSQU5USUVTDQo+ICsgKsKgwqDCoMKgwqBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORA0KPiArICrCoMKgwqDCoMKgTk9OSU5GUklOR0VNRU5U LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQNCj4gKyAqwqDCoMKg wqDCoEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB QklMSVRZDQo+ICsgKsKgwqDCoMKgwqBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcNCj4gKyAqwqDCoMKgwqDCoEZST00sIE9VVCBPRiBP UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1INCj4gKyAqwqDC oMKgwqDCoE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4NCj4gKyAqLw0KPiArDQo+ICsv ZHRzLXYxLzsNCj4gKw0KPiArI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2lucHV0L2lucHV0Lmg+DQo+ ICsjaW5jbHVkZSA8ZHQtYmluZGluZ3MvaW50ZXJydXB0LWNvbnRyb2xsZXIvaXJxLmg+DQo+ICsj aW5jbHVkZSAiaW14NmRsLmR0c2kiDQo+ICsjaW5jbHVkZSAiaW14NnFkbC1jb2xpYnJpLmR0c2ki DQo+ICsNCj4gKy8gew0KPiArCW1vZGVsID0gIlRvcmFkZXggQ29saWJyaSBpTVg2REwvUyBvbiBD b2xpYnJpIEV2YWx1YXRpb24NCj4gQm9hcmQgVjMiOw0KPiArCWNvbXBhdGlibGUgPSAidG9yYWRl eCxjb2xpYnJpX2lteDZkbC1ldmFsLXYzIiwNCj4gInRvcmFkZXgsY29saWJyaV9pbXg2ZGwiLA0K PiArCQnCoMKgwqDCoMKgImZzbCxpbXg2ZGwiOw0KPiArDQo+ICsJYWxpYXNlcyB7DQo+ICsJCWky YzAgPSAmaTJjMjsNCj4gKwkJaTJjMSA9ICZpMmMzOw0KPiArCX07DQo+ICsNCj4gKwlhbGlhc2Vz IHsNCj4gKwkJcnRjMCA9ICZydGNfaTJjOw0KPiArCQlydGMxID0gJnNudnNfcnRjOw0KPiArCX07 DQo+ICsNCj4gKwljbG9ja3Mgew0KPiArCQkvKiBGaXhlZCBjcnlzdGFsIGRlZGljYXRlZCB0byBt Y3AyNTF4ICovDQo+ICsJCWNsazE2bTogY2xrQDEgew0KPiArCQkJY29tcGF0aWJsZSA9ICJmaXhl ZC1jbG9jayI7DQo+ICsJCQlyZWcgPSA8MT47DQo+ICsJCQkjY2xvY2stY2VsbHMgPSA8MD47DQo+ ICsJCQljbG9jay1mcmVxdWVuY3kgPSA8MTYwMDAwMDA+Ow0KPiArCQkJY2xvY2stb3V0cHV0LW5h bWVzID0gImNsazE2bSI7DQo+ICsJCX07DQo+ICsJfTsNCj4gKw0KPiArCWdwaW8ta2V5cyB7DQo+ ICsJCWNvbXBhdGlibGUgPSAiZ3Bpby1rZXlzIjsNCj4gKwkJcGluY3RybC1uYW1lcyA9ICJkZWZh dWx0IjsNCj4gKwkJcGluY3RybC0wID0gPCZwaW5jdHJsX2dwaW9fa2V5cz47DQo+ICsNCj4gKwkJ d2FrZXVwIHsNCj4gKwkJCWxhYmVsID0gIldha2UtVXAiOw0KPiArCQkJZ3Bpb3MgPSA8JmdwaW8y IDIyIEdQSU9fQUNUSVZFX0hJR0g+OyAvKg0KPiBTT0RJTU0gNDUgKi8NCj4gKwkJCWxpbnV4LGNv ZGUgPSA8S0VZX1dBS0VVUD47DQo+ICsJCQlkZWJvdW5jZS1pbnRlcnZhbCA9IDwxMD47DQo+ICsJ CQl3YWtldXAtc291cmNlOw0KPiArCQl9Ow0KPiArCX07DQo+ICsNCj4gKwlsY2RfZGlzcGxheTog ZGlzcGxheUBkaTAgew0KPiArCQljb21wYXRpYmxlID0gImZzbCxpbXgtcGFyYWxsZWwtZGlzcGxh eSI7DQo+ICsJCSNhZGRyZXNzLWNlbGxzID0gPDE+Ow0KPiArCQkjc2l6ZS1jZWxscyA9IDwwPjsN Cj4gKwkJaW50ZXJmYWNlLXBpeC1mbXQgPSAiYmdyNjY2IjsNCj4gKwkJcGluY3RybC1uYW1lcyA9 ICJkZWZhdWx0IjsNCj4gKwkJcGluY3RybC0wID0gPCZwaW5jdHJsX2lwdTFfbGNkaWY+Ow0KPiAr CQlzdGF0dXMgPSAib2theSI7DQo+ICsNCj4gKwkJcG9ydEAwIHsNCj4gKwkJCXJlZyA9IDwwPjsN Cj4gKw0KPiArCQkJbGNkX2Rpc3BsYXlfaW46IGVuZHBvaW50IHsNCj4gKwkJCQlyZW1vdGUtZW5k cG9pbnQgPSA8JmlwdTFfZGkwX2Rpc3AwPjsNCj4gKwkJCX07DQo+ICsJCX07DQo+ICsNCj4gKwkJ cG9ydEAxIHsNCj4gKwkJCXJlZyA9IDwxPjsNCj4gKw0KPiArCQkJbGNkX2Rpc3BsYXlfb3V0OiBl bmRwb2ludCB7DQo+ICsJCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZsY2RfcGFuZWxfaW4+Ow0KPiAr CQkJfTsNCj4gKwkJfTsNCj4gKwl9Ow0KPiArDQo+ICsJcGFuZWw6IHBhbmVsIHsNCj4gKwkJLyoN Cj4gKwkJwqAqIGVkdCxldDA1NzA5MGRodTogRURUIDUuNyIgTENEIFRGVA0KPiArCQnCoCogZWR0 LGV0MDcwMDgwZGg2OiBFRFQgNy4wIiBMQ0QgVEZUDQo+ICsJCcKgKi8NCj4gKwkJY29tcGF0aWJs ZSA9ICJlZHQsZXQwNTcwOTBkaHUiOw0KPiArCQliYWNrbGlnaHQgPSA8JmJhY2tsaWdodD47DQo+ ICsNCj4gKwkJcG9ydCB7DQo+ICsJCQlsY2RfcGFuZWxfaW46IGVuZHBvaW50IHsNCj4gKwkJCQly ZW1vdGUtZW5kcG9pbnQgPQ0KPiA8JmxjZF9kaXNwbGF5X291dD47DQo+ICsJCQl9Ow0KPiArCQl9 Ow0KPiArCX07DQo+ICt9Ow0KPiArDQo+ICsmYmFja2xpZ2h0IHsNCj4gKwlicmlnaHRuZXNzLWxl dmVscyA9IDwwIDEyNyAxOTEgMjIzIDIzOSAyNDcgMjUxIDI1NT47DQo+ICsJZGVmYXVsdC1icmln aHRuZXNzLWxldmVsID0gPDE+Ow0KPiArCXN0YXR1cyA9ICJva2F5IjsNCj4gK307DQo+ICsNCj4g Ky8qIENvbGlicmkgU1NQICovDQo+ICsmZWNzcGk0IHsNCj4gKwlzdGF0dXMgPSAib2theSI7DQo+ ICsNCj4gKwltY3AyNTF4MDogbWNwMjUxeEAxIHsNCj4gKwkJY29tcGF0aWJsZSA9ICJtaWNyb2No aXAsbWNwMjUxNSI7DQo+ICsJCXJlZyA9IDwwPjsNCj4gKwkJY2xvY2tzID0gPCZjbGsxNm0+Ow0K PiArCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZncGlvMz47DQo+ICsJCWludGVycnVwdHMgPSA8Mjcg MHgyPjsNCj4gKwkJc3BpLW1heC1mcmVxdWVuY3kgPSA8MTAwMDAwMDA+Ow0KPiArCQlzdGF0dXMg PSAib2theSI7DQo+ICsJfTsNCj4gK307DQo+ICsNCj4gKyZoZG1pIHsNCj4gKwlzdGF0dXMgPSAi b2theSI7DQo+ICt9Ow0KPiArDQo+ICsvKg0KPiArICogQ29saWJyaSBJMkM6IEkyQzNfU0RBL1ND TCBvbiBTT0RJTU0gMTk0LzE5NiAoZS5nLiBSVEMgb24gY2Fycmllcg0KPiBib2FyZCkNCj4gKyAq Lw0KPiArJmkyYzMgew0KPiArCXN0YXR1cyA9ICJva2F5IjsNCj4gKw0KPiArCS8qIE00MVQwTTYg cmVhbCB0aW1lIGNsb2NrIG9uIGNhcnJpZXIgYm9hcmQgKi8NCj4gKwlydGNfaTJjOiBydGNANjgg ew0KPiArCQljb21wYXRpYmxlID0gInN0LG00MXQwMCI7DQo+ICsJCXJlZyA9IDwweDY4PjsNCj4g Kwl9Ow0KPiArfTsNCj4gKw0KPiArJmlwdTFfZGkwX2Rpc3AwIHsNCj4gKwlyZW1vdGUtZW5kcG9p bnQgPSA8JmxjZF9kaXNwbGF5X2luPjsNCj4gK307DQo+ICsNCj4gKyZwd20xIHsNCj4gKwlzdGF0 dXMgPSAib2theSI7DQo+ICt9Ow0KPiArDQo+ICsmcHdtMiB7DQo+ICsJc3RhdHVzID0gIm9rYXki Ow0KPiArfTsNCj4gKw0KPiArJnB3bTMgew0KPiArCXN0YXR1cyA9ICJva2F5IjsNCj4gK307DQo+ ICsNCj4gKyZwd200IHsNCj4gKwlzdGF0dXMgPSAib2theSI7DQo+ICt9Ow0KPiArDQo+ICsmcmVn X3VzYl9ob3N0X3ZidXMgew0KPiArCXN0YXR1cyA9ICJva2F5IjsNCj4gK307DQo+ICsNCj4gKyZ1 YXJ0MSB7DQo+ICsJc3RhdHVzID0gIm9rYXkiOw0KPiArfTsNCj4gKw0KPiArJnVhcnQyIHsNCj4g KwlzdGF0dXMgPSAib2theSI7DQo+ICt9Ow0KPiArDQo+ICsmdWFydDMgew0KPiArCXN0YXR1cyA9 ICJva2F5IjsNCj4gK307DQo+ICsNCj4gKyZ1c2JoMSB7DQo+ICsJdmJ1cy1zdXBwbHkgPSA8JnJl Z191c2JfaG9zdF92YnVzPjsNCj4gKwlzdGF0dXMgPSAib2theSI7DQo+ICt9Ow0KPiArDQo+ICsm dXNib3RnIHsNCj4gKwlzdGF0dXMgPSAib2theSI7DQo+ICt9Ow0KPiArDQo+ICsvKiBDb2xpYnJp IE1NQyAqLw0KPiArJnVzZGhjMSB7DQo+ICsJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsNCj4g KwlwaW5jdHJsLTAgPSA8JnBpbmN0cmxfbW1jX2NkPjsNCj4gKwljZC1ncGlvcyA9IDwmZ3BpbzIg NSBHUElPX0FDVElWRV9MT1c+OyAvKiBNTUNEICovDQo+ICsJc3RhdHVzID0gIm9rYXkiOw0KPiAr fTsNCj4gKw0KPiArJndlaW0gew0KPiArCXN0YXR1cyA9ICJva2F5IjsNCj4gKw0KPiArCS8qIHdl aW0gbWVtb3J5IG1hcDogMzJNQiBvbiBDUzAsIDMyTUIgb24gQ1MxLCAzMk1CIG9uIENTMiAqLw0K PiArCXJhbmdlcyA9IDwwIDAgMHgwODAwMDAwMCAweDAyMDAwMDAwDQo+ICsJCcKgwqAxIDAgMHgw YTAwMDAwMCAweDAyMDAwMDAwDQo+ICsJCcKgwqAyIDAgMHgwYzAwMDAwMCAweDAyMDAwMDAwPjsN Cj4gKw0KPiArCS8qIFNSQU0gb24gQ29saWJyaSBuRVhUX0NTMCAqLw0KPiArCXNyYW1AMCwwIHsN Cj4gKwkJY29tcGF0aWJsZSA9ICJjeXByZXNzLGN5N2MxMDE5ZHYzMy0xMHpzeGksIG10ZC1yYW0i Ow0KPiArCQlyZWcgPSA8MCAwIDB4MDAwMTAwMDA+Ow0KPiArCQkjYWRkcmVzcy1jZWxscyA9IDwx PjsNCj4gKwkJI3NpemUtY2VsbHMgPSA8MT47DQo+ICsJCWJhbmstd2lkdGggPSA8Mj47DQo+ICsJ CWZzbCx3ZWltLWNzLXRpbWluZyA9IDwweDAwMDEwMDgxIDB4MDAwMDAwMDANCj4gMHgwNDAwMDAw MA0KPiArCQkJCcKgwqDCoMKgwqDCoDB4MDAwMDAwMDAgMHgwNDAwMDA0MA0KPiAweDAwMDAwMDAw PjsNCj4gKwl9Ow0KPiArDQo+ICsJLyogU1JBTSBvbiBDb2xpYnJpIG5FWFRfQ1MxICovDQo+ICsJ c3JhbUAxLDAgew0KPiArCQljb21wYXRpYmxlID0gImN5cHJlc3MsY3k3YzEwMTlkdjMzLTEwenN4 aSwgbXRkLXJhbSI7DQo+ICsJCXJlZyA9IDwxIDAgMHgwMDAxMDAwMD47DQo+ICsJCSNhZGRyZXNz LWNlbGxzID0gPDE+Ow0KPiArCQkjc2l6ZS1jZWxscyA9IDwxPjsNCj4gKwkJYmFuay13aWR0aCA9 IDwyPjsNCj4gKwkJZnNsLHdlaW0tY3MtdGltaW5nID0gPDB4MDAwMTAwODEgMHgwMDAwMDAwMA0K PiAweDA0MDAwMDAwDQo+ICsJCQkJwqDCoMKgwqDCoMKgMHgwMDAwMDAwMCAweDA0MDAwMDQwDQo+ IDB4MDAwMDAwMDA+Ow0KPiArCX07DQo+ICt9Ow0KPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9v dC9kdHMvaW14NnFkbC1jb2xpYnJpLmR0c2kNCj4gYi9hcmNoL2FybS9ib290L2R0cy9pbXg2cWRs LWNvbGlicmkuZHRzaQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi5l NmZhYTY1DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvYXJjaC9hcm0vYm9vdC9kdHMvaW14NnFk bC1jb2xpYnJpLmR0c2kNCj4gQEAgLTAsMCArMSw4OTAgQEANCj4gKy8qDQo+ICsgKiBDb3B5cmln aHQgMjAxNC0yMDE2IFRvcmFkZXggQUcNCj4gKyAqIENvcHlyaWdodCAyMDEyIEZyZWVzY2FsZSBT ZW1pY29uZHVjdG9yLCBJbmMuDQo+ICsgKiBDb3B5cmlnaHQgMjAxMSBMaW5hcm8gTHRkLg0KPiAr ICoNCj4gKyAqIFRoaXMgZmlsZSBpcyBkdWFsLWxpY2Vuc2VkOiB5b3UgY2FuIHVzZSBpdCBlaXRo ZXIgdW5kZXIgdGhlIHRlcm1zDQo+ICsgKiBvZiB0aGUgR1BMIG9yIHRoZSBYMTEgbGljZW5zZSwg YXQgeW91ciBvcHRpb24uIE5vdGUgdGhhdCB0aGlzDQo+IGR1YWwNCj4gKyAqIGxpY2Vuc2luZyBv bmx5IGFwcGxpZXMgdG8gdGhpcyBmaWxlLCBhbmQgbm90IHRoaXMgcHJvamVjdCBhcyBhDQo+ICsg KiB3aG9sZS4NCj4gKyAqDQo+ICsgKsKgwqBhKSBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yDQo+ICsgKsKgwqDCoMKgwqBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KPiArICrC oMKgwqDCoMKgdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLg0KPiArICoNCj4gKyAqwqDCoMKgwqDCoFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsDQo+ICsgKsKgwqDCoMKgwqBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eQ0KPiBv Zg0KPiArICrCoMKgwqDCoMKgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLsKgwqBTZWUgdGhlDQo+ICsgKsKgwqDCoMKgwqBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KPiArICoNCj4gKyAqIE9yLCBhbHRlcm5hdGl2 ZWx5DQo+ICsgKg0KPiArICrCoMKgYikgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24NCj4gKyAqwqDCoMKgwqDCoG9idGFpbmluZyBhIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZA0KPiBkb2N1bWVudGF0aW9uDQo+ICsg KsKgwqDCoMKgwqBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2Fy ZSB3aXRob3V0DQo+ICsgKsKgwqDCoMKgwqByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQg bGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZQ0KPiArICrCoMKgwqDCoMKgY29weSwgbW9kaWZ5 LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yDQo+ICsgKsKg wqDCoMKgwqBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tDQo+IHRoZQ0KPiArICrCoMKgwqDCoMKgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRv IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcNCj4gKyAqwqDCoMKgwqDCoGNvbmRpdGlv bnM6DQo+ICsgKg0KPiArICrCoMKgwqDCoMKgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwNCj4gYmUNCj4gKyAqwqDCoMKgwqDCoGluY2x1 ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlDQo+IFNvZnR3 YXJlLg0KPiArICoNCj4gKyAqwqDCoMKgwqDCoFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQNCj4gKyAqwqDCoMKgwqDCoEVYUFJFU1MgT1IgSU1Q TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUNCj4gV0FSUkFOVElFUw0KPiAr ICrCoMKgwqDCoMKgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQNCj4gKyAqwqDCoMKgwqDCoE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQg U0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUDQo+ICsgKsKgwqDCoMKgwqBIT0xERVJTIEJF IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWQ0KPiArICrC oMKgwqDCoMKgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX SVNFLCBBUklTSU5HDQo+ICsgKsKgwqDCoMKgwqBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP TiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SDQo+ICsgKsKgwqDCoMKgwqBPVEhFUiBE RUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuDQo+ICsgKi8NCj4gKw0KPiArI2luY2x1ZGUgPGR0LWJp bmRpbmdzL2dwaW8vZ3Bpby5oPg0KPiArDQo+ICsvIHsNCj4gKwltb2RlbCA9ICJUb3JhZGV4IENv bGlicmkgaU1YNkRML1MgTW9kdWxlIjsNCj4gKwljb21wYXRpYmxlID0gInRvcmFkZXgsY29saWJy aV9pbXg2ZGwiLCAiZnNsLGlteDZkbCI7DQo+ICsNCj4gKwliYWNrbGlnaHQ6IGJhY2tsaWdodCB7 DQo+ICsJCWNvbXBhdGlibGUgPSAicHdtLWJhY2tsaWdodCI7DQo+ICsJCXBpbmN0cmwtbmFtZXMg PSAiZGVmYXVsdCI7DQo+ICsJCXBpbmN0cmwtMCA9IDwmcGluY3RybF9ncGlvX2JsX29uPjsNCj4g KwkJcHdtcyA9IDwmcHdtMyAwIDUwMDAwMDA+Ow0KPiArCQllbmFibGUtZ3Bpb3MgPSA8JmdwaW8z IDI2IEdQSU9fQUNUSVZFX0hJR0g+OyAvKg0KPiBDb2xpYnJpIEJMX09OICovDQo+ICsJCXN0YXR1 cyA9ICJkaXNhYmxlZCI7DQo+ICsJfTsNCj4gKw0KPiArCXJlZ18xcDh2OiByZWd1bGF0b3ItMXA4 diB7DQo+ICsJCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWZpeGVkIjsNCj4gKwkJcmVndWxhdG9y LW5hbWUgPSAiMVA4ViI7DQo+ICsJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDE4MDAwMDA+ Ow0KPiArCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsNCj4gKwkJcmVndWxh dG9yLWFsd2F5cy1vbjsNCj4gKwl9Ow0KPiArDQo+ICsJcmVnXzJwNXY6IHJlZ3VsYXRvci0ycDV2 IHsNCj4gKwkJY29tcGF0aWJsZSA9ICJyZWd1bGF0b3ItZml4ZWQiOw0KPiArCQlyZWd1bGF0b3It bmFtZSA9ICIyUDVWIjsNCj4gKwkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MjUwMDAwMD47 DQo+ICsJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDI1MDAwMDA+Ow0KPiArCQlyZWd1bGF0 b3ItYWx3YXlzLW9uOw0KPiArCX07DQo+ICsNCj4gKwlyZWdfM3AzdjogcmVndWxhdG9yLTNwM3Yg ew0KPiArCQljb21wYXRpYmxlID0gInJlZ3VsYXRvci1maXhlZCI7DQo+ICsJCXJlZ3VsYXRvci1u YW1lID0gIjNQM1YiOw0KPiArCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsN Cj4gKwkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MzMwMDAwMD47DQo+ICsJCXJlZ3VsYXRv ci1hbHdheXMtb247DQo+ICsJfTsNCj4gKw0KPiArCXJlZ191c2JfaG9zdF92YnVzOiByZWd1bGF0 b3ItdXNiLWhvc3QtdmJ1cyB7DQo+ICsJCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWZpeGVkIjsN Cj4gKwkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsNCj4gKwkJcGluY3RybC0wID0gPCZwaW5j dHJsX3JlZ3VsYXRvcl91c2JoX3B3cj47DQo+ICsJCXJlZ3VsYXRvci1uYW1lID0gInVzYl9ob3N0 X3ZidXMiOw0KPiArCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDw1MDAwMDAwPjsNCj4gKwkJ cmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8NTAwMDAwMD47DQo+ICsJCWdwaW8gPSA8JmdwaW8z IDMxIEdQSU9fQUNUSVZFX0hJR0g+OyAvKiBVU0JIX1BFTiAqLw0KPiArCQlzdGF0dXMgPSAiZGlz YWJsZWQiOw0KPiArCX07DQo+ICsNCj4gKwlzb3VuZCB7DQo+ICsJCWNvbXBhdGlibGUgPSAiZnNs LGlteC1hdWRpby1zZ3RsNTAwMCI7DQo+ICsJCW1vZGVsID0gImlteDZkbC1jb2xpYnJpLXNndGw1 MDAwIjsNCj4gKwkJc3NpLWNvbnRyb2xsZXIgPSA8JnNzaTE+Ow0KPiArCQlhdWRpby1jb2RlYyA9 IDwmY29kZWM+Ow0KPiArCQlhdWRpby1yb3V0aW5nID0NCj4gKwkJCSJIZWFkcGhvbmUgSmFjayIs ICJIUF9PVVQiLA0KPiArCQkJIkxJTkVfSU4iLCAiTGluZSBJbiBKYWNrIiwNCj4gKwkJCSJNSUNf SU4iLCAiTWljIEphY2siLA0KPiArCQkJIk1pYyBKYWNrIiwgIk1pYyBCaWFzIjsNCj4gKwkJbXV4 LWludC1wb3J0ID0gPDE+Ow0KPiArCQltdXgtZXh0LXBvcnQgPSA8NT47DQo+ICsJfTsNCj4gKw0K PiArCS8qIE9wdGlvbmFsIFMvUERJRiBpbiBvbiBTT0RJTU0gODggYW5kIG91dCBvbiBTT0RJTU0g OTAsIDEzNw0KPiBvciAxNjggKi8NCj4gKwlzb3VuZF9zcGRpZjogc291bmQtc3BkaWYgew0KPiAr CQljb21wYXRpYmxlID0gImZzbCxpbXgtYXVkaW8tc3BkaWYiOw0KPiArCQltb2RlbCA9ICJpbXgt c3BkaWYiOw0KPiArCQlzcGRpZi1jb250cm9sbGVyID0gPCZzcGRpZj47DQo+ICsJCXNwZGlmLWlu Ow0KPiArCQlzcGRpZi1vdXQ7DQo+ICsJCXN0YXR1cyA9ICJkaXNhYmxlZCI7DQo+ICsJfTsNCj4g K307DQo+ICsNCj4gKyZhdWRtdXggew0KPiArCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7DQo+ ICsJcGluY3RybC0wID0gPCZwaW5jdHJsX2F1ZG11eCAmcGluY3RybF9taWNfZ25kPjsNCj4gKwlz dGF0dXMgPSAib2theSI7DQo+ICt9Ow0KPiArDQo+ICsvKiBPcHRpb25hbCBvbiBTT0RJTU0gNTUv NjMgKi8NCj4gKyZjYW4xIHsNCj4gKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOw0KPiArCXBp bmN0cmwtMCA9IDwmcGluY3RybF9mbGV4Y2FuMT47DQo+ICsJc3RhdHVzID0gImRpc2FibGVkIjsN Cj4gK307DQo+ICsNCj4gKy8qIE9wdGlvbmFsIG9uIFNPRElNTSAxNzgvMTg4ICovDQo+ICsmY2Fu MiB7DQo+ICsJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsNCj4gKwlwaW5jdHJsLTAgPSA8JnBp bmN0cmxfZmxleGNhbjI+Ow0KPiArCXN0YXR1cyA9ICJkaXNhYmxlZCI7DQo+ICt9Ow0KPiArDQo+ ICsvKiBDb2xpYnJpIFNTUCAqLw0KPiArJmVjc3BpNCB7DQo+ICsJZnNsLHNwaS1udW0tY2hpcHNl bGVjdHMgPSA8MT47DQo+ICsJY3MtZ3Bpb3MgPSA8JmdwaW81IDIgR1BJT19BQ1RJVkVfSElHSD47 DQo+ICsJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsNCj4gKwlwaW5jdHJsLTAgPSA8JnBpbmN0 cmxfZWNzcGk0PjsNCj4gKwlzdGF0dXMgPSAiZGlzYWJsZWQiOw0KPiArfTsNCj4gKw0KPiArJmZl YyB7DQo+ICsJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsNCj4gKwlwaW5jdHJsLTAgPSA8JnBp bmN0cmxfZW5ldD47DQo+ICsJcGh5LW1vZGUgPSAicm1paSI7DQo+ICsJc3RhdHVzID0gIm9rYXki Ow0KPiArfTsNCj4gKw0KPiArJmhkbWkgew0KPiArCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7 DQo+ICsJcGluY3RybC0wID0gPCZwaW5jdHJsX2hkbWlfZGRjPjsNCj4gKwlzdGF0dXMgPSAiZGlz YWJsZWQiOw0KPiArfTsNCj4gKw0KPiArLyoNCj4gKyAqIFBXUl9JMkM6IHBvd2VyIEkyQyB0byBh dWRpbyBjb2RlYywgUE1JQywgdGVtcGVyYXR1cmUgc2Vuc29yIGFuZA0KPiArICogdG91Y2ggc2Ny ZWVuIGNvbnRyb2xsZXINCj4gKyAqLw0KPiArJmkyYzIgew0KPiArCWNsb2NrLWZyZXF1ZW5jeSA9 IDwxMDAwMDA+Ow0KPiArCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7DQo+ICsJcGluY3RybC0w ID0gPCZwaW5jdHJsX2kyYzI+Ow0KPiArCXN0YXR1cyA9ICJva2F5IjsNCj4gKw0KPiArCXBtaWM6 IHBmdXplMTAwQDA4IHsNCj4gKwkJY29tcGF0aWJsZSA9ICJmc2wscGZ1emUxMDAiOw0KPiArCQly ZWcgPSA8MHgwOD47DQo+ICsNCj4gKwkJcmVndWxhdG9ycyB7DQo+ICsJCQlzdzFhX3JlZzogc3cx YWIgew0KPiArCQkJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDMwMDAwMD47DQo+ICsJCQkJ cmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MTg3NTAwMD47DQo+ICsJCQkJcmVndWxhdG9yLWJv b3Qtb247DQo+ICsJCQkJcmVndWxhdG9yLWFsd2F5cy1vbjsNCj4gKwkJCQlyZWd1bGF0b3ItcmFt cC1kZWxheSA9IDw2MjUwPjsNCj4gKwkJCX07DQo+ICsNCj4gKwkJCXN3MWNfcmVnOiBzdzFjIHsN Cj4gKwkJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwzMDAwMDA+Ow0KPiArCQkJCXJlZ3Vs YXRvci1tYXgtbWljcm92b2x0ID0gPDE4NzUwMDA+Ow0KPiArCQkJCXJlZ3VsYXRvci1ib290LW9u Ow0KPiArCQkJCXJlZ3VsYXRvci1hbHdheXMtb247DQo+ICsJCQkJcmVndWxhdG9yLXJhbXAtZGVs YXkgPSA8NjI1MD47DQo+ICsJCQl9Ow0KPiArDQo+ICsJCQlzdzNhX3JlZzogc3czYSB7DQo+ICsJ CQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8NDAwMDAwPjsNCj4gKwkJCQlyZWd1bGF0b3It bWF4LW1pY3Jvdm9sdCA9IDwxOTc1MDAwPjsNCj4gKwkJCQlyZWd1bGF0b3ItYm9vdC1vbjsNCj4g KwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOw0KPiArCQkJfTsNCj4gKw0KPiArCQkJc3dic3RfcmVn OiBzd2JzdCB7DQo+ICsJCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8NTAwMDAwMD47DQo+ ICsJCQkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8NTE1MDAwMD47DQo+ICsJCQkJcmVndWxh dG9yLWJvb3Qtb247DQo+ICsJCQkJcmVndWxhdG9yLWFsd2F5cy1vbjsNCj4gKwkJCX07DQo+ICsN Cj4gKwkJCXNudnNfcmVnOiB2c252cyB7DQo+ICsJCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQg PSA8MTAwMDAwMD47DQo+ICsJCQkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MzAwMDAwMD47 DQo+ICsJCQkJcmVndWxhdG9yLWJvb3Qtb247DQo+ICsJCQkJcmVndWxhdG9yLWFsd2F5cy1vbjsN Cj4gKwkJCX07DQo+ICsNCj4gKwkJCXZyZWZfcmVnOiB2cmVmZGRyIHsNCj4gKwkJCQlyZWd1bGF0 b3ItYm9vdC1vbjsNCj4gKwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOw0KPiArCQkJfTsNCj4gKw0K PiArCQkJLyogdmdlbjE6IHVudXNlZCAqLw0KPiArDQo+ICsJCQl2Z2VuMl9yZWc6IHZnZW4yIHsN Cj4gKwkJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDw4MDAwMDA+Ow0KPiArCQkJCXJlZ3Vs YXRvci1tYXgtbWljcm92b2x0ID0gPDE1NTAwMDA+Ow0KPiArCQkJCXJlZ3VsYXRvci1ib290LW9u Ow0KPiArCQkJCXJlZ3VsYXRvci1hbHdheXMtb247DQo+ICsJCQl9Ow0KPiArDQo+ICsJCQkvKiB2 Z2VuMzogdW51c2VkICovDQo+ICsNCj4gKwkJCXZnZW40X3JlZzogdmdlbjQgew0KPiArCQkJCXJl Z3VsYXRvci1taW4tbWljcm92b2x0ID0gPDE4MDAwMDA+Ow0KPiArCQkJCXJlZ3VsYXRvci1tYXgt bWljcm92b2x0ID0gPDMzMDAwMDA+Ow0KPiArCQkJCXJlZ3VsYXRvci1ib290LW9uOw0KPiArCQkJ CXJlZ3VsYXRvci1hbHdheXMtb247DQo+ICsJCQl9Ow0KPiArDQo+ICsJCQl2Z2VuNV9yZWc6IHZn ZW41IHsNCj4gKwkJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsNCj4gKwkJ CQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsNCj4gKwkJCQlyZWd1bGF0b3It Ym9vdC1vbjsNCj4gKwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOw0KPiArCQkJfTsNCj4gKw0KPiAr CQkJdmdlbjZfcmVnOiB2Z2VuNiB7DQo+ICsJCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8 MTgwMDAwMD47DQo+ICsJCQkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MzMwMDAwMD47DQo+ ICsJCQkJcmVndWxhdG9yLWJvb3Qtb247DQo+ICsJCQkJcmVndWxhdG9yLWFsd2F5cy1vbjsNCj4g KwkJCX07DQo+ICsJCX07DQo+ICsJfTsNCj4gKw0KPiArCWNvZGVjOiBzZ3RsNTAwMEAwYSB7DQo+ ICsJCWNvbXBhdGlibGUgPSAiZnNsLHNndGw1MDAwIjsNCj4gKwkJcmVnID0gPDB4MGE+Ow0KPiAr CQljbG9ja3MgPSA8JmNsa3MgSU1YNlFETF9DTEtfQ0tPPjsNCj4gKwkJVkREQS1zdXBwbHkgPSA8 JnJlZ18ycDV2PjsNCj4gKwkJVkRESU8tc3VwcGx5ID0gPCZyZWdfM3Azdj47DQo+ICsJfTsNCj4g Kw0KPiArCS8qIFNUTVBFODExIHRvdWNoIHNjcmVlbiBjb250cm9sbGVyICovDQo+ICsJc3RtcGU4 MTFANDEgew0KPiArCQljb21wYXRpYmxlID0gInN0LHN0bXBlODExIjsNCj4gKwkJcGluY3RybC1u YW1lcyA9ICJkZWZhdWx0IjsNCj4gKwkJcGluY3RybC0wID0gPCZwaW5jdHJsX3RvdWNoX2ludD47 DQo+ICsJCSNhZGRyZXNzLWNlbGxzID0gPDE+Ow0KPiArCQkjc2l6ZS1jZWxscyA9IDwwPjsNCj4g KwkJcmVnID0gPDB4NDE+Ow0KPiArCQlpbnRlcnJ1cHRzID0gPDIwIElSUV9UWVBFX0xFVkVMX0xP Vz47DQo+ICsJCWludGVycnVwdC1wYXJlbnQgPSA8JmdwaW82PjsNCj4gKwkJaW50ZXJydXB0LWNv bnRyb2xsZXI7DQo+ICsJCWlkID0gPDA+Ow0KPiArCQlibG9ja3MgPSA8MHg1PjsNCj4gKwkJaXJx LXRyaWdnZXIgPSA8MHgxPjsNCj4gKw0KPiArCQlzdG1wZV90b3VjaHNjcmVlbiB7DQo+ICsJCQlj b21wYXRpYmxlID0gInN0LHN0bXBlLXRzIjsNCj4gKwkJCXJlZyA9IDwwPjsNCj4gKwkJCS8qIDMu MjUgTUh6IEFEQyBjbG9jayBzcGVlZCAqLw0KPiArCQkJc3QsYWRjLWZyZXEgPSA8MT47DQo+ICsJ CQkvKiA4IHNhbXBsZSBhdmVyYWdlIGNvbnRyb2wgKi8NCj4gKwkJCXN0LGF2ZS1jdHJsID0gPDM+ Ow0KPiArCQkJLyogNyBsZW5ndGggZnJhY3Rpb25hbCBwYXJ0IGluIHogKi8NCj4gKwkJCXN0LGZy YWN0aW9uLXogPSA8Nz47DQo+ICsJCQkvKg0KPiArCQkJwqAqIDUwIG1BIHR5cGljYWwgODAgbUEg bWF4IHRvdWNoc2NyZWVuDQo+IGRyaXZlcnMNCj4gKwkJCcKgKiBjdXJyZW50IGxpbWl0IHZhbHVl DQo+ICsJCQnCoCovDQo+ICsJCQlzdCxpLWRyaXZlID0gPDE+Ow0KPiArCQkJLyogMTItYml0IEFE QyAqLw0KPiArCQkJc3QsbW9kLTEyYiA9IDwxPjsNCj4gKwkJCS8qIGludGVybmFsIEFEQyByZWZl cmVuY2UgKi8NCj4gKwkJCXN0LHJlZi1zZWwgPSA8MD47DQo+ICsJCQkvKiBBREMgY29udmVyc3Rp b24gdGltZTogODAgY2xvY2tzICovDQo+ICsJCQlzdCxzYW1wbGUtdGltZSA9IDw0PjsNCj4gKwkJ CS8qIDEgbXMgcGFuZWwgZHJpdmVyIHNldHRsaW5nIHRpbWUgKi8NCj4gKwkJCXN0LHNldHRsaW5n ID0gPDM+Ow0KPiArCQkJLyogNSBtcyB0b3VjaCBkZXRlY3QgaW50ZXJydXB0IGRlbGF5ICovDQo+ ICsJCQlzdCx0b3VjaC1kZXQtZGVsYXkgPSA8NT47DQo+ICsJCX07DQo+ICsJfTsNCj4gK307DQo+ ICsNCj4gKy8qDQo+ICsgKiBJMkMzX1NEQS9TQ0wgb24gU09ESU1NIDE5NC8xOTYgKGUuZy4gUlRD IG9uIGNhcnJpZXIgYm9hcmQpDQo+ICsgKi8NCj4gKyZpMmMzIHsNCj4gKwljbG9jay1mcmVxdWVu Y3kgPSA8MTAwMDAwPjsNCj4gKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiLCAicmVjb3Zlcnki Ow0KPiArCXBpbmN0cmwtMCA9IDwmcGluY3RybF9pMmMzPjsNCj4gKwlwaW5jdHJsLTEgPSA8JnBp bmN0cmxfaTJjM19yZWNvdmVyeT47DQo+ICsJc2NsLWdwaW9zID0gPCZncGlvMSAzIEdQSU9fQUNU SVZFX0hJR0g+Ow0KPiArCXNkYS1ncGlvcyA9IDwmZ3BpbzEgNiBHUElPX0FDVElWRV9ISUdIPjsN Cj4gKwlzdGF0dXMgPSAiZGlzYWJsZWQiOw0KPiArfTsNCj4gKw0KPiArLyogQ29saWJyaSBQV008 Qj4gKi8NCj4gKyZwd20xIHsNCj4gKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOw0KPiArCXBp bmN0cmwtMCA9IDwmcGluY3RybF9wd20xPjsNCj4gKwlzdGF0dXMgPSAiZGlzYWJsZWQiOw0KPiAr fTsNCj4gKw0KPiArLyogQ29saWJyaSBQV008RD4gKi8NCj4gKyZwd20yIHsNCj4gKwlwaW5jdHJs LW5hbWVzID0gImRlZmF1bHQiOw0KPiArCXBpbmN0cmwtMCA9IDwmcGluY3RybF9wd20yPjsNCj4g KwlzdGF0dXMgPSAiZGlzYWJsZWQiOw0KPiArfTsNCj4gKw0KPiArLyogQ29saWJyaSBQV008QT4g Ki8NCj4gKyZwd20zIHsNCj4gKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOw0KPiArCXBpbmN0 cmwtMCA9IDwmcGluY3RybF9wd20zPjsNCj4gKwlzdGF0dXMgPSAiZGlzYWJsZWQiOw0KPiArfTsN Cj4gKw0KPiArLyogQ29saWJyaSBQV008Qz4gKi8NCj4gKyZwd200IHsNCj4gKwlwaW5jdHJsLW5h bWVzID0gImRlZmF1bHQiOw0KPiArCXBpbmN0cmwtMCA9IDwmcGluY3RybF9wd200PjsNCj4gKwlz dGF0dXMgPSAiZGlzYWJsZWQiOw0KPiArfTsNCj4gKw0KPiArLyogT3B0aW9uYWwgUy9QRElGIG91 dCBvbiBTT0RJTU0gMTM3ICovDQo+ICsmc3BkaWYgew0KPiArCXBpbmN0cmwtbmFtZXMgPSAiZGVm YXVsdCI7DQo+ICsJcGluY3RybC0wID0gPCZwaW5jdHJsX3NwZGlmPjsNCj4gKwlzdGF0dXMgPSAi ZGlzYWJsZWQiOw0KPiArfTsNCj4gKw0KPiArJnNzaTEgew0KPiArCXN0YXR1cyA9ICJva2F5IjsN Cj4gK307DQo+ICsNCj4gKy8qIENvbGlicmkgVUFSVF9BICovDQo+ICsmdWFydDEgew0KPiArCXBp bmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7DQo+ICsJcGluY3RybC0wID0gPCZwaW5jdHJsX3VhcnQx X2R0ZSAmcGluY3RybF91YXJ0MV9jdHJsPjsNCj4gKwlmc2wsZHRlLW1vZGU7DQo+ICsJdWFydC1o YXMtcnRzY3RzOw0KPiArCXN0YXR1cyA9ICJkaXNhYmxlZCI7DQo+ICt9Ow0KPiArDQo+ICsvKiBD b2xpYnJpIFVBUlRfQiAqLw0KPiArJnVhcnQyIHsNCj4gKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1 bHQiOw0KPiArCXBpbmN0cmwtMCA9IDwmcGluY3RybF91YXJ0Ml9kdGU+Ow0KPiArCWZzbCxkdGUt bW9kZTsNCj4gKwl1YXJ0LWhhcy1ydHNjdHM7DQo+ICsJc3RhdHVzID0gImRpc2FibGVkIjsNCj4g K307DQo+ICsNCj4gKy8qIENvbGlicmkgVUFSVF9DICovDQo+ICsmdWFydDMgew0KPiArCXBpbmN0 cmwtbmFtZXMgPSAiZGVmYXVsdCI7DQo+ICsJcGluY3RybC0wID0gPCZwaW5jdHJsX3VhcnQzX2R0 ZT47DQo+ICsJZnNsLGR0ZS1tb2RlOw0KPiArCXN0YXR1cyA9ICJkaXNhYmxlZCI7DQo+ICt9Ow0K PiArDQo+ICsmdXNib3RnIHsNCj4gKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOw0KPiArCWRp c2FibGUtb3Zlci1jdXJyZW50Ow0KPiArCWRyX21vZGUgPSAicGVyaXBoZXJhbCI7DQo+ICsJc3Rh dHVzID0gImRpc2FibGVkIjsNCj4gK307DQo+ICsNCj4gKy8qIENvbGlicmkgTU1DICovDQo+ICsm dXNkaGMxIHsNCj4gKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOw0KPiArCXBpbmN0cmwtMCA9 IDwmcGluY3RybF91c2RoYzE+Ow0KPiArCXZxbW1jLXN1cHBseSA9IDwmcmVnXzNwM3Y+Ow0KPiAr CWJ1cy13aWR0aCA9IDw0PjsNCj4gKwl2b2x0YWdlLXJhbmdlcyA9IDwzMzAwIDMzMDA+Ow0KPiAr CXN0YXR1cyA9ICJkaXNhYmxlZCI7DQo+ICt9Ow0KPiArDQo+ICsvKiBlTU1DICovDQo+ICsmdXNk aGMzIHsNCj4gKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOw0KPiArCXBpbmN0cmwtMCA9IDwm cGluY3RybF91c2RoYzM+Ow0KPiArCXZxbW1jLXN1cHBseSA9IDwmcmVnXzNwM3Y+Ow0KPiArCWJ1 cy13aWR0aCA9IDw4PjsNCj4gKwl2b2x0YWdlLXJhbmdlcyA9IDwzMzAwIDMzMDA+Ow0KPiArCW5v bi1yZW1vdmFibGU7DQo+ICsJc3RhdHVzID0gIm9rYXkiOw0KPiArfTsNCj4gKw0KPiArJndlaW0g ew0KPiArCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7DQo+ICsJcGluY3RybC0wID0gPCZwaW5j dHJsX3dlaW1fc3JhbcKgwqAmcGluY3RybF93ZWltX2NzMA0KPiArCQnCoMKgwqDCoMKgJnBpbmN0 cmxfd2VpbV9jczHCoMKgwqAmcGluY3RybF93ZWltX2NzMg0KPiArCQnCoMKgwqDCoMKgJnBpbmN0 cmxfd2VpbV9yZG53ciAmcGluY3RybF93ZWltX25wd2U+Ow0KPiArCSNhZGRyZXNzLWNlbGxzID0g PDI+Ow0KPiArCSNzaXplLWNlbGxzID0gPDE+Ow0KPiArCXN0YXR1cyA9ICJkaXNhYmxlZCI7DQo+ ICt9Ow0KPiArDQo+ICsmaW9tdXhjIHsNCj4gKwlwaW5jdHJsX2F1ZG11eDogYXVkbXV4Z3JwIHsN Cj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFEX0tFWV9DT0wwX19BVUQ1X1RYQwkw eDEzMGIwDQo+ICsJCQlNWDZRRExfUEFEX0tFWV9ST1cwX19BVUQ1X1RYRAkweDEzMGIwDQo+ICsJ CQlNWDZRRExfUEFEX0tFWV9DT0wxX19BVUQ1X1RYRlMJMHgxMzBiDQo+IDANCj4gKwkJCU1YNlFE TF9QQURfS0VZX1JPVzFfX0FVRDVfUlhECTB4MTMwYjANCj4gKwkJCS8qIFNHVEw1MDAwIHN5c19t Y2xrICovDQo+ICsJCQlNWDZRRExfUEFEX0dQSU9fMF9fQ0NNX0NMS08xCTB4MDAwYjANCj4gKwkJ PjsNCj4gKwl9Ow0KPiArDQo+ICsJcGluY3RybF9jYW1fbWNsazogY2FtbWNsa2dycCB7DQo+ICsJ CWZzbCxwaW5zID0gPA0KPiArCQkJLyogUGFyYWxsZWwgQ2FtZXJhIENBTSBzeXNfbWNsayAqLw0K PiArCQkJTVg2UURMX1BBRF9OQU5ERl9DUzJfX0NDTV9DTEtPMgkweDAwYg0KPiAwDQo+ICsJCT47 DQo+ICsJfTsNCj4gKw0KPiArCXBpbmN0cmxfZWNzcGk0OiBlY3NwaTRncnAgew0KPiArCQlmc2ws cGlucyA9IDwNCj4gKwkJCU1YNlFETF9QQURfRUlNX0QyMl9fRUNTUEk0X01JU08JMHgxMDANCj4g YjENCj4gKwkJCU1YNlFETF9QQURfRUlNX0QyOF9fRUNTUEk0X01PU0kJMHgxMDANCj4gYjENCj4g KwkJCU1YNlFETF9QQURfRUlNX0QyMV9fRUNTUEk0X1NDTEsgMHgxMDBiMQ0KPiArCQkJLyogU1BJ IENTICovDQo+ICsJCQlNWDZRRExfUEFEX0VJTV9BMjVfX0dQSU81X0lPMDIJMHgwMDBiDQo+IDEN Cj4gKwkJPjsNCj4gKwl9Ow0KPiArDQo+ICsJcGluY3RybF9lbmV0OiBlbmV0Z3JwIHsNCj4gKwkJ ZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFEX0VORVRfTURDX19FTkVUX01EQwkJDQo+IDB4 MWIwYjANCj4gKwkJCU1YNlFETF9QQURfRU5FVF9NRElPX19FTkVUX01ESU8JCQ0KPiAweDFiMGIw DQo+ICsJCQlNWDZRRExfUEFEX0VORVRfUlhEMF9fRU5FVF9SWF9EQVRBMAkwDQo+IHgxYjBiMA0K PiArCQkJTVg2UURMX1BBRF9FTkVUX1JYRDFfX0VORVRfUlhfREFUQTEJMA0KPiB4MWIwYjANCj4g KwkJCU1YNlFETF9QQURfRU5FVF9SWF9FUl9fRU5FVF9SWF9FUgkweDENCj4gYjBiMA0KPiArCQkJ TVg2UURMX1BBRF9FTkVUX1RYX0VOX19FTkVUX1RYX0VOCTB4MQ0KPiBiMGIwDQo+ICsJCQlNWDZR RExfUEFEX0VORVRfVFhEMF9fRU5FVF9UWF9EQVRBMAkwDQo+IHgxYjBiMA0KPiArCQkJTVg2UURM X1BBRF9FTkVUX1RYRDFfX0VORVRfVFhfREFUQTEJMA0KPiB4MWIwYjANCj4gKwkJCU1YNlFETF9Q QURfRU5FVF9DUlNfRFZfX0VORVRfUlhfRU4JMHgNCj4gMWIwYjANCj4gKwkJCU1YNlFETF9QQURf R1BJT18xNl9fRU5FVF9SRUZfQ0xLwqDCoMKgwqDCoCgoMTw8MzANCj4gKSB8IDB4MWIwYjApDQo+ ICsJCT47DQo+ICsJfTsNCj4gKw0KPiArCXBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHsN Cj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFEX0dQSU9fN19fRkxFWENBTjFfVFgJ CQ0KPiAweDFiMGIwDQo+ICsJCQlNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlgJCQ0KPiAw eDFiMGIwDQo+ICsJCT47DQo+ICsJfTsNCj4gKw0KPiArCXBpbmN0cmxfZmxleGNhbjI6IGZsZXhj YW4yZ3JwIHsNCj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFEX0tFWV9DT0w0X19G TEVYQ0FOMl9UWAkweDFiDQo+IDBiMA0KPiArCQkJTVg2UURMX1BBRF9LRVlfUk9XNF9fRkxFWENB TjJfUlgJMHgxYg0KPiAwYjANCj4gKwkJPjsNCj4gKwl9Ow0KPiArDQo+ICsJcGluY3RybF9ncGlv X2JsX29uOiBncGlvYmxvbiB7DQo+ICsJCWZzbCxwaW5zID0gPA0KPiArCQkJTVg2UURMX1BBRF9F SU1fRDI2X19HUElPM19JTzI2CQkNCj4gMHgxYjBiMA0KPiArCQk+Ow0KPiArCX07DQo+ICsNCj4g KwlwaW5jdHJsX2dwaW9fa2V5czogZ3Bpb2tleXMgew0KPiArCQlmc2wscGlucyA9IDwNCj4gKwkJ CS8qIFBvd2VyIGJ1dHRvbiAqLw0KPiArCQkJTVg2UURMX1BBRF9FSU1fQTE2X19HUElPMl9JTzIy CQkNCj4gMHgxYjBiMA0KPiArCQk+Ow0KPiArCX07DQo+ICsNCj4gKwlwaW5jdHJsX2hkbWlfZGRj OiBoZG1pZGRjZ3JwIHsNCj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFEX0tFWV9D T0wzX19IRE1JX1RYX0REQ19TQ0wNCj4gMHg0MDAxYjhiMQ0KPiArCQkJTVg2UURMX1BBRF9LRVlf Uk9XM19fSERNSV9UWF9ERENfU0RBDQo+IDB4NDAwMWI4YjENCj4gKwkJPjsNCj4gKwl9Ow0KPiAr DQo+ICsJcGluY3RybF9pMmMyOiBpMmMyZ3JwIHsNCj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlN WDZRRExfUEFEX0VJTV9FQjJfX0kyQzJfU0NMIDB4NDAwMWI4YjENCj4gKwkJCU1YNlFETF9QQURf RUlNX0QxNl9fSTJDMl9TREEgMHg0MDAxYjhiMQ0KPiArCQk+Ow0KPiArCX07DQo+ICsNCj4gKwlw aW5jdHJsX2kyYzM6IGkyYzNncnAgew0KPiArCQlmc2wscGlucyA9IDwNCj4gKwkJCU1YNlFETF9Q QURfR1BJT18zX19JMkMzX1NDTCAweDQwMDFiOGIxDQo+ICsJCQlNWDZRRExfUEFEX0dQSU9fNl9f STJDM19TREEgMHg0MDAxYjhiMQ0KPiArCQk+Ow0KPiArCX07DQo+ICsNCj4gKwlwaW5jdHJsX2ky YzNfcmVjb3Zlcnk6IGkyYzNyZWNvdmVyeWdycCB7DQo+ICsJCWZzbCxwaW5zID0gPA0KPiArCQkJ TVg2UURMX1BBRF9HUElPXzNfX0dQSU8xX0lPMDMgMHg0MDAxYjhiMQ0KPiArCQkJTVg2UURMX1BB RF9HUElPXzZfX0dQSU8xX0lPMDYgMHg0MDAxYjhiMQ0KPiArCQk+Ow0KPiArCX07DQo+ICsNCj4g KwlwaW5jdHJsX2lwdTFfY3NpMDogaXB1MWNzaTBncnAgeyAvKiBQYXJhbGxlbCBDYW1lcmEgKi8N Cj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFEX0VJTV9BMTdfX0lQVTFfQ1NJMV9E QVRBMTIJDQo+IDB4YjBiMQ0KPiArCQkJTVg2UURMX1BBRF9FSU1fQTE4X19JUFUxX0NTSTFfREFU QTEzCQ0KPiAweGIwYjENCj4gKwkJCU1YNlFETF9QQURfRUlNX0ExOV9fSVBVMV9DU0kxX0RBVEEx NAkNCj4gMHhiMGIxDQo+ICsJCQlNWDZRRExfUEFEX0VJTV9BMjBfX0lQVTFfQ1NJMV9EQVRBMTUJ DQo+IDB4YjBiMQ0KPiArCQkJTVg2UURMX1BBRF9FSU1fQTIxX19JUFUxX0NTSTFfREFUQTE2CQ0K PiAweGIwYjENCj4gKwkJCU1YNlFETF9QQURfRUlNX0EyMl9fSVBVMV9DU0kxX0RBVEExNwkNCj4g MHhiMGIxDQo+ICsJCQlNWDZRRExfUEFEX0VJTV9BMjNfX0lQVTFfQ1NJMV9EQVRBMTgJDQo+IDB4 YjBiMQ0KPiArCQkJTVg2UURMX1BBRF9FSU1fQTI0X19JUFUxX0NTSTFfREFUQTE5CQ0KPiAweGIw YjENCj4gKwkJCU1YNlFETF9QQURfRUlNX0QxN19fSVBVMV9DU0kxX1BJWENMSwkNCj4gMHhiMGIx DQo+ICsJCQlNWDZRRExfUEFEX0VJTV9FQjNfX0lQVTFfQ1NJMV9IU1lOQwkwDQo+IHhiMGIxDQo+ ICsJCQlNWDZRRExfUEFEX0VJTV9EMjlfX0lQVTFfQ1NJMV9WU1lOQwkwDQo+IHhiMGIxDQo+ICsJ CQkvKiBEaXNhYmxlIFBXTSBwaW5zIG9uIGNhbWVyYSBpbnRlcmZhY2UgKi8NCj4gKwkJCU1YNlFE TF9QQURfU0Q0X0RBVDFfX0dQSU8yX0lPMDkJCQ0KPiAweDQwDQo+ICsJCQlNWDZRRExfUEFEX0dQ SU9fMV9fR1BJTzFfSU8wMQkJDQo+IDB4NDANCj4gKwkJPjsNCj4gKwl9Ow0KPiArDQo+ICsJcGlu Y3RybF9pcHUxX2xjZGlmOiBpcHUxbGNkaWZncnAgew0KPiArCQlmc2wscGlucyA9IDwNCj4gKwkJ CU1YNlFETF9QQURfREkwX0RJU1BfQ0xLX19JUFUxX0RJMF9ESVNQX0NMSwkNCj4gMHhhMQ0KPiAr CQkJTVg2UURMX1BBRF9ESTBfUElOMTVfX0lQVTFfREkwX1BJTjE1CQkNCj4gMHhhMQ0KPiArCQkJ TVg2UURMX1BBRF9ESTBfUElOMl9fSVBVMV9ESTBfUElOMDIJCQ0KPiAweGExDQo+ICsJCQlNWDZR RExfUEFEX0RJMF9QSU4zX19JUFUxX0RJMF9QSU4wMwkJDQo+IDB4YTENCj4gKwkJCU1YNlFETF9Q QURfRElTUDBfREFUMF9fSVBVMV9ESVNQMF9EQVRBMDAJDQo+IDB4YTENCj4gKwkJCU1YNlFETF9Q QURfRElTUDBfREFUMV9fSVBVMV9ESVNQMF9EQVRBMDEJDQo+IDB4YTENCj4gKwkJCU1YNlFETF9Q QURfRElTUDBfREFUMl9fSVBVMV9ESVNQMF9EQVRBMDIJDQo+IDB4YTENCj4gKwkJCU1YNlFETF9Q QURfRElTUDBfREFUM19fSVBVMV9ESVNQMF9EQVRBMDMJDQo+IDB4YTENCj4gKwkJCU1YNlFETF9Q QURfRElTUDBfREFUNF9fSVBVMV9ESVNQMF9EQVRBMDQJDQo+IDB4YTENCj4gKwkJCU1YNlFETF9Q QURfRElTUDBfREFUNV9fSVBVMV9ESVNQMF9EQVRBMDUJDQo+IDB4YTENCj4gKwkJCU1YNlFETF9Q QURfRElTUDBfREFUNl9fSVBVMV9ESVNQMF9EQVRBMDYJDQo+IDB4YTENCj4gKwkJCU1YNlFETF9Q QURfRElTUDBfREFUN19fSVBVMV9ESVNQMF9EQVRBMDcJDQo+IDB4YTENCj4gKwkJCU1YNlFETF9Q QURfRElTUDBfREFUOF9fSVBVMV9ESVNQMF9EQVRBMDgJDQo+IDB4YTENCj4gKwkJCU1YNlFETF9Q QURfRElTUDBfREFUOV9fSVBVMV9ESVNQMF9EQVRBMDkJDQo+IDB4YTENCj4gKwkJCU1YNlFETF9Q QURfRElTUDBfREFUMTBfX0lQVTFfRElTUDBfREFUQTEwCQ0KPiAweGExDQo+ICsJCQlNWDZRRExf UEFEX0RJU1AwX0RBVDExX19JUFUxX0RJU1AwX0RBVEExMQkNCj4gMHhhMQ0KPiArCQkJTVg2UURM X1BBRF9ESVNQMF9EQVQxMl9fSVBVMV9ESVNQMF9EQVRBMTIJDQo+IDB4YTENCj4gKwkJCU1YNlFE TF9QQURfRElTUDBfREFUMTNfX0lQVTFfRElTUDBfREFUQTEzCQ0KPiAweGExDQo+ICsJCQlNWDZR RExfUEFEX0RJU1AwX0RBVDE0X19JUFUxX0RJU1AwX0RBVEExNAkNCj4gMHhhMQ0KPiArCQkJTVg2 UURMX1BBRF9ESVNQMF9EQVQxNV9fSVBVMV9ESVNQMF9EQVRBMTUJDQo+IDB4YTENCj4gKwkJCU1Y NlFETF9QQURfRElTUDBfREFUMTZfX0lQVTFfRElTUDBfREFUQTE2CQ0KPiAweGExDQo+ICsJCQlN WDZRRExfUEFEX0RJU1AwX0RBVDE3X19JUFUxX0RJU1AwX0RBVEExNwkNCj4gMHhhMQ0KPiArCQk+ Ow0KPiArCX07DQo+ICsNCj4gKwlwaW5jdHJsX21pY19nbmQ6IGdwaW9taWNnbmQgew0KPiArCQlm c2wscGlucyA9IDwNCj4gKwkJCS8qIENvbnRyb2xzIE1pYyBHTkQsIFBVIG9yICcxJyBwdWxsIE1p YyBHTkQNCj4gdG8gR05EICovDQo+ICsJCQlNWDZRRExfUEFEX1JHTUlJX1REMV9fR1BJTzZfSU8y MSAweDFiMGIwDQo+ICsJCT47DQo+ICsJfTsNCj4gKw0KPiArCXBpbmN0cmxfbW1jX2NkOiBncGlv bW1jY2Qgew0KPiArCQlmc2wscGlucyA9IDwNCj4gKwkJCU1YNlFETF9QQURfTkFOREZfRDVfX0dQ SU8yX0lPMDUJMHg4MDANCj4gMDAwMDANCj4gKwkJPjsNCj4gKwl9Ow0KPiArDQo+ICsJcGluY3Ry bF9wd20xOiBwd20xZ3JwIHsNCj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFEX0dQ SU9fOV9fUFdNMV9PVVQJMHgxYjBiMQ0KPiArCQk+Ow0KPiArCX07DQo+ICsNCj4gKwlwaW5jdHJs X3B3bTI6IHB3bTJncnAgew0KPiArCQlmc2wscGlucyA9IDwNCj4gKwkJCU1YNlFETF9QQURfR1BJ T18xX19QV00yX09VVAkweDFiMGIxDQo+ICsJCQlNWDZRRExfUEFEX0VJTV9BMjFfX0dQSU8yX0lP MTcJMHgwMDA0DQo+IDANCj4gKwkJPjsNCj4gKwl9Ow0KPiArDQo+ICsJcGluY3RybF9wd20zOiBw d20zZ3JwIHsNCj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFEX1NENF9EQVQxX19Q V00zX09VVAkweDFiMGIxDQo+ICsJCQlNWDZRRExfUEFEX0VJTV9BMjJfX0dQSU8yX0lPMTYJMHgw MDA0DQo+IDANCj4gKwkJPjsNCj4gKwl9Ow0KPiArDQo+ICsJcGluY3RybF9wd200OiBwd200Z3Jw IHsNCj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFEX1NENF9EQVQyX19QV000X09V VAkweDFiMGIxDQo+ICsJCT47DQo+ICsJfTsNCj4gKw0KPiArCXBpbmN0cmxfcmVndWxhdG9yX3Vz YmhfcHdyOiBncGlvcmVndXNiaHB3cmdycCB7DQo+ICsJCWZzbCxwaW5zID0gPA0KPiArCQkJLyog VVNCSF9FTiAqLw0KPiArCQkJTVg2UURMX1BBRF9FSU1fRDMxX19HUElPM19JTzMxCTB4MGYwNQ0K PiA4DQo+ICsJCT47DQo+ICsJfTsNCj4gKw0KPiArCXBpbmN0cmxfc3BkaWY6IHNwZGlmZ3JwIHsN Cj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFEX0dQSU9fMTdfX1NQRElGX09VVCAw eDFiMGIwDQo+ICsJCT47DQo+ICsJfTsNCj4gKw0KPiArCXBpbmN0cmxfdG91Y2hfaW50OiBncGlv dG91Y2hpbnRncnAgew0KPiArCQlmc2wscGlucyA9IDwNCj4gKwkJCS8qIFNUTVBFODExIGludGVy cnVwdCAqLw0KPiArCQkJTVg2UURMX1BBRF9SR01JSV9URDBfX0dQSU82X0lPMjAgMHgxYjBiMA0K PiArCQk+Ow0KPiArCX07DQo+ICsNCj4gKwlwaW5jdHJsX3VhcnQxX2RjZTogdWFydDFkY2VncnAg ew0KPiArCQlmc2wscGlucyA9IDwNCj4gKwkJCU1YNlFETF9QQURfQ1NJMF9EQVQxMF9fVUFSVDFf VFhfREFUQSAweDFiMGIxDQo+ICsJCQlNWDZRRExfUEFEX0NTSTBfREFUMTFfX1VBUlQxX1JYX0RB VEEgMHgxYjBiMQ0KPiArCQk+Ow0KPiArCX07DQo+ICsNCj4gKwkvKiBEVEUgbW9kZSAqLw0KPiAr CXBpbmN0cmxfdWFydDFfZHRlOiB1YXJ0MWR0ZWdycCB7DQo+ICsJCWZzbCxwaW5zID0gPA0KPiAr CQkJTVg2UURMX1BBRF9DU0kwX0RBVDEwX19VQVJUMV9SWF9EQVRBIDB4MWIwYjENCj4gKwkJCU1Y NlFETF9QQURfQ1NJMF9EQVQxMV9fVUFSVDFfVFhfREFUQSAweDFiMGIxDQo+ICsJCQlNWDZRRExf UEFEX0VJTV9EMTlfX1VBUlQxX1JUU19CCTB4MWIwDQo+IGIxDQo+ICsJCQlNWDZRRExfUEFEX0VJ TV9EMjBfX1VBUlQxX0NUU19CIDB4MWIwYjENCj4gKwkJPjsNCj4gKwl9Ow0KPiArDQo+ICsJLyog QWRkaXRpb25hbCBEVFIsIERTUiwgRENEICovDQo+ICsJcGluY3RybF91YXJ0MV9jdHJsOiB1YXJ0 MWN0cmxncnAgew0KPiArCQlmc2wscGlucyA9IDwNCj4gKwkJCU1YNlFETF9QQURfRUlNX0QyM19f VUFSVDFfRENEX0IgMHgxYjBiMA0KPiArCQkJTVg2UURMX1BBRF9FSU1fRDI0X19VQVJUMV9EVFJf QiAweDFiMGIwDQo+ICsJCQlNWDZRRExfUEFEX0VJTV9EMjVfX1VBUlQxX0RTUl9CIDB4MWIwYjAN Cj4gKwkJPjsNCj4gKwl9Ow0KPiArDQo+ICsJcGluY3RybF91YXJ0Ml9kdGU6IHVhcnQyZHRlZ3Jw IHsNCj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFEX1NENF9EQVQ0X19VQVJUMl9U WF9EQVRBCTB4DQo+IDFiMGIxDQo+ICsJCQlNWDZRRExfUEFEX1NENF9EQVQ3X19VQVJUMl9SWF9E QVRBCTB4DQo+IDFiMGIxDQo+ICsJCQlNWDZRRExfUEFEX1NENF9EQVQ2X19VQVJUMl9SVFNfQgkw eDFiDQo+IDBiMQ0KPiArCQkJTVg2UURMX1BBRF9TRDRfREFUNV9fVUFSVDJfQ1RTX0IJMHgxYg0K PiAwYjENCj4gKwkJPjsNCj4gKwl9Ow0KPiArDQo+ICsJcGluY3RybF91YXJ0M19kdGU6IHVhcnQz ZHRlZ3JwIHsNCj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFEX1NENF9DTEtfX1VB UlQzX1RYX0RBVEEJMHgxDQo+IGIwYjENCj4gKwkJCU1YNlFETF9QQURfU0Q0X0NNRF9fVUFSVDNf UlhfREFUQQkweDENCj4gYjBiMQ0KPiArCQk+Ow0KPiArCX07DQo+ICsNCj4gKwlwaW5jdHJsX3Vz YmNfZGV0OiB1c2JjZGV0Z3JwIHsNCj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQkvKiBVU0JDX0RF VCAqLw0KPiArCQkJTVg2UURMX1BBRF9HUElPXzE3X19HUElPN19JTzEyCQkNCj4gMHgxYjBiMA0K PiArCQkJLyogVVNCQ19ERVRfRU4gKi8NCj4gKwkJCU1YNlFETF9QQURfUkdNSUlfVFhfQ1RMX19H UElPNl9JTzI2CTANCj4geDBmMDU4DQo+ICsJCQkvKiBVU0JDX0RFVF9PVkVSV1JJVEUgKi8NCj4g KwkJCU1YNlFETF9QQURfUkdNSUlfUlhDX19HUElPNl9JTzMwCTB4MGYNCj4gMDU4DQo+ICsJCT47 DQo+ICsJfTsNCj4gKw0KPiArCXBpbmN0cmxfdXNkaGMxOiB1c2RoYzFncnAgew0KPiArCQlmc2ws cGlucyA9IDwNCj4gKwkJCU1YNlFETF9QQURfU0QxX0NNRF9fU0QxX0NNRAkweDE3MDcxDQo+ICsJ CQlNWDZRRExfUEFEX1NEMV9DTEtfX1NEMV9DTEsJMHgxMDA3MQ0KPiArCQkJTVg2UURMX1BBRF9T RDFfREFUMF9fU0QxX0RBVEEwCTB4MTcwNw0KPiAxDQo+ICsJCQlNWDZRRExfUEFEX1NEMV9EQVQx X19TRDFfREFUQTEJMHgxNzA3DQo+IDENCj4gKwkJCU1YNlFETF9QQURfU0QxX0RBVDJfX1NEMV9E QVRBMgkweDE3MDcNCj4gMQ0KPiArCQkJTVg2UURMX1BBRF9TRDFfREFUM19fU0QxX0RBVEEzCTB4 MTcwNw0KPiAxDQo+ICsJCT47DQo+ICsJfTsNCj4gKw0KPiArCXBpbmN0cmxfdXNkaGMzOiB1c2Ro YzNncnAgew0KPiArCQlmc2wscGlucyA9IDwNCj4gKwkJCU1YNlFETF9QQURfU0QzX0NNRF9fU0Qz X0NNRAkweDE3MDU5DQo+ICsJCQlNWDZRRExfUEFEX1NEM19DTEtfX1NEM19DTEsJMHgxMDA1OQ0K PiArCQkJTVg2UURMX1BBRF9TRDNfREFUMF9fU0QzX0RBVEEwCTB4MTcwNQ0KPiA5DQo+ICsJCQlN WDZRRExfUEFEX1NEM19EQVQxX19TRDNfREFUQTEJMHgxNzA1DQo+IDkNCj4gKwkJCU1YNlFETF9Q QURfU0QzX0RBVDJfX1NEM19EQVRBMgkweDE3MDUNCj4gOQ0KPiArCQkJTVg2UURMX1BBRF9TRDNf REFUM19fU0QzX0RBVEEzCTB4MTcwNQ0KPiA5DQo+ICsJCQlNWDZRRExfUEFEX1NEM19EQVQ0X19T RDNfREFUQTQJMHgxNzA1DQo+IDkNCj4gKwkJCU1YNlFETF9QQURfU0QzX0RBVDVfX1NEM19EQVRB NQkweDE3MDUNCj4gOQ0KPiArCQkJTVg2UURMX1BBRF9TRDNfREFUNl9fU0QzX0RBVEE2CTB4MTcw NQ0KPiA5DQo+ICsJCQlNWDZRRExfUEFEX1NEM19EQVQ3X19TRDNfREFUQTcJMHgxNzA1DQo+IDkN Cj4gKwkJCS8qIGVNTUMgcmVzZXQgKi8NCj4gKwkJCU1YNlFETF9QQURfU0QzX1JTVF9fU0QzX1JF U0VUCTB4MTcwNTkNCj4gKwkJPjsNCj4gKwl9Ow0KPiArDQo+ICsJcGluY3RybF91c2RoYzNfMTAw bWh6OiB1c2RoYzMxMDBtaHpncnAgew0KPiArCQlmc2wscGlucyA9IDwNCj4gKwkJCU1YNlFETF9Q QURfU0QzX0NNRF9fU0QzX0NNRAkweDE3MGI5DQo+ICsJCQlNWDZRRExfUEFEX1NEM19DTEtfX1NE M19DTEsJMHgxMDBiOQ0KPiArCQkJTVg2UURMX1BBRF9TRDNfREFUMF9fU0QzX0RBVEEwCTB4MTcw Yg0KPiA5DQo+ICsJCQlNWDZRRExfUEFEX1NEM19EQVQxX19TRDNfREFUQTEJMHgxNzBiDQo+IDkN Cj4gKwkJCU1YNlFETF9QQURfU0QzX0RBVDJfX1NEM19EQVRBMgkweDE3MGINCj4gOQ0KPiArCQkJ TVg2UURMX1BBRF9TRDNfREFUM19fU0QzX0RBVEEzCTB4MTcwYg0KPiA5DQo+ICsJCQlNWDZRRExf UEFEX1NEM19EQVQ0X19TRDNfREFUQTQJMHgxNzBiDQo+IDkNCj4gKwkJCU1YNlFETF9QQURfU0Qz X0RBVDVfX1NEM19EQVRBNQkweDE3MGINCj4gOQ0KPiArCQkJTVg2UURMX1BBRF9TRDNfREFUNl9f U0QzX0RBVEE2CTB4MTcwYg0KPiA5DQo+ICsJCQlNWDZRRExfUEFEX1NEM19EQVQ3X19TRDNfREFU QTcJMHgxNzBiDQo+IDkNCj4gKwkJCS8qIGVNTUMgcmVzZXQgKi8NCj4gKwkJCU1YNlFETF9QQURf U0QzX1JTVF9fU0QzX1JFU0VUCTB4MTcwYjkNCj4gKwkJPjsNCj4gKwl9Ow0KPiArDQo+ICsJcGlu Y3RybF91c2RoYzNfMjAwbWh6OiB1c2RoYzMyMDBtaHpncnAgew0KPiArCQlmc2wscGlucyA9IDwN Cj4gKwkJCU1YNlFETF9QQURfU0QzX0NNRF9fU0QzX0NNRAkweDE3MGY5DQo+ICsJCQlNWDZRRExf UEFEX1NEM19DTEtfX1NEM19DTEsJMHgxMDBmOQ0KPiArCQkJTVg2UURMX1BBRF9TRDNfREFUMF9f U0QzX0RBVEEwCTB4MTcwZg0KPiA5DQo+ICsJCQlNWDZRRExfUEFEX1NEM19EQVQxX19TRDNfREFU QTEJMHgxNzBmDQo+IDkNCj4gKwkJCU1YNlFETF9QQURfU0QzX0RBVDJfX1NEM19EQVRBMgkweDE3 MGYNCj4gOQ0KPiArCQkJTVg2UURMX1BBRF9TRDNfREFUM19fU0QzX0RBVEEzCTB4MTcwZg0KPiA5 DQo+ICsJCQlNWDZRRExfUEFEX1NEM19EQVQ0X19TRDNfREFUQTQJMHgxNzBmDQo+IDkNCj4gKwkJ CU1YNlFETF9QQURfU0QzX0RBVDVfX1NEM19EQVRBNQkweDE3MGYNCj4gOQ0KPiArCQkJTVg2UURM X1BBRF9TRDNfREFUNl9fU0QzX0RBVEE2CTB4MTcwZg0KPiA5DQo+ICsJCQlNWDZRRExfUEFEX1NE M19EQVQ3X19TRDNfREFUQTcJMHgxNzBmDQo+IDkNCj4gKwkJCS8qIGVNTUMgcmVzZXQgKi8NCj4g KwkJCU1YNlFETF9QQURfU0QzX1JTVF9fU0QzX1JFU0VUCTB4MTcwZjkNCj4gKwkJPjsNCj4gKwl9 Ow0KPiArDQo+ICsJcGluY3RybF93ZWltX2NzMDogd2VpbWNzMGdycCB7DQo+ICsJCWZzbCxwaW5z ID0gPA0KPiArCQkJLyogbkVYVF9DUzAgKi8NCj4gKwkJCU1YNlFETF9QQURfRUlNX0NTMF9fRUlN X0NTMF9CCTB4YjBiMQ0KPiArCQk+Ow0KPiArCX07DQo+ICsNCj4gKwlwaW5jdHJsX3dlaW1fY3Mx OiB3ZWltY3MxZ3JwIHsNCj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQkvKiBuRVhUX0NTMSAqLw0K PiArCQkJTVg2UURMX1BBRF9FSU1fQ1MxX19FSU1fQ1MxX0IJMHhiMGIxDQo+ICsJCT47DQo+ICsJ fTsNCj4gKw0KPiArCXBpbmN0cmxfd2VpbV9jczI6IHdlaW1jczJncnAgew0KPiArCQlmc2wscGlu cyA9IDwNCj4gKwkJCS8qIG5FWFRfQ1MyICovDQo+ICsJCQlNWDZRRExfUEFEX1NEMl9EQVQxX19F SU1fQ1MyX0IJMHhiMGIxDQo+ICsJCT47DQo+ICsJfTsNCj4gKw0KPiArCXBpbmN0cmxfd2VpbV9z cmFtOiB3ZWltc3JhbWdycCB7DQo+ICsJCWZzbCxwaW5zID0gPA0KPiArCQkJTVg2UURMX1BBRF9F SU1fT0VfX0VJTV9PRV9CCQkwDQo+IHhiMGIxDQo+ICsJCQlNWDZRRExfUEFEX0VJTV9SV19fRUlN X1JXCQkweGINCj4gMGIxDQo+ICsJCQkvKiBEYXRhICovDQo+ICsJCQlNWDZRRExfUEFEX0NTSTBf REFUQV9FTl9fRUlNX0RBVEEwMAkwDQo+IHgxYjBiMA0KPiArCQkJTVg2UURMX1BBRF9DU0kwX1ZT WU5DX19FSU1fREFUQTAxCTB4MQ0KPiBiMGIwDQo+ICsJCQlNWDZRRExfUEFEX0NTSTBfREFUNF9f RUlNX0RBVEEwMgkweDFiDQo+IDBiMA0KPiArCQkJTVg2UURMX1BBRF9DU0kwX0RBVDVfX0VJTV9E QVRBMDMJMHgxYg0KPiAwYjANCj4gKwkJCU1YNlFETF9QQURfQ1NJMF9EQVQ2X19FSU1fREFUQTA0 CTB4MWINCj4gMGIwDQo+ICsJCQlNWDZRRExfUEFEX0NTSTBfREFUN19fRUlNX0RBVEEwNQkweDFi DQo+IDBiMA0KPiArCQkJTVg2UURMX1BBRF9DU0kwX0RBVDhfX0VJTV9EQVRBMDYJMHgxYg0KPiAw YjANCj4gKwkJCU1YNlFETF9QQURfQ1NJMF9EQVQ5X19FSU1fREFUQTA3CTB4MWINCj4gMGIwDQo+ ICsJCQlNWDZRRExfUEFEX0NTSTBfREFUMTJfX0VJTV9EQVRBMDgJMHgxDQo+IGIwYjANCj4gKwkJ CU1YNlFETF9QQURfQ1NJMF9EQVQxM19fRUlNX0RBVEEwOQkweDENCj4gYjBiMA0KPiArCQkJTVg2 UURMX1BBRF9DU0kwX0RBVDE0X19FSU1fREFUQTEwCTB4MQ0KPiBiMGIwDQo+ICsJCQlNWDZRRExf UEFEX0NTSTBfREFUMTVfX0VJTV9EQVRBMTEJMHgxDQo+IGIwYjANCj4gKwkJCU1YNlFETF9QQURf Q1NJMF9EQVQxNl9fRUlNX0RBVEExMgkweDENCj4gYjBiMA0KPiArCQkJTVg2UURMX1BBRF9DU0kw X0RBVDE3X19FSU1fREFUQTEzCTB4MQ0KPiBiMGIwDQo+ICsJCQlNWDZRRExfUEFEX0NTSTBfREFU MThfX0VJTV9EQVRBMTQJMHgxDQo+IGIwYjANCj4gKwkJCU1YNlFETF9QQURfQ1NJMF9EQVQxOV9f RUlNX0RBVEExNQkweDENCj4gYjBiMA0KPiArCQkJLyogQWRkcmVzcyAqLw0KPiArCQkJTVg2UURM X1BBRF9FSU1fREExNV9fRUlNX0FEMTUJCQ0KPiAweGIwYjENCj4gKwkJCU1YNlFETF9QQURfRUlN X0RBMTRfX0VJTV9BRDE0CQkNCj4gMHhiMGIxDQo+ICsJCQlNWDZRRExfUEFEX0VJTV9EQTEzX19F SU1fQUQxMwkJDQo+IDB4YjBiMQ0KPiArCQkJTVg2UURMX1BBRF9FSU1fREExMl9fRUlNX0FEMTIJ CQ0KPiAweGIwYjENCj4gKwkJCU1YNlFETF9QQURfRUlNX0RBMTFfX0VJTV9BRDExCQkNCj4gMHhi MGIxDQo+ICsJCQlNWDZRRExfUEFEX0VJTV9EQTEwX19FSU1fQUQxMAkJDQo+IDB4YjBiMQ0KPiAr CQkJTVg2UURMX1BBRF9FSU1fREE5X19FSU1fQUQwOQkJDQo+IDB4YjBiMQ0KPiArCQkJTVg2UURM X1BBRF9FSU1fREE4X19FSU1fQUQwOAkJDQo+IDB4YjBiMQ0KPiArCQkJTVg2UURMX1BBRF9FSU1f REE3X19FSU1fQUQwNwkJDQo+IDB4YjBiMQ0KPiArCQkJTVg2UURMX1BBRF9FSU1fREE2X19FSU1f QUQwNgkJDQo+IDB4YjBiMQ0KPiArCQkJTVg2UURMX1BBRF9FSU1fREE1X19FSU1fQUQwNQkJDQo+ IDB4YjBiMQ0KPiArCQkJTVg2UURMX1BBRF9FSU1fREE0X19FSU1fQUQwNAkJDQo+IDB4YjBiMQ0K PiArCQkJTVg2UURMX1BBRF9FSU1fREEzX19FSU1fQUQwMwkJDQo+IDB4YjBiMQ0KPiArCQkJTVg2 UURMX1BBRF9FSU1fREEyX19FSU1fQUQwMgkJDQo+IDB4YjBiMQ0KPiArCQkJTVg2UURMX1BBRF9F SU1fREExX19FSU1fQUQwMQkJDQo+IDB4YjBiMQ0KPiArCQkJTVg2UURMX1BBRF9FSU1fREEwX19F SU1fQUQwMAkJDQo+IDB4YjBiMQ0KPiArCQk+Ow0KPiArCX07DQo+ICsNCj4gKwlwaW5jdHJsX3dl aW1fcmRud3I6IHdlaW1yZG53ciB7DQo+ICsJCWZzbCxwaW5zID0gPA0KPiArCQkJTVg2UURMX1BB RF9TRDJfQ0xLX19HUElPMV9JTzEwCQkNCj4gMHgwMDQwDQo+ICsJCQlNWDZRRExfUEFEX1JHTUlJ X1REM19fR1BJTzZfSU8yMwkweDEzDQo+IDBiMA0KPiArCQk+Ow0KPiArCX07DQo+ICsNCj4gKwlw aW5jdHJsX3dlaW1fbnB3ZTogd2VpbW5wd2Ugew0KPiArCQlmc2wscGlucyA9IDwNCj4gKwkJCU1Y NlFETF9QQURfU0QyX0RBVDNfX0dQSU8xX0lPMTIJCQ0KPiAweDAwNDANCj4gKwkJCU1YNlFETF9Q QURfUkdNSUlfVEQyX19HUElPNl9JTzIyCTB4MTMNCj4gMGIwDQo+ICsJCT47DQo+ICsJfTsNCj4g Kw0KPiArCS8qIEFERFJFU1NbMTY6MThdIFsyNV0gdXNlZCBhcyBHUElPICovDQo+ICsJcGluY3Ry bF93ZWltX2dwaW9fMTogd2VpbWdwaW8tMSB7DQo+ICsJCWZzbCxwaW5zID0gPA0KPiArCQkJTVg2 UURMX1BBRF9LRVlfUk9XNF9fR1BJTzRfSU8xNQkJDQo+IDB4MWIwYjANCj4gKwkJCU1YNlFETF9Q QURfS0VZX1JPVzJfX0dQSU80X0lPMTEJCQ0KPiAweDFiMGIwDQo+ICsJCQlNWDZRRExfUEFEX0tF WV9DT0wyX19HUElPNF9JTzEwCQkNCj4gMHgxYjBiMA0KPiArCQkJTVg2UURMX1BBRF9ESVNQMF9E QVQyM19fR1BJTzVfSU8xNwkweA0KPiAxYjBiMA0KPiArCQkJTVg2UURMX1BBRF9ESVNQMF9EQVQy Ml9fR1BJTzVfSU8xNgkweA0KPiAxYjBiMA0KPiArCQkJTVg2UURMX1BBRF9ESVNQMF9EQVQyMV9f R1BJTzVfSU8xNQkweA0KPiAxYjBiMA0KPiArCQkJTVg2UURMX1BBRF9ESVNQMF9EQVQyMF9fR1BJ TzVfSU8xNAkweA0KPiAxYjBiMA0KPiArCQkJTVg2UURMX1BBRF9ESVNQMF9EQVQxOV9fR1BJTzVf SU8xMwkweA0KPiAxYjBiMA0KPiArCQkJTVg2UURMX1BBRF9ESVNQMF9EQVQxOF9fR1BJTzVfSU8x MgkweA0KPiAxYjBiMA0KPiArCQkJTVg2UURMX1BBRF9OQU5ERl9EMV9fR1BJTzJfSU8wMQkJDQo+ IDB4MWIwYjANCj4gKwkJPjsNCj4gKwl9Ow0KPiArDQo+ICsJLyogQUREUkVTU1sxOToyNF0gdXNl ZCBhcyBHUElPICovDQo+ICsJcGluY3RybF93ZWltX2dwaW9fMjogd2VpbWdwaW8tMiB7DQo+ICsJ CWZzbCxwaW5zID0gPA0KPiArCQkJTVg2UURMX1BBRF9LRVlfUk9XMl9fR1BJTzRfSU8xMQkJDQo+ IDB4MWIwYjANCj4gKwkJCU1YNlFETF9QQURfS0VZX0NPTDJfX0dQSU80X0lPMTAJCQ0KPiAweDFi MGIwDQo+ICsJCQlNWDZRRExfUEFEX0RJU1AwX0RBVDIzX19HUElPNV9JTzE3CTB4DQo+IDFiMGIw DQo+ICsJCQlNWDZRRExfUEFEX0RJU1AwX0RBVDIyX19HUElPNV9JTzE2CTB4DQo+IDFiMGIwDQo+ ICsJCQlNWDZRRExfUEFEX0RJU1AwX0RBVDIxX19HUElPNV9JTzE1CTB4DQo+IDFiMGIwDQo+ICsJ CQlNWDZRRExfUEFEX0RJU1AwX0RBVDIwX19HUElPNV9JTzE0CTB4DQo+IDFiMGIwDQo+ICsJCQlN WDZRRExfUEFEX0RJU1AwX0RBVDE5X19HUElPNV9JTzEzCTB4DQo+IDFiMGIwDQo+ICsJCQlNWDZR RExfUEFEX0RJU1AwX0RBVDE4X19HUElPNV9JTzEyCTB4DQo+IDFiMGIwDQo+ICsJCQlNWDZRRExf UEFEX05BTkRGX0QxX19HUElPMl9JTzAxCQkNCj4gMHgxYjBiMA0KPiArCQk+Ow0KPiArCX07DQo+ ICsNCj4gKwkvKiBEQVRBWzE2OjMxXSB1c2VkIGFzIEdQSU8gKi8NCj4gKwlwaW5jdHJsX3dlaW1f Z3Bpb18zOiB3ZWltZ3Bpby0zIHsNCj4gKwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFE X0VJTV9MQkFfX0dQSU8yX0lPMjcJCQ0KPiAweDFiMGIwDQo+ICsJCQlNWDZRRExfUEFEX0VJTV9C Q0xLX19HUElPNl9JTzMxCQkNCj4gMHgxYjBiMA0KPiArCQkJTVg2UURMX1BBRF9OQU5ERl9DUzNf X0dQSU82X0lPMTYJMHgxYg0KPiAwYjANCj4gKwkJCU1YNlFETF9QQURfTkFOREZfQ1MxX19HUElP Nl9JTzE0CTB4MWINCj4gMGIwDQo+ICsJCQlNWDZRRExfUEFEX05BTkRGX1JCMF9fR1BJTzZfSU8x MAkweDFiDQo+IDBiMA0KPiArCQkJTVg2UURMX1BBRF9OQU5ERl9BTEVfX0dQSU82X0lPMDgJMHgx Yg0KPiAwYjANCj4gKwkJCU1YNlFETF9QQURfTkFOREZfV1BfQl9fR1BJTzZfSU8wOQkweDENCj4g YjBiMA0KPiArCQkJTVg2UURMX1BBRF9OQU5ERl9DUzBfX0dQSU82X0lPMTEJMHgxYg0KPiAwYjAN Cj4gKwkJCU1YNlFETF9QQURfTkFOREZfQ0xFX19HUElPNl9JTzA3CTB4MWINCj4gMGIwDQo+ICsJ CQlNWDZRRExfUEFEX0dQSU9fMTlfX0dQSU80X0lPMDUJCQ0KPiAweDFiMGIwDQo+ICsJCQlNWDZR RExfUEFEX0NTSTBfTUNMS19fR1BJTzVfSU8xOQkweDFiDQo+IDBiMA0KPiArCQkJTVg2UURMX1BB RF9DU0kwX1BJWENMS19fR1BJTzVfSU8xOAkweA0KPiAxYjBiMA0KPiArCQkJTVg2UURMX1BBRF9H UElPXzRfX0dQSU8xX0lPMDQJCQ0KPiAweDFiMGIwDQo+ICsJCQlNWDZRRExfUEFEX0dQSU9fNV9f R1BJTzFfSU8wNQkJDQo+IDB4MWIwYjANCj4gKwkJCU1YNlFETF9QQURfR1BJT18yX19HUElPMV9J TzAyCQkNCj4gMHgxYjBiMA0KPiArCQk+Ow0KPiArCX07DQo+ICsNCj4gKwkvKiBEUU1bMDozXSB1 c2VkIGFzIEdQSU8gKi8NCj4gKwlwaW5jdHJsX3dlaW1fZ3Bpb180OiB3ZWltZ3Bpby00IHsNCj4g KwkJZnNsLHBpbnMgPSA8DQo+ICsJCQlNWDZRRExfUEFEX0VJTV9FQjBfX0dQSU8yX0lPMjgJCQ0K PiAweDFiMGIwDQo+ICsJCQlNWDZRRExfUEFEX0VJTV9FQjFfX0dQSU8yX0lPMjkJCQ0KPiAweDFi MGIwDQo+ICsJCQlNWDZRRExfUEFEX1NEMl9EQVQyX19HUElPMV9JTzEzCQkNCj4gMHgxYjBiMA0K PiArCQkJTVg2UURMX1BBRF9OQU5ERl9EMF9fR1BJTzJfSU8wMAkJDQo+IDB4MWIwYjANCj4gKwkJ PjsNCj4gKwl9Ow0KPiArDQo+ICsJLyogUkRZIHVzZWQgYXMgR1BJTyAqLw0KPiArCXBpbmN0cmxf d2VpbV9ncGlvXzU6IHdlaW1ncGlvLTUgew0KPiArCQlmc2wscGlucyA9IDwNCj4gKwkJCU1YNlFE TF9QQURfRUlNX1dBSVRfX0dQSU81X0lPMDAJCQ0KPiAweDFiMGIwDQo+ICsJCT47DQo+ICsJfTsN Cj4gKw0KPiArCS8qIEFERFJFU1NbMTZdIERBVEFbMzBdIHVzZWQgYXMgR1BJTyAqLw0KPiArCXBp bmN0cmxfd2VpbV9ncGlvXzY6IHdlaW1ncGlvLTYgew0KPiArCQlmc2wscGlucyA9IDwNCj4gKwkJ CU1YNlFETF9QQURfS0VZX1JPVzRfX0dQSU80X0lPMTUJCQ0KPiAweDFiMGIwDQo+ICsJCQlNWDZR RExfUEFEX0tFWV9DT0w0X19HUElPNF9JTzE0CQkNCj4gMHgxYjBiMA0KPiArCQk+Ow0KPiArCX07 DQo+ICt9OwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753281AbcI0HBz (ORCPT ); Tue, 27 Sep 2016 03:01:55 -0400 Received: from mail-db5eur01on0139.outbound.protection.outlook.com ([104.47.2.139]:50099 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752303AbcI0HBr (ORCPT ); Tue, 27 Sep 2016 03:01:47 -0400 From: Marcel Ziswiler To: "shawnguo@kernel.org" , "maitysanchayan@gmail.com" CC: "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "stefan@agner.ch" , "robh+dt@kernel.org" , "devicetree@vger.kernel.org" Subject: Re: [PATCH] ARM: dts: imx6: Add support for Toradex Colibri iMX6 module Thread-Topic: [PATCH] ARM: dts: imx6: Add support for Toradex Colibri iMX6 module Thread-Index: AQHSE/vqdnR9eST1kESZhGjDGVTIVaCM6IgA Date: Tue, 27 Sep 2016 06:27:43 +0000 Message-ID: <1474957662.3739.2.camel@toradex.com> References: <20160921112438.8661-1-maitysanchayan@gmail.com> In-Reply-To: <20160921112438.8661-1-maitysanchayan@gmail.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=marcel.ziswiler@toradex.com; x-originating-ip: [84.227.37.153] x-ms-office365-filtering-correlation-id: f5474b99-0e93-42bc-044d-08d3e69f63f4 x-microsoft-exchange-diagnostics: 1;HE1PR05MB1882;6:Z2JHSZ4Jjj82wBxxS6MW5clVn/1lwIIatlBQA+OGFN4A20oSiAHX1hgKuIZDs1WlOALPLevhP21ks6i8T/Lz+9yVmAL2e2F+hvkNh/+HyXSqlMqz6tM91Jw6zQ7ua5eKxpe7FrMtl7CQNzWbInLvydmlMkba1vhQUohmj4SsFsJq074cMu71fvphxpQtrtviChdQVSZlq8spHYty5cfLi0+9dbrX2AeskbF65W1Brfbij4NbIvIxHotQRG0D5GjVvASBf3qclIVgojO/5Huf24OavVyQVvO2Xk9h6y6gA/E=;5:3Md7307MYlXtDPqhgJpyIBcc2MUE494YNdnIXwqEVKBwGYRG8afcTF+WNgpvqna+d1d7YM0+rYaAMjb+7Ja8hZtaJ4nigipF3yPlVzELfXr2vKi4cLKxiaFTcnWCmSY6lGlxoTS+6dNuHi1haNjdIg==;24:8m+Id+QZhCUlkNiWaEZoOqHEgGuzdcjpR+UAP2MZHbqcqbGrrEzXAoGLY8r8hBjGVPtMCr1GAA/jFkvicSURzY0QSFnB8wlIXUxAROq7gvo=;7:5mIXB08cn0OVhy3PL9a32vOy4BuTYkGIG5474K3BkjBQ9hzKgEJm/9vAyDb3W9gOq3H1AP5TpoW60B6C7NHz2bIluCxNniH8tmM64Jb+Pn0sgJsCi14U4x34Td92KUvm20KfKAJbgBuwhguElA56FXU4WtQ84obUniSZFYVombCFKZk5fivFlhrMV1DXNt3H3pLln3q7v3cJzNLK6u5Wo2JUqL4PMAXeZ1stIPXPrINrryFQD8luspC/vLsp1lws/0yYRVUsCJwvkR8hKVxcf4nrLR2Hq6geX8sPamFcZC6ECJAuGZl1F0O74rFqBCbl x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR05MB1882; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:HE1PR05MB1882;BCL:0;PCL:0;RULEID:;SRVR:HE1PR05MB1882; x-forefront-prvs: 007814487B x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(7916002)(199003)(24454002)(377424004)(189002)(3660700001)(87936001)(11100500001)(92566002)(19580405001)(19580395003)(4326007)(10400500002)(575784001)(86362001)(54356999)(76176999)(50986999)(2950100002)(5002640100001)(2501003)(66066001)(33646002)(36756003)(97736004)(5001770100001)(5660300001)(77096005)(101416001)(3280700002)(81166006)(81156014)(2900100001)(189998001)(8936002)(2906002)(7846002)(586003)(103116003)(122556002)(8676002)(68736007)(102836003)(106356001)(6116002)(106116001)(3846002)(305945005)(105586002)(7736002)(2004002)(569005);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR05MB1882;H:HE1PR05MB1882.eurprd05.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <2D8DCE901717784988B3CF903CE6919F@eurprd05.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: toradex.com X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Sep 2016 06:27:43.7834 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: d9995866-0d9b-4251-8315-093f062abab4 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR05MB1882 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id u8R721mf006827 On Wed, 2016-09-21 at 16:54 +0530, Sanchayan Maity wrote: > Add support for Toradex Colibri iMX6 module. > > Signed-off-by: Sanchayan Maity Acked-by: Marcel Ziswiler > --- >  arch/arm/boot/dts/Makefile                   |   1 + >  arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts | 253 ++++++++ >  arch/arm/boot/dts/imx6qdl-colibri.dtsi       | 890 > +++++++++++++++++++++++++++ >  3 files changed, 1144 insertions(+) >  create mode 100644 arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts >  create mode 100644 arch/arm/boot/dts/imx6qdl-colibri.dtsi > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index f79cac2..44ff380 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -323,6 +323,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ >   imx6dl-aristainetos_7.dtb \ >   imx6dl-aristainetos2_4.dtb \ >   imx6dl-aristainetos2_7.dtb \ > + imx6dl-colibri-eval-v3.dtb \ >   imx6dl-cubox-i.dtb \ >   imx6dl-dfi-fs700-m60.dtb \ >   imx6dl-gw51xx.dtb \ > diff --git a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts > b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts > new file mode 100644 > index 0000000..e0c2172 > --- /dev/null > +++ b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts > @@ -0,0 +1,253 @@ > +/* > + * Copyright 2014-2016 Toradex AG > + * Copyright 2012 Freescale Semiconductor, Inc. > + * Copyright 2011 Linaro Ltd. > + * > + * This file is dual-licensed: you can use it either under the terms > + * of the GPL or the X11 license, at your option. Note that this > dual > + * licensing only applies to this file, and not this project as a > + * whole. > + * > + *  a) This file 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. > + * > + *     This file is distributed in the hope that it will be useful > + *     but WITHOUT ANY WARRANTY; without even the implied warranty > of > + *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the > + *     GNU General Public License for more details. > + * > + * Or, alternatively > + * > + *  b) Permission is hereby granted, free of charge, to any person > + *     obtaining a copy of this software and associated > documentation > + *     files (the "Software"), to deal in the Software without > + *     restriction, including without limitation the rights to use > + *     copy, modify, merge, publish, distribute, sublicense, and/or > + *     sell copies of the Software, and to permit persons to whom > the > + *     Software is furnished to do so, subject to the following > + *     conditions: > + * > + *     The above copyright notice and this permission notice shall > be > + *     included in all copies or substantial portions of the > Software. > + * > + *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND > + *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE > WARRANTIES > + *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT > + *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY > + *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + *     OTHER DEALINGS IN THE SOFTWARE. > + */ > + > +/dts-v1/; > + > +#include > +#include > +#include "imx6dl.dtsi" > +#include "imx6qdl-colibri.dtsi" > + > +/ { > + model = "Toradex Colibri iMX6DL/S on Colibri Evaluation > Board V3"; > + compatible = "toradex,colibri_imx6dl-eval-v3", > "toradex,colibri_imx6dl", > +      "fsl,imx6dl"; > + > + aliases { > + i2c0 = &i2c2; > + i2c1 = &i2c3; > + }; > + > + aliases { > + rtc0 = &rtc_i2c; > + rtc1 = &snvs_rtc; > + }; > + > + clocks { > + /* Fixed crystal dedicated to mcp251x */ > + clk16m: clk@1 { > + compatible = "fixed-clock"; > + reg = <1>; > + #clock-cells = <0>; > + clock-frequency = <16000000>; > + clock-output-names = "clk16m"; > + }; > + }; > + > + gpio-keys { > + compatible = "gpio-keys"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_gpio_keys>; > + > + wakeup { > + label = "Wake-Up"; > + gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* > SODIMM 45 */ > + linux,code = ; > + debounce-interval = <10>; > + wakeup-source; > + }; > + }; > + > + lcd_display: display@di0 { > + compatible = "fsl,imx-parallel-display"; > + #address-cells = <1>; > + #size-cells = <0>; > + interface-pix-fmt = "bgr666"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ipu1_lcdif>; > + status = "okay"; > + > + port@0 { > + reg = <0>; > + > + lcd_display_in: endpoint { > + remote-endpoint = <&ipu1_di0_disp0>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + lcd_display_out: endpoint { > + remote-endpoint = <&lcd_panel_in>; > + }; > + }; > + }; > + > + panel: panel { > + /* > +  * edt,et057090dhu: EDT 5.7" LCD TFT > +  * edt,et070080dh6: EDT 7.0" LCD TFT > +  */ > + compatible = "edt,et057090dhu"; > + backlight = <&backlight>; > + > + port { > + lcd_panel_in: endpoint { > + remote-endpoint = > <&lcd_display_out>; > + }; > + }; > + }; > +}; > + > +&backlight { > + brightness-levels = <0 127 191 223 239 247 251 255>; > + default-brightness-level = <1>; > + status = "okay"; > +}; > + > +/* Colibri SSP */ > +&ecspi4 { > + status = "okay"; > + > + mcp251x0: mcp251x@1 { > + compatible = "microchip,mcp2515"; > + reg = <0>; > + clocks = <&clk16m>; > + interrupt-parent = <&gpio3>; > + interrupts = <27 0x2>; > + spi-max-frequency = <10000000>; > + status = "okay"; > + }; > +}; > + > +&hdmi { > + status = "okay"; > +}; > + > +/* > + * Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier > board) > + */ > +&i2c3 { > + status = "okay"; > + > + /* M41T0M6 real time clock on carrier board */ > + rtc_i2c: rtc@68 { > + compatible = "st,m41t00"; > + reg = <0x68>; > + }; > +}; > + > +&ipu1_di0_disp0 { > + remote-endpoint = <&lcd_display_in>; > +}; > + > +&pwm1 { > + status = "okay"; > +}; > + > +&pwm2 { > + status = "okay"; > +}; > + > +&pwm3 { > + status = "okay"; > +}; > + > +&pwm4 { > + status = "okay"; > +}; > + > +®_usb_host_vbus { > + status = "okay"; > +}; > + > +&uart1 { > + status = "okay"; > +}; > + > +&uart2 { > + status = "okay"; > +}; > + > +&uart3 { > + status = "okay"; > +}; > + > +&usbh1 { > + vbus-supply = <®_usb_host_vbus>; > + status = "okay"; > +}; > + > +&usbotg { > + status = "okay"; > +}; > + > +/* Colibri MMC */ > +&usdhc1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_mmc_cd>; > + cd-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; /* MMCD */ > + status = "okay"; > +}; > + > +&weim { > + status = "okay"; > + > + /* weim memory map: 32MB on CS0, 32MB on CS1, 32MB on CS2 */ > + ranges = <0 0 0x08000000 0x02000000 > +   1 0 0x0a000000 0x02000000 > +   2 0 0x0c000000 0x02000000>; > + > + /* SRAM on Colibri nEXT_CS0 */ > + sram@0,0 { > + compatible = "cypress,cy7c1019dv33-10zsxi, mtd-ram"; > + reg = <0 0 0x00010000>; > + #address-cells = <1>; > + #size-cells = <1>; > + bank-width = <2>; > + fsl,weim-cs-timing = <0x00010081 0x00000000 > 0x04000000 > +       0x00000000 0x04000040 > 0x00000000>; > + }; > + > + /* SRAM on Colibri nEXT_CS1 */ > + sram@1,0 { > + compatible = "cypress,cy7c1019dv33-10zsxi, mtd-ram"; > + reg = <1 0 0x00010000>; > + #address-cells = <1>; > + #size-cells = <1>; > + bank-width = <2>; > + fsl,weim-cs-timing = <0x00010081 0x00000000 > 0x04000000 > +       0x00000000 0x04000040 > 0x00000000>; > + }; > +}; > diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi > b/arch/arm/boot/dts/imx6qdl-colibri.dtsi > new file mode 100644 > index 0000000..e6faa65 > --- /dev/null > +++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi > @@ -0,0 +1,890 @@ > +/* > + * Copyright 2014-2016 Toradex AG > + * Copyright 2012 Freescale Semiconductor, Inc. > + * Copyright 2011 Linaro Ltd. > + * > + * This file is dual-licensed: you can use it either under the terms > + * of the GPL or the X11 license, at your option. Note that this > dual > + * licensing only applies to this file, and not this project as a > + * whole. > + * > + *  a) This file 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. > + * > + *     This file is distributed in the hope that it will be useful > + *     but WITHOUT ANY WARRANTY; without even the implied warranty > of > + *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the > + *     GNU General Public License for more details. > + * > + * Or, alternatively > + * > + *  b) Permission is hereby granted, free of charge, to any person > + *     obtaining a copy of this software and associated > documentation > + *     files (the "Software"), to deal in the Software without > + *     restriction, including without limitation the rights to use > + *     copy, modify, merge, publish, distribute, sublicense, and/or > + *     sell copies of the Software, and to permit persons to whom > the > + *     Software is furnished to do so, subject to the following > + *     conditions: > + * > + *     The above copyright notice and this permission notice shall > be > + *     included in all copies or substantial portions of the > Software. > + * > + *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND > + *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE > WARRANTIES > + *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT > + *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY > + *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + *     OTHER DEALINGS IN THE SOFTWARE. > + */ > + > +#include > + > +/ { > + model = "Toradex Colibri iMX6DL/S Module"; > + compatible = "toradex,colibri_imx6dl", "fsl,imx6dl"; > + > + backlight: backlight { > + compatible = "pwm-backlight"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_gpio_bl_on>; > + pwms = <&pwm3 0 5000000>; > + enable-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* > Colibri BL_ON */ > + status = "disabled"; > + }; > + > + reg_1p8v: regulator-1p8v { > + compatible = "regulator-fixed"; > + regulator-name = "1P8V"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + }; > + > + 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_usb_host_vbus: regulator-usb-host-vbus { > + compatible = "regulator-fixed"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_regulator_usbh_pwr>; > + regulator-name = "usb_host_vbus"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>; /* USBH_PEN */ > + status = "disabled"; > + }; > + > + sound { > + compatible = "fsl,imx-audio-sgtl5000"; > + model = "imx6dl-colibri-sgtl5000"; > + ssi-controller = <&ssi1>; > + audio-codec = <&codec>; > + audio-routing = > + "Headphone Jack", "HP_OUT", > + "LINE_IN", "Line In Jack", > + "MIC_IN", "Mic Jack", > + "Mic Jack", "Mic Bias"; > + mux-int-port = <1>; > + mux-ext-port = <5>; > + }; > + > + /* Optional S/PDIF in on SODIMM 88 and out on SODIMM 90, 137 > or 168 */ > + sound_spdif: sound-spdif { > + compatible = "fsl,imx-audio-spdif"; > + model = "imx-spdif"; > + spdif-controller = <&spdif>; > + spdif-in; > + spdif-out; > + status = "disabled"; > + }; > +}; > + > +&audmux { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_audmux &pinctrl_mic_gnd>; > + status = "okay"; > +}; > + > +/* Optional on SODIMM 55/63 */ > +&can1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_flexcan1>; > + status = "disabled"; > +}; > + > +/* Optional on SODIMM 178/188 */ > +&can2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_flexcan2>; > + status = "disabled"; > +}; > + > +/* Colibri SSP */ > +&ecspi4 { > + fsl,spi-num-chipselects = <1>; > + cs-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ecspi4>; > + status = "disabled"; > +}; > + > +&fec { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_enet>; > + phy-mode = "rmii"; > + status = "okay"; > +}; > + > +&hdmi { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_hdmi_ddc>; > + status = "disabled"; > +}; > + > +/* > + * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and > + * touch screen controller > + */ > +&i2c2 { > + clock-frequency = <100000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_i2c2>; > + status = "okay"; > + > + pmic: pfuze100@08 { > + compatible = "fsl,pfuze100"; > + reg = <0x08>; > + > + regulators { > + sw1a_reg: sw1ab { > + regulator-min-microvolt = <300000>; > + regulator-max-microvolt = <1875000>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <6250>; > + }; > + > + sw1c_reg: sw1c { > + regulator-min-microvolt = <300000>; > + regulator-max-microvolt = <1875000>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <6250>; > + }; > + > + sw3a_reg: sw3a { > + regulator-min-microvolt = <400000>; > + regulator-max-microvolt = <1975000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + swbst_reg: swbst { > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5150000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + snvs_reg: vsnvs { > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <3000000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + vref_reg: vrefddr { > + regulator-boot-on; > + regulator-always-on; > + }; > + > + /* vgen1: unused */ > + > + vgen2_reg: vgen2 { > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <1550000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + /* vgen3: unused */ > + > + vgen4_reg: vgen4 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + vgen5_reg: vgen5 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + vgen6_reg: vgen6 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + }; > + }; > + > + codec: sgtl5000@0a { > + compatible = "fsl,sgtl5000"; > + reg = <0x0a>; > + clocks = <&clks IMX6QDL_CLK_CKO>; > + VDDA-supply = <®_2p5v>; > + VDDIO-supply = <®_3p3v>; > + }; > + > + /* STMPE811 touch screen controller */ > + stmpe811@41 { > + compatible = "st,stmpe811"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_touch_int>; > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <0x41>; > + interrupts = <20 IRQ_TYPE_LEVEL_LOW>; > + interrupt-parent = <&gpio6>; > + interrupt-controller; > + id = <0>; > + blocks = <0x5>; > + irq-trigger = <0x1>; > + > + stmpe_touchscreen { > + compatible = "st,stmpe-ts"; > + reg = <0>; > + /* 3.25 MHz ADC clock speed */ > + st,adc-freq = <1>; > + /* 8 sample average control */ > + st,ave-ctrl = <3>; > + /* 7 length fractional part in z */ > + st,fraction-z = <7>; > + /* > +  * 50 mA typical 80 mA max touchscreen > drivers > +  * current limit value > +  */ > + st,i-drive = <1>; > + /* 12-bit ADC */ > + st,mod-12b = <1>; > + /* internal ADC reference */ > + st,ref-sel = <0>; > + /* ADC converstion time: 80 clocks */ > + st,sample-time = <4>; > + /* 1 ms panel driver settling time */ > + st,settling = <3>; > + /* 5 ms touch detect interrupt delay */ > + st,touch-det-delay = <5>; > + }; > + }; > +}; > + > +/* > + * I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board) > + */ > +&i2c3 { > + clock-frequency = <100000>; > + pinctrl-names = "default", "recovery"; > + pinctrl-0 = <&pinctrl_i2c3>; > + pinctrl-1 = <&pinctrl_i2c3_recovery>; > + scl-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>; > + sda-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>; > + status = "disabled"; > +}; > + > +/* Colibri PWM */ > +&pwm1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_pwm1>; > + status = "disabled"; > +}; > + > +/* Colibri PWM */ > +&pwm2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_pwm2>; > + status = "disabled"; > +}; > + > +/* Colibri PWM */ > +&pwm3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_pwm3>; > + status = "disabled"; > +}; > + > +/* Colibri PWM */ > +&pwm4 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_pwm4>; > + status = "disabled"; > +}; > + > +/* Optional S/PDIF out on SODIMM 137 */ > +&spdif { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_spdif>; > + status = "disabled"; > +}; > + > +&ssi1 { > + status = "okay"; > +}; > + > +/* Colibri UART_A */ > +&uart1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart1_dte &pinctrl_uart1_ctrl>; > + fsl,dte-mode; > + uart-has-rtscts; > + status = "disabled"; > +}; > + > +/* Colibri UART_B */ > +&uart2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart2_dte>; > + fsl,dte-mode; > + uart-has-rtscts; > + status = "disabled"; > +}; > + > +/* Colibri UART_C */ > +&uart3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart3_dte>; > + fsl,dte-mode; > + status = "disabled"; > +}; > + > +&usbotg { > + pinctrl-names = "default"; > + disable-over-current; > + dr_mode = "peripheral"; > + status = "disabled"; > +}; > + > +/* Colibri MMC */ > +&usdhc1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc1>; > + vqmmc-supply = <®_3p3v>; > + bus-width = <4>; > + voltage-ranges = <3300 3300>; > + status = "disabled"; > +}; > + > +/* eMMC */ > +&usdhc3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc3>; > + vqmmc-supply = <®_3p3v>; > + bus-width = <8>; > + voltage-ranges = <3300 3300>; > + non-removable; > + status = "okay"; > +}; > + > +&weim { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_weim_sram  &pinctrl_weim_cs0 > +      &pinctrl_weim_cs1   &pinctrl_weim_cs2 > +      &pinctrl_weim_rdnwr &pinctrl_weim_npwe>; > + #address-cells = <2>; > + #size-cells = <1>; > + status = "disabled"; > +}; > + > +&iomuxc { > + pinctrl_audmux: audmuxgrp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x130b0 > + MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x130b0 > + MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x130b > 0 > + MX6QDL_PAD_KEY_ROW1__AUD5_RXD 0x130b0 > + /* SGTL5000 sys_mclk */ > + MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x000b0 > + >; > + }; > + > + pinctrl_cam_mclk: cammclkgrp { > + fsl,pins = < > + /* Parallel Camera CAM sys_mclk */ > + MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x00b > 0 > + >; > + }; > + > + pinctrl_ecspi4: ecspi4grp { > + fsl,pins = < > + MX6QDL_PAD_EIM_D22__ECSPI4_MISO 0x100 > b1 > + MX6QDL_PAD_EIM_D28__ECSPI4_MOSI 0x100 > b1 > + MX6QDL_PAD_EIM_D21__ECSPI4_SCLK 0x100b1 > + /* SPI CS */ > + MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x000b > 1 > + >; > + }; > + > + pinctrl_enet: enetgrp { > + fsl,pins = < > + MX6QDL_PAD_ENET_MDC__ENET_MDC > 0x1b0b0 > + MX6QDL_PAD_ENET_MDIO__ENET_MDIO > 0x1b0b0 > + MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0 > x1b0b0 > + MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0 > x1b0b0 > + MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1 > b0b0 > + MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1 > b0b0 > + MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0 > x1b0b0 > + MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0 > x1b0b0 > + MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x > 1b0b0 > + MX6QDL_PAD_GPIO_16__ENET_REF_CLK     ((1<<30 > ) | 0x1b0b0) > + >; > + }; > + > + pinctrl_flexcan1: flexcan1grp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_7__FLEXCAN1_TX > 0x1b0b0 > + MX6QDL_PAD_GPIO_8__FLEXCAN1_RX > 0x1b0b0 > + >; > + }; > + > + pinctrl_flexcan2: flexcan2grp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x1b > 0b0 > + MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x1b > 0b0 > + >; > + }; > + > + pinctrl_gpio_bl_on: gpioblon { > + fsl,pins = < > + MX6QDL_PAD_EIM_D26__GPIO3_IO26 > 0x1b0b0 > + >; > + }; > + > + pinctrl_gpio_keys: gpiokeys { > + fsl,pins = < > + /* Power button */ > + MX6QDL_PAD_EIM_A16__GPIO2_IO22 > 0x1b0b0 > + >; > + }; > + > + pinctrl_hdmi_ddc: hdmiddcgrp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL3__HDMI_TX_DDC_SCL > 0x4001b8b1 > + MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA > 0x4001b8b1 > + >; > + }; > + > + pinctrl_i2c2: i2c2grp { > + fsl,pins = < > + MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1 > + MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1 > + >; > + }; > + > + pinctrl_i2c3: i2c3grp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 > + MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 > + >; > + }; > + > + pinctrl_i2c3_recovery: i2c3recoverygrp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_3__GPIO1_IO03 0x4001b8b1 > + MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x4001b8b1 > + >; > + }; > + > + pinctrl_ipu1_csi0: ipu1csi0grp { /* Parallel Camera */ > + fsl,pins = < > + MX6QDL_PAD_EIM_A17__IPU1_CSI1_DATA12 > 0xb0b1 > + MX6QDL_PAD_EIM_A18__IPU1_CSI1_DATA13 > 0xb0b1 > + MX6QDL_PAD_EIM_A19__IPU1_CSI1_DATA14 > 0xb0b1 > + MX6QDL_PAD_EIM_A20__IPU1_CSI1_DATA15 > 0xb0b1 > + MX6QDL_PAD_EIM_A21__IPU1_CSI1_DATA16 > 0xb0b1 > + MX6QDL_PAD_EIM_A22__IPU1_CSI1_DATA17 > 0xb0b1 > + MX6QDL_PAD_EIM_A23__IPU1_CSI1_DATA18 > 0xb0b1 > + MX6QDL_PAD_EIM_A24__IPU1_CSI1_DATA19 > 0xb0b1 > + MX6QDL_PAD_EIM_D17__IPU1_CSI1_PIXCLK > 0xb0b1 > + MX6QDL_PAD_EIM_EB3__IPU1_CSI1_HSYNC 0 > xb0b1 > + MX6QDL_PAD_EIM_D29__IPU1_CSI1_VSYNC 0 > xb0b1 > + /* Disable PWM pins on camera interface */ > + MX6QDL_PAD_SD4_DAT1__GPIO2_IO09 > 0x40 > + MX6QDL_PAD_GPIO_1__GPIO1_IO01 > 0x40 > + >; > + }; > + > + pinctrl_ipu1_lcdif: ipu1lcdifgrp { > + fsl,pins = < > + MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK > 0xa1 > + MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 > 0xa1 > + MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 > 0xa1 > + MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 > 0xa1 > + MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 > 0xa1 > + MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 > 0xa1 > + MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 > 0xa1 > + MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 > 0xa1 > + MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 > 0xa1 > + MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 > 0xa1 > + MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 > 0xa1 > + MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 > 0xa1 > + MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 > 0xa1 > + MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 > 0xa1 > + MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 > 0xa1 > + MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 > 0xa1 > + MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 > 0xa1 > + MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 > 0xa1 > + MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 > 0xa1 > + MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 > 0xa1 > + MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 > 0xa1 > + MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 > 0xa1 > + >; > + }; > + > + pinctrl_mic_gnd: gpiomicgnd { > + fsl,pins = < > + /* Controls Mic GND, PU or '1' pull Mic GND > to GND */ > + MX6QDL_PAD_RGMII_TD1__GPIO6_IO21 0x1b0b0 > + >; > + }; > + > + pinctrl_mmc_cd: gpiommccd { > + fsl,pins = < > + MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x800 > 00000 > + >; > + }; > + > + pinctrl_pwm1: pwm1grp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_9__PWM1_OUT 0x1b0b1 > + >; > + }; > + > + pinctrl_pwm2: pwm2grp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_1__PWM2_OUT 0x1b0b1 > + MX6QDL_PAD_EIM_A21__GPIO2_IO17 0x0004 > 0 > + >; > + }; > + > + pinctrl_pwm3: pwm3grp { > + fsl,pins = < > + MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1 > + MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x0004 > 0 > + >; > + }; > + > + pinctrl_pwm4: pwm4grp { > + fsl,pins = < > + MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x1b0b1 > + >; > + }; > + > + pinctrl_regulator_usbh_pwr: gpioregusbhpwrgrp { > + fsl,pins = < > + /* USBH_EN */ > + MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x0f05 > 8 > + >; > + }; > + > + pinctrl_spdif: spdifgrp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0 > + >; > + }; > + > + pinctrl_touch_int: gpiotouchintgrp { > + fsl,pins = < > + /* STMPE811 interrupt */ > + MX6QDL_PAD_RGMII_TD0__GPIO6_IO20 0x1b0b0 > + >; > + }; > + > + pinctrl_uart1_dce: uart1dcegrp { > + fsl,pins = < > + MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1 > + MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1 > + >; > + }; > + > + /* DTE mode */ > + pinctrl_uart1_dte: uart1dtegrp { > + fsl,pins = < > + MX6QDL_PAD_CSI0_DAT10__UART1_RX_DATA 0x1b0b1 > + MX6QDL_PAD_CSI0_DAT11__UART1_TX_DATA 0x1b0b1 > + MX6QDL_PAD_EIM_D19__UART1_RTS_B 0x1b0 > b1 > + MX6QDL_PAD_EIM_D20__UART1_CTS_B 0x1b0b1 > + >; > + }; > + > + /* Additional DTR, DSR, DCD */ > + pinctrl_uart1_ctrl: uart1ctrlgrp { > + fsl,pins = < > + MX6QDL_PAD_EIM_D23__UART1_DCD_B 0x1b0b0 > + MX6QDL_PAD_EIM_D24__UART1_DTR_B 0x1b0b0 > + MX6QDL_PAD_EIM_D25__UART1_DSR_B 0x1b0b0 > + >; > + }; > + > + pinctrl_uart2_dte: uart2dtegrp { > + fsl,pins = < > + MX6QDL_PAD_SD4_DAT4__UART2_TX_DATA 0x > 1b0b1 > + MX6QDL_PAD_SD4_DAT7__UART2_RX_DATA 0x > 1b0b1 > + MX6QDL_PAD_SD4_DAT6__UART2_RTS_B 0x1b > 0b1 > + MX6QDL_PAD_SD4_DAT5__UART2_CTS_B 0x1b > 0b1 > + >; > + }; > + > + pinctrl_uart3_dte: uart3dtegrp { > + fsl,pins = < > + MX6QDL_PAD_SD4_CLK__UART3_TX_DATA 0x1 > b0b1 > + MX6QDL_PAD_SD4_CMD__UART3_RX_DATA 0x1 > b0b1 > + >; > + }; > + > + pinctrl_usbc_det: usbcdetgrp { > + fsl,pins = < > + /* USBC_DET */ > + MX6QDL_PAD_GPIO_17__GPIO7_IO12 > 0x1b0b0 > + /* USBC_DET_EN */ > + MX6QDL_PAD_RGMII_TX_CTL__GPIO6_IO26 0 > x0f058 > + /* USBC_DET_OVERWRITE */ > + MX6QDL_PAD_RGMII_RXC__GPIO6_IO30 0x0f > 058 > + >; > + }; > + > + pinctrl_usdhc1: usdhc1grp { > + fsl,pins = < > + MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17071 > + MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10071 > + MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x1707 > 1 > + MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x1707 > 1 > + MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x1707 > 1 > + MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x1707 > 1 > + >; > + }; > + > + 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 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x1705 > 9 > + MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x1705 > 9 > + /* eMMC reset */ > + MX6QDL_PAD_SD3_RST__SD3_RESET 0x17059 > + >; > + }; > + > + pinctrl_usdhc3_100mhz: usdhc3100mhzgrp { > + fsl,pins = < > + MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9 > + MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b9 > + MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b > 9 > + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b > 9 > + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b > 9 > + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b > 9 > + MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170b > 9 > + MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170b > 9 > + MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170b > 9 > + MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170b > 9 > + /* eMMC reset */ > + MX6QDL_PAD_SD3_RST__SD3_RESET 0x170b9 > + >; > + }; > + > + pinctrl_usdhc3_200mhz: usdhc3200mhzgrp { > + fsl,pins = < > + MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9 > + MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9 > + MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f > 9 > + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f > 9 > + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f > 9 > + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f > 9 > + MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170f > 9 > + MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170f > 9 > + MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170f > 9 > + MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170f > 9 > + /* eMMC reset */ > + MX6QDL_PAD_SD3_RST__SD3_RESET 0x170f9 > + >; > + }; > + > + pinctrl_weim_cs0: weimcs0grp { > + fsl,pins = < > + /* nEXT_CS0 */ > + MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0xb0b1 > + >; > + }; > + > + pinctrl_weim_cs1: weimcs1grp { > + fsl,pins = < > + /* nEXT_CS1 */ > + MX6QDL_PAD_EIM_CS1__EIM_CS1_B 0xb0b1 > + >; > + }; > + > + pinctrl_weim_cs2: weimcs2grp { > + fsl,pins = < > + /* nEXT_CS2 */ > + MX6QDL_PAD_SD2_DAT1__EIM_CS2_B 0xb0b1 > + >; > + }; > + > + pinctrl_weim_sram: weimsramgrp { > + fsl,pins = < > + MX6QDL_PAD_EIM_OE__EIM_OE_B 0 > xb0b1 > + MX6QDL_PAD_EIM_RW__EIM_RW 0xb > 0b1 > + /* Data */ > + MX6QDL_PAD_CSI0_DATA_EN__EIM_DATA00 0 > x1b0b0 > + MX6QDL_PAD_CSI0_VSYNC__EIM_DATA01 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT4__EIM_DATA02 0x1b > 0b0 > + MX6QDL_PAD_CSI0_DAT5__EIM_DATA03 0x1b > 0b0 > + MX6QDL_PAD_CSI0_DAT6__EIM_DATA04 0x1b > 0b0 > + MX6QDL_PAD_CSI0_DAT7__EIM_DATA05 0x1b > 0b0 > + MX6QDL_PAD_CSI0_DAT8__EIM_DATA06 0x1b > 0b0 > + MX6QDL_PAD_CSI0_DAT9__EIM_DATA07 0x1b > 0b0 > + MX6QDL_PAD_CSI0_DAT12__EIM_DATA08 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT13__EIM_DATA09 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT14__EIM_DATA10 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT15__EIM_DATA11 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT16__EIM_DATA12 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT17__EIM_DATA13 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT18__EIM_DATA14 0x1 > b0b0 > + MX6QDL_PAD_CSI0_DAT19__EIM_DATA15 0x1 > b0b0 > + /* Address */ > + MX6QDL_PAD_EIM_DA15__EIM_AD15 > 0xb0b1 > + MX6QDL_PAD_EIM_DA14__EIM_AD14 > 0xb0b1 > + MX6QDL_PAD_EIM_DA13__EIM_AD13 > 0xb0b1 > + MX6QDL_PAD_EIM_DA12__EIM_AD12 > 0xb0b1 > + MX6QDL_PAD_EIM_DA11__EIM_AD11 > 0xb0b1 > + MX6QDL_PAD_EIM_DA10__EIM_AD10 > 0xb0b1 > + MX6QDL_PAD_EIM_DA9__EIM_AD09 > 0xb0b1 > + MX6QDL_PAD_EIM_DA8__EIM_AD08 > 0xb0b1 > + MX6QDL_PAD_EIM_DA7__EIM_AD07 > 0xb0b1 > + MX6QDL_PAD_EIM_DA6__EIM_AD06 > 0xb0b1 > + MX6QDL_PAD_EIM_DA5__EIM_AD05 > 0xb0b1 > + MX6QDL_PAD_EIM_DA4__EIM_AD04 > 0xb0b1 > + MX6QDL_PAD_EIM_DA3__EIM_AD03 > 0xb0b1 > + MX6QDL_PAD_EIM_DA2__EIM_AD02 > 0xb0b1 > + MX6QDL_PAD_EIM_DA1__EIM_AD01 > 0xb0b1 > + MX6QDL_PAD_EIM_DA0__EIM_AD00 > 0xb0b1 > + >; > + }; > + > + pinctrl_weim_rdnwr: weimrdnwr { > + fsl,pins = < > + MX6QDL_PAD_SD2_CLK__GPIO1_IO10 > 0x0040 > + MX6QDL_PAD_RGMII_TD3__GPIO6_IO23 0x13 > 0b0 > + >; > + }; > + > + pinctrl_weim_npwe: weimnpwe { > + fsl,pins = < > + MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 > 0x0040 > + MX6QDL_PAD_RGMII_TD2__GPIO6_IO22 0x13 > 0b0 > + >; > + }; > + > + /* ADDRESS[16:18] [25] used as GPIO */ > + pinctrl_weim_gpio_1: weimgpio-1 { > + fsl,pins = < > + MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 > 0x1b0b0 > + MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 > 0x1b0b0 > + MX6QDL_PAD_KEY_COL2__GPIO4_IO10 > 0x1b0b0 > + MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x > 1b0b0 > + MX6QDL_PAD_NANDF_D1__GPIO2_IO01 > 0x1b0b0 > + >; > + }; > + > + /* ADDRESS[19:24] used as GPIO */ > + pinctrl_weim_gpio_2: weimgpio-2 { > + fsl,pins = < > + MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 > 0x1b0b0 > + MX6QDL_PAD_KEY_COL2__GPIO4_IO10 > 0x1b0b0 > + MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x > 1b0b0 > + MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x > 1b0b0 > + MX6QDL_PAD_NANDF_D1__GPIO2_IO01 > 0x1b0b0 > + >; > + }; > + > + /* DATA[16:31] used as GPIO */ > + pinctrl_weim_gpio_3: weimgpio-3 { > + fsl,pins = < > + MX6QDL_PAD_EIM_LBA__GPIO2_IO27 > 0x1b0b0 > + MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 > 0x1b0b0 > + MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x1b > 0b0 > + MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x1b > 0b0 > + MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x1b > 0b0 > + MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x1b > 0b0 > + MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09 0x1 > b0b0 > + MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x1b > 0b0 > + MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x1b > 0b0 > + MX6QDL_PAD_GPIO_19__GPIO4_IO05 > 0x1b0b0 > + MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19 0x1b > 0b0 > + MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x > 1b0b0 > + MX6QDL_PAD_GPIO_4__GPIO1_IO04 > 0x1b0b0 > + MX6QDL_PAD_GPIO_5__GPIO1_IO05 > 0x1b0b0 > + MX6QDL_PAD_GPIO_2__GPIO1_IO02 > 0x1b0b0 > + >; > + }; > + > + /* DQM[0:3] used as GPIO */ > + pinctrl_weim_gpio_4: weimgpio-4 { > + fsl,pins = < > + MX6QDL_PAD_EIM_EB0__GPIO2_IO28 > 0x1b0b0 > + MX6QDL_PAD_EIM_EB1__GPIO2_IO29 > 0x1b0b0 > + MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 > 0x1b0b0 > + MX6QDL_PAD_NANDF_D0__GPIO2_IO00 > 0x1b0b0 > + >; > + }; > + > + /* RDY used as GPIO */ > + pinctrl_weim_gpio_5: weimgpio-5 { > + fsl,pins = < > + MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 > 0x1b0b0 > + >; > + }; > + > + /* ADDRESS[16] DATA[30] used as GPIO */ > + pinctrl_weim_gpio_6: weimgpio-6 { > + fsl,pins = < > + MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 > 0x1b0b0 > + MX6QDL_PAD_KEY_COL4__GPIO4_IO14 > 0x1b0b0 > + >; > + }; > +};