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.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRt/0HWDfMUtbdrpjCtMZNSRY+tAwUCaOz5IwAKCRCtMZNSRY+t
 A/JXAPsGp+81P4vgINVTfceFPqbcqd1gnFk/ZCqBJjvdGvR73AD/R6Se5lwtSIq6
 sfcm47LpbZ+Bv/9UbZMA7D0il67tcwY=
 =NjpT
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmkghKoACgkQmmx57+YA
 GNkBIg//WKaHWlNKGJAMmjnNSkorAoTpEyEETppiLZIXqsxYuS5zfbYXO7bMDKao
 o2yioNyLtD4ZEcjgw+cx4v0gkbdwmAfNwKLuSBsRsg1MbxgxNjAbgF8QKyMp6/Iu
 nEFbHi8zf/Ypb9Su5G4pteHVJQNJe1glU0DiV7Oi/x/g1y7va3tjQgys6LnPQ1Z4
 V5dshWcbklcODFMDkFkmJ12d6iXV7AYFhkjtaemqq+F1j4M92rBRAlOHIWuhB5Wh
 BH5dZG0c8AGg0394smwOe9LjqN0jVWu+/GeWr3fs8GS2nSQS1rhZfewkR5YAl7nL
 K1MzuvzwXQ9r1A113Yu7LyzBkIl2K795L/AKDOHMtfLZHaqG4LVUVwSbCqwZsUvt
 mThZq6v0bbs4YdMLN+RrTCH/Z9vhe+5I/kG0JXiUcvQbDyBAw50aGBQBG5uAuzrT
 Gyvs8Fl7cqzpjIWfKHZdc/5HRNlufFHzyykPmoBhfZAfpTShfJ4917KAaTctzNSf
 GCZzYPMHO1E/Y1d3hyRGUsHGD8JaPzl4Ki75EnKvSexs5rGBYLBeJCDONuV9Dkp0
 9scvpWo8Sr7LlzBhYpOkJERxMcRY5L7K5CZKkYABFENvdw3mOKctaVEtdNE4Uhe+
 C6ga3GP8vC/iytnFRl7Xnf/1HYgK9xyz80UhzvVNysMW7Fc8NFE=
 =n+0B
 -----END PGP SIGNATURE-----

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
commit 6ef9a6fca7
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 @@ chosen {
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 @@ fb0: framebuffer@17177000 {
};
};
/* 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 @@ muic: extcon@14 {
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 @@ key-voldown {
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 @@ sdh0_pins_2: sdh0-pins-2 {
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 @@ &twsi1 {
&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 @@ &usb {
};
&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 @@ psci {
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 @@ smmu: iommu@c0010000 {
#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 @@ gpio@100 {
};
};
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 @@ sdh2: mmc@81000 {
};
apmu: clock-controller@82800 {
compatible = "marvell,pxa1908-apmu";
compatible = "marvell,pxa1908-apmu", "syscon";
reg = <0x82800 0x400>;
#clock-cells = <1>;
#power-domain-cells = <1>;
};
};
};