Merge tag 'pxa1908-dt-for-6.19' of https://gitlab.com/pxa1908-mainline/linux into soc/dt

PXA1908 DT changes for 6.19

Rollup of hardware support which has accumulated since support for the
SoC and coreprimevelte board was merged. This most notably includes
eMMC, PMIC, backlight and touchscreen. A few QoL fixes are also
included.

* tag 'pxa1908-dt-for-6.19' of https://gitlab.com/pxa1908-mainline/linux:
  arm64: dts: marvell: pxa1908: Add power domains
  arm64: dts: marvell: samsung,coreprimevelte: Add USB connector
  arm64: dts: marvell: samsung,coreprimevelte: Fill in memory node
  arm64: dts: marvell: samsung,coreprimevelte: Drop some reserved memory
  arm64: dts: marvell: pxa1908: Move ramoops to SoC dtsi
  arm64: dts: marvell: samsung,coreprimevelte: Add vibrator
  arm64: dts: marvell: pxa1908: Add PWMs
  arm64: dts: marvell: samsung,coreprimevelte: Enable eMMC
  arm64: dts: marvell: samsung,coreprimevelte: Correct CD GPIO
  arm64: dts: marvell: samsung,coreprimevelte: Add backlight
  arm64: dts: samsung,coreprimevelte: add SDIO
  arm64: dts: samsung,coreprimevelte: add touchscreen
  arm64: dts: samsung,coreprimevelte: add PMIC

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann
2025-11-21 16:26:17 +01:00
2 changed files with 283 additions and 35 deletions

View File

