{ | |
"schemaVersion": "0.2.4", | |
"contentVersion": "0.2.0", | |
"headerVersion": "0.2.0", | |
"device": { | |
"fe310": { | |
"displayName": "Freedom E310-G000", | |
"description": "The FE310-G000 is the first Freedom E300 SoC, and is the industry's first commercially available RISC-V SoC. The FE310-G000 is built around the E31 Core Complex instantiated in the Freedom E300 platform.", | |
"supplier": { | |
"name": "sifive", | |
"id": "1", | |
"displayName": "SiFive", | |
"fullName": "SiFive, Inc.", | |
"contact": "info@sifive.com" | |
}, | |
"busWidth": "32", | |
"resetMask": "all", | |
"resetValue": "0x00000000", | |
"access": "rw", | |
"headerGuardPrefix": "SIFIVE_DEVICES_FE310_", | |
"headerTypePrefix": "sifive_fe310_", | |
"headerInterruptPrefix": "sifive_fe310_interrupt_global_", | |
"headerInterruptEnumPrefix": "riscv_interrupts_global_", | |
"revision": "r0p0", | |
"numInterrupts": "51", | |
"priorityBits": "3", | |
"regWidth": "32", | |
"cores": { | |
"e31": { | |
"harts": "1", | |
"isa": "RV32IMAC", | |
"isaVersion": "2.2", | |
"mpu": "pmp", | |
"mmu": "none", | |
"localInterrupts": { | |
"machine_software": { | |
"description": "Machine Software Interrupt", | |
"value": "3" | |
}, | |
"machine_timer": { | |
"description": "Machine Timer Interrupt", | |
"value": "7" | |
}, | |
"machine_ext": { | |
"description": "Machine External Interrupt", | |
"value": "11" | |
} | |
}, | |
"numLocalInterrupts": "0" | |
} | |
}, | |
"peripherals": { | |
"clint": { | |
"description": "Core Complex Local Interruptor (CLINT) Peripheral", | |
"baseAddress": "0x02000000", | |
"size": "0x10000", | |
"registers": { | |
"msip": { | |
"description": "MSIP (Machine-mode Software Interrupts) Register per Hart", | |
"addressOffset": "0x0000", | |
"arraySize": "1" | |
} | |
}, | |
"clusters": { | |
"mtimecmp": { | |
"description": "Machine Time Compare Registers per Hart", | |
"addressOffset": "0x4000", | |
"arraySize": "1", | |
"registers": { | |
"low": { | |
"description": "Machine Compare Register Low", | |
"addressOffset": "0x0000" | |
}, | |
"high": { | |
"description": "Machine Compare Register High", | |
"addressOffset": "0x0004" | |
} | |
} | |
}, | |
"mtime": { | |
"description": "Machine Time Register", | |
"addressOffset": "0xBFF8", | |
"access": "r", | |
"registers": { | |
"low": { | |
"description": "Machine Time Register Low", | |
"addressOffset": "0x0000" | |
}, | |
"high": { | |
"description": "Machine Time Register High", | |
"addressOffset": "0x0004" | |
} | |
} | |
} | |
} | |
}, | |
"plic": { | |
"description": "Platform-Level Interrupt Controller (PLIC) Peripheral", | |
"baseAddress": "0x0C000000", | |
"size": "0x4000000", | |
"registers": { | |
"priorities": { | |
"arraySize": "52", | |
"description": "Interrupt Priorities Registers; 0 is reserved.", | |
"addressOffset": "0x0000", | |
"fields": { | |
"value": { | |
"description": "The priority for a given global interrupt", | |
"bitOffset": "0", | |
"bitWidth": "3", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
} | |
} | |
}, | |
"pendings": { | |
"arraySize": "2", | |
"description": "Interrupt Pending Bits Registers", | |
"addressOffset": "0x1000", | |
"access": "r" | |
} | |
}, | |
"clusters": { | |
"enablestarget0": { | |
"description": "Hart 0 Interrupt Enable Bits", | |
"addressOffset": "0x00002000", | |
"clusters": { | |
"m": { | |
"addressOffset": "0x0000", | |
"description": "Hart 0 M-mode Interrupt Enable Bits", | |
"registers": { | |
"enables": { | |
"arraySize": "2", | |
"description": "Interrupt Enable Bits Registers", | |
"addressOffset": "0x0000" | |
} | |
} | |
} | |
} | |
}, | |
"target0": { | |
"description": "Hart 0 Interrupt Thresholds", | |
"addressOffset": "0x00200000", | |
"clusters": { | |
"m": { | |
"addressOffset": "0x0000", | |
"description": "Hart 0 M-Mode Interrupt Threshold", | |
"registers": { | |
"threshold": { | |
"description": "The Priority Threshold Register", | |
"addressOffset": "0x0000", | |
"fields": { | |
"value": { | |
"description": "The priority threshold value", | |
"bitOffset": "0", | |
"bitWidth": "3", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
} | |
} | |
}, | |
"claimcomplete": { | |
"description": "The Interrupt Claim/Completion Register", | |
"addressOffset": "0x0004" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"wdog": { | |
"description": "Watchdog Timer (WDT), part of Always-On Domain", | |
"baseAddress": "0x10000000", | |
"size": "0x0040", | |
"resetMask": "none", | |
"registers": { | |
"cfg": { | |
"description": "Watchdog Configuration Register", | |
"addressOffset": "0x0000", | |
"fields": { | |
"scale": { | |
"description": "Watchdog counter scale", | |
"bitOffset": "0", | |
"bitWidth": "4" | |
}, | |
"rsten": { | |
"description": "Watchdog full reset enable", | |
"bitOffset": "8", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"zerocmp": { | |
"description": "Watchdog zero on comparator", | |
"bitOffset": "9", | |
"bitWidth": "1" | |
}, | |
"enalways": { | |
"description": "Watchdog enable counter always", | |
"bitOffset": "12", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"encoreawake": { | |
"description": "Watchdog counter only when awake", | |
"bitOffset": "13", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"cmpip": { | |
"description": "Watchdog interrupt pending", | |
"bitOffset": "28", | |
"bitWidth": "1" | |
} | |
} | |
}, | |
"count": { | |
"description": "Watchdog Count Register", | |
"addressOffset": "0x0008" | |
}, | |
"scale": { | |
"description": "Watchdog Scale Register", | |
"addressOffset": "0x0010", | |
"fields": { | |
"value": { | |
"description": "Watchdog scale value", | |
"bitOffset": "0", | |
"bitWidth": "16" | |
} | |
} | |
}, | |
"feed": { | |
"description": "Watchdog Feed Address Register", | |
"addressOffset": "0x0018" | |
}, | |
"key": { | |
"description": "Watchdog Key Register", | |
"addressOffset": "0x001C" | |
}, | |
"cmp": { | |
"description": "Watchdog Compare Register", | |
"addressOffset": "0x0020", | |
"fields": { | |
"value": { | |
"description": "Watchdog compare value", | |
"bitOffset": "0", | |
"bitWidth": "16" | |
} | |
} | |
} | |
}, | |
"interrupts": { | |
"wdogcmp": { | |
"description": "Watchdog Compare Interrupt", | |
"value": "1" | |
} | |
} | |
}, | |
"rtc": { | |
"description": "Real-Time Clock (RTC), part of Always-On Domain", | |
"baseAddress": "0x10000040", | |
"size": "0x0030", | |
"resetMask": "none", | |
"registers": { | |
"cfg": { | |
"description": "RTC Configuration Register", | |
"addressOffset": "0x0000", | |
"fields": { | |
"scale": { | |
"description": "RTC clock rate scale", | |
"bitOffset": "0", | |
"bitWidth": "4" | |
}, | |
"enalways": { | |
"description": "RTC counter enable", | |
"bitOffset": "12", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"cmpip": { | |
"description": "RTC comparator interrupt pending", | |
"bitOffset": "28", | |
"bitWidth": "1", | |
"access": "r" | |
} | |
} | |
}, | |
"low": { | |
"description": "RTC Counter Register Low", | |
"addressOffset": "0x0008" | |
}, | |
"high": { | |
"description": "RTC Counter Register High", | |
"addressOffset": "0x000C", | |
"fields": { | |
"value": { | |
"description": "RTC counter register, high bits", | |
"bitOffset": "0", | |
"bitWidth": "16" | |
} | |
} | |
}, | |
"scale": { | |
"description": "RTC Scale Register", | |
"addressOffset": "0x0010" | |
}, | |
"cmp": { | |
"description": "RTC Compare Register", | |
"addressOffset": "0x0020" | |
} | |
}, | |
"interrupts": { | |
"rtccmp": { | |
"description": "RTC Compare Interrupt", | |
"value": "2" | |
} | |
} | |
}, | |
"pmu": { | |
"description": "Power-Management Unit (PMU), part of Always-On Domain", | |
"baseAddress": "0x10000100", | |
"size": "0x0050", | |
"resetMask": "none", | |
"registers": { | |
"wakeupi": { | |
"description": "Wakeup program instruction Registers", | |
"addressOffset": "0x0000", | |
"arraySize": "8" | |
}, | |
"sleepi": { | |
"description": "Sleep Program Instruction Registers", | |
"addressOffset": "0x0020", | |
"arraySize": "8" | |
}, | |
"ie": { | |
"description": "PMU Interrupt Enables Register", | |
"addressOffset": "0x0040", | |
"fields": { | |
"rtc": { | |
"description": "RTC Comparator active", | |
"bitOffset": "1", | |
"bitWidth": "1" | |
}, | |
"dwakeup": { | |
"description": "dwakeup_n pin active", | |
"bitOffset": "2", | |
"bitWidth": "1" | |
} | |
} | |
}, | |
"cause": { | |
"description": "PMU Wakeup Cause Register", | |
"addressOffset": "0x0044", | |
"fields": { | |
"wakeupcause": { | |
"description": "Wakeup cause", | |
"bitOffset": "0", | |
"bitWidth": "2", | |
"access": "r", | |
"enumerations": { | |
"wakeupcause-enum": { | |
"description": "Wakeup Cause Values Enumeration", | |
"values": { | |
"0": { | |
"displayName": "reset", | |
"description": "Reset Wakeup" | |
}, | |
"1": { | |
"displayName": "rtc", | |
"description": "RTC Wakeup" | |
}, | |
"2": { | |
"displayName": "dwakeup", | |
"description": "Digital input Wakeup" | |
}, | |
"*": { | |
"displayName": "undefined" | |
} | |
} | |
} | |
} | |
}, | |
"resetcause": { | |
"description": "Reset cause", | |
"bitOffset": "8", | |
"bitWidth": "2", | |
"access": "r", | |
"enumerations": { | |
"resetcause-enum": { | |
"description": "Reset Cause Values Enumeration", | |
"values": { | |
"1": { | |
"displayName": "external", | |
"description": "External reset" | |
}, | |
"2": { | |
"displayName": "watchdog", | |
"description": "Watchdog timer reset" | |
}, | |
"*": { | |
"displayName": "undefined" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"sleep": { | |
"description": "PMU Initiate Sleep Sequence Register", | |
"addressOffset": "0x0048" | |
}, | |
"key": { | |
"description": "PMU Key Register", | |
"addressOffset": "0x004C" | |
} | |
} | |
}, | |
"aon": { | |
"description": "Always-On (AON) Domain", | |
"baseAddress": "0x10000070", | |
"size": "0x0090", | |
"resetMask": "none", | |
"registers": { | |
"lfrosccfg": { | |
"description": "Internal Programmable Low-Frequency Ring Oscillator Register", | |
"addressOffset": "0x0000", | |
"fields": { | |
"div": { | |
"description": "LFROSC divider", | |
"bitOffset": "0", | |
"bitWidth": "6", | |
"resetMask": "all", | |
"resetValue": "0x04" | |
}, | |
"trim": { | |
"description": "LFROSC trim value", | |
"bitOffset": "16", | |
"bitWidth": "5", | |
"resetMask": "all", | |
"resetValue": "0x10" | |
}, | |
"en": { | |
"description": "LFROSC enable", | |
"bitOffset": "30", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x1" | |
}, | |
"rdy": { | |
"description": "LFROSC ready", | |
"bitOffset": "31", | |
"bitWidth": "1", | |
"access": "r" | |
} | |
} | |
}, | |
"backup": { | |
"description": "Backup Registers", | |
"addressOffset": "0x0010", | |
"arraySize": "32" | |
} | |
} | |
}, | |
"prci": { | |
"description": "Power, Reset, Clock, Interrupt (PRCI) Peripheral", | |
"baseAddress": "0x10008000", | |
"size": "0x8000", | |
"registers": { | |
"hfrosccfg": { | |
"description": "Internal Trimmable Programmable 72 MHz Oscillator Register", | |
"addressOffset": "0x0000", | |
"fields": { | |
"div": { | |
"description": "HFROSC divider", | |
"bitOffset": "0", | |
"bitWidth": "6", | |
"resetMask": "all", | |
"resetValue": "0x04" | |
}, | |
"trim": { | |
"description": "HFROSC trim value", | |
"bitOffset": "16", | |
"bitWidth": "5", | |
"resetMask": "all", | |
"resetValue": "0x10" | |
}, | |
"en": { | |
"description": "HFROSC enable", | |
"bitOffset": "30", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x1" | |
}, | |
"rdy": { | |
"description": "HFROSC ready", | |
"bitOffset": "31", | |
"bitWidth": "1", | |
"access": "r" | |
} | |
} | |
}, | |
"hfxosccfg": { | |
"description": "External 16 MHz Crystal Oscillator Register", | |
"addressOffset": "0x0004", | |
"fields": { | |
"en": { | |
"description": "HFXOSC enable", | |
"bitOffset": "30", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x1" | |
}, | |
"rdy": { | |
"description": "HFXOSC ready", | |
"bitOffset": "31", | |
"bitWidth": "1", | |
"access": "r" | |
} | |
} | |
}, | |
"pllcfg": { | |
"description": "Internal High-Frequency PLL (HFPLL) Register", | |
"addressOffset": "0x0008", | |
"fields": { | |
"r": { | |
"description": "PLL R input divider value", | |
"bitOffset": "0", | |
"bitWidth": "3", | |
"resetMask": "all", | |
"resetValue": "0x1", | |
"enumerations": { | |
"pllr-enum": { | |
"description": "Reference Clock R Divide Ratio Enumeration", | |
"values": { | |
"0": { | |
"displayName": "/1", | |
"headerName": "div1", | |
"description": "Unchanged" | |
}, | |
"1": { | |
"displayName": "/2", | |
"headerName": "div2", | |
"description": "Divided by 2" | |
}, | |
"2": { | |
"displayName": "/3", | |
"headerName": "div3", | |
"description": "Divided by 3" | |
}, | |
"3": { | |
"displayName": "/4", | |
"headerName": "div4", | |
"description": "Divided by 4" | |
} | |
} | |
} | |
} | |
}, | |
"f": { | |
"description": "PLL F multiplier value", | |
"bitOffset": "4", | |
"bitWidth": "6", | |
"resetMask": "all", | |
"resetValue": "0x1F", | |
"enumerations": { | |
"pllf-enum": { | |
"description": "Reference Clock F Multiplier Ratio Enumeration", | |
"values": { | |
"0": { | |
"displayName": "*2", | |
"headerName": "mul2", | |
"description": "Multiplied by 2" | |
}, | |
"1": { | |
"displayName": "*4", | |
"headerName": "mul4", | |
"description": "Multiplied by 4" | |
}, | |
"2": { | |
"displayName": "*6", | |
"headerName": "mul6", | |
"description": "Multiplied by 6" | |
}, | |
"3": { | |
"displayName": "*8", | |
"headerName": "mul8", | |
"description": "Multiplied by 8" | |
}, | |
"4": { | |
"displayName": "*10", | |
"headerName": "mul10", | |
"description": "Multiplied by 10" | |
}, | |
"5": { | |
"displayName": "*12", | |
"headerName": "mul12", | |
"description": "Multiplied by 12" | |
}, | |
"6": { | |
"displayName": "*14", | |
"headerName": "mul14", | |
"description": "Multiplied by 14" | |
}, | |
"7": { | |
"displayName": "*16", | |
"headerName": "mul16", | |
"description": "Multiplied by 16" | |
}, | |
"8": { | |
"displayName": "*18", | |
"headerName": "mul18", | |
"description": "Multiplied by 18" | |
}, | |
"9": { | |
"displayName": "*20", | |
"headerName": "mul20", | |
"description": "Multiplied by 20" | |
}, | |
"10": { | |
"displayName": "*22", | |
"headerName": "mul22", | |
"description": "Multiplied by 22" | |
}, | |
"11": { | |
"displayName": "*24", | |
"headerName": "mul24", | |
"description": "Multiplied by 24" | |
}, | |
"12": { | |
"displayName": "*26", | |
"headerName": "mul26", | |
"description": "Multiplied by 26" | |
}, | |
"13": { | |
"displayName": "*28", | |
"headerName": "mul28", | |
"description": "Multiplied by 28" | |
}, | |
"14": { | |
"displayName": "*30", | |
"headerName": "mul30", | |
"description": "Multiplied by 30" | |
}, | |
"15": { | |
"displayName": "*32", | |
"headerName": "mul32", | |
"description": "Multiplied by 32" | |
}, | |
"16": { | |
"displayName": "*34", | |
"headerName": "mul34", | |
"description": "Multiplied by 34" | |
}, | |
"17": { | |
"displayName": "*36", | |
"headerName": "mul36", | |
"description": "Multiplied by 36" | |
}, | |
"18": { | |
"displayName": "*38", | |
"headerName": "mul38", | |
"description": "Multiplied by 38" | |
}, | |
"19": { | |
"displayName": "*40", | |
"headerName": "mul40", | |
"description": "Multiplied by 40" | |
}, | |
"20": { | |
"displayName": "*42", | |
"headerName": "mul42", | |
"description": "Multiplied by 42" | |
}, | |
"21": { | |
"displayName": "*44", | |
"headerName": "mul44", | |
"description": "Multiplied by 44" | |
}, | |
"22": { | |
"displayName": "*46", | |
"headerName": "mul46", | |
"description": "Multiplied by 46" | |
}, | |
"23": { | |
"displayName": "*48", | |
"headerName": "mul48", | |
"description": "Multiplied by 48" | |
}, | |
"24": { | |
"displayName": "*50", | |
"headerName": "mul50", | |
"description": "Multiplied by 50" | |
}, | |
"25": { | |
"displayName": "*52", | |
"headerName": "mul52", | |
"description": "Multiplied by 52" | |
}, | |
"26": { | |
"displayName": "*54", | |
"headerName": "mul54", | |
"description": "Multiplied by 54" | |
}, | |
"27": { | |
"displayName": "*56", | |
"headerName": "mul56", | |
"description": "Multiplied by 56" | |
}, | |
"28": { | |
"displayName": "*58", | |
"headerName": "mul58", | |
"description": "Multiplied by 58" | |
}, | |
"29": { | |
"displayName": "*60", | |
"headerName": "mul60", | |
"description": "Multiplied by 60" | |
}, | |
"30": { | |
"displayName": "*62", | |
"headerName": "mul62", | |
"description": "Multiplied by 62" | |
}, | |
"31": { | |
"displayName": "*64", | |
"headerName": "mul64", | |
"description": "Multiplied by 64" | |
}, | |
"32": { | |
"displayName": "*66", | |
"headerName": "mul66", | |
"description": "Multiplied by 66" | |
}, | |
"33": { | |
"displayName": "*68", | |
"headerName": "mul68", | |
"description": "Multiplied by 68" | |
}, | |
"34": { | |
"displayName": "*70", | |
"headerName": "mul70", | |
"description": "Multiplied by 70" | |
}, | |
"35": { | |
"displayName": "*72", | |
"headerName": "mul72", | |
"description": "Multiplied by 72" | |
}, | |
"36": { | |
"displayName": "*74", | |
"headerName": "mul74", | |
"description": "Multiplied by 74" | |
}, | |
"37": { | |
"displayName": "*76", | |
"headerName": "mul76", | |
"description": "Multiplied by 76" | |
}, | |
"38": { | |
"displayName": "*78", | |
"headerName": "mul78", | |
"description": "Multiplied by 78" | |
}, | |
"39": { | |
"displayName": "*80", | |
"headerName": "mul80", | |
"description": "Multiplied by 80" | |
}, | |
"40": { | |
"displayName": "*82", | |
"headerName": "mul82", | |
"description": "Multiplied by 82" | |
}, | |
"41": { | |
"displayName": "*84", | |
"headerName": "mul84", | |
"description": "Multiplied by 84" | |
}, | |
"42": { | |
"displayName": "*86", | |
"headerName": "mul86", | |
"description": "Multiplied by 86" | |
}, | |
"43": { | |
"displayName": "*88", | |
"headerName": "mul88", | |
"description": "Multiplied by 88" | |
}, | |
"44": { | |
"displayName": "*90", | |
"headerName": "mul90", | |
"description": "Multiplied by 90" | |
}, | |
"45": { | |
"displayName": "*92", | |
"headerName": "mul92", | |
"description": "Multiplied by 92" | |
}, | |
"46": { | |
"displayName": "*94", | |
"headerName": "mul94", | |
"description": "Multiplied by 94" | |
}, | |
"47": { | |
"displayName": "*96", | |
"headerName": "mul96", | |
"description": "Multiplied by 96" | |
}, | |
"48": { | |
"displayName": "*98", | |
"headerName": "mul98", | |
"description": "Multiplied by 98" | |
}, | |
"49": { | |
"displayName": "*100", | |
"headerName": "mul100", | |
"description": "Multiplied by 100" | |
}, | |
"50": { | |
"displayName": "*102", | |
"headerName": "mul102", | |
"description": "Multiplied by 102" | |
}, | |
"51": { | |
"displayName": "*104", | |
"headerName": "mul104", | |
"description": "Multiplied by 104" | |
}, | |
"52": { | |
"displayName": "*106", | |
"headerName": "mul106", | |
"description": "Multiplied by 106" | |
}, | |
"53": { | |
"displayName": "*108", | |
"headerName": "mul108", | |
"description": "Multiplied by 108" | |
}, | |
"54": { | |
"displayName": "*110", | |
"headerName": "mul110", | |
"description": "Multiplied by 110" | |
}, | |
"55": { | |
"displayName": "*112", | |
"headerName": "mul112", | |
"description": "Multiplied by 112" | |
}, | |
"56": { | |
"displayName": "*114", | |
"headerName": "mul114", | |
"description": "Multiplied by 114" | |
}, | |
"57": { | |
"displayName": "*116", | |
"headerName": "mul116", | |
"description": "Multiplied by 116" | |
}, | |
"58": { | |
"displayName": "*118", | |
"headerName": "mul118", | |
"description": "Multiplied by 118" | |
}, | |
"59": { | |
"displayName": "*120", | |
"headerName": "mul120", | |
"description": "Multiplied by 120" | |
}, | |
"60": { | |
"displayName": "*122", | |
"headerName": "mul122", | |
"description": "Multiplied by 122" | |
}, | |
"61": { | |
"displayName": "*124", | |
"headerName": "mul124", | |
"description": "Multiplied by 124" | |
}, | |
"62": { | |
"displayName": "*126", | |
"headerName": "mul126", | |
"description": "Multiplied by 126" | |
}, | |
"63": { | |
"displayName": "*128", | |
"headerName": "mul128", | |
"description": "Multiplied by 128" | |
} | |
} | |
} | |
} | |
}, | |
"q": { | |
"description": "PLL Q output divider value", | |
"bitOffset": "10", | |
"bitWidth": "2", | |
"resetMask": "all", | |
"resetValue": "0x3", | |
"enumerations": { | |
"pllq-enum": { | |
"description": "Reference Clock Q Divide Ratio Enumeration", | |
"values": { | |
"*": { | |
"displayName": "n/a", | |
"description": "Not supported" | |
}, | |
"1": { | |
"displayName": "/2", | |
"headerName": "div2", | |
"description": "Divided by 2" | |
}, | |
"2": { | |
"displayName": "/4", | |
"headerName": "div4", | |
"description": "Divided by 4" | |
}, | |
"3": { | |
"displayName": "/8", | |
"headerName": "div8", | |
"description": "Divided by 8" | |
} | |
} | |
} | |
} | |
}, | |
"sel": { | |
"description": "PLL select", | |
"bitOffset": "16", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"refsel": { | |
"description": "PLL reference select", | |
"bitOffset": "17", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x1" | |
}, | |
"bypass": { | |
"description": "PLL bypass", | |
"bitOffset": "18", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x1" | |
}, | |
"lock": { | |
"description": "PLL lock indicator", | |
"bitOffset": "31", | |
"bitWidth": "1", | |
"access": "r" | |
} | |
} | |
}, | |
"plloutdiv": { | |
"description": "PLL Output Divider", | |
"addressOffset": "0x000C" | |
} | |
} | |
}, | |
"otp": { | |
"description": "One-Time Programmable Memory (OTP) Peripheral", | |
"baseAddress": "0x10010000", | |
"size": "0x1000", | |
"registers": { | |
"lock": { | |
"description": "Programmed-I/O Lock Register", | |
"addressOffset": "0x0000" | |
}, | |
"ck": { | |
"description": "Device Clock Signal Register", | |
"addressOffset": "0x0004" | |
}, | |
"oe": { | |
"description": "Device Output-Enable Signal Register", | |
"addressOffset": "0x0008" | |
}, | |
"sel": { | |
"description": "Device Chip-Select Signal Register", | |
"addressOffset": "0x000C" | |
}, | |
"we": { | |
"description": "Device Write-Enable Signal Register", | |
"addressOffset": "0x0010" | |
}, | |
"mr": { | |
"description": "Device Mode Register", | |
"addressOffset": "0x0014" | |
}, | |
"mrr": { | |
"description": "Read-Voltage Regulator Control Register", | |
"addressOffset": "0x0018" | |
}, | |
"mpp": { | |
"description": "Write-Voltage Charge Pump Control Register", | |
"addressOffset": "0x001C" | |
}, | |
"vrren": { | |
"description": "Read-Voltage Enable Register", | |
"addressOffset": "0x0020" | |
}, | |
"vppen": { | |
"description": "Write-Voltage Enable Register", | |
"addressOffset": "0x0024" | |
}, | |
"a": { | |
"description": "Device Address Register", | |
"addressOffset": "0x0028" | |
}, | |
"d": { | |
"description": "Device Data Input Register", | |
"addressOffset": "0x002C" | |
}, | |
"q": { | |
"description": "Device Data Output Register", | |
"addressOffset": "0x0030" | |
}, | |
"rsctrl": { | |
"description": "Read Sequencer Control Register", | |
"addressOffset": "0x0034", | |
"fields": { | |
"scale": { | |
"description": "OTP timescale", | |
"bitOffset": "0", | |
"bitWidth": "2", | |
"resetMask": "all", | |
"resetValue": "0x1" | |
}, | |
"tas": { | |
"description": "Address setup time", | |
"bitOffset": "3", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"trp": { | |
"description": "Read pulse time", | |
"bitOffset": "4", | |
"bitWidth": "1" | |
}, | |
"tracc": { | |
"description": "Read access time", | |
"bitOffset": "5", | |
"bitWidth": "1" | |
} | |
} | |
} | |
} | |
}, | |
"gpio": { | |
"description": "General Purpose Input/Output Controller (GPIO) Peripheral", | |
"baseAddress": "0x10012000", | |
"size": "0x1000", | |
"registers": { | |
"value": { | |
"description": "Pin Value Register", | |
"addressOffset": "0x000", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "Value Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"inputen": { | |
"description": "Pin Input Enable Register", | |
"addressOffset": "0x004", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "Pin Input Enable Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"outputen": { | |
"description": "Pin Output Enable Register", | |
"addressOffset": "0x008", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "Pin Output Enable Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"port": { | |
"description": "Output Port Value Register", | |
"addressOffset": "0x00C", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "Output Port Value Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"pue": { | |
"description": "Internal Pull-up Enable Register", | |
"addressOffset": "0x010", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "Internal Pull-up Enable Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"ds": { | |
"description": "Pin Drive Strength Register", | |
"addressOffset": "0x014", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "Pin Drive Strength Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"riseie": { | |
"description": "Rise Interrupt Enable Register", | |
"addressOffset": "0x018", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "Rise Interrupt Enable Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"riseip": { | |
"description": "Rise Interrupt Pending Register", | |
"addressOffset": "0x01C", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "Rise Interrupt Pending Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"fallie": { | |
"description": "Fall Interrupt Enable Register", | |
"addressOffset": "0x020", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "Fall Interrupt Enable Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"fallip": { | |
"description": "Fall Interrupt Pending Register", | |
"addressOffset": "0x024", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "Fall Interrupt Pending Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"highie": { | |
"description": "High Interrupt Enable Register", | |
"addressOffset": "0x028", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "High Interrupt Enable Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"highip": { | |
"description": "High Interrupt Pending Register", | |
"addressOffset": "0x02C", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "High Interrupt Pending Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"lowie": { | |
"description": "Low Interrupt Enable Register", | |
"addressOffset": "0x030", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "Low Interrupt Enable Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"lowip": { | |
"description": "Low Interrupt Pending Register", | |
"addressOffset": "0x034", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "Low Interrupt Pending Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"iofen": { | |
"description": "HW I/O Function Enable Register", | |
"addressOffset": "0x038", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "HW I/O Function Enable Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"iofsel": { | |
"description": "HW I/O Function Select Register", | |
"addressOffset": "0x03C", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "HW I/O Function Select Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
}, | |
"outxor": { | |
"description": "Output XOR (invert) Register", | |
"addressOffset": "0x040", | |
"fields": { | |
"bit": { | |
"repeatGenerator": "0-31", | |
"description": "Output XOR Bit Field", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"headerName": "" | |
} | |
} | |
} | |
}, | |
"interrupts": { | |
"gpio0": { | |
"description": "GPIO0 Interrupt", | |
"value": "8" | |
}, | |
"gpio1": { | |
"description": "GPIO1 Interrupt", | |
"value": "9" | |
}, | |
"gpio2": { | |
"description": "GPIO2 Interrupt", | |
"value": "10" | |
}, | |
"gpio3": { | |
"description": "GPIO3 Interrupt", | |
"value": "11" | |
}, | |
"gpio4": { | |
"description": "GPIO4 Interrupt", | |
"value": "12" | |
}, | |
"gpio5": { | |
"description": "GPIO5 Interrupt", | |
"value": "13" | |
}, | |
"gpio6": { | |
"description": "GPIO6 Interrupt", | |
"value": "14" | |
}, | |
"gpio7": { | |
"description": "GPIO7 Interrupt", | |
"value": "15" | |
}, | |
"gpio8": { | |
"description": "GPIO8 Interrupt", | |
"value": "16" | |
}, | |
"gpio9": { | |
"description": "GPIO9 Interrupt", | |
"value": "17" | |
}, | |
"gpio10": { | |
"description": "GPIO10 Interrupt", | |
"value": "18" | |
}, | |
"gpio11": { | |
"description": "GPIO11 Interrupt", | |
"value": "19" | |
}, | |
"gpio12": { | |
"description": "GPIO12 Interrupt", | |
"value": "20" | |
}, | |
"gpio13": { | |
"description": "GPIO13 Interrupt", | |
"value": "21" | |
}, | |
"gpio14": { | |
"description": "GPIO14 Interrupt", | |
"value": "22" | |
}, | |
"gpio15": { | |
"description": "GPIO15 Interrupt", | |
"value": "23" | |
}, | |
"gpio16": { | |
"description": "GPIO16 Interrupt", | |
"value": "24" | |
}, | |
"gpio17": { | |
"description": "GPIO17 Interrupt", | |
"value": "25" | |
}, | |
"gpio18": { | |
"description": "GPIO18 Interrupt", | |
"value": "26" | |
}, | |
"gpio19": { | |
"description": "GPIO19 Interrupt", | |
"value": "27" | |
}, | |
"gpio20": { | |
"description": "GPIO20 Interrupt", | |
"value": "28" | |
}, | |
"gpio21": { | |
"description": "GPIO21 Interrupt", | |
"value": "29" | |
}, | |
"gpio22": { | |
"description": "GPIO22 Interrupt", | |
"value": "30" | |
}, | |
"gpio23": { | |
"description": "GPIO23 Interrupt", | |
"value": "31" | |
}, | |
"gpio24": { | |
"description": "GPIO24 Interrupt", | |
"value": "32" | |
}, | |
"gpio25": { | |
"description": "GPIO25 Interrupt", | |
"value": "33" | |
}, | |
"gpio26": { | |
"description": "GPIO26 Interrupt", | |
"value": "34" | |
}, | |
"gpio27": { | |
"description": "GPIO27 Interrupt", | |
"value": "35" | |
}, | |
"gpio28": { | |
"description": "GPIO28 Interrupt", | |
"value": "36" | |
}, | |
"gpio29": { | |
"description": "GPIO29 Interrupt", | |
"value": "37" | |
}, | |
"gpio30": { | |
"description": "GPIO30 Interrupt", | |
"value": "38" | |
}, | |
"gpio31": { | |
"description": "GPIO31 Interrupt", | |
"value": "39" | |
} | |
} | |
}, | |
"uart0": { | |
"description": "Universal Asynchronous Receiver/Transmitter (UART) Peripheral", | |
"baseAddress": "0x10013000", | |
"size": "0x1000", | |
"resetMask": "none", | |
"groupName": "uart", | |
"registers": { | |
"txdata": { | |
"description": "Transmit Data Register", | |
"addressOffset": "0x000", | |
"fields": { | |
"data": { | |
"description": "Transmit data", | |
"bitOffset": "0", | |
"bitWidth": "8" | |
}, | |
"full": { | |
"description": "Transmit FIFO full", | |
"bitOffset": "31", | |
"bitWidth": "1" | |
} | |
} | |
}, | |
"rxdata": { | |
"description": "Receive Data Register", | |
"addressOffset": "0x004", | |
"resetMask": "none", | |
"fields": { | |
"data": { | |
"description": "Received data", | |
"bitOffset": "0", | |
"bitWidth": "8", | |
"access": "r" | |
}, | |
"empty": { | |
"description": "Receive FIFO empty", | |
"bitOffset": "31", | |
"bitWidth": "1" | |
} | |
} | |
}, | |
"txctrl": { | |
"description": "Transmit Control Register ", | |
"addressOffset": "0x008", | |
"fields": { | |
"txen": { | |
"description": "Transmit enable", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"nstop": { | |
"description": "Number of stop bits", | |
"bitOffset": "1", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"txcnt": { | |
"description": "Transmit watermark level", | |
"bitOffset": "16", | |
"bitWidth": "3", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
} | |
} | |
}, | |
"rxctrl": { | |
"description": "Receive Control Register", | |
"addressOffset": "0x00C", | |
"fields": { | |
"rxen": { | |
"description": "Receive enable", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"rxcnt": { | |
"description": "Receive watermark level", | |
"bitOffset": "16", | |
"bitWidth": "3", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
} | |
} | |
}, | |
"ie": { | |
"description": "Interrupt Enable Register", | |
"addressOffset": "0x010", | |
"fields": { | |
"txwm": { | |
"description": "Transmit watermark interrupt enable", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"rxwm": { | |
"description": "Receive watermark interrupt enable", | |
"bitOffset": "1", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
} | |
} | |
}, | |
"ip": { | |
"description": "Interrupt Pending Register", | |
"addressOffset": "0x014", | |
"access": "r", | |
"fields": { | |
"txwm": { | |
"description": "Transmit watermark interrupt pending", | |
"bitOffset": "0", | |
"bitWidth": "1" | |
}, | |
"rxwm": { | |
"description": "Receive watermark interrupt pending", | |
"bitOffset": "1", | |
"bitWidth": "1" | |
} | |
} | |
}, | |
"div": { | |
"description": "Baud Rate Divisor Register", | |
"addressOffset": "0x018", | |
"fields": { | |
"value": { | |
"description": "Baud rate divisor", | |
"bitOffset": "0", | |
"bitWidth": "16", | |
"resetMask": "all", | |
"resetValue": "0x0000FFFF" | |
} | |
} | |
} | |
}, | |
"interrupts": { | |
"uart0": { | |
"description": "UART0 Interrupt", | |
"value": "3" | |
} | |
} | |
}, | |
"spi0": { | |
"description": "Serial Peripheral Interface (SPI) Peripheral", | |
"baseAddress": "0x10014000", | |
"size": "0x1000", | |
"resetMask": "none", | |
"groupName": "spi", | |
"registers": { | |
"sckdiv": { | |
"description": "Serial clock divisor Register", | |
"addressOffset": "0x000", | |
"fields": { | |
"scale": { | |
"description": "Divisor for serial clock", | |
"bitOffset": "0", | |
"bitWidth": "12", | |
"resetMask": "all", | |
"resetValue": "0x003" | |
} | |
} | |
}, | |
"sckmode": { | |
"description": "Serial Clock Mode Register", | |
"addressOffset": "0x004", | |
"fields": { | |
"pha": { | |
"description": "Serial clock phase", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"pol": { | |
"description": "Serial clock polarity", | |
"bitOffset": "1", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
} | |
} | |
}, | |
"csid": { | |
"description": "Chip Select ID Register", | |
"addressOffset": "0x010", | |
"resetMask": "all", | |
"resetValue": "0x00000000" | |
}, | |
"csdef": { | |
"description": "Chip Select Default Register", | |
"addressOffset": "0x014", | |
"resetMask": "all", | |
"resetValue": "0x00000001" | |
}, | |
"csmode": { | |
"description": "Chip Select Mode Register", | |
"addressOffset": "0x018", | |
"fields": { | |
"mode": { | |
"description": "Chip select mode", | |
"bitOffset": "0", | |
"bitWidth": "2", | |
"resetMask": "all", | |
"resetValue": "0x0", | |
"enumerations": { | |
"csmode-enum": { | |
"description": "Chip Select Modes Enumeration", | |
"values": { | |
"0": { | |
"displayName": "auto", | |
"description": "Assert/de-assert CS at the beginning/end of each frame" | |
}, | |
"*": { | |
"displayName": "reserved" | |
}, | |
"2": { | |
"displayName": "hold", | |
"description": "Keep CS continuously asserted after the initial frame" | |
}, | |
"3": { | |
"displayName": "off", | |
"description": "Disable hardware control of the CS pin" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"delay0": { | |
"description": "Delay Control 0 Register", | |
"addressOffset": "0x028", | |
"fields": { | |
"cssck": { | |
"description": "CS to SCK Delay", | |
"bitOffset": "0", | |
"bitWidth": "8", | |
"resetMask": "all", | |
"resetValue": "0x01" | |
}, | |
"sckcs": { | |
"description": "SCK to CS Delay", | |
"bitOffset": "16", | |
"bitWidth": "8", | |
"resetMask": "all", | |
"resetValue": "0x01" | |
} | |
} | |
}, | |
"delay1": { | |
"description": "Delay Control 1 Register", | |
"addressOffset": "0x02C", | |
"fields": { | |
"intercs": { | |
"description": "Minimum CS inactive time", | |
"bitOffset": "0", | |
"bitWidth": "8", | |
"resetMask": "all", | |
"resetValue": "0x01" | |
}, | |
"interxfr": { | |
"description": "Maximum interframe delay", | |
"bitOffset": "16", | |
"bitWidth": "8", | |
"resetMask": "all", | |
"resetValue": "0x01" | |
} | |
} | |
}, | |
"fmt": { | |
"description": "Frame Format Register", | |
"addressOffset": "0x040", | |
"fields": { | |
"proto": { | |
"description": "SPI Protocol", | |
"bitOffset": "0", | |
"bitWidth": "2", | |
"resetMask": "all", | |
"resetValue": "0x0", | |
"enumerations": { | |
"proto-enum": { | |
"description": "SPI Protocol Enumeration", | |
"values": { | |
"0": { | |
"displayName": "single", | |
"description": "DQ0 (MOSI), DQ1 (MISO)" | |
}, | |
"1": { | |
"displayName": "dual", | |
"description": "DQ0, DQ1" | |
}, | |
"2": { | |
"displayName": "quad", | |
"description": "DQ0, DQ1, DQ2, DQ3" | |
}, | |
"*": { | |
"displayName": "reserved" | |
} | |
} | |
} | |
} | |
}, | |
"endian": { | |
"description": "SPI endianness", | |
"bitOffset": "2", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0", | |
"enumerations": { | |
"endian-enum": { | |
"description": "SPI Endianness Enumeration", | |
"values": { | |
"0": { | |
"displayName": "msb", | |
"description": "Transmit most-significant bit (MSB) first" | |
}, | |
"1": { | |
"displayName": "lsb", | |
"description": "Transmit least-significant bit (LSB) first" | |
} | |
} | |
} | |
} | |
}, | |
"dir": { | |
"description": "SPI I/O Direction", | |
"bitOffset": "3", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x1", | |
"enumerations": { | |
"dir-enum": { | |
"description": "SPI I/O Direction Enumeration", | |
"values": { | |
"0": { | |
"displayName": "rx", | |
"description": "For dual and quad protocols, the DQ pins are tri-stated. For the single protocol, the DQ0 pin is driven with the transmit data as normal." | |
}, | |
"1": { | |
"displayName": "tx", | |
"description": "The receive FIFO is not populated." | |
} | |
} | |
} | |
} | |
}, | |
"len": { | |
"description": "Number of bits per frame", | |
"bitOffset": "16", | |
"bitWidth": "4", | |
"resetMask": "all", | |
"resetValue": "0x8" | |
} | |
} | |
}, | |
"txdata": { | |
"description": "Tx FIFO Data Register", | |
"addressOffset": "0x048", | |
"fields": { | |
"data": { | |
"description": "Transmit data", | |
"bitOffset": "0", | |
"bitWidth": "8", | |
"resetMask": "all", | |
"resetValue": "0x00" | |
}, | |
"full": { | |
"description": "FIFO full flag", | |
"bitOffset": "31", | |
"bitWidth": "1", | |
"access": "r" | |
} | |
} | |
}, | |
"rxdata": { | |
"description": "Rx FIFO Data Register", | |
"addressOffset": "0x04C", | |
"resetMask": "none", | |
"access": "r", | |
"fields": { | |
"data": { | |
"description": "Received data", | |
"bitOffset": "0", | |
"bitWidth": "8" | |
}, | |
"empty": { | |
"description": "FIFO empty flag", | |
"bitOffset": "31", | |
"bitWidth": "1" | |
} | |
} | |
}, | |
"txmark": { | |
"description": "Tx FIFO Watermark Register", | |
"addressOffset": "0x050", | |
"fields": { | |
"value": { | |
"description": "Transmit watermark", | |
"bitOffset": "0", | |
"bitWidth": "3", | |
"resetMask": "all", | |
"resetValue": "0x1" | |
} | |
} | |
}, | |
"rxmark": { | |
"description": "Rx FIFO Watermark Register", | |
"addressOffset": "0x054", | |
"fields": { | |
"value": { | |
"description": "Receive watermark", | |
"bitOffset": "0", | |
"bitWidth": "3", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
} | |
} | |
}, | |
"fctrl": { | |
"description": "Flash Interface Control Register", | |
"addressOffset": "0x060", | |
"fields": { | |
"en": { | |
"description": "SPI Flash Mode Select", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x1" | |
} | |
} | |
}, | |
"ffmt": { | |
"description": "Flash Instruction Format Register", | |
"addressOffset": "0x064", | |
"fields": { | |
"cmden": { | |
"description": "Enable sending of command", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x1" | |
}, | |
"addrlen": { | |
"description": "Number of address bytes(0 to 4)", | |
"bitOffset": "1", | |
"bitWidth": "3", | |
"resetMask": "all", | |
"resetValue": "0x3" | |
}, | |
"padcnt": { | |
"description": "Number of dummy cycles", | |
"bitOffset": "4", | |
"bitWidth": "4", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"cmdproto": { | |
"description": "Protocol for transmitting command", | |
"bitOffset": "8", | |
"bitWidth": "2", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"addrproto": { | |
"description": "Protocol for transmitting address and padding", | |
"bitOffset": "10", | |
"bitWidth": "2", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"dataproto": { | |
"description": "Protocol for receiving data bytes", | |
"bitOffset": "12", | |
"bitWidth": "2", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"cmdcode": { | |
"description": "Value of command byte", | |
"bitOffset": "16", | |
"bitWidth": "8", | |
"resetMask": "all", | |
"resetValue": "0x03" | |
}, | |
"padcode": { | |
"description": "First 8 bits to transmit during dummy cycles", | |
"bitOffset": "24", | |
"bitWidth": "8", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
} | |
} | |
}, | |
"ie": { | |
"description": "Interrupt Enable Register", | |
"addressOffset": "0x070", | |
"fields": { | |
"txwm": { | |
"description": "Transmit watermark enable", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"access": "r", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"rxwm": { | |
"description": "Receive watermark enable", | |
"bitOffset": "1", | |
"bitWidth": "1", | |
"access": "r", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
} | |
} | |
}, | |
"ip": { | |
"description": "Interrupt Pending Register", | |
"addressOffset": "0x074", | |
"fields": { | |
"txwm": { | |
"description": "Transmit watermark pending", | |
"bitOffset": "0", | |
"bitWidth": "1", | |
"access": "r" | |
}, | |
"rxwm": { | |
"description": "Receive watermark pending", | |
"bitOffset": "1", | |
"bitWidth": "1", | |
"access": "r" | |
} | |
} | |
} | |
}, | |
"interrupts": { | |
"spi0": { | |
"description": "SPI0 Interrupt", | |
"value": "5" | |
} | |
} | |
}, | |
"pwm0": { | |
"description": "Pulse-Width Modulation (PWM) Peripheral", | |
"baseAddress": "0x10015000", | |
"size": "0x1000", | |
"resetMask": "none", | |
"registers": { | |
"cfg": { | |
"description": "Configuration Register", | |
"addressOffset": "0x000", | |
"fields": { | |
"scale": { | |
"description": "Counter scale", | |
"bitOffset": "0", | |
"bitWidth": "4" | |
}, | |
"sticky": { | |
"description": "Sticky - disallow clearing pwmcmpXip bits", | |
"bitOffset": "8", | |
"bitWidth": "1" | |
}, | |
"zerocmp": { | |
"description": "Zero - counter resets to zero after match", | |
"bitOffset": "9", | |
"bitWidth": "1" | |
}, | |
"deglitch": { | |
"description": "Deglitch - latch pwmcmpXip within same cycle", | |
"bitOffset": "10", | |
"bitWidth": "1" | |
}, | |
"enalways": { | |
"description": "Enable always - run continuously", | |
"bitOffset": "12", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"enoneshot": { | |
"description": "enable one shot - run one cycle", | |
"bitOffset": "13", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"cmp0center": { | |
"description": "PWM0 Compare Center", | |
"bitOffset": "16", | |
"bitWidth": "1" | |
}, | |
"cmp1center": { | |
"description": "PWM1 Compare Center", | |
"bitOffset": "17", | |
"bitWidth": "1" | |
}, | |
"cmp2center": { | |
"description": "PWM2 Compare Center", | |
"bitOffset": "18", | |
"bitWidth": "1" | |
}, | |
"cmp3center": { | |
"description": "PWM3 Compare Center", | |
"bitOffset": "19", | |
"bitWidth": "1" | |
}, | |
"cmp0gang": { | |
"description": "PWM0/PWM1 Compare Gang", | |
"bitOffset": "24", | |
"bitWidth": "1" | |
}, | |
"cmp1gang": { | |
"description": "PWM1/PWM2 Compare Gang", | |
"bitOffset": "25", | |
"bitWidth": "1" | |
}, | |
"cmp2gang": { | |
"description": "PWM2/PWM3 Compare Gang", | |
"bitOffset": "26", | |
"bitWidth": "1" | |
}, | |
"cmp3gang": { | |
"description": "PWM3/PWM0 Compare Gang", | |
"bitOffset": "27", | |
"bitWidth": "1" | |
}, | |
"cmp0ip": { | |
"description": "PWM0 Interrupt Pending", | |
"bitOffset": "28", | |
"bitWidth": "1" | |
}, | |
"cmp1ip": { | |
"description": "PWM1 Interrupt Pending", | |
"bitOffset": "29", | |
"bitWidth": "1" | |
}, | |
"cmp2ip": { | |
"description": "PWM2 Interrupt Pending", | |
"bitOffset": "30", | |
"bitWidth": "1" | |
}, | |
"cmp3ip": { | |
"description": "PWM3 Interrupt Pending", | |
"bitOffset": "31", | |
"bitWidth": "1" | |
} | |
} | |
}, | |
"count": { | |
"description": "Configuration Register", | |
"addressOffset": "0x008" | |
}, | |
"scale": { | |
"description": "Scale Register", | |
"addressOffset": "0x010", | |
"fields": { | |
"value": { | |
"description": "Compare value", | |
"bitOffset": "0", | |
"bitWidth": "8" | |
} | |
} | |
}, | |
"cmp": { | |
"arraySize": "4", | |
"description": "Compare Registers", | |
"addressOffset": "0x020", | |
"fields": { | |
"value": { | |
"description": "Compare value", | |
"bitOffset": "0", | |
"bitWidth": "8" | |
} | |
} | |
} | |
}, | |
"interrupts": { | |
"pwm0cmp0": { | |
"description": "PWM0 Compare 0 Interrupt", | |
"value": "40" | |
}, | |
"pwm0cmp1": { | |
"description": "PWM0 Compare 1 Interrupt", | |
"value": "41" | |
}, | |
"pwm0cmp2": { | |
"description": "PWM0 Compare 2 Interrupt", | |
"value": "42" | |
}, | |
"pwm0cmp3": { | |
"description": "PWM0 Compare 3 Interrupt", | |
"value": "43" | |
} | |
} | |
}, | |
"uart1": { | |
"baseAddress": "0x10023000", | |
"derivedFrom": "uart0", | |
"groupName": "uart", | |
"interrupts": { | |
"uart1": { | |
"description": "UART1 Interrupt", | |
"value": "4" | |
} | |
} | |
}, | |
"spi1": { | |
"baseAddress": "0x10024000", | |
"derivedFrom": "spi0", | |
"groupName": "spi", | |
"interrupts": { | |
"spi1": { | |
"description": "SPI1 Interrupt", | |
"value": "6" | |
} | |
} | |
}, | |
"pwm1": { | |
"description": "Pulse-Width Modulation (PWM) Peripheral", | |
"baseAddress": "0x10025000", | |
"groupName": "pwm", | |
"size": "0x1000", | |
"resetMask": "none", | |
"groupName": "pwm", | |
"registers": { | |
"cfg": { | |
"description": "Configuration Register", | |
"addressOffset": "0x000", | |
"fields": { | |
"scale": { | |
"description": "Counter scale", | |
"bitOffset": "0", | |
"bitWidth": "4" | |
}, | |
"sticky": { | |
"description": "Sticky - disallow clearing pwmcmpXip bits", | |
"bitOffset": "8", | |
"bitWidth": "1" | |
}, | |
"zerocmp": { | |
"description": "Zero - counter resets to zero after match", | |
"bitOffset": "9", | |
"bitWidth": "1" | |
}, | |
"deglitch": { | |
"description": "Deglitch - latch pwmcmpXip within same cycle", | |
"bitOffset": "10", | |
"bitWidth": "1" | |
}, | |
"enalways": { | |
"description": "Enable always - run continuously", | |
"bitOffset": "12", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"enoneshot": { | |
"description": "enable one shot - run one cycle", | |
"bitOffset": "13", | |
"bitWidth": "1", | |
"resetMask": "all", | |
"resetValue": "0x0" | |
}, | |
"cmp0center": { | |
"description": "PWM0 Compare Center", | |
"bitOffset": "16", | |
"bitWidth": "1" | |
}, | |
"cmp1center": { | |
"description": "PWM1 Compare Center", | |
"bitOffset": "17", | |
"bitWidth": "1" | |
}, | |
"cmp2center": { | |
"description": "PWM2 Compare Center", | |
"bitOffset": "18", | |
"bitWidth": "1" | |
}, | |
"cmp3center": { | |
"description": "PWM3 Compare Center", | |
"bitOffset": "19", | |
"bitWidth": "1" | |
}, | |
"cmp0gang": { | |
"description": "PWM0/PWM1 Compare Gang", | |
"bitOffset": "24", | |
"bitWidth": "1" | |
}, | |
"cmp1gang": { | |
"description": "PWM1/PWM2 Compare Gang", | |
"bitOffset": "25", | |
"bitWidth": "1" | |
}, | |
"cmp2gang": { | |
"description": "PWM2/PWM3 Compare Gang", | |
"bitOffset": "26", | |
"bitWidth": "1" | |
}, | |
"cmp3gang": { | |
"description": "PWM3/PWM0 Compare Gang", | |
"bitOffset": "27", | |
"bitWidth": "1" | |
}, | |
"cmp0ip": { | |
"description": "PWM0 Interrupt Pending", | |
"bitOffset": "28", | |
"bitWidth": "1" | |
}, | |
"cmp1ip": { | |
"description": "PWM1 Interrupt Pending", | |
"bitOffset": "29", | |
"bitWidth": "1" | |
}, | |
"cmp2ip": { | |
"description": "PWM2 Interrupt Pending", | |
"bitOffset": "30", | |
"bitWidth": "1" | |
}, | |
"cmp3ip": { | |
"description": "PWM3 Interrupt Pending", | |
"bitOffset": "31", | |
"bitWidth": "1" | |
} | |
} | |
}, | |
"count": { | |
"description": "Configuration Register", | |
"addressOffset": "0x008" | |
}, | |
"scale": { | |
"description": "Scale Register", | |
"addressOffset": "0x010", | |
"fields": { | |
"value": { | |
"description": "Compare value", | |
"bitOffset": "0", | |
"bitWidth": "16" | |
} | |
} | |
}, | |
"cmp": { | |
"arraySize": "4", | |
"description": "Compare Registers", | |
"addressOffset": "0x020", | |
"fields": { | |
"value": { | |
"description": "Compare value", | |
"bitOffset": "0", | |
"bitWidth": "16" | |
} | |
} | |
} | |
}, | |
"interrupts": { | |
"pwm1cmp0": { | |
"description": "PWM1 Compare 0 Interrupt", | |
"value": "44" | |
}, | |
"pwm1cmp1": { | |
"description": "PWM1 Compare 1 Interrupt", | |
"value": "45" | |
}, | |
"pwm1cmp2": { | |
"description": "PWM1 Compare 2 Interrupt", | |
"value": "46" | |
}, | |
"pwm1cmp3": { | |
"description": "PWM1 Compare 3 Interrupt", | |
"value": "47" | |
} | |
} | |
}, | |
"spi2": { | |
"baseAddress": "0x10034000", | |
"derivedFrom": "spi0", | |
"groupName": "spi", | |
"interrupts": { | |
"spi2": { | |
"description": "SPI2 Interrupt", | |
"value": "7" | |
} | |
} | |
}, | |
"pwm2": { | |
"baseAddress": "0x10035000", | |
"derivedFrom": "pwm1", | |
"groupName": "pwm", | |
"interrupts": { | |
"pwm2cmp0": { | |
"description": "PWM2 Compare 0 Interrupt", | |
"value": "48" | |
}, | |
"pwm2cmp1": { | |
"description": "PWM2 Compare 1 Interrupt", | |
"value": "49" | |
}, | |
"pwm2cmp2": { | |
"description": "PWM2 Compare 2 Interrupt", | |
"value": "50" | |
}, | |
"pwm2cmp3": { | |
"description": "PWM2 Compare 3 Interrupt", | |
"value": "51" | |
} | |
} | |
} | |
} | |
} | |
} | |
} |