Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/remoteproc/qcom,kaanapali-soccp-pas.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Kaanapali SoCCP Peripheral Authentication Service

maintainers:
- Jingyi Wang <[email protected]>

description:
The SoC Control Processor (SoCCP) is small RISC-V MCU that controls USB
Type-C, battery charging and various other functions on Qualcomm SoCs, somewhat
analogous to traditional PC Embedded Controllers. This document describes
the Peripheral Authentication Service loads and boots firmware for SoCCP.

properties:
compatible:
oneOf:
- items:
- enum:
- qcom,glymur-soccp-pas
- const: qcom,kaanapali-soccp-pas
- enum:
- qcom,kaanapali-soccp-pas

reg:
maxItems: 1

interrupts:
items:
- description: Watchdog interrupt
- description: Fatal interrupt
- description: Ready interrupt
- description: Handover interrupt
- description: Stop acknowledge interrupt
- description: Pong interrupt
- description: Wake acknowledge interrupt

interrupt-names:
items:
- const: wdog
- const: fatal
- const: ready
- const: handover
- const: stop-ack
- const: pong
- const: wake-ack

clocks:
items:
- description: XO clock

clock-names:
items:
- const: xo

power-domains:
items:
- description: CX power domain
- description: MX power domain

power-domain-names:
items:
- const: cx
- const: mx

firmware-name:
$ref: /schemas/types.yaml#/definitions/string-array
items:
- description: Firmware name of the Hexagon core
- description: Firmware name of the Hexagon Devicetree

memory-region:
items:
- description: Memory region for main Firmware authentication
- description: Memory region for Devicetree Firmware authentication

qcom,smem-states:
$ref: /schemas/types.yaml#/definitions/phandle-array
description: States used by the AP to signal the Hexagon core
items:
- description: Stop the remoteproc
- description: wakeup the remoteproc
- description: make remoteproc sleep
- description: ping the remoteproc

qcom,smem-state-names:
description: The names of the state bits used for SMP2P output
items:
- const: stop
- const: wakeup
- const: sleep
- const: ping

glink-edge:
$ref: /schemas/remoteproc/qcom,glink-edge.yaml#
unevaluatedProperties: false
description: |
Qualcomm G-Link subnode which represents communication edge, channels
and devices related to the Remoteproc.

required:
- compatible
- reg
- memory-region
- clocks
- clock-names
- interrupts
- interrupt-names
- qcom,smem-states
- qcom,smem-state-names

unevaluatedProperties: false

examples:
- |
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/mailbox/qcom-ipcc.h>
#include <dt-bindings/power/qcom-rpmpd.h>

remoteproc@d00000 {
compatible = "qcom,kaanapali-soccp-pas";
reg = <0x00d00000 0x200000>;

clocks = <&rpmhcc RPMH_CXO_CLK>;
clock-names = "xo";

interrupts-extended = <&intc GIC_SPI 167 IRQ_TYPE_EDGE_RISING>,
<&soccp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
<&soccp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
<&soccp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
<&soccp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
<&soccp_smp2p_in 9 IRQ_TYPE_EDGE_RISING>,
<&soccp_smp2p_in 10 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "wdog",
"fatal",
"ready",
"handover",
"stop-ack",
"pong",
"wake-ack";

memory-region = <&soccp_mem>,
<&soccp_dtb_mem_mem>;

firmware-name = "qcom/kaanapali/soccp.mbn",
"qcom/kaanapali/soccp_dtb.mbn";

power-domains = <&rpmhpd RPMHPD_CX>,
<&rpmhpd RPMHPD_MX>;
power-domain-names = "cx",
"mx";

qcom,smem-states = <&soccp_smp2p_out 0>,
<&soccp_smp2p_out 10>,
<&soccp_smp2p_out 9>,
<&soccp_smp2p_out 8>;
qcom,smem-state-names = "stop",
"wakeup",
"sleep",
"ping";

glink-edge {
interrupts-extended = <&ipcc IPCC_MPROC_SOCCP
IPCC_MPROC_SIGNAL_GLINK_QMP
IRQ_TYPE_EDGE_RISING>;
mboxes = <&ipcc IPCC_MPROC_SOCCP
IPCC_MPROC_SIGNAL_GLINK_QMP>;

label = "soccp";
qcom,remote-pid = <19>;

/* ... */
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,16 @@ properties:
- qcom,x1e80100-adsp-pas
- qcom,x1e80100-cdsp-pas
- items:
- const: qcom,sm8750-adsp-pas
- enum:
- qcom,glymur-adsp-pas
- qcom,sm8750-adsp-pas
- const: qcom,sm8550-adsp-pas
- items:
- const: qcom,sm8750-cdsp-pas
- const: qcom,sm8650-cdsp-pas
- items:
- const: qcom,glymur-cdsp-pas
- const: qcom,sm8550-cdsp-pas

reg:
maxItems: 1
Expand Down Expand Up @@ -95,6 +100,8 @@ allOf:
compatible:
contains:
enum:
- qcom,glymur-adsp-pas
- qcom,glymur-cdsp-pas
- qcom,sm8750-adsp-pas
then:
properties:
Expand Down Expand Up @@ -185,6 +192,7 @@ allOf:
compatible:
contains:
enum:
- qcom,glymur-adsp-pas
- qcom,sm8550-adsp-pas
- qcom,sm8650-adsp-pas
- qcom,sm8750-adsp-pas
Expand Down Expand Up @@ -223,6 +231,7 @@ allOf:
compatible:
contains:
enum:
- qcom,glymur-cdsp-pas
- qcom,sm8550-cdsp-pas
- qcom,sm8650-cdsp-pas
- qcom,x1e80100-cdsp-pas
Expand All @@ -238,6 +247,17 @@ allOf:
- const: cx
- const: mxc
- const: nsp
- if:
properties:
compatible:
enum:
- qcom,glymur-adsp-pas
- qcom,glymur-cdsp-pas
then:
properties:
iommus:
minItems: 1
maxItems: 1

unevaluatedProperties: false

Expand Down