soc: qcom: dcc: Add driver support for Data Capture and Compare unit(DCC)
authorSouradeep Chowdhury <quic_schowdhu@quicinc.com>
Tue, 27 Dec 2022 15:22:46 +0000 (20:52 +0530)
committerBjorn Andersson <andersson@kernel.org>
Wed, 28 Dec 2022 17:29:45 +0000 (11:29 -0600)
commit4cbe60cf5ad622f7f45ccc4fa369c9f7a71903b9
tree25fa81d927b42c5abaf3875f9a9b97cb466d27dc
parent417091dc60ba0a991c0e6aa77c1eeb2cfcf0a3d4
soc: qcom: dcc: Add driver support for Data Capture and Compare unit(DCC)

The DCC is a DMA Engine designed to capture and store data
during system crash or software triggers. The DCC operates
based on user inputs via the debugfs interface. The user gives
addresses as inputs and these addresses are stored in the
dcc sram. In case of a system crash or a manual software
trigger by the user through the debugfs interface,
the dcc captures and stores the values at these addresses.
This patch contains the driver which has all the methods
pertaining to the debugfs interface, auxiliary functions to
support all the four fundamental operations of dcc namely
read, write, read/modify/write and loop. The probe method
here instantiates all the resources necessary for dcc to
operate mainly the dedicated dcc sram where it stores the
values. The DCC driver can be used for debugging purposes
without going for a reboot since it can perform software
triggers as well based on user inputs.

Also add the documentation for debugfs entries which explains
the functionalities of each debugfs file that has been created
for dcc.

The following is the justification of using debugfs interface
over the other alternatives like sysfs/ioctls

i) As can be seen from the debugfs attribute descriptions,
some of the debugfs attribute files here contains multiple
arguments which needs to be accepted from the user. This goes
against the design style of sysfs.

ii) The user input patterns have been made simple and convenient
in this case with the use of debugfs interface as user doesn't
need to shuffle between different files to execute one instruction
as was the case on using other alternatives.

Signed-off-by: Souradeep Chowdhury <quic_schowdhu@quicinc.com>
Reviewed-by: Alex Elder <elder@linaro.org>
[bjorn: Fixed up a few indents and line wraps]
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/644b4f66a358492a8a6738454035c3b120092fe7.1672148732.git.quic_schowdhu@quicinc.com
Documentation/ABI/testing/debugfs-driver-dcc [new file with mode: 0644]
drivers/soc/qcom/Kconfig
drivers/soc/qcom/Makefile
drivers/soc/qcom/dcc.c [new file with mode: 0644]