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

msm8916-samsung-serranove.dts (10391B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2// Copyright (C) 2019 Stephan Gerhold
      3
      4/dts-v1/;
      5
      6#include "msm8916-pm8916.dtsi"
      7#include <dt-bindings/gpio/gpio.h>
      8#include <dt-bindings/input/input.h>
      9#include <dt-bindings/interrupt-controller/irq.h>
     10
     11/*
     12 * NOTE: The original firmware from Samsung can only boot ARM32 kernels.
     13 * Unfortunately, the firmware is signed and cannot be replaced easily.
     14 * There seems to be no way to boot ARM64 kernels on this device at the moment,
     15 * even though the hardware would support it.
     16 *
     17 * However, it is possible to use this device tree by compiling an ARM32 kernel
     18 * instead. For clarity and build testing this device tree is maintained next
     19 * to the other MSM8916 device trees. However, it is actually used through
     20 *   arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dts
     21 */
     22
     23/ {
     24	model = "Samsung Galaxy S4 Mini Value Edition";
     25	compatible = "samsung,serranove", "qcom,msm8916";
     26	chassis-type = "handset";
     27
     28	aliases {
     29		serial0 = &blsp1_uart2;
     30	};
     31
     32	chosen {
     33		stdout-path = "serial0";
     34	};
     35
     36	reserved-memory {
     37		/* Additional memory used by Samsung firmware modifications */
     38		tz-apps@85500000 {
     39			reg = <0x0 0x85500000 0x0 0xb00000>;
     40			no-map;
     41		};
     42	};
     43
     44	gpio-keys {
     45		compatible = "gpio-keys";
     46
     47		pinctrl-names = "default";
     48		pinctrl-0 = <&gpio_keys_default>;
     49
     50		label = "GPIO Buttons";
     51
     52		volume-up {
     53			label = "Volume Up";
     54			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
     55			linux,code = <KEY_VOLUMEUP>;
     56		};
     57
     58		home {
     59			label = "Home";
     60			gpios = <&msmgpio 109 GPIO_ACTIVE_LOW>;
     61			linux,code = <KEY_HOMEPAGE>;
     62		};
     63	};
     64
     65	gpio-hall-sensor {
     66		compatible = "gpio-keys";
     67
     68		pinctrl-names = "default";
     69		pinctrl-0 = <&gpio_hall_sensor_default>;
     70
     71		label = "GPIO Hall Effect Sensor";
     72
     73		hall-sensor {
     74			label = "Hall Effect Sensor";
     75			gpios = <&msmgpio 52 GPIO_ACTIVE_LOW>;
     76			linux,input-type = <EV_SW>;
     77			linux,code = <SW_LID>;
     78			linux,can-disable;
     79		};
     80	};
     81
     82	reg_vdd_tsp: regulator-vdd-tsp {
     83		compatible = "regulator-fixed";
     84		regulator-name = "vdd_tsp";
     85		regulator-min-microvolt = <3300000>;
     86		regulator-max-microvolt = <3300000>;
     87
     88		gpio = <&msmgpio 73 GPIO_ACTIVE_HIGH>;
     89		enable-active-high;
     90
     91		pinctrl-names = "default";
     92		pinctrl-0 = <&tsp_en_default>;
     93	};
     94
     95	reg_touch_key: regulator-touch-key {
     96		compatible = "regulator-fixed";
     97		regulator-name = "touch_key";
     98		regulator-min-microvolt = <2800000>;
     99		regulator-max-microvolt = <2800000>;
    100
    101		gpio = <&msmgpio 86 GPIO_ACTIVE_HIGH>;
    102		enable-active-high;
    103
    104		pinctrl-names = "default";
    105		pinctrl-0 = <&tkey_en_default>;
    106	};
    107
    108	reg_key_led: regulator-key-led {
    109		compatible = "regulator-fixed";
    110		regulator-name = "key_led";
    111		regulator-min-microvolt = <3300000>;
    112		regulator-max-microvolt = <3300000>;
    113
    114		gpio = <&msmgpio 60 GPIO_ACTIVE_HIGH>;
    115		enable-active-high;
    116
    117		pinctrl-names = "default";
    118		pinctrl-0 = <&tkey_led_en_default>;
    119	};
    120
    121	i2c-muic {
    122		compatible = "i2c-gpio";
    123		sda-gpios = <&msmgpio 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
    124		scl-gpios = <&msmgpio 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
    125
    126		pinctrl-names = "default";
    127		pinctrl-0 = <&muic_i2c_default>;
    128
    129		#address-cells = <1>;
    130		#size-cells = <0>;
    131
    132		muic: extcon@14 {
    133			compatible = "siliconmitus,sm5504-muic";
    134			reg = <0x14>;
    135
    136			interrupt-parent = <&msmgpio>;
    137			interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
    138
    139			pinctrl-names = "default";
    140			pinctrl-0 = <&muic_irq_default>;
    141		};
    142	};
    143
    144	i2c-tkey {
    145		compatible = "i2c-gpio";
    146		sda-gpios = <&msmgpio 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
    147		scl-gpios = <&msmgpio 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
    148
    149		pinctrl-names = "default";
    150		pinctrl-0 = <&tkey_i2c_default>;
    151
    152		#address-cells = <1>;
    153		#size-cells = <0>;
    154
    155		touchkey@20 {
    156			compatible = "coreriver,tc360-touchkey";
    157			reg = <0x20>;
    158
    159			interrupt-parent = <&msmgpio>;
    160			interrupts = <98 IRQ_TYPE_EDGE_FALLING>;
    161
    162			vcc-supply = <&reg_touch_key>;
    163			vdd-supply = <&reg_key_led>;
    164			vddio-supply = <&pm8916_l6>;
    165
    166			linux,keycodes = <KEY_APPSELECT KEY_BACK>;
    167
    168			pinctrl-names = "default";
    169			pinctrl-0 = <&tkey_default>;
    170		};
    171	};
    172
    173	i2c-nfc {
    174		compatible = "i2c-gpio";
    175		sda-gpios = <&msmgpio 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
    176		scl-gpios = <&msmgpio 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
    177
    178		pinctrl-names = "default";
    179		pinctrl-0 = <&nfc_i2c_default>;
    180
    181		#address-cells = <1>;
    182		#size-cells = <0>;
    183
    184		nfc@2b {
    185			compatible = "nxp,pn547", "nxp,nxp-nci-i2c";
    186			reg = <0x2b>;
    187
    188			interrupt-parent = <&msmgpio>;
    189			interrupts = <21 IRQ_TYPE_EDGE_RISING>;
    190
    191			enable-gpios = <&msmgpio 20 GPIO_ACTIVE_HIGH>;
    192			firmware-gpios = <&msmgpio 49 GPIO_ACTIVE_HIGH>;
    193
    194			pinctrl-names = "default";
    195			pinctrl-0 = <&nfc_default>;
    196		};
    197	};
    198};
    199
    200&blsp_i2c2 {
    201	status = "okay";
    202
    203	imu@6b {
    204		compatible = "st,lsm6ds3";
    205		reg = <0x6b>;
    206
    207		interrupt-parent = <&msmgpio>;
    208		interrupts = <115 IRQ_TYPE_EDGE_RISING>;
    209
    210		pinctrl-names = "default";
    211		pinctrl-0 = <&imu_irq_default>;
    212	};
    213};
    214
    215&blsp_i2c4 {
    216	status = "okay";
    217
    218	battery@35 {
    219		compatible = "richtek,rt5033-battery";
    220		reg = <0x35>;
    221
    222		interrupt-parent = <&msmgpio>;
    223		interrupts = <121 IRQ_TYPE_EDGE_FALLING>;
    224
    225		pinctrl-names = "default";
    226		pinctrl-0 = <&fg_alert_default>;
    227	};
    228};
    229
    230&blsp_i2c5 {
    231	status = "okay";
    232
    233	touchscreen@20 {
    234		compatible = "zinitix,bt541";
    235		reg = <0x20>;
    236
    237		interrupt-parent = <&msmgpio>;
    238		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
    239
    240		touchscreen-size-x = <540>;
    241		touchscreen-size-y = <960>;
    242
    243		vdd-supply = <&reg_vdd_tsp>;
    244		vddo-supply = <&pm8916_l6>;
    245
    246		pinctrl-names = "default";
    247		pinctrl-0 = <&tsp_irq_default>;
    248	};
    249};
    250
    251&blsp1_uart2 {
    252	status = "okay";
    253};
    254
    255&pm8916_resin {
    256	status = "okay";
    257	linux,code = <KEY_VOLUMEDOWN>;
    258};
    259
    260&pm8916_vib {
    261	status = "okay";
    262};
    263
    264&pronto {
    265	status = "okay";
    266
    267	iris {
    268		compatible = "qcom,wcn3660b";
    269	};
    270};
    271
    272&sdhc_1 {
    273	status = "okay";
    274
    275	pinctrl-names = "default", "sleep";
    276	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
    277	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
    278};
    279
    280&sdhc_2 {
    281	status = "okay";
    282
    283	pinctrl-names = "default", "sleep";
    284	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
    285	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
    286
    287	non-removable;
    288
    289	/*
    290	 * FIXME: Disable UHS-I modes since tuning fails with:
    291	 *
    292	 * sdhci_msm 7864900.sdhci: mmc1: No tuning point found
    293	 * mmc1: tuning execution failed: -5
    294	 * mmc1: error -5 whilst initialising SD card
    295	 *
    296	 * This is the quirk used on downstream, which suggests this is
    297	 * a hardware limitation. However, probing a card using DDR50 works
    298	 * (without tuning), so maybe only tuning is broken?
    299	 */
    300	no-1-8-v;
    301};
    302
    303&usb {
    304	status = "okay";
    305	extcon = <&muic>, <&muic>;
    306};
    307
    308&usb_hs_phy {
    309	extcon = <&muic>;
    310};
    311
    312&smd_rpm_regulators {
    313	vdd_l1_l2_l3-supply = <&pm8916_s3>;
    314	vdd_l4_l5_l6-supply = <&pm8916_s4>;
    315	vdd_l7-supply = <&pm8916_s4>;
    316
    317	s3 {
    318		regulator-min-microvolt = <1200000>;
    319		regulator-max-microvolt = <1300000>;
    320	};
    321
    322	s4 {
    323		regulator-min-microvolt = <1800000>;
    324		regulator-max-microvolt = <2100000>;
    325	};
    326
    327	l1 {
    328		regulator-min-microvolt = <1225000>;
    329		regulator-max-microvolt = <1225000>;
    330	};
    331
    332	l2 {
    333		regulator-min-microvolt = <1200000>;
    334		regulator-max-microvolt = <1200000>;
    335	};
    336
    337	l4 {
    338		regulator-min-microvolt = <2050000>;
    339		regulator-max-microvolt = <2050000>;
    340	};
    341
    342	l5 {
    343		regulator-min-microvolt = <1800000>;
    344		regulator-max-microvolt = <1800000>;
    345	};
    346
    347	l6 {
    348		regulator-min-microvolt = <1800000>;
    349		regulator-max-microvolt = <1800000>;
    350	};
    351
    352	l7 {
    353		regulator-min-microvolt = <1800000>;
    354		regulator-max-microvolt = <1800000>;
    355	};
    356
    357	l8 {
    358		regulator-min-microvolt = <2850000>;
    359		regulator-max-microvolt = <2900000>;
    360	};
    361
    362	l9 {
    363		regulator-min-microvolt = <3300000>;
    364		regulator-max-microvolt = <3300000>;
    365	};
    366
    367	l10 {
    368		regulator-min-microvolt = <2700000>;
    369		regulator-max-microvolt = <2800000>;
    370	};
    371
    372	l11 {
    373		regulator-min-microvolt = <1800000>;
    374		regulator-max-microvolt = <2950000>;
    375		regulator-allow-set-load;
    376		regulator-system-load = <200000>;
    377	};
    378
    379	l12 {
    380		regulator-min-microvolt = <1800000>;
    381		regulator-max-microvolt = <2950000>;
    382	};
    383
    384	l13 {
    385		regulator-min-microvolt = <3075000>;
    386		regulator-max-microvolt = <3075000>;
    387	};
    388
    389	l14 {
    390		regulator-min-microvolt = <1800000>;
    391		regulator-max-microvolt = <3300000>;
    392	};
    393
    394	l15 {
    395		regulator-min-microvolt = <1800000>;
    396		regulator-max-microvolt = <3300000>;
    397	};
    398
    399	l16 {
    400		regulator-min-microvolt = <1800000>;
    401		regulator-max-microvolt = <3300000>;
    402	};
    403
    404	l17 {
    405		regulator-min-microvolt = <2850000>;
    406		regulator-max-microvolt = <2850000>;
    407	};
    408
    409	l18 {
    410		regulator-min-microvolt = <2700000>;
    411		regulator-max-microvolt = <2700000>;
    412	};
    413};
    414
    415&msmgpio {
    416	fg_alert_default: fg-alert-default {
    417		pins = "gpio121";
    418		function = "gpio";
    419
    420		drive-strength = <2>;
    421		bias-disable;
    422	};
    423
    424	gpio_keys_default: gpio-keys-default {
    425		pins = "gpio107", "gpio109";
    426		function = "gpio";
    427
    428		drive-strength = <2>;
    429		bias-pull-up;
    430	};
    431
    432	gpio_hall_sensor_default: gpio-hall-sensor-default {
    433		pins = "gpio52";
    434		function = "gpio";
    435
    436		drive-strength = <2>;
    437		bias-disable;
    438	};
    439
    440	imu_irq_default: imu-irq-default {
    441		pins = "gpio115";
    442		function = "gpio";
    443
    444		drive-strength = <2>;
    445		bias-disable;
    446	};
    447
    448	muic_i2c_default: muic-i2c-default {
    449		pins = "gpio105", "gpio106";
    450		function = "gpio";
    451
    452		drive-strength = <2>;
    453		bias-disable;
    454	};
    455
    456	muic_irq_default: muic-irq-default {
    457		pins = "gpio12";
    458		function = "gpio";
    459
    460		drive-strength = <2>;
    461		bias-disable;
    462	};
    463
    464	nfc_default: nfc-default {
    465		pins = "gpio20", "gpio49";
    466		function = "gpio";
    467
    468		drive-strength = <2>;
    469		bias-disable;
    470
    471		irq {
    472			pins = "gpio21";
    473			function = "gpio";
    474
    475			drive-strength = <2>;
    476			bias-pull-down;
    477		};
    478	};
    479
    480	nfc_i2c_default: nfc-i2c-default {
    481		pins = "gpio0", "gpio1";
    482		function = "gpio";
    483
    484		drive-strength = <2>;
    485		bias-disable;
    486	};
    487
    488	tkey_default: tkey-default {
    489		pins = "gpio98";
    490		function = "gpio";
    491
    492		drive-strength = <2>;
    493		bias-disable;
    494	};
    495
    496	tkey_en_default: tkey-en-default {
    497		pins = "gpio86";
    498		function = "gpio";
    499
    500		drive-strength = <2>;
    501		bias-disable;
    502	};
    503
    504	tkey_i2c_default: tkey-i2c-default {
    505		pins = "gpio16", "gpio17";
    506		function = "gpio";
    507
    508		drive-strength = <2>;
    509		bias-disable;
    510	};
    511
    512	tkey_led_en_default: tkey-led-en-default {
    513		pins = "gpio60";
    514		function = "gpio";
    515
    516		drive-strength = <2>;
    517		bias-disable;
    518	};
    519
    520	tsp_en_default: tsp-en-default {
    521		pins = "gpio73";
    522		function = "gpio";
    523
    524		drive-strength = <2>;
    525		bias-disable;
    526	};
    527
    528	tsp_irq_default: tsp-irq-default {
    529		pins = "gpio13";
    530		function = "gpio";
    531
    532		drive-strength = <2>;
    533		bias-disable;
    534	};
    535};