1724ba675SRob Herring/* 2724ba675SRob Herring * Copyright 2013 CompuLab Ltd. 3724ba675SRob Herring * Copyright 2016 Christopher Spinrath 4724ba675SRob Herring * 5724ba675SRob Herring * Based on the devicetree distributed with the vendor kernel for the 6724ba675SRob Herring * Utilite Pro: 7724ba675SRob Herring * Copyright 2013 CompuLab Ltd. 8724ba675SRob Herring * Author: Valentin Raevsky <valentin@compulab.co.il> 9724ba675SRob Herring * 10724ba675SRob Herring * This file is dual-licensed: you can use it either under the terms 11724ba675SRob Herring * of the GPL or the X11 license, at your option. Note that this dual 12724ba675SRob Herring * licensing only applies to this file, and not this project as a 13724ba675SRob Herring * whole. 14724ba675SRob Herring * 15724ba675SRob Herring * a) This file is free software; you can redistribute it and/or 16724ba675SRob Herring * modify it under the terms of the GNU General Public License as 17724ba675SRob Herring * published by the Free Software Foundation; either version 2 of the 18724ba675SRob Herring * License, or (at your option) any later version. 19724ba675SRob Herring * 20724ba675SRob Herring * This file is distributed in the hope that it will be useful, 21724ba675SRob Herring * but WITHOUT ANY WARRANTY; without even the implied warranty of 22724ba675SRob Herring * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23724ba675SRob Herring * GNU General Public License for more details. 24724ba675SRob Herring * 25724ba675SRob Herring * Or, alternatively, 26724ba675SRob Herring * 27724ba675SRob Herring * b) Permission is hereby granted, free of charge, to any person 28724ba675SRob Herring * obtaining a copy of this software and associated documentation 29724ba675SRob Herring * files (the "Software"), to deal in the Software without 30724ba675SRob Herring * restriction, including without limitation the rights to use, 31724ba675SRob Herring * copy, modify, merge, publish, distribute, sublicense, and/or 32724ba675SRob Herring * sell copies of the Software, and to permit persons to whom the 33724ba675SRob Herring * Software is furnished to do so, subject to the following 34724ba675SRob Herring * conditions: 35724ba675SRob Herring * 36724ba675SRob Herring * The above copyright notice and this permission notice shall be 37724ba675SRob Herring * included in all copies or substantial portions of the Software. 38724ba675SRob Herring * 39724ba675SRob Herring * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 40724ba675SRob Herring * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 41724ba675SRob Herring * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 42724ba675SRob Herring * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 43724ba675SRob Herring * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 44724ba675SRob Herring * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 45724ba675SRob Herring * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 46724ba675SRob Herring * OTHER DEALINGS IN THE SOFTWARE. 47724ba675SRob Herring */ 48724ba675SRob Herring 49724ba675SRob Herring#include <dt-bindings/input/input.h> 50724ba675SRob Herring#include "imx6q-cm-fx6.dts" 51724ba675SRob Herring 52724ba675SRob Herring/ { 53724ba675SRob Herring model = "CompuLab Utilite Pro"; 54724ba675SRob Herring compatible = "compulab,utilite-pro", "compulab,cm-fx6", "fsl,imx6q"; 55724ba675SRob Herring 56724ba675SRob Herring aliases { 57724ba675SRob Herring ethernet1 = ð1; 58724ba675SRob Herring rtc0 = &em3027; 59724ba675SRob Herring rtc1 = &snvs_rtc; 60724ba675SRob Herring }; 61724ba675SRob Herring 62724ba675SRob Herring encoder { 63724ba675SRob Herring compatible = "ti,tfp410"; 64724ba675SRob Herring 65724ba675SRob Herring ports { 66724ba675SRob Herring #address-cells = <1>; 67724ba675SRob Herring #size-cells = <0>; 68724ba675SRob Herring 69724ba675SRob Herring port@0 { 70724ba675SRob Herring reg = <0>; 71724ba675SRob Herring 72724ba675SRob Herring tfp410_in: endpoint { 73724ba675SRob Herring remote-endpoint = <¶llel_display_out>; 74724ba675SRob Herring }; 75724ba675SRob Herring }; 76724ba675SRob Herring 77724ba675SRob Herring port@1 { 78724ba675SRob Herring reg = <1>; 79724ba675SRob Herring 80724ba675SRob Herring tfp410_out: endpoint { 81724ba675SRob Herring remote-endpoint = <&hdmi_connector_in>; 82724ba675SRob Herring }; 83724ba675SRob Herring }; 84724ba675SRob Herring }; 85724ba675SRob Herring }; 86724ba675SRob Herring 87724ba675SRob Herring gpio-keys { 88724ba675SRob Herring compatible = "gpio-keys"; 89724ba675SRob Herring pinctrl-names = "default"; 90724ba675SRob Herring pinctrl-0 = <&pinctrl_gpio_keys>; 91724ba675SRob Herring 92724ba675SRob Herring key-power { 93724ba675SRob Herring label = "Power Button"; 94724ba675SRob Herring gpios = <&gpio1 29 GPIO_ACTIVE_LOW>; 95724ba675SRob Herring linux,code = <KEY_POWER>; 96724ba675SRob Herring wakeup-source; 97724ba675SRob Herring }; 98724ba675SRob Herring }; 99724ba675SRob Herring 100724ba675SRob Herring hdmi-connector { 101724ba675SRob Herring compatible = "hdmi-connector"; 102724ba675SRob Herring pinctrl-names = "default"; 103724ba675SRob Herring pinctrl-0 = <&pinctrl_hpd>; 104724ba675SRob Herring type = "a"; 105724ba675SRob Herring ddc-i2c-bus = <&i2c_dvi_ddc>; 106724ba675SRob Herring hpd-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; 107724ba675SRob Herring 108724ba675SRob Herring port { 109724ba675SRob Herring hdmi_connector_in: endpoint { 110724ba675SRob Herring remote-endpoint = <&tfp410_out>; 111724ba675SRob Herring }; 112724ba675SRob Herring }; 113724ba675SRob Herring }; 114724ba675SRob Herring 115724ba675SRob Herring i2cmux { 116724ba675SRob Herring compatible = "i2c-mux-gpio"; 117724ba675SRob Herring pinctrl-names = "default"; 118724ba675SRob Herring pinctrl-0 = <&pinctrl_i2c1mux>; 119724ba675SRob Herring #address-cells = <1>; 120724ba675SRob Herring #size-cells = <0>; 121724ba675SRob Herring 122724ba675SRob Herring mux-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; 123724ba675SRob Herring i2c-parent = <&i2c1>; 124724ba675SRob Herring 125724ba675SRob Herring i2c@0 { 126724ba675SRob Herring reg = <0>; 127724ba675SRob Herring #address-cells = <1>; 128724ba675SRob Herring #size-cells = <0>; 129724ba675SRob Herring 130724ba675SRob Herring eeprom@50 { 131724ba675SRob Herring compatible = "atmel,24c02"; 132724ba675SRob Herring reg = <0x50>; 133724ba675SRob Herring pagesize = <16>; 134724ba675SRob Herring }; 135724ba675SRob Herring 136724ba675SRob Herring em3027: rtc@56 { 137724ba675SRob Herring compatible = "emmicro,em3027"; 138724ba675SRob Herring reg = <0x56>; 139724ba675SRob Herring }; 140724ba675SRob Herring }; 141724ba675SRob Herring 142724ba675SRob Herring i2c_dvi_ddc: i2c@1 { 143724ba675SRob Herring reg = <1>; 144724ba675SRob Herring #address-cells = <1>; 145724ba675SRob Herring #size-cells = <0>; 146724ba675SRob Herring }; 147724ba675SRob Herring }; 148724ba675SRob Herring 149724ba675SRob Herring parallel-display { 150724ba675SRob Herring compatible = "fsl,imx-parallel-display"; 151724ba675SRob Herring #address-cells = <1>; 152724ba675SRob Herring #size-cells = <0>; 153724ba675SRob Herring pinctrl-names = "default"; 154724ba675SRob Herring pinctrl-0 = <&pinctrl_ipu1>; 155724ba675SRob Herring 156724ba675SRob Herring interface-pix-fmt = "rgb24"; 157724ba675SRob Herring 158724ba675SRob Herring port@0 { 159724ba675SRob Herring reg = <0>; 160724ba675SRob Herring 161724ba675SRob Herring parallel_display_in: endpoint { 162724ba675SRob Herring remote-endpoint = <&ipu1_di0_disp0>; 163724ba675SRob Herring }; 164724ba675SRob Herring }; 165724ba675SRob Herring 166724ba675SRob Herring port@1 { 167724ba675SRob Herring reg = <1>; 168724ba675SRob Herring 169724ba675SRob Herring parallel_display_out: endpoint { 170724ba675SRob Herring remote-endpoint = <&tfp410_in>; 171724ba675SRob Herring }; 172724ba675SRob Herring }; 173724ba675SRob Herring }; 174724ba675SRob Herring}; 175724ba675SRob Herring 176724ba675SRob Herring/* 177724ba675SRob Herring * A single IPU is not able to drive both display interfaces available on the 178724ba675SRob Herring * Utilite Pro at high resolution due to its bandwidth limitation. Since the 179724ba675SRob Herring * tfp410 encoder is wired up to IPU1, sever the link between IPU1 and the 180724ba675SRob Herring * SoC-internal Designware HDMI encoder forcing the latter to be connected to 181724ba675SRob Herring * IPU2 instead of IPU1. 182724ba675SRob Herring */ 183724ba675SRob Herring/delete-node/&ipu1_di0_hdmi; 184724ba675SRob Herring/delete-node/&hdmi_mux_0; 185724ba675SRob Herring/delete-node/&ipu1_di1_hdmi; 186724ba675SRob Herring/delete-node/&hdmi_mux_1; 187724ba675SRob Herring 188724ba675SRob Herring&hdmi { 189724ba675SRob Herring pinctrl-names = "default"; 190724ba675SRob Herring pinctrl-0 = <&pinctrl_hdmicec>; 191724ba675SRob Herring ddc-i2c-bus = <&i2c2>; 192724ba675SRob Herring status = "okay"; 193724ba675SRob Herring}; 194724ba675SRob Herring 195724ba675SRob Herring&i2c1 { 196724ba675SRob Herring pinctrl-names = "default"; 197724ba675SRob Herring pinctrl-0 = <&pinctrl_i2c1>; 198724ba675SRob Herring status = "okay"; 199724ba675SRob Herring}; 200724ba675SRob Herring 201724ba675SRob Herring&i2c2 { 202724ba675SRob Herring pinctrl-names = "default"; 203724ba675SRob Herring pinctrl-0 = <&pinctrl_i2c2>; 204724ba675SRob Herring status = "okay"; 205724ba675SRob Herring}; 206724ba675SRob Herring 207724ba675SRob Herring&iomuxc { 208724ba675SRob Herring pinctrl_gpio_keys: gpio_keysgrp { 209724ba675SRob Herring fsl,pins = < 210724ba675SRob Herring MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 211724ba675SRob Herring >; 212724ba675SRob Herring }; 213724ba675SRob Herring 214724ba675SRob Herring pinctrl_hdmicec: hdmicecgrp { 215724ba675SRob Herring fsl,pins = < 216724ba675SRob Herring MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0 217724ba675SRob Herring >; 218724ba675SRob Herring }; 219724ba675SRob Herring 220724ba675SRob Herring pinctrl_hpd: hpdgrp { 221724ba675SRob Herring fsl,pins = < 222724ba675SRob Herring MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0 223724ba675SRob Herring >; 224724ba675SRob Herring }; 225724ba675SRob Herring 226724ba675SRob Herring pinctrl_i2c1: i2c1grp { 227724ba675SRob Herring fsl,pins = < 228724ba675SRob Herring MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 229724ba675SRob Herring MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 230724ba675SRob Herring >; 231724ba675SRob Herring }; 232724ba675SRob Herring 233724ba675SRob Herring pinctrl_i2c1mux: i2c1muxgrp { 234724ba675SRob Herring fsl,pins = < 235724ba675SRob Herring MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0 236724ba675SRob Herring >; 237724ba675SRob Herring }; 238724ba675SRob Herring 239724ba675SRob Herring pinctrl_i2c2: i2c2grp { 240724ba675SRob Herring fsl,pins = < 241724ba675SRob Herring MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 242724ba675SRob Herring MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 243724ba675SRob Herring >; 244724ba675SRob Herring }; 245724ba675SRob Herring 246724ba675SRob Herring pinctrl_ipu1: ipu1grp { 247724ba675SRob Herring fsl,pins = < 248724ba675SRob Herring MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x38 249724ba675SRob Herring MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x38 250724ba675SRob Herring MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x38 251724ba675SRob Herring MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x38 252724ba675SRob Herring MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x38 253724ba675SRob Herring MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x38 254724ba675SRob Herring MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x38 255724ba675SRob Herring MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x38 256724ba675SRob Herring MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x38 257724ba675SRob Herring MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x38 258724ba675SRob Herring MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x38 259724ba675SRob Herring MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x38 260724ba675SRob Herring MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x38 261724ba675SRob Herring MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x38 262724ba675SRob Herring MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x38 263724ba675SRob Herring MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x38 264724ba675SRob Herring MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x38 265724ba675SRob Herring MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x38 266724ba675SRob Herring MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x38 267724ba675SRob Herring MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x38 268724ba675SRob Herring MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x38 269724ba675SRob Herring MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x38 270724ba675SRob Herring MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x38 271724ba675SRob Herring MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x38 272724ba675SRob Herring MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x38 273724ba675SRob Herring MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x38 274724ba675SRob Herring MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x38 275724ba675SRob Herring MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x38 276724ba675SRob Herring >; 277724ba675SRob Herring }; 278724ba675SRob Herring 279724ba675SRob Herring pinctrl_uart2: uart2grp { 280724ba675SRob Herring fsl,pins = < 281724ba675SRob Herring MX6QDL_PAD_GPIO_7__UART2_TX_DATA 0x1b0b1 282724ba675SRob Herring MX6QDL_PAD_GPIO_8__UART2_RX_DATA 0x1b0b1 283724ba675SRob Herring MX6QDL_PAD_SD4_DAT5__UART2_RTS_B 0x1b0b1 284724ba675SRob Herring MX6QDL_PAD_SD4_DAT6__UART2_CTS_B 0x1b0b1 285724ba675SRob Herring >; 286724ba675SRob Herring }; 287724ba675SRob Herring 288724ba675SRob Herring pinctrl_usdhc3: usdhc3grp { 289724ba675SRob Herring fsl,pins = < 290724ba675SRob Herring MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 291724ba675SRob Herring MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 292724ba675SRob Herring MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 293724ba675SRob Herring MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 294724ba675SRob Herring MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 295724ba675SRob Herring MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 296724ba675SRob Herring >; 297724ba675SRob Herring }; 298724ba675SRob Herring 299*47208272SMarek Vasut pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp { 300724ba675SRob Herring fsl,pins = < 301724ba675SRob Herring MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170B9 302724ba675SRob Herring MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100B9 303724ba675SRob Herring MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170B9 304724ba675SRob Herring MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170B9 305724ba675SRob Herring MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170B9 306724ba675SRob Herring MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170B9 307724ba675SRob Herring >; 308724ba675SRob Herring }; 309724ba675SRob Herring 310*47208272SMarek Vasut pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp { 311724ba675SRob Herring fsl,pins = < 312724ba675SRob Herring MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170F9 313724ba675SRob Herring MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100F9 314724ba675SRob Herring MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170F9 315724ba675SRob Herring MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170F9 316724ba675SRob Herring MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170F9 317724ba675SRob Herring MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170F9 318724ba675SRob Herring >; 319724ba675SRob Herring }; 320724ba675SRob Herring}; 321724ba675SRob Herring 322724ba675SRob Herring&ipu1_di0_disp0 { 323724ba675SRob Herring remote-endpoint = <¶llel_display_in>; 324724ba675SRob Herring}; 325724ba675SRob Herring 326724ba675SRob Herring&pcie { 327724ba675SRob Herring pcie@0,0 { 328724ba675SRob Herring reg = <0x000000 0 0 0 0>; 329724ba675SRob Herring #address-cells = <3>; 330724ba675SRob Herring #size-cells = <2>; 331724ba675SRob Herring 332724ba675SRob Herring /* non-removable i211 ethernet card */ 333724ba675SRob Herring eth1: intel,i211@pcie0,0 { 334724ba675SRob Herring reg = <0x010000 0 0 0 0>; 335724ba675SRob Herring }; 336724ba675SRob Herring }; 337724ba675SRob Herring}; 338724ba675SRob Herring 339724ba675SRob Herring&uart2 { 340724ba675SRob Herring pinctrl-names = "default"; 341724ba675SRob Herring pinctrl-0 = <&pinctrl_uart2>; 342724ba675SRob Herring uart-has-rtscts; 343724ba675SRob Herring status = "okay"; 344724ba675SRob Herring}; 345724ba675SRob Herring 346724ba675SRob Herring&usdhc3 { 347724ba675SRob Herring pinctrl-names = "default", "state_100mhz", "state_200mhz"; 348724ba675SRob Herring pinctrl-0 = <&pinctrl_usdhc3>; 349724ba675SRob Herring pinctrl-1 = <&pinctrl_usdhc3_100mhz>; 350724ba675SRob Herring pinctrl-2 = <&pinctrl_usdhc3_200mhz>; 351724ba675SRob Herring no-1-8-v; 352724ba675SRob Herring broken-cd; 353724ba675SRob Herring keep-power-in-suspend; 354724ba675SRob Herring status = "okay"; 355724ba675SRob Herring}; 356