|  | /* | 
|  | * Copyright (c) 2025 Analog Devices, Inc. | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | #include <zephyr/kernel.h> | 
|  | #include <zephyr/devicetree.h> | 
|  | #include <zephyr/cpu_freq/cpu_freq.h> | 
|  | #include <zephyr/cpu_freq/pstate.h> | 
|  | #include <zephyr/logging/log.h> | 
|  |  | 
|  | LOG_MODULE_REGISTER(stub_cpu_freq, CONFIG_CPU_FREQ_LOG_LEVEL); | 
|  |  | 
|  | struct stub_config { | 
|  | int state_id; | 
|  | }; | 
|  |  | 
|  | int cpu_freq_pstate_set(const struct pstate *state) | 
|  | { | 
|  | if (state == NULL) { | 
|  | LOG_ERR("Stub pstate is NULL"); | 
|  | return -EINVAL; | 
|  | } | 
|  |  | 
|  | int state_id = ((const struct stub_config *)state->config)->state_id; | 
|  |  | 
|  | LOG_DBG("Stub setting performance state: %d", state_id); | 
|  |  | 
|  | switch (state_id) { | 
|  | case 0: | 
|  | LOG_DBG("Stub setting P-state 0: Nominal Mode\n"); | 
|  | break; | 
|  | case 1: | 
|  | LOG_DBG("Stub setting P-state 1: Low Power Mode\n"); | 
|  | break; | 
|  | case 2: | 
|  | LOG_DBG("Stub setting P-state 2: Ultra-low Power Mode\n"); | 
|  | break; | 
|  | default: | 
|  | LOG_ERR("Stub unsupported P-state: %d", state_id); | 
|  | return -1; | 
|  | } | 
|  |  | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | #define DEFINE_STUB_CONFIG(node_id)                             \ | 
|  | static const struct stub_config                         \ | 
|  | _CONCAT(stub_config_, node_id) = {              \ | 
|  | .state_id = DT_PROP(node_id, pstate_id),        \ | 
|  | };                                                      \ | 
|  | PSTATE_DT_DEFINE(node_id, &_CONCAT(stub_config_, node_id)) | 
|  |  | 
|  | DT_FOREACH_CHILD_STATUS_OKAY(DT_PATH(performance_states), DEFINE_STUB_CONFIG) |