More Qualcomm Arm32 DeviceTree updated for v6.20

MSM8226 is switched to generic RPMPD_ indices, to allow dropping the
 duplicate platform-specific constants.
 
 On MSM8960 two additional GSBIs and I2C controllers are introduced.
 Accelerometer, Magnetometer, NFC and Light/Proximity sensors are then
 enabled on the Samsung Galaxy Express.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAml6JRIACgkQCx85Pw2Z
 rcUe3Q/+IK1PvDC31p4QRztTvwiOR+SoCbeD07eojTi8ZqDteRzxL0z4xa76erH0
 zqdUhlPaGPu/eW2QJl+sMFFCBk+Q2L1jkIYwARC/PiVkBZ8VqUcnQoSs/dC85nfN
 mmEHR8cu87IIsRPcsxUsw0X52FTZLQ8ydgNv38/NuikcoN74+WH+xUDxAhQCcUhT
 pcYgjq78GC7wgw6MyyPrJ22ue9v4M+qJZ8ho8mhk16jcAS+u2CDA1M1uY6r+QWSY
 8CWQMbYb61xJAyKn0oaGHeCVH8VlmdXIKPTsCt2j1GJ7Yccp8MmzGRoWDYKxnJp2
 0Z82xDdbR2ajZ+l2S2aAsahQFTyPREVeM5Voju/0ietNKNIBYx9wJ3QuIhU5MSLj
 +uIp8QuJXOaDLRHvF05CheBhWM356WCTFJ1gGnZlpdZAE9AOi7tKRb/B1gyegdFG
 qajBbrrnkrogzcfBwswDwot59CS6JT6THvpyGtAvDwvW4izAGF+IIj2eeEyElbuE
 qwsD7N7dqnUCxl/va+QZFpiZTFjyqQQ6kMrO+pt2BsxGVhbJqrMrnM10fOyWpmh9
 ild64iYRSefo7GO33Eu4kAU0yo+ljKJPeLyIYnZpmyphaGIrfYbXvoKV1AXbAYx1
 9SpNW3c8jt656fVaD3PZDxO82YFg+8KxsT3ug3NYmfG8OOqsTCo=
 =DJx7
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml6UNEACgkQmmx57+YA
 GNnCjA//VvR7rIvIl2hp/jgjGt1g69e7W8xaeBBOldyn8TPJf2wT6bG1Rposz9Ab
 NL33moN30IePmLP/4qDi4xPwnEH4nm4XxZ5UskpkXfG1om0EnnUOKvWXg6YAX0Yc
 4kRS9nHABUECTACCOQ3JR71uRV+bDBYcJXSVtlT1D+mQVYzrlz5fkRZ2Z5bQPkhT
 enxiBb1gbIeaWJc2VsZ5wAZw+KsQmYMN7E0Ot79nqqWVHE3uR/cYovSdSw1BJkDe
 5gXSGDMMQ1VX4qIo9JNH2WB+UlczLXvI7rk68uKawPGAb69xpALXg2QV5OfNpHL9
 9PNP6kvbmxzw8HqSRo5X7bf+OKaEDzzgrNUmMBeSbSmeazBDE1TBcVBhJLNncCWL
 PCC5GBT77I7e0nXuZdoX1uhAIa5RUXqoMRN/fwqZ2tl4eyv+aiyW7V+TPn6XIenN
 vYu5pxj897wu8gwWozcD/YST0gJpyh4BENTGU+ftZW3X3wcrTaW+4GIE95vNFlDJ
 7/dHcJayeKK0BPDHxcbKQJL9uscUvz6z0JkVZGsHBpQxbuhXJVfZPDXbZQLR10SG
 wQzZp+rlzI54cBg8D27u8RGcEKhSVssYByqN2aV16QFI/E+hK7Vmu2ArlsjDlaTg
 a0+6PsuTZHHHnjgjU1aAMhCRW081tYOR8YYOhtD76Q27hSf+1Sw=
 =NSMm
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm32-for-6.20-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt

More Qualcomm Arm32 DeviceTree updated for v6.20

MSM8226 is switched to generic RPMPD_ indices, to allow dropping the
duplicate platform-specific constants.

On MSM8960 two additional GSBIs and I2C controllers are introduced.
Accelerometer, Magnetometer, NFC and Light/Proximity sensors are then
enabled on the Samsung Galaxy Express.

* tag 'qcom-arm32-for-6.20-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  ARM: dts: qcom: switch to RPMPD_* indices
  ARM: dts: qcom: msm8960: expressatt: Add Accelerometer
  ARM: dts: qcom: msm8960: expressatt: Add Magnetometer
  ARM: dts: qcom: msm8960: expressatt: Add NFC
  ARM: dts: qcom: msm8960: expressatt: Add Light/Proximity Sensor
  ARM: dts: qcom: msm8960: Add GSBI2 & GSBI7

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2026-01-28 19:09:20 +01:00
commit 2120005213
3 changed files with 207 additions and 2 deletions

View file

@ -959,7 +959,7 @@
resets = <&gcc GCC_MSS_RESTART>;
reset-names = "mss_restart";
power-domains = <&rpmpd MSM8226_VDDCX>;
power-domains = <&rpmpd RPMPD_VDDCX>;
power-domain-names = "cx";
qcom,ext-bhs-reg = <&tcsr_regs_1 0x194>;
@ -1372,7 +1372,7 @@
<&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
power-domains = <&rpmpd MSM8226_VDDCX>;
power-domains = <&rpmpd RPMPD_VDDCX>;
power-domain-names = "cx";
clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;

View file

@ -54,6 +54,31 @@
};
};
&gsbi2 {
qcom,mode = <GSBI_PROT_I2C>;
status = "okay";
};
&gsbi2_i2c {
status = "okay";
light-sensor@39 {
compatible = "amstaos,tmd2772";
reg = <0x39>;
interrupts-extended = <&pm8921_gpio 6 IRQ_TYPE_EDGE_FALLING>;
vdd-supply = <&pm8921_l9>;
vddio-supply = <&pm8921_lvs4>;
/* TODO: Proximity doesn't work */
amstaos,proximity-diodes = <0>;
led-max-microamp = <100000>;
pinctrl-0 = <&prox_sensor_int>;
pinctrl-names = "default";
};
};
&gsbi5 {
qcom,mode = <GSBI_PROT_I2C_UART>;
status = "okay";
@ -157,12 +182,45 @@
bias-disable;
drive-strength = <2>;
};
nfc_default: nfc-default-state {
irq-pins {
pins = "gpio106";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
firmware-pins {
pins = "gpio92";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};
};
&pm8921 {
interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>;
};
&pm8921_gpio {
prox_sensor_int: prox-sensor-int-state {
pins = "gpio6";
function = "normal";
input-enable;
bias-disable;
};
nfc_enable: nfc-enable-state {
pins = "gpio21";
function = "normal";
bias-disable;
qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
power-source = <PM8921_GPIO_S4>;
};
};
&rpm {
regulators {
compatible = "qcom,rpm-pm8921-regulators";
@ -408,3 +466,54 @@
dr_mode = "otg";
status = "okay";
};
&gsbi7 {
qcom,mode = <GSBI_PROT_I2C>;
status = "okay";
};
&gsbi7_i2c {
status = "okay";
nfc@2b {
compatible = "nxp,pn544-i2c";
reg = <0x2b>;
interrupts-extended = <&tlmm 106 IRQ_TYPE_EDGE_RISING>;
enable-gpios = <&pm8921_gpio 21 GPIO_ACTIVE_HIGH>;
firmware-gpios = <&tlmm 92 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&nfc_default &nfc_enable>;
pinctrl-names = "default";
};
};
&gsbi12 {
qcom,mode = <GSBI_PROT_I2C>;
status = "okay";
};
&gsbi12_i2c {
status = "okay";
accelerometer@18 {
compatible = "bosch,bma254";
reg = <0x18>;
vdd-supply = <&pm8921_l9>;
vddio-supply = <&pm8921_lvs4>;
mount-matrix = "-1", "0", "0",
"0", "-1", "0",
"0", "0", "1";
};
magnetometer@2e {
compatible = "yamaha,yas532";
reg = <0x2e>;
vdd-supply = <&pm8921_l9>;
iovdd-supply = <&pm8921_lvs4>;
/* TODO: Figure out Mount Matrix */
};
};

View file

@ -149,6 +149,24 @@
};
};
i2c2_default_state: i2c2-default-state {
i2c2-pins {
pins = "gpio12", "gpio13";
function = "gsbi2";
drive-strength = <8>;
bias-disable;
};
};
i2c2_sleep_state: i2c2-sleep-state {
i2c2-pins {
pins = "gpio12", "gpio13";
function = "gpio";
drive-strength = <2>;
bias-bus-hold;
};
};
i2c3_default_state: i2c3-default-state {
i2c3-pins {
pins = "gpio16", "gpio17";
@ -167,6 +185,24 @@
};
};
i2c7_default_state: i2c7-default-state {
i2c7-pins {
pins = "gpio32", "gpio33";
function = "gsbi7";
drive-strength = <8>;
bias-disable;
};
};
i2c7_sleep_state: i2c7-sleep-state {
i2c7-pins {
pins = "gpio32", "gpio33";
function = "gpio";
drive-strength = <2>;
bias-bus-hold;
};
};
i2c8_default_state: i2c8-default-state {
i2c8-pins {
pins = "gpio36", "gpio37";
@ -543,6 +579,36 @@
};
};
gsbi2: gsbi@16100000 {
compatible = "qcom,gsbi-v1.0.0";
reg = <0x16100000 0x100>;
ranges;
cell-index = <2>;
clocks = <&gcc GSBI2_H_CLK>;
clock-names = "iface";
#address-cells = <1>;
#size-cells = <1>;
status = "disabled";
gsbi2_i2c: i2c@16180000 {
compatible = "qcom,i2c-qup-v1.1.1";
reg = <0x16180000 0x1000>;
pinctrl-0 = <&i2c2_default_state>;
pinctrl-1 = <&i2c2_sleep_state>;
pinctrl-names = "default", "sleep";
interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GSBI2_QUP_CLK>,
<&gcc GSBI2_H_CLK>;
clock-names = "core",
"iface";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
};
gsbi3: gsbi@16200000 {
compatible = "qcom,gsbi-v1.0.0";
reg = <0x16200000 0x100>;
@ -600,6 +666,36 @@
};
};
gsbi7: gsbi@16600000 {
compatible = "qcom,gsbi-v1.0.0";
reg = <0x16600000 0x100>;
ranges;
cell-index = <7>;
clocks = <&gcc GSBI7_H_CLK>;
clock-names = "iface";
#address-cells = <1>;
#size-cells = <1>;
status = "disabled";
gsbi7_i2c: i2c@16680000 {
compatible = "qcom,i2c-qup-v1.1.1";
reg = <0x16680000 0x1000>;
pinctrl-0 = <&i2c7_default_state>;
pinctrl-1 = <&i2c7_sleep_state>;
pinctrl-names = "default", "sleep";
interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GSBI7_QUP_CLK>,
<&gcc GSBI7_H_CLK>;
clock-names = "core",
"iface";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
};
gsbi8: gsbi@1a000000 {
compatible = "qcom,gsbi-v1.0.0";
reg = <0x1a000000 0x100>;