// SPDX-License-Identifier: BSD-3-Clause
/*
 * IPQ5332 RDP442 board device tree source
 *
 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
 */

/dts-v1/;

#include "ipq5332-rdp-common.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. IPQ5332 MI01.3";
	compatible = "qcom,ipq5332-ap-mi01.3", "qcom,ipq5332";
};

&blsp1_i2c1 {
	clock-frequency = <400000>;
	pinctrl-0 = <&i2c_1_pins>;
	pinctrl-names = "default";
	status = "okay";
};

&blsp1_spi0 {
	pinctrl-0 = <&spi_0_data_clk_pins &spi_0_cs_pins>;
	pinctrl-names = "default";
	status = "okay";

	flash@0 {
		compatible = "micron,n25q128a11", "jedec,spi-nor";
		reg = <0>;
		#address-cells = <1>;
		#size-cells = <1>;
		spi-max-frequency = <50000000>;
	};
};

&sdhc {
	bus-width = <4>;
	max-frequency = <192000000>;
	mmc-ddr-1_8v;
	mmc-hs200-1_8v;
	non-removable;
	pinctrl-0 = <&sdc_default_state>;
	pinctrl-names = "default";
	status = "okay";
};

&tlmm {
	i2c_1_pins: i2c-1-state {
		pins = "gpio29", "gpio30";
		function = "blsp1_i2c0";
		drive-strength = <8>;
		bias-pull-up;
	};

	sdc_default_state: sdc-default-state {
		clk-pins {
			pins = "gpio13";
			function = "sdc_clk";
			drive-strength = <8>;
			bias-disable;
		};

		cmd-pins {
			pins = "gpio12";
			function = "sdc_cmd";
			drive-strength = <8>;
			bias-pull-up;
		};

		data-pins {
			pins = "gpio8", "gpio9", "gpio10", "gpio11";
			function = "sdc_data";
			drive-strength = <8>;
			bias-pull-up;
		};
	};

	spi_0_data_clk_pins: spi-0-data-clk-state {
		pins = "gpio14", "gpio15", "gpio16";
		function = "blsp0_spi";
		drive-strength = <2>;
		bias-pull-down;
	};

	spi_0_cs_pins: spi-0-cs-state {
		pins = "gpio17";
		function = "blsp0_spi";
		drive-strength = <2>;
		bias-pull-up;
	};
};
