From 3619577b69ea0ac88b7f0e424496437540093ee1 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 14 Jan 2026 10:37:08 +0100 Subject: [PATCH] fixed warnings, LTC2620 driver: removed power down file name as it is only for xilinx and must be combined to create it, refactored its setDAC to be maintainable, xilinx:setDAC andsetPower returns ret and calls LTC2620 directly (setDAC in xilinx is only for dac and not power regualtors anymore), validate vlimit again before calling LTC2620 setdac, fixed transceiveralignment with xilinx ctb, changed file names to not include %d because its only allowed in macros and not variables --- .../slsDetectorFunctionList.c | 3 +- .../slsDetectorFunctionList.c | 3 +- .../include/LTC2620_Driver.h | 15 +- .../slsDetectorServer/src/LTC2620_Driver.c | 181 ++++++++++-------- .../src/slsDetectorServer_funcs.c | 12 +- .../bin/xilinx_ctbDetectorServer_developer | Bin 305832 -> 305824 bytes .../slsDetectorFunctionList.c | 108 ++++++----- .../slsDetectorServer_defs.h | 8 +- slsSupportLib/include/sls/versionAPI.h | 2 +- 9 files changed, 177 insertions(+), 155 deletions(-) diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c index 199e26fab..1d8d48631 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c @@ -472,8 +472,7 @@ void setupDetector() { // hv DAC6571_SetDefines(HV_HARD_MAX_VOLTAGE, HV_DRIVER_FILE_NAME); // dacs - LTC2620_D_SetDefines(DAC_MIN_MV, DAC_MAX_MV, DAC_DRIVER_FILE_NAME, NDAC, 0, - ""); + LTC2620_D_SetDefines(DAC_MIN_MV, DAC_MAX_MV, DAC_DRIVER_FILE_NAME, NDAC, 0); // on chip dacs ASIC_Driver_SetDefines(ONCHIP_DAC_DRIVER_FILE_NAME); setTimingSource(DEFAULT_TIMING_SOURCE); diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 0d0b6570c..bf013f03e 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -485,8 +485,7 @@ void setupDetector() { // hv DAC6571_SetDefines(HV_HARD_MAX_VOLTAGE, HV_DRIVER_FILE_NAME); // dac - LTC2620_D_SetDefines(DAC_MIN_MV, DAC_MAX_MV, DAC_DRIVER_FILE_NAME, NDAC, 0, - ""); + LTC2620_D_SetDefines(DAC_MIN_MV, DAC_MAX_MV, DAC_DRIVER_FILE_NAME, NDAC, 0); resetCore(); resetPeripheral(); diff --git a/slsDetectorServers/slsDetectorServer/include/LTC2620_Driver.h b/slsDetectorServers/slsDetectorServer/include/LTC2620_Driver.h index f11139ac2..1a5c07e8a 100644 --- a/slsDetectorServers/slsDetectorServer/include/LTC2620_Driver.h +++ b/slsDetectorServers/slsDetectorServer/include/LTC2620_Driver.h @@ -5,8 +5,7 @@ #include void LTC2620_D_SetDefines(int hardMinV, int hardMaxV, char *driverfname, - int numdacs, int numpowers, - char *powerdownDriverfname); + int numdacs, int numpowers); int LTC2620_D_GetMaxNumSteps(); int LTC2620_D_GetPowerDownValue(); int LTC2620_D_GetMinInput(); @@ -28,14 +27,12 @@ int LTC2620_D_VoltageToDac(int voltage, int *dacval); */ int LTC2620_D_DacToVoltage(int dacval, int *voltage); +/** for all dacs including power regulators to write dac value to file */ +int LTC2620_D_WriteDACValue(int dacnum, int dacvalue, char *dacname); + /** - * Set value - * @param dacnum dac index - * @param val value to set - * @param mV 1 for mv, else 0 - * @paam dacname dac name - * @param dacval pointer to dac value - * @return OK or FAIL + * Set value for dac only + * @param dacval if val is in mV, returns dac units set */ int LTC2620_D_SetDACValue(int dacnum, int val, int mV, char *dacname, int *dacval); \ No newline at end of file diff --git a/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c b/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c index c92c111f4..3da1acd66 100644 --- a/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c +++ b/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c @@ -3,7 +3,13 @@ #include "LTC2620_Driver.h" #include "clogger.h" #include "common.h" + +// to include power down file name suffix +#ifdef XILINX_CHIPTESTBOARDD +#include "slsDetectorServer_defs.h" +#else #include "sls/sls_detector_defs.h" +#endif #include @@ -17,13 +23,11 @@ int LTC2620_D_HardMinVoltage = 0; int LTC2620_D_HardMaxVoltage = 0; char LTC2620_D_DriverFileName[MAX_STR_LENGTH]; -char LTC2620_D_PowerDownDriverFileName[MAX_STR_LENGTH]; int LTC2620_D_NumDacs = 0; int LTC2620_D_NumDacsOnly = 0; void LTC2620_D_SetDefines(int hardMinV, int hardMaxV, char *driverfname, - int numdacs, int numpowers, - char *powerdownDriverfname) { + int numdacs, int numpowers) { LOG(logINFOBLUE, ("Configuring DACs (LTC2620) to %s\n\t (numdacs:%d, hard min:%d, hard " "max: %dmV)\n", @@ -32,8 +36,6 @@ void LTC2620_D_SetDefines(int hardMinV, int hardMaxV, char *driverfname, LTC2620_D_HardMaxVoltage = hardMaxV; memset(LTC2620_D_DriverFileName, 0, MAX_STR_LENGTH); strcpy(LTC2620_D_DriverFileName, driverfname); - memset(LTC2620_D_PowerDownDriverFileName, 0, MAX_STR_LENGTH); - strcpy(LTC2620_D_PowerDownDriverFileName, powerdownDriverfname); LTC2620_D_NumDacs = numdacs; LTC2620_D_NumDacsOnly = numdacs - numpowers; } @@ -58,9 +60,8 @@ int LTC2620_D_DacToVoltage(int dacval, int *voltage) { LTC2620_D_HardMaxVoltage, dacval, voltage); } -int LTC2620_D_SetDACValue(int dacnum, int val, int mV, char *dacname, - int *dacval) { - LOG(logDEBUG1, ("dacnum:%d, val:%d, ismV:%d\n", dacnum, val, mV)); +int LTC2620_D_WriteDACValue(int dacnum, int dacvalue, char *dacname) { + LOG(logDEBUG1, ("dacnum:%d, val:%d\n", dacnum, dacvalue)); // validate index if (dacnum < 0 || dacnum >= LTC2620_D_NumDacs) { @@ -69,98 +70,114 @@ int LTC2620_D_SetDACValue(int dacnum, int val, int mV, char *dacname, return FAIL; } - // validate set - if (val < 0 && val != LTC2620_D_PWR_DOWN_VAL) + // validate value + if ((dacvalue < 0 && dacvalue != LTC2620_D_PWR_DOWN_VAL) || + (dacvalue > LTC2620_D_MAX_DAC_VAL)) { + LOG(logERROR, + ("Dac %d %s: Invalid dac value %d\n", dacnum, dacname, dacvalue)); return FAIL; - - int ret = OK; - *dacval = val; -#ifndef VIRTUAL - char fnameFormat[MAX_STR_LENGTH]; - memset(fnameFormat, 0, MAX_STR_LENGTH); - strcpy(fnameFormat, LTC2620_D_DriverFileName); -#endif - - // power down dac (different file name) - if (val == LTC2620_D_PWR_DOWN_VAL) { -#if defined(XILINX_CHIPTESTBOARDD) && !defined(VIRTUAL) - LOG(logINFO, ("Powering down DAC %2d [%-6s] \n", dacnum, dacname)); - strcpy(fnameFormat, LTC2620_D_PowerDownDriverFileName); -#endif } - // proper value to set - else { - // convert to dac or get mV value - int dacmV = val; - if (mV) { - ret = LTC2620_D_VoltageToDac(val, dacval); - } - - // mV only for print out (dont convert to mV for power regulators) - else if (val >= 0 && dacnum < LTC2620_D_NumDacsOnly) { - // do not convert power down dac val - ret = LTC2620_D_DacToVoltage(val, &dacmV); - } - - // conversion out of bounds - if (ret == FAIL) { - LOG(logERROR, ("Setting Dac %d %s is out of bounds\n", dacnum, - (mV ? "mV" : "dac units"))); - return FAIL; - } - - // print and set -#ifdef XILINX_CHIPTESTBOARDD - if (*dacval >= 0) { - // also print mV - if (dacnum < LTC2620_D_NumDacsOnly) { - LOG(logINFO, ("Setting DAC %2d [%-6s] : %d dac (%d mV)\n", - dacnum, dacname, *dacval, dacmV)); - } - // do not print mV for power regulators - else { - LOG(logINFO, ("Setting Power DAC%2d [%-6s] : %d dac \n", dacnum, - dacname, *dacval)); - } - } -#else - if ((*dacval >= 0) || (*dacval == LTC2620_D_PWR_DOWN_VAL)) { - LOG(logINFO, ("Setting DAC %2d [%-12s] : %d dac (%d mV)\n", dacnum, - dacname, *dacval, dacmV)); - } -#endif + // print info + if (dacvalue == LTC2620_D_PWR_DOWN_VAL) { + LOG(logDEBUG, ("\tPowering down DAC %2d [%-6s] \n", dacnum, dacname)); + } else { + LOG(logINFO, ("\tSetting DAC %2d [%-6s] to %d dac units\n", dacnum, + dacname, dacvalue)); } - // set in file -#ifndef VIRTUAL +#ifdef VIRTUAL + return OK; +#endif + + // file name char fname[MAX_STR_LENGTH]; memset(fname, 0, MAX_STR_LENGTH); + snprintf(fname, MAX_STR_LENGTH, "%s%d", LTC2620_D_DriverFileName, dacnum); #ifdef XILINX_CHIPTESTBOARDD - sprintf(fname, fnameFormat, dacnum); -#else - sprintf(fname, "%s%d", fnameFormat, dacnum); + // different file for power down + if (dacvalue == LTC2620_D_PWR_DOWN_VAL) { + snprintf(fname, MAX_STR_LENGTH, "%s%d%s", LTC2620_D_DriverFileName, + dacnum, DAC_POWERDOWN_DRIVER_FILE_SUFFIX); + } #endif LOG(logDEBUG1, ("fname %s\n", fname)); // open file FILE *fd = fopen(fname, "w"); if (fd == NULL) { - LOG(logERROR, ("Could not open file %s for writing to set dac %d\n", - fname, dacnum)); + LOG(logERROR, + ("Could not open file %s for writing to set dac %d [%s] \n", fname, + dacnum, dacname)); return FAIL; } - // convert to string, add 0 and write to file -#ifdef XILINX_CHIPTESTBOARDD - // not changing *dacval from -100 (cant write -100 to file: invalid arg) - int writeValue = *dacval; - if (writeValue == LTC2620_D_PWR_DOWN_VAL) - writeValue = 1; - fprintf(fd, "%d\n", writeValue); + + // write to file +#ifndef XILINX_CHIPTESTBOARDD + fprintf(fd, "%d\n", dacvalue); #else - fprintf(fd, "%d\n", *dacval); + // cant write -100 to file: invalid arg + if (dacvalue == LTC2620_D_PWR_DOWN_VAL) { + fprintf(fd, "1\n"); + } else { + fprintf(fd, "%d\n", dacvalue); + } #endif fclose(fd); -#endif + return OK; } + +int LTC2620_D_SetDACValue(int dacnum, int val, int mV, char *dacname, + int *dacval) { + LOG(logDEBUG1, + ("dacnum:%d (%s), val:%d, ismV:%d\n", dacnum, dacname, val, mV)); + + // invalid index + if (dacnum >= LTC2620_D_NumDacs) { + LOG(logERROR, ("Dac index %d is out of bounds (0 to %d)\n", dacnum, + LTC2620_D_NumDacs - 1)); + return FAIL; + } + + if (mV && dacnum >= LTC2620_D_NumDacsOnly) { + LOG(logERROR, ("Cannot convert to dac units for power regulator %d %s " + "here. Expecting dac units here.\n", + dacnum, dacname)); + return FAIL; + } + + *dacval = val; + if (val == LTC2620_D_GetPowerDownValue()) { + LOG(logINFO, ("\tPowering down DAC %2d [%-6s] \n", dacnum, dacname)); + } else { + + // invalid negative value + if (val < 0) { + LOG(logERROR, ("Invalid value %d for dac[%d - %s]\n", val, + (int)dacnum, dacname)); + return FAIL; + } + + // convert to dac units or mV (print) + if (dacnum < LTC2620_D_NumDacsOnly) { + int dacmV = val; + int ret = OK; + if (mV) { + ret = LTC2620_D_VoltageToDac(val, dacval); + } else { + ret = LTC2620_D_DacToVoltage(val, &dacmV); + } + // conversion out of bounds + if (ret == FAIL) { + LOG(logERROR, ("Setting Dac %d %s is out of bounds\n", dacnum, + (mV ? "mV" : "dac units"))); + return FAIL; + } + LOG(logINFO, ("Setting DAC %2d [%-6s] : %d dac (%d mV)\n", dacnum, + dacname, *dacval, dacmV)); + } + } + + return LTC2620_D_WriteDACValue(dacnum, *dacval, dacname); +} diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index a920dc26e..4262c8271 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -1405,11 +1405,13 @@ int validateAndSetDac(enum dacIndex ind, int val, int mV) { setDAC(serverDacIndex, val, mV, 0); #elif defined(XILINX_CHIPTESTBOARDD) { - ret = setDAC(serverDacIndex, val, mV); - if (ret == FAIL) { - sprintf(mess, "Setting dac %d to value %d failed.\n", - serverDacIndex, val); - LOG(logERROR, (mess)); + if (val != GET_FLAG) { + ret = setDAC(serverDacIndex, val, mV); + if (ret == FAIL) { + sprintf(mess, "Setting dac %d to value %d failed.\n", + serverDacIndex, val); + LOG(logERROR, (mess)); + } } } #else diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer b/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer index aa6a73b281a8e1099bfe98c5f92f0f234c6f2f77..05dd2a06b89cdd16ef26a97ef30c7e44ef01d8a3 100755 GIT binary patch delta 80775 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 I)9#Z00>HRJF#rGn delta 79716 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
    h&lhrT)_L|@&cqOEGRX*&O_;>+Tt z7dgso@8Pmj*7WFovTvYs`$1zscrVZM-?CI zl6;0C75-mWXB*p86~^(~ay1i1?8?MV2bN^QhGSb7GLVp1Sj7>iZgb)^!)>O;4#rCs zTm+1rI29vAUUN}m7^dJd&`cQVVj37Ph6oEnTw=kQ3^J2x&}`s`83%ao`Tw5}z5TFe zzvp@W=Q-z|d(OG{p0*uOJz-s~SDp2HdWFtGwT-G5$Ojx3)4!14;&oUp{fD%w|2EA& z_M#BY?kCYCA;%cywcc-3S>)23Zt1MEbMZ)1?37iYuL{asCwq+@hhB0ZGT* z=`sWu!7YGA~X9M&HMjD*kTvrX6iNQ@)4T*{b&|R`(N@r zPQ)>mHgyh;N5vk<8I+r0?b1tHnteksx6{0cJiw){$h}Hl$sxLi#Wa!UIp+HjPLMs^ z@6kv9^~zt(wAP%EnUUSf;POd0M43$Dpj8!8qjxXOwJuayy4nTux_ihyMD1(j-G6{b zC^tsF)A2OM%tI4RaE&HS`Y`x(V?2t2iz)P|ZO~V6`3wzChesPd7Lx};Oo6GrK;9FE ze+~WX6}NA%c{rcSSr8Wgd+^^*osYnm8X?{wtfS!o19GzwAZN`n@}T2t`jmAwtOhgt z8?5cK*2BAn(v-iGXAYwtQjGoKYui8R*f)};cf|PT=EFSd7@SJfRi_=6cnAl&nOQ%L zu;&?;=XiEnN8ZqgO349QZJkm3Z?aoxZoZBr#r%miW}ElWJpawq=uTaz>zsazCh65~ zz)Na6N*?n=Jm^Bs56neXHk<&Ls$?l{UnlfB#Bchg4tt_sR#WgUxjbWZDsHQXRedOo=K^h7Ae?vYn0e@-3Q#RL2 zsVmkYRbcc_I`(aXfD8=x6u0Z0oQH9IWD=BpPobTBTb$SM~%D* z7}{u9#efKpj^w+Uyx$A|Zu;*aPjj@>0rCVNI7#>Umb`h5t+Pf=f)q;7(7;rT&`c1zghLZne))F?>ep==8+fd3~28Nf{X>^BRf!x z%)wQ{@4#P*UrV0OcFm#Ar{GJC91ny%tl#GhSokrxbnlqW-BS!-77Cz_(S>?kWLVY- zgmuz>gM2URv7Ovih_8yR9*xgHGChy(Cb3LG6ocIZj_3@ zM&7~OwhQUMnY?agKnuv(_#t^B0)0tzKlv4Xp{yq2Z7A0`PD2d4_w_fL+NN_hw+Ei( z_E-DclSW=sK*uEXU-gMQa$hZqsvy5hZdRqHFj)^2*)xhD*LyRd1Efn7VjOwK%2=m5 zS~= NDAC_ONLY) { + LOG(logERROR, ("Invalid DAC index: %d\n", ind)); return FAIL; } - LOG(logDEBUG1, ("Setting dac[%d - %s]: %d %s \n", (int)ind, dacName, val, - (mV ? "mV" : "dac units"))); - int dacval = val; + // ensure vlimit compliance + { + int dacmV = val; + if (!mV) { + // convert dac units to mV + if (LTC2620_D_DacToVoltage(val, &dacmV) == FAIL) { + LOG(logERROR, ("Could not convert %d dac units to mV for %s\n", + val, dacName)); + return FAIL; + } + } + if (checkVLimitCompliant(dacmV) == FAIL) { + LOG(logERROR, ("Value %d mV exceeds vLimit of %d mV for " + "%s\n", + dacmV, vLimit, dacName)); + return FAIL; + } + } + + // set dac + int dacval = -1; if (LTC2620_D_SetDACValue((int)ind, val, mV, dacName, &dacval) == FAIL) return FAIL; - dacValues[ind] = dacval; + return OK; } @@ -1266,8 +1267,16 @@ int isPowerValid(enum DACINDEX ind, int val) { min = VIO_MIN_MV; } + // check vlimit (already checked at funcs.c) + if (checkVLimitCompliant(val) == FAIL) { + LOG(logERROR, + ("Invalid value of %d mV for Power V%s. Exceeds vLimit of %d mV\n", + val, powerNames[pwrIndex], vLimit)); + return 0; + } + // not power_rgltr_max because it is allowed only upto vchip max - 200 - if (val != 0 && (val < min || val > POWER_RGLTR_MAX)) { + if ((val != 0 && val < min) || val > POWER_RGLTR_MAX) { LOG(logERROR, ("Invalid value of %d mV for Power V%s. Is not between %d and " "%d mV\n", @@ -1319,6 +1328,9 @@ int getPower(enum DACINDEX ind) { } int setPower(enum DACINDEX ind, int val) { + if (!isPowerValid(ind, val)) { + return FAIL; + } // validate index and get bit offset in ctrl register int bitOffset = getBitOffsetFromDACIndex(ind); @@ -1332,22 +1344,17 @@ int setPower(enum DACINDEX ind, int val) { int pwrIndex = (int)(ind - D_PWR_D); LOG(logINFO, ("Setting Power V%s to %d mV\n", powerNames[pwrIndex], val)); - // validate value (already checked at tcp (funcs.c)) - if (!isPowerValid(ind, val)) { - return FAIL; - } - // Switch off power enable LOG(logDEBUG1, ("\tSwitching off power enable\n")); bus_w(addr, bus_r(addr) & ~(mask)); - // power down dac (Cannot use power down value for power regulators) - if (setDAC(ind, 0, 0) == FAIL) { + // set dac value to 0 + if (LTC2620_D_WriteDACValue((int)ind, 0, powerNames[pwrIndex]) == FAIL) return FAIL; - } + dacValues[ind] = 0; - // convert voltage to dac - if (val != 0) { + if (val > 0) { + // convert voltage to dac int dacval = -1; if (ConvertToDifferentRange( POWER_RGLTR_MIN, POWER_RGLTR_MAX, LTC2620_D_GetMaxInput(), @@ -1360,14 +1367,15 @@ int setPower(enum DACINDEX ind, int val) { return FAIL; } + // set dac value LOG(logINFO, ("\tSetting DAC V%s: %d mV (%d dac)\n", powerNames[pwrIndex], val, dacval)); - if (setDAC(ind, dacval, 0) == FAIL) { - LOG(logERROR, - ("Could not set dac for Power V%s\n", powerNames[pwrIndex])); + if (LTC2620_D_WriteDACValue((int)ind, dacval, powerNames[pwrIndex]) == + FAIL) return FAIL; - } + dacValues[ind] = dacval; + // Switch on power enable LOG(logDEBUG1, ("\tSwitching on power enable for Power V%s\n", powerNames[pwrIndex])); bus_w(addr, bus_r(addr) | mask); @@ -1407,7 +1415,7 @@ int getSlowADC(int ichan, int *retval) { #ifndef VIRTUAL char fname[MAX_STR_LENGTH]; memset(fname, 0, MAX_STR_LENGTH); - sprintf(fname, SLOWADC_DRIVER_FILE_NAME, ichan); + sprintf(fname, "%s%d", SLOWADC_DRIVER_FILE_NAME, ichan); LOG(logDEBUG1, ("fname %s\n", fname)); if (readParameterFromFile(fname, "slow adc", retval) == FAIL) { diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h index 71d415745..4431413f9 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h @@ -35,10 +35,10 @@ #define DEVICE_NAME_LIST "xilinx-ams", "ad7689", "dac@0", "dac@1", "dac@2" #define DEVICE_TREE_API_FOLDER "/sys/kernel/config/device-tree/overlays/spidr" -#define DAC_DRIVER_FILE_NAME CURRENT_BOARD_LINKS_FOLDER "/ao%d" -#define DAC_POWERDOWN_DRIVER_FILE_NAME CURRENT_BOARD_LINKS_FOLDER "/ao%d_pd" -#define SLOWADC_DRIVER_FILE_NAME CURRENT_BOARD_LINKS_FOLDER "/ai%d" -#define TEMP_DRIVER_FILE_NAME DEVICE_TREE_DST "0/in_temp7_input" +#define DAC_DRIVER_FILE_NAME CURRENT_BOARD_LINKS_FOLDER "/ao" +#define DAC_POWERDOWN_DRIVER_FILE_SUFFIX "_pd" +#define SLOWADC_DRIVER_FILE_NAME CURRENT_BOARD_LINKS_FOLDER "/ai" +#define TEMP_DRIVER_FILE_NAME DEVICE_TREE_DST "0/in_temp7_input" #define CONFIG_CHIP_FILE "chip_config_xilinx.txt" #define RESET_CHIP_FILE "reset_chip_xilinx.txt" diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index f7b432b5e..880d237f8 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -7,6 +7,6 @@ #define APIGOTTHARD2 "0.0.0 0x250909" #define APIMOENCH "0.0.0 0x250909" #define APIEIGER "0.0.0 0x250909" -#define APIXILINXCTB "0.0.0 0x260113" +#define APIXILINXCTB "0.0.0 0x260114" #define APIJUNGFRAU "0.0.0 0x250909" #define APIMYTHEN3 "0.0.0 0x250922"