Merge "ARM: dts: msm: Add SMP2P entries for MSMFALCON"

This commit is contained in:
Linux Build Service Account 2016-08-16 10:20:17 -07:00 committed by Gerrit - the friendly Code Review server
commit 02a6f0f1c2
11 changed files with 218 additions and 16 deletions

View file

@ -181,7 +181,7 @@ added to the end of the list (Table 3).
-------------------------------------------------
| Wireless processor | 4 |
-------------------------------------------------
| Modem Fw | 5 |
| CDSP processor | 5 |
-------------------------------------------------
| Power processor | 6 |
-------------------------------------------------
@ -206,6 +206,8 @@ Item ID will be 427 + 1 = 428.
---------------------------------------------------
| Description | SMEM ID value |
---------------------------------------------------
| CDSP SMEM Item base | 94 |
---------------------------------------------------
| Apps SMP2P SMEM Item base | 427 |
---------------------------------------------------
| Modem SMP2P SMEM Item base | 435 |

View file

@ -1,7 +1,9 @@
Qualcomm Technologies, Inc. SMSM Point-to-Point (SMP2P) Sleepstate driver
Required properties:
-compatible : should be "qcom,smp2pgpio_sleepstate_3_out";
-compatible : should be one of the following:
- "qcom,smp2pgpio_sleepstate_3_out" - for sensor processor on remote pid 3
- "qcom,smp2pgpio-sleepstate-out" - for other cases
-gpios : the relevant gpio pins of the entry.
Example:

View file

@ -31,6 +31,8 @@ Unit test devices ("smp2p" entries):
"qcom,smp2pgpio_test_smp2p_3_in"
"qcom,smp2pgpio_test_smp2p_4_out"
"qcom,smp2pgpio_test_smp2p_4_in"
"qcom,smp2pgpio_test_smp2p_5_out"
"qcom,smp2pgpio_test_smp2p_5_in"
"qcom,smp2pgpio_test_smp2p_7_out"
"qcom,smp2pgpio_test_smp2p_7_in"
"qcom,smp2pgpio_test_smp2p_15_out"

View file

