// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2019 Stephan Gerhold
 */

/dts-v1/;

#include "msm8916-pm8916.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>

/*
 * NOTE: The original firmware from Samsung can only boot ARM32 kernels.
 * Unfortunately, the firmware is signed and cannot be replaced easily.
 * There seems to be no way to boot ARM64 kernels on this device at the moment,
 * even though the hardware would support it.
 *
 * However, it is possible to use this device tree by compiling an ARM32 kernel
 * instead. For clarity and build testing this device tree is maintained next
 * to the other MSM8916 device trees. However, it is actually used through
 *   arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dts
 */

/ {
	model = "Samsung Galaxy S4 Mini Value Edition";
	compatible = "samsung,serranove", "qcom,msm8916";
	chassis-type = "handset";

	aliases {
		serial0 = &blsp1_uart2;
	};

	chosen {
		stdout-path = "serial0";
	};

	reserved-memory {
		/* Additional memory used by Samsung firmware modifications */
		tz-apps@85500000 {
			reg = <0x0 0x85500000 0x0 0xb00000>;
			no-map;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";

		pinctrl-names = "default";
		pinctrl-0 = <&gpio_keys_default>;

		label = "GPIO Buttons";

		button-volume-up {
			label = "Volume Up";
			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEUP>;
		};

		button-home {
			label = "Home";
			gpios = <&msmgpio 109 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_HOMEPAGE>;
		};
	};

	gpio-hall-sensor {
		compatible = "gpio-keys";

		pinctrl-names = "default";
		pinctrl-0 = <&gpio_hall_sensor_default>;

		label = "GPIO Hall Effect Sensor";

		event-hall-sensor {
			label = "Hall Effect Sensor";
			gpios = <&msmgpio 52 GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_SW>;
			linux,code = <SW_LID>;
			linux,can-disable;
		};
	};

	reg_vdd_tsp: regulator-vdd-tsp {
		compatible = "regulator-fixed";
		regulator-name = "vdd_tsp";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		gpio = <&msmgpio 73 GPIO_ACTIVE_HIGH>;
		enable-active-high;

		pinctrl-names = "default";
		pinctrl-0 = <&tsp_en_default>;
	};

	reg_touch_key: regulator-touch-key {
		compatible = "regulator-fixed";
		regulator-name = "touch_key";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;

		gpio = <&msmgpio 86 GPIO_ACTIVE_HIGH>;
		enable-active-high;

		pinctrl-names = "default";
		pinctrl-0 = <&tkey_en_default>;
	};

	reg_key_led: regulator-key-led {
		compatible = "regulator-fixed";
		regulator-name = "key_led";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		gpio = <&msmgpio 60 GPIO_ACTIVE_HIGH>;
		enable-active-high;

		pinctrl-names = "default";
		pinctrl-0 = <&tkey_led_en_default>;
	};

	i2c-muic {
		compatible = "i2c-gpio";
		sda-gpios = <&msmgpio 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
		scl-gpios = <&msmgpio 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;

		pinctrl-names = "default";
		pinctrl-0 = <&muic_i2c_default>;

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

		muic: extcon@14 {
			compatible = "siliconmitus,sm5504-muic";
			reg = <0x14>;

			interrupt-parent = <&msmgpio>;
			interrupts = <12 IRQ_TYPE_EDGE_FALLING>;

			pinctrl-names = "default";
			pinctrl-0 = <&muic_irq_default>;
		};
	};

	i2c-tkey {
		compatible = "i2c-gpio";
		sda-gpios = <&msmgpio 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
		scl-gpios = <&msmgpio 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;

		pinctrl-names = "default";
		pinctrl-0 = <&tkey_i2c_default>;

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

		touchkey@20 {
			compatible = "coreriver,tc360-touchkey";
			reg = <0x20>;

			interrupt-parent = <&msmgpio>;
			interrupts = <98 IRQ_TYPE_EDGE_FALLING>;

			vcc-supply = <&reg_touch_key>;
			vdd-supply = <&reg_key_led>;
			vddio-supply = <&pm8916_l6>;

			linux,keycodes = <KEY_APPSELECT KEY_BACK>;

			pinctrl-names = "default";
			pinctrl-0 = <&tkey_default>;
		};
	};

	i2c-nfc {
		compatible = "i2c-gpio";
		sda-gpios = <&msmgpio 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
		scl-gpios = <&msmgpio 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;

		pinctrl-names = "default";
		pinctrl-0 = <&nfc_i2c_default>;

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

		nfc@2b {
			compatible = "nxp,pn547", "nxp,nxp-nci-i2c";
			reg = <0x2b>;

			interrupt-parent = <&msmgpio>;
			interrupts = <21 IRQ_TYPE_EDGE_RISING>;

			enable-gpios = <&msmgpio 20 GPIO_ACTIVE_HIGH>;
			firmware-gpios = <&msmgpio 49 GPIO_ACTIVE_HIGH>;

			pinctrl-names = "default";
			pinctrl-0 = <&nfc_default>;
		};
	};
};

&blsp_i2c2 {
	status = "okay";

	imu@6b {
		compatible = "st,lsm6ds3";
		reg = <0x6b>;

		interrupt-parent = <&msmgpio>;
		interrupts = <115 IRQ_TYPE_EDGE_RISING>;

		pinctrl-names = "default";
		pinctrl-0 = <&imu_irq_default>;
	};

	magnetometer@2e {
		compatible = "yamaha,yas537";
		reg = <0x2e>;

		mount-matrix =  "0",  "1",  "0",
				"1",  "0",  "0",
				"0",  "0", "-1";
	};
};

&blsp_i2c4 {
	status = "okay";

	battery@35 {
		compatible = "richtek,rt5033-battery";
		reg = <0x35>;

		interrupt-parent = <&msmgpio>;
		interrupts = <121 IRQ_TYPE_EDGE_FALLING>;

		pinctrl-names = "default";
		pinctrl-0 = <&fg_alert_default>;
	};
};

&blsp_i2c5 {
	status = "okay";

	touchscreen@20 {
		compatible = "zinitix,bt541";
		reg = <0x20>;

		interrupt-parent = <&msmgpio>;
		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;

		touchscreen-size-x = <540>;
		touchscreen-size-y = <960>;

		vdd-supply = <&reg_vdd_tsp>;
		vddo-supply = <&pm8916_l6>;

		pinctrl-names = "default";
		pinctrl-0 = <&tsp_irq_default>;
	};
};

&blsp1_uart2 {
	status = "okay";
};

&pm8916_resin {
	status = "okay";
	linux,code = <KEY_VOLUMEDOWN>;
};

&pm8916_vib {
	status = "okay";
};

&pronto {
	status = "okay";

	iris {
		compatible = "qcom,wcn3660b";
	};
};

&sdhc_1 {
	status = "okay";

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
};

&sdhc_2 {
	status = "okay";

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;

	non-removable;

	/*
	 * FIXME: Disable UHS-I modes since tuning fails with:
	 *
	 * sdhci_msm 7864900.sdhci: mmc1: No tuning point found
	 * mmc1: tuning execution failed: -5
	 * mmc1: error -5 whilst initialising SD card
	 *
	 * This is the quirk used on downstream, which suggests this is
	 * a hardware limitation. However, probing a card using DDR50 works
	 * (without tuning), so maybe only tuning is broken?
	 */
	no-1-8-v;
};

&usb {
	status = "okay";
	extcon = <&muic>, <&muic>;
};

&usb_hs_phy {
	extcon = <&muic>;
};

&smd_rpm_regulators {
	vdd_l1_l2_l3-supply = <&pm8916_s3>;
	vdd_l4_l5_l6-supply = <&pm8916_s4>;
	vdd_l7-supply = <&pm8916_s4>;

	s3 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1300000>;
	};

	s4 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2100000>;
	};

	l1 {
		regulator-min-microvolt = <1225000>;
		regulator-max-microvolt = <1225000>;
	};

	l2 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;
	};

	l4 {
		regulator-min-microvolt = <2050000>;
		regulator-max-microvolt = <2050000>;
	};

	l5 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	l6 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	l7 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	l8 {
		regulator-min-microvolt = <2850000>;
		regulator-max-microvolt = <2900000>;
	};

	l9 {
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	l10 {
		regulator-min-microvolt = <2700000>;
		regulator-max-microvolt = <2800000>;
	};

	l11 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2950000>;
		regulator-allow-set-load;
		regulator-system-load = <200000>;
	};

	l12 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2950000>;
	};

	l13 {
		regulator-min-microvolt = <3075000>;
		regulator-max-microvolt = <3075000>;
	};

	l14 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
	};

	l15 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
	};

	l16 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
	};

	l17 {
		regulator-min-microvolt = <2850000>;
		regulator-max-microvolt = <2850000>;
	};

	l18 {
		regulator-min-microvolt = <2700000>;
		regulator-max-microvolt = <2700000>;
	};
};

