// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (C) 2015 Freescale Semiconductor, Inc.
 * Copyright (C) 2019 reMarkable AS - http://www.remarkable.com/
 *
 */

/dts-v1/;

#include "imx7d.dtsi"
#include <dt-bindings/input/linux-event-codes.h>

/ {
	model = "reMarkable 2.0";
	compatible = "remarkable,imx7d-remarkable2", "fsl,imx7d";

	chosen {
		stdout-path = &uart6;
	};

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

	thermal-zones {
		epd-thermal {
			thermal-sensors = <&sy7636a>;
			polling-delay-passive = <30000>;
			polling-delay = <30000>;

			trips {
				trip0 {
					temperature = <49000>;
					hysteresis = <2000>;
					type = "passive";
				};

				trip1 {
					temperature = <50000>;
					hysteresis = <2000>;
					type = "critical";
				};
			};
		};
	};

	reg_brcm: regulator-brcm {
		compatible = "regulator-fixed";
		regulator-name = "brcm_reg";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_brcm_reg>;
		gpio = <&gpio6 13 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		startup-delay-us = <150>;
	};

	reg_digitizer: regulator-digitizer {
		compatible = "regulator-fixed";
		regulator-name = "VDD_3V3_DIGITIZER";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&pinctrl_digitizer_reg>;
		pinctrl-1 = <&pinctrl_digitizer_reg>;
		gpio = <&gpio1 6 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		startup-delay-us = <100000>; /* 100 ms */
	};

	reg_touch: regulator-touch {
		compatible = "regulator-fixed";
		regulator-name = "VDD_3V3_TOUCH";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_touch_reg>;
		gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	wifi_pwrseq: wifi_pwrseq {
		compatible = "mmc-pwrseq-simple";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_wifi>;
		reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
		clocks = <&clks IMX7D_CLKO2_ROOT_DIV>;
		clock-names = "ext_clock";
	};
};

&cpu0 {
	cpu-supply = <&buck1>;
};

&clks {
	assigned-clocks = <&clks IMX7D_CLKO2_ROOT_SRC>,
			  <&clks IMX7D_CLKO2_ROOT_DIV>;
	assigned-clock-parents = <&clks IMX7D_CKIL>;
	assigned-clock-rates = <0>, <32768>;
};

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

	wacom_digitizer: digitizer@9 {
		compatible = "hid-over-i2c";
		reg = <0x09>;
		hid-descr-addr = <0x01>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_wacom>;
		interrupt-parent = <&gpio1>;
		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
		touchscreen-inverted-x;
		touchscreen-inverted-y;
		vdd-supply = <&reg_digitizer>;
	};
};

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

	bd71815: pmic@4b {
		compatible = "rohm,bd71815";
		reg = <0x4b>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_bd71815>;
		interrupt-parent = <&gpio6>; /* PMIC_INT_B GPIO6_IO16 */
		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
		gpio-controller;
		clocks = <&clks IMX7D_CLKO2_ROOT_SRC>;
		clock-output-names = "bd71815-32k-out";
		#clock-cells = <0>;
		#gpio-cells = <2>;

		regulators {
			buck1: buck1 {
				regulator-name = "buck1";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <2000000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <1250>;
			};

			buck2: buck2 {
				regulator-name = "buck2";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <2000000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <1250>;
			};

			buck3: buck3 {
				regulator-name = "buck3";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <2700000>;
				regulator-boot-on;
				regulator-always-on;
			};

			buck4: buck4 {
				regulator-name = "buck4";
				regulator-min-microvolt = <1100000>;
				regulator-max-microvolt = <1850000>;
				regulator-boot-on;
				regulator-always-on;
			};

			buck5: buck5 {
				regulator-name = "buck5";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo1: ldo1 {
				regulator-name = "ldo1";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo2: ldo2 {
				regulator-name = "ldo2";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo3: ldo3 {
				regulator-name = "ldo3";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo4: ldo4 {
				regulator-name = "ldo4";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo5: ldo5 {
				regulator-name = "ldo5";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo6: ldodvref {
				regulator-name = "ldodvref";
				regulator-boot-on;
				regulator-always-on;
			};

			ldo7: ldolpsr {
				regulator-name = "ldolpsr";
				regulator-boot-on;
				regulator-always-on;
			};

			boost: wled {
				regulator-name = "wled";
				regulator-min-microamp = <10>;
				regulator-max-microamp = <25000>;
				regulator-boot-on;
				regulator-always-on;
			};
		};
	};
};

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

	touchscreen@24 {
		compatible = "cypress,tt21000";
		reg = <0x24>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_touch>;
		interrupt-parent = <&gpio1>;
		interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
		reset-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
		vdd-supply = <&reg_touch>;
		touchscreen-size-x = <880>;
		touchscreen-size-y = <1280>;
		#address-cells = <1>;
		#size-cells = <0>;

		button@0 {
			reg = <0>;
			linux,keycodes = <KEY_HOMEPAGE>;
		};

		button@1 {
			reg = <1>;
			linux,keycodes = <KEY_MENU>;
		};

		button@2 {
			reg = <2>;
			linux,keycodes = <KEY_BACK>;
		};

		button@3 {
			reg = <3>;
			linux,keycodes = <KEY_SEARCH>;
		};

		button@4 {
			reg = <4>;
			linux,keycodes = <KEY_VOLUMEDOWN>;
		};

		button@5 {
			reg = <5>;
			linux,keycodes = <KEY_VOLUMEUP>;
		};

		button@6 {
			reg = <6>;
			linux,keycodes = <KEY_CAMERA>;
		};

		button@7 {
			reg = <7>;
			linux,keycodes = <KEY_POWER>;
		};
	};
};

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

	sy7636a: pmic@62 {
		compatible = "silergy,sy7636a";
		reg = <0x62>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_epdpmic>;
		#thermal-sensor-cells = <0>;
		epd-pwr-good-gpios = <&gpio6 21 GPIO_ACTIVE_HIGH>;

		regulators {
			reg_epdpmic: vcom {
				regulator-name = "vcom";
				regulator-boot-on;
			};
		};
	};
};

&snvs_pwrkey {
	status = "okay";
};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
	assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
	assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
	status = "okay";
};

&uart6 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart6>;
	assigned-clocks = <&clks IMX7D_UART6_ROOT_SRC>;
	assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
	status = "okay";
};

&usbotg2 {
	srp-disable;
	hnp-disable;
	status = "okay";
};

&usdhc2 {
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
	pinctrl-0 = <&pinctrl_usdhc2>;
	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
	mmc-pwrseq = <&wifi_pwrseq>;
	vmmc-supply = <&reg_brcm>;
	bus-width = <4>;
	non-removable;
	keep-power-in-suspend;
	cap-power-off-card;
	status = "okay";

	brcmf: bcrmf@1 {
		reg = <1>;
		compatible = "brcm,bcm4329-fmac";
	};
};

&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>;
	assigned-clocks = <&clks IMX7D_USDHC3_ROOT_CLK>;
	assigned-clock-rates = <400000000>;
	bus-width = <8>;
	non-removable;
	status = "okay";
};

