Re: [PATCH v2 2/2] ARM: dts: qcom: Add support for Motorola Moto G (2013)

2024-03-27 Thread Konrad Dybcio
On 26.03.2024 1:11 PM, Stanislav Jakubek wrote:
> Add a device tree for the Motorola Moto G (2013) smartphone based
> on the Qualcomm MSM8226 SoC.
> 
> Initially supported features:
>   - Buttons (Volume Down/Up, Power)
>   - eMMC
>   - Hall Effect Sensor
>   - SimpleFB display
>   - TMP108 temperature sensor
>   - Vibrator
> 
> Note: the dhob and shob reserved-memory regions are seemingly a part of some
> Motorola specific (firmware?) mechanism, see [1].
> 
> [1] 
> https://github.com/LineageOS/android_kernel_motorola_msm8226/blob/cm-14.1/Documentation/devicetree/bindings/misc/hob_ram.txt
> 
> Signed-off-by: Stanislav Jakubek 
> ---

Reviewed-by: Konrad Dybcio 

Konrad



[PATCH v2 2/2] ARM: dts: qcom: Add support for Motorola Moto G (2013)

2024-03-26 Thread Stanislav Jakubek
Add a device tree for the Motorola Moto G (2013) smartphone based
on the Qualcomm MSM8226 SoC.

Initially supported features:
  - Buttons (Volume Down/Up, Power)
  - eMMC
  - Hall Effect Sensor
  - SimpleFB display
  - TMP108 temperature sensor
  - Vibrator

Note: the dhob and shob reserved-memory regions are seemingly a part of some
Motorola specific (firmware?) mechanism, see [1].

[1] 
https://github.com/LineageOS/android_kernel_motorola_msm8226/blob/cm-14.1/Documentation/devicetree/bindings/misc/hob_ram.txt

Signed-off-by: Stanislav Jakubek 
---
Changes in V2:
  - split hob-ram reserved-memory region into dhob and shob
  - add a note and a link to downstream documentation with more
information about these regions

 arch/arm/boot/dts/qcom/Makefile   |   1 +
 .../boot/dts/qcom/msm8226-motorola-falcon.dts | 359 ++
 2 files changed, 360 insertions(+)
 create mode 100644 arch/arm/boot/dts/qcom/msm8226-motorola-falcon.dts

diff --git a/arch/arm/boot/dts/qcom/Makefile b/arch/arm/boot/dts/qcom/Makefile
index 6478a39b3be5..3eacbf5c0785 100644
--- a/arch/arm/boot/dts/qcom/Makefile
+++ b/arch/arm/boot/dts/qcom/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 dtb-$(CONFIG_ARCH_QCOM) += \
+   msm8226-motorola-falcon.dtb \
qcom-apq8016-sbc.dtb \
qcom-apq8026-asus-sparrow.dtb \
qcom-apq8026-huawei-sturgeon.dtb \
diff --git a/arch/arm/boot/dts/qcom/msm8226-motorola-falcon.dts 
b/arch/arm/boot/dts/qcom/msm8226-motorola-falcon.dts
new file mode 100644
index ..029e1b1659c9
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/msm8226-motorola-falcon.dts
@@ -0,0 +1,359 @@
+// SPDX-License-Identifier: BSD-3-Clause
+
+/dts-v1/;
+
+#include "qcom-msm8226.dtsi"
+#include "pm8226.dtsi"
+
+/delete-node/ _region;
+
+/ {
+   model = "Motorola Moto G (2013)";
+   compatible = "motorola,falcon", "qcom,msm8226";
+   chassis-type = "handset";
+
+   aliases {
+   mmc0 = _1;
+   };
+
+   chosen {
+   #address-cells = <1>;
+   #size-cells = <1>;
+   ranges;
+
+   framebuffer@320 {
+   compatible = "simple-framebuffer";
+   reg = <0x0320 0x80>;
+   width = <720>;
+   height = <1280>;
+   stride = <(720 * 3)>;
+   format = "r8g8b8";
+   vsp-supply = <_lcd_pos>;
+   vsn-supply = <_lcd_neg>;
+   vddio-supply = <_disp_vreg>;
+   };
+   };
+
+   gpio-keys {
+   compatible = "gpio-keys";
+
+   event-hall-sensor {
+   label = "Hall Effect Sensor";
+   gpios = < 51 GPIO_ACTIVE_LOW>;
+   linux,input-type = ;
+   linux,code = ;
+   linux,can-disable;
+   };
+
+   key-volume-up {
+   label = "Volume Up";
+   gpios = < 106 GPIO_ACTIVE_LOW>;
+   linux,code = ;
+   debounce-interval = <15>;
+   };
+   };
+
+   vddio_disp_vreg: regulator-vddio-disp {
+   compatible = "regulator-fixed";
+   regulator-name = "vddio_disp";
+   gpio = < 34 GPIO_ACTIVE_HIGH>;
+   vin-supply = <_l8>;
+   startup-delay-us = <300>;
+   enable-active-high;
+   regulator-boot-on;
+   };
+
+   reserved-memory {
+   #address-cells = <1>;
+   #size-cells = <1>;
+   ranges;
+
+   framebuffer@320 {
+   reg = <0x0320 0x80>;
+   no-map;
+   };
+
+   dhob@f50 {
+   reg = <0x0f50 0x4>;
+   no-map;
+   };
+
+   shob@f54 {
+   reg = <0x0f54 0x2000>;
+   no-map;
+   };
+
+   smem_region: smem@fa0 {
+   reg = <0x0fa0 0x10>;
+   no-map;
+   };
+
+   /* Actually <0x0fa0 0x50>, but first 10 is smem */
+   reserved@fb0 {
+   reg = <0x0fb0 0x40>;
+   no-map;
+   };
+   };
+};
+
+_i2c3 {
+   status = "okay";
+
+   regulator@3e {
+   compatible = "ti,tps65132";
+   reg = <0x3e>;
+   pinctrl-0 = <_lcd_default>;
+   pinctrl-names = "default";
+
+   reg_lcd_pos: outp {
+   regulator-name = "outp";
+   regulator-min-microvolt = <400>;
+   regulator-max-microvolt = <600>;
+   regulator-active-discharge = <1>;
+