378 lines
9.3 KiB
Plaintext
378 lines
9.3 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* Copyright 2012 ST-Ericsson AB
|
|
*/
|
|
|
|
#include "ste-href-ab8500.dtsi"
|
|
#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>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|