1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later 2*724ba675SRob Herring/* 3*724ba675SRob Herring * Copyright 2012 ST-Ericsson AB 4*724ba675SRob Herring */ 5*724ba675SRob Herring 6*724ba675SRob Herring#include "ste-href-ab8500.dtsi" 7*724ba675SRob Herring#include "ste-href.dtsi" 8*724ba675SRob Herring 9*724ba675SRob Herring/ { 10*724ba675SRob Herring model = "ST-Ericsson HREF (v60+) platform with Device Tree"; 11*724ba675SRob Herring compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500"; 12*724ba675SRob Herring 13*724ba675SRob Herring thermal-zones { 14*724ba675SRob Herring chassis-thermal { 15*724ba675SRob Herring /* Poll every 20 seconds */ 16*724ba675SRob Herring polling-delay = <20000>; 17*724ba675SRob Herring /* Poll every 2nd second when cooling */ 18*724ba675SRob Herring polling-delay-passive = <2000>; 19*724ba675SRob Herring 20*724ba675SRob Herring thermal-sensors = <&therm1>, <&therm2>; 21*724ba675SRob Herring 22*724ba675SRob Herring /* Tripping points made from rough guess about operating conditions */ 23*724ba675SRob Herring trips { 24*724ba675SRob Herring chassis_alert: chassis-alert { 25*724ba675SRob Herring /* At 50 degrees take down the CPU frequency */ 26*724ba675SRob Herring temperature = <50000>; 27*724ba675SRob Herring hysteresis = <3000>; 28*724ba675SRob Herring type = "active"; 29*724ba675SRob Herring }; 30*724ba675SRob Herring chassis_crit: chassis-crit { 31*724ba675SRob Herring /* Just shut down at 70 degrees */ 32*724ba675SRob Herring temperature = <70000>; 33*724ba675SRob Herring hysteresis = <2000>; 34*724ba675SRob Herring type = "critical"; 35*724ba675SRob Herring }; 36*724ba675SRob Herring }; 37*724ba675SRob Herring 38*724ba675SRob Herring /* Push down the operating frequency of the SoC when it gets hot */ 39*724ba675SRob Herring cooling-maps { 40*724ba675SRob Herring map0 { 41*724ba675SRob Herring trip = <&chassis_alert>; 42*724ba675SRob Herring cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 43*724ba675SRob Herring contribution = <100>; 44*724ba675SRob Herring }; 45*724ba675SRob Herring }; 46*724ba675SRob Herring }; 47*724ba675SRob Herring }; 48*724ba675SRob Herring 49*724ba675SRob Herring /* 50*724ba675SRob Herring * Thermistors on the board, formally to monitor battery temperatures 51*724ba675SRob Herring * but what they measure is the board temperature. 52*724ba675SRob Herring */ 53*724ba675SRob Herring therm1: thermistor@0 { 54*724ba675SRob Herring compatible = "murata,ncp18wb473"; 55*724ba675SRob Herring io-channels = <&gpadc 0x06>; /* AUX1 */ 56*724ba675SRob Herring pullup-uv = <1800000>; 57*724ba675SRob Herring pullup-ohm = <220000>; 58*724ba675SRob Herring pulldown-ohm = <0>; 59*724ba675SRob Herring #thermal-sensor-cells = <0>; 60*724ba675SRob Herring }; 61*724ba675SRob Herring 62*724ba675SRob Herring therm2: thermistor@1 { 63*724ba675SRob Herring compatible = "murata,ncp18wb473"; 64*724ba675SRob Herring io-channels = <&gpadc 0x07>; /* AUX2 */ 65*724ba675SRob Herring pullup-uv = <1800000>; 66*724ba675SRob Herring pullup-ohm = <220000>; 67*724ba675SRob Herring pulldown-ohm = <0>; 68*724ba675SRob Herring #thermal-sensor-cells = <0>; 69*724ba675SRob Herring }; 70*724ba675SRob Herring 71*724ba675SRob Herring soc { 72*724ba675SRob Herring /* Name the GPIO muxed rails on the HREF boards */ 73*724ba675SRob Herring gpio@8012e000 { 74*724ba675SRob Herring /* GPIOs 0 - 31 */ 75*724ba675SRob Herring gpio-line-names = 76*724ba675SRob Herring /* GPIO0,1 used for UART0 BT RX/TX */ 77*724ba675SRob Herring "", "", 78*724ba675SRob Herring "UART_WAKE", 79*724ba675SRob Herring "BT_WAKE", 80*724ba675SRob Herring "", 81*724ba675SRob Herring "SDMMC_1V8_3V_SEL", 82*724ba675SRob Herring "FLASH_LED_SYNC (FLASH_CTRL_0)", 83*724ba675SRob Herring "XENON_READY (FLASH_CTRL_1)", 84*724ba675SRob Herring "", "", "", "", "", "", "", "", 85*724ba675SRob Herring "", "", "", "", 86*724ba675SRob Herring "", 87*724ba675SRob Herring "FLASH_LED_EN (FLASH_CTRL_3)", 88*724ba675SRob Herring "", "", 89*724ba675SRob Herring "", "", "", "", "", 90*724ba675SRob Herring /* Used by UART2 (console) */ 91*724ba675SRob Herring "", "", 92*724ba675SRob Herring "MAGNETOMETER_INT"; 93*724ba675SRob Herring }; 94*724ba675SRob Herring 95*724ba675SRob Herring gpio@8012e080 { 96*724ba675SRob Herring /* GPIOs 32 - 63 */ 97*724ba675SRob Herring gpio-line-names = 98*724ba675SRob Herring "MAGNETOMETER_DRDY", 99*724ba675SRob Herring "", "", "", "", "", "", "", 100*724ba675SRob Herring "", "", "", "", "", "", "", "", 101*724ba675SRob Herring "", "", "", "", "", "", "", "", 102*724ba675SRob Herring "", "", "", "", "", "", "", ""; 103*724ba675SRob Herring }; 104*724ba675SRob Herring 105*724ba675SRob Herring gpio@8000e000 { 106*724ba675SRob Herring /* GPIOs 64 - 95 */ 107*724ba675SRob Herring gpio-line-names = "XENON_EN2 (FLASH_CTRL_4)", 108*724ba675SRob Herring "DISP1_RST", 109*724ba675SRob Herring "DISP2_RST", 110*724ba675SRob Herring "TOUCH_INT2", 111*724ba675SRob Herring "LCD_VSI0_A", 112*724ba675SRob Herring "LCD_VSI1_A", 113*724ba675SRob Herring /* GPIO 70-77 used for ETM */ 114*724ba675SRob Herring "", "", "", "", "", "", "", "", 115*724ba675SRob Herring /* GPIO 78-81 used for YCBCR */ 116*724ba675SRob Herring "", "", "", "", 117*724ba675SRob Herring "ACCELEROMETER_INT1_RDY", 118*724ba675SRob Herring "ACCELEROMETER_INT2", 119*724ba675SRob Herring "TOUCH_INT", 120*724ba675SRob Herring "WLAN_ENA", 121*724ba675SRob Herring "", "", "", "", "", 122*724ba675SRob Herring "FORCE_SENSING_INT", 123*724ba675SRob Herring "FORCE_SENSING_RESET", 124*724ba675SRob Herring "", "", 125*724ba675SRob Herring "SDMMC_CD"; 126*724ba675SRob Herring }; 127*724ba675SRob Herring 128*724ba675SRob Herring gpio@8000e080 { 129*724ba675SRob Herring /* GPIOs 96 - 127 */ 130*724ba675SRob Herring gpio-line-names = "", 131*724ba675SRob Herring "FORCE_SENSING_WU", 132*724ba675SRob Herring "", "", "", "", "", "", 133*724ba675SRob Herring "", "", "", "", "", "", "", "", 134*724ba675SRob Herring "", "", "", "", "", "", "", "", 135*724ba675SRob Herring "", "", "", "", "", "", "", ""; 136*724ba675SRob Herring }; 137*724ba675SRob Herring 138*724ba675SRob Herring gpio@8000e100 { 139*724ba675SRob Herring /* GPIOs 128 - 159 */ 140*724ba675SRob Herring gpio-line-names = "", "", "", "", "", "", "", "", 141*724ba675SRob Herring "", "", "", 142*724ba675SRob Herring "DIPRO_INT", /* GPIO139 */ 143*724ba675SRob Herring "XSHUTDOWN_SECONDARY_SENSOR", 144*724ba675SRob Herring "XSHUTDOWN_PRIMARY_SENSOR", 145*724ba675SRob Herring "NFC_RST (NFC_CTRL_", 146*724ba675SRob Herring "TOUCH_RST", 147*724ba675SRob Herring "NFC_IRQ (NFC_CTRL_1)", 148*724ba675SRob Herring "HAL_SW", 149*724ba675SRob Herring "TOUCH_RST2", 150*724ba675SRob Herring "", "", 151*724ba675SRob Herring "VAUDIO_HF_EN", /* GPIO149 */ 152*724ba675SRob Herring "", "", "", "", "", "", "", "", "", ""; 153*724ba675SRob Herring }; 154*724ba675SRob Herring 155*724ba675SRob Herring gpio@8000e180 { 156*724ba675SRob Herring /* GPIOs 160 - 191 */ 157*724ba675SRob Herring gpio-line-names = "", "", "", "", "", "", "", "", 158*724ba675SRob Herring "", 159*724ba675SRob Herring "SDMMC_EN", 160*724ba675SRob Herring "XENON_CHARGE (FLASH_CONTROL_5)", 161*724ba675SRob Herring "GBF_ENA_RESET", 162*724ba675SRob Herring "", "", "", "", 163*724ba675SRob Herring "", "", "", "", "", "", "", "", 164*724ba675SRob Herring "", "", "", "", "", "", "", ""; 165*724ba675SRob Herring }; 166*724ba675SRob Herring 167*724ba675SRob Herring gpio@8011e000 { 168*724ba675SRob Herring /* GPIOs 192 - 223 */ 169*724ba675SRob Herring gpio-line-names = "HDTV_INTN", 170*724ba675SRob Herring "", "", "", 171*724ba675SRob Herring "HDTV_RSTN", 172*724ba675SRob Herring "", "", "", 173*724ba675SRob Herring "", /* GPIO200 */ 174*724ba675SRob Herring "", "", "", "", "", "", "", 175*724ba675SRob Herring /* GPIO208-216 used for WGBF_MC1 */ 176*724ba675SRob Herring "", "", "", "", "", "", "", "", "", 177*724ba675SRob Herring "SW_FRONT_PROXIMITY", /* GPIO217 */ 178*724ba675SRob Herring "KPD_CTRL_INT", /* Keypad controller */ 179*724ba675SRob Herring "", "", "", "", ""; 180*724ba675SRob Herring }; 181*724ba675SRob Herring 182*724ba675SRob Herring gpio@8011e080 { 183*724ba675SRob Herring /* GPIOs 224 - 255 */ 184*724ba675SRob Herring gpio-line-names = "", "", 185*724ba675SRob Herring "HSIT_ACWAKE0", 186*724ba675SRob Herring "", "", "", "", "", 187*724ba675SRob Herring "", "", "", "", "", "", "", "", 188*724ba675SRob Herring "", "", "", "", "", "", "", "", 189*724ba675SRob Herring "", "", "", "", "", "", "", ""; 190*724ba675SRob Herring }; 191*724ba675SRob Herring 192*724ba675SRob Herring // External Micro SD slot 193*724ba675SRob Herring mmc@80126000 { 194*724ba675SRob Herring cd-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; // 95 195*724ba675SRob Herring }; 196*724ba675SRob Herring 197*724ba675SRob Herring pinctrl { 198*724ba675SRob Herring /* 199*724ba675SRob Herring * Set this up using hogs, as time goes by and as seems fit, these 200*724ba675SRob Herring * can be moved over to being controlled by respective device. 201*724ba675SRob Herring */ 202*724ba675SRob Herring pinctrl-names = "default"; 203*724ba675SRob Herring pinctrl-0 = <&ipgpio_hrefv60_mode>, 204*724ba675SRob Herring <&etm_hrefv60_mode>, 205*724ba675SRob Herring <&nahj_hrefv60_mode>, 206*724ba675SRob Herring <&nfc_hrefv60_mode>, 207*724ba675SRob Herring <&force_hrefv60_mode>, 208*724ba675SRob Herring <&dipro_hrefv60_mode>, 209*724ba675SRob Herring <&vaudio_hf_hrefv60_mode>, 210*724ba675SRob Herring <&gbf_hrefv60_mode>, 211*724ba675SRob Herring <&hdtv_hrefv60_mode>, 212*724ba675SRob Herring <&gpios_hrefv60_mode>; 213*724ba675SRob Herring 214*724ba675SRob Herring sdi0 { 215*724ba675SRob Herring sdi0_default_mode: sdi0_default { 216*724ba675SRob Herring /* SD card detect GPIO pin, extend default state */ 217*724ba675SRob Herring default_hrefv60_cfg1 { 218*724ba675SRob Herring pins = "GPIO95_E8"; 219*724ba675SRob Herring ste,config = <&gpio_in_pu>; 220*724ba675SRob Herring }; 221*724ba675SRob Herring }; 222*724ba675SRob Herring }; 223*724ba675SRob Herring ipgpio { 224*724ba675SRob Herring /* 225*724ba675SRob Herring * XENON Flashgun on image processor GPIO (controlled from image 226*724ba675SRob Herring * processor firmware), mux in these image processor GPIO lines 0 227*724ba675SRob Herring * (XENON_FLASH_ID), 1 (XENON_READY) and there is an assistant 228*724ba675SRob Herring * LED on IP GPIO 4 (XENON_EN2) on altfunction C, that need bias 229*724ba675SRob Herring * from GPIO21 so pull up 0, 1 and drive 4 and GPIO21 low as output. 230*724ba675SRob Herring */ 231*724ba675SRob Herring ipgpio_hrefv60_mode: ipgpio_hrefv60 { 232*724ba675SRob Herring hrefv60_mux { 233*724ba675SRob Herring function = "ipgpio"; 234*724ba675SRob Herring groups = "ipgpio0_c_1", "ipgpio1_c_1", "ipgpio4_c_1"; 235*724ba675SRob Herring }; 236*724ba675SRob Herring hrefv60_cfg1 { 237*724ba675SRob Herring pins = "GPIO6_AF6", "GPIO7_AG5"; 238*724ba675SRob Herring ste,config = <&in_pu>; 239*724ba675SRob Herring }; 240*724ba675SRob Herring hrefv60_cfg2 { 241*724ba675SRob Herring pins = "GPIO21_AB3"; 242*724ba675SRob Herring ste,config = <&gpio_out_lo>; 243*724ba675SRob Herring }; 244*724ba675SRob Herring hrefv60_cfg3 { 245*724ba675SRob Herring pins = "GPIO64_F3"; 246*724ba675SRob Herring ste,config = <&out_lo>; 247*724ba675SRob Herring }; 248*724ba675SRob Herring }; 249*724ba675SRob Herring }; 250*724ba675SRob Herring etm { 251*724ba675SRob Herring /* 252*724ba675SRob Herring * Drive D19-D23 for the ETM PTM trace interface low, 253*724ba675SRob Herring * (presumably pins are unconnected therefore grounded here, 254*724ba675SRob Herring * the "other alt C1" setting enables these pins) 255*724ba675SRob Herring */ 256*724ba675SRob Herring etm_hrefv60_mode: etm_hrefv60 { 257*724ba675SRob Herring hrefv60_cfg1 { 258*724ba675SRob Herring pins = 259*724ba675SRob Herring "GPIO70_G5", 260*724ba675SRob Herring "GPIO71_G4", 261*724ba675SRob Herring "GPIO72_H4", 262*724ba675SRob Herring "GPIO73_H3", 263*724ba675SRob Herring "GPIO74_J3"; 264*724ba675SRob Herring ste,config = <&gpio_out_lo>; 265*724ba675SRob Herring }; 266*724ba675SRob Herring }; 267*724ba675SRob Herring }; 268*724ba675SRob Herring nahj { 269*724ba675SRob Herring nahj_hrefv60_mode: nahj_hrefv60 { 270*724ba675SRob Herring /* NAHJ CTRL on GPIO76 to low, CTRL_INV on GPIO216 to high */ 271*724ba675SRob Herring hrefv60_cfg1 { 272*724ba675SRob Herring pins = "GPIO76_J2"; 273*724ba675SRob Herring ste,config = <&gpio_out_lo>; 274*724ba675SRob Herring }; 275*724ba675SRob Herring hrefv60_cfg2 { 276*724ba675SRob Herring pins = "GPIO216_AG12"; 277*724ba675SRob Herring ste,config = <&gpio_out_hi>; 278*724ba675SRob Herring }; 279*724ba675SRob Herring }; 280*724ba675SRob Herring }; 281*724ba675SRob Herring nfc { 282*724ba675SRob Herring nfc_hrefv60_mode: nfc_hrefv60 { 283*724ba675SRob Herring /* NFC ENA and RESET to low, pulldown IRQ line */ 284*724ba675SRob Herring hrefv60_cfg1 { 285*724ba675SRob Herring pins = 286*724ba675SRob Herring "GPIO77_H1", /* NFC_ENA */ 287*724ba675SRob Herring "GPIO142_C11"; /* NFC_RESET */ 288*724ba675SRob Herring ste,config = <&gpio_out_lo>; 289*724ba675SRob Herring }; 290*724ba675SRob Herring hrefv60_cfg2 { 291*724ba675SRob Herring pins = "GPIO144_B13"; /* NFC_IRQ */ 292*724ba675SRob Herring ste,config = <&gpio_in_pd>; 293*724ba675SRob Herring }; 294*724ba675SRob Herring }; 295*724ba675SRob Herring }; 296*724ba675SRob Herring force { 297*724ba675SRob Herring force_hrefv60_mode: force_hrefv60 { 298*724ba675SRob Herring hrefv60_cfg1 { 299*724ba675SRob Herring pins = "GPIO91_B6"; /* FORCE_SENSING_INT */ 300*724ba675SRob Herring ste,config = <&gpio_in_pu>; 301*724ba675SRob Herring }; 302*724ba675SRob Herring hrefv60_cfg2 { 303*724ba675SRob Herring pins = 304*724ba675SRob Herring "GPIO92_D6", /* FORCE_SENSING_RST */ 305*724ba675SRob Herring "GPIO97_D9"; /* FORCE_SENSING_WU */ 306*724ba675SRob Herring ste,config = <&gpio_out_lo>; 307*724ba675SRob Herring }; 308*724ba675SRob Herring }; 309*724ba675SRob Herring }; 310*724ba675SRob Herring dipro { 311*724ba675SRob Herring dipro_hrefv60_mode: dipro_hrefv60 { 312*724ba675SRob Herring hrefv60_cfg1 { 313*724ba675SRob Herring pins = "GPIO139_C9"; /* DIPRO_INT */ 314*724ba675SRob Herring ste,config = <&gpio_in_pu>; 315*724ba675SRob Herring }; 316*724ba675SRob Herring }; 317*724ba675SRob Herring }; 318*724ba675SRob Herring vaudio_hf { 319*724ba675SRob Herring vaudio_hf_hrefv60_mode: vaudio_hf_hrefv60 { 320*724ba675SRob Herring /* Audio Amplifier HF enable GPIO */ 321*724ba675SRob Herring hrefv60_cfg1 { 322*724ba675SRob Herring pins = "GPIO149_B14"; /* VAUDIO_HF_EN, enable MAX8968 */ 323*724ba675SRob Herring ste,config = <&gpio_out_hi>; 324*724ba675SRob Herring }; 325*724ba675SRob Herring }; 326*724ba675SRob Herring }; 327*724ba675SRob Herring gbf { 328*724ba675SRob Herring gbf_hrefv60_mode: gbf_hrefv60 { 329*724ba675SRob Herring /* 330*724ba675SRob Herring * GBF (GPS, Bluetooth, FM-radio) interface, 331*724ba675SRob Herring * pull low to reset state 332*724ba675SRob Herring */ 333*724ba675SRob Herring hrefv60_cfg1 { 334*724ba675SRob Herring pins = "GPIO171_D23"; /* GBF_ENA_RESET */ 335*724ba675SRob Herring ste,config = <&gpio_out_lo>; 336*724ba675SRob Herring }; 337*724ba675SRob Herring }; 338*724ba675SRob Herring }; 339*724ba675SRob Herring hdtv { 340*724ba675SRob Herring hdtv_hrefv60_mode: hdtv_hrefv60 { 341*724ba675SRob Herring /* MSP : HDTV INTERFACE GPIO line */ 342*724ba675SRob Herring hrefv60_cfg1 { 343*724ba675SRob Herring pins = "GPIO192_AJ27"; 344*724ba675SRob Herring ste,config = <&gpio_in_pd>; 345*724ba675SRob Herring }; 346*724ba675SRob Herring }; 347*724ba675SRob Herring }; 348*724ba675SRob Herring mcde { 349*724ba675SRob Herring lcd_hrefv60_mode: lcd_hrefv60 { 350*724ba675SRob Herring /* 351*724ba675SRob Herring * Display Interface 1 uses GPIO 65 for RST (reset). 352*724ba675SRob Herring * Display Interface 2 uses GPIO 66 for RST (reset). 353*724ba675SRob Herring * Drive DISP1 reset high (not reset), driver DISP2 reset low (reset) 354*724ba675SRob Herring */ 355*724ba675SRob Herring hrefv60_cfg1 { 356*724ba675SRob Herring pins = "GPIO65_F1"; 357*724ba675SRob Herring ste,config = <&gpio_out_hi>; 358*724ba675SRob Herring }; 359*724ba675SRob Herring hrefv60_cfg2 { 360*724ba675SRob Herring pins = "GPIO66_G3"; 361*724ba675SRob Herring ste,config = <&gpio_out_lo>; 362*724ba675SRob Herring }; 363*724ba675SRob Herring }; 364*724ba675SRob Herring }; 365*724ba675SRob Herring gpios { 366*724ba675SRob Herring /* Dangling GPIO pins */ 367*724ba675SRob Herring gpios_hrefv60_mode: gpios_hrefv60 { 368*724ba675SRob Herring default_cfg1 { 369*724ba675SRob Herring /* Normally UART1 RXD, now dangling */ 370*724ba675SRob Herring pins = "GPIO4_AH6"; 371*724ba675SRob Herring ste,config = <&in_pu>; 372*724ba675SRob Herring }; 373*724ba675SRob Herring }; 374*724ba675SRob Herring }; 375*724ba675SRob Herring }; 376*724ba675SRob Herring }; 377*724ba675SRob Herring}; 378