112 lines
3.9 KiB
JavaScript
112 lines
3.9 KiB
JavaScript
let Common = system.getScript("/driverlib/Common.js");
|
|
let Pinmux = system.getScript("/driverlib/pinmux.js");
|
|
|
|
let device_driverlib_peripheral =
|
|
system.getScript("/driverlib/device_driverlib_peripherals/" +
|
|
Common.getDeviceName().toLowerCase() + "_gpio.js");
|
|
|
|
/* Intro splash on GUI */
|
|
let longDescription = "A AIO peripheral is used to translate data between " +
|
|
"the chip and a serial port. The SCI driver simplifies reading " +
|
|
"and writing to any of the UART peripherals on the board, with " +
|
|
"multiple modes of operation and performance. These include " +
|
|
"blocking, non-blocking, and polling, as well as text/binary " +
|
|
"mode, echo and return characters.";
|
|
|
|
/* Array of SCI configurables that are common across device families */
|
|
let config = [
|
|
|
|
{
|
|
name : "direction",
|
|
displayName : "AIO Direction",
|
|
description : 'Only supports input.',
|
|
hidden : false,
|
|
default : 'IN',
|
|
options : [
|
|
{ name: "IN" }
|
|
]
|
|
},
|
|
|
|
{
|
|
name : "padConfig",
|
|
displayName : "Pin Type",
|
|
description : 'Type of pin is driving the gpio.',
|
|
hidden : false,
|
|
default : 'STD',
|
|
options : [
|
|
{ name: "STD", displayName : "Push-pull output/floating input" },
|
|
{ name: "PULLUP", displayName : "Push-pull output/pull-up enabled on input" },
|
|
{ name: "INVERT", displayName : "Push-pull output/floating INVERTED polarity on an input" },
|
|
{ name: "PULLUP_INVERT", displayName : "Push-pull output/pull-up enabled on INVERTED input" },
|
|
{ name: "OD", displayName : "Open-drain output/floating input" },
|
|
{ name: "OD_PULLUP", displayName : "Open-drain output with pull-up enabled output and input" },
|
|
{ name: "OD_INVERT", displayName : "Open-drain output/floating inverted input" },
|
|
{ name: "OD_PULLUP_INVERT", displayName : "Open-drain output with pull-up enabled output and INVERTED input" }
|
|
]
|
|
},
|
|
|
|
|
|
{
|
|
name : "qualMode",
|
|
displayName : "Qualification Mode",
|
|
description : 'The type of qualification done on the pin.',
|
|
hidden : false,
|
|
default : device_driverlib_peripheral.GPIO_QualificationMode[0].name,
|
|
options : device_driverlib_peripheral.GPIO_QualificationMode
|
|
}
|
|
];
|
|
|
|
if (!["F28002x", "F280013x", "F280015x"].includes(Common.getDeviceName()))
|
|
{
|
|
var coreSelectConfig = {
|
|
name : "controllerCore",
|
|
legacyNames : ["masterCore"],
|
|
displayName : "Core Select",
|
|
description : 'Who owns the GPIO.',
|
|
hidden : false,
|
|
default : device_driverlib_peripheral.GPIO_CoreSelect[0].name,
|
|
options : device_driverlib_peripheral.GPIO_CoreSelect
|
|
};
|
|
config.push(coreSelectConfig)
|
|
}
|
|
|
|
/*
|
|
* ======== filterHardware ========
|
|
* Control RX, TX Pin usage by the user specified dataDirection.
|
|
*
|
|
* param component - hardware object describing signals and
|
|
* resources they're attached to
|
|
*
|
|
* returns Boolean indicating whether or not to allow the component to
|
|
* be assigned to an instance's $hardware config
|
|
*/
|
|
function filterHardware(component)
|
|
{
|
|
return (Common.typeMatches(component.type, ["AIO"]));
|
|
}
|
|
|
|
if (Common.onlyPinmux())
|
|
{
|
|
config = [];
|
|
}
|
|
var aioModule = {
|
|
peripheralName: "AIO",
|
|
displayName: "AIO",
|
|
maxInstances: Common.peripheralCount("AIO"),
|
|
defaultInstanceName: "myAIO",
|
|
description: "Analog IO Interface Peripheral",
|
|
filterHardware : filterHardware,
|
|
config: config,
|
|
templates: {
|
|
boardc : "/driverlib/aio/aio.board.c.xdt",
|
|
boardh : "/driverlib/aio/aio.board.h.xdt"
|
|
},
|
|
pinmuxRequirements : Pinmux.aioPinmuxRequirements
|
|
};
|
|
|
|
if (aioModule.maxInstances <= 0)
|
|
{
|
|
delete aioModule.pinmuxRequirements;
|
|
}
|
|
|
|
exports = aioModule; |