On 10/16/23 15:14, Nia Espera wrote:
Hey,
On 10/16/23 15:02, Caleb Connolly wrote:
On 16/10/2023 13:47, Nia Espera wrote:
Device tree files for OnePlus 9 and 9 Pro. Details of supported features
mentioned in the cover letter for this patch series, but for
accessibility also repeated here:
- USB OTG
- UFS
- Framebuffer display
- Touchscreen (for lemonade)
- Power & volume down keys
- Battery reading
- Modem, IPA, and remoteproc bringup
Steps to get booting:
- Wipe dtbo partition
- Flash vbmeta with disabled verity bit
- Flash kernel and initfs to boot partition with CLI args
pd_ignore_unused
and clk_ignore_unused
- Flash rootfs to some other partition (probably super or userdata)
Signed-off-by: Nia Espera <nespera@xxxxxxxxxx>
Small comment below, for the next revision:
Reviewed-by: Caleb Connolly <caleb.connolly@xxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/Makefile | 2 +
.../arm64/boot/dts/qcom/sm8350-oneplus-common.dtsi | 1247
++++++++++++++++++++
.../boot/dts/qcom/sm8350-oneplus-lemonade.dts | 82 ++
.../boot/dts/qcom/sm8350-oneplus-lemonadep.dts | 37 +
4 files changed, 1368 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile
b/arch/arm64/boot/dts/qcom/Makefile
index 2cca20563a1d..369ad4721b29 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -211,6 +211,8 @@ dtb-$(CONFIG_ARCH_QCOM) +=
sm8250-xiaomi-elish-csot.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8350-hdk.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8350-microsoft-surface-duo2.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8350-mtp.dtb
+dtb-$(CONFIG_ARCH_QCOM) += sm8350-oneplus-lemonade.dtb
+dtb-$(CONFIG_ARCH_QCOM) += sm8350-oneplus-lemonadep.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8350-sony-xperia-sagami-pdx214.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8350-sony-xperia-sagami-pdx215.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8450-hdk.dtb
diff --git a/arch/arm64/boot/dts/qcom/sm8350-oneplus-common.dtsi
b/arch/arm64/boot/dts/qcom/sm8350-oneplus-common.dtsi
new file mode 100644
index 000000000000..2f6768f35259
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm8350-oneplus-common.dtsi
@@ -0,0 +1,1247 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023 Caleb Connolly <caleb.connolly@xxxxxxxxxx>
This is loosely based on some initial work I did, but not to the degree
where this copyright is necessary, feel free to drop it on the next
revision.
Will do!
+ *
+ * Copyright (c) 2023 Igalia S.L.
+ * Authors:
+ * Nia Espera <nespera@xxxxxxxxxx>
+ */
+
+#include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pm8350b.h>
+#define SMB139x_1_SID 0x0b
+#define SMB139x_2_SID 0x0c
+#include <dt-bindings/iio/qcom,spmi-adc7-smb139x.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sm8350.dtsi"
+#include "pm8350.dtsi"
+#include "pm8350b.dtsi"
+#include "pm8350c.dtsi"
+#include "pmk8350.dtsi"
+#include "pmr735a.dtsi"
+#include "pmr735b.dtsi"
+
+/ {
+ /* As with the Sony devices, msm-id and board-id aren't needed
here */
+ chassis-type = "handset";
+ interrupt-parent = <&intc>;
+
[...]
+
+ /*
+ * Hack; OP9 bootloader specifically checks that the timer node has
+ * this label.
+ */
+ arch_timer: timer {};
For this to work you also need to build the DTB with labels (the -@ flag
to dtc), otherwise this board won't boot. You can add the following to
the Makefile:
DTC_FLAGS_sm8350-oneplus-lemonade := -@
DTC_FLAGS_sm8350-oneplus-lemonadep := -@
This actually isn't necessary if building the image as an Android version 1
image; it will boot fine without, since it won't try to append to the
DTB. I
should probably mention to do that in the patch, though.
See for reference:
https://lore.kernel.org/linux-arm-msm/20231009172717.2695854-1-dmitry.baryshkov@xxxxxxxxxx/
Yes, using mkbootimg arguments to our advantage to avoid hacks in the dt
is good.
Konrad