diff options
| author | Michal Simek <[email protected]> | 2026-07-29 14:02:48 +0200 |
|---|---|---|
| committer | Peng Fan <[email protected]> | 2026-08-11 15:44:32 +0800 |
| commit | fc55d1e91094666fd04c8351ad13dac3b0b2ddf9 (patch) | |
| tree | dd49396505ad73b97e3fec0392e98da60a4c1c15 | |
| parent | ce220f7f6407c3c6e3cae469cf7d80ad3cba20d9 (diff) | |
firmware: scmi: Support probe vendor ID 0x81
Preparing to add the AMD/Xilinx SCMI vendor protocol driver, support probe
of SCMI vendor ID 0x81. Add the protocol ID, the per-agent protocol device
slot, the probe/lookup switch cases and the scmi command name, gated by a
Kconfig option for conditional compilation.
The same wiring has been done by commit 7830ccc77a13 ("firmware: scmi:
Support probe vendor ID 0x80 and 0x82").
Signed-off-by: Michal Simek <[email protected]>
Signed-off-by: Peng Fan <[email protected]>
| -rw-r--r-- | cmd/scmi.c | 1 | ||||
| -rw-r--r-- | drivers/firmware/scmi/Kconfig | 3 | ||||
| -rw-r--r-- | drivers/firmware/scmi/scmi_agent-uclass.c | 10 | ||||
| -rw-r--r-- | include/scmi_agent-uclass.h | 3 | ||||
| -rw-r--r-- | include/scmi_protocols.h | 1 |
5 files changed, 18 insertions, 0 deletions
diff --git a/cmd/scmi.c b/cmd/scmi.c index af974314583..1aa20c7bd96 100644 --- a/cmd/scmi.c +++ b/cmd/scmi.c @@ -31,6 +31,7 @@ struct { {SCMI_PROTOCOL_ID_VOLTAGE_DOMAIN, "Voltage domain management"}, {SCMI_PROTOCOL_ID_PINCTRL, "Pin control management"}, {SCMI_PROTOCOL_ID_VENDOR_80, "Vendor specific (0x80)"}, + {SCMI_PROTOCOL_ID_VENDOR_81, "Vendor specific (0x81)"}, {SCMI_PROTOCOL_ID_VENDOR_82, "Vendor specific (0x82)"}, }; diff --git a/drivers/firmware/scmi/Kconfig b/drivers/firmware/scmi/Kconfig index cd912ebe409..64bc9aef5af 100644 --- a/drivers/firmware/scmi/Kconfig +++ b/drivers/firmware/scmi/Kconfig @@ -46,6 +46,9 @@ config SCMI_AGENT_OPTEE config SCMI_ID_VENDOR_80 bool +config SCMI_ID_VENDOR_81 + bool + config SCMI_ID_VENDOR_82 bool diff --git a/drivers/firmware/scmi/scmi_agent-uclass.c b/drivers/firmware/scmi/scmi_agent-uclass.c index cd458a7f458..9159e59385b 100644 --- a/drivers/firmware/scmi/scmi_agent-uclass.c +++ b/drivers/firmware/scmi/scmi_agent-uclass.c @@ -116,6 +116,11 @@ struct udevice *scmi_get_protocol(struct udevice *dev, proto = priv->vendor_dev_80; break; #endif +#if IS_ENABLED(CONFIG_SCMI_ID_VENDOR_81) + case SCMI_PROTOCOL_ID_VENDOR_81: + proto = priv->vendor_dev_81; + break; +#endif #if IS_ENABLED(CONFIG_SCMI_ID_VENDOR_82) case SCMI_PROTOCOL_ID_VENDOR_82: proto = priv->vendor_dev_82; @@ -189,6 +194,11 @@ static int scmi_add_protocol(struct udevice *dev, priv->vendor_dev_80 = proto; break; #endif +#if IS_ENABLED(CONFIG_SCMI_ID_VENDOR_81) + case SCMI_PROTOCOL_ID_VENDOR_81: + priv->vendor_dev_81 = proto; + break; +#endif #if IS_ENABLED(CONFIG_SCMI_ID_VENDOR_82) case SCMI_PROTOCOL_ID_VENDOR_82: priv->vendor_dev_82 = proto; diff --git a/include/scmi_agent-uclass.h b/include/scmi_agent-uclass.h index c40b448bcba..c9d77ad8ec7 100644 --- a/include/scmi_agent-uclass.h +++ b/include/scmi_agent-uclass.h @@ -58,6 +58,9 @@ struct scmi_agent_priv { #if IS_ENABLED(CONFIG_SCMI_ID_VENDOR_80) struct udevice *vendor_dev_80; #endif +#if IS_ENABLED(CONFIG_SCMI_ID_VENDOR_81) + struct udevice *vendor_dev_81; +#endif #if IS_ENABLED(CONFIG_SCMI_ID_VENDOR_82) struct udevice *vendor_dev_82; #endif diff --git a/include/scmi_protocols.h b/include/scmi_protocols.h index a8fd0a5a729..801912d16a9 100644 --- a/include/scmi_protocols.h +++ b/include/scmi_protocols.h @@ -26,6 +26,7 @@ enum scmi_std_protocol { SCMI_PROTOCOL_ID_VOLTAGE_DOMAIN = 0x17, SCMI_PROTOCOL_ID_PINCTRL = 0x19, SCMI_PROTOCOL_ID_VENDOR_80 = 0x80, + SCMI_PROTOCOL_ID_VENDOR_81 = 0x81, SCMI_PROTOCOL_ID_VENDOR_82 = 0x82, }; |
