/*
 * Copyright 2014 Lothar Waßmann <LW@KARO-electronics.de>
 *
 * Copyright 2015 Freescale Semiconductor, Inc. All Rights Reserved.
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/dts-v1/;
#include "imx6q.dtsi"
#include "imx6qdl-tx6.dtsi"

/ {
	model = "Ka-Ro electronics TX6Q-1020 Module";
	compatible = "karo,imx6q-tx6q", "fsl,imx6q";

	backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
		power-supply = <&reg_3v3>;
		/*
		 * a poor man's way to create a 1:1 relationship between
		 * the PWM value and the actual duty cycle
		 */
		brightness-levels = < 0  1  2  3  4  5  6  7  8  9
				     10 11 12 13 14 15 16 17 18 19
				     20 21 22 23 24 25 26 27 28 29
				     30 31 32 33 34 35 36 37 38 39
				     40 41 42 43 44 45 46 47 48 49
				     50 51 52 53 54 55 56 57 58 59
				     60 61 62 63 64 65 66 67 68 69
				     70 71 72 73 74 75 76 77 78 79
				     80 81 82 83 84 85 86 87 88 89
				     90 91 92 93 94 95 96 97 98 99
				    100>;
		default-brightness-level = <50>;
	};

	lcd@0 {
		compatible = "fsl,lcd";
		ipu_id = <0>;
		disp_id = <0>;
		default_ifmt = "RGB565";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_disp0_1>;
		status = "okay";
	};
};

&ds1339 {
	status = "disabled";
};

&gpmi {
	status = "disabled";
};

&iomuxc {
	imx6qdl-tx6 {
		pinctrl_usdhc4: usdhc4grp {
			fsl,pins = <
				MX6QDL_PAD_SD4_CMD__SD4_CMD		0x070b1
				MX6QDL_PAD_SD4_CLK__SD4_CLK		0x070b1
				MX6QDL_PAD_SD4_DAT0__SD4_DATA0		0x070b1
				MX6QDL_PAD_SD4_DAT1__SD4_DATA1		0x070b1
				MX6QDL_PAD_SD4_DAT2__SD4_DATA2		0x070b1
				MX6QDL_PAD_SD4_DAT3__SD4_DATA3		0x070b1
				MX6QDL_PAD_NANDF_ALE__SD4_RESET		0x0b0b1
			>;
		};
	};
};

&usdhc4 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc4>;
	bus-width = <4>;
	no-1-8-v;
	fsl,wp-controller;
	status = "okay";
};
