// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2021, Martin Botka <martin.botka@somainline.org>
 */

/dts-v1/;

#include "sm6125.dtsi"
#include "pm6125.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>

/ {
	/* required for bootloader to select correct board */
	qcom,msm-id = <394 0x10000>; /* sm6125 v1 */
	qcom,board-id = <34 0>;

	model = "Sony Xperia 10 II";
	compatible = "sony,pdx201", "qcom,sm6125";
	chassis-type = "handset";

	chosen {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		framebuffer0: framebuffer@5c000000 {
			compatible = "simple-framebuffer";
			reg = <0 0x5c000000 0 (2520 * 1080 * 4)>;
			width = <1080>;
			height = <2520>;
			stride = <(1080 * 4)>;
			format = "a8r8g8b8";
		};
	};

	extcon_usb: extcon-usb {
		compatible = "linux,extcon-usb-gpio";
		id-gpio = <&tlmm 102 GPIO_ACTIVE_HIGH>;
	};

	gpio-keys {
		status = "okay";
		compatible = "gpio-keys";
		autorepeat;

		key-vol-dn {
			label = "Volume Down";
			gpios = <&tlmm 47 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			linux,code = <KEY_VOLUMEDOWN>;
			gpio-key,wakeup;
			debounce-interval = <15>;
		};
	};

	reserved_memory {
		#address-cells = <2>;
		#size-cells = <2>;
		debug_mem: memory@ffb00000 {
			reg = <0x0 0xffb00000 0x0 0xc0000>;
			no-map;
		};

		last_log_mem: memory@ffbc0000 {
			reg = <0x0 0xffbc0000 0x0 0x80000>;
			no-map;
		};

		pstore_mem: ramoops@ffc00000 {
			compatible = "ramoops";
			reg = <0x0 0xffc40000 0x0 0xc0000>;
			record-size = <0x1000>;
			console-size = <0x40000>;
			msg-size = <0x20000 0x20000>;
		};

		cmdline_mem: memory@ffd00000 {
			reg = <0x0 0xffd40000 0x0 0x1000>;
			no-map;
		};
	};

	thermal-zones {
		rf-pa0-thermal {
			polling-delay-passive = <0>;
			polling-delay = <0>;
			thermal-sensors = <&pm6125_adc_tm 0>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};
		};

		quiet-thermal {
			polling-delay-passive = <0>;
			polling-delay = <5000>;
			thermal-sensors = <&pm6125_adc_tm 1>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};
		};

		xo-thermal {
			polling-delay-passive = <0>;
			polling-delay = <0>;
			thermal-sensors = <&pm6125_adc_tm 2>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};
		};

		rf-pa1-thermal {
			polling-delay-passive = <0>;
			polling-delay = <0>;
			thermal-sensors = <&pm6125_adc_tm 3>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};
		};
	};
};

&hsusb_phy1 {
	status = "okay";
};

&pm6125_adc {
	pinctrl-names = "default";
	pinctrl-0 = <&camera_flash_therm &emmc_ufs_therm &rf_pa1_therm>;

	rf-pa0-therm@4d {
		reg = <ADC5_AMUX_THM1_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
	};

	quiet-therm@4e {
		reg = <ADC5_AMUX_THM2_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
	};

	camera-flash-therm@52 {
		reg = <ADC5_GPIO1_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
	};

	emmc-ufs-therm@54 {
		reg = <ADC5_GPIO3_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
	};

	rf-pa1-therm@55 {
		reg = <ADC5_GPIO4_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
	};
};

&pm6125_adc_tm {
	status = "okay";

	rf-pa0-therm@0 {
		reg = <0>;
		io-channels = <&pm6125_adc ADC5_AMUX_THM1_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};

	quiet-therm@1 {
		reg = <1>;
		io-channels = <&pm6125_adc ADC5_AMUX_THM2_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};

	xo-therm@2 {
		reg = <2>;
		io-channels = <&pm6125_adc ADC5_XO_THERM_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};

	rf-pa1-therm@3 {
		reg = <3>;
		io-channels = <&pm6125_adc ADC5_GPIO4_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};
};

&pm6125_gpio {
	camera_flash_therm: camera-flash-therm-state {
		pins = "gpio3";
		function = PMIC_GPIO_FUNC_NORMAL;
		bias-high-impedance;
	};

	emmc_ufs_therm: emmc-ufs-therm-state {
		pins = "gpio6";
		function = PMIC_GPIO_FUNC_NORMAL;
		bias-high-impedance;
	};

	rf_pa1_therm: rf-pa1-therm-state {
		pins = "gpio7";
		function = PMIC_GPIO_FUNC_NORMAL;
		bias-high-impedance;
	};
};

&pon_pwrkey {
	status = "okay";
};

&pon_resin {
	status = "okay";
	linux,code = <KEY_VOLUMEUP>;
};

&sdc2_off_state {
	sd-cd-pins {
		pins = "gpio98";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};
};

&sdc2_on_state {
	sd-cd-pins {
		pins = "gpio98";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-up;
	};
};

&sdhc_1 {
	status = "okay";
};

&tlmm {
	gpio-reserved-ranges = <22 2>, <28 6>;
};

&usb3 {
	status = "okay";
};

&usb3_dwc3 {
	extcon = <&extcon_usb>;
};