@ -0,0 +1,175 @@
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&soc {
qcom,smp2p-modem@17911008 {
compatible = "qcom,smp2p";
reg = <0x17911008 0x4>;
qcom,remote-pid = <1>;
qcom,irq-bitmask = <0x4000>;
interrupts = <0 451 1>;
};
qcom,smp2p-adsp@17911008 {
compatible = "qcom,smp2p";
reg = <0x17911008 0x4>;
qcom,remote-pid = <2>;
qcom,irq-bitmask = <0x400>;
interrupts = <0 158 1>;
};
qcom,smp2p-cdsp@17911008 {
compatible = "qcom,smp2p";
reg = <0x17911008 0x4>;
qcom,remote-pid = <5>;
qcom,irq-bitmask = <0x40000000>;
interrupts = <0 514 1>;
};
smp2pgpio_smp2p_15_in: qcom,smp2pgpio-smp2p-15-in {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <15>;
qcom,is-inbound;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
qcom,smp2pgpio_test_smp2p_15_in {
compatible = "qcom,smp2pgpio_test_smp2p_15_in";
gpios = <&smp2pgpio_smp2p_15_in 0 0>;
};
smp2pgpio_smp2p_15_out: qcom,smp2pgpio-smp2p-15-out {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <15>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
qcom,smp2pgpio_test_smp2p_15_out {
compatible = "qcom,smp2pgpio_test_smp2p_15_out";
gpios = <&smp2pgpio_smp2p_15_out 0 0>;
};
smp2pgpio_smp2p_1_in: qcom,smp2pgpio-smp2p-1-in {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <1>;
qcom,is-inbound;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
qcom,smp2pgpio_test_smp2p_1_in {
compatible = "qcom,smp2pgpio_test_smp2p_1_in";
gpios = <&smp2pgpio_smp2p_1_in 0 0>;
};
smp2pgpio_smp2p_1_out: qcom,smp2pgpio-smp2p-1-out {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <1>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
qcom,smp2pgpio_test_smp2p_1_out {
compatible = "qcom,smp2pgpio_test_smp2p_1_out";
gpios = <&smp2pgpio_smp2p_1_out 0 0>;
};
smp2pgpio_smp2p_2_in: qcom,smp2pgpio-smp2p-2-in {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <2>;
qcom,is-inbound;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
qcom,smp2pgpio_test_smp2p_2_in {
compatible = "qcom,smp2pgpio_test_smp2p_2_in";
gpios = <&smp2pgpio_smp2p_2_in 0 0>;
};
smp2pgpio_smp2p_2_out: qcom,smp2pgpio-smp2p-2-out {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <2>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
qcom,smp2pgpio_test_smp2p_2_out {
compatible = "qcom,smp2pgpio_test_smp2p_2_out";
gpios = <&smp2pgpio_smp2p_2_out 0 0>;
};
smp2pgpio_sleepstate_2_out: qcom,smp2pgpio-sleepstate-gpio-2-out {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "sleepstate";
qcom,remote-pid = <2>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
qcom,smp2pgpio-sleepstate-2-out {
compatible = "qcom,smp2pgpio-sleepstate-out";
gpios = <&smp2pgpio_sleepstate_2_out 0 0>;
};
smp2pgpio_smp2p_5_in: qcom,smp2pgpio-smp2p-5-in {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <5>;
qcom,is-inbound;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
qcom,smp2pgpio_test_smp2p_5_in {
compatible = "qcom,smp2pgpio_test_smp2p_5_in";
gpios = <&smp2pgpio_smp2p_5_in 0 0>;
};
smp2pgpio_smp2p_5_out: qcom,smp2pgpio-smp2p-5-out {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <5>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
qcom,smp2pgpio_test_smp2p_5_out {
compatible = "qcom,smp2pgpio_test_smp2p_5_out";
gpios = <&smp2pgpio_smp2p_5_out 0 0>;
};
};

View file

@ -194,6 +194,7 @@
};
};
#include "msmfalcon-smp2p.dtsi"
&soc {
#address-cells = <1>;
#size-cells = <1>;

View file

@ -1,6 +1,6 @@
/* drivers/gpio/gpio-msm-smp2p-test.c
*
* Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@ -95,6 +95,10 @@ static int smp2p_gpio_test_probe(struct platform_device *pdev)
gpio_info_ptr = &gpio_info[SMP2P_WIRELESS_PROC].in;
} else if (strcmp("qcom,smp2pgpio_test_smp2p_4_out", node->name) == 0) {
gpio_info_ptr = &gpio_info[SMP2P_WIRELESS_PROC].out;
} else if (strcmp("qcom,smp2pgpio_test_smp2p_5_in", node->name) == 0) {
gpio_info_ptr = &gpio_info[SMP2P_CDSP_PROC].in;
} else if (strcmp("qcom,smp2pgpio_test_smp2p_5_out", node->name) == 0) {
gpio_info_ptr = &gpio_info[SMP2P_CDSP_PROC].out;
} else if (strcmp("qcom,smp2pgpio_test_smp2p_7_in", node->name) == 0) {
gpio_info_ptr = &gpio_info[SMP2P_TZ_PROC].in;
} else if (strcmp("qcom,smp2pgpio_test_smp2p_7_out", node->name) == 0) {
@ -148,6 +152,10 @@ static struct of_device_id msm_smp2p_match_table[] = {
{.compatible = "qcom,smp2pgpio_test_smp2p_4_out", },
{.compatible = "qcom,smp2pgpio_test_smp2p_4_in", },
/* CDSP */
{.compatible = "qcom,smp2pgpio_test_smp2p_5_out", },
{.compatible = "qcom,smp2pgpio_test_smp2p_5_in", },
/* TZ */
{.compatible = "qcom,smp2pgpio_test_smp2p_7_out", },
{.compatible = "qcom,smp2pgpio_test_smp2p_7_in", },

View file

@ -1,6 +1,6 @@
/* drivers/soc/qcom/smp2p.c
*
* Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@ -214,6 +214,7 @@ static struct smp2p_interrupt_config smp2p_int_cfgs[SMP2P_NUM_PROCS] = {
[SMP2P_AUDIO_PROC].name = "lpass",
[SMP2P_SENSOR_PROC].name = "dsps",
[SMP2P_WIRELESS_PROC].name = "wcnss",
[SMP2P_CDSP_PROC].name = "cdsp",
[SMP2P_TZ_PROC].name = "tz",
[SMP2P_REMOTE_MOCK_PROC].name = "mock",
};
@ -333,6 +334,9 @@ static int smp2p_get_smem_item_id(int write_pid, int read_pid)
case SMP2P_WIRELESS_PROC:
ret = SMEM_SMP2P_WIRLESS_BASE + read_pid;
break;
case SMP2P_CDSP_PROC:
ret = SMEM_SMP2P_CDSP_BASE + read_pid;
break;
case SMP2P_POWER_PROC:
ret = SMEM_SMP2P_POWER_BASE + read_pid;
break;

View file

@ -1,6 +1,6 @@
/* drivers/soc/qcom/smp2p_private_api.h
*
* Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@ -31,7 +31,7 @@ enum {
SMP2P_AUDIO_PROC = 2,
SMP2P_SENSOR_PROC = 3,
SMP2P_WIRELESS_PROC = 4,
SMP2P_RESERVED_PROC_2 = 5,
SMP2P_CDSP_PROC = 5,
SMP2P_POWER_PROC = 6,
SMP2P_TZ_PROC = 7,
/* add new processors here */

View file

@ -1,4 +1,4 @@
/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
/* Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@ -74,6 +74,7 @@ static int smp2p_sleepstate_probe(struct platform_device *pdev)
static struct of_device_id msm_smp2p_slst_match_table[] = {
{.compatible = "qcom,smp2pgpio_sleepstate_3_out"},
{.compatible = "qcom,smp2pgpio-sleepstate-out"},
{},
};

View file

@ -373,6 +373,11 @@ static void smp2p_ut_remote_spinlock_wcnss(struct seq_file *s)
smp2p_ut_remote_spinlock_pid(s, SMP2P_WIRELESS_PROC, false);
}
static void smp2p_ut_remote_spinlock_cdsp(struct seq_file *s)
{
smp2p_ut_remote_spinlock_pid(s, SMP2P_CDSP_PROC, false);
}
static void smp2p_ut_remote_spinlock_tz(struct seq_file *s)
{
smp2p_ut_remote_spinlock_pid(s, SMP2P_TZ_PROC, false);
@ -752,6 +757,11 @@ static void smp2p_ut_remote_spinlock_track_wcnss(struct seq_file *s)
smp2p_ut_remote_spinlock_track(s, SMP2P_WIRELESS_PROC);
}
static void smp2p_ut_remote_spinlock_track_cdsp(struct seq_file *s)
{
smp2p_ut_remote_spinlock_track(s, SMP2P_CDSP_PROC);
}
static void smp2p_ut_remote_spinlock_track_tz(struct seq_file *s)
{
smp2p_ut_remote_spinlock_track(s, SMP2P_TZ_PROC);
@ -782,6 +792,8 @@ static int __init smp2p_debugfs_init(void)
smp2p_ut_remote_spinlock_dsps);
smp2p_debug_create("ut_remote_spinlock_wcnss",
smp2p_ut_remote_spinlock_wcnss);
smp2p_debug_create("ut_remote_spinlock_cdsp",
smp2p_ut_remote_spinlock_cdsp);
smp2p_debug_create("ut_remote_spinlock_tz",
smp2p_ut_remote_spinlock_tz);
smp2p_debug_create("ut_remote_spinlock_rpm",
@ -798,6 +810,8 @@ static int __init smp2p_debugfs_init(void)
&smp2p_ut_remote_spinlock_track_dsps);
smp2p_debug_create("ut_remote_spinlock_track_wcnss",
&smp2p_ut_remote_spinlock_track_wcnss);
smp2p_debug_create("ut_remote_spinlock_track_cdsp",
&smp2p_ut_remote_spinlock_track_cdsp);
smp2p_debug_create("ut_remote_spinlock_track_tz",
&smp2p_ut_remote_spinlock_track_tz);
return 0;

View file

@ -92,15 +92,8 @@ enum {
SMEM_KEYPAD_STATE_UPDATED,
SMEM_KEYPAD_STATE_IDX,
SMEM_GPIO_INT,
SMEM_MDDI_LCD_IDX,
SMEM_MDDI_HOST_DRIVER_STATE,
SMEM_MDDI_LCD_DISP_STATE,
SMEM_LCD_CUR_PANEL,
SMEM_MARM_BOOT_SEGMENT_INFO,
SMEM_AARM_BOOT_SEGMENT_INFO,
SMEM_SLEEP_STATIC,
SMEM_SCORPION_FREQUENCY,
SMEM_SMD_PROFILES,
SMEM_SMP2P_CDSP_BASE,
SMEM_SMD_PROFILES = SMEM_SMP2P_CDSP_BASE + 8,
SMEM_TSSC_BUSY,
SMEM_HS_SUSPEND_FILTER_INFO,
SMEM_BATT_INFO,