soc: qcom: dcc: add support for DCC driver

DCC (Data Capture and Compare) is a DMA engine which is used to save
configuration data or system memory contents during catastrophic failure
or SW trigger.

It can also perform CRC over the same configuration or memory space.

Change-Id: Ic8a804250ab8b7ac501bd186d2e6f7506bb9b21a
Signed-off-by: Shashank Mittal <mittals@codeaurora.org>
This commit is contained in:
Shashank Mittal 2015-04-13 18:39:59 -07:00 committed by Jeevan Shriram
parent cf4266513c
commit ace81764b1
4 changed files with 1058 additions and 0 deletions

View file

@ -0,0 +1,41 @@
* Data Capture and Compare (DCC)
DCC (Data Capture and Compare) is a DMA engine, which is used to save
configuration data or system memory contents during catastrophic failure or
SW trigger.
It can also perform CRC over the same configuration or memory space.
Required properties:
- compatible : name of the component used for driver matching, should be
"qcom,dcc"
- reg : physical base address and length of the register set(s) and SRAM
of the component.
- reg-names : names corresponding to each reg property value.
Optional properties:
- qcom,save-reg: boolean, To save dcc registers state in memory after dcc
enable and disable
- qcom,data-sink: string, To specify default data sink for dcc, should be one
of the following:
"atb" : To send captured data over ATB to a trace sink
"sram" : To save captured data in dcc internal SRAM.
Example:
dcc: dcc@4b3000 {
compatible = "qcom,dcc";
reg = <0x4b3000 0x1000>,
<0x4b4000 0x2000>;
reg-names = "dcc-base", "dcc-ram-base";
clocks = <&clock_gcc clk_gcc_dcc_ahb_clk>;
clock-names = "dcc_clk";
qcom,save-reg;
};

View file

@ -219,6 +219,13 @@ config MSM_HVC
Partner/Manufacturer function identifier subrange but supports other Partner/Manufacturer function identifier subrange but supports other
service call subranges as well. service call subranges as well.
config QCOM_DCC
bool "QCOM Data Capture and Compare enigne support"
help
This option enables driver for Data Capture and Compare engine. DCC
driver provides interface to configure DCC block and read back
captured data from DCC's internal SRAM.
config MSM_IPC_ROUTER_SMD_XPRT config MSM_IPC_ROUTER_SMD_XPRT
depends on MSM_SMD depends on MSM_SMD
depends on IPC_ROUTER depends on IPC_ROUTER

View file

@ -64,6 +64,7 @@ obj-$(CONFIG_QCOM_SCM_XPU) += scm-xpu.o
obj-$(CONFIG_QCOM_WATCHDOG_V2) += watchdog_v2.o obj-$(CONFIG_QCOM_WATCHDOG_V2) += watchdog_v2.o
obj-$(CONFIG_QCOM_MEMORY_DUMP) += memory_dump.o obj-$(CONFIG_QCOM_MEMORY_DUMP) += memory_dump.o
obj-$(CONFIG_QCOM_MEMORY_DUMP_V2) += memory_dump_v2.o obj-$(CONFIG_QCOM_MEMORY_DUMP_V2) += memory_dump_v2.o
obj-$(CONFIG_QCOM_DCC) += dcc.o
obj-$(CONFIG_QCOM_WATCHDOG_V2) += watchdog_v2.o obj-$(CONFIG_QCOM_WATCHDOG_V2) += watchdog_v2.o
obj-$(CONFIG_QCOM_COMMON_LOG) += common_log.o obj-$(CONFIG_QCOM_COMMON_LOG) += common_log.o
obj-$(CONFIG_TRACER_PKT) += tracer_pkt.o obj-$(CONFIG_TRACER_PKT) += tracer_pkt.o

1009
drivers/soc/qcom/dcc.c Normal file

File diff suppressed because it is too large Load diff