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