Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
 * Copyright (c) 2022, Linaro Limited
 */

/dts-v1/;

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

#include "sa8540p.dtsi"

/ {
	model = "Qualcomm SA8295P ADP";
	compatible = "qcom,sa8295p-adp", "qcom,sa8540p";

	aliases {
		serial0 = &qup2_uart17;
	};

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

&apps_rsc {
	pmm8540-a-regulators {
		compatible = "qcom,pm8150-rpmh-regulators";
		qcom,pmic-id = "a";

		vreg_l3a: ldo3 {
			regulator-name = "vreg_l3a";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1208000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5a: ldo5 {
			regulator-name = "vreg_l5a";
			regulator-min-microvolt = <912000>;
			regulator-max-microvolt = <912000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7a: ldo7 {
			regulator-name = "vreg_l7a";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l13a: ldo13 {
			regulator-name = "vreg_l13a";
			regulator-min-microvolt = <3072000>;
			regulator-max-microvolt = <3072000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	pmm8540-c-regulators {
		compatible = "qcom,pm8150-rpmh-regulators";
		qcom,pmic-id = "c";

		vreg_l1c: ldo1 {
			regulator-name = "vreg_l1c";
			regulator-min-microvolt = <912000>;
			regulator-max-microvolt = <912000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2c: ldo2 {
			regulator-name = "vreg_l2c";
			regulator-min-microvolt = <3072000>;
			regulator-max-microvolt = <3072000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3c: ldo3 {
			regulator-name = "vreg_l3c";
			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_l4c: ldo4 {
			regulator-name = "vreg_l4c";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1208000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6c: ldo6 {
			regulator-name = "vreg_l6c";
			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_l7c: ldo7 {
			regulator-name = "vreg_l7c";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

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

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

	pmm8540-g-regulators {
		compatible = "qcom,pm8150-rpmh-regulators";
		qcom,pmic-id = "g";

		vreg_l3g: ldo3 {
			regulator-name = "vreg_l3g";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7g: ldo7 {
			regulator-name = "vreg_l7g";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l8g: ldo8 {
			regulator-name = "vreg_l8g";
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};
};

&qup2 {
	status = "okay";
};

&qup2_uart17 {
	compatible = "qcom,geni-debug-uart";
	status = "okay";
};

&remoteproc_adsp {
	firmware-name = "qcom/sa8540p/adsp.mbn";
	status = "okay";
};

&remoteproc_nsp0 {
	firmware-name = "qcom/sa8540p/cdsp.mbn";
	status = "okay";
};

&remoteproc_nsp1 {
	firmware-name = "qcom/sa8540p/cdsp1.mbn";
	status = "okay";
};

&spmi_bus {
	pm8450a: pmic@0 {
		compatible = "qcom,pm8150", "qcom,spmi-pmic";
		reg = <0x0 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pm8450a_gpios: gpio@c000 {
			compatible = "qcom,pm8150-gpio", "qcom,spmi-gpio";
			reg = <0xc000>;
			gpio-controller;
			gpio-ranges = <&pm8450a_gpios 0 0 10>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	pm8450c: pmic@4 {
		compatible = "qcom,pm8150", "qcom,spmi-pmic";
		reg = <0x4 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pm8450c_gpios: gpio@c000 {
			compatible = "qcom,pm8150-gpio", "qcom,spmi-gpio";
			reg = <0xc000>;
			gpio-controller;
			gpio-ranges = <&pm8450c_gpios 0 0 10>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	pm8450e: pmic@8 {
		compatible = "qcom,pm8150", "qcom,spmi-pmic";
		reg = <0x8 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pm8450e_gpios: gpio@c000 {
			compatible = "qcom,pm8150-gpio", "qcom,spmi-gpio";
			reg = <0xc000>;
			gpio-controller;
			gpio-ranges = <&pm8450e_gpios 0 0 10>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	pm8450g: pmic@c {
		compatible = "qcom,pm8150", "qcom,spmi-pmic";
		reg = <0xc SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pm8450g_gpios: gpio@c000 {
			compatible = "qcom,pm8150-gpio", "qcom,spmi-gpio";
			reg = <0xc000>;
			gpio-controller;
			gpio-ranges = <&pm8450g_gpios 0 0 10>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};
};

&ufs_mem_hc {
	reset-gpios = <&tlmm 228 GPIO_ACTIVE_LOW>;

	vcc-supply = <&vreg_l17c>;
	vcc-max-microamp = <800000>;
	vccq-supply = <&vreg_l6c>;
	vccq-max-microamp = <900000>;

	status = "okay";
};

&ufs_mem_phy {
	vdda-phy-supply = <&vreg_l8g>;
	vdda-pll-supply = <&vreg_l3g>;

	status = "okay";
};

&ufs_card_hc {
	reset-gpios = <&tlmm 229 GPIO_ACTIVE_LOW>;

	vcc-supply = <&vreg_l10c>;
	vcc-max-microamp = <800000>;
	vccq-supply = <&vreg_l3c>;
	vccq-max-microamp = <900000>;

	status = "okay";
};

&ufs_card_phy {
	vdda-phy-supply = <&vreg_l8g>;
	vdda-pll-supply = <&vreg_l3g>;

	status = "okay";
};

&usb_0 {
	status = "okay";
};

&usb_0_dwc3 {
	/* TODO: Define USB-C connector properly */
	dr_mode = "peripheral";
};

&usb_0_hsphy {
	vdda-pll-supply = <&vreg_l5a>;
	vdda18-supply = <&vreg_l7a>;
	vdda33-supply = <&vreg_l13a>;

	status = "okay";
};

&usb_0_qmpphy {
	vdda-phy-supply = <&vreg_l3a>;
	vdda-pll-supply = <&vreg_l5a>;

	status = "okay";
};

&usb_1 {
	status = "okay";
};

&usb_1_dwc3 {
	/* TODO: Define USB-C connector properly */
	dr_mode = "host";
};

&usb_1_hsphy {
	vdda-pll-supply = <&vreg_l1c>;
	vdda18-supply = <&vreg_l7c>;
	vdda33-supply = <&vreg_l2c>;

	status = "okay";
};

&usb_1_qmpphy {
	vdda-phy-supply = <&vreg_l4c>;
	vdda-pll-supply = <&vreg_l1c>;

	status = "okay";
};

&usb_2_hsphy0 {
	vdda-pll-supply = <&vreg_l5a>;
	vdda18-supply = <&vreg_l7g>;
	vdda33-supply = <&vreg_l13a>;

	status = "okay";
};

&usb_2_hsphy1 {
	vdda-pll-supply = <&vreg_l5a>;
	vdda18-supply = <&vreg_l7g>;
	vdda33-supply = <&vreg_l13a>;

	status = "okay";
};

&usb_2_hsphy2 {
	vdda-pll-supply = <&vreg_l5a>;
	vdda18-supply = <&vreg_l7g>;
	vdda33-supply = <&vreg_l13a>;

	status = "okay";
};

&usb_2_hsphy3 {
	vdda-pll-supply = <&vreg_l5a>;
	vdda18-supply = <&vreg_l7g>;
	vdda33-supply = <&vreg_l13a>;

	status = "okay";
};

&usb_2_qmpphy0 {
	vdda-phy-supply = <&vreg_l3a>;
	vdda-pll-supply = <&vreg_l5a>;

	status = "okay";
};

&usb_2_qmpphy1 {
	vdda-phy-supply = <&vreg_l3a>;
	vdda-pll-supply = <&vreg_l5a>;

	status = "okay";
};

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

/* PINCTRL */