Skip to content

Commit 01e9d2c

Browse files
committed
Merge tag 'qcom-drivers-for-6.3' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers
Qualcomm driver updates for v6.3 This introduces a new driver for the Data Capture and Compare block, which provides a mechanism for capturing hardware state (access MMIO registers) either upon request of triggered automatically e.g. upon a watchdog bite, for post mortem analysis. The remote filesystem memory share driver gains support for having its memory bound to more than a single VMID. The SCM driver gains the minimal support needed to support a new mechanism where secure world can put calls on hold and later request them to be retried. Support for the new SA8775P platform is added to rpmhpd, QDU1000 is added to the SCM driver and a long list of platforms are added to the socinfo driver. Support for socinfo data revision 16 is also introduced. Lastly a driver to program the ramp controller in MSM8976 is introduced. * tag 'qcom-drivers-for-6.3' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (33 commits) firmware: qcom: scm: Add wait-queue handling logic dt-bindings: firmware: qcom,scm: Add optional interrupt Revert "dt-bindings: power: rpmpd: Add SM4250 support" Revert "soc: qcom: rpmpd: Add SM4250 support" soc: qcom: socinfo: Add a bunch of older SoCs dt-bindings: arm: qcom,ids: Add a bunch of older SoCs dt-bindings: arm: qcom,ids: Add QRD board ID soc: qcom: socinfo: Fix soc_id order dt-bindings: soc: qcom: smd-rpm: Exclude MSM8936 from glink-channels dt-bindings: firmware: qcom: scm: Separate VMIDs from header to bindings soc: qcom: rmtfs: Optionally map RMTFS to more VMs dt-bindings: reserved-memory: rmtfs: Make qcom,vmid an array dt-bindings: firmware: scm: Add QDU1000/QRU1000 compatible dt-bindings: firmware: qcom,scm: narrow clocks and interconnects dt-bindings: firmware: qcom,scm: document MSM8226 clocks soc: qcom: ramp_controller: Make things static soc: qcom: rmphpd: add power domains for sa8775p dt-bindings: power: qcom,rpmpd: document sa8775p PM: AVS: qcom-cpr: Fix an error handling path in cpr_probe() soc: qcom: dcc: rewrite description of dcc sysfs files ... Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Arnd Bergmann <[email protected]>
2 parents 4a54ecf + 6bf3259 commit 01e9d2c

File tree

30 files changed

+2489
-352
lines changed

30 files changed

+2489
-352
lines changed
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
What: /sys/kernel/debug/dcc/.../ready
2+
Date: December 2022
3+
Contact: Souradeep Chowdhury <[email protected]>
4+
Description:
5+
This file is used to check the status of the dcc
6+
hardware if it's ready to receive user configurations.
7+
A 'Y' here indicates dcc is ready.
8+
9+
What: /sys/kernel/debug/dcc/.../trigger
10+
Date: December 2022
11+
Contact: Souradeep Chowdhury <[email protected]>
12+
Description:
13+
This is the debugfs interface for manual software
14+
triggers. The trigger can be invoked by writing '1'
15+
to the file.
16+
17+
What: /sys/kernel/debug/dcc/.../config_reset
18+
Date: December 2022
19+
Contact: Souradeep Chowdhury <[email protected]>
20+
Description:
21+
This file is used to reset the configuration of
22+
a dcc driver to the default configuration. When '1'
23+
is written to the file, all the previous addresses
24+
stored in the driver gets removed and users need to
25+
reconfigure addresses again.
26+
27+
What: /sys/kernel/debug/dcc/.../[list-number]/config
28+
Date: December 2022
29+
Contact: Souradeep Chowdhury <[email protected]>
30+
Description:
31+
This stores the addresses of the registers which
32+
can be read in case of a hardware crash or manual
33+
software triggers. The input addresses type
34+
can be one of following dcc instructions: read,
35+
write, read-write, and loop type. The lists need to
36+
be configured sequentially and not in a overlapping
37+
manner; e.g. users can jump to list x only after
38+
list y is configured and enabled. The input format for
39+
each type is as follows:
40+
41+
i) Read instruction
42+
43+
::
44+
45+
echo R <addr> <n> <bus> >/sys/kernel/debug/dcc/../[list-number]/config
46+
47+
where:
48+
49+
<addr>
50+
The address to be read.
51+
52+
<n>
53+
The addresses word count, starting from address <1>.
54+
Each word is 32 bits (4 bytes). If omitted, defaulted
55+
to 1.
56+
57+
<bus type>
58+
The bus type, which can be either 'apb' or 'ahb'.
59+
The default is 'ahb' if leaved out.
60+
61+
ii) Write instruction
62+
63+
::
64+
65+
echo W <addr> <n> <bus type> > /sys/kernel/debug/dcc/../[list-number]/config
66+
67+
where:
68+
69+
<addr>
70+
The address to be written.
71+
72+
<n>
73+
The value to be written at <addr>.
74+
75+
<bus type>
76+
The bus type, which can be either 'apb' or 'ahb'.
77+
78+
iii) Read-write instruction
79+
80+
::
81+
82+
echo RW <addr> <n> <mask> > /sys/kernel/debug/dcc/../[list-number]/config
83+
84+
where:
85+
86+
<addr>
87+
The address to be read and written.
88+
89+
<n>
90+
The value to be written at <addr>.
91+
92+
<mask>
93+
The value mask.
94+
95+
iv) Loop instruction
96+
97+
::
98+
99+
echo L <loop count> <address count> <address>... > /sys/kernel/debug/dcc/../[list-number]/config
100+
101+
where:
102+
103+
<loop count>
104+
Number of iterations
105+
106+
<address count>
107+
total number of addresses to be written
108+
109+
<address>
110+
Space-separated list of addresses.
111+
112+
What: /sys/kernel/debug/dcc/.../[list-number]/enable
113+
Date: December 2022
114+
Contact: Souradeep Chowdhury <[email protected]>
115+
Description:
116+
This debugfs interface is used for enabling the
117+
the dcc hardware. A file named "enable" is in the
118+
directory list number where users can enable/disable
119+
the specific list by writing boolean (1 or 0) to the
120+
file.
121+
122+
On enabling the dcc, all the addresses specified
123+
by the user for the corresponding list is written
124+
into dcc sram which is read by the dcc hardware
125+
on manual or crash induced triggers. Lists must
126+
be configured and enabled sequentially, e.g. list
127+
2 can only be enabled when list 1 have so.