@@ -10,6 +10,7 @@
aliases {
mmc0 = &sdh2; /* eMMC */
mmc1 = &sdh0; /* SD card */
mmc2 = &sdh1; /* SDIO */
serial0 = &uart0;
};
@@ -23,6 +24,7 @@
fb0: framebuffer@17177000 {
compatible = "simple-framebuffer";
reg = <0 0x17177000 0 (480 * 800 * 4)>;
power-domains = <&apmu PXA1908_POWER_DOMAIN_DSI>;
width = <480>;
height = <800>;
stride = <(480 * 4)>;
@@ -30,46 +32,26 @@
};
};
/* Bootloader fills this in */
memory@0 {
device_type = "memory";
reg = <0 0 0 0>;
reg = <0 0 0 0x40000000>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/*
* Reserved by the vendor bootloader as a "secure region".
*
* TODO: See if the responsible stage of the bootloader can be
* replaced
*/
secure-region@0 {
reg = <0 0 0 0x1000000>;
};
framebuffer@17000000 {
reg = <0 0x17000000 0 0x1800000>;
no-map;
};
gpu@9000000 {
reg = <0 0x9000000 0 0x1000000>;
};
/* Communications processor, aka modem */
cp@5000000 {
reg = <0 0x5000000 0 0x3000000>;
};
cm3@a000000 {
reg = <0 0xa000000 0 0x80000>;
};
seclog@8000000 {
reg = <0 0x8000000 0 0x100000>;
};
ramoops@8100000 {
compatible = "ramoops";
reg = <0 0x8100000 0 0x40000>;
record-size = <0x8000>;
console-size = <0x20000>;
max-reason = <5>;
};
};
i2c-muic {
@@ -88,6 +70,12 @@
reg = <0x14>;
interrupt-parent = <&gpio>;
interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
usb_con: connector {
compatible = "usb-b-connector";
label = "micro-USB";
type = "micro";
};
};
};
@@ -115,6 +103,21 @@
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
};
backlight {
compatible = "kinetic,ktd2801";
ctrl-gpios = <&gpio 97 GPIO_ACTIVE_HIGH>;
max-brightness = <210>;
};
vibrator {
compatible = "pwm-vibrator";
pwm-names = "enable";
pwms = <&pwm3 100000>;
enable-gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&vibrator_pin>;
};
};
&smmu {
@@ -286,6 +289,151 @@
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
pinctrl-single,low-power-mode = <0x208 0x388>;
};
sdh1_pins_0: sdh1-pins-0 {
pinctrl-single,pins = <
0x170 1
0x174 1
0x178 1
0x17c 1
0x180 1
>;
pinctrl-single,drive-strength = <0x1000 0x1800>;
pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
pinctrl-single,input-schmitt = <0 0x30>;
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
pinctrl-single,low-power-mode = <0 0x388>;
};
sdh1_pins_1: sdh1-pins-1 {
pinctrl-single,pins = <0x184 1>;
pinctrl-single,drive-strength = <0 0x1800>;
pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
pinctrl-single,input-schmitt = <0 0x30>;
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
pinctrl-single,low-power-mode = <0x208 0x388>;
};
sdh1_pins_2: sdh1-pins-2 {
pinctrl-single,pins = <0xec 0>;
pinctrl-single,drive-strength = <0x1000 0x1800>;
pinctrl-single,bias-pullup = <0x8000 0x8000 0 0xc000>;
pinctrl-single,bias-pulldown = <0x8000 0x8000 0 0xa000>;
pinctrl-single,input-schmitt = <0 0x30>;
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
pinctrl-single,low-power-mode = <0 0x388>;
};
sdh1_fast_pins_0: sdh1-fast-pins-0 {
pinctrl-single,pins = <
0x170 1
0x174 1
0x178 1
0x17c 1
0x180 1
>;
pinctrl-single,drive-strength = <0x1800 0x1800>;
pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
pinctrl-single,input-schmitt = <0 0x30>;
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
pinctrl-single,low-power-mode = <0 0x388>;
};
sdh1_fast_pins_1: sdh1-fast-pins-1 {
pinctrl-single,pins = <0x184 1>;
pinctrl-single,drive-strength = <0x1800 0x1800>;
pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
pinctrl-single,input-schmitt = <0 0x30>;
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
pinctrl-single,low-power-mode = <0x208 0x388>;
};
sdh2_pins_0: sdh2-pins-0 {
pinctrl-single,pins = <
0x24 1
0x28 1
0x2c 1
0x30 1
0x34 1
0x38 1
0x3c 1
0x40 1
>;
pinctrl-single,drive-strength = <0x1000 0x1800>;
pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
pinctrl-single,input-schmitt = <0 0x30>;
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
pinctrl-single,low-power-mode = <0 0x388>;
};
sdh2_pins_1: sdh2-pins-1 {
pinctrl-single,pins = <0x64 1>;
pinctrl-single,drive-strength = <0x1000 0x1800>;
pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
pinctrl-single,input-schmitt = <0 0x30>;
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
pinctrl-single,low-power-mode = <0x208 0x388>;
};
sdh2_pins_2: sdh2-pins-2 {
pinctrl-single,pins = <0x5c 1>;
pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>;
pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>;
pinctrl-single,low-power-mode = <0x288 0x388>;
};
sdh2_fast_pins_0: sdh2-fast-pins-0 {
pinctrl-single,pins = <
0x24 1
0x28 1
0x2c 1
0x30 1
0x34 1
0x38 1
0x3c 1
0x40 1
>;
pinctrl-single,drive-strength = <0x1800 0x1800>;
pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
pinctrl-single,input-schmitt = <0 0x30>;
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
pinctrl-single,low-power-mode = <0 0x388>;
};
sdh2_fast_pins_1: sdh2-fast-pins-1 {
pinctrl-single,pins = <0x64 1>;
pinctrl-single,drive-strength = <0x1800 0x1800>;
pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
pinctrl-single,input-schmitt = <0 0x30>;
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
pinctrl-single,low-power-mode = <0x208 0x388>;
};
sdh2_fast_pins_2: sdh2-fast-pins-2 {
pinctrl-single,pins = <0x5c 1>;
pinctrl-single,drive-strength = <0x1800 0x1800>;
pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>;
pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>;
pinctrl-single,low-power-mode = <0x288 0x388>;
};
vibrator_pin: vibrator-pin {
pinctrl-single,pins = <0x12c 0>;
pinctrl-single,drive-strength = <0x1000 0x1800>;
pinctrl-single,bias-pullup = <0x8000 0xc000 0x8000 0xc000>;
pinctrl-single,bias-pulldown = <0xa000 0xa000 0 0xa000>;
pinctrl-single,input-schmitt = <0 0x30>;
pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
pinctrl-single,low-power-mode = <0 0x388>;
};
};
&uart0 {
@@ -303,10 +451,46 @@
&twsi2 {
status = "okay";
pmic@30 {
compatible = "marvell,88pm886-a1";
reg = <0x30>;
interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
wakeup-source;
regulators {
ldo2: ldo2 {
regulator-min-microvolt = <1900000>;
regulator-max-microvolt = <3100000>;
};
ldo6: ldo6 {
regulator-boot-on;
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
};
ldo14: ldo14 {
regulator-boot-on;
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
};
};
};
};
&twsi3 {
status = "okay";
touchscreen@50 {
compatible = "imagis,ist3032c";
reg = <0x50>;
interrupt-parent = <&gpio>;
interrupts = <72 IRQ_TYPE_EDGE_FALLING>;
vdd-supply = <&ldo2>;
touchscreen-size-x = <480>;
touchscreen-size-y = <800>;
};
};
&usb {
@@ -314,18 +498,33 @@
};
&sdh2 {
/* Disabled for now because initialization fails with -ETIMEDOUT. */
status = "disabled";
pinctrl-names = "default", "state_uhs";
pinctrl-0 = <&sdh2_pins_0 &sdh2_pins_1 &sdh2_pins_2>;
pinctrl-1 = <&sdh2_fast_pins_0 &sdh2_fast_pins_1 &sdh2_fast_pins_2>;
bus-width = <8>;
non-removable;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
};
&sdh0 {
pinctrl-names = "default";
pinctrl-0 = <&sdh0_pins_0 &sdh0_pins_1 &sdh0_pins_2>;
cd-gpios = <&gpio 11 0>;
cd-inverted;
cd-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
bus-width = <4>;
wp-inverted;
vmmc-supply = <&ldo14>;
vqmmc-supply = <&ldo6>;
};
&sdh1 {
pinctrl-names = "default", "state_uhs";
pinctrl-0 = <&sdh1_pins_0 &sdh1_pins_1 &sdh1_pins_2>;
pinctrl-1 = <&sdh1_fast_pins_0 &sdh1_fast_pins_1 &sdh1_pins_2>;
bus-width = <4>;
non-removable;
};
&pwm3 {
status = "okay";
};

View File

@@ -3,6 +3,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/marvell,pxa1908.h>
#include <dt-bindings/power/marvell,pxa1908-power.h>
/ {
model = "Marvell Armada PXA1908";
@@ -58,6 +59,20 @@
method = "smc";
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
ramoops@8100000 {
compatible = "ramoops";
reg = <0 0x8100000 0 0x40000>;
record-size = <0x8000>;
console-size = <0x20000>;
max-reason = <5>;
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
@@ -79,6 +94,7 @@
#iommu-cells = <1>;
interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&apmu PXA1908_POWER_DOMAIN_VPU>;
status = "disabled";
};
@@ -195,6 +211,38 @@
};
};
pwm0: pwm@1a000 {
compatible = "marvell,pxa250-pwm";
reg = <0x1a000 0x10>;
clocks = <&apbc PXA1908_CLK_PWM0>;
#pwm-cells = <1>;
status = "disabled";
};
pwm1: pwm@1a400 {
compatible = "marvell,pxa250-pwm";
reg = <0x1a400 0x10>;
clocks = <&apbc PXA1908_CLK_PWM1>;
#pwm-cells = <1>;
status = "disabled";
};
pwm2: pwm@1a800 {
compatible = "marvell,pxa250-pwm";
reg = <0x1a800 0x10>;
clocks = <&apbc PXA1908_CLK_PWM2>;
#pwm-cells = <1>;
status = "disabled";
};
pwm3: pwm@1ac00 {
compatible = "marvell,pxa250-pwm";
reg = <0x1ac00 0x10>;
clocks = <&apbc PXA1908_CLK_PWM3>;
#pwm-cells = <1>;
status = "disabled";
};
pmx: pinmux@1e000 {
compatible = "marvell,pxa1908-padconf", "pinconf-single";
reg = <0x1e000 0x330>;
@@ -291,9 +339,10 @@
};
apmu: clock-controller@82800 {
compatible = "marvell,pxa1908-apmu";
compatible = "marvell,pxa1908-apmu", "syscon";
reg = <0x82800 0x400>;
#clock-cells = <1>;
#power-domain-cells = <1>;
};
};
};