Staging
v0.8.1
https://github.com/torvalds/linux
Raw File
Tip revision: 09688c0166e76ce2fb85e86b9d99be8b0084cdf9 authored by Linus Torvalds on 13 March 2022, 20:23:37 UTC
Linux 5.17-rc8
Tip revision: 09688c0
sm7225-fairphone-fp4.dts
// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2021, Luca Weiss <luca@z3ntu.xyz>
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sm7225.dtsi"
#include "pm6350.dtsi"

/ {
	model = "Fairphone 4";
	compatible = "fairphone,fp4", "qcom,sm7225";
	chassis-type = "handset";

	/* required for bootloader to select correct board */
	qcom,msm-id = <434 0x10000>, <459 0x10000>;
	qcom,board-id = <8 32>;

	aliases {
		serial0 = &uart2;
	};

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

		stdout-path = "serial0:115200n8";

		framebuffer0: framebuffer@a000000 {
			compatible = "simple-framebuffer";
			reg = <0 0xa0000000 0 (2340 * 1080 * 4)>;
			width = <1080>;
			height = <2340>;
			stride = <(1080 * 4)>;
			format = "a8r8g8b8";
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&gpio_keys_pin>;

		volume-up {
			label = "volume_up";
			linux,code = <KEY_VOLUMEUP>;
			gpios = <&pm6350_gpios 2 GPIO_ACTIVE_LOW>;
		};
	};

	reserved-memory {
		/*
		 * The rmtfs memory region in downstream is 'dynamically allocated'
		 * but given the same address every time. Hard code it as this address is
		 * where the modem firmware expects it to be.
		 */
		memory@efe01000 {
			compatible = "qcom,rmtfs-mem";
			reg = <0 0xefe01000 0 0x600000>;
			no-map;

			qcom,client-id = <1>;
			qcom,vmid = <15>;
		};
	};
};

&adsp {
	status = "okay";
	firmware-name = "qcom/sm7225/fairphone4/adsp.mdt";
};

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

		vreg_s1a: smps1 {
			regulator-min-microvolt = <1000000>;
			regulator-max-microvolt = <1200000>;
		};

		vreg_s2a: smps2 {
			regulator-min-microvolt = <1503000>;
			regulator-max-microvolt = <2048000>;
		};

		vreg_l2a: ldo2 {
			regulator-min-microvolt = <1503000>;
			regulator-max-microvolt = <1980000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3a: ldo3 {
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <3300000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l4a: ldo4 {
			regulator-min-microvolt = <352000>;
			regulator-max-microvolt = <801000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5a: ldo5 {
			regulator-min-microvolt = <1503000>;
			regulator-max-microvolt = <1980000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6a: ldo6 {
			regulator-min-microvolt = <1710000>;
			regulator-max-microvolt = <3544000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7a: ldo7 {
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <1980000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l8a: ldo8 {
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9a: ldo9 {
			regulator-min-microvolt = <1650000>;
			regulator-max-microvolt = <3401000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l11a: ldo11 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l12a: ldo12 {
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <1980000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l13a: ldo13 {
			regulator-min-microvolt = <570000>;
			regulator-max-microvolt = <650000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l14a: ldo14 {
			regulator-min-microvolt = <1700000>;
			regulator-max-microvolt = <1900000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l15a: ldo15 {
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1305000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l16a: ldo16 {
			regulator-min-microvolt = <830000>;
			regulator-max-microvolt = <921000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l18a: ldo18 {
			regulator-min-microvolt = <788000>;
			regulator-max-microvolt = <1049000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l19a: ldo19 {
			regulator-min-microvolt = <1080000>;
			regulator-max-microvolt = <1305000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l20a: ldo20 {
			regulator-min-microvolt = <530000>;
			regulator-max-microvolt = <801000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l21a: ldo21 {
			regulator-min-microvolt = <751000>;
			regulator-max-microvolt = <825000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l22a: ldo22 {
			regulator-min-microvolt = <1080000>;
			regulator-max-microvolt = <1305000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

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

		vreg_s8e: smps8 {
			regulator-min-microvolt = <313000>;
			regulator-max-microvolt = <1395000>;
		};

		vreg_l1e: ldo1 {
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <1980000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2e: ldo2 {
			regulator-min-microvolt = <1170000>;
			regulator-max-microvolt = <1305000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3e: ldo3 {
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1299000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l4e: ldo4 {
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <3300000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5e: ldo5 {
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <3300000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6e: ldo6 {
			regulator-min-microvolt = <1700000>;
			regulator-max-microvolt = <3544000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7e: ldo7 {
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <3544000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l8e: ldo8 {
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <2000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9e: ldo9 {
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <3544000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l10e: ldo10 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3401000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l11e: ldo11 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3401000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_bob: bob {
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <5492000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
			regulator-allow-bypass;
		};
	};
};

&cdsp {
	status = "okay";
	firmware-name = "qcom/sm7225/fairphone4/cdsp.mdt";
};

&mpss {
	status = "okay";
	firmware-name = "qcom/sm7225/fairphone4/modem.mdt";
};

&pm6350_gpios {
	gpio_keys_pin: gpio-keys-pin {
		pins = "gpio2";
		function = PMIC_GPIO_FUNC_NORMAL;
		bias-pull-up;
		input-enable;
		power-source = <0>;
	};
};

&pm6350_resin {
	status = "okay";
	linux,code = <KEY_VOLUMEDOWN>;
};

&qupv3_id_1 {
	status = "okay";
};

&tlmm {
	gpio-reserved-ranges = <13 4>, <56 2>;
};

&uart2 {
	status = "okay";
};

&usb_1 {
	status = "okay";
};

&usb_1_dwc3 {
	maximum-speed = "super-speed";
	dr_mode = "peripheral";
};

&usb_1_hsphy {
	status = "okay";

	vdd-supply = <&vreg_l18a>;
	vdda-pll-supply = <&vreg_l2a>;
	vdda-phy-dpdm-supply = <&vreg_l3a>;
};

&usb_1_qmpphy {
	status = "okay";

	vdda-phy-supply = <&vreg_l22a>;
	vdda-pll-supply = <&vreg_l16a>;
};
back to top