1*28236bb8SDavid Wales// SPDX-License-Identifier: BSD-3-Clause 2*28236bb8SDavid Wales/* 3*28236bb8SDavid Wales * Copyright (c) 2026, David Wales <daviewales@disroot.org> 4*28236bb8SDavid Wales */ 5*28236bb8SDavid Wales 6*28236bb8SDavid Wales/dts-v1/; 7*28236bb8SDavid Wales 8*28236bb8SDavid Wales#include "qcom-msm8226.dtsi" 9*28236bb8SDavid Wales#include "pm8226.dtsi" 10*28236bb8SDavid Wales 11*28236bb8SDavid Wales/delete-node/ &smem_region; 12*28236bb8SDavid Wales 13*28236bb8SDavid Wales/ { 14*28236bb8SDavid Wales model = "Motorola Moto G2 (2014)"; 15*28236bb8SDavid Wales compatible = "motorola,titan", "qcom,msm8226"; 16*28236bb8SDavid Wales chassis-type = "handset"; 17*28236bb8SDavid Wales 18*28236bb8SDavid Wales aliases { 19*28236bb8SDavid Wales mmc0 = &sdhc_1; /* eMMC */ 20*28236bb8SDavid Wales }; 21*28236bb8SDavid Wales 22*28236bb8SDavid Wales chosen { 23*28236bb8SDavid Wales #address-cells = <1>; 24*28236bb8SDavid Wales #size-cells = <1>; 25*28236bb8SDavid Wales ranges; 26*28236bb8SDavid Wales 27*28236bb8SDavid Wales framebuffer@3200000 { 28*28236bb8SDavid Wales compatible = "simple-framebuffer"; 29*28236bb8SDavid Wales reg = <0x03200000 0x800000>; 30*28236bb8SDavid Wales width = <720>; 31*28236bb8SDavid Wales height = <1280>; 32*28236bb8SDavid Wales stride = <(720 * 3)>; 33*28236bb8SDavid Wales format = "r8g8b8"; 34*28236bb8SDavid Wales vsp-supply = <®_lcd_pos>; 35*28236bb8SDavid Wales vsn-supply = <®_lcd_neg>; 36*28236bb8SDavid Wales vddio-supply = <&vddio_disp_vreg>; 37*28236bb8SDavid Wales 38*28236bb8SDavid Wales clocks = <&mmcc MDSS_AHB_CLK>, 39*28236bb8SDavid Wales <&mmcc MDSS_AXI_CLK>, 40*28236bb8SDavid Wales <&mmcc MDSS_BYTE0_CLK>, 41*28236bb8SDavid Wales <&mmcc MDSS_ESC0_CLK>, 42*28236bb8SDavid Wales <&mmcc MDSS_MDP_CLK>, 43*28236bb8SDavid Wales <&mmcc MMSS_MISC_AHB_CLK>, 44*28236bb8SDavid Wales <&mmcc MDSS_PCLK0_CLK>, 45*28236bb8SDavid Wales <&mmcc MDSS_VSYNC_CLK>; 46*28236bb8SDavid Wales power-domains = <&mmcc MDSS_GDSC>; 47*28236bb8SDavid Wales }; 48*28236bb8SDavid Wales }; 49*28236bb8SDavid Wales 50*28236bb8SDavid Wales gpio-keys { 51*28236bb8SDavid Wales compatible = "gpio-keys"; 52*28236bb8SDavid Wales 53*28236bb8SDavid Wales event-hall-sensor { 54*28236bb8SDavid Wales label = "Hall Effect Sensor"; 55*28236bb8SDavid Wales gpios = <&tlmm 109 GPIO_ACTIVE_LOW>; 56*28236bb8SDavid Wales linux,input-type = <EV_SW>; 57*28236bb8SDavid Wales linux,code = <SW_LID>; 58*28236bb8SDavid Wales linux,can-disable; 59*28236bb8SDavid Wales }; 60*28236bb8SDavid Wales 61*28236bb8SDavid Wales key-volume-down { 62*28236bb8SDavid Wales label = "Volume Down"; 63*28236bb8SDavid Wales gpios = <&tlmm 107 GPIO_ACTIVE_LOW>; 64*28236bb8SDavid Wales linux,code = <KEY_VOLUMEDOWN>; 65*28236bb8SDavid Wales debounce-interval = <15>; 66*28236bb8SDavid Wales }; 67*28236bb8SDavid Wales 68*28236bb8SDavid Wales key-volume-up { 69*28236bb8SDavid Wales label = "Volume Up"; 70*28236bb8SDavid Wales gpios = <&tlmm 106 GPIO_ACTIVE_LOW>; 71*28236bb8SDavid Wales linux,code = <KEY_VOLUMEUP>; 72*28236bb8SDavid Wales debounce-interval = <15>; 73*28236bb8SDavid Wales }; 74*28236bb8SDavid Wales }; 75*28236bb8SDavid Wales 76*28236bb8SDavid Wales vddio_disp_vreg: regulator-vddio-disp { 77*28236bb8SDavid Wales compatible = "regulator-fixed"; 78*28236bb8SDavid Wales regulator-name = "vddio_disp"; 79*28236bb8SDavid Wales 80*28236bb8SDavid Wales gpio = <&tlmm 10 GPIO_ACTIVE_HIGH>; 81*28236bb8SDavid Wales startup-delay-us = <300>; 82*28236bb8SDavid Wales enable-active-high; 83*28236bb8SDavid Wales regulator-boot-on; 84*28236bb8SDavid Wales }; 85*28236bb8SDavid Wales 86*28236bb8SDavid Wales reserved-memory { 87*28236bb8SDavid Wales #address-cells = <1>; 88*28236bb8SDavid Wales #size-cells = <1>; 89*28236bb8SDavid Wales ranges; 90*28236bb8SDavid Wales 91*28236bb8SDavid Wales framebuffer@3200000 { 92*28236bb8SDavid Wales reg = <0x03200000 0xfa0000>; 93*28236bb8SDavid Wales no-map; 94*28236bb8SDavid Wales }; 95*28236bb8SDavid Wales 96*28236bb8SDavid Wales dhob@f500000 { 97*28236bb8SDavid Wales reg = <0x0f500000 0x40000>; 98*28236bb8SDavid Wales no-map; 99*28236bb8SDavid Wales }; 100*28236bb8SDavid Wales 101*28236bb8SDavid Wales shob@f540000 { 102*28236bb8SDavid Wales reg = <0x0f540000 0x2000>; 103*28236bb8SDavid Wales no-map; 104*28236bb8SDavid Wales }; 105*28236bb8SDavid Wales 106*28236bb8SDavid Wales smem_region: smem@fa00000 { 107*28236bb8SDavid Wales reg = <0x0fa00000 0x100000>; 108*28236bb8SDavid Wales no-map; 109*28236bb8SDavid Wales }; 110*28236bb8SDavid Wales 111*28236bb8SDavid Wales reserved@fb00000 { 112*28236bb8SDavid Wales reg = <0x0fb00000 0x400000>; 113*28236bb8SDavid Wales no-map; 114*28236bb8SDavid Wales }; 115*28236bb8SDavid Wales }; 116*28236bb8SDavid Wales}; 117*28236bb8SDavid Wales 118*28236bb8SDavid Wales&blsp1_i2c4 { 119*28236bb8SDavid Wales status = "okay"; 120*28236bb8SDavid Wales 121*28236bb8SDavid Wales regulator@3e { 122*28236bb8SDavid Wales compatible = "ti,tps65132"; 123*28236bb8SDavid Wales reg = <0x3e>; 124*28236bb8SDavid Wales 125*28236bb8SDavid Wales pinctrl-0 = <®_lcd_default>; 126*28236bb8SDavid Wales pinctrl-names = "default"; 127*28236bb8SDavid Wales 128*28236bb8SDavid Wales reg_lcd_pos: outp { 129*28236bb8SDavid Wales regulator-name = "outp"; 130*28236bb8SDavid Wales regulator-min-microvolt = <5400000>; 131*28236bb8SDavid Wales regulator-max-microvolt = <5600000>; 132*28236bb8SDavid Wales regulator-active-discharge = <1>; 133*28236bb8SDavid Wales regulator-boot-on; 134*28236bb8SDavid Wales enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>; 135*28236bb8SDavid Wales }; 136*28236bb8SDavid Wales 137*28236bb8SDavid Wales reg_lcd_neg: outn { 138*28236bb8SDavid Wales regulator-name = "outn"; 139*28236bb8SDavid Wales regulator-min-microvolt = <5400000>; 140*28236bb8SDavid Wales regulator-max-microvolt = <5600000>; 141*28236bb8SDavid Wales regulator-active-discharge = <1>; 142*28236bb8SDavid Wales regulator-boot-on; 143*28236bb8SDavid Wales enable-gpios = <&tlmm 13 GPIO_ACTIVE_HIGH>; 144*28236bb8SDavid Wales }; 145*28236bb8SDavid Wales }; 146*28236bb8SDavid Wales}; 147*28236bb8SDavid Wales 148*28236bb8SDavid Wales&pm8226_vib { 149*28236bb8SDavid Wales status = "okay"; 150*28236bb8SDavid Wales}; 151*28236bb8SDavid Wales 152*28236bb8SDavid Wales&rpm_requests { 153*28236bb8SDavid Wales regulators { 154*28236bb8SDavid Wales compatible = "qcom,rpm-pm8226-regulators"; 155*28236bb8SDavid Wales 156*28236bb8SDavid Wales pm8226_s3: s3 { 157*28236bb8SDavid Wales regulator-min-microvolt = <1200000>; 158*28236bb8SDavid Wales regulator-max-microvolt = <1300000>; 159*28236bb8SDavid Wales }; 160*28236bb8SDavid Wales 161*28236bb8SDavid Wales pm8226_s4: s4 { 162*28236bb8SDavid Wales regulator-min-microvolt = <1800000>; 163*28236bb8SDavid Wales regulator-max-microvolt = <2200000>; 164*28236bb8SDavid Wales }; 165*28236bb8SDavid Wales 166*28236bb8SDavid Wales pm8226_s5: s5 { 167*28236bb8SDavid Wales regulator-min-microvolt = <1150000>; 168*28236bb8SDavid Wales regulator-max-microvolt = <1150000>; 169*28236bb8SDavid Wales }; 170*28236bb8SDavid Wales 171*28236bb8SDavid Wales pm8226_l1: l1 { 172*28236bb8SDavid Wales regulator-min-microvolt = <1225000>; 173*28236bb8SDavid Wales regulator-max-microvolt = <1225000>; 174*28236bb8SDavid Wales }; 175*28236bb8SDavid Wales 176*28236bb8SDavid Wales pm8226_l2: l2 { 177*28236bb8SDavid Wales regulator-min-microvolt = <1200000>; 178*28236bb8SDavid Wales regulator-max-microvolt = <1200000>; 179*28236bb8SDavid Wales }; 180*28236bb8SDavid Wales 181*28236bb8SDavid Wales pm8226_l3: l3 { 182*28236bb8SDavid Wales regulator-min-microvolt = <750000>; 183*28236bb8SDavid Wales regulator-max-microvolt = <1337500>; 184*28236bb8SDavid Wales }; 185*28236bb8SDavid Wales 186*28236bb8SDavid Wales pm8226_l4: l4 { 187*28236bb8SDavid Wales regulator-min-microvolt = <1200000>; 188*28236bb8SDavid Wales regulator-max-microvolt = <1200000>; 189*28236bb8SDavid Wales }; 190*28236bb8SDavid Wales 191*28236bb8SDavid Wales pm8226_l5: l5 { 192*28236bb8SDavid Wales regulator-min-microvolt = <1200000>; 193*28236bb8SDavid Wales regulator-max-microvolt = <1200000>; 194*28236bb8SDavid Wales }; 195*28236bb8SDavid Wales 196*28236bb8SDavid Wales pm8226_l6: l6 { 197*28236bb8SDavid Wales /* Hall effect sensor */ 198*28236bb8SDavid Wales regulator-min-microvolt = <1800000>; 199*28236bb8SDavid Wales regulator-max-microvolt = <1800000>; 200*28236bb8SDavid Wales regulator-always-on; 201*28236bb8SDavid Wales }; 202*28236bb8SDavid Wales 203*28236bb8SDavid Wales pm8226_l7: l7 { 204*28236bb8SDavid Wales regulator-min-microvolt = <1850000>; 205*28236bb8SDavid Wales regulator-max-microvolt = <1850000>; 206*28236bb8SDavid Wales }; 207*28236bb8SDavid Wales 208*28236bb8SDavid Wales pm8226_l8: l8 { 209*28236bb8SDavid Wales regulator-min-microvolt = <1800000>; 210*28236bb8SDavid Wales regulator-max-microvolt = <1800000>; 211*28236bb8SDavid Wales }; 212*28236bb8SDavid Wales 213*28236bb8SDavid Wales pm8226_l9: l9 { 214*28236bb8SDavid Wales regulator-min-microvolt = <2050000>; 215*28236bb8SDavid Wales regulator-max-microvolt = <2050000>; 216*28236bb8SDavid Wales }; 217*28236bb8SDavid Wales 218*28236bb8SDavid Wales pm8226_l10: l10 { 219*28236bb8SDavid Wales regulator-min-microvolt = <1800000>; 220*28236bb8SDavid Wales regulator-max-microvolt = <1800000>; 221*28236bb8SDavid Wales }; 222*28236bb8SDavid Wales 223*28236bb8SDavid Wales pm8226_l12: l12 { 224*28236bb8SDavid Wales regulator-min-microvolt = <1800000>; 225*28236bb8SDavid Wales regulator-max-microvolt = <1800000>; 226*28236bb8SDavid Wales }; 227*28236bb8SDavid Wales 228*28236bb8SDavid Wales pm8226_l14: l14 { 229*28236bb8SDavid Wales regulator-min-microvolt = <2750000>; 230*28236bb8SDavid Wales regulator-max-microvolt = <2750000>; 231*28236bb8SDavid Wales }; 232*28236bb8SDavid Wales 233*28236bb8SDavid Wales pm8226_l15: l15 { 234*28236bb8SDavid Wales regulator-min-microvolt = <2800000>; 235*28236bb8SDavid Wales regulator-max-microvolt = <2800000>; 236*28236bb8SDavid Wales }; 237*28236bb8SDavid Wales 238*28236bb8SDavid Wales pm8226_l16: l16 { 239*28236bb8SDavid Wales regulator-min-microvolt = <3000000>; 240*28236bb8SDavid Wales regulator-max-microvolt = <3350000>; 241*28236bb8SDavid Wales }; 242*28236bb8SDavid Wales 243*28236bb8SDavid Wales pm8226_l17: l17 { 244*28236bb8SDavid Wales regulator-min-microvolt = <2950000>; 245*28236bb8SDavid Wales regulator-max-microvolt = <2950000>; 246*28236bb8SDavid Wales }; 247*28236bb8SDavid Wales 248*28236bb8SDavid Wales pm8226_l18: l18 { 249*28236bb8SDavid Wales regulator-min-microvolt = <2950000>; 250*28236bb8SDavid Wales regulator-max-microvolt = <2950000>; 251*28236bb8SDavid Wales }; 252*28236bb8SDavid Wales 253*28236bb8SDavid Wales pm8226_l19: l19 { 254*28236bb8SDavid Wales regulator-min-microvolt = <2850000>; 255*28236bb8SDavid Wales regulator-max-microvolt = <2850000>; 256*28236bb8SDavid Wales }; 257*28236bb8SDavid Wales 258*28236bb8SDavid Wales pm8226_l20: l20 { 259*28236bb8SDavid Wales regulator-min-microvolt = <3075000>; 260*28236bb8SDavid Wales regulator-max-microvolt = <3075000>; 261*28236bb8SDavid Wales }; 262*28236bb8SDavid Wales 263*28236bb8SDavid Wales pm8226_l21: l21 { 264*28236bb8SDavid Wales regulator-min-microvolt = <1800000>; 265*28236bb8SDavid Wales regulator-max-microvolt = <2950000>; 266*28236bb8SDavid Wales regulator-allow-set-load; 267*28236bb8SDavid Wales }; 268*28236bb8SDavid Wales 269*28236bb8SDavid Wales pm8226_l22: l22 { 270*28236bb8SDavid Wales regulator-min-microvolt = <1800000>; 271*28236bb8SDavid Wales regulator-max-microvolt = <2950000>; 272*28236bb8SDavid Wales }; 273*28236bb8SDavid Wales 274*28236bb8SDavid Wales pm8226_l23: l23 { 275*28236bb8SDavid Wales regulator-min-microvolt = <1800000>; 276*28236bb8SDavid Wales regulator-max-microvolt = <2950000>; 277*28236bb8SDavid Wales }; 278*28236bb8SDavid Wales 279*28236bb8SDavid Wales pm8226_l24: l24 { 280*28236bb8SDavid Wales regulator-min-microvolt = <1300000>; 281*28236bb8SDavid Wales regulator-max-microvolt = <1350000>; 282*28236bb8SDavid Wales }; 283*28236bb8SDavid Wales 284*28236bb8SDavid Wales pm8226_l25: l25 { 285*28236bb8SDavid Wales regulator-min-microvolt = <1775000>; 286*28236bb8SDavid Wales regulator-max-microvolt = <2125000>; 287*28236bb8SDavid Wales }; 288*28236bb8SDavid Wales 289*28236bb8SDavid Wales pm8226_l26: l26 { 290*28236bb8SDavid Wales regulator-min-microvolt = <1225000>; 291*28236bb8SDavid Wales regulator-max-microvolt = <1225000>; 292*28236bb8SDavid Wales }; 293*28236bb8SDavid Wales 294*28236bb8SDavid Wales pm8226_l27: l27 { 295*28236bb8SDavid Wales regulator-min-microvolt = <2050000>; 296*28236bb8SDavid Wales regulator-max-microvolt = <2050000>; 297*28236bb8SDavid Wales }; 298*28236bb8SDavid Wales 299*28236bb8SDavid Wales pm8226_l28: l28 { 300*28236bb8SDavid Wales regulator-min-microvolt = <1800000>; 301*28236bb8SDavid Wales regulator-max-microvolt = <3400000>; 302*28236bb8SDavid Wales regulator-boot-on; 303*28236bb8SDavid Wales }; 304*28236bb8SDavid Wales 305*28236bb8SDavid Wales pm8226_lvs1: lvs1 { 306*28236bb8SDavid Wales /* Pull-up for I2C lines */ 307*28236bb8SDavid Wales regulator-always-on; 308*28236bb8SDavid Wales }; 309*28236bb8SDavid Wales }; 310*28236bb8SDavid Wales}; 311*28236bb8SDavid Wales 312*28236bb8SDavid Wales&sdhc_1 { 313*28236bb8SDavid Wales vmmc-supply = <&pm8226_l17>; 314*28236bb8SDavid Wales vqmmc-supply = <&pm8226_l6>; 315*28236bb8SDavid Wales bus-width = <8>; 316*28236bb8SDavid Wales non-removable; 317*28236bb8SDavid Wales 318*28236bb8SDavid Wales status = "okay"; 319*28236bb8SDavid Wales}; 320*28236bb8SDavid Wales 321*28236bb8SDavid Wales&smbb { 322*28236bb8SDavid Wales qcom,fast-charge-safe-current = <2000000>; 323*28236bb8SDavid Wales qcom,fast-charge-current-limit = <1900000>; 324*28236bb8SDavid Wales qcom,fast-charge-safe-voltage = <4400000>; 325*28236bb8SDavid Wales qcom,minimum-input-voltage = <4300000>; 326*28236bb8SDavid Wales 327*28236bb8SDavid Wales status = "okay"; 328*28236bb8SDavid Wales}; 329*28236bb8SDavid Wales 330*28236bb8SDavid Wales&usb { 331*28236bb8SDavid Wales extcon = <&smbb>; 332*28236bb8SDavid Wales dr_mode = "peripheral"; 333*28236bb8SDavid Wales 334*28236bb8SDavid Wales status = "okay"; 335*28236bb8SDavid Wales}; 336*28236bb8SDavid Wales 337*28236bb8SDavid Wales&usb_hs_phy { 338*28236bb8SDavid Wales extcon = <&smbb>; 339*28236bb8SDavid Wales v1p8-supply = <&pm8226_l10>; 340*28236bb8SDavid Wales v3p3-supply = <&pm8226_l20>; 341*28236bb8SDavid Wales}; 342*28236bb8SDavid Wales 343*28236bb8SDavid Wales&tlmm { 344*28236bb8SDavid Wales reg_lcd_default: reg-lcd-default-state { 345*28236bb8SDavid Wales pins = "gpio12", "gpio13"; 346*28236bb8SDavid Wales function = "gpio"; 347*28236bb8SDavid Wales drive-strength = <2>; 348*28236bb8SDavid Wales bias-disable; 349*28236bb8SDavid Wales }; 350*28236bb8SDavid Wales}; 351