1 /* 2 * Copyright 2025 NXP 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #include "dsp.h" 8 9 #include <string.h> 10 #include <stdint.h> 11 #include <zephyr/kernel.h> 12 #include <zephyr/device.h> 13 #include <zephyr/devicetree.h> 14 15 #include <zephyr/drivers/misc/nxp_rtxxx_dsp_ctrl/nxp_rtxxx_dsp_ctrl.h> 16 17 static const struct device *dsp = DEVICE_DT_GET(DT_NODELABEL(dsp)); 18 19 /* DSP binary image symbols - exported by dspimgs.S */ 20 extern uint32_t dsp_img_reset_start[]; 21 extern uint32_t dsp_img_reset_size; 22 23 extern uint32_t dsp_img_text_start[]; 24 extern uint32_t dsp_img_text_size; 25 26 extern uint32_t dsp_img_data_start[]; 27 extern uint32_t dsp_img_data_size; 28 dsp_start(void)29void dsp_start(void) 30 { 31 if (!device_is_ready(dsp)) { 32 return; 33 } 34 35 nxp_rtxxx_dsp_ctrl_load_section(dsp, 36 dsp_img_reset_start, dsp_img_reset_size, NXP_RTXXX_DSP_CTRL_SECTION_RESET); 37 nxp_rtxxx_dsp_ctrl_load_section(dsp, 38 dsp_img_text_start, dsp_img_text_size, NXP_RTXXX_DSP_CTRL_SECTION_TEXT); 39 nxp_rtxxx_dsp_ctrl_load_section(dsp, 40 dsp_img_data_start, dsp_img_data_size, NXP_RTXXX_DSP_CTRL_SECTION_DATA); 41 42 nxp_rtxxx_dsp_ctrl_enable(dsp); 43 } 44