Documentation/devicetree/bindings/firmware/qcom,scm.yaml

Lines changed: 57 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ properties:
3838
- qcom,scm-msm8994
3939
- qcom,scm-msm8996
4040
- qcom,scm-msm8998
41+
- qcom,scm-qdu1000
4142
- qcom,scm-sc7180
4243
- qcom,scm-sc7280
4344
- qcom,scm-sc8280xp
@@ -73,6 +74,12 @@ properties:
7374
'#reset-cells':
7475
const: 1
7576

77+
interrupts:
78+
description:
79+
The wait-queue interrupt that firmware raises as part of handshake
80+
protocol to handle sleeping SCM calls.
81+
maxItems: 1
82+
7683
qcom,dload-mode:
7784
$ref: /schemas/types.yaml#/definitions/phandle-array
7885
items:
@@ -82,6 +89,32 @@ properties:
8289
description: TCSR hardware block
8390

8491
allOf:
92+
# Clocks
93+
- if:
94+
properties:
95+
compatible:
96+
contains:
97+
enum:
98+
- qcom,scm-apq8064
99+
- qcom,scm-apq8084
100+
- qcom,scm-mdm9607
101+
- qcom,scm-msm8226
102+
- qcom,scm-msm8660
103+
- qcom,scm-msm8916
104+
- qcom,scm-msm8953
105+
- qcom,scm-msm8960
106+
- qcom,scm-msm8974
107+
- qcom,scm-msm8976
108+
- qcom,scm-sm6375
109+
then:
110+
required:
111+
- clocks
112+
- clock-names
113+
else:
114+
properties:
115+
clock-names: false
116+
clocks: false
117+
85118
- if:
86119
properties:
87120
compatible:
@@ -100,17 +133,14 @@ allOf:
100133
clocks:
101134
maxItems: 1
102135

103-
required:
104-
- clocks
105-
- clock-names
106-
107136
- if:
108137
properties:
109138
compatible:
110139
contains:
111140
enum:
112141
- qcom,scm-apq8084
113142
- qcom,scm-mdm9607
143+
- qcom,scm-msm8226
114144
- qcom,scm-msm8916
115145
- qcom,scm-msm8953
116146
- qcom,scm-msm8974
@@ -127,9 +157,29 @@ allOf:
127157
minItems: 3
128158
maxItems: 3
129159

130-
required:
131-
- clocks
132-
- clock-names
160+
# Interconnects
161+
- if:
162+
not:
163+
properties:
164+
compatible:
165+
contains:
166+
enum:
167+
- qcom,scm-sm8450
168+
then:
169+
properties:
170+
interconnects: false
171+
172+
# Interrupts
173+
- if:
174+
not:
175+
properties:
176+
compatible:
177+
contains:
178+
enum:
179+
- qcom,scm-sm8450
180+
then:
181+
properties:
182+
interrupts: false
133183

134184
required:
135185
- compatible

0 commit comments

Comments
 (0)