c2000ware-core-sdk/driverlib/.meta/pinmux.js
2023-06-24 11:35:38 +05:30

2011 lines
64 KiB
JavaScript

let Common = system.getScript("/driverlib/Common.js");
let PinmuxMigrations = system.getScript("/driverlib/pinmux/pinmux_migration.js");
let PinmuxAdditionalUseCases = system.getScript("/driverlib/pinmux/pinmux_additionalUseCases.js");
var NO_DEVICE_PIN_FOUND = "No Device Pin Found"
let PINMUX_QUAL_GROUPNAME = "GROUP_pinmuxQual"
function getGpioQualificationModInstDefinitions(peripheralName, inst){
var ownedInstances = []
var selectedPinmuxInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, inst.useCase);
//console.log(selectedPinmuxInterfaces)
for (var interfaceName of selectedPinmuxInterfaces)
{
var legacyInclusiveNames = PinmuxMigrations.interfaceInclusiveRename(interfaceName, peripheralName);
//console.log(legacyInclusiveNames)
//console.log(interfaceName)
var qualModName = interfaceNameToQualModeName(legacyInclusiveNames.inclusiveName, peripheralName);
var qualModDisplayName = legacyInclusiveNames.inclusiveName.replace("#", "").replace("@", "").replace("_", " ")
//console.log(qualModName)
if(!legacyInclusiveNames.legacyName)
{
ownedInstances.push({
name: qualModName,
displayName: qualModDisplayName + " Pin Qualification",
//legacyNames: legacyInclusiveNames.legacyName,
moduleName: "/driverlib/gpio/gpioQual.js",
collapsed: true,
group: PINMUX_QUAL_GROUPNAME,
args: {
$name : inst.$name + "_" + qualModName,
},
requiredArgs : {
}
})
}
else
{
var legacyNamesArray = [];
for(let i = 0; i < legacyInclusiveNames.legacyName.length; i++)
{
var legacyQualName = interfaceNameToQualModeName(legacyInclusiveNames.legacyName[i], peripheralName);
if((legacyQualName != qualModName) && (!legacyNamesArray.includes(legacyQualName)))
{
legacyNamesArray[i] = legacyQualName
}
}
ownedInstances.push({
name: qualModName,
displayName: qualModDisplayName + " Pin Qualification",
legacyNames: legacyNamesArray,
moduleName: "/driverlib/gpio/gpioQual.js",
collapsed: true,
group: PINMUX_QUAL_GROUPNAME,
args: {
$name : inst.$name + "_" + qualModName,
},
requiredArgs : {
}
})
}
//console.log(ownedInstances);
}
return ownedInstances
}
function interfaceNameToQualModeName(interfaceName, peripheralName)
{
var interfaceNameCopy = PinmuxMigrations.interfaceMigrationRename(interfaceName, peripheralName)
return interfaceNameCopy.toLowerCase().replace("#", "").replace("@", "").replace("_", "").replace("-", "").replace(peripheralName.toLowerCase(), "") + "Qual"
}
function addPinMuxQualGroupToConfig(mod)
{
//console.log(mod)
//console.log(mod.config)
mod.config.push({
name: PINMUX_QUAL_GROUPNAME,
displayName : "PinMux Qualification",
config: [],
})
}
function getDeviceDACName(dacInput)
{
//
// dacInput is DACA DACB etc.
//
var dacout = dacInput + "_OUT"
if (["F2838x"].includes(Common.getDeviceName()))
{
dacout = dacInput.substring(0, 3) + "OUT" + dacInput.substring(3)
return dacout
}
return dacout
}
function getDeviceADCName(adcInput)
{
if (["F2807x", "F2837xD", "F2837xS" ,"F2838x"].includes(Common.getDeviceName()))
{
return "ADCIN" + adcInput;
}
else
{
return adcInput;
}
}
// Functions for Calculated Values
function calculateADCPinInfo(inst,sociX){
var adcMod = inst.adcBase.replace("_BASE", "").replace("ADC", "");
var sociChannel = inst["soc" + sociX.toString() + "Channel"].replace("ADC_CH_ADCIN", "").replace("ADCIN", "");
var sociChannels = sociChannel.split("_");
var adcInputs = "";
var adcChannelArray = []
var adcPinInfosDescriptions = "";
var adcPinInfosArray = [];
for (sociChannel of sociChannels)
{
var adcInput = adcMod + sociChannel;
adcChannelArray.push(adcInput);
adcInputs += (adcInputs != "")?", ": "";
adcInputs += adcInput;
var adcPinInfos = findAllAnalogPin(getDeviceADCName(adcInput));
if (["14", "15"].includes(sociChannel))
{
if (adcPinInfos.length <= 0)
{
adcPinInfos = findAllAnalogPin("ADCIN" + sociChannel);
}
}
adcPinInfosDescriptions += (adcPinInfosDescriptions != "")?", ": "";
adcPinInfosDescriptions += getDevicePinInfoDescription(adcPinInfos);
for (var apinfo of adcPinInfos){
adcPinInfosArray.push(apinfo.PinDesignSignalName);
}
}
return {
"adcInput":adcInput,
"adcInputs":adcInputs,
"adcPinInfosDescriptions":adcPinInfosDescriptions,
"adcPinInfosArray":adcPinInfosArray,
"adcChannelArray": adcChannelArray
}
}
function findAllAnalogPin(selectedChannel)
{
var selectedPinName = "";
var selectedPinSignalName = "";
var replaceCommaWith = "/";
var pinInfos = [];
for (var devicePinIndex in system.deviceData.devicePins){
var devicePin = system.deviceData.devicePins[devicePinIndex]
if (!isNaN(devicePin.designSignalName)){
continue
}
var pin = devicePin.name.replace(/,/g, replaceCommaWith)
var pinSignalName = devicePin.designSignalName.replace(/,/g, replaceCommaWith)
var pinSignalNamesSplitArray = pinSignalName.split('/')
for (var pinSignalNameSplitIndex = 0;
pinSignalNameSplitIndex < pinSignalNamesSplitArray.length;
pinSignalNameSplitIndex++)
{
var pinSignalNameSplitItem = pinSignalNamesSplitArray[pinSignalNameSplitIndex].trim();
if (selectedChannel == pinSignalNameSplitItem)
{
selectedPinName = pin;
selectedPinSignalName = pinSignalName;
pinInfos = pinInfos.concat([{
PinName: selectedPinName,
PinSignalName : selectedPinSignalName,
PinDesignSignalName: devicePin.designSignalName,
}]);
}
}
}
return pinInfos;
}
function findAnalogPin(selectedChannel)
{
var selectedPinName = "";
var selectedPinSignalName = "";
var replaceCommaWith = "/";
for (var devicePinIndex in system.deviceData.devicePins){
var devicePin = system.deviceData.devicePins[devicePinIndex]
if (!isNaN(devicePin.designSignalName)){
continue
}
var pin = devicePin.name.replace(/,/g, replaceCommaWith)
var pinSignalName = devicePin.designSignalName.replace(/,/g, replaceCommaWith)
var pinSignalNamesSplitArray = pinSignalName.split('/')
for (var pinSignalNameSplitIndex = 0;
pinSignalNameSplitIndex < pinSignalNamesSplitArray.length;
pinSignalNameSplitIndex++)
{
var pinSignalNameSplitItem = pinSignalNamesSplitArray[pinSignalNameSplitIndex].trim();
if (selectedChannel == pinSignalNameSplitItem)
{
selectedPinName = pin;
selectedPinSignalName = pinSignalName;
return {
valid : true,
PinName: selectedPinName,
PinSignalName : selectedPinSignalName,
PinDesignSignalName : devicePin.designSignalName,
}
}
}
}
return {
valid : false,
PinName: "",
PinSignalName : "",
PinDesignSignalName: "",
}
}
function getADCPinsUsed()
{
let device_driverlib_peripheral =
system.getScript("/driverlib/device_driverlib_peripherals/" +
Common.getDeviceName().toLowerCase() + "_adc.js");
var mods = system.modules['/driverlib/adc.js'];
var adcPins = [];
if (mods != null)
{
for (var modInst of mods.$instances)
{
for(var socIndex in device_driverlib_peripheral.ADC_SOCNumber){
var currentSOC = device_driverlib_peripheral.ADC_SOCNumber[socIndex].name
var soci = (currentSOC).replace(/[^0-9]/g,'')
if((modInst.enabledSOCs).includes(currentSOC)){
var pinSelectedArray = calculateADCPinInfo(modInst,soci).adcPinInfosArray
adcPins = adcPins.concat(pinSelectedArray);
}
}
}
}
return adcPins;
}
function getCMPSSPinsUsed()
{
var mods = system.modules['/driverlib/cmpss.js'];
let ComparatorInputs = system.getScript("/driverlib/cmpss/cmpss_inputSignals.js")
var cmpssPins = [];
if (mods != null)
{
for (var modInst of mods.$instances)
{
if (modInst.asysCMPHPMXSELValue)
{
var tempPinName = ComparatorInputs.CMPSS_comparatorInputSignals[Common.getDeviceName()][modInst.cmpssBase][modInst.asysCMPHPMXSELValue].displayName
var tempPinNameH = ComparatorInputs.CMPSS_comparatorInputSignals[Common.getDeviceName()][modInst.cmpssBase][modInst.asysCMPHPMXSELValue].displayName
var tempPinInfoH = findAllAnalogPin(getDeviceADCName(tempPinName.split("/")[0]))
for (var apinfo of tempPinInfoH){
var pinSelected = apinfo.PinDesignSignalName;
cmpssPins.push(pinSelected);
}
}
if (modInst.asysCMPLPMXSELValue)
{
var tempPinName = ComparatorInputs.CMPSS_comparatorInputSignals[Common.getDeviceName()][modInst.cmpssBase][modInst.asysCMPLPMXSELValue].displayName
var tempPinNameL = ComparatorInputs.CMPSS_comparatorInputSignals[Common.getDeviceName()][modInst.cmpssBase][modInst.asysCMPLPMXSELValue].displayName
var tempPinInfoL = findAllAnalogPin(getDeviceADCName(tempPinName.split("/")[0]))
for (var apinfo of tempPinInfoL){
var pinSelected = apinfo.PinDesignSignalName;
cmpssPins.push(pinSelected);
}
}
}
}
return cmpssPins;
}
function getCMPSSLitePinsUsed()
{
var mods = system.modules['/driverlib/cmpss_lite.js'];
let ComparatorLiteInputs = system.getScript("/driverlib/cmpss_lite/cmpss_lite_inputSignals.js")
var cmpssLitePins = [];
if (mods != null)
{
for (var modInst of mods.$instances)
{
if (modInst.asysCMPHPMXSELValue)
{
var tempPinName = ComparatorLiteInputs.CMPSSLITE_comparatorInputSignals[Common.getDeviceName()][modInst.cmpssLiteBase][modInst.asysCMPHPMXSELValue].displayName
var tempPinNameH = ComparatorLiteInputs.CMPSSLITE_comparatorInputSignals[Common.getDeviceName()][modInst.cmpssLiteBase][modInst.asysCMPHPMXSELValue].displayName
var tempPinInfoH = findAllAnalogPin(getDeviceADCName(tempPinName.split("/")[0]))
for (var apinfo of tempPinInfoH){
var pinSelected = apinfo.PinDesignSignalName;
cmpssLitePins.push(pinSelected);
}
}
if (modInst.asysCMPLPMXSELValue)
{
var tempPinName = ComparatorLiteInputs.CMPSSLITE_comparatorInputSignals[Common.getDeviceName()][modInst.cmpssLiteBase][modInst.asysCMPLPMXSELValue].displayName
var tempPinNameL = ComparatorLiteInputs.CMPSSLITE_comparatorInputSignals[Common.getDeviceName()][modInst.cmpssLiteBase][modInst.asysCMPLPMXSELValue].displayName
var tempPinInfoL = findAllAnalogPin(getDeviceADCName(tempPinName.split("/")[0]))
for (var apinfo of tempPinInfoL){
var pinSelected = apinfo.PinDesignSignalName;
cmpssLitePins.push(pinSelected);
}
}
}
}
return cmpssLitePins;
}
function getDevicePinInfoDescription(pinInfos)
{
if (pinInfos.length > 0)
{
var pinInfoDescriptions = "";
for (var pinInfo of pinInfos)
{
pinInfoDescriptions += pinInfo.PinName + ": " + pinInfo.PinSignalName + ", ";
}
pinInfoDescriptions = pinInfoDescriptions.substring(0, pinInfoDescriptions.length - ", ".length);
return pinInfoDescriptions;
}
else
{
return NO_DEVICE_PIN_FOUND
}
}
function useCaseChanged(inst, ui)
{
try
{
if (inst.useCase == "CUSTOM") {
ui.useInterfacePins.hidden = false;
}
else {
ui.useInterfacePins.hidden = true;
}
} catch (error)
{
console.log("An error occured when changing the pinmux usecase");
}
}
function addCustomPinmuxEnumToConfig(module)
{
var peripheralName = module.peripheralName;
var options = []
var InterfaceNames = getPeripheralInterfaces(peripheralName);
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
try
{
if (interfaceName.includes("EMU0") || interfaceName.includes("EMU1") || interfaceName.includes("AUXCLKIN"))
{
continue;
}
} catch (error) {}
var interfaceInclusiveName = PinmuxMigrations.interfaceInclusiveRename(interfaceName, peripheralName)
options.push({name:interfaceName, displayName:interfaceInclusiveName.inclusiveName.replace("#", "").replace("@", "")});
}
module.config.push(
{
name : "useInterfacePins",
displayName : "Pins Used",
description : 'The pins used by the pinmux section.',
hidden : true,
default : [],
minSelections: 0,
options : options,
}
/*,
{
name: "cfgMultiEnum2",
//getDisabledOptions: generateDisabledOptions("cfgMultiEnum2"),
displayName: "MultiEnum2",
options: [
{
name: "opt1",
displayName: "Option1"
},
{
name: "opt2",
displayName: "Option2"
},
{
name: "opt3",
displayName: "Option3"
}
],
default: ["opt1", "opt2"]
},*/
)
}
function usbPinmuxRequirements(inst)
{
var peripheralName = "USB";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
if (pt.displayName.includes("EPEN") || pt.displayName.includes("FLT"))
{
}
else
{
resources.push(pt);
signalTypes[pt.name] = interfaceName;
}
i++;
}
let usb = {
name : "usb",
displayName : "USB Peripheral",
interfaceName : "USB",
resources : resources,
signalTypes : signalTypes
};
return [usb];
}
function uppPinmuxRequirements(inst)
{
var peripheralName = "UPP";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
//console.log(useCaseInterfaces);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
//console.log(InterfaceNames);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let upp = {
name : "upp",
displayName : "UPP Peripheral",
interfaceName : "UPP",
resources : resources,
signalTypes : signalTypes
};
return [upp];
}
function fsitxPinmuxRequirements(inst)
{
var peripheralName = "FSITX";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let fsitx = {
name : "fsitx",
displayName : "FSITX Peripheral",
interfaceName : "FSITX",
resources : resources,
signalTypes : signalTypes
};
return [fsitx];
}
function fsirxPinmuxRequirements(inst)
{
var peripheralName = "FSIRX";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let fsirx = {
name : "fsirx",
displayName : "FSIRX Peripheral",
interfaceName : "FSIRX",
resources : resources,
signalTypes : signalTypes
};
return [fsirx];
}
function emif1PinmuxRequirements(inst)
{
var peripheralName = "EMIF1";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1 ||
// Special Case
interfaceName.includes("A20") ||
interfaceName.includes("A21"))
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let emif1 = {
name : "emif1",
displayName : "EMIF1 Peripheral",
interfaceName : "EMIF1",
resources : resources,
signalTypes : signalTypes
};
return [emif1];
}
function emif2PinmuxRequirements(inst)
{
var peripheralName = "EMIF2";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1||
// No options available
system.deviceData.interfaces[peripheralName].interfacePins[interfaceName].pinMappings[0].pinMappings.length <= 0)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let emif2 = {
name : "emif2",
displayName : "EMIF2 Peripheral",
interfaceName : "EMIF2",
resources : resources,
signalTypes : signalTypes
};
return [emif2];
}
function otherPinmuxRequirements(inst)
{
var peripheralName = "OTHER";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1 ||
// No options available
system.deviceData.interfaces[peripheralName].interfacePins[interfaceName].pinMappings[0].pinMappings.length <= 0 ||
// No EMUs
// Special Case
interfaceName.includes("EMU") ||
// No AUXCLKIN
// Special Case
interfaceName.includes("AUXCLKIN")
)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let other = {
name : "other",
displayName : "Other Peripheral",
interfaceName : "OTHER",
resources : resources,
signalTypes : signalTypes
};
return [other];
}
function analogPinmuxRequirements(inst)
{
var peripheralName = "ANALOG";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1 ||
// No options available
system.deviceData.interfaces[peripheralName].interfacePins[interfaceName].pinMappings[0].pinMappings.length <= 0
)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let analog = {
name : "analog",
displayName : "ANALOG Peripheral",
interfaceName : "ANALOG",
resources : resources,
signalTypes : signalTypes
};
return [analog];
}
function dcdcPinmuxRequirements(inst)
{
var peripheralName = "DC-DC";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let dcdc = {
name : "dcdc",
displayName : "DC-DC Peripheral",
interfaceName : "DC-DC",
resources : resources,
signalTypes : signalTypes
};
return [dcdc];
}
function linPinmuxRequirements(inst)
{
var peripheralName = "LIN";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let lin = {
name : "lin",
displayName : "LIN Peripheral",
interfaceName : "LIN",
resources : resources,
signalTypes : signalTypes
};
return [lin];
}
function spiPinmuxRequirements(inst)
{
var peripheralName = "SPI";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
var legacyInclusiveNames = PinmuxMigrations.interfaceInclusiveRename(interfaceName, peripheralName);
//console.log(legacyInclusiveNames)
if(!legacyInclusiveNames.legacyName)
{
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : legacyInclusiveNames.inclusiveName.toLowerCase().replace("#", "").replace("@", "") + "Pin",
displayName : interfaceName.replace("#", "").replace("@", ""),
interfaceNames : [interfaceName]
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
else
{
//console.log(interfaceName)
//console.log(legacyInclusiveNames.legacyName)
for(let i = 0; i < legacyInclusiveNames.legacyName.length; i++)
{
legacyInclusiveNames.legacyName[i] = legacyInclusiveNames.legacyName[i].toLowerCase().replace("#", "").replace("@", "") + "Pin";
}
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : legacyInclusiveNames.inclusiveName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
legacyNames : legacyInclusiveNames.legacyName,
displayName : legacyInclusiveNames.inclusiveName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
//console.log(resources)
}
}
//console.log(resources)
let spi = {
name : "spi",
displayName : "SPI Peripheral",
interfaceName : "SPI",
resources : resources,
signalTypes : signalTypes
};
return [spi];
}
function getPeripheralUseCaseNames(peripheralName)
{
var useCaseOptions = [];
if (system.deviceData.interfaces[peripheralName] == null)
return [{name: "ALL"}, {name: "CUSTOM"}];
var useCases = Object.keys(system.deviceData.interfaces[peripheralName].useCases);
var containsALL = false;
for (var useCaseNumber in useCases)
{
var useCaseName = useCases[useCaseNumber];
if(useCaseName == "ALL")
{
containsALL = true;
}
useCaseOptions.push({name: useCaseName, displayName: PinmuxMigrations.useCaseInclusiveRename(useCaseName, peripheralName)});
}
if (!containsALL)
{
useCaseOptions.unshift({name: "ALL"});
}
useCaseOptions.unshift({name: "CUSTOM"});
return useCaseOptions;
}
function addPeripheralUseCaseCustom()
{
}
function getAdditionalUseCaseNameConfigsNotInDeviceData(periph)
{
var useCaseNameConfigs = []
var additionalUseCases = PinmuxAdditionalUseCases.getAdditionalUseCase(periph)
for (var addUseCase of additionalUseCases)
{
var matchingUseCaseName = getPeripheralUseCaseNames(periph).filter(useCaseOption => useCaseOption.name == addUseCase.name);
if (matchingUseCaseName.length < 1)
{
useCaseNameConfigs.push({
name: addUseCase.name
})
}
}
return useCaseNameConfigs;
}
function getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName)
{
var useCaseInterfaces = [];
//console.log("Finding use cases...");
//console.log(system.deviceData.interfaces[peripheralName].useCases);
if (useCaseName == "CUSTOM")
{
//console.log("Doing custom use cases...");
return getCustomPeripheralInterfaces(inst, peripheralName);
}
if (system.deviceData.interfaces[peripheralName].useCases[useCaseName] == null)
{
//console.log("Use case not found, showing all!");
var additionalUseCaseInterface = PinmuxAdditionalUseCases.getAdditionalUseCaseInterfaces(peripheralName, useCaseName)
if (additionalUseCaseInterface)
{
return additionalUseCaseInterface
}
return getPeripheralInterfaces(peripheralName);
}
if (useCaseName == "ALL")
{
return getPeripheralInterfaces(peripheralName);
}
//console.log("Use case found. Showing only relevant interfaces!");
var numberOfPinsInUseCase = system.deviceData.interfaces[peripheralName].useCases[useCaseName].useCasePin.length;
for (var useCasePinNumber = 0; useCasePinNumber < numberOfPinsInUseCase; useCasePinNumber++)
{
if (!system.deviceData.interfaces[peripheralName].useCases[useCaseName].useCasePin[useCasePinNumber].optional)
{
useCaseInterfaces.push(system.deviceData.interfaces[peripheralName].useCases[useCaseName].useCasePin[useCasePinNumber].name);
}
}
return useCaseInterfaces;
}
function getCustomPeripheralInterfaces(inst, peripheralName)
{
return inst.useInterfacePins;
//console.log(inst.useInterfacePins)
var interfaces = [];
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
for (var interfaceNumber in InterfaceNames)
{
interfaces.push(InterfaceNames[interfaceNumber]);
}
return interfaces;
}
function getPeripheralInterfaces(peripheralName)
{
var interfaces = [];
//console.log(peripheralName)
//console.log(system.deviceData.interfaces)
//console.log(system.deviceData.interfaces[peripheralName])
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
for (var interfaceNumber in InterfaceNames)
{
interfaces.push(InterfaceNames[interfaceNumber]);
}
return interfaces;
}
function sciPinmuxRequirements(inst)
{
var peripheralName = "SCI";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let sci = {
name : "sci",
displayName : "SCI Peripheral",
interfaceName : "SCI",
resources : resources,
signalTypes : signalTypes
};
return [sci];
}
function sdPinmuxRequirements(inst)
{
var peripheralName = "SD";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let sd = {
name : "sd",
displayName : "Sigma-Delta Peripheral",
interfaceName : "SD",
resources : resources,
signalTypes : signalTypes
};
return [sd];
}
function mcbspPinmuxRequirements(inst)
{
var peripheralName = "MCBSP";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let mcbsp = {
name : "mcbsp",
displayName : "MCBSP Peripheral",
interfaceName : "MCBSP",
resources : resources,
signalTypes : signalTypes
};
return [mcbsp];
}
function eqepPinmuxRequirements(inst)
{
var peripheralName = "EQEP";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let eqep = {
name : "eqep",
displayName : "EQEP Peripheral",
interfaceName : "EQEP",
resources : resources,
signalTypes : signalTypes
};
return [eqep];
}
function epwm_pinmux(periph){
return true
}
function hrpwm_pinmux(periph){
if (["F28002x", "F2838x", "F28003x"].includes(Common.getDeviceName()))
{
if (["EPWM1", "EPWM2", "EPWM3", "EPWM4"].includes(periph.name))
{
return true;
}
else
{
return false;
}
}
else if (["F280013x"].includes(Common.getDeviceName()))
{
if (["EPWM1"].includes(periph.name))
{
return true;
}
else
{
return false;
}
}
else if (["F280015x"].includes(Common.getDeviceName()))
{
if (["EPWM1", "EPWM2"].includes(periph.name))
{
return true;
}
else
{
return false;
}
}
else
{
if (["EPWM1", "EPWM2", "EPWM3", "EPWM4", "EPWM5", "EPWM6", "EPWM7", "EPWM8"].includes(periph.name))
{
return true;
}
else
{
return false;
}
}
}
function epwmPinmuxRequirements(inst)
{
var peripheralName = "EPWM";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
//console.log(interfaceName);
if(interfaceName.includes("_"))
{
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
legacyNames : [interfaceName.toLowerCase().replace("#", "").replace("@", "").replace("_", "") + "Pin"],
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
}
else
{
let pt = {
name : interfaceName.toLowerCase().replace("#", "_").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
legacyNames : [interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin"],
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
}
// let pt = {
// name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
// displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
// interfaceNames : [interfaceName] /* pinmux tool name */
// };
//
// resources.push(pt);
// signalTypes[pt.name] = interfaceName;
i++;
}
var filter = epwm_pinmux
if (inst.hrpwm_enable)
{
filter = hrpwm_pinmux
}
//console.log(resources)
let epwm = {
name : "epwm",
displayName : "EPWM Peripheral",
interfaceName : "EPWM",
resources : resources,
signalTypes : signalTypes,
filter : filter
};
return [epwm];
}
function i2cPinmuxRequirements(inst)
{
var peripheralName = "I2C";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let i2c = {
name : "i2c",
displayName : "I2C Peripheral",
interfaceName : "I2C",
resources : resources,
signalTypes : signalTypes
};
return [i2c];
}
function canPinmuxRequirements(inst)
{
var peripheralName = "CAN";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let can = {
name : "can",
displayName : "CAN Peripheral",
interfaceName : "CAN",
resources : resources,
signalTypes : signalTypes
};
return [can];
}
function outputxbarPinmuxRequirements(inst)
{
let resources = [];
var peripheralName = "OUTPUTXBAR";
var signalTypes = {};
//var useCaseName = inst.useCase;
//var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
//if (useCaseInterfaces.indexOf(interfaceName) == -1)
//{
// continue;
//}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let outputxbar = {
name : "outputxbar",
displayName : "OUTPUTXBAR Peripheral",
interfaceName : "OUTPUTXBAR",
resources : resources,
signalTypes : signalTypes
};
return [outputxbar];
}
function clb_outputxbarPinmuxRequirements(inst)
{
let resources = [];
var peripheralName = "CLB_OUTPUTXBAR";
var signalTypes = {};
//var useCaseName = inst.useCase;
//var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
//if (useCaseInterfaces.indexOf(interfaceName) == -1)
//{
// continue;
//}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let clb_outputxbar = {
name : "clb_outputxbar",
displayName : "CLB OUTPUTXBAR Peripheral",
interfaceName : "CLB_OUTPUTXBAR",
resources : resources,
signalTypes : signalTypes
};
return [clb_outputxbar];
}
function inputxbarPinmuxRequirements(inst)
{
let resources = [];
var INPUTXBARInterfaceNames = Object.keys(system.deviceData.interfaces.INPUTXBAR.interfacePins);
var i = 1;
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
for (var useCaseNumber in INPUTXBARInterfaceNames)
{
var interfaceName = INPUTXBARInterfaceNames[interfaceNumber];
let ix1 = {
name : "inputxbar" + i + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : "INPUTXBAR" + i, /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(ix1);
signalTypes[ix1.name] = interfaceName;
i++;
}
let inputxbar = {
name : "inputxbar",
displayName : "INPUTXBAR Peripheral",
interfaceName : "INPUTXBAR",
resources : resources,
signalTypes : signalTypes
};
return [inputxbar];
}
function gpioWithPeripheralPinmuxRequirements(inst)
{
let resources = [];
var GPIOInterfaceName = "GPIO#";
let gpio = {
name : "gpioPin",
displayName : "GPIO Peripheral",
interfaceName : "GPIO",
signalTypes : {
"gpioPin" : GPIOInterfaceName
}
};
return [gpio];
}
function gpioPinmuxRequirements(inst)
{
let resources = [];
var GPIOInterfaceName = "GPIO#";
let gpio = {
name : "gpioPin",
displayName : "GPIO",
interfaceName : "GPIO",
signalTypes : [GPIOInterfaceName]
};
return [gpio];
}
function aioPinmuxRequirements(inst)
{
let resources = [];
let aio = {
name : "aioPin",
displayName : "AIO Peripheral",
interfaceName : "AIO",
};
return [aio];
}
function pmbusPinmuxRequirements(inst)
{
var peripheralName = "PMBUS";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let pmbus = {
name : "pmbus",
displayName : "PMBUS Peripheral",
interfaceName : "PMBUS",
resources : resources,
signalTypes : signalTypes
};
return [pmbus];
}
function cmi2cPinmuxRequirements(inst)
{
var peripheralName = "CM-I2C";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let cmi2c = {
name : "cmi2c",
displayName : "CM-I2C Peripheral",
interfaceName : "CM-I2C",
resources : resources,
signalTypes : signalTypes
};
return [cmi2c];
}
function mcanPinmuxRequirements(inst)
{
var peripheralName = "MCAN";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let mcan = {
name : "mcan",
displayName : "MCAN Peripheral",
interfaceName : "MCAN",
resources : resources,
signalTypes : signalTypes
};
return [mcan];
}
function uartPinmuxRequirements(inst)
{
var peripheralName = "UART";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let uart = {
name : "uart",
displayName : "UART Peripheral",
interfaceName : "UART",
resources : resources,
signalTypes : signalTypes
};
return [uart];
}
function ssiPinmuxRequirements(inst)
{
var peripheralName = "SSI";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let ssi = {
name : "ssi",
displayName : "SSI Peripheral",
interfaceName : "SSI",
resources : resources,
signalTypes : signalTypes
};
return [ssi];
}
function ecatPinmuxRequirements(inst)
{
var peripheralName = "ECAT";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let ecat = {
name : "ecat",
displayName : "ECAT Peripheral",
interfaceName : "ECAT",
resources : resources,
signalTypes : signalTypes
};
return [ecat];
}
function ethernetPinmuxRequirements(inst)
{
var peripheralName = "ETHERNET";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1 ||
// No options available
system.deviceData.interfaces[peripheralName].interfacePins[interfaceName].pinMappings[0].pinMappings.length <= 0
)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let ethernet = {
name : "ethernet",
displayName : "ETHERNET Peripheral",
interfaceName : "ETHERNET",
resources : resources,
signalTypes : signalTypes
};
return [ethernet];
}
function hicPinmuxRequirements(inst)
{
var peripheralName = "HIC";
let resources = [];
var signalTypes = {};
var useCaseName = inst.useCase;
var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object.keys(system.deviceData.interfaces[peripheralName].interfacePins);
var i = 1;
for (var interfaceNumber in InterfaceNames)
{
var interfaceName = InterfaceNames[interfaceNumber];
if (useCaseInterfaces.indexOf(interfaceName) == -1 ||
// No options available
system.deviceData.interfaces[peripheralName].interfacePins[interfaceName].pinMappings[0].pinMappings.length <= 0
)
{
continue;
}
let pt = {
name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
interfaceNames : [interfaceName] /* pinmux tool name */
};
resources.push(pt);
signalTypes[pt.name] = interfaceName;
i++;
}
let hic = {
name : "hic",
displayName : "HIC Peripheral",
interfaceName : "HIC",
resources : resources,
signalTypes : signalTypes
};
return [hic];
}
function getGPIOFromDevicePinName(devicePinName)
{
var gpioNames = []
var isAgpioPin = false
var gpioName = devicePinName;
if (!gpioName.startsWith("GPIO"))
{
isAgpioPin = true
}
gpioName = gpioName.substring(gpioName.indexOf("GPIO"))
if ((gpioName.match(/GPIO/g) || []).length > 1)
{
//
// Double bonded
//
var gpiosOnThisPin = gpioName.split("GPIO");
gpiosOnThisPin.splice(0, 1)
for (var gpioOnThisPin of gpiosOnThisPin)
{
var gpioNumberOnThisPin = Common.gpioNameToNumber(gpioOnThisPin);
gpioNames.push("GPIO" + gpioNumberOnThisPin)
}
return gpioNames
}
gpioName = gpioName.substring(4); // determine which GPIO
var gpioNumber = Common.gpioNameToNumber(gpioName);
gpioNames.push("GPIO" + gpioNumber)
return gpioNames
}
exports = {
NO_DEVICE_PIN_FOUND : NO_DEVICE_PIN_FOUND,
getADCPinsUsed : getADCPinsUsed,
getCMPSSPinsUsed : getCMPSSPinsUsed,
getCMPSSLitePinsUsed : getCMPSSLitePinsUsed,
getDeviceDACName : getDeviceDACName,
findAllAnalogPin: findAllAnalogPin,
findAnalogPin : findAnalogPin,
calculateADCPinInfo : calculateADCPinInfo,
getDeviceADCName : getDeviceADCName,
getDevicePinInfoDescription : getDevicePinInfoDescription,
getPeripheralUseCaseInterfaces: getPeripheralUseCaseInterfaces,
useCaseChanged : useCaseChanged,
addCustomPinmuxEnumToConfig : addCustomPinmuxEnumToConfig,
getPeripheralUseCaseNames : getPeripheralUseCaseNames,
spiPinmuxRequirements : spiPinmuxRequirements,
sciPinmuxRequirements : sciPinmuxRequirements,
gpioPinmuxRequirements : gpioPinmuxRequirements,
i2cPinmuxRequirements : i2cPinmuxRequirements,
inputxbarPinmuxRequirements: inputxbarPinmuxRequirements,
outputxbarPinmuxRequirements : outputxbarPinmuxRequirements,
clb_outputxbarPinmuxRequirements : clb_outputxbarPinmuxRequirements,
aioPinmuxRequirements : aioPinmuxRequirements,
canPinmuxRequirements : canPinmuxRequirements,
epwmPinmuxRequirements : epwmPinmuxRequirements,
eqepPinmuxRequirements : eqepPinmuxRequirements,
mcbspPinmuxRequirements : mcbspPinmuxRequirements,
sdPinmuxRequirements : sdPinmuxRequirements,
uppPinmuxRequirements : uppPinmuxRequirements,
usbPinmuxRequirements : usbPinmuxRequirements,
fsitxPinmuxRequirements : fsitxPinmuxRequirements,
fsirxPinmuxRequirements : fsirxPinmuxRequirements,
otherPinmuxRequirements : otherPinmuxRequirements,
dcdcPinmuxRequirements : dcdcPinmuxRequirements,
emif1PinmuxRequirements : emif1PinmuxRequirements,
emif2PinmuxRequirements : emif2PinmuxRequirements,
linPinmuxRequirements : linPinmuxRequirements,
pmbusPinmuxRequirements : pmbusPinmuxRequirements,
cmi2cPinmuxRequirements : cmi2cPinmuxRequirements,
mcanPinmuxRequirements : mcanPinmuxRequirements,
uartPinmuxRequirements : uartPinmuxRequirements,
ssiPinmuxRequirements : ssiPinmuxRequirements,
ecatPinmuxRequirements : ecatPinmuxRequirements,
ethernetPinmuxRequirements : ethernetPinmuxRequirements,
hicPinmuxRequirements : hicPinmuxRequirements,
gpioWithPeripheralPinmuxRequirements : gpioWithPeripheralPinmuxRequirements,
analogPinmuxRequirements : analogPinmuxRequirements,
getGpioQualificationModInstDefinitions : getGpioQualificationModInstDefinitions,
addPinMuxQualGroupToConfig : addPinMuxQualGroupToConfig,
interfaceNameToQualModeName : interfaceNameToQualModeName,
getAdditionalUseCaseNameConfigsNotInDeviceData : getAdditionalUseCaseNameConfigsNotInDeviceData,
getGPIOFromDevicePinName : getGPIOFromDevicePinName
};