1// SPDX-License-Identifier: GPL-2.0+ OR MIT 2/* 3 * Copyright 2014-2020 Toradex 4 * Copyright 2012 Freescale Semiconductor, Inc. 5 * Copyright 2011 Linaro Ltd. 6 */ 7 8/dts-v1/; 9 10#include <dt-bindings/input/input.h> 11#include <dt-bindings/interrupt-controller/irq.h> 12#include "imx6dl.dtsi" 13#include "imx6qdl-colibri.dtsi" 14 15/ { 16 model = "Toradex Colibri iMX6DL/S on Colibri Evaluation Board V3"; 17 compatible = "toradex,colibri_imx6dl-eval-v3", "toradex,colibri_imx6dl", 18 "fsl,imx6dl"; 19 20 /* Will be filled by the bootloader */ 21 memory@10000000 { 22 device_type = "memory"; 23 reg = <0x10000000 0>; 24 }; 25 26 aliases { 27 i2c0 = &i2c2; 28 i2c1 = &i2c3; 29 }; 30 31 aliases { 32 rtc0 = &rtc_i2c; 33 rtc1 = &snvs_rtc; 34 }; 35 36 chosen { 37 stdout-path = "serial0:115200n8"; 38 }; 39 40 /* Fixed crystal dedicated to mcp251x */ 41 clk16m: clock-16m { 42 compatible = "fixed-clock"; 43 #clock-cells = <0>; 44 clock-frequency = <16000000>; 45 clock-output-names = "clk16m"; 46 }; 47 48 gpio-keys { 49 compatible = "gpio-keys"; 50 pinctrl-names = "default"; 51 pinctrl-0 = <&pinctrl_gpio_keys>; 52 53 wakeup { 54 label = "Wake-Up"; 55 gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* SODIMM 45 */ 56 linux,code = <KEY_WAKEUP>; 57 debounce-interval = <10>; 58 wakeup-source; 59 }; 60 }; 61 62 lcd_display: disp0 { 63 compatible = "fsl,imx-parallel-display"; 64 #address-cells = <1>; 65 #size-cells = <0>; 66 interface-pix-fmt = "bgr666"; 67 pinctrl-names = "default"; 68 pinctrl-0 = <&pinctrl_ipu1_lcdif>; 69 status = "okay"; 70 71 port@0 { 72 reg = <0>; 73 74 lcd_display_in: endpoint { 75 remote-endpoint = <&ipu1_di0_disp0>; 76 }; 77 }; 78 79 port@1 { 80 reg = <1>; 81 82 lcd_display_out: endpoint { 83 remote-endpoint = <&lcd_panel_in>; 84 }; 85 }; 86 }; 87 88 panel: panel { 89 /* 90 * edt,et057090dhu: EDT 5.7" LCD TFT 91 * edt,et070080dh6: EDT 7.0" LCD TFT 92 */ 93 compatible = "edt,et057090dhu"; 94 backlight = <&backlight>; 95 96 port { 97 lcd_panel_in: endpoint { 98 remote-endpoint = <&lcd_display_out>; 99 }; 100 }; 101 }; 102}; 103 104&backlight { 105 brightness-levels = <0 127 191 223 239 247 251 255>; 106 default-brightness-level = <1>; 107 status = "okay"; 108}; 109 110/* Colibri SSP */ 111&ecspi4 { 112 status = "okay"; 113 114 mcp251x0: mcp251x@0 { 115 compatible = "microchip,mcp2515"; 116 reg = <0>; 117 clocks = <&clk16m>; 118 interrupt-parent = <&gpio3>; 119 interrupts = <27 0x2>; 120 spi-max-frequency = <10000000>; 121 status = "okay"; 122 }; 123}; 124 125&hdmi { 126 status = "okay"; 127}; 128 129/* 130 * Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board) 131 */ 132&i2c3 { 133 status = "okay"; 134 135 /* 136 * Touchscreen is using SODIMM 28/30, also used for PWM<B>, PWM<C>, 137 * aka pwm2, pwm3. so if you enable touchscreen, disable the pwms 138 */ 139 touchscreen@4a { 140 compatible = "atmel,maxtouch"; 141 pinctrl-names = "default"; 142 pinctrl-0 = <&pinctrl_pcap_1>; 143 reg = <0x4a>; 144 interrupt-parent = <&gpio1>; 145 interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 28 */ 146 reset-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>; /* SODIMM 30 */ 147 status = "disabled"; 148 }; 149 150 /* M41T0M6 real time clock on carrier board */ 151 rtc_i2c: rtc@68 { 152 compatible = "st,m41t0"; 153 reg = <0x68>; 154 }; 155}; 156 157&iomuxc { 158 pinctrl-names = "default"; 159 pinctrl-0 = < 160 &pinctrl_weim_gpio_1 &pinctrl_weim_gpio_2 161 &pinctrl_weim_gpio_3 &pinctrl_weim_gpio_4 162 &pinctrl_weim_gpio_5 &pinctrl_weim_gpio_6 163 &pinctrl_usbh_oc_1 &pinctrl_usbc_id_1 164 >; 165 166 pinctrl_pcap_1: pcap1grp { 167 fsl,pins = < 168 MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x1b0b0 /* SODIMM 28 */ 169 MX6QDL_PAD_SD4_DAT2__GPIO2_IO10 0x1b0b0 /* SODIMM 30 */ 170 >; 171 }; 172 173 pinctrl_mxt_ts: mxttsgrp { 174 fsl,pins = < 175 MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x130b0 /* SODIMM 107 */ 176 MX6QDL_PAD_SD2_DAT1__GPIO1_IO14 0x130b0 /* SODIMM 106 */ 177 >; 178 }; 179}; 180 181&ipu1_di0_disp0 { 182 remote-endpoint = <&lcd_display_in>; 183}; 184 185&pwm1 { 186 status = "okay"; 187}; 188 189&pwm2 { 190 status = "okay"; 191}; 192 193&pwm3 { 194 status = "okay"; 195}; 196 197&pwm4 { 198 status = "okay"; 199}; 200 201®_usb_host_vbus { 202 status = "okay"; 203}; 204 205&uart1 { 206 status = "okay"; 207}; 208 209&uart2 { 210 status = "okay"; 211}; 212 213&uart3 { 214 status = "okay"; 215}; 216 217&usbh1 { 218 vbus-supply = <®_usb_host_vbus>; 219 status = "okay"; 220}; 221 222&usbotg { 223 status = "okay"; 224}; 225 226/* Colibri MMC */ 227&usdhc1 { 228 status = "okay"; 229}; 230 231&weim { 232 status = "okay"; 233 234 /* weim memory map: 32MB on CS0, CS1, CS2 and CS3 */ 235 ranges = <0 0 0x08000000 0x02000000 236 1 0 0x0a000000 0x02000000 237 2 0 0x0c000000 0x02000000 238 3 0 0x0e000000 0x02000000>; 239 240 /* SRAM on Colibri nEXT_CS0 */ 241 sram@0,0 { 242 compatible = "cypress,cy7c1019dv33-10zsxi", "mtd-ram"; 243 reg = <0 0 0x00010000>; 244 #address-cells = <1>; 245 #size-cells = <1>; 246 bank-width = <2>; 247 fsl,weim-cs-timing = <0x00010081 0x00000000 0x04000000 248 0x00000000 0x04000040 0x00000000>; 249 }; 250 251 /* SRAM on Colibri nEXT_CS1 */ 252 sram@1,0 { 253 compatible = "cypress,cy7c1019dv33-10zsxi", "mtd-ram"; 254 reg = <1 0 0x00010000>; 255 #address-cells = <1>; 256 #size-cells = <1>; 257 bank-width = <2>; 258 fsl,weim-cs-timing = <0x00010081 0x00000000 0x04000000 259 0x00000000 0x04000040 0x00000000>; 260 }; 261}; 262