| // SPDX-License-Identifier: GPL-2.0 |
| /* |
| * Samsung Galaxy J6 (j6lte) device tree source |
| * |
| * Copyright (c) 2018 Samsung Electronics Co., Ltd. |
| * Copyright (c) 2025 Kaustabh Chakraborty <kauschluss@disroot.org> |
| */ |
| |
| /dts-v1/; |
| #include "exynos7870.dtsi" |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/input/input.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| |
| / { |
| model = "Samsung Galaxy J6"; |
| compatible = "samsung,j6lte", "samsung,exynos7870"; |
| chassis-type = "handset"; |
| |
| aliases { |
| mmc0 = &mmc0; |
| mmc1 = &mmc1; |
| mmc2 = &mmc2; |
| serial0 = &serial0; |
| serial1 = &serial1; |
| serial2 = &serial2; |
| }; |
| |
| chosen { |
| stdout-path = &serial2; |
| }; |
| |
| gpio-hall-effect-sensor { |
| compatible = "gpio-keys"; |
| label = "GPIO Hall Effect Sensor"; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&hall_irq>; |
| |
| event-hall-effect-sensor { |
| label = "Hall Effect Sensor"; |
| gpios = <&gpa1 3 GPIO_ACTIVE_LOW>; |
| linux,input-type = <EV_SW>; |
| linux,code = <SW_LID>; |
| linux,can-disable; |
| wakeup-source; |
| }; |
| }; |
| |
| gpio-keys { |
| compatible = "gpio-keys"; |
| label = "GPIO Keys"; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&key_power &key_voldown &key_volup>; |
| |
| key-power { |
| label = "Power Key"; |
| gpios = <&gpa0 0 GPIO_ACTIVE_LOW>; |
| linux,code = <KEY_POWER>; |
| }; |
| |
| key-voldown { |
| label = "Volume Down Key"; |
| gpios = <&gpa2 1 GPIO_ACTIVE_LOW>; |
| linux,code = <KEY_VOLUMEDOWN>; |
| }; |
| |
| key-volup { |
| label = "Volume Up Key"; |
| gpios = <&gpa2 0 GPIO_ACTIVE_LOW>; |
| linux,code = <KEY_VOLUMEUP>; |
| }; |
| }; |
| |
| memory@40000000 { |
| device_type = "memory"; |
| reg = <0x0 0x40000000 0x3d800000>, |
| <0x0 0x80000000 0x40000000>; |
| }; |
| |
| pwrseq_mmc1: pwrseq-mmc1 { |
| compatible = "mmc-pwrseq-simple"; |
| reset-gpios = <&gpd3 6 GPIO_ACTIVE_LOW>; |
| }; |
| |
| /* mmc2: vmmc */ |
| vdd_fixed_mmc2: regulator-fixed-mmc2 { |
| compatible = "regulator-fixed"; |
| regulator-name = "vdd_fixed_mmc2"; |
| regulator-max-microvolt = <2800000>; |
| regulator-min-microvolt = <2800000>; |
| gpio = <&gpc0 0 GPIO_ACTIVE_HIGH>; |
| enable-active-high; |
| }; |
| |
| reserved-memory { |
| #address-cells = <2>; |
| #size-cells = <1>; |
| ranges; |
| |
| ramoops@46e00000 { |
| compatible = "ramoops"; |
| reg = <0x0 0x46e00000 0x8000>; |
| console-size = <0x4000>; |
| pmsg-size = <0x4000>; |
| }; |
| |
| cont_splash_mem: framebuffer@67000000 { |
| reg = <0x0 0x67000000 (720 * 1480 * 4)>; |
| iommu-addresses = <&decon 0x67000000 (720 * 1480 * 4)>; |
| no-map; |
| }; |
| }; |
| |
| vibrator { |
| compatible = "regulator-haptic"; |
| haptic-supply = <&vdd_ldo32>; |
| min-microvolt = <3300000>; |
| max-microvolt = <3300000>; |
| }; |
| }; |
| |
| &decon { |
| memory-region = <&cont_splash_mem>; |
| |
| status = "okay"; |
| }; |
| |
| &dsi { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| samsung,burst-clock-frequency = <500000000>; |
| samsung,esc-clock-frequency = <16000000>; |
| samsung,pll-clock-frequency = <26000000>; |
| |
| status = "okay"; |
| |
| panel@0 { |
| compatible = "samsung,s6e8aa5x01-ams561ra01"; |
| reg = <0>; |
| }; |
| }; |
| |
| &gpu { |
| status = "okay"; |
| }; |
| |
| &hsi2c0 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| status = "okay"; |
| |
| pmic@66 { |
| compatible = "samsung,s2mpu05-pmic"; |
| reg = <0x66>; |
| interrupt-parent = <&gpa0>; |
| interrupts = <2 IRQ_TYPE_LEVEL_LOW>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pmic_irq>; |
| |
| regulators { |
| vdd_buck1: buck1 { |
| regulator-name = "vdd_buck1"; |
| regulator-min-microvolt = <500000>; |
| regulator-max-microvolt = <1300000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| vdd_buck2: buck2 { |
| regulator-name = "vdd_buck2"; |
| regulator-min-microvolt = <500000>; |
| regulator-max-microvolt = <1300000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| vdd_buck3: buck3 { |
| regulator-name = "vdd_buck3"; |
| regulator-min-microvolt = <500000>; |
| regulator-max-microvolt = <1300000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| vdd_buck4: buck4 { |
| regulator-name = "vdd_buck4"; |
| regulator-min-microvolt = <1200000>; |
| regulator-max-microvolt = <1500000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| vdd_buck5: buck5 { |
| regulator-name = "vdd_buck5"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <2100000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| vdd_ldo1: ldo1 { |
| regulator-name = "vdd_ldo1"; |
| regulator-min-microvolt = <650000>; |
| regulator-max-microvolt = <1350000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| /* mmc2: vqmmc */ |
| vdd_ldo2: ldo2 { |
| regulator-name = "vdd_ldo2"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <2800000>; |
| regulator-ramp-delay = <12000>; |
| }; |
| |
| vdd_ldo3: ldo3 { |
| regulator-name = "vdd_ldo3"; |
| regulator-min-microvolt = <800000>; |
| regulator-max-microvolt = <2375000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| vdd_ldo4: ldo4 { |
| regulator-name = "vdd_ldo4"; |
| regulator-min-microvolt = <800000>; |
| regulator-max-microvolt = <1350000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| vdd_ldo5: ldo5 { |
| regulator-name = "vdd_ldo5"; |
| regulator-min-microvolt = <800000>; |
| regulator-max-microvolt = <1350000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| vdd_ldo6: ldo6 { |
| regulator-name = "vdd_ldo6"; |
| regulator-min-microvolt = <800000>; |
| regulator-max-microvolt = <1350000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| vdd_ldo7: ldo7 { |
| regulator-name = "vdd_ldo7"; |
| regulator-min-microvolt = <800000>; |
| regulator-max-microvolt = <2375000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| /* usbdrd: vdd33 */ |
| vdd_ldo8: ldo8 { |
| regulator-name = "vdd_ldo8"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <3375000>; |
| regulator-ramp-delay = <12000>; |
| }; |
| |
| vdd_ldo9: ldo9 { |
| regulator-name = "vdd_ldo9"; |
| regulator-min-microvolt = <650000>; |
| regulator-max-microvolt = <1350000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| vdd_ldo10: ldo10 { |
| regulator-name = "vdd_ldo10"; |
| regulator-min-microvolt = <650000>; |
| regulator-max-microvolt = <1350000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| vdd_ldo25: ldo25 { |
| regulator-name = "vdd_ldo25"; |
| regulator-min-microvolt = <800000>; |
| regulator-max-microvolt = <2375000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| /* mmc0: vmmc */ |
| vdd_ldo26: ldo26 { |
| regulator-name = "vdd_ldo26"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <3375000>; |
| regulator-ramp-delay = <12000>; |
| }; |
| |
| /* mmc0: vqmmc */ |
| vdd_ldo27: ldo27 { |
| regulator-name = "vdd_ldo27"; |
| regulator-min-microvolt = <800000>; |
| regulator-max-microvolt = <2375000>; |
| regulator-ramp-delay = <12000>; |
| }; |
| |
| vdd_ldo29: ldo29 { |
| regulator-name = "vdd_ldo29"; |
| regulator-min-microvolt = <3000000>; |
| regulator-max-microvolt = <3000000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| vdd_ldo30: ldo30 { |
| regulator-name = "vdd_ldo30"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| vdd_ldo31: ldo31 { |
| regulator-name = "vdd_ldo31"; |
| regulator-min-microvolt = <2800000>; |
| regulator-max-microvolt = <2800000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| /* vibrator: haptic */ |
| vdd_ldo32: ldo32 { |
| regulator-name = "vdd_ldo32"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-ramp-delay = <12000>; |
| }; |
| |
| vdd_ldo33: ldo33 { |
| regulator-name = "vdd_ldo33"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| /* touchscreen: vdd */ |
| vdd_ldo34: ldo34 { |
| regulator-name = "vdd_ldo34"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| vdd_ldo35: ldo35 { |
| regulator-name = "vdd_ldo35"; |
| regulator-min-microvolt = <2800000>; |
| regulator-max-microvolt = <2800000>; |
| regulator-ramp-delay = <12000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| }; |
| }; |
| }; |
| |
| &i2c5 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| samsung,i2c-sda-delay = <100>; |
| samsung,i2c-max-bus-freq = <400000>; |
| |
| status = "okay"; |
| |
| accelerometer@1d { |
| compatible = "st,lis2ds12"; |
| reg = <0x1d>; |
| interrupt-parent = <&gpa2>; |
| interrupts = <3 IRQ_TYPE_EDGE_RISING>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&accel_irq>; |
| |
| mount-matrix = "-1", "0", "0", |
| "0", "1", "0", |
| "0", "0", "-1"; |
| |
| st,drdy-int-pin = <1>; |
| }; |
| }; |
| |
| &i2c6 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| samsung,i2c-sda-delay = <100>; |
| samsung,i2c-max-bus-freq = <400000>; |
| |
| status = "okay"; |
| |
| touchscreen@20 { |
| compatible = "zinitix,bt532"; |
| reg = <0x20>; |
| interrupt-parent = <&gpa0>; |
| interrupts = <6 IRQ_TYPE_LEVEL_LOW>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&touch_irq>; |
| |
| touchscreen-size-x = <720>; |
| touchscreen-size-y = <1480>; |
| |
| vdd-supply = <&vdd_ldo34>; |
| }; |
| }; |
| |
| &mmc0 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_rdqs &sd0_bus1 &sd0_bus4 &sd0_bus8>; |
| |
| vmmc-supply = <&vdd_ldo26>; |
| vqmmc-supply = <&vdd_ldo27>; |
| |
| bus-width = <8>; |
| fifo-depth = <64>; |
| samsung,dw-mshc-ciu-div = <3>; |
| samsung,dw-mshc-sdr-timing = <0 4>; |
| samsung,dw-mshc-ddr-timing = <2 4>; |
| non-removable; |
| |
| status = "okay"; |
| }; |
| |
| &mmc1 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus1 &sd1_bus4>; |
| |
| mmc-pwrseq = <&pwrseq_mmc1>; |
| |
| bus-width = <4>; |
| fifo-depth = <64>; |
| samsung,dw-mshc-ciu-div = <3>; |
| samsung,dw-mshc-sdr-timing = <0 3>; |
| samsung,dw-mshc-ddr-timing = <1 2>; |
| non-removable; |
| cap-sd-highspeed; |
| cap-sdio-irq; |
| |
| status = "okay"; |
| |
| wifi@1 { |
| compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac"; |
| reg = <0x1>; |
| interrupt-names = "host-wake"; |
| interrupt-parent = <&gpa2>; |
| interrupts = <2 IRQ_TYPE_LEVEL_LOW>; |
| |
| reset-gpios = <&gpd3 6 GPIO_ACTIVE_LOW>; |
| }; |
| }; |
| |
| &mmc2 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4 &dwmmc2_irq>; |
| |
| vmmc-supply = <&vdd_fixed_mmc2>; |
| vqmmc-supply = <&vdd_ldo2>; |
| |
| bus-width = <4>; |
| card-detect-delay = <200>; |
| fifo-depth = <64>; |
| samsung,dw-mshc-ciu-div = <3>; |
| samsung,dw-mshc-sdr-timing = <0 3>; |
| samsung,dw-mshc-ddr-timing = <1 2>; |
| sd-uhs-sdr50; |
| sd-uhs-sdr104; |
| broken-cd; |
| disable-wp; |
| |
| status = "okay"; |
| }; |
| |
| &oscclk { |
| clock-frequency = <26000000>; |
| }; |
| |
| &pinctrl_alive { |
| accel_irq: accel-irq-pins { |
| samsung,pins = "gpa2-3"; |
| samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; |
| }; |
| |
| dwmmc2_irq: dwmmc2-irq-pins { |
| samsung,pins = "gpa0-1"; |
| samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; |
| }; |
| |
| fuel_irq: fuel-irq-pins { |
| samsung,pins = "gpa0-3"; |
| samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; |
| }; |
| |
| hall_irq: hall-irq-pins { |
| samsung,pins = "gpa1-3"; |
| samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; |
| }; |
| |
| key_power: key-power-pins { |
| samsung,pins = "gpa0-0"; |
| samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; |
| }; |
| |
| key_voldown: key-voldown-pins { |
| samsung,pins = "gpa2-1"; |
| samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; |
| }; |
| |
| key_volup: key-volup-pins { |
| samsung,pins = "gpa2-0"; |
| samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; |
| }; |
| |
| pmic_irq: pmic-irq-pins { |
| samsung,pins = "gpa0-2"; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; |
| samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>; |
| }; |
| |
| touch_irq: touch-irq-pins { |
| samsung,pins = "gpa0-6"; |
| samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>; |
| }; |
| |
| wlan_hostwake: wlan-hostwake-pins { |
| samsung,pins = "gpa2-2"; |
| samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; |
| }; |
| }; |
| |
| &pinctrl_top { |
| bt_enable: bt-enable-pins { |
| samsung,pins = "gpd4-0"; |
| samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; |
| samsung,pin-con-pdn = <EXYNOS_PIN_PDN_PREV>; |
| samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; |
| }; |
| |
| wlan_enable: wlan-enable-pins { |
| samsung,pins = "gpd3-6"; |
| samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; |
| samsung,pin-con-pdn = <EXYNOS_PIN_PDN_PREV>; |
| samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>; |
| samsung,pin-val = <0>; |
| }; |
| }; |
| |
| &serial1 { |
| status = "okay"; |
| |
| bluetooth { |
| compatible = "brcm,bcm43430a1-bt"; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&bt_btwake &bt_hostwake &bt_enable>; |
| |
| device-wakeup-gpios = <&gpa1 2 GPIO_ACTIVE_HIGH>; |
| host-wakeup-gpios = <&gpa1 6 GPIO_ACTIVE_HIGH>; |
| shutdown-gpios = <&gpd4 0 GPIO_ACTIVE_HIGH>; |
| |
| max-speed = <3000000>; |
| }; |
| }; |
| |
| &serial2 { |
| status = "okay"; |
| }; |
| |
| &usbdrd { |
| vdd33-supply = <&vdd_ldo8>; |
| |
| status = "okay"; |
| }; |