&msmgpio {
	fg_alert_default: fg-alert-default-state {
		pins = "gpio121";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	gpio_keys_default: gpio-keys-default-state {
		pins = "gpio107", "gpio109";
		function = "gpio";

		drive-strength = <2>;
		bias-pull-up;
	};

	gpio_hall_sensor_default: gpio-hall-sensor-default-state {
		pins = "gpio52";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	imu_irq_default: imu-irq-default-state {
		pins = "gpio115";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	muic_i2c_default: muic-i2c-default-state {
		pins = "gpio105", "gpio106";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	muic_irq_default: muic-irq-default-state {
		pins = "gpio12";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	nfc_default: nfc-default-state {
		nfc-pins {
			pins = "gpio20", "gpio49";
			function = "gpio";

			drive-strength = <2>;
			bias-disable;
		};
		irq-pins {
			pins = "gpio21";
			function = "gpio";

			drive-strength = <2>;
			bias-pull-down;
		};
	};

	nfc_i2c_default: nfc-i2c-default-state {
		pins = "gpio0", "gpio1";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	tkey_default: tkey-default-state {
		pins = "gpio98";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	tkey_en_default: tkey-en-default-state {
		pins = "gpio86";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	tkey_i2c_default: tkey-i2c-default-state {
		pins = "gpio16", "gpio17";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	tkey_led_en_default: tkey-led-en-default-state {
		pins = "gpio60";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	tsp_en_default: tsp-en-default-state {
		pins = "gpio73";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	tsp_irq_default: tsp-irq-default-state {
		pins = "gpio13";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};
};
