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:
parent
cf4266513c
commit
ace81764b1
4 changed files with 1058 additions and 0 deletions
41
Documentation/devicetree/bindings/soc/qcom/dcc.txt
Normal file
41
Documentation/devicetree/bindings/soc/qcom/dcc.txt
Normal 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;
|
||||||
|
};
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
1009
drivers/soc/qcom/dcc.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue