linux/arch/arm/boot/dts/st/ste-hrefv60plus.dtsi
Arnd Bergmann 5a256cf710 More Ux500 device tree updates for v6.8
The HREF520 reference design had the wrong analog baseband
 defined causing a boot regression.
 
 Was AB8500, but this board has AB8505.
 
 Rearrange the device trees to make it possible to define
 a different AB and slot it in.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEElDRnuGcz/wPCXQWMQRCzN7AZXXMFAmV8oEwACgkQQRCzN7AZ
 XXN6xhAAt0iSyMtZhJIRVFHYr6fMUzDvQ+QeaKsXAQ1L7gcs/UN1wYTcHsFATW7j
 6CK7OQsOQsjfi6QyhpnPMVBbhv1632LBHhe6IXmIz6C/npnC9uaedxpO9jEiCfb7
 W0EXEyleCg8uqKnFxyUy0shklH3XQBodv75ZKsHqqk59QHS+H7aBkUo8fWbNra1z
 pQsujNDSg1d2kjpmHLpDOwmE7NhbFxBeTlPs/4/Q81RCdeJaKQEoj7LoNq0tBcLr
 1JXXWoSJ5yY1U20CNYI48Pa7XzxT3uDbTsRt7TMqp67FZHHEPvdQLvp/q0cO6RV6
 eg3A/T61PO2stknDmPCYvsEh3KAEDpFpye3wMJ6bcQe9SPhtAmgyu0NItopF8xxc
 bOnl8TQAzh3GWACgdLwGCZ+YkVv6E41S8YlNi8sC457U8BG1Qi4n7QKReQWfBE6J
 LlYe2dO46J0b07BrWKlQq0eCMQB57UkTiHHpYiAS3X1eP/iSyZoEn+oD5gtrGL85
 vQuNOe9R1mT5AJB+OLa3OS6zUEHms1LWoih+VIoXors/+3idsOmga1CF31QEZCA/
 XvGhZg68C9CMYd8igKO/ToWTcdlLAOfx85QBr99yW05nJG7o1Cw7TCO5J/xay/1h
 glwGQe6es0ee/l+rkFGm4wDocfGnb8iB9t3JqVANViXDAJyzVBk=
 =zGCp
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmWEaPQACgkQYKtH/8kJ
 Uie9bw//X3UgWlngeeSnOKf8kYz6LXfKKHeX7vs17XEzfAtN8sz9QxFZBK7/5iUp
 +Pt9sEZ/h+aSpabmb9LAWL+4aC2Wi43rWnMCINhiANNKyaa36+S+wD5ll2HXn24Y
 Kd5I/sQQTSrY3fOuinQmc6hFS/PjSNGjjpsWW9lqW3pMTUJjeoNwYbiZTizx+jxz
 /idRc2UxN5jn9yYmCqG/81VZTNSDtFgfPn3cfXyou1etERD7BSlynZgR3+xDFSCw
 N0rzlDltS0klnDSD9sogC3ta2ps75Vc5WjZdF15kL6KIqyPOs65Zw9Yg625A9o/O
 xt3lR/Yr/EhWnSd0eIPuQ3kH82QIo995Hpu9DDItxn4OpiKYazZDxcbxS9KSEPma
 X6LeaHU7Vh8EItSIVLA5z2n6CeoUo6CpewTyTFZ25s2h5foAHqtMrz16p9BktCSZ
 Ck5x/a+AwDv0aV6SSulg3jmaU4lcqw4RGZZGF++RvGESDS3X/vlxGeot0s88ASZA
 P7o30CyGrXFLUS9hEajO+y28Qn9KusPu9biLf5LPVNxQoG4ug59/hyg4l/TLfwCi
 fZSDKm17hOew5+raeoLh5qcnopnfbekufy57L+DFJi+0WFhpdyTIBB90iR4PL1FX
 U5NwqREm+TKoP4QGZtwLgAhDRpoaunWaP3J9IQBAzmZeBtaFI/M=
 =kzja
 -----END PGP SIGNATURE-----

Merge tag 'ux500-dts-soc-for-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into soc/dt

More Ux500 device tree updates for v6.8

The HREF520 reference design had the wrong analog baseband
defined causing a boot regression.

Was AB8500, but this board has AB8505.

Rearrange the device trees to make it possible to define
a different AB and slot it in.

* tag 'ux500-dts-soc-for-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
  ARM: dts: ux500-href: Switch HREF520 to AB8505
  ARM: dts: ux500-href: Push AB8500 config out
  ARM: dts: ux500-href: Push AB8500 inclusion to the top

Link: https://lore.kernel.org/r/CACRpkdZ9wCV7oohF2KX6MFwmuSPR_i7et8O5SH=op6gyQ4mOvQ@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-12-21 16:33:56 +00:00

376 lines
9.2 KiB
Text

// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright 2012 ST-Ericsson AB
*/
#include "ste-href.dtsi"
/ {
model = "ST-Ericsson HREF (v60+) platform with Device Tree";
compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500";
thermal-zones {
chassis-thermal {
/* Poll every 20 seconds */
polling-delay = <20000>;
/* Poll every 2nd second when cooling */
polling-delay-passive = <2000>;
thermal-sensors = <&therm1>, <&therm2>;
/* Tripping points made from rough guess about operating conditions */
trips {
chassis_alert: chassis-alert {
/* At 50 degrees take down the CPU frequency */
temperature = <50000>;
hysteresis = <3000>;
type = "active";
};
chassis_crit: chassis-crit {
/* Just shut down at 70 degrees */
temperature = <70000>;
hysteresis = <2000>;
type = "critical";
};
};
/* Push down the operating frequency of the SoC when it gets hot */
cooling-maps {
map0 {
trip = <&chassis_alert>;
cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
contribution = <100>;
};
};
};
};
/*
* Thermistors on the board, formally to monitor battery temperatures
* but what they measure is the board temperature.
*/
therm1: thermistor@0 {
compatible = "murata,ncp18wb473";
io-channels = <&gpadc 0x06>; /* AUX1 */
pullup-uv = <1800000>;
pullup-ohm = <220000>;
pulldown-ohm = <0>;
#thermal-sensor-cells = <0>;
};
therm2: thermistor@1 {
compatible = "murata,ncp18wb473";
io-channels = <&gpadc 0x07>; /* AUX2 */
pullup-uv = <1800000>;
pullup-ohm = <220000>;
pulldown-ohm = <0>;
#thermal-sensor-cells = <0>;
};
soc {
/* Name the GPIO muxed rails on the HREF boards */
gpio@8012e000 {
/* GPIOs 0 - 31 */
gpio-line-names =
/* GPIO0,1 used for UART0 BT RX/TX */
"", "",
"UART_WAKE",
"BT_WAKE",
"",
"SDMMC_1V8_3V_SEL",
"FLASH_LED_SYNC (FLASH_CTRL_0)",
"XENON_READY (FLASH_CTRL_1)",
"", "", "", "", "", "", "", "",
"", "", "", "",
"",
"FLASH_LED_EN (FLASH_CTRL_3)",
"", "",
"", "", "", "", "",
/* Used by UART2 (console) */
"", "",
"MAGNETOMETER_INT";
};
gpio@8012e080 {
/* GPIOs 32 - 63 */
gpio-line-names =
"MAGNETOMETER_DRDY",
"", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "";
};
gpio@8000e000 {
/* GPIOs 64 - 95 */
gpio-line-names = "XENON_EN2 (FLASH_CTRL_4)",
"DISP1_RST",
"DISP2_RST",
"TOUCH_INT2",
"LCD_VSI0_A",
"LCD_VSI1_A",
/* GPIO 70-77 used for ETM */
"", "", "", "", "", "", "", "",
/* GPIO 78-81 used for YCBCR */
"", "", "", "",
"ACCELEROMETER_INT1_RDY",
"ACCELEROMETER_INT2",
"TOUCH_INT",
"WLAN_ENA",
"", "", "", "", "",
"FORCE_SENSING_INT",
"FORCE_SENSING_RESET",
"", "",
"SDMMC_CD";
};
gpio@8000e080 {
/* GPIOs 96 - 127 */
gpio-line-names = "",
"FORCE_SENSING_WU",
"", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "";
};
gpio@8000e100 {
/* GPIOs 128 - 159 */
gpio-line-names = "", "", "", "", "", "", "", "",
"", "", "",
"DIPRO_INT", /* GPIO139 */
"XSHUTDOWN_SECONDARY_SENSOR",
"XSHUTDOWN_PRIMARY_SENSOR",
"NFC_RST (NFC_CTRL_",
"TOUCH_RST",
"NFC_IRQ (NFC_CTRL_1)",
"HAL_SW",
"TOUCH_RST2",
"", "",
"VAUDIO_HF_EN", /* GPIO149 */
"", "", "", "", "", "", "", "", "", "";
};
gpio@8000e180 {
/* GPIOs 160 - 191 */
gpio-line-names = "", "", "", "", "", "", "", "",
"",
"SDMMC_EN",
"XENON_CHARGE (FLASH_CONTROL_5)",
"GBF_ENA_RESET",
"", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "";
};
gpio@8011e000 {
/* GPIOs 192 - 223 */
gpio-line-names = "HDTV_INTN",
"", "", "",
"HDTV_RSTN",
"", "", "",
"", /* GPIO200 */
"", "", "", "", "", "", "",
/* GPIO208-216 used for WGBF_MC1 */
"", "", "", "", "", "", "", "", "",
"SW_FRONT_PROXIMITY", /* GPIO217 */
"KPD_CTRL_INT", /* Keypad controller */
"", "", "", "", "";
};
gpio@8011e080 {
/* GPIOs 224 - 255 */
gpio-line-names = "", "",
"HSIT_ACWAKE0",
"", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "";
};
// External Micro SD slot
mmc@80126000 {
cd-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; // 95
};
pinctrl {
/*
* Set this up using hogs, as time goes by and as seems fit, these
* can be moved over to being controlled by respective device.
*/
pinctrl-names = "default";
pinctrl-0 = <&ipgpio_hrefv60_mode>,
<&etm_hrefv60_mode>,
<&nahj_hrefv60_mode>,
<&nfc_hrefv60_mode>,
<&force_hrefv60_mode>,
<&dipro_hrefv60_mode>,
<&vaudio_hf_hrefv60_mode>,
<&gbf_hrefv60_mode>,
<&hdtv_hrefv60_mode>,
<&gpios_hrefv60_mode>;
sdi0 {
sdi0_default_mode: sdi0_default {
/* SD card detect GPIO pin, extend default state */
default_hrefv60_cfg1 {
pins = "GPIO95_E8";
ste,config = <&gpio_in_pu>;
};
};
};
ipgpio {
/*
* XENON Flashgun on image processor GPIO (controlled from image
* processor firmware), mux in these image processor GPIO lines 0
* (XENON_FLASH_ID), 1 (XENON_READY) and there is an assistant
* LED on IP GPIO 4 (XENON_EN2) on altfunction C, that need bias
* from GPIO21 so pull up 0, 1 and drive 4 and GPIO21 low as output.
*/
ipgpio_hrefv60_mode: ipgpio_hrefv60 {
hrefv60_mux {
function = "ipgpio";
groups = "ipgpio0_c_1", "ipgpio1_c_1", "ipgpio4_c_1";
};
hrefv60_cfg1 {
pins = "GPIO6_AF6", "GPIO7_AG5";
ste,config = <&in_pu>;
};
hrefv60_cfg2 {
pins = "GPIO21_AB3";
ste,config = <&gpio_out_lo>;
};
hrefv60_cfg3 {
pins = "GPIO64_F3";
ste,config = <&out_lo>;
};
};
};
etm {
/*
* Drive D19-D23 for the ETM PTM trace interface low,
* (presumably pins are unconnected therefore grounded here,
* the "other alt C1" setting enables these pins)
*/
etm_hrefv60_mode: etm_hrefv60 {
hrefv60_cfg1 {
pins =
"GPIO70_G5",
"GPIO71_G4",
"GPIO72_H4",
"GPIO73_H3",
"GPIO74_J3";
ste,config = <&gpio_out_lo>;
};
};
};
nahj {
nahj_hrefv60_mode: nahj_hrefv60 {
/* NAHJ CTRL on GPIO76 to low, CTRL_INV on GPIO216 to high */
hrefv60_cfg1 {
pins = "GPIO76_J2";
ste,config = <&gpio_out_lo>;
};
hrefv60_cfg2 {
pins = "GPIO216_AG12";
ste,config = <&gpio_out_hi>;
};
};
};
nfc {
nfc_hrefv60_mode: nfc_hrefv60 {
/* NFC ENA and RESET to low, pulldown IRQ line */
hrefv60_cfg1 {
pins =
"GPIO77_H1", /* NFC_ENA */
"GPIO142_C11"; /* NFC_RESET */
ste,config = <&gpio_out_lo>;
};
hrefv60_cfg2 {
pins = "GPIO144_B13"; /* NFC_IRQ */
ste,config = <&gpio_in_pd>;
};
};
};
force {
force_hrefv60_mode: force_hrefv60 {
hrefv60_cfg1 {
pins = "GPIO91_B6"; /* FORCE_SENSING_INT */
ste,config = <&gpio_in_pu>;
};
hrefv60_cfg2 {
pins =
"GPIO92_D6", /* FORCE_SENSING_RST */
"GPIO97_D9"; /* FORCE_SENSING_WU */
ste,config = <&gpio_out_lo>;
};
};
};
dipro {
dipro_hrefv60_mode: dipro_hrefv60 {
hrefv60_cfg1 {
pins = "GPIO139_C9"; /* DIPRO_INT */
ste,config = <&gpio_in_pu>;
};
};
};
vaudio_hf {
vaudio_hf_hrefv60_mode: vaudio_hf_hrefv60 {
/* Audio Amplifier HF enable GPIO */
hrefv60_cfg1 {
pins = "GPIO149_B14"; /* VAUDIO_HF_EN, enable MAX8968 */
ste,config = <&gpio_out_hi>;
};
};
};
gbf {
gbf_hrefv60_mode: gbf_hrefv60 {
/*
* GBF (GPS, Bluetooth, FM-radio) interface,
* pull low to reset state
*/
hrefv60_cfg1 {
pins = "GPIO171_D23"; /* GBF_ENA_RESET */
ste,config = <&gpio_out_lo>;
};
};
};
hdtv {
hdtv_hrefv60_mode: hdtv_hrefv60 {
/* MSP : HDTV INTERFACE GPIO line */
hrefv60_cfg1 {
pins = "GPIO192_AJ27";
ste,config = <&gpio_in_pd>;
};
};
};
mcde {
lcd_hrefv60_mode: lcd_hrefv60 {
/*
* Display Interface 1 uses GPIO 65 for RST (reset).
* Display Interface 2 uses GPIO 66 for RST (reset).
* Drive DISP1 reset high (not reset), driver DISP2 reset low (reset)
*/
hrefv60_cfg1 {
pins = "GPIO65_F1";
ste,config = <&gpio_out_hi>;
};
hrefv60_cfg2 {
pins = "GPIO66_G3";
ste,config = <&gpio_out_lo>;
};
};
};
gpios {
/* Dangling GPIO pins */
gpios_hrefv60_mode: gpios_hrefv60 {
default_cfg1 {
/* Normally UART1 RXD, now dangling */
pins = "GPIO4_AH6";
ste,config = <&in_pu>;
};
};
};
};
};
};