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");
328 rlReturnVal_t retVal;
330 RL_LOGV_ARG0(
"rlDeviceRfStart starts...\n");
336 retVal = RL_RET_CODE_INVALID_INPUT;
337 RL_LOGE_ARG0(
"Device map id is invalid\n");
343 RL_SYS_RF_POWERUP_SB, NULL, 0U);
346 RL_LOGV_ARG0(
"rlDeviceRfStart complete...\n");
368 rlUInt16_t remChunks)
370 rlReturnVal_t retVal;
374 (RL_NULL_PTR == data))
377 retVal = RL_RET_CODE_INVALID_INPUT;
378 RL_LOGE_ARG0(
"Invalid input");
385 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
401 inMsg.remChunks = remChunks;
430 rlReturnVal_t retVal;
433 if (data == RL_NULL_PTR)
436 retVal = RL_RET_CODE_NULL_PTR;
443 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
449 RL_SYS_VERSION_SB, (rlUInt8_t*)data, 0U);
468 rlReturnVal_t retVal;
471 if (data == RL_NULL_PTR)
474 retVal = RL_RET_CODE_NULL_PTR;
480 RL_RF_RFVERSION_SB, (rlUInt8_t*)data, 0U);
500 rlReturnVal_t retVal;
502 RL_LOGV_ARG0(
"rlDeviceGetVersion starts...\n");
506 (RL_NULL_PTR == data))
509 retVal = RL_RET_CODE_INVALID_INPUT;
510 RL_LOGE_ARG0(
"Invalid inputs");
523 retVal = RL_RET_CODE_OK;
524 RL_LOGD_ARG0(
" rlPlatform is not host \n");
527 if (retVal == RL_RET_CODE_OK)
533 if (retVal == RL_RET_CODE_OK)
540 RL_LOGV_ARG0(
"rlDeviceGetVersion complete...\n");
557 rlReturnVal_t retVal;
559 RL_LOGV_ARG0(
"rlDeviceGetMmWaveLinkVersion starts...\n");
561 if (RL_NULL_PTR != data)
565 data->
major = RL_MMWAVELINK_VERSION_MAJOR;
567 data->
minor = RL_MMWAVELINK_VERSION_MINOR;
569 data->
build = RL_MMWAVELINK_VERSION_BUILD;
571 data->
debug = RL_MMWAVELINK_VERSION_DEBUG;
573 data->
year = RL_MMWAVELINK_VERSION_YEAR;
575 data->
month = RL_MMWAVELINK_VERSION_MONTH;
577 data->
day = RL_MMWAVELINK_VERSION_DAY;
579 retVal = RL_RET_CODE_OK;
580 RL_LOGD_ARG0(
"Extracted MmWavelink version\n");
585 retVal = RL_RET_CODE_INVALID_INPUT;
586 RL_LOGE_ARG0(
"rlDeviceGetMmWaveLinkVersion, Output param is NULL \n");
589 RL_LOGV_ARG0(
"rlDeviceGetMmWaveLinkVersion complete...\n");
610 rlReturnVal_t retVal;
612 RL_LOGV_ARG0(
"rlDeviceSetDataFmtConfig starts...\n");
616 (RL_NULL_PTR == data))
619 retVal = RL_RET_CODE_INVALID_INPUT;
620 RL_LOGE_ARG0(
"Invalid device mapping\n");
627 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
633 RL_DEV_RX_DATA_FORMAT_CONF_SET_SB, (rlUInt8_t*)data,
637 RL_LOGV_ARG0(
"rlDeviceSetDataFmtConfig complete...\n");
659 rlReturnVal_t retVal;
661 RL_LOGV_ARG0(
"rlDeviceGetDataFmtConfig starts...\n");
665 (RL_NULL_PTR == data))
668 retVal = RL_RET_CODE_INVALID_INPUT;
669 RL_LOGE_ARG0(
"rlDeviceGetDataFmtConfig, Invalid device map\n");
676 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
682 RL_DEV_RX_DATA_FORMAT_CONF_SET_SB,
683 (rlUInt8_t*)data, 0U);
686 RL_LOGV_ARG0(
"rlDeviceGetDataFmtConfig ends...\n");
706 rlReturnVal_t retVal;
708 RL_LOGV_ARG0(
"rlDeviceSetDataPathConfig starts...\n");
712 (RL_NULL_PTR == data))
715 retVal = RL_RET_CODE_INVALID_INPUT;
716 RL_LOGE_ARG0(
"Invalid input");
723 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
729 RL_DEV_RX_DATA_PATH_CONF_SET_SB, (rlUInt8_t*)data,
733 RL_LOGV_ARG0(
"rlDeviceSetDataPathConfig ends...\n");
755 rlReturnVal_t retVal;
757 RL_LOGV_ARG0(
"rlDeviceGetDataPathConfig starts...\n");
761 (RL_NULL_PTR == data))
764 retVal = RL_RET_CODE_INVALID_INPUT;
765 RL_LOGE_ARG0(
"rlDeviceGetDataPathConfig, Invalid device map\n");
772 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
778 RL_DEV_RX_DATA_PATH_CONF_SET_SB,
779 (rlUInt8_t*)data, 0U);
782 RL_LOGV_ARG0(
"rlDeviceGetDataPathConfig ends...\n");
802 rlReturnVal_t retVal;
804 RL_LOGV_ARG0(
"rlDeviceSetLaneConfig starts...\n");
808 (RL_NULL_PTR == data))
811 retVal = RL_RET_CODE_INVALID_INPUT;
812 RL_LOGE_ARG0(
"Invalid input\n");
819 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
825 RL_DEV_DATA_PATH_LANEEN_SET_SB, (rlUInt8_t*)data,
828 RL_LOGV_ARG0(
"rlDeviceSetLaneConfig ends...\n");
850 rlReturnVal_t retVal;
852 RL_LOGV_ARG0(
"rlDeviceGetLaneConfig starts...\n");
856 (RL_NULL_PTR == data))
859 retVal = RL_RET_CODE_INVALID_INPUT;
860 RL_LOGE_ARG0(
"rlDeviceGetLaneConfig, Invalid device map\n");
867 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
873 RL_DEV_DATA_PATH_LANEEN_SET_SB,
874 (rlUInt8_t*)data, 0U);
877 RL_LOGV_ARG0(
"rlDeviceGetLaneConfig ends...\n");
899 rlReturnVal_t retVal;
901 RL_LOGV_ARG0(
"rlDeviceSetDataPathClkConfig starts...\n");
907 retVal = RL_RET_CODE_INVALID_INPUT;
908 RL_LOGE_ARG0(
"Invalid input\n");
915 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
921 RL_DEV_DATA_PATH_CLOCK_SET_SB, (rlUInt8_t*)data,
924 RL_LOGV_ARG0(
"rlDeviceSetDataPathClkConfig ends...\n");
946 rlReturnVal_t retVal;
948 RL_LOGV_ARG0(
"rlDeviceGetDataPathClkConfig starts...\n");
952 (RL_NULL_PTR == data))
955 retVal = RL_RET_CODE_INVALID_INPUT;
956 RL_LOGE_ARG0(
"rlDeviceGetDataPathClkConfig, Invalid device map\n");
963 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
969 RL_DEV_DATA_PATH_CLOCK_SET_SB,
970 (rlUInt8_t*)data, 0U);
973 RL_LOGV_ARG0(
"rlDeviceGetDataPathClkConfig ends...\n");
991 rlReturnVal_t rlDeviceSetLvdsLaneConfig(rlUInt8_t deviceMap,
rlDevLvdsLaneCfg_t* data)
993 rlReturnVal_t retVal;
995 RL_LOGV_ARG0(
"rlDeviceSetLvdsLaneConfig starts...\n");
999 (RL_NULL_PTR == data))
1002 retVal = RL_RET_CODE_INVALID_INPUT;
1003 RL_LOGE_ARG0(
"Invalid input\n");
1010 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1016 RL_DEV_DATA_PATH_CFG_SET_SB, (rlUInt8_t*)data,
1020 RL_LOGV_ARG0(
"rlDeviceSetLvdsLaneConfig ends...\n");
1040 rlReturnVal_t rlDeviceGetLvdsLaneConfig(rlUInt8_t deviceMap,
rlDevLvdsLaneCfg_t* data)
1042 rlReturnVal_t retVal;
1044 RL_LOGV_ARG0(
"rlDeviceGetLvdsLaneConfig starts...\n");
1048 (RL_NULL_PTR == data))
1051 retVal = RL_RET_CODE_INVALID_INPUT;
1052 RL_LOGE_ARG0(
"rlDeviceGetLvdsLaneConfig, Invalid device map\n");
1059 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1065 RL_DEV_DATA_PATH_CFG_SET_SB,
1066 (rlUInt8_t*)data, 0U);
1069 RL_LOGV_ARG0(
"rlDeviceGetLvdsLaneConfig ends...\n");
1095 rlReturnVal_t retVal;
1097 RL_LOGV_ARG0(
"rlDeviceSetContStreamingModeConfig ends...\n");
1101 (RL_NULL_PTR == data))
1104 retVal = RL_RET_CODE_INVALID_INPUT;
1105 RL_LOGE_ARG0(
"Invalid input");
1112 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1118 RL_DEV_RX_CONTSTREAMING_MODE_CONF_SET_SB,
1123 RL_LOGV_ARG0(
"rlDeviceSetContStreamingModeConfig ends...\n");
1148 rlReturnVal_t retVal;
1150 RL_LOGV_ARG0(
"rlDeviceGetContStreamingModeConfig starts...\n");
1154 (RL_NULL_PTR == data))
1157 retVal = RL_RET_CODE_INVALID_INPUT;
1158 RL_LOGE_ARG0(
"rlDeviceGetContStreamingModeConfig, Invalid device map\n");
1165 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1171 RL_DEV_RX_CONTSTREAMING_MODE_CONF_SET_SB,
1172 (rlUInt8_t*)data, 0U);
1175 RL_LOGV_ARG0(
"rlDeviceGetContStreamingModeConfig ends...\n");
1195 rlReturnVal_t retVal;
1197 RL_LOGV_ARG0(
"rlDeviceSetCsi2Config starts...\n");
1201 (RL_NULL_PTR == data))
1204 retVal = RL_RET_CODE_INVALID_INPUT;
1205 RL_LOGE_ARG0(
"Invalid input");
1212 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1218 RL_DEV_CSI2_CFG_SET_SB, (rlUInt8_t*)data,
1221 RL_LOGV_ARG0(
"rlDeviceSetCsi2Config ends...\n");
1243 rlReturnVal_t retVal;
1245 RL_LOGV_ARG0(
"rlDeviceGetCsi2Config starts...\n");
1249 (RL_NULL_PTR == data))
1252 retVal = RL_RET_CODE_INVALID_INPUT;
1253 RL_LOGE_ARG0(
"rlDeviceGetCsi2Config, Invalid device map\n");
1260 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1266 RL_DEV_CSI2_CFG_SET_SB,
1267 (rlUInt8_t*)data, 0U);
1270 RL_LOGV_ARG0(
"rlDeviceGetCsi2Config ends...\n");
1296 rlReturnVal_t retVal;
1300 rlUInt16_t sbcCnt = 0U;
1305 RL_LOGV_ARG0(
"rlDeviceSetHsiConfig starts...\n");
1309 (RL_NULL_PTR == data) )
1312 retVal = RL_RET_CODE_INVALID_INPUT;
1313 RL_LOGE_ARG0(
"rlDeviceSetHsiConfig, Invalid input \n");
1318 if (RL_NULL_PTR != data->
datafmt)
1322 RL_DEV_RX_DATA_FORMAT_CONF_SET_SB,
1323 &inPayloadSb[sbcCnt],
1335 RL_DEV_RX_DATA_PATH_CONF_SET_SB,
1336 &inPayloadSb[sbcCnt],
1348 RL_DEV_DATA_PATH_CLOCK_SET_SB,
1349 &inPayloadSb[sbcCnt],
1362 inMsg.opcode.
nsbc = sbcCnt;
1370 retVal = RL_RET_CODE_INVALID_INPUT;
1371 RL_LOGE_ARG0(
"sub block is NULL\n");
1375 RL_LOGV_ARG0(
"rlDeviceSetHsiConfig ends...\n");
1396 rlReturnVal_t retVal;
1398 RL_LOGV_ARG0(
"rlDeviceSetHsiClk starts...\n");
1402 (RL_NULL_PTR == data))
1405 retVal = RL_RET_CODE_INVALID_INPUT;
1406 RL_LOGE_ARG0(
"Invalid input\n");
1412 RL_RF_HIGHSPEEDINTFCLK_CONF_SET_SB,
1416 RL_LOGV_ARG0(
"rlDeviceSetHsiClk ends...\n");
1440 rlReturnVal_t retVal;
1442 RL_LOGV_ARG0(
"rlDeviceMcuClkConfig starts...\n");
1446 (RL_NULL_PTR == data))
1449 retVal = RL_RET_CODE_INVALID_INPUT;
1450 RL_LOGE_ARG0(
"Invalid input");
1457 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1463 RL_DEV_MCUCLOCK_CONF_SET_SB, (rlUInt8_t*)data,
1466 RL_LOGV_ARG0(
"rlDeviceMcuClkConfig ends...\n");
1489 rlReturnVal_t retVal;
1491 RL_LOGV_ARG0(
"rlDevicePmicClkConfig starts...\n");
1495 (RL_NULL_PTR == data))
1498 retVal = RL_RET_CODE_INVALID_INPUT;
1499 RL_LOGE_ARG0(
"Invalid input");
1506 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1512 RL_DEV_PMICCLOCK_CONF_SET_SB, (rlUInt8_t*)data,
1515 RL_LOGV_ARG0(
"rlDevicePmicClkConfig ends...\n");
1546 rlReturnVal_t retVal;
1548 RL_LOGV_ARG0(
"rlDeviceLatentFaultTests starts...\n");
1552 (RL_NULL_PTR == data))
1555 retVal = RL_RET_CODE_INVALID_INPUT;
1556 RL_LOGE_ARG0(
"Invalid input");
1563 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1569 RL_DEV_LATENTFAULT_TEST_CONF_SB, (rlUInt8_t*)data,
1572 RL_LOGV_ARG0(
"rlDeviceLatentFaultTests ends...\n");
1593 rlReturnVal_t retVal;
1595 RL_LOGV_ARG0(
"rlDeviceEnablePeriodicTests starts...\n");
1599 (RL_NULL_PTR == data))
1602 retVal = RL_RET_CODE_INVALID_INPUT;
1603 RL_LOGE_ARG0(
"Invalid input");
1610 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1616 RL_DEV_PERIODICTESTS_CONF_SB, (rlUInt8_t*)data,
1619 RL_LOGV_ARG0(
"rlDeviceEnablePeriodicTests ends...\n");
1641 rlReturnVal_t retVal;
1643 RL_LOGV_ARG0(
"rlDeviceSetTestPatternConfig starts...\n");
1647 (RL_NULL_PTR == data))
1650 retVal = RL_RET_CODE_INVALID_INPUT;
1651 RL_LOGE_ARG0(
"Invalid input");
1658 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1664 RL_DEV_TESTPATTERN_GEN_SET_SB, (rlUInt8_t*)data,
1667 RL_LOGV_ARG0(
"rlDeviceSetTestPatternConfig ends...\n");
1689 rlReturnVal_t retVal;
1691 RL_LOGV_ARG0(
"rlDeviceSetMiscConfig starts...\n");
1695 (RL_NULL_PTR == data))
1698 retVal = RL_RET_CODE_INVALID_INPUT;
1699 RL_LOGE_ARG0(
"Invalid input");
1706 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1712 RL_DEV_MISC_CFG_SET_SB, (rlUInt8_t*)data,
1715 RL_LOGV_ARG0(
"rlDeviceSetMiscConfig ends...\n");
1738 rlReturnVal_t retVal;
1740 RL_LOGV_ARG0(
"rlDeviceSetDebugSigEnableConfig starts...\n");
1744 (RL_NULL_PTR == data))
1747 retVal = RL_RET_CODE_INVALID_INPUT;
1748 RL_LOGE_ARG0(
"Invalid input");
1755 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1761 RL_DEV_DEBUGSIG_EN_SET_SB, (rlUInt8_t*)data,
1764 RL_LOGV_ARG0(
"rlDeviceSetDebugSigEnableConfig ends...\n");
1797 rlReturnVal_t retVal;
1799 RL_LOGV_ARG0(
"rlDeviceSetHsiDelayDummyConfig starts...\n");
1803 (RL_NULL_PTR == data))
1806 retVal = RL_RET_CODE_INVALID_INPUT;
1807 RL_LOGE_ARG0(
"Invalid input");
1814 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1820 RL_DEV_HSI_DELAY_DUMMY_CFG_SET_SB, (rlUInt8_t*)data,
1823 RL_LOGV_ARG0(
"rlDeviceSetHsiDelayDummyConfig ends...\n");
1844 rlReturnVal_t retVal;
1846 RL_LOGV_ARG0(
"rlDeviceGetCpuFault starts...\n");
1850 (RL_NULL_PTR == data))
1853 retVal = RL_RET_CODE_INVALID_INPUT;
1854 RL_LOGE_ARG0(
"Invalid input");
1861 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1867 RL_SYS_CPUFAULT_STATUS_SB, (rlUInt8_t*)data,
1870 RL_LOGV_ARG0(
"rlDeviceGetCpuFault ends...\n");
1892 rlReturnVal_t retVal;
1894 RL_LOGV_ARG0(
"rlDeviceGetEsmFault starts...\n");
1898 (RL_NULL_PTR == data))
1901 retVal = RL_RET_CODE_INVALID_INPUT;
1902 RL_LOGE_ARG0(
"Invalid input");
1909 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
1915 RL_SYS_ESMFAULT_STATUS_SB, (rlUInt8_t*)data,
1918 RL_LOGV_ARG0(
"rlDeviceGetEsmFault ends...\n");
1994 rlReturnVal_t retVal;
1997 RL_LOGV_ARG0(
"rlDeviceSetInternalConf starts...\n");
2003 retVal = RL_RET_CODE_INVALID_INPUT;
2004 RL_LOGE_ARG0(
"Invalid device mapping\n");
2011 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
2016 intCfg.memAddr = memAddr;
2017 intCfg.value = value;
2020 RL_DEV_MEM_REGISTER_SB, (rlUInt8_t*)&intCfg,
2024 RL_LOGV_ARG0(
"rlDeviceSetInternalConf complete...\n");
2048 rlReturnVal_t retVal;
2050 RL_LOGV_ARG0(
"rlDeviceGetInternalConf starts...\n");
2054 (RL_NULL_PTR == (rlUInt32_t*)value))
2057 retVal = RL_RET_CODE_INVALID_INPUT;
2058 RL_LOGE_ARG0(
"Invalid device map\n");
2065 retVal = RL_RET_CODE_API_NOT_SUPPORTED;
2083 (rlUInt8_t*)&memAddr, (rlUInt16_t)
sizeof(rlUInt32_t));
2086 outPayloadSb.sbid = RL_GET_UNIQUE_SBID(RL_DEV_INTERNAL_CONF_GET_MSG,
2087 RL_DEV_MEM_REGISTER_SB);
2089 outPayloadSb.pSblkData = (rlUInt8_t*)(&intCfg);
2097 *value = intCfg.value;
2100 RL_LOGV_ARG0(
"rlDeviceGetInternalConf ends...\n");
2120 rlReturnVal_t retVal;
2122 RL_LOGV_ARG0(
"rlDeviceAdvFrameConfigApply starts...\n");
2128 retVal = RL_RET_CODE_INVALID_INPUT;
2129 RL_LOGE_ARG0(
"rlDeviceAdvFrameConfigApply, Invalid device map\n");
2141 &inPayloadSb, (rlUInt8_t*)data,
2148 RL_LOGV_ARG0(
"rlDeviceAdvFrameConfigApply ends...\n");
2170 rlReturnVal_t retVal;
2172 RL_LOGV_ARG0(
"rlDeviceFrameConfigApply starts...\n");
2178 retVal = RL_RET_CODE_INVALID_INPUT;
2179 RL_LOGE_ARG0(
"rlDeviceFrameConfigApply, Invalid device map\n");
2191 &inPayloadSb, (rlUInt8_t*)data,
2198 RL_LOGV_ARG0(
"rlDeviceFrameConfigApply ends...\n");
2227 rlInt8_t *outData, rlUInt16_t *LUTAddrOffset)
2229 rlReturnVal_t retVal = RL_RET_CODE_OK;
2230 rlUInt16_t addrOffset = 0U;
2231 rlUInt16_t idx, alignIdx;
2233 RL_LOGV_ARG0(
"rlDevSetFillLUTBuff starts...\n");
2236 if ((RL_NULL_PTR == fillLUTParams) || (RL_NULL_PTR == outData) || \
2237 (RL_NULL_PTR == inData) || (RL_NULL_PTR == LUTAddrOffset))
2240 retVal = RL_RET_CODE_INVALID_INPUT;
2241 RL_LOGE_ARG0(
"rlDevSetFillLUTBuff, Invalid input parameters\n");
2248 for (idx = 0U; idx < fillLUTParams->
inputSize; idx++)
2250 if ((idx % 2U) == 0U)
2254 outData[idx/2] = (rlInt8_t)(((rlUInt8_t)inData[idx]) & 0xFU);
2262 outData[idx/2] |= (rlInt8_t)((((rlUInt8_t)inData[idx]) & 0xFU) << 4U);
2265 addrOffset = ((rlUInt16_t)(abs(fillLUTParams->
inputSize - 4U)) % 4U) + \
2266 fillLUTParams->inputSize;
2269 for (idx = alignIdx; idx < addrOffset; idx++)
2277 else if (fillLUTParams->
chirpParamIndex == RL_LUT_CHIRP_FREQ_START_VAR)
2282 (void)memcpy(outData, inData, fillLUTParams->
inputSize * 4U);
2283 addrOffset = fillLUTParams->
inputSize * 4U;
2284 alignIdx = fillLUTParams->
inputSize * 4U;
2289 (void)memcpy(outData, inData, fillLUTParams->
inputSize * 2U);
2290 addrOffset = ((rlUInt16_t)(abs((fillLUTParams->
inputSize * 2U) - 4U)) % 4U) + \
2292 alignIdx = fillLUTParams->
inputSize * 2U;
2297 #ifndef MMWL_BIG_ENDIAN 2298 (void)memcpy(outData, inData, fillLUTParams->
inputSize);
2301 for (idx = 0U; idx < fillLUTParams->
inputSize; idx += 2U)
2303 outData[idx + 1U] = inData[idx];
2304 outData[idx] = inData[idx + 1U];
2307 addrOffset = ((rlUInt16_t)(abs(fillLUTParams->
inputSize - 4U)) % 4U) + \
2308 fillLUTParams->inputSize;
2315 retVal = (rlReturnVal_t)RL_RET_CODE_LUT_CHIRP_PAR_SCALE_SIZE_INVALID;
2316 RL_LOGE_ARG0(
"rlDevSetFillLUTBuff, Invalid chirp parameter size\n");
2321 for (idx = alignIdx; idx < addrOffset; idx++)
2329 else if (fillLUTParams->
chirpParamIndex == RL_LUT_CHIRP_FREQ_SLOPE_VAR)
2331 (void)memcpy(outData, inData, fillLUTParams->
inputSize);
2332 addrOffset = ((rlUInt16_t)(abs(fillLUTParams->
inputSize - 4U)) % 4U) + \
2333 fillLUTParams->inputSize;
2336 for (idx = alignIdx; idx < addrOffset; idx++)
2344 else if ((fillLUTParams->
chirpParamIndex == RL_LUT_CHIRP_IDLE_TIME_VAR) || \
2350 (void)memcpy(outData, inData, fillLUTParams->
inputSize * 2U);
2351 addrOffset = ((rlUInt16_t)(abs((fillLUTParams->
inputSize * 2U) - 4U)) % 4U) + \
2353 alignIdx = fillLUTParams->
inputSize * 2U;
2360 #ifndef MMWL_BIG_ENDIAN 2361 (void)memcpy(outData, inData, fillLUTParams->
inputSize);
2364 for (idx = 0U; idx < fillLUTParams->
inputSize; idx += 2U)
2366 outData[idx + 1U] = inData[idx];
2367 outData[idx] = inData[idx + 1U];
2370 addrOffset = ((rlUInt16_t)(abs(fillLUTParams->
inputSize - 4U)) % 4U) + \
2371 fillLUTParams->inputSize;
2378 retVal = (rlReturnVal_t)RL_RET_CODE_LUT_CHIRP_PAR_SCALE_SIZE_INVALID;
2379 RL_LOGE_ARG0(
"rlDevSetFillLUTBuff, Invalid chirp parameter size\n");
2384 for (idx = alignIdx; idx < addrOffset; idx++)
2392 else if ((fillLUTParams->
chirpParamIndex == RL_LUT_CHIRP_TX_EN_VAR) || \
2395 for (idx = 0U; idx < fillLUTParams->
inputSize; idx++)
2399 if ((idx % 2U) == 0U)
2403 outData[idx/2] = (rlInt8_t)(((rlUInt8_t)inData[idx]) & 0x7U);
2411 outData[idx/2] |= (rlInt8_t)((((rlUInt8_t)inData[idx]) & 0x7U) << 4U);
2414 addrOffset = ((rlUInt16_t)(abs(fillLUTParams->
inputSize - 4U)) % 4U) + \
2415 fillLUTParams->inputSize;
2418 for (idx = alignIdx; idx < addrOffset; idx++)
2428 else if ((fillLUTParams->
chirpParamIndex == RL_LUT_TX0_PHASE_SHIFT_VAR) || \
2432 for (idx = 0U; idx < fillLUTParams->
inputSize; idx++)
2436 outData[idx] = (rlInt8_t)(((rlUInt8_t)inData[idx]) << 2U);
2439 addrOffset = ((rlUInt16_t)(abs(fillLUTParams->
inputSize - 4U)) % 4U) + \
2440 fillLUTParams->inputSize;
2443 for (idx = alignIdx; idx < addrOffset; idx++)
2454 retVal = (rlReturnVal_t)RL_RET_CODE_CHIRP_PARAM_IND_INVALID;
2455 RL_LOGE_ARG0(
"rlDevSetFillLUTBuff, Invalid chirp parameter index\n");
2459 if (retVal == RL_RET_CODE_OK)
2467 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
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 rlDeviceSetHsiDelayDummyConfig(rlUInt8_t deviceMap, rlHsiDelayDummyCfg_t *data)
This API can be used to increase the time between the availability of chirp data and the transfer of ...
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
HSI delay dummy structure.
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 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.