cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ste-snowball.dts (15648B)


      1// SPDX-License-Identifier: GPL-2.0-or-later
      2/*
      3 * Copyright 2011 ST-Ericsson AB
      4 */
      5
      6/dts-v1/;
      7#include "ste-db9500.dtsi"
      8#include "ste-href-ab8500.dtsi"
      9#include "ste-href-family-pinctrl.dtsi"
     10
     11/ {
     12	model = "Calao Systems Snowball platform with device tree";
     13	compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500";
     14
     15	memory {
     16		device_type = "memory";
     17		reg = <0x00000000 0x20000000>;
     18	};
     19
     20	battery: battery {
     21		compatible = "simple-battery";
     22		battery-type = "lithium-ion-polymer";
     23	};
     24
     25	thermal-zones {
     26		battery-thermal {
     27			/* This zone will be polled by the battery temperature code */
     28			polling-delay = <0>;
     29			polling-delay-passive = <0>;
     30			thermal-sensors = <&bat_therm>;
     31		};
     32	};
     33
     34	bat_therm: thermistor {
     35		compatible = "murata,ncp18wb473";
     36		io-channels = <&gpadc 0x02>; /* BatTemp */
     37		pullup-uv = <1800000>;
     38		pullup-ohm = <230000>;
     39		pulldown-ohm = <0>;
     40		#thermal-sensor-cells = <0>;
     41	};
     42
     43	en_3v3_reg: en_3v3 {
     44		compatible = "regulator-fixed";
     45		regulator-name = "en-3v3-fixed-supply";
     46		regulator-min-microvolt = <3300000>;
     47		regulator-max-microvolt = <3300000>;
     48		/* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
     49		gpio = <&ab8500_gpio 25 0x4>;
     50		startup-delay-us = <5000>;
     51		enable-active-high;
     52	};
     53
     54	gpio_keys {
     55		compatible = "gpio-keys";
     56		#address-cells = <1>;
     57		#size-cells = <0>;
     58
     59		button@1 {
     60			debounce-interval = <50>;
     61			wakeup-source;
     62			linux,code = <2>;
     63			label = "userpb";
     64			gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
     65		};
     66		button@2 {
     67			debounce-interval = <50>;
     68			wakeup-source;
     69			linux,code = <3>;
     70			label = "extkb1";
     71			gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
     72		};
     73		button@3 {
     74			debounce-interval = <50>;
     75			wakeup-source;
     76			linux,code = <4>;
     77			label = "extkb2";
     78			gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
     79		};
     80		button@4 {
     81			debounce-interval = <50>;
     82			wakeup-source;
     83			linux,code = <5>;
     84			label = "extkb3";
     85			gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
     86		};
     87		button@5 {
     88			debounce-interval = <50>;
     89			wakeup-source;
     90			linux,code = <6>;
     91			label = "extkb4";
     92			gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
     93		};
     94	};
     95
     96	leds {
     97		compatible = "gpio-leds";
     98		pinctrl-names = "default";
     99		pinctrl-0 = <&gpioled_snowball_mode>;
    100		used-led {
    101			label = "user_led";
    102			gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
    103			default-state = "on";
    104			linux,default-trigger = "heartbeat";
    105		};
    106	};
    107
    108	soc {
    109		/* Name the GPIO muxed rails on the Snowball board */
    110		gpio@8012e000 {
    111			/* GPIOs 0 - 31 */
    112			gpio-line-names = "", "", "", "", "", "", "", "",
    113				     "", "", "", "", "", "", "", "",
    114				     "", "", "", "", "", "", "", "",
    115				     "", "", "", "", "", "", "",
    116				     "AP_GPIO31";
    117		};
    118
    119		gpio@8012e080 {
    120			/* GPIOs 32 - 63 */
    121			gpio-line-names = "USR PB", "", "", "", "", "", "", "",
    122				     "", "", "", "", "", "", "", "",
    123				     "", "", "", "", "", "", "", "",
    124				     "", "", "", "", "", "", "", "";
    125		};
    126
    127		gpio@8000e000 {
    128			/* GPIOs 64 - 95 */
    129			gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "",
    130				     "", "", "", "", "", "", "", "",
    131				     "", "", "", "", "", "", "", "",
    132				     "", "", "", "", "", "", "", "";
    133		};
    134
    135		gpio@8000e100 {
    136			/* GPIOs 128 - 159 */
    137			gpio-line-names = "", "", "", "", "", "", "", "",
    138				     "", "", "", "", "IRQ_LAN", "RSTn_LAN",
    139				     "USR_LED", "", "", "", "", "", "",
    140				     "", "", "AP_GPIO151", "AP_GPIO152",
    141				     "", "", "", "", "", "", "";
    142		};
    143
    144		gpio@8000e180 {
    145			/* GPIOs 160 - 191 */
    146			gpio-line-names = "", "AP_GPIO161", "AP_GPIO162",
    147				     "ACCELEROMETER_INT1_RDY",
    148				     "ACCELEROMETER_INT2", "MAG_DRDY",
    149				     "GYRO_DRDY", "RSTn_MLC", "RSTn_SLC",
    150				     "GYRO_INT", "UART_WAKE", "GBF_RESET",
    151				     "", "", "", "",
    152				     "", "", "", "", "", "", "", "",
    153				     "", "", "", "", "", "", "", "";
    154		};
    155
    156		gpio@8011e000 {
    157			/* GPIOs 192 - 223 */
    158			gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST",
    159				     "", "", "", "", "", "", "", "", "",
    160				     "", "", "", "", "", "", "", "", "",
    161				     "WLAN_RESETN", "WLAN_IRQ", "MMC_EN",
    162				     "MMC_CD", "", "", "", "", "";
    163		};
    164
    165		gpio@8011e080 {
    166			/* GPIOs 224 - 255 */
    167			gpio-line-names = "", "", "", "", "SD_SEL", "", "", "",
    168				     "", "", "", "", "", "", "", "",
    169				     "", "", "", "", "", "", "", "",
    170				     "", "", "", "", "", "", "", "";
    171		};
    172
    173		msp0: msp@80123000 {
    174			pinctrl-names = "default";
    175			pinctrl-0 = <&msp0txrxtfstck_a_1_default>;
    176			status = "okay";
    177		};
    178
    179		msp1: msp@80124000 {
    180			pinctrl-names = "default";
    181			pinctrl-0 = <&msp1txrx_a_1_default>;
    182			status = "okay";
    183		};
    184
    185		msp2: msp@80117000 {
    186			pinctrl-names = "default";
    187			pinctrl-0 = <&msp2_a_1_default>;
    188		};
    189
    190		msp3: msp@80125000 {
    191			status = "okay";
    192		};
    193
    194		external-bus@50000000 {
    195			status = "okay";
    196
    197			ethernet@0 {
    198				compatible = "smsc,lan9115";
    199				reg = <0 0x10000>;
    200				interrupts = <12 IRQ_TYPE_EDGE_RISING>;
    201				interrupt-parent = <&gpio4>;
    202				vdd33a-supply = <&en_3v3_reg>;
    203				vddvario-supply = <&db8500_vape_reg>;
    204				pinctrl-names = "default";
    205				pinctrl-0 = <&eth_snowball_mode>;
    206
    207				reg-shift = <1>;
    208				reg-io-width = <2>;
    209				smsc,force-internal-phy;
    210				smsc,irq-active-high;
    211				smsc,irq-push-pull;
    212
    213				clocks = <&prcc_pclk 3 0>;
    214			};
    215		};
    216
    217		/* ST6G3244ME level translator for 1.8/2.9 V */
    218		vmmci: regulator-gpio {
    219			compatible = "regulator-gpio";
    220
    221			/* GPIO228 SD_SEL */
    222			gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
    223			/* GPIO217 MMC_EN */
    224			enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>;
    225			enable-active-high;
    226
    227			regulator-min-microvolt = <1800000>;
    228			regulator-max-microvolt = <2900000>;
    229			regulator-name = "mmci-reg";
    230			regulator-type = "voltage";
    231
    232			startup-delay-us = <100>;
    233
    234			states = <1800000 0x1
    235				  2900000 0x0>;
    236		};
    237
    238		// External Micro SD slot
    239		mmc@80126000 {
    240			arm,primecell-periphid = <0x10480180>;
    241			max-frequency = <100000000>;
    242			bus-width = <4>;
    243			cap-sd-highspeed;
    244			cap-mmc-highspeed;
    245			sd-uhs-sdr12;
    246			sd-uhs-sdr25;
    247			/* All direction control is used */
    248			st,sig-dir-cmd;
    249			st,sig-dir-dat0;
    250			st,sig-dir-dat2;
    251			st,sig-dir-dat31;
    252			st,sig-pin-fbclk;
    253			full-pwr-cycle;
    254			vmmc-supply = <&ab8500_ldo_aux3_reg>;
    255			vqmmc-supply = <&vmmci>;
    256			pinctrl-names = "default", "sleep";
    257			pinctrl-0 = <&mc0_a_1_default &sdi0_default_mode>;
    258			pinctrl-1 = <&mc0_a_1_sleep>;
    259
    260			/* GPIO218 MMC_CD */
    261			cd-gpios  = <&gpio6 26 GPIO_ACTIVE_LOW>;
    262
    263			status = "okay";
    264		};
    265
    266		// WLAN SDIO channel
    267		mmc@80118000 {
    268			arm,primecell-periphid = <0x10480180>;
    269			max-frequency = <100000000>;
    270			bus-width = <4>;
    271			pinctrl-names = "default", "sleep";
    272			pinctrl-0 = <&mc1_a_1_default>;
    273			pinctrl-1 = <&mc1_a_1_sleep>;
    274
    275			status = "okay";
    276		};
    277
    278		// Unused PoP eMMC - register and put it to sleep by default */
    279		mmc@80005000 {
    280			arm,primecell-periphid = <0x10480180>;
    281			pinctrl-names = "default";
    282			pinctrl-0 = <&mc2_a_1_sleep>;
    283
    284			status = "okay";
    285		};
    286
    287		// On-board eMMC
    288		mmc@80114000 {
    289			arm,primecell-periphid = <0x10480180>;
    290		        max-frequency = <100000000>;
    291			bus-width = <8>;
    292			cap-mmc-highspeed;
    293			no-sdio;
    294			no-sd;
    295			vmmc-supply = <&ab8500_ldo_aux2_reg>;
    296			pinctrl-names = "default", "sleep";
    297			pinctrl-0 = <&mc4_a_1_default>;
    298			pinctrl-1 = <&mc4_a_1_sleep>;
    299
    300			status = "okay";
    301		};
    302
    303		uart@80120000 {
    304			pinctrl-names = "default", "sleep";
    305			pinctrl-0 = <&u0_a_1_default>;
    306			pinctrl-1 = <&u0_a_1_sleep>;
    307			status = "okay";
    308		};
    309
    310		/* This UART is unused and thus left disabled */
    311		uart@80121000 {
    312			pinctrl-names = "default", "sleep";
    313			pinctrl-0 = <&u1rxtx_a_1_default>;
    314			pinctrl-1 = <&u1rxtx_a_1_sleep>;
    315		};
    316
    317		uart@80007000 {
    318			pinctrl-names = "default", "sleep";
    319			pinctrl-0 = <&u2rxtx_c_1_default>;
    320			pinctrl-1 = <&u2rxtx_c_1_sleep>;
    321			status = "okay";
    322		};
    323
    324		i2c@80004000 {
    325			pinctrl-names = "default","sleep";
    326			pinctrl-0 = <&i2c0_a_1_default>;
    327			pinctrl-1 = <&i2c0_a_1_sleep>;
    328			status = "okay";
    329		};
    330
    331		i2c@80122000 {
    332			pinctrl-names = "default","sleep";
    333			pinctrl-0 = <&i2c1_b_2_default>;
    334			pinctrl-1 = <&i2c1_b_2_sleep>;
    335			status = "okay";
    336		};
    337
    338		i2c@80128000 {
    339			pinctrl-names = "default","sleep";
    340			pinctrl-0 = <&i2c2_b_2_default>;
    341			pinctrl-1 = <&i2c2_b_2_sleep>;
    342			status = "okay";
    343			lsm303dlh@18 {
    344				/* Accelerometer */
    345				compatible = "st,lsm303dlh-accel";
    346				st,drdy-int-pin = <1>;
    347				reg = <0x18>;
    348				vdd-supply = <&ab8500_ldo_aux1_reg>;
    349				vddio-supply = <&db8500_vsmps2_reg>;
    350				pinctrl-names = "default";
    351				pinctrl-0 = <&accel_snowball_mode>;
    352				interrupt-parent = <&gpio5>;
    353				interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
    354					     <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
    355			};
    356			lsm303dlh@1e {
    357				/* Magnetometer */
    358				compatible = "st,lsm303dlh-magn";
    359				reg = <0x1e>;
    360				vdd-supply = <&ab8500_ldo_aux1_reg>;
    361				vddio-supply = <&db8500_vsmps2_reg>;
    362				pinctrl-names = "default";
    363				pinctrl-0 = <&magneto_snowball_mode>;
    364				interrupt-parent = <&gpio5>;
    365				interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
    366			};
    367			l3g4200d@68 {
    368				/* Gyroscope */
    369				compatible = "st,l3g4200d-gyro";
    370				st,drdy-int-pin = <2>;
    371				reg = <0x68>;
    372				vdd-supply = <&ab8500_ldo_aux1_reg>;
    373				vddio-supply = <&db8500_vsmps2_reg>;
    374				pinctrl-names = "default";
    375				pinctrl-0 = <&gyro_snowball_mode>;
    376				interrupt-parent = <&gpio5>;
    377				interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
    378					     <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
    379			};
    380			lsp001wm@5c {
    381				/* Barometer/pressure sensor */
    382				compatible = "st,lps001wp-press";
    383				reg = <0x5c>;
    384				vdd-supply = <&ab8500_ldo_aux1_reg>;
    385				vddio-supply = <&db8500_vsmps2_reg>;
    386			};
    387		};
    388
    389		i2c@80110000 {
    390			pinctrl-names = "default","sleep";
    391			pinctrl-0 = <&i2c3_c_2_default>;
    392			pinctrl-1 = <&i2c3_c_2_sleep>;
    393			status = "okay";
    394		};
    395
    396		spi@80002000 {
    397			pinctrl-names = "default";
    398			pinctrl-0 = <&ssp0_snowball_mode>;
    399			status = "okay";
    400		};
    401
    402		prcmu@80157000 {
    403			ab8500 {
    404				gpio {
    405					/*
    406					 * AB8500 GPIOs are numbered starting from 1, so the first
    407					 * index 0 is what in the datasheet is called "GPIO1", and
    408					 * the second is "GPIO2" and so forth. Confusingly, the
    409					 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
    410					 * while later naming "GPIO4" as "PM_GPIO4".
    411					 */
    412					gpio-line-names = "", /* AB8500 GPIO1 */
    413						     "PM_GPIO1", /* AB8500 GPIO2 */
    414						     "WLAN_CLK_REQ", /* AB8500 GPIO3 */
    415						     "PM_GPIO4", /* AB8500 GPIO4 */
    416						     "", "", "", "", "", "", "", "", "", "", "",
    417						     "EN_3V6", /* AB8500 GPIO16 */
    418						     "", "", "", "" ,"", "", "", "", "",
    419						     "EN_3V3", /* AB8500 GPIO26 */
    420						     "", "", "", "", "", "", "", "", "", "", "", "", "",
    421						     "PM_GPIO40", /* AB8500 GPIO40 */
    422						     "PM_GPIO41", /* AB8500 GPIO41 */
    423						     "PM_GPIO42"; /* AB8500 GPIO42 */
    424				};
    425
    426				phy {
    427					pinctrl-names = "default", "sleep";
    428					pinctrl-0 = <&usb_a_1_default>;
    429					pinctrl-1 = <&usb_a_1_sleep>;
    430				};
    431
    432				ext_regulators: regulator-external {
    433					ab8500_ext1_reg: ab8500_ext1 {
    434						regulator-name = "ab8500-ext-supply1";
    435					};
    436
    437					ab8500_ext2_reg_reg: ab8500_ext2 {
    438						regulator-name = "ab8500-ext-supply2";
    439					};
    440
    441					ab8500_ext3_reg_reg: ab8500_ext3 {
    442						regulator-name = "ab8500-ext-supply3";
    443					};
    444				};
    445
    446				regulator {
    447					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
    448						regulator-name = "V-DISPLAY";
    449					};
    450
    451					ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
    452						regulator-name = "V-eMMC1";
    453					};
    454
    455					ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
    456						regulator-name = "V-MMC-SD";
    457					};
    458
    459					ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
    460						regulator-name = "V-INTCORE";
    461					};
    462
    463					ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
    464						regulator-name = "V-TVOUT";
    465					};
    466
    467					ab8500_ldo_audio_reg: ab8500_ldo_audio {
    468						regulator-name = "V-AUD";
    469					};
    470
    471					ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
    472						regulator-name = "V-AMIC1";
    473					};
    474
    475					ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
    476						regulator-name = "V-AMIC2";
    477					};
    478
    479					ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
    480						regulator-name = "V-DMIC";
    481					};
    482
    483					ab8500_ldo_ana_reg: ab8500_ldo_ana {
    484						regulator-name = "V-CSI/DSI";
    485					};
    486				};
    487			};
    488		};
    489
    490		pinctrl {
    491			/*
    492			 * Set this up using hogs, as time goes by and as seems fit, these
    493			 * can be moved over to being controlled by respective device.
    494			 */
    495			pinctrl-names = "default";
    496			pinctrl-0 = <&gbf_snowball_mode>,
    497				  <&wlan_snowball_mode>;
    498
    499			ethernet {
    500				/*
    501				 * Mux in "SM" which is used for the
    502				 * SMSC911x Ethernet adapter
    503				 */
    504				eth_snowball_mode: eth_snowball {
    505					snowball_mux {
    506						function = "sm";
    507						groups = "sm_b_1";
    508					};
    509					/* LAN IRQ pin */
    510					snowball_cfg1 {
    511						pins = "GPIO140_B11";
    512						ste,config = <&in_nopull>;
    513					};
    514					/* LAN reset pin */
    515					snowball_cfg2 {
    516						pins = "GPIO141_C12";
    517						ste,config = <&gpio_out_hi>;
    518					};
    519
    520				};
    521			};
    522			sdi0 {
    523				sdi0_default_mode: sdi0_default {
    524					snowball_mux {
    525						function = "mc0";
    526						/* Add the DAT31 pin even if it is not really used */
    527						groups = "mc0dat31dir_a_1";
    528					};
    529					snowball_cfg1 {
    530						pins = "GPIO21_AB3"; /* DAT31DIR */
    531						ste,config = <&out_hi>;
    532					};
    533					/* SD card detect GPIO pin, extend default state */
    534					snowball_cfg2 {
    535						pins = "GPIO218_AH11";
    536						ste,config = <&gpio_in_pu>;
    537					};
    538					/* VMMCI level-shifter enable */
    539					snowball_cfg3 {
    540						pins = "GPIO217_AH12";
    541						ste,config = <&gpio_out_hi>;
    542					};
    543					/* VMMCI level-shifter voltage select */
    544					snowball_cfg4 {
    545						pins = "GPIO228_AJ6";
    546						ste,config = <&gpio_out_hi>;
    547					};
    548				};
    549			};
    550			ssp0 {
    551				ssp0_snowball_mode: ssp0_snowball_default {
    552					snowball_mux {
    553						function = "ssp0";
    554						groups = "ssp0_a_1";
    555					};
    556					snowball_cfg1 {
    557						pins = "GPIO144_B13"; /* FRM */
    558						ste,config = <&gpio_out_hi>;
    559					};
    560					snowball_cfg2 {
    561						pins = "GPIO145_C13"; /* RXD */
    562						ste,config = <&in_pd>;
    563					};
    564					snowball_cfg3 {
    565						pins =
    566						"GPIO146_D13", /* TXD */
    567						"GPIO143_D12"; /* CLK */
    568						ste,config = <&out_lo>;
    569					};
    570
    571				};
    572			};
    573			gpio_led {
    574				gpioled_snowball_mode: gpioled_default {
    575					snowball_cfg1 {
    576						pins = "GPIO142_C11";
    577						ste,config = <&gpio_out_hi>;
    578					};
    579
    580				};
    581			};
    582			accelerometer {
    583				accel_snowball_mode: accel_snowball {
    584					/* Accelerometer lines */
    585					snowball_cfg1 {
    586						pins =
    587						"GPIO163_C20", /* ACCEL_IRQ1 */
    588						"GPIO164_B21"; /* ACCEL_IRQ2 */
    589						ste,config = <&gpio_in_pu>;
    590					};
    591				};
    592			};
    593			gyro {
    594				gyro_snowball_mode: gyro_snowball {
    595					snowball_cfg1 {
    596						pins =
    597						"GPIO166_A22", /* DRDY */
    598						"GPIO169_D22"; /* INT */
    599						ste,config = <&gpio_in_pu>;
    600					};
    601				};
    602			};
    603			magnetometer {
    604				magneto_snowball_mode: magneto_snowball {
    605					snowball_cfg1 {
    606						pins = "GPIO165_C21"; /* MAG_DRDY */
    607						ste,config = <&gpio_in_pu>;
    608					};
    609				};
    610			};
    611			gbf {
    612				gbf_snowball_mode: gbf_snowball {
    613					/*
    614					 * GBF (GPS, Bluetooth, FM-radio) interface,
    615					 * pull low to reset state
    616					 */
    617					snowball_cfg1 {
    618						pins = "GPIO171_D23"; /* GBF_ENA_RESET */
    619						ste,config = <&gpio_out_lo>;
    620					};
    621				 };
    622			};
    623			wlan {
    624				wlan_snowball_mode: wlan_snowball {
    625					/*
    626					 * Activate this mode with the WLAN chip.
    627					 * These are plain GPIO pins used by WLAN
    628					 */
    629					snowball_cfg1 {
    630						pins =
    631						"GPIO161_D21", /* WLAN_PMU_EN */
    632						"GPIO215_AH13"; /* WLAN_ENA */
    633						ste,config = <&gpio_out_lo>;
    634					};
    635					snowball_cfg2 {
    636						pins = "GPIO216_AG12"; /* WLAN_IRQ */
    637						ste,config = <&gpio_in_pu>;
    638					};
    639				};
    640			};
    641		};
    642
    643		mcde@a0350000 {
    644			pinctrl-names = "default", "sleep";
    645			pinctrl-0 = <&lcd_default_mode>;
    646			pinctrl-1 = <&lcd_sleep_mode>;
    647		};
    648	};
    649};