// SPDX-License-Identifier: GPL-2.0
/*
 * Device tree for the Tolino Shine 2 HD ebook reader
 *
 * Name on mainboard is: 37NB-E60QF0+4A2 or 37NB-E60QF0+4A3
 * Serials start with: E60QF2
 *
 * Copyright 2020 Andreas Kemnade
 */

/dts-v1/;

#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include "imx6sl.dtsi"

/ {
	model = "Tolino Shine 2 HD";
	compatible = "kobo,tolino-shine2hd", "fsl,imx6sl";

	backlight {
		compatible = "pwm-backlight";
		pwms = <&ec 0 50000>;
		power-supply = <&backlight_regulator>;
	};

	backlight_regulator: regulator-backlight {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_backlight_power>;
		regulator-name = "backlight";
		gpio = <&gpio2 10 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	chosen {
		stdout-path = &uart1;
	};

	gpio_keys: gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_gpio_keys>;

		key-cover {
			label = "Cover";
			gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
			linux,code = <SW_LID>;
			linux,input-type = <EV_SW>;
			wakeup-source;
		};

		key-fl {
			label = "Frontlight";
			gpios = <&gpio3 26 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_BRIGHTNESS_CYCLE>;
		};

		key-home {
			label = "Home";
			gpios = <&gpio3 25 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_HOME>;
		};

		key-power {
			label = "Power";
			gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_POWER>;
			wakeup-source;
		};
	};

	leds: leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_led>;

		led-0 {
			label = "tolinoshine2hd:white:on";
			gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "timer";
		};

		led-1 {
			label = "tolinoshine2hd:white:backlightboost";
			gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "off";
		};
	};

	memory@80000000 {
		device_type = "memory";
		reg = <0x80000000 0x20000000>;
	};

	reg_wifi: regulator-wifi {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_wifi_power>;
		regulator-name = "SD3_SPWR";
		regulator-min-microvolt = <3000000>;
		regulator-max-microvolt = <3000000>;
		gpio = <&gpio4 29 GPIO_ACTIVE_LOW>;
	};

	wifi_pwrseq: wifi_pwrseq {
		compatible = "mmc-pwrseq-simple";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_wifi_reset>;
		post-power-on-delay-ms = <20>;
		reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
	};
};

&i2c1 {
	pinctrl-names = "default","sleep";
	pinctrl-0 = <&pinctrl_i2c1>;
	pinctrl-1 = <&pinctrl_i2c1_sleep>;
	status = "okay";

	ec: embedded-controller@43 {
		compatible = "netronix,ntxec";
		reg = <0x43>;
		#pwm-cells = <2>;
	};
};

&i2c2 {
	pinctrl-names = "default","sleep";
	pinctrl-0 = <&pinctrl_i2c2>;
	pinctrl-1 = <&pinctrl_i2c2_sleep>;
	clock-frequency = <100000>;
	status = "okay";

	zforce: touchscreen@50 {
		compatible = "neonode,zforce";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_zforce>;
		reg = <0x50>;
		interrupt-parent = <&gpio5>;
		interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
		vdd-supply = <&ldo1_reg>;
		reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
		x-size = <1072>;
		y-size = <1448>;
	};

	/* TODO: TPS65185 PMIC for E Ink at 0x68 */

};

