123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /*
- * Copyright 2021-2024 NXP
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- #include <assert.h>
- #include <stdint.h>
- #include <drivers/scmi-msg.h>
- #include <drivers/scmi.h>
- #include <platform_def.h>
- #define SMT_BUFFER_BASE 0x2201f000
- #define SMT_BUFFER0_BASE SMT_BUFFER_BASE
- #define SMT_BUFFER1_BASE (SMT_BUFFER_BASE + 0x200)
- static struct scmi_msg_channel scmi_channel[] = {
- [0] = {
- .shm_addr = SMT_BUFFER0_BASE,
- .shm_size = SMT_BUF_SLOT_SIZE,
- },
- };
- struct scmi_msg_channel *plat_scmi_get_channel(unsigned int agent_id)
- {
- assert(agent_id < ARRAY_SIZE(scmi_channel));
- return &scmi_channel[agent_id];
- }
- static const char vendor[] = "NXP";
- static const char sub_vendor[] = "";
- const char *plat_scmi_vendor_name(void)
- {
- return vendor;
- }
- const char *plat_scmi_sub_vendor_name(void)
- {
- return sub_vendor;
- }
- /* Currently supporting Clocks and Reset Domains */
- static const uint8_t plat_protocol_list[] = {
- SCMI_PROTOCOL_ID_POWER_DOMAIN,
- SCMI_PROTOCOL_ID_SENSOR,
- 0U /* Null termination */
- };
- size_t plat_scmi_protocol_count(void)
- {
- return ARRAY_SIZE(plat_protocol_list) - 1U;
- }
- const uint8_t *plat_scmi_protocol_list(unsigned int agent_id __unused)
- {
- return plat_protocol_list;
- }
- void imx8ulp_init_scmi_server(void)
- {
- size_t i;
- for (i = 0U; i < ARRAY_SIZE(scmi_channel); i++) {
- scmi_smt_init_agent_channel(&scmi_channel[i]);
- }
- }
|