&wdog1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_wdog>;
	fsl,ext-reset-output;
};

&iomuxc_lpsr {
	pinctrl_digitizer_reg: digitizerreggrp {
		fsl,pins = <
			/* DIGITIZER_PWR_EN */
			MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6	0x14
		>;
	};

	pinctrl_wacom: wacomgrp {
		fsl,pins = <
			/*MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5	0x00000014 FWE */
			MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4	0x00000074 /* PDCTB */
			MX7D_PAD_LPSR_GPIO1_IO01__GPIO1_IO1	0x00000034 /* WACOM INT */
			/*MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6	0x00000014 WACOM PWR ENABLE */
			/*MX7D_PAD_LPSR_GPIO1_IO00__GPIO1_IO0	0x00000074 WACOM RESET */
		>;
	};
};

&iomuxc {
	pinctrl_bd71815: bd71815grp {
		fsl,pins = <
			MX7D_PAD_SAI1_RX_SYNC__GPIO6_IO16	0x59
		>;
	};

	pinctrl_brcm_reg: brcmreggrp {
		fsl,pins = <
			/* WIFI_PWR_EN */
			MX7D_PAD_SAI1_TX_BCLK__GPIO6_IO13	0x14
		>;
	};

	pinctrl_epdpmic: epdpmicgrp {
		fsl,pins = <
			MX7D_PAD_SAI2_RX_DATA__GPIO6_IO21	0x00000074
			MX7D_PAD_ENET1_RGMII_TXC__GPIO7_IO11	0x00000014
		>;
	};

	pinctrl_touch: touchgrp {
		fsl,pins = <
			/* CYTTSP interrupt */
			MX7D_PAD_GPIO1_IO14__GPIO1_IO14		0x54
			/* CYTTSP reset */
			MX7D_PAD_GPIO1_IO13__GPIO1_IO13		0x04
		>;
	};

	pinctrl_i2c1: i2c1grp {
		fsl,pins = <
			MX7D_PAD_I2C1_SDA__I2C1_SDA		0x4000007f
			MX7D_PAD_I2C1_SCL__I2C1_SCL		0x4000007f
		>;
	};

	pinctrl_i2c2: i2c2grp {
		fsl,pins = <
			MX7D_PAD_I2C2_SDA__I2C2_SDA		0x4000007f
			MX7D_PAD_I2C2_SCL__I2C2_SCL		0x4000007f
		>;
	};

	pinctrl_i2c3: i2c3grp {
		fsl,pins = <
			MX7D_PAD_I2C3_SDA__I2C3_SDA		0x4000007f
			MX7D_PAD_I2C3_SCL__I2C3_SCL		0x4000007f
		>;
	};

	pinctrl_i2c4: i2c4grp {
		fsl,pins = <
			MX7D_PAD_I2C4_SDA__I2C4_SDA		0x4000007f
			MX7D_PAD_I2C4_SCL__I2C4_SCL		0x4000007f
		>;
	};

	pinctrl_touch_reg: touchreggrp {
		fsl,pins = <
			/* TOUCH_PWR_EN */
			MX7D_PAD_GPIO1_IO11__GPIO1_IO11		0x14
		>;
	};

	pinctrl_uart1: uart1grp {
		fsl,pins = <
			MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX	0x79
			MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX	0x79
		>;
	};

	pinctrl_uart6: uart6grp {
		fsl,pins = <
			MX7D_PAD_EPDC_DATA09__UART6_DCE_TX		0x79
			MX7D_PAD_EPDC_DATA08__UART6_DCE_RX		0x79
		>;
	};

	pinctrl_usdhc2: usdhc2grp {
		fsl,pins = <
			MX7D_PAD_SD2_CMD__SD2_CMD		0x59
			MX7D_PAD_SD2_CLK__SD2_CLK		0x19
			MX7D_PAD_SD2_DATA0__SD2_DATA0		0x59
			MX7D_PAD_SD2_DATA1__SD2_DATA1		0x59
			MX7D_PAD_SD2_DATA2__SD2_DATA2		0x59
			MX7D_PAD_SD2_DATA3__SD2_DATA3		0x59
		>;
	};

	pinctrl_usdhc2_100mhz: usdhc2grp_100mhz {
		fsl,pins = <
			MX7D_PAD_SD2_CMD__SD2_CMD		0x5a
			MX7D_PAD_SD2_CLK__SD2_CLK		0x1a
			MX7D_PAD_SD2_DATA0__SD2_DATA0		0x5a
			MX7D_PAD_SD2_DATA1__SD2_DATA1		0x5a
			MX7D_PAD_SD2_DATA2__SD2_DATA2		0x5a
			MX7D_PAD_SD2_DATA3__SD2_DATA3		0x5a
		>;
	};

	pinctrl_usdhc2_200mhz: usdhc2grp_200mhz {
		fsl,pins = <
			MX7D_PAD_SD2_CMD__SD2_CMD		0x5b
			MX7D_PAD_SD2_CLK__SD2_CLK		0x1b
			MX7D_PAD_SD2_DATA0__SD2_DATA0		0x5b
			MX7D_PAD_SD2_DATA1__SD2_DATA1		0x5b
			MX7D_PAD_SD2_DATA2__SD2_DATA2		0x5b
			MX7D_PAD_SD2_DATA3__SD2_DATA3		0x5b
		>;
	};

	pinctrl_usdhc3: usdhc3grp {
		fsl,pins = <
			MX7D_PAD_SD3_CMD__SD3_CMD		0x59
			MX7D_PAD_SD3_CLK__SD3_CLK		0x19
			MX7D_PAD_SD3_DATA0__SD3_DATA0		0x59
			MX7D_PAD_SD3_DATA1__SD3_DATA1		0x59
			MX7D_PAD_SD3_DATA2__SD3_DATA2		0x59
			MX7D_PAD_SD3_DATA3__SD3_DATA3		0x59
			MX7D_PAD_SD3_DATA4__SD3_DATA4		0x59
			MX7D_PAD_SD3_DATA5__SD3_DATA5		0x59
			MX7D_PAD_SD3_DATA6__SD3_DATA6		0x59
			MX7D_PAD_SD3_DATA7__SD3_DATA7		0x59
			MX7D_PAD_SD3_STROBE__SD3_STROBE		0x19
		>;
	};

	pinctrl_usdhc3_100mhz: usdhc3grp_100mhz {
		fsl,pins = <
			MX7D_PAD_SD3_CMD__SD3_CMD		0x5a
			MX7D_PAD_SD3_CLK__SD3_CLK		0x1a
			MX7D_PAD_SD3_DATA0__SD3_DATA0		0x5a
			MX7D_PAD_SD3_DATA1__SD3_DATA1		0x5a
			MX7D_PAD_SD3_DATA2__SD3_DATA2		0x5a
			MX7D_PAD_SD3_DATA3__SD3_DATA3		0x5a
			MX7D_PAD_SD3_DATA4__SD3_DATA4		0x5a
			MX7D_PAD_SD3_DATA5__SD3_DATA5		0x5a
			MX7D_PAD_SD3_DATA6__SD3_DATA6		0x5a
			MX7D_PAD_SD3_DATA7__SD3_DATA7		0x5a
			MX7D_PAD_SD3_STROBE__SD3_STROBE		0x1a
		>;
	};

	pinctrl_usdhc3_200mhz: usdhc3grp_200mhz {
		fsl,pins = <
			MX7D_PAD_SD3_CMD__SD3_CMD		0x5b
			MX7D_PAD_SD3_CLK__SD3_CLK		0x1b
			MX7D_PAD_SD3_DATA0__SD3_DATA0		0x5b
			MX7D_PAD_SD3_DATA1__SD3_DATA1		0x5b
			MX7D_PAD_SD3_DATA2__SD3_DATA2		0x5b
			MX7D_PAD_SD3_DATA3__SD3_DATA3		0x5b
			MX7D_PAD_SD3_DATA4__SD3_DATA4		0x5b
			MX7D_PAD_SD3_DATA5__SD3_DATA5		0x5b
			MX7D_PAD_SD3_DATA6__SD3_DATA6		0x5b
			MX7D_PAD_SD3_DATA7__SD3_DATA7		0x5b
			MX7D_PAD_SD3_STROBE__SD3_STROBE		0x1b
		>;
	};

	pinctrl_wdog: wdoggrp {
		fsl,pins = <
			MX7D_PAD_ENET1_COL__WDOG1_WDOG_ANY	0x74
		>;
	};

	pinctrl_wifi: wifigrp {
		fsl,pins = <
			/* WiFi Reg On */
			MX7D_PAD_SD2_CD_B__GPIO5_IO9		0x00000014
			/* WiFi Sleep 32k */
			MX7D_PAD_SD1_WP__CCM_CLKO2		0x00000014
		>;
	};
};