&i2c3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c3>;
	clock-frequency = <400000>;
	status = "okay";

	ricoh619: pmic@32 {
		compatible = "ricoh,rc5t619";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_ricoh_gpio>;
		reg = <0x32>;
		interrupt-parent = <&gpio5>;
		interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
		system-power-controller;

		regulators {
			dcdc1_reg: DCDC1 {
				regulator-name = "DCDC1";
				regulator-min-microvolt = <300000>;
				regulator-max-microvolt = <1875000>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-max-microvolt = <900000>;
					regulator-suspend-min-microvolt = <900000>;
				};
			};

			/* Core3_3V3 */
			dcdc2_reg: DCDC2 {
				regulator-name = "DCDC2";
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-max-microvolt = <3100000>;
					regulator-suspend-min-microvolt = <3100000>;
				};
			};

			dcdc3_reg: DCDC3 {
				regulator-name = "DCDC3";
				regulator-min-microvolt = <300000>;
				regulator-max-microvolt = <1875000>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-max-microvolt = <1140000>;
					regulator-suspend-min-microvolt = <1140000>;
				};
			};

			/* Core4_1V2 */
			dcdc4_reg: DCDC4 {
				regulator-name = "DCDC4";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-max-microvolt = <1140000>;
					regulator-suspend-min-microvolt = <1140000>;
				};
			};

			/* Core4_1V8 */
			dcdc5_reg: DCDC5 {
				regulator-name = "DCDC5";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-max-microvolt = <1700000>;
					regulator-suspend-min-microvolt = <1700000>;
				};
			};

			/* IR_3V3 */
			ldo1_reg: LDO1  {
				regulator-name = "LDO1";
				regulator-boot-on;
			};

			/* Core1_3V3 */
			ldo2_reg: LDO2  {
				regulator-name = "LDO2";
				regulator-always-on;
				regulator-boot-on;

				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-max-microvolt = <3000000>;
					regulator-suspend-min-microvolt = <3000000>;
				};
			};

			/* Core5_1V2 */
			ldo3_reg: LDO3  {
				regulator-name = "LDO3";
				regulator-always-on;
				regulator-boot-on;
			};

			ldo4_reg: LDO4 {
				regulator-name = "LDO4";
				regulator-boot-on;
			};

			/* SPD_3V3 */
			ldo5_reg: LDO5 {
				regulator-name = "LDO5";
				regulator-always-on;
				regulator-boot-on;
			};

			/* DDR_0V6 */
			ldo6_reg: LDO6 {
				regulator-name = "LDO6";
				regulator-always-on;
				regulator-boot-on;
			};

			/* VDD_PWM */
			ldo7_reg: LDO7 {
				regulator-name = "LDO7";
				regulator-always-on;
				regulator-boot-on;
			};

			/* ldo_1v8 */
			ldo8_reg: LDO8 {
				regulator-name = "LDO8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
			};

			ldo9_reg: LDO9 {
				regulator-name = "LDO9";
				regulator-boot-on;
			};

			ldo10_reg: LDO10 {
				regulator-name = "LDO10";
				regulator-boot-on;
			};

			ldortc1_reg: LDORTC1  {
				regulator-name = "LDORTC1";
				regulator-always-on;
				regulator-boot-on;
			};
		};
	};
};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_hog>;

	pinctrl_backlight_power: backlight-powergrp {
		fsl,pins = <
			MX6SL_PAD_EPDC_PWRCTRL3__GPIO2_IO10 0x10059
		>;
	};

	pinctrl_gpio_keys: gpio-keysgrp {
		fsl,pins = <
			MX6SL_PAD_SD1_DAT1__GPIO5_IO08  0x17059
			MX6SL_PAD_SD1_DAT4__GPIO5_IO12  0x17059
			MX6SL_PAD_KEY_COL1__GPIO3_IO26  0x17059
			MX6SL_PAD_KEY_ROW0__GPIO3_IO25  0x17059
		>;
	};

	pinctrl_hog: hoggrp {
		fsl,pins = <
			MX6SL_PAD_LCD_DAT0__GPIO2_IO20	0x79
			MX6SL_PAD_LCD_DAT1__GPIO2_IO21	0x79
			MX6SL_PAD_LCD_DAT2__GPIO2_IO22	0x79
			MX6SL_PAD_LCD_DAT3__GPIO2_IO23	0x79
			MX6SL_PAD_LCD_DAT4__GPIO2_IO24	0x79
			MX6SL_PAD_LCD_DAT5__GPIO2_IO25	0x79
			MX6SL_PAD_LCD_DAT6__GPIO2_IO26	0x79
			MX6SL_PAD_LCD_DAT7__GPIO2_IO27	0x79
			MX6SL_PAD_LCD_DAT8__GPIO2_IO28	0x79
			MX6SL_PAD_LCD_DAT9__GPIO2_IO29	0x79
			MX6SL_PAD_LCD_DAT10__GPIO2_IO30	0x79
			MX6SL_PAD_LCD_DAT11__GPIO2_IO31	0x79
			MX6SL_PAD_LCD_DAT12__GPIO3_IO00	0x79
			MX6SL_PAD_LCD_DAT13__GPIO3_IO01	0x79
			MX6SL_PAD_LCD_DAT14__GPIO3_IO02	0x79
			MX6SL_PAD_LCD_DAT15__GPIO3_IO03	0x79
			MX6SL_PAD_LCD_DAT16__GPIO3_IO04	0x79
			MX6SL_PAD_LCD_DAT17__GPIO3_IO05	0x79
			MX6SL_PAD_LCD_DAT18__GPIO3_IO06	0x79
			MX6SL_PAD_LCD_DAT19__GPIO3_IO07	0x79
			MX6SL_PAD_LCD_DAT20__GPIO3_IO08	0x79
			MX6SL_PAD_LCD_DAT21__GPIO3_IO09	0x79
			MX6SL_PAD_LCD_DAT22__GPIO3_IO10	0x79
			MX6SL_PAD_LCD_DAT23__GPIO3_IO11	0x79
			MX6SL_PAD_LCD_CLK__GPIO2_IO15		0x79
			MX6SL_PAD_LCD_ENABLE__GPIO2_IO16	0x79
			MX6SL_PAD_LCD_HSYNC__GPIO2_IO17	0x79
			MX6SL_PAD_LCD_VSYNC__GPIO2_IO18	0x79
			MX6SL_PAD_LCD_RESET__GPIO2_IO19	0x79
			MX6SL_PAD_KEY_COL3__GPIO3_IO30		0x79
			MX6SL_PAD_KEY_ROW7__GPIO4_IO07		0x79
			MX6SL_PAD_ECSPI2_MOSI__GPIO4_IO13	0x79
			MX6SL_PAD_KEY_COL5__GPIO4_IO02		0x79
		>;
	};

	pinctrl_i2c1: i2c1grp {
		fsl,pins = <
			MX6SL_PAD_I2C1_SCL__I2C1_SCL	 0x4001f8b1
			MX6SL_PAD_I2C1_SDA__I2C1_SDA	 0x4001f8b1
		>;
	};

	pinctrl_i2c1_sleep: i2c1grp-sleep {
		fsl,pins = <
			MX6SL_PAD_I2C1_SCL__I2C1_SCL	 0x400108b1
			MX6SL_PAD_I2C1_SDA__I2C1_SDA	 0x400108b1
		>;
	};

	pinctrl_i2c2: i2c2grp {
		fsl,pins = <
			MX6SL_PAD_I2C2_SCL__I2C2_SCL	 0x4001f8b1
			MX6SL_PAD_I2C2_SDA__I2C2_SDA	 0x4001f8b1
		>;
	};

	pinctrl_i2c2_sleep: i2c2grp-sleep {
		fsl,pins = <
			MX6SL_PAD_I2C2_SCL__I2C2_SCL	 0x400108b1
			MX6SL_PAD_I2C2_SDA__I2C2_SDA	 0x400108b1
		>;
	};

	pinctrl_i2c3: i2c3grp {
		fsl,pins = <
			MX6SL_PAD_REF_CLK_24M__I2C3_SCL  0x4001f8b1
			MX6SL_PAD_REF_CLK_32K__I2C3_SDA  0x4001f8b1
		>;
	};

	pinctrl_led: ledgrp {
		fsl,pins = <
			MX6SL_PAD_SD1_DAT2__GPIO5_IO13    0x17059
			MX6SL_PAD_EPDC_SDCE2__GPIO1_IO29  0x17059
		>;
	};

	pinctrl_ricoh_gpio: ricoh_gpiogrp {
		fsl,pins = <
			MX6SL_PAD_SD1_CLK__GPIO5_IO15	0x1b8b1 /* ricoh619 chg */
			MX6SL_PAD_SD1_DAT0__GPIO5_IO11	0x1b8b1 /* ricoh619 irq */
			MX6SL_PAD_KEY_COL2__GPIO3_IO28	0x1b8b1 /* ricoh619 bat_low_int */
		>;
	};

	pinctrl_uart1: uart1grp {
		fsl,pins = <
			MX6SL_PAD_UART1_TXD__UART1_TX_DATA 0x1b0b1
			MX6SL_PAD_UART1_RXD__UART1_RX_DATA 0x1b0b1
		>;
	};

	pinctrl_uart4: uart4grp {
		fsl,pins = <
			MX6SL_PAD_KEY_ROW6__UART4_TX_DATA 0x1b0b1
			MX6SL_PAD_KEY_COL6__UART4_RX_DATA 0x1b0b1
		>;
	};

	pinctrl_usbotg1: usbotg1grp {
		fsl,pins = <
			MX6SL_PAD_EPDC_PWRCOM__USB_OTG1_ID 0x17059
		>;
	};

	pinctrl_usdhc2: usdhc2grp {
		fsl,pins = <
			MX6SL_PAD_SD2_CMD__SD2_CMD		0x17059
			MX6SL_PAD_SD2_CLK__SD2_CLK		0x13059
			MX6SL_PAD_SD2_DAT0__SD2_DATA0		0x17059
			MX6SL_PAD_SD2_DAT1__SD2_DATA1		0x17059
			MX6SL_PAD_SD2_DAT2__SD2_DATA2		0x17059
			MX6SL_PAD_SD2_DAT3__SD2_DATA3		0x17059
		>;
	};

	pinctrl_usdhc2_100mhz: usdhc2grp-100mhz {
		fsl,pins = <
			MX6SL_PAD_SD2_CMD__SD2_CMD		0x170b9
			MX6SL_PAD_SD2_CLK__SD2_CLK		0x130b9
			MX6SL_PAD_SD2_DAT0__SD2_DATA0		0x170b9
			MX6SL_PAD_SD2_DAT1__SD2_DATA1		0x170b9
			MX6SL_PAD_SD2_DAT2__SD2_DATA2		0x170b9
			MX6SL_PAD_SD2_DAT3__SD2_DATA3		0x170b9
		>;
	};

	pinctrl_usdhc2_200mhz: usdhc2grp-200mhz {
		fsl,pins = <
			MX6SL_PAD_SD2_CMD__SD2_CMD		0x170f9
			MX6SL_PAD_SD2_CLK__SD2_CLK		0x130f9
			MX6SL_PAD_SD2_DAT0__SD2_DATA0		0x170f9
			MX6SL_PAD_SD2_DAT1__SD2_DATA1		0x170f9
			MX6SL_PAD_SD2_DAT2__SD2_DATA2		0x170f9
			MX6SL_PAD_SD2_DAT3__SD2_DATA3		0x170f9
		>;
	};

	pinctrl_usdhc2_sleep: usdhc2grp-sleep {
		fsl,pins = <
			MX6SL_PAD_SD2_CMD__GPIO5_IO04		0x100f9
			MX6SL_PAD_SD2_CLK__GPIO5_IO05		0x100f9
			MX6SL_PAD_SD2_DAT0__GPIO5_IO01		0x100f9
			MX6SL_PAD_SD2_DAT1__GPIO4_IO30		0x100f9
			MX6SL_PAD_SD2_DAT2__GPIO5_IO03		0x100f9
			MX6SL_PAD_SD2_DAT3__GPIO4_IO28		0x100f9
		>;
	};

	pinctrl_usdhc3: usdhc3grp {
		fsl,pins = <
			MX6SL_PAD_SD3_CMD__SD3_CMD	0x11059
			MX6SL_PAD_SD3_CLK__SD3_CLK	0x11059
			MX6SL_PAD_SD3_DAT0__SD3_DATA0	0x11059
			MX6SL_PAD_SD3_DAT1__SD3_DATA1	0x11059
			MX6SL_PAD_SD3_DAT2__SD3_DATA2	0x11059
			MX6SL_PAD_SD3_DAT3__SD3_DATA3	0x11059
		>;
	};

	pinctrl_usdhc3_100mhz: usdhc3grp-100mhz {
		fsl,pins = <
			MX6SL_PAD_SD3_CMD__SD3_CMD	0x170b9
			MX6SL_PAD_SD3_CLK__SD3_CLK	0x170b9
			MX6SL_PAD_SD3_DAT0__SD3_DATA0	0x170b9
			MX6SL_PAD_SD3_DAT1__SD3_DATA1	0x170b9
			MX6SL_PAD_SD3_DAT2__SD3_DATA2	0x170b9
			MX6SL_PAD_SD3_DAT3__SD3_DATA3	0x170b9
		>;
	};

	pinctrl_usdhc3_200mhz: usdhc3grp-200mhz {
		fsl,pins = <
			MX6SL_PAD_SD3_CMD__SD3_CMD	0x170f9
			MX6SL_PAD_SD3_CLK__SD3_CLK	0x170f9
			MX6SL_PAD_SD3_DAT0__SD3_DATA0	0x170f9
			MX6SL_PAD_SD3_DAT1__SD3_DATA1	0x170f9
			MX6SL_PAD_SD3_DAT2__SD3_DATA2	0x170f9
			MX6SL_PAD_SD3_DAT3__SD3_DATA3	0x170f9
		>;
	};

	pinctrl_usdhc3_sleep: usdhc3grp-sleep {
		fsl,pins = <
			MX6SL_PAD_SD3_CMD__GPIO5_IO21	0x100c1
			MX6SL_PAD_SD3_CLK__GPIO5_IO18	0x100c1
			MX6SL_PAD_SD3_DAT0__GPIO5_IO19	0x100c1
			MX6SL_PAD_SD3_DAT1__GPIO5_IO20	0x100c1
			MX6SL_PAD_SD3_DAT2__GPIO5_IO16	0x100c1
			MX6SL_PAD_SD3_DAT3__GPIO5_IO17	0x100c1
		>;
	};

	pinctrl_wifi_power: wifi-powergrp {
		fsl,pins = <
			MX6SL_PAD_SD2_DAT6__GPIO4_IO29	0x10059	/* WIFI_3V3_ON */
		>;
	};

	pinctrl_wifi_reset: wifi-resetgrp {
		fsl,pins = <
			MX6SL_PAD_SD2_DAT7__GPIO5_IO00	0x10059	/* WIFI_RST */
		>;
	};

	pinctrl_zforce: zforcegrp {
		fsl,pins = <
			MX6SL_PAD_SD1_DAT3__GPIO5_IO06		0x17059 /* TP_INT */
			MX6SL_PAD_SD1_DAT5__GPIO5_IO09		0x10059 /* TP_RST */
		>;
	};
};

