Re: [PATCH 5/5] arm64: dts: qcom: sm8350-lemonade(p): new devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux