// SPDX-License-Identifier: GPL-2.0
/*
 * Device tree for the Kobo Aura 2 ebook reader
 *
 * Name on mainboard is: 37NB-E60QL0+4B1
 * Serials start with: E60QL2
 *
 * Copyright 2022 Andreas Kemnade
 */

/dts-v1/;

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

/ {
	model = "Kobo Aura 2";
	compatible = "kobo,aura2", "fsl,imx6sl";

	aliases {
		mmc0 = &usdhc2;
		mmc1 = &usdhc3;
	};

	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-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 = "koboaura2:white:on";
			gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;
			color = <LED_COLOR_ID_WHITE>;
			linux,default-trigger = "timer";
		};
	};

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

	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";

	lm3630a: backlight@36 {
		compatible = "ti,lm3630a";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_lm3630a_bl_gpio>;
		reg = <0x36>;
		enable-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;

		#address-cells = <1>;
		#size-cells = <0>;

		led@0 {
			reg = <0>;
			led-sources = <0>;
			label = "backlight";
			default-brightness = <0>;
			max-brightness = <255>;
		};
	};
};

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

	/* eKTF2232 at 0x15 */
	/* FP9928 at 0x48 */
};

&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_LEVEL_LOW>;
		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-always-on;
				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;
			};
		};
	};
};

&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";

	/*
	 * RTL8189F SDIO WiFi
	 */
};

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

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

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

	pinctrl_i2c1_sleep: i2c1-sleepgrp {
		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: i2c2-sleepgrp {
		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_DAT6__GPIO5_IO07 0x17059
		>;
	};

	pinctrl_lm3630a_bl_gpio: lm3630a-bl-gpiogrp {
		fsl,pins = <
			MX6SL_PAD_EPDC_PWRCTRL3__GPIO2_IO10 0x10059 /* HWEN */
		>;
	};

	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: usdhc2-100mhzgrp {
		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: usdhc2-200mhzgrp {
		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: usdhc2-sleepgrp {
		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: usdhc3-100mhzgrp {
		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: usdhc3-200mhzgrp {
		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: usdhc3-sleepgrp {
		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 */
		>;
	};
};
