firmware: scmi: Support probe vendor ID 0x80 and 0x82

Preparing to add i.MX LMM and CPU protocol driver, support probe SCMI
vendor ID 0x80(i.MX SCMI LMM ID) and 0x82(i.MX SCMI CPU ID). And use
Kconfig option to support conditional compilation.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Alice Guo <alice.guo@nxp.com>
This commit is contained in:
Peng Fan
2025-10-17 17:32:32 +08:00
committed by Tom Rini
parent d1f1c98d84
commit 7830ccc77a
4 changed files with 34 additions and 0 deletions

View File

@@ -41,3 +41,9 @@ config SCMI_AGENT_OPTEE
help
Enable the SCMI communication channel based on OP-TEE transport
for compatible "linaro,scmi-optee".
config SCMI_ID_VENDOR_80
bool
config SCMI_ID_VENDOR_82
bool

View File

@@ -110,6 +110,16 @@ struct udevice *scmi_get_protocol(struct udevice *dev,
case SCMI_PROTOCOL_ID_PINCTRL:
proto = priv->pinctrl_dev;
break;
#endif
#if IS_ENABLED(CONFIG_SCMI_ID_VENDOR_80)
case SCMI_PROTOCOL_ID_VENDOR_80:
proto = priv->vendor_dev_80;
break;
#endif
#if IS_ENABLED(CONFIG_SCMI_ID_VENDOR_82)
case SCMI_PROTOCOL_ID_VENDOR_82:
proto = priv->vendor_dev_82;
break;
#endif
default:
dev_err(dev, "Protocol not supported\n");
@@ -173,6 +183,16 @@ static int scmi_add_protocol(struct udevice *dev,
case SCMI_PROTOCOL_ID_PINCTRL:
priv->pinctrl_dev = proto;
break;
#endif
#if IS_ENABLED(CONFIG_SCMI_ID_VENDOR_80)
case SCMI_PROTOCOL_ID_VENDOR_80:
priv->vendor_dev_80 = proto;
break;
#endif
#if IS_ENABLED(CONFIG_SCMI_ID_VENDOR_82)
case SCMI_PROTOCOL_ID_VENDOR_82:
priv->vendor_dev_82 = proto;
break;
#endif
default:
dev_err(dev, "Protocol not supported\n");

View File

@@ -55,6 +55,12 @@ struct scmi_agent_priv {
#if IS_ENABLED(CONFIG_PINCTRL_IMX_SCMI)
struct udevice *pinctrl_dev;
#endif
#if IS_ENABLED(CONFIG_SCMI_ID_VENDOR_80)
struct udevice *vendor_dev_80;
#endif
#if IS_ENABLED(CONFIG_SCMI_ID_VENDOR_82)
struct udevice *vendor_dev_82;
#endif
};
static inline u32 scmi_version(struct udevice *dev)

View File

@@ -25,6 +25,8 @@ enum scmi_std_protocol {
SCMI_PROTOCOL_ID_RESET_DOMAIN = 0x16,
SCMI_PROTOCOL_ID_VOLTAGE_DOMAIN = 0x17,
SCMI_PROTOCOL_ID_PINCTRL = 0x19,
SCMI_PROTOCOL_ID_VENDOR_80 = 0x80,
SCMI_PROTOCOL_ID_VENDOR_82 = 0x82,
};
enum scmi_status_code {