69 #include <ti/control/mmwavelink/mmwavelink.h> 70 #include <ti/control/mmwavelink/include/rl_device.h> 71 #include <ti/control/mmwavelink/include/rl_driver.h> 72 #include <ti/control/mmwavelink/include/rl_messages.h> 73 #include <ti/control/mmwavelink/include/rl_controller.h> 74 #include <ti/control/mmwavelink/include/rl_trace.h> 102 rlReturnVal_t retVal;
103 rlUInt8_t index = 0U;
115 retVal = RL_RET_CODE_OK;
120 if (retVal == RL_RET_CODE_OK)
123 if (rlDriverInit(deviceMap, clientCb) < 0)
126 retVal += RL_RET_CODE_RADAR_IF_ERROR;
134 if ((deviceMap & (1U << index)) != 0U)
141 retVal += RL_RET_CODE_RADAR_IF_ERROR;
142 RL_LOGE_ARG0(
"mmWaveLink: Enabling device failed \n");
145 RL_LOGW_ARG0(
"mmWaveLink Driver DeInit done\n");
148 deviceMap &= ~(1U << index);
153 while ((deviceMap != 0U) && (index < RL_DEVICE_CONNECTED_MAX));
156 RL_LOGV_ARG0(
"mmWaveLink Power Up completes\n");
177 rlReturnVal_t retVal;
179 RL_LOGV_ARG0(
"rlDeviceAddDevices starts\n");
184 RL_LOGV_ARG0(
"rlDeviceAddDevices completes\n");
204 rlReturnVal_t retVal = RL_RET_CODE_OK;
205 rlUInt8_t index = 0U;
213 rlUInt8_t lclDeviceMap = deviceMap;
217 if ((lclDeviceMap & (1U << index)) != 0U)
226 retVal += RL_RET_CODE_RADAR_IF_ERROR;
227 RL_LOGE_ARG0(
"mmWave device Power Off failed\n");
230 lclDeviceMap &= ~(1U << index);
235 while ((lclDeviceMap != 0U) && (index < RL_DEVICE_CONNECTED_MAX));
237 RL_LOGI_ARG0(
"mmwave device Power Off Successful\n");
244 retVal += RL_RET_CODE_SELF_ERROR;
245 RL_LOGD_ARG0(
"Either rlDrvData is NULL or not initialised\n");
248 RL_LOGV_ARG0(
"rlDeviceRemoveDevices complete...\n");
264 rlReturnVal_t retVal = RL_RET_CODE_OK;
265 rlUInt8_t index = 0U;
273 rlUInt8_t deviceMap = rlDrvData->
deviceMap;
278 if ((deviceMap & (1U << index)) != 0U)
287 retVal += RL_RET_CODE_RADAR_IF_ERROR;
288 RL_LOGE_ARG0(
"mmWave device Power Off failed\n");
291 deviceMap &= ~(1U << index);
296 while ((deviceMap != 0U) || (index < RL_DEVICE_CONNECTED_MAX));
298 RL_LOGI_ARG0(
"Power Off Successful\n");
301 RL_LOGV_ARG0(
"Driver De-initialization complete\n");
306 retVal += RL_RET_CODE_SELF_ERROR;
307 RL_LOGD_ARG0(
"Either rlDrvData is NULL or not initialised\n");
310 RL_LOGV_ARG0(
"Device power-off complete...\n");
327 rlReturnVal_t retVal;
329 RL_LOGV_ARG0(
"rlDeviceRfStart starts...\n");
335 retVal = RL_RET_CODE_INVALID_INPUT;
336 RL_LOGE_ARG0(
"Device map id is invalid\n");
342 RL_SYS_RF_POWERUP_SB, NULL, 0U);
345 RL_LOGV_ARG0(
"rlDeviceRfStart complete...\n");
366 rlUInt16_t remChunks)
368 rlReturnVal_t retVal;
372 (RL_NULL_PTR == data))
375 retVal = RL_RET_CODE_INVALID_INPUT;
376 RL_LOGE_ARG0(
"Invalid input");
383 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
399 inMsg.remChunks = remChunks;
427 rlReturnVal_t retVal;
430 if (data == RL_NULL_PTR)
433 retVal = RL_RET_CODE_NULL_PTR;
440 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
446 RL_SYS_VERSION_SB, (rlUInt8_t*)data, 0U);
464 rlReturnVal_t retVal;
467 if (data == RL_NULL_PTR)
470 retVal = RL_RET_CODE_NULL_PTR;
476 RL_RF_RFVERSION_SB, (rlUInt8_t*)data, 0U);
496 rlReturnVal_t retVal;
498 RL_LOGV_ARG0(
"rlDeviceGetVersion starts...\n");
502 (RL_NULL_PTR == data))
505 retVal = RL_RET_CODE_INVALID_INPUT;
506 RL_LOGE_ARG0(
"Invalid inputs");
519 retVal = RL_RET_CODE_OK;
520 RL_LOGD_ARG0(
" rlPlatform is not host \n");
523 if (retVal == RL_RET_CODE_OK)
529 if (retVal == RL_RET_CODE_OK)
536 RL_LOGV_ARG0(
"rlDeviceGetVersion complete...\n");
553 rlReturnVal_t retVal;
555 RL_LOGV_ARG0(
"rlDeviceGetMmWaveLinkVersion starts...\n");
557 if (RL_NULL_PTR != data)
561 data->
major = RL_MMWAVELINK_VERSION_MAJOR;
563 data->
minor = RL_MMWAVELINK_VERSION_MINOR;
565 data->
build = RL_MMWAVELINK_VERSION_BUILD;
567 data->
debug = RL_MMWAVELINK_VERSION_DEBUG;
569 data->
year = RL_MMWAVELINK_VERSION_YEAR;
571 data->
month = RL_MMWAVELINK_VERSION_MONTH;
573 data->
day = RL_MMWAVELINK_VERSION_DAY;
575 retVal = RL_RET_CODE_OK;
576 RL_LOGD_ARG0(
"Extracted MmWavelink version\n");
581 retVal = RL_RET_CODE_INVALID_INPUT;
582 RL_LOGE_ARG0(
"rlDeviceGetMmWaveLinkVersion, Output param is NULL \n");
585 RL_LOGV_ARG0(
"rlDeviceGetMmWaveLinkVersion complete...\n");
605 rlReturnVal_t retVal;
607 RL_LOGV_ARG0(
"rlDeviceSetDataFmtConfig starts...\n");
611 (RL_NULL_PTR == data))
614 retVal = RL_RET_CODE_INVALID_INPUT;
615 RL_LOGE_ARG0(
"Invalid device mapping\n");
622 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
628 RL_DEV_RX_DATA_FORMAT_CONF_SET_SB, (rlUInt8_t*)data,
632 RL_LOGV_ARG0(
"rlDeviceSetDataFmtConfig complete...\n");
653 rlReturnVal_t retVal;
655 RL_LOGV_ARG0(
"rlDeviceGetDataFmtConfig starts...\n");
659 (RL_NULL_PTR == data))
662 retVal = RL_RET_CODE_INVALID_INPUT;
663 RL_LOGE_ARG0(
"rlDeviceGetDataFmtConfig, Invalid device map\n");
670 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
676 RL_DEV_RX_DATA_FORMAT_CONF_SET_SB,
677 (rlUInt8_t*)data, 0U);
680 RL_LOGV_ARG0(
"rlDeviceGetDataFmtConfig ends...\n");
699 rlReturnVal_t retVal;
701 RL_LOGV_ARG0(
"rlDeviceSetDataPathConfig starts...\n");
705 (RL_NULL_PTR == data))
708 retVal = RL_RET_CODE_INVALID_INPUT;
709 RL_LOGE_ARG0(
"Invalid input");
716 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
722 RL_DEV_RX_DATA_PATH_CONF_SET_SB, (rlUInt8_t*)data,
726 RL_LOGV_ARG0(
"rlDeviceSetDataPathConfig ends...\n");
747 rlReturnVal_t retVal;
749 RL_LOGV_ARG0(
"rlDeviceGetDataPathConfig starts...\n");
753 (RL_NULL_PTR == data))
756 retVal = RL_RET_CODE_INVALID_INPUT;
757 RL_LOGE_ARG0(
"rlDeviceGetDataPathConfig, Invalid device map\n");
764 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
770 RL_DEV_RX_DATA_PATH_CONF_SET_SB,
771 (rlUInt8_t*)data, 0U);
774 RL_LOGV_ARG0(
"rlDeviceGetDataPathConfig ends...\n");
793 rlReturnVal_t retVal;
795 RL_LOGV_ARG0(
"rlDeviceSetLaneConfig starts...\n");
799 (RL_NULL_PTR == data))
802 retVal = RL_RET_CODE_INVALID_INPUT;
803 RL_LOGE_ARG0(
"Invalid input\n");
810 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
816 RL_DEV_DATA_PATH_LANEEN_SET_SB, (rlUInt8_t*)data,
819 RL_LOGV_ARG0(
"rlDeviceSetLaneConfig ends...\n");
840 rlReturnVal_t retVal;
842 RL_LOGV_ARG0(
"rlDeviceGetLaneConfig starts...\n");
846 (RL_NULL_PTR == data))
849 retVal = RL_RET_CODE_INVALID_INPUT;
850 RL_LOGE_ARG0(
"rlDeviceGetLaneConfig, Invalid device map\n");
857 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
863 RL_DEV_DATA_PATH_LANEEN_SET_SB,
864 (rlUInt8_t*)data, 0U);
867 RL_LOGV_ARG0(
"rlDeviceGetLaneConfig ends...\n");
888 rlReturnVal_t retVal;
890 RL_LOGV_ARG0(
"rlDeviceSetDataPathClkConfig starts...\n");
896 retVal = RL_RET_CODE_INVALID_INPUT;
897 RL_LOGE_ARG0(
"Invalid input\n");
904 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
910 RL_DEV_DATA_PATH_CLOCK_SET_SB, (rlUInt8_t*)data,
913 RL_LOGV_ARG0(
"rlDeviceSetDataPathClkConfig ends...\n");
934 rlReturnVal_t retVal;
936 RL_LOGV_ARG0(
"rlDeviceGetDataPathClkConfig starts...\n");
940 (RL_NULL_PTR == data))
943 retVal = RL_RET_CODE_INVALID_INPUT;
944 RL_LOGE_ARG0(
"rlDeviceGetDataPathClkConfig, Invalid device map\n");
951 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
957 RL_DEV_DATA_PATH_CLOCK_SET_SB,
958 (rlUInt8_t*)data, 0U);
961 RL_LOGV_ARG0(
"rlDeviceGetDataPathClkConfig ends...\n");
978 rlReturnVal_t rlDeviceSetLvdsLaneConfig(rlUInt8_t deviceMap,
rlDevLvdsLaneCfg_t* data)
980 rlReturnVal_t retVal;
982 RL_LOGV_ARG0(
"rlDeviceSetLvdsLaneConfig starts...\n");
986 (RL_NULL_PTR == data))
989 retVal = RL_RET_CODE_INVALID_INPUT;
990 RL_LOGE_ARG0(
"Invalid input\n");
997 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1003 RL_DEV_DATA_PATH_CFG_SET_SB, (rlUInt8_t*)data,
1007 RL_LOGV_ARG0(
"rlDeviceSetLvdsLaneConfig ends...\n");
1026 rlReturnVal_t rlDeviceGetLvdsLaneConfig(rlUInt8_t deviceMap,
rlDevLvdsLaneCfg_t* data)
1028 rlReturnVal_t retVal;
1030 RL_LOGV_ARG0(
"rlDeviceGetLvdsLaneConfig starts...\n");
1034 (RL_NULL_PTR == data))
1037 retVal = RL_RET_CODE_INVALID_INPUT;
1038 RL_LOGE_ARG0(
"rlDeviceGetLvdsLaneConfig, Invalid device map\n");
1045 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1051 RL_DEV_DATA_PATH_CFG_SET_SB,
1052 (rlUInt8_t*)data, 0U);
1055 RL_LOGV_ARG0(
"rlDeviceGetLvdsLaneConfig ends...\n");
1080 rlReturnVal_t retVal;
1082 RL_LOGV_ARG0(
"rlDeviceSetContStreamingModeConfig ends...\n");
1086 (RL_NULL_PTR == data))
1089 retVal = RL_RET_CODE_INVALID_INPUT;
1090 RL_LOGE_ARG0(
"Invalid input");
1097 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1103 RL_DEV_RX_CONTSTREAMING_MODE_CONF_SET_SB,
1108 RL_LOGV_ARG0(
"rlDeviceSetContStreamingModeConfig ends...\n");
1132 rlReturnVal_t retVal;
1134 RL_LOGV_ARG0(
"rlDeviceGetContStreamingModeConfig starts...\n");
1138 (RL_NULL_PTR == data))
1141 retVal = RL_RET_CODE_INVALID_INPUT;
1142 RL_LOGE_ARG0(
"rlDeviceGetContStreamingModeConfig, Invalid device map\n");
1149 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1155 RL_DEV_RX_CONTSTREAMING_MODE_CONF_SET_SB,
1156 (rlUInt8_t*)data, 0U);
1159 RL_LOGV_ARG0(
"rlDeviceGetContStreamingModeConfig ends...\n");
1178 rlReturnVal_t retVal;
1180 RL_LOGV_ARG0(
"rlDeviceSetCsi2Config starts...\n");
1184 (RL_NULL_PTR == data))
1187 retVal = RL_RET_CODE_INVALID_INPUT;
1188 RL_LOGE_ARG0(
"Invalid input");
1195 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1201 RL_DEV_CSI2_CFG_SET_SB, (rlUInt8_t*)data,
1204 RL_LOGV_ARG0(
"rlDeviceSetCsi2Config ends...\n");
1225 rlReturnVal_t retVal;
1227 RL_LOGV_ARG0(
"rlDeviceGetCsi2Config starts...\n");
1231 (RL_NULL_PTR == data))
1234 retVal = RL_RET_CODE_INVALID_INPUT;
1235 RL_LOGE_ARG0(
"rlDeviceGetCsi2Config, Invalid device map\n");
1242 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1248 RL_DEV_CSI2_CFG_SET_SB,
1249 (rlUInt8_t*)data, 0U);
1252 RL_LOGV_ARG0(
"rlDeviceGetCsi2Config ends...\n");
1275 rlReturnVal_t retVal;
1279 rlUInt16_t sbcCnt = 0U;
1284 RL_LOGV_ARG0(
"rlDeviceSetHsiConfig starts...\n");
1288 (RL_NULL_PTR == data) )
1291 retVal = RL_RET_CODE_INVALID_INPUT;
1292 RL_LOGE_ARG0(
"rlDeviceSetHsiConfig, Invalid input \n");
1297 if (RL_NULL_PTR != data->
datafmt)
1301 RL_DEV_RX_DATA_FORMAT_CONF_SET_SB,
1302 &inPayloadSb[sbcCnt],
1314 RL_DEV_RX_DATA_PATH_CONF_SET_SB,
1315 &inPayloadSb[sbcCnt],
1327 RL_DEV_DATA_PATH_CLOCK_SET_SB,
1328 &inPayloadSb[sbcCnt],
1341 inMsg.opcode.
nsbc = sbcCnt;
1349 retVal = RL_RET_CODE_INVALID_INPUT;
1350 RL_LOGE_ARG0(
"sub block is NULL\n");
1354 RL_LOGV_ARG0(
"rlDeviceSetHsiConfig ends...\n");
1374 rlReturnVal_t retVal;
1376 RL_LOGV_ARG0(
"rlDeviceSetHsiClk starts...\n");
1380 (RL_NULL_PTR == data))
1383 retVal = RL_RET_CODE_INVALID_INPUT;
1384 RL_LOGE_ARG0(
"Invalid input\n");
1390 RL_RF_HIGHSPEEDINTFCLK_CONF_SET_SB,
1394 RL_LOGV_ARG0(
"rlDeviceSetHsiClk ends...\n");
1415 rlReturnVal_t retVal;
1417 RL_LOGV_ARG0(
"rlDeviceMcuClkConfig starts...\n");
1421 (RL_NULL_PTR == data))
1424 retVal = RL_RET_CODE_INVALID_INPUT;
1425 RL_LOGE_ARG0(
"Invalid input");
1432 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1438 RL_DEV_MCUCLOCK_CONF_SET_SB, (rlUInt8_t*)data,
1441 RL_LOGV_ARG0(
"rlDeviceMcuClkConfig ends...\n");
1461 rlReturnVal_t retVal;
1463 RL_LOGV_ARG0(
"rlDevicePmicClkConfig starts...\n");
1467 (RL_NULL_PTR == data))
1470 retVal = RL_RET_CODE_INVALID_INPUT;
1471 RL_LOGE_ARG0(
"Invalid input");
1478 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1484 RL_DEV_PMICCLOCK_CONF_SET_SB, (rlUInt8_t*)data,
1487 RL_LOGV_ARG0(
"rlDevicePmicClkConfig ends...\n");
1517 rlReturnVal_t retVal;
1519 RL_LOGV_ARG0(
"rlDeviceLatentFaultTests starts...\n");
1523 (RL_NULL_PTR == data))
1526 retVal = RL_RET_CODE_INVALID_INPUT;
1527 RL_LOGE_ARG0(
"Invalid input");
1534 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1540 RL_DEV_LATENTFAULT_TEST_CONF_SB, (rlUInt8_t*)data,
1543 RL_LOGV_ARG0(
"rlDeviceLatentFaultTests ends...\n");
1563 rlReturnVal_t retVal;
1565 RL_LOGV_ARG0(
"rlDeviceEnablePeriodicTests starts...\n");
1569 (RL_NULL_PTR == data))
1572 retVal = RL_RET_CODE_INVALID_INPUT;
1573 RL_LOGE_ARG0(
"Invalid input");
1580 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1586 RL_DEV_PERIODICTESTS_CONF_SB, (rlUInt8_t*)data,
1589 RL_LOGV_ARG0(
"rlDeviceEnablePeriodicTests ends...\n");
1610 rlReturnVal_t retVal;
1612 RL_LOGV_ARG0(
"rlDeviceSetTestPatternConfig starts...\n");
1616 (RL_NULL_PTR == data))
1619 retVal = RL_RET_CODE_INVALID_INPUT;
1620 RL_LOGE_ARG0(
"Invalid input");
1627 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1633 RL_DEV_TESTPATTERN_GEN_SET_SB, (rlUInt8_t*)data,
1636 RL_LOGV_ARG0(
"rlDeviceSetTestPatternConfig ends...\n");
1657 rlReturnVal_t retVal;
1659 RL_LOGV_ARG0(
"rlDeviceSetMiscConfig starts...\n");
1663 (RL_NULL_PTR == data))
1666 retVal = RL_RET_CODE_INVALID_INPUT;
1667 RL_LOGE_ARG0(
"Invalid input");
1674 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1680 RL_DEV_MISC_CFG_SET_SB, (rlUInt8_t*)data,
1683 RL_LOGV_ARG0(
"rlDeviceSetMiscConfig ends...\n");
1705 rlReturnVal_t retVal;
1707 RL_LOGV_ARG0(
"rlDeviceSetDebugSigEnableConfig starts...\n");
1711 (RL_NULL_PTR == data))
1714 retVal = RL_RET_CODE_INVALID_INPUT;
1715 RL_LOGE_ARG0(
"Invalid input");
1722 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1728 RL_DEV_DEBUGSIG_EN_SET_SB, (rlUInt8_t*)data,
1731 RL_LOGV_ARG0(
"rlDeviceSetDebugSigEnableConfig ends...\n");
1763 rlReturnVal_t retVal;
1765 RL_LOGV_ARG0(
"rlDeviceSetCsi2DelayDummyConfig starts...\n");
1769 (RL_NULL_PTR == data))
1772 retVal = RL_RET_CODE_INVALID_INPUT;
1773 RL_LOGE_ARG0(
"Invalid input");
1780 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1786 RL_DEV_CSI2_DELAY_DUMMY_CFG_SET_SB, (rlUInt8_t*)data,
1789 RL_LOGV_ARG0(
"rlDeviceSetCsi2DelayDummyConfig ends...\n");
1809 rlReturnVal_t retVal;
1811 RL_LOGV_ARG0(
"rlDeviceGetCpuFault starts...\n");
1815 (RL_NULL_PTR == data))
1818 retVal = RL_RET_CODE_INVALID_INPUT;
1819 RL_LOGE_ARG0(
"Invalid input");
1826 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1832 RL_SYS_CPUFAULT_STATUS_SB, (rlUInt8_t*)data,
1835 RL_LOGV_ARG0(
"rlDeviceGetCpuFault ends...\n");
1856 rlReturnVal_t retVal;
1858 RL_LOGV_ARG0(
"rlDeviceGetEsmFault starts...\n");
1862 (RL_NULL_PTR == data))
1865 retVal = RL_RET_CODE_INVALID_INPUT;
1866 RL_LOGE_ARG0(
"Invalid input");
1873 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1879 RL_SYS_ESMFAULT_STATUS_SB, (rlUInt8_t*)data,
1882 RL_LOGV_ARG0(
"rlDeviceGetEsmFault ends...\n");
1958 rlReturnVal_t retVal;
1961 RL_LOGV_ARG0(
"rlDeviceSetInternalConf starts...\n");
1967 retVal = RL_RET_CODE_INVALID_INPUT;
1968 RL_LOGE_ARG0(
"Invalid device mapping\n");
1975 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1980 intCfg.memAddr = memAddr;
1981 intCfg.value = value;
1984 RL_DEV_MEM_REGISTER_SB, (rlUInt8_t*)&intCfg,
1988 RL_LOGV_ARG0(
"rlDeviceSetInternalConf complete...\n");
2012 rlReturnVal_t retVal;
2014 RL_LOGV_ARG0(
"rlDeviceGetInternalConf starts...\n");
2018 (RL_NULL_PTR == (rlUInt32_t*)value))
2021 retVal = RL_RET_CODE_INVALID_INPUT;
2022 RL_LOGE_ARG0(
"Invalid device map\n");
2029 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
2047 (rlUInt8_t*)&memAddr, (rlUInt16_t)
sizeof(rlUInt32_t));
2050 outPayloadSb.sbid = RL_GET_UNIQUE_SBID(RL_DEV_INTERNAL_CONF_GET_MSG,
2051 RL_DEV_MEM_REGISTER_SB);
2053 outPayloadSb.pSblkData = (rlUInt8_t*)(&intCfg);
2061 *value = intCfg.value;
2064 RL_LOGV_ARG0(
"rlDeviceGetInternalConf ends...\n");
2083 rlReturnVal_t retVal;
2085 RL_LOGV_ARG0(
"rlDeviceAdvFrameConfigApply starts...\n");
2091 retVal = RL_RET_CODE_INVALID_INPUT;
2092 RL_LOGE_ARG0(
"rlDeviceAdvFrameConfigApply, Invalid device map\n");
2104 &inPayloadSb, (rlUInt8_t*)data,
2111 RL_LOGV_ARG0(
"rlDeviceAdvFrameConfigApply ends...\n");
2132 rlReturnVal_t retVal;
2134 RL_LOGV_ARG0(
"rlDeviceFrameConfigApply starts...\n");
2140 retVal = RL_RET_CODE_INVALID_INPUT;
2141 RL_LOGE_ARG0(
"rlDeviceFrameConfigApply, Invalid device map\n");
2153 &inPayloadSb, (rlUInt8_t*)data,
2160 RL_LOGV_ARG0(
"rlDeviceFrameConfigApply ends...\n");
2189 rlInt8_t *outData, rlUInt16_t *LUTAddrOffset)
2191 rlReturnVal_t retVal = RL_RET_CODE_OK;
2192 rlUInt16_t addrOffset = 0U;
2193 rlUInt16_t idx, alignIdx;
2195 RL_LOGV_ARG0(
"rlDevSetFillLUTBuff starts...\n");
2198 if ((RL_NULL_PTR == fillLUTParams) || (RL_NULL_PTR == outData) || \
2199 (RL_NULL_PTR == inData) || (RL_NULL_PTR == LUTAddrOffset))
2202 retVal = RL_RET_CODE_INVALID_INPUT;
2203 RL_LOGE_ARG0(
"rlDevSetFillLUTBuff, Invalid input parameters\n");
2210 for (idx = 0U; idx < fillLUTParams->
inputSize; idx++)
2212 if ((idx % 2U) == 0U)
2216 outData[idx/2] = (rlInt8_t)(((rlUInt8_t)inData[idx]) & 0xFU);
2224 outData[idx/2] |= (rlInt8_t)((((rlUInt8_t)inData[idx]) & 0xFU) << 4U);
2227 addrOffset = ((rlUInt16_t)(abs(fillLUTParams->
inputSize - 4U)) % 4U) + \
2228 fillLUTParams->inputSize;
2231 for (idx = alignIdx; idx < addrOffset; idx++)
2239 else if (fillLUTParams->
chirpParamIndex == RL_LUT_CHIRP_FREQ_START_VAR)
2244 (void)memcpy(outData, inData, fillLUTParams->
inputSize * 4U);
2245 addrOffset = fillLUTParams->
inputSize * 4U;
2246 alignIdx = fillLUTParams->
inputSize * 4U;
2251 (void)memcpy(outData, inData, fillLUTParams->
inputSize * 2U);
2252 addrOffset = ((rlUInt16_t)(abs((fillLUTParams->
inputSize * 2U) - 4U)) % 4U) + \
2254 alignIdx = fillLUTParams->
inputSize * 2U;
2259 (void)memcpy(outData, inData, fillLUTParams->
inputSize);
2260 addrOffset = ((rlUInt16_t)(abs(fillLUTParams->
inputSize - 4U)) % 4U) + \
2261 fillLUTParams->inputSize;
2268 retVal = (rlReturnVal_t)RL_RET_CODE_LUT_CHIRP_PAR_SCALE_SIZE_INVALID;
2269 RL_LOGE_ARG0(
"rlDevSetFillLUTBuff, Invalid chirp parameter size\n");
2274 for (idx = alignIdx; idx < addrOffset; idx++)
2282 else if (fillLUTParams->
chirpParamIndex == RL_LUT_CHIRP_FREQ_SLOPE_VAR)
2284 (void)memcpy(outData, inData, fillLUTParams->
inputSize);
2285 addrOffset = ((rlUInt16_t)(abs(fillLUTParams->
inputSize - 4U)) % 4U) + \
2286 fillLUTParams->inputSize;
2289 for (idx = alignIdx; idx < addrOffset; idx++)
2297 else if ((fillLUTParams->
chirpParamIndex == RL_LUT_CHIRP_IDLE_TIME_VAR) || \
2303 (void)memcpy(outData, inData, fillLUTParams->
inputSize * 2U);
2304 addrOffset = ((rlUInt16_t)(abs((fillLUTParams->
inputSize * 2U) - 4U)) % 4U) + \
2306 alignIdx = fillLUTParams->
inputSize * 2U;
2313 (void)memcpy(outData, inData, fillLUTParams->
inputSize);
2314 addrOffset = ((rlUInt16_t)(abs(fillLUTParams->
inputSize - 4U)) % 4U) + \
2315 fillLUTParams->inputSize;
2322 retVal = (rlReturnVal_t)RL_RET_CODE_LUT_CHIRP_PAR_SCALE_SIZE_INVALID;
2323 RL_LOGE_ARG0(
"rlDevSetFillLUTBuff, Invalid chirp parameter size\n");
2328 for (idx = alignIdx; idx < addrOffset; idx++)
2336 else if ((fillLUTParams->
chirpParamIndex == RL_LUT_CHIRP_TX_EN_VAR) || \
2339 for (idx = 0U; idx < fillLUTParams->
inputSize; idx++)
2343 if ((idx % 2U) == 0U)
2347 outData[idx/2] = (rlInt8_t)(((rlUInt8_t)inData[idx]) & 0x7U);
2355 outData[idx/2] |= (rlInt8_t)((((rlUInt8_t)inData[idx]) & 0x7U) << 4U);
2358 addrOffset = ((rlUInt16_t)(abs(fillLUTParams->
inputSize - 4U)) % 4U) + \
2359 fillLUTParams->inputSize;
2362 for (idx = alignIdx; idx < addrOffset; idx++)
2372 else if ((fillLUTParams->
chirpParamIndex == RL_LUT_TX0_PHASE_SHIFT_VAR) || \
2376 for (idx = 0U; idx < fillLUTParams->
inputSize; idx++)
2380 outData[idx] = (rlInt8_t)(((rlUInt8_t)inData[idx]) << 2U);
2383 addrOffset = ((rlUInt16_t)(abs(fillLUTParams->
inputSize - 4U)) % 4U) + \
2384 fillLUTParams->inputSize;
2387 for (idx = alignIdx; idx < addrOffset; idx++)
2398 retVal = (rlReturnVal_t)RL_RET_CODE_CHIRP_PARAM_IND_INVALID;
2399 RL_LOGE_ARG0(
"rlDevSetFillLUTBuff, Invalid chirp parameter index\n");
2403 if (retVal == RL_RET_CODE_OK)
2411 RL_LOGV_ARG0(
"rlDevSetFillLUTBuff ends...\n");
rlReturnVal_t rlDevicePmicClkConfig(rlUInt8_t deviceMap, rlPmicClkCfg_t *data)
Sets the configurations for PMIC clock.
rlReturnVal_t rlDeviceSetDataFmtConfig(rlUInt8_t deviceMap, rlDevDataFmtCfg_t *data)
Sets LVDS/CSI2 Data output format.
rlUInt16_t lutGlobalOffset
LUT offset within the entire 12kB buffer .
rlReturnVal_t rlDeviceRfStart(rlUInt8_t deviceMap)
Enables mmwave RF/Analog Sub system.
mmWaveLink client callback structure
rlReturnVal_t rlDeviceMcuClkConfig(rlUInt8_t deviceMap, rlMcuClkCfg_t *data)
Sets the configurations to setup the desired frequency of the MCU Clock.
rlReturnVal_t rlDeviceGetCsi2Config(rlUInt8_t deviceMap, rlDevCsi2Cfg_t *data)
Gets Csi2 data format Configuration.
rlInt32_t(* rlDeviceEnable)(rlUInt8_t deviceIndex)
Bring mmWave radar device out of Reset.
rlReturnVal_t rlDeviceLatentFaultTests(rlUInt8_t deviceMap, rllatentFault_t *data)
Sets the configurations for latent fault test.
rlReturnVal_t rlDriverConfigureCrc(rlCrcType_t crcType)
Configures the CRC Type in mmwavelink Driver.
mmWaveLink firmware version structure
rlReturnVal_t rlDeviceGetMmWaveLinkVersion(rlSwVersionParam_t *data)
Get mmWaveLink Version.
void rlDriverConstructOutMsg(rlUInt16_t numSblk, rlDriverMsg_t *outMsg, rlPayloadSb_t *payloadPtr)
: Construct command packet based on given message-ID and payload
rlReturnVal_t rlDeviceSetTestPatternConfig(rlUInt8_t deviceMap, rltestPattern_t *data)
Setup for test pattern to be generated.
rlReturnVal_t rlDeviceSetDataPathClkConfig(rlUInt8_t deviceMap, rlDevDataPathClkCfg_t *data)
Sets LVDS Clock Configuration.
Structure used for filling chirp LUT parameter buffer for Advanced chirp configuration....
rlReturnVal_t rlDeviceSetContStreamingModeConfig(rlUInt8_t deviceMap, rlDevContStreamingModeCfg_t *data)
Sets Continous Streaming Mode Configuration.
rlReturnVal_t rlDeviceRemoveDevices(rlUInt8_t deviceMap)
Removes connected mmwave devices.
rlUInt8_t rlDriverGetPlatformId(void)
Returns RL Platform ID (i.e. where mmWaveLink is executing)
rlDevDataPathCfg_t * dataPath
Data path config.
mmwave radar data path config.
rlReturnVal_t rlDeviceSetHsiClk(rlUInt8_t deviceMap, rlDevHsiClk_t *data)
Sets High Speed Interface Clock.
Continous streaming mode configuration.
rlReturnVal_t rlDeviceEnablePeriodicTests(rlUInt8_t deviceMap, rlperiodicTest_t *data)
Sets the configurations for periodic test.
rlFwVersionParam_t master
Master Sub System version.
mmwave radar high speed Data path configuraiton
DataPath clock configuration.
mmwave radar high speed clock configuration
CSI2 delay dummy structure.
mmwave radar device latent fault test
rlUInt8_t minor
SW version minor number.
void rlDriverConstructInMsg(rlUInt16_t msgId, rlDriverMsg_t *inMsg, rlPayloadSb_t *payloadPtr)
: Construct command packet (inMsg) based on given message-ID and payload
mmwave radar device config
rlReturnVal_t rlDeviceGetRfVersion(rlUInt8_t deviceMap, rlFwVersionParam_t *data)
Get mmWave RF ROM and patch version.
mmwave radar Driver Global Structure
rlReturnVal_t rlDeviceGetMssVersion(rlUInt8_t deviceMap, rlFwVersionParam_t *data)
Get mmWave Master SS version.
rlUInt8_t isDriverInitialized
Driver Status.
rlUInt16_t chirpParamIndex
Chirp Parameter Index Valid range: 0 to 9 .
rlUInt16_t nsbc
Number of Sub Blocks in Payload.
rlSwVersionParam_t mmWaveLink
mmWaveLink version
Frame config API parameters.
rlUInt8_t month
Software Release Month.
rlReturnVal_t rlDeviceFileDownload(rlUInt8_t deviceMap, rlFileData_t *data, rlUInt16_t remChunks)
Download mmwave Firmware/Patches over SPI.
rlReturnVal_t rlDriverExecuteGetApi(rlUInt8_t deviceMap, rlUInt16_t msgId, rlUInt16_t sbcID, rlUInt8_t *msgData, rlUInt16_t inLen)
: Construct get message and invoke command.
mmwave radar test pattern config
rlReturnVal_t rlDriverSetRetryCount(rlUInt8_t retryCnt)
: Set the retry count for re-sending command
rlReturnVal_t rlDeviceSetDebugSigEnableConfig(rlUInt8_t deviceMap, rlDebugSigEnCfg_t *data)
Information to enable the pin-mux to bring out debug signals for the chirp cycle.
rlDevDataPathClkCfg_t * dataPathClk
Data path clock configuration.
rlReturnVal_t rlDriverDeInit(void)
De Initializes the mmwave radar Driver.
rlDriverData_t * rlDriverGetHandle(void)
Returns mmwave radar Driver Global Structure.
rlReturnVal_t rlDeviceConfigureAckTimeout(rlUInt32_t ackTimeout)
Configures the Acknowledgement timeout in mmWaveLink Driver.
rlReturnVal_t rlDeviceAdvFrameConfigApply(rlUInt8_t deviceMap, rlAdvFrameDataCfg_t *data)
Sets Advance Frame data path Configuration.
rlUInt16_t inputSize
No of elements/data in the buffer .
mmwave radar data path lane enable
Debug signals enable structure.
rlReturnVal_t rlDeviceSetLaneConfig(rlUInt8_t deviceMap, rlDevLaneEnable_t *data)
Sets Lane enable Configuration.
rlFwVersionParam_t rf
RF Sub System version.
rlReturnVal_t rlDeviceFrameConfigApply(rlUInt8_t deviceMap, rlFrameApplyCfg_t *data)
Sets Frame data path Configuration.
rlReturnVal_t rlDeviceGetDataPathConfig(rlUInt8_t deviceMap, rlDevDataPathCfg_t *data)
Gets data path Configuration.
rlReturnVal_t rlDeviceSetHsiConfig(rlUInt8_t deviceMap, rlDevHsiCfg_t *data)
: This function sets the High Speed Interface(LVDS/CSI2) clock, lane, data rate and data format
rlReturnVal_t rlDriverCmdInvoke(rlUInt8_t deviceMap, rlDriverMsg_t inMsg, rlDriverMsg_t *outMsg)
Invokes a command to mmwave radar Device. Implements mmwave radar Host Communication Protocol(RHCP)
mmwave radar periodicity test config
rlReturnVal_t rlDeviceSetCsi2Config(rlUInt8_t deviceMap, rlDevCsi2Cfg_t *data)
Sets CSI2 data format Configuration.
rlUInt32_t chunkLen
File data length.
mmwave radar data format config
mmwave radar device MCU Clock output
mmwave radar Driver Payload
mmwave radar device PMIC Clock output
Structure to hold the MSS ESM Fault data structure for event RL_DEV_AE_MSS_ESMFAULT_SB.
rlReturnVal_t rlDeviceSetMiscConfig(rlUInt8_t deviceMap, rlDevMiscCfg_t *data)
Setup misc. device configurations.
void rlDriverFillPayload(rlUInt16_t msgId, rlUInt16_t sbcID, rlPayloadSb_t *payloadPtr, rlUInt8_t *data, rlUInt16_t inLen)
: Fill payload based on given message-ID, sub-block ID and data.
rlReturnVal_t rlDevicePowerOn(rlUInt8_t deviceMap, rlClientCbs_t clientCb)
Bring mmwave Device Out of Reset.
rlReturnVal_t rlDriverConfigureAckTimeout(rlUInt32_t ackTimeout)
Configures the Acknowledgement timeout in mmwavelink Driver.
rlUInt8_t major
SW version major number.
rlReturnVal_t rlDeviceGetInternalConf(rlUInt8_t deviceMap, rlUInt32_t memAddr, rlUInt32_t *value)
Reads Internal Configuration Memory.
rlUInt16_t chirpParamSize
Chirp Parameter Size Mainly applicable for Start Frequency, Idle Time and ADC Start Time .
mmwavelink software version structure
rlReturnVal_t rlDeviceSetCsi2DelayDummyConfig(rlUInt8_t deviceMap, rlCsi2DelayDummyCfg_t *data)
This API can be used to increase the time between the availability of chirp data and the transfer of ...
rlReturnVal_t rlDriverRemoveDevices(rlUInt8_t deviceMap)
Disconnects the mmwave radar devices.
rlReturnVal_t rlDeviceGetEsmFault(rlUInt8_t deviceMap, rlMssEsmFault_t *data)
Get MasterSS ESM fault status.
rlReturnVal_t rlDevicePowerOff(void)
Shutdown mmwave Device.
File Dowload data structure.
Structure to hold the MSS/radarSS CPU Fault data strucutre for event RL_DEV_AE_MSS_CPUFAULT_SB and RL...
Radar Internal configuration.
rlInt32_t(* rlDeviceDisable)(rlUInt8_t deviceIndex)
Power off mmWave radar device.
rlUInt16_t fData[RL_CMD_PL_LEN_MAX/2U]
File data buffer.
mmwavelink version structure
rlClientCbs_t clientCtx
Client context.
rlReturnVal_t rlDeviceSetDataPathConfig(rlUInt8_t deviceMap, rlDevDataPathCfg_t *data)
Sets LVDS/CSI2 Path Configuration.
rlReturnVal_t rlDeviceGetContStreamingModeConfig(rlUInt8_t deviceMap, rlDevContStreamingModeCfg_t *data)
Gets continuous Streaming Mode Configuration.
rlDeviceCtrlCbs_t devCtrlCb
Device Control Callback.
rlUInt8_t debug
SW version debug number.
rlReturnVal_t rlDriverAddDevice(rlUInt8_t deviceMap)
Adds mmwave radar device.
rlReturnVal_t rlDeviceGetDataFmtConfig(rlUInt8_t deviceMap, rlDevDataFmtCfg_t *data)
Gets LVDS/CSI2 Data output format.
Advance Frame data config API parameters. This structure is only applicable when mmWaveLink instance ...
rlReturnVal_t rlDeviceConfigureCrc(rlCrcType_t crcType)
Configures the CRC Type in mmWaveLink Driver.
rlUInt8_t deviceMap
Bitmap of devices connected radarSS/DSS Mailbox in case of 16xx autonomous.
rlReturnVal_t rlDeviceSetRetryCount(rlUInt8_t retryCnt)
: Set the command retry count
rlReturnVal_t rlDevSetFillLUTBuff(rlFillLUTParams_t *fillLUTParams, rlInt8_t *inData, rlInt8_t *outData, rlUInt16_t *LUTAddrOffset)
Filling chirp LUT parameter buffer for Advanced chirp configuration.
rlReturnVal_t rlDeviceAddDevices(rlUInt8_t deviceMap)
Bring mmwave Device Out of Reset.
rlUInt8_t year
Software Release Year.
rlReturnVal_t rlDeviceGetLaneConfig(rlUInt8_t deviceMap, rlDevLaneEnable_t *data)
Gets Lane enable Configuration.
rlDevDataFmtCfg_t * datafmt
Data format config.
rlUInt8_t day
Software Release Day.
rlUInt8_t build
SW version buid number.
rlReturnVal_t rlDeviceSetInternalConf(rlUInt8_t deviceMap, rlUInt32_t memAddr, rlUInt32_t value)
Writes Internal Configuration Memory.
rlReturnVal_t rlDeviceGetCpuFault(rlUInt8_t deviceMap, rlCpuFault_t *data)
Get MasterSS CPU fault status.
rlReturnVal_t rlDriverExecuteSetApi(rlUInt8_t deviceMap, rlUInt16_t msgId, rlUInt16_t sbcID, rlUInt8_t *msgData, rlUInt16_t inLen)
: Construct set message and invoke command.
rlReturnVal_t rlDeviceGetVersion(rlUInt8_t deviceMap, rlVersion_t *data)
Get mmWave Hardware, Firmware/patch and mmWaveLink version.
rlReturnVal_t rlDriverIsDeviceMapValid(rlUInt8_t deviceMap)
Checks if given deviecMap is valid wrt to global DeviceMap set to mmWaveLink.