// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2015, The Linux Foundation. All rights reserved.
 * Copyright (c) 2022-2023, Bryan O'Donoghue.
 *
 */

/dts-v1/;

#include "msm8939.dtsi"
#include "msm8939-pm8916.dtsi"
#include <dt-bindings/arm/qcom,ids.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>

/ {
	model = "Sony Xperia M4 Aqua";
	compatible = "sony,kanuti-tulip", "qcom,msm8939";
	chassis-type = "handset";

	qcom,board-id = <QCOM_BOARD_ID_MTP 0>;
	qcom,msm-id = <QCOM_ID_MSM8939 0>, <QCOM_ID_MSM8939 0x30000>;

	aliases {
		mmc0 = &sdhc_1; /* SDC1 eMMC slot */
		mmc1 = &sdhc_2; /* SDC2 SD card slot */
		serial0 = &blsp_uart2;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	usb_id: usb-id {
		compatible = "linux,extcon-usb-gpio";
		id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
		pinctrl-0 = <&usb_id_default>;
		pinctrl-names = "default";
	};
};

&gpu {
	status = "okay";
};

&mdss {
	status = "okay";
};

&tlmm {
	sdc2_cd_default: sdc2-cd-default-state {
		pins = "gpio38";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-up;
	};

	usb_id_default: usb-id-default-state {
		pins = "gpio110";
		function = "gpio";
		bias-pull-up;
		drive-strength = <8>;
	};
};

&sdhc_1 {
	status = "okay";
};

&sdhc_2 {
	pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
	pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
	pinctrl-names = "default", "sleep";
	cd-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>;
	status = "okay";
};

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

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

&wcnss {
	status = "okay";
};

&wcnss_iris {
	compatible = "qcom,wcn3660";
};

&wcnss_mem {
	status = "okay";
};
