Commit 99ea5a0d authored by Wasim Nazir's avatar Wasim Nazir Committed by Bjorn Andersson
Browse files

arm64: dts: qcom: Add lemans evaluation kit (EVK) initial board support



Lemans EVK is an IoT board without safety monitoring feature of
Safety Island(SAIL) subsystem.

Lemans EVK is single board supporting these peripherals:
  - Storage: 2 × 128 GB UFS, micro-SD card, EEPROMs for MACs,
    eMMC on mezzanine card
  - Audio/Video, Camera & Display ports
  - Connectivity: RJ45 2.5GbE, WLAN/Bluetooth, CAN/CAN-FD
  - Sensors: IMU
  - PCIe ports
  - USB & UART ports

On top of lemans EVK board additional mezzanine boards can be stacked
in future.

Implement basic features like uart/ufs to enable 'boot to shell'.

Co-developed-by: default avatarRakesh Kota <quic_kotarake@quicinc.com>
Signed-off-by: default avatarRakesh Kota <quic_kotarake@quicinc.com>
Co-developed-by: default avatarSayali Lokhande <quic_sayalil@quicinc.com>
Signed-off-by: default avatarSayali Lokhande <quic_sayalil@quicinc.com>
Reviewed-by: default avatarKonrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: default avatarWasim Nazir <wasim.nazir@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250803110113.401927-9-wasim.nazir@oss.qualcomm.com


Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
parent e9d84a1f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp433.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= ipq9574-rdp449.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= ipq9574-rdp453.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= ipq9574-rdp454.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= lemans-evk.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= msm8216-samsung-fortuna3g.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= msm8916-acer-a1-724.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= msm8916-alcatel-idol347.dtb
+291 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2024-2025, Qualcomm Innovation Center, Inc. All rights reserved.
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>

#include "lemans.dtsi"
#include "lemans-pmics.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. Lemans EVK";
	compatible = "qcom,lemans-evk", "qcom,qcs9100", "qcom,sa8775p";

	aliases {
		serial0 = &uart10;
	};

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

&apps_rsc {
	regulators-0 {
		compatible = "qcom,pmm8654au-rpmh-regulators";
		qcom,pmic-id = "a";

		vreg_s4a: smps4 {
			regulator-name = "vreg_s4a";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1816000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_s5a: smps5 {
			regulator-name = "vreg_s5a";
			regulator-min-microvolt = <1850000>;
			regulator-max-microvolt = <1996000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_s9a: smps9 {
			regulator-name = "vreg_s9a";
			regulator-min-microvolt = <535000>;
			regulator-max-microvolt = <1120000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l4a: ldo4 {
			regulator-name = "vreg_l4a";
			regulator-min-microvolt = <788000>;
			regulator-max-microvolt = <1050000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5a: ldo5 {
			regulator-name = "vreg_l5a";
			regulator-min-microvolt = <870000>;
			regulator-max-microvolt = <950000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6a: ldo6 {
			regulator-name = "vreg_l6a";
			regulator-min-microvolt = <870000>;
			regulator-max-microvolt = <970000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7a: ldo7 {
			regulator-name = "vreg_l7a";
			regulator-min-microvolt = <720000>;
			regulator-max-microvolt = <950000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l8a: ldo8 {
			regulator-name = "vreg_l8a";
			regulator-min-microvolt = <2504000>;
			regulator-max-microvolt = <3300000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9a: ldo9 {
			regulator-name = "vreg_l9a";
			regulator-min-microvolt = <2970000>;
			regulator-max-microvolt = <3544000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-1 {
		compatible = "qcom,pmm8654au-rpmh-regulators";
		qcom,pmic-id = "c";

		vreg_l1c: ldo1 {
			regulator-name = "vreg_l1c";
			regulator-min-microvolt = <1140000>;
			regulator-max-microvolt = <1260000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2c: ldo2 {
			regulator-name = "vreg_l2c";
			regulator-min-microvolt = <900000>;
			regulator-max-microvolt = <1100000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3c: ldo3 {
			regulator-name = "vreg_l3c";
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1300000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l4c: ldo4 {
			regulator-name = "vreg_l4c";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5c: ldo5 {
			regulator-name = "vreg_l5c";
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1300000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6c: ldo6 {
			regulator-name = "vreg_l6c";
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <1980000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7c: ldo7 {
			regulator-name = "vreg_l7c";
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <2000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l8c: ldo8 {
			regulator-name = "vreg_l8c";
			regulator-min-microvolt = <2400000>;
			regulator-max-microvolt = <3300000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9c: ldo9 {
			regulator-name = "vreg_l9c";
			regulator-min-microvolt = <1650000>;
			regulator-max-microvolt = <2700000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-2 {
		compatible = "qcom,pmm8654au-rpmh-regulators";
		qcom,pmic-id = "e";

		vreg_s4e: smps4 {
			regulator-name = "vreg_s4e";
			regulator-min-microvolt = <970000>;
			regulator-max-microvolt = <1520000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_s7e: smps7 {
			regulator-name = "vreg_s7e";
			regulator-min-microvolt = <1010000>;
			regulator-max-microvolt = <1170000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_s9e: smps9 {
			regulator-name = "vreg_s9e";
			regulator-min-microvolt = <300000>;
			regulator-max-microvolt = <570000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6e: ldo6 {
			regulator-name = "vreg_l6e";
			regulator-min-microvolt = <1280000>;
			regulator-max-microvolt = <1450000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l8e: ldo8 {
			regulator-name = "vreg_l8e";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1950000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};
	};
};

&qupv3_id_1 {
	status = "okay";
};

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

&uart10 {
	compatible = "qcom,geni-debug-uart";
	pinctrl-0 = <&qup_uart10_default>;
	pinctrl-names = "default";

	status = "okay";
};

&ufs_mem_hc {
	reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
	vcc-supply = <&vreg_l8a>;
	vcc-max-microamp = <1100000>;
	vccq-supply = <&vreg_l4c>;
	vccq-max-microamp = <1200000>;

	status = "okay";
};

&ufs_mem_phy {
	vdda-phy-supply = <&vreg_l4a>;
	vdda-pll-supply = <&vreg_l1c>;

	status = "okay";
};

&xo_board_clk {
	clock-frequency = <38400000>;
};