// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
/*
 * Copyright (c) 2021, Iskren Chernev <iskren.chernev@gmail.com>
 */

/dts-v1/;

#include "sm4250.dtsi"

/ {
	model = "OnePlus Nord N100";
	compatible = "oneplus,billie2", "qcom,sm4250";

	/* required for bootloader to select correct board */
	qcom,msm-id = <0x1a1 0x10000 0x1bc 0x10000>;
	qcom,board-id = <0x1000b 0x00>;

	aliases {
	};

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

		stdout-path = "framebuffer0";

		framebuffer0: framebuffer@9d400000 {
			compatible = "simple-framebuffer";
			reg = <0 0x5c000000 0 (1600 * 720 * 4)>;
			width = <720>;
			height = <1600>;
			stride = <(720 * 4)>;
			format = "a8r8g8b8";
		};
	};
};

&reserved_memory {
	bootloader_log_mem: memory@5fff7000 {
		reg = <0x0 0x5fff7000 0x0 0x8000>;
		no-map;
	};

	ramoops@cbe00000 {
		compatible = "ramoops";
		reg = <0x0 0xcbe00000 0x0 0x400000>;
		record-size = <0x40000>;
		pmsg-size = <0x200000>;
		console-size = <0x40000>;
		ftrace-size = <0x40000>;
	};

	param_mem: memory@cc200000 {
		reg = <0x0 0xcc200000 0x0 0x100000>;
		no-map;
	};

	mtp_mem: memory@cc300000 {
		reg = <0x00 0xcc300000 0x00 0xb00000>;
		no-map;
	};
};

&rpm_requests {
	regulators-0 {
		compatible = "qcom,rpm-pm6125-regulators";

		vreg_s6a: s6 {
			regulator-min-microvolt = <320000>;
			regulator-max-microvolt = <1456000>;
		};

		vreg_s7a: s7 {
			regulator-min-microvolt = <1280000>;
			regulator-max-microvolt = <2040000>;
		};

		vreg_s8a: s8 {
			regulator-min-microvolt = <1064000>;
			regulator-max-microvolt = <1304000>;
		};

		vreg_l1a: l1 {
			regulator-min-microvolt = <952000>;
			regulator-max-microvolt = <1152000>;
		};

		vreg_l4a: l4 {
			regulator-min-microvolt = <488000>;
			regulator-max-microvolt = <1000000>;
		};

		vreg_l5a: l5 {
			regulator-min-microvolt = <1648000>;
			regulator-max-microvolt = <3056000>;
		};

		vreg_l6a: l6 {
			regulator-min-microvolt = <576000>;
			regulator-max-microvolt = <656000>;
		};

		vreg_l7a: l7 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1304000>;
		};

		vreg_l8a: l8 {
			regulator-min-microvolt = <400000>;
			regulator-max-microvolt = <728000>;
		};

		vreg_l9a: l9 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2000000>;
		};

		vreg_l10a: l10 {
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <1904000>;
		};

		vreg_l11a: l11 {
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <1952000>;
		};

		vreg_l12a: l12 {
			regulator-min-microvolt = <1624000>;
			regulator-max-microvolt = <1984000>;
		};

		vreg_l13a: l13 {
			regulator-min-microvolt = <1504000>;
			regulator-max-microvolt = <1952000>;
		};

		vreg_l14a: l14 {
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <1904000>;
		};

		vreg_l15a: l15 {
			regulator-min-microvolt = <2920000>;
			regulator-max-microvolt = <3232000>;
		};

		vreg_l16a: l16 {
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <1904000>;
		};

		vreg_l17a: l17 {
			regulator-min-microvolt = <1152000>;
			regulator-max-microvolt = <1304000>;
		};

		vreg_l18a: l18 {
			regulator-min-microvolt = <1104000>;
			regulator-max-microvolt = <1304000>;
		};

		vreg_l19a: l19 {
			regulator-min-microvolt = <1624000>;
			regulator-max-microvolt = <3304000>;
		};

		vreg_l20a: l20 {
			regulator-min-microvolt = <1624000>;
			regulator-max-microvolt = <3304000>;
		};

		vreg_l21a: l21 {
			regulator-min-microvolt = <2400000>;
			regulator-max-microvolt = <3544000>;
		};

		vreg_l22a: l22 {
			regulator-min-microvolt = <2952000>;
			regulator-max-microvolt = <3304000>;
		};

		vreg_l23a: l23 {
			regulator-min-microvolt = <3296000>;
			regulator-max-microvolt = <3304000>;
		};

		vreg_l24a: l24 {
			regulator-min-microvolt = <2704000>;
			regulator-max-microvolt = <3544000>;
		};
	};
};

&sleep_clk {
	clock-frequency = <32764>;
};

&sdhc_2 {
	vmmc-supply = <&vreg_l22a>;
	vqmmc-supply = <&vreg_l5a>;

	cd-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc2_state_on &sdc2_card_det_n>;
	pinctrl-1 = <&sdc2_state_off &sdc2_card_det_n>;

	status = "okay";
};

&tlmm {
	gpio-reserved-ranges = <14 4>;

	sdc2_card_det_n: sd-card-det-n-state {
		pins = "gpio88";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-up;
	};
};

&ufs_mem_hc {
	vcc-supply = <&vreg_l24a>;
	vcc-max-microamp = <600000>;
	vccq2-supply = <&vreg_l11a>;
	vccq2-max-microamp = <600000>;
	status = "okay";
};

&ufs_mem_phy {
	vdda-phy-supply = <&vreg_l4a>;
	vdda-pll-supply = <&vreg_l12a>;
	vddp-ref-clk-supply = <&vreg_l18a>;
	status = "okay";
};

&usb {
	status = "okay";
};

&usb_dwc3 {
	maximum-speed = "high-speed";
	dr_mode = "peripheral";

	phys = <&usb_hsphy>;
	phy-names = "usb2-phy";
};

&usb_hsphy {
	vdd-supply = <&vreg_l4a>;
	vdda-pll-supply = <&vreg_l12a>;
	vdda-phy-dpdm-supply = <&vreg_l15a>;
	status = "okay";
};

&xo_board {
	clock-frequency = <19200000>;
};