--- /dev/null
+// 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";
+
+       /* 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>;
+               };
+       };
+};
+
+&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;
+               };
+       };
+};
+
+&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>;
+};