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

/dts-v1/;

#include "sm6125.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/input/gpio-keys.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";

	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";
		input-name = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		autorepeat;

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

&hsusb_phy1 {
	status = "okay";
};

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

&sdhc_1 {
	status = "okay";
};

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

	sdc2_state_on: sdc2-on {
		clk {
			pins = "sdc2_clk";
			bias-disable;
			drive-strength = <16>;
		};

		cmd {
			pins = "sdc2_cmd";
			bias-pull-up;
			drive-strength = <10>;
		};

		data {
			pins = "sdc2_data";
			bias-pull-up;
			drive-strength = <10>;
		};

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

&usb3 {
	status = "okay";
};

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