&reg_vdd1p1 {
	vin-supply = <&dcdc2_reg>;
};

&reg_vdd2p5 {
	vin-supply = <&dcdc2_reg>;
};

&reg_arm {
	vin-supply = <&dcdc3_reg>;
};

&reg_soc {
	vin-supply = <&dcdc1_reg>;
};

&reg_pu {
	vin-supply = <&dcdc1_reg>;
};

&snvs_rtc {
	/*
	 * We are using the RTC in the PMIC, but this one is not disabled
	 * in imx6sl.dtsi.
	 */
	status = "disabled";
};

&uart1 {
	/* J4, through-holes */
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
	status = "okay";
};

&uart4 {
	/* TP198, next to J4, SMD pads */
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart4>;
	status = "okay";
};

&usdhc2 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
	pinctrl-0 = <&pinctrl_usdhc2>;
	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
	pinctrl-3 = <&pinctrl_usdhc2_sleep>;
	non-removable;
	status = "okay";

	/* internal uSD card */
};

&usdhc3 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
	pinctrl-0 = <&pinctrl_usdhc3>;
	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
	pinctrl-3 = <&pinctrl_usdhc3_sleep>;
	vmmc-supply = <&reg_wifi>;
	mmc-pwrseq = <&wifi_pwrseq>;
	cap-power-off-card;
	non-removable;
	status = "okay";

	/*
	 * 37NB-E60QF0+4A2: CyberTan WC121 (BCM43362) SDIO WiFi
	 * 37NB-E60QF0+4A3: RTL8189F SDIO WiFi
	 */
};

&usbotg1 {
	pinctrl-names = "default";
	disable-over-current;
	srp-disable;
	hnp-disable;
	adp-disable;
	status = "okay";
};
