{
    "zephyr,memory-region": "Memory.MappedMemory",
    "serial-flash": "Memory.MappedMemory",
    "nordic,mram": "Memory.MappedMemory",

    "aesc,uart": "UART.AescUART",

    "adi,max32-uart": {
        "adi,max32650evkit|adi,ad_swiot1l_sl|adi,max32650fthr": { "type": "UART.MAX32650_UART" },
        "_": "UART.MAX32655_UART"
    },

    "adi,max32-gpio": {
        "type": "GPIOPort.MAX32650_GPIO",
        "irq_mappings": ["IRQ", "WakeUpIRQ"]
    },

    "adi,max32-gcr": {
        "adi,max32650evkit|adi,ad_swiot1l_sl|adi,max32650fthr": { "type": "Miscellaneous.MAX32650_GCR" },
        "_": {
            "type": "Python.PythonPeripheral",
            "size": 0x400,
            "initable": false,
            "script": "request.Value = 0xFFFFFFFF if request.Offset == 0x8 else 0x0"
        }
    },

    "adi,max32-rv32": "CPU.RiscV32",

    "altr,jtag-uart": "UART.AlteraJTAG_UART",

    "ambiq,stimer": "Timers.AmbiqApollo4_SystemTimer",
    "ambiq,apollo4-pinctrl": "GPIOPort.AmbiqApollo4_GPIO",
    "ambiq,uart": "UART.PL011",

    "arm,arm926ej-s": { "type": "CPU.ARMv7A", "cpuType": "arm926ej-s" },
    "arm,arm1176jzf-s": { "type": "CPU.ARMv7A", "cpuType": "arm1176jzf-s" },

    "arm,armv7-timer": {
        "brcm,bcmbca": { "type": "Timers.ARM_GenericTimer", "frequency": 62500000, "defaultCounterFrequencyRegister": 62500000 },
        "st,stm32mp157": { "type": "Timers.ARM_GenericTimer", "frequency": 62500000, "defaultCounterFrequencyRegister": 62500000 },
        "st,stm32mp135": { "type": "Timers.ARM_GenericTimer", "frequency": 62500000, "defaultCounterFrequencyRegister": 62500000 },
        "_": { "type": "Timers.ARM_GenericTimer", "frequency": 62500000 } },
    "arm,armv8-timer": { "renesas,rzt2m_starter_kit": { "type": "Timers.ARM_GenericTimer", "frequency": 20000000 }, "brcm,bcm2711": { "type": "Timers.ARM_GenericTimer", "frequency": 1500000000 }, "_": { "type": "Timers.ARM_GenericTimer", "frequency": 62500000 } },
    "arm,armv8_timer": { "type": "Timers.ARM_GenericTimer", "frequency": 62500000 },

    "arm,armv8": { "type": "CPU.ARMv8A", "cpuType": "cortex-a55" },
    "brcm,brahma-b53": { "type": "CPU.ARMv8A", "cpuType": "cortex-a53" },
    "arm,cortex-a5": { "type": "CPU.ARMv7A", "cpuType": "cortex-a5" },
    "arm,cortex-a7": { "type": "CPU.ARMv7A", "cpuType": "cortex-a7" },
    "arm,cortex-a8": { "type": "CPU.ARMv7A", "cpuType": "cortex-a8" },
    "arm,cortex-a9": { "type": "CPU.ARMv7A", "cpuType": "cortex-a9" },
    "arm,cortex-a12": { "type": "CPU.ARMv7A", "cpuType": "cortex-a15" },
    "arm,cortex-a15": { "type": "CPU.ARMv7A", "cpuType": "cortex-a15" },
    "arm,cortex-a17": { "type": "CPU.ARMv7A", "cpuType": "cortex-a15" },
    "arm,cortex-a35": { "type": "CPU.ARMv8A", "cpuType": "cortex-a53" },
    "arm,cortex-a53": { "type": "CPU.ARMv8A", "cpuType": "cortex-a53" },
    "arm,cortex-a55": { "type": "CPU.ARMv8A", "cpuType": "cortex-a55" },
    "arm,cortex-a57": { "type": "CPU.ARMv8A", "cpuType": "cortex-a53" },
    "arm,cortex-a72": { "type": "CPU.ARMv8A", "cpuType": "cortex-a53" },
    "arm,cortex-a75": { "type": "CPU.ARMv8A", "cpuType": "cortex-a75" },
    "arm,cortex-a76": { "type": "CPU.ARMv8A", "cpuType": "cortex-a76" },
    "arm,cortex-a78": { "type": "CPU.ARMv8A", "cpuType": "cortex-a78" },
    "arm,cortex-virt": { "type": "CPU.ARMv8A", "cpuType": "cortex-a55" },
    "arm,cortex-r52": { "type": "CPU.ARMv8R", "cpuType": "cortex-r52" },
    "arm,cortex-m0":  { "type": "CPU.CortexM", "cpuType": "cortex-m0" },
    "arm,cortex-m0+": { "type": "CPU.CortexM", "cpuType": "cortex-m0+" },
    "arm,cortex-m1": { "type": "CPU.CortexM", "cpuType": "cortex-m1" },
    "arm,cortex-m3": { "type": "CPU.CortexM", "cpuType": "cortex-m3" },
    "arm,cortex-m23": { "type": "CPU.CortexM", "cpuType": "cortex-m23" },
    "arm,cortex-m33": { "type": "CPU.CortexM", "cpuType": "cortex-m33" },
    "arm,cortex-m33f": { "type": "CPU.CortexM", "cpuType": "cortex-m33" },
    "arm,cortex-m55": { "type": "CPU.CortexM", "cpuType": "cortex-m55" },
    "arm,cortex-m85": { "type": "CPU.CortexM", "cpuType": "cortex-m85" },
    "arm,cortex-m4": { "type": "CPU.CortexM", "cpuType": "cortex-m4" },
    "arm,cortex-m4f": { "type": "CPU.CortexM", "cpuType": "cortex-m4f" },
    "arm,cortex-m7": { "type": "CPU.CortexM", "cpuType": "cortex-m7" },
    "arm,cortex-r5": { "type": "CPU.ARMv7R", "cpuType": "cortex-r5", "numberOfMPURegions": 16 },
    "arm,cortex-r5f": { "type": "CPU.ARMv7R", "cpuType": "cortex-r5f", "numberOfMPURegions": 16 },
    "arm,cortex-r7": { "type": "CPU.ARMv7R", "cpuType": "cortex-r8" },
    "arm,cortex-r8": { "type": "CPU.ARMv7R", "cpuType": "cortex-r8" },
    "arm,cortex-r8f": { "type": "CPU.ARMv7R", "cpuType": "cortex-r8" },

    "arm,cortex-a9-twd-timer": { "type": "Timers.ARM_PrivateTimer", "frequency": 667000000 },

    "arm,cortex-a7-gic": "IRQControllers.ARM_GenericInterruptController",
    "arm,cortex-a9-gic": "IRQControllers.ARM_GenericInterruptController",
    "arm,cortex-a15-gic": "IRQControllers.ARM_GenericInterruptController",
    "arm,gic": "IRQControllers.ARM_GenericInterruptController",
    "arm,gic-v1": "IRQControllers.ARM_GenericInterruptController",
    "arm,gic-v2": "IRQControllers.ARM_GenericInterruptController",
    "arm,gic-400": "IRQControllers.ARM_GenericInterruptController",
    "arm,gic-v3": { "renesas,rzt2m-rsk": { "type":  "IRQControllers.ARM_GenericInterruptController", "supportsTwoSecurityStates": false },  "_" : "IRQControllers.ARM_GenericInterruptController" },
    "arm,gic-v4": "IRQControllers.ARM_GenericInterruptController",
    "arm,pl011": "UART.PL011",
    "arm,sbsa-uart": { "type": "UART.PL011", "sbsa": true },
    "arm,sp804": "Timers.ARM_SP804_Timer",
    "arm,v6m-nvic": "IRQControllers.NVIC",
    "arm,v7m-nvic": "IRQControllers.NVIC",
    "arm,v8m-nvic": "IRQControllers.NVIC",
    "arm,v8.1m-nvic": "IRQControllers.NVIC",

    "arm,cmsdk-uart": "UART.CMSDK_APB_UART",

    "bosch,bme280": "I2C.BME280",
    "sensirion,sht4x": "I2C.SHT45",

    "raspberrypi,pico-uart": "UART.PL011",

    "allwinner,sun50i-h5-mbus": "Memory.MappedMemory",
    "allwinner,sun50i-a64-mbus": "Memory.MappedMemory",
    "allwinner,sun4i-a10-timer": { "type": "Python.PythonPeripheral", "size": 0x90, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },
    "allwinner,sun8i-a23-timer": { "type": "Python.PythonPeripheral", "size": 0xa0, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },
    "allwinner,sun8i-a23-rsb": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": false, "script": "request.Value = 0x1" },
    "allwinner,sun8i-h3-dw-hdmi": { "type": "Python.PythonPeripheral", "size": 0x10000, "initable": true, "filename": "scripts/pydev/flipflop.py" },

    "atmel,sam-usart": "UART.SAM_USART",
    "atmel,sam-uart": { "type": "UART.SAM_USART", "uartOnlyMode": true },
    "atmel,sam0-uart": { "atmel,samd20": "UART.SAMD20_UART", "_": "UART.SAMD5_UART" },
    "atmel,sama5d2-tcb": { "type": "Python.PythonPeripheral", "size": 0x4000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "atmel,sama5d2-i2c": { "type": "Python.PythonPeripheral", "size": 0x160, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "atmel,sam-flash-controller": { "type": "Python.PythonPeripheral", "size": 0x200, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "atmel,at91sam9260-usart": "UART.SAM_USART",
    "atmel,at91sam9260-pit": { "type": "Python.PythonPeripheral", "size": 0xF, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "atmel,at91sam9x5-hlcdc": { "type": "Python.PythonPeripheral", "size": 0x2000, "initable": true, "filename": "scripts/pydev/flipflop.py" },

    "nuvoton,npcx-uart": "UART.NPCX_UART",
    "nuvoton,npcx-gpio": "GPIOPort.NPCX_GPIO",
    "nuvoton,numicro-uart": "UART.NS16550",

    "brcm,iproc-pcie-ep": {"type": "Python.PythonPeripheral", "size": 0x2100, "initable": false, "script": "request.Value = 0x1" },
    "brcm,bcm2711-aux-uart": "UART.BCM2711_AUX_UART",
    "brcm,bcm6345-uart": "UART.BCM2711_AUX_UART",

    "cdns,tensilica-xtensa-lx3": { "type": "CPU.Xtensa", "cpuType": "dc233c", "frequency": 100000000 },
    "cdns,ttc": "Timers.Cadence_TTC",
    "xlnx,ttcps": "Timers.Cadence_TTC",
    "cdns,uart-r1p8": "UART.Cadence_UART",
    "cdns,uart-r1p12": "UART.Cadence_UART",

    "cfi-flash": "Memory.MappedMemory",

    "ene,kb1200-uart": { "type": "UART.KB1200_UART" },
    "efinix,sapphire-uart0": {"type": "UART.TrivialUart", "irq_mappings": [null]},

    "fsl,imx6q-anatop": "Python.PythonPeripheral",
    "fsl,imx6sx-anatop": "Python.PythonPeripheral",
    "fsl,imx6q-dma-apbh": { "type": "Python.PythonPeripheral", "size": 0x2000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "fsl,imx6q-gpmi-nand": { "type": "Python.PythonPeripheral", "size": 0x4000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "fsl,imx6q-ccm": "Python.PythonPeripheral",
    "fsl,imx6q-usbphy": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "fsl,imx6q-i2c": { "type": "Python.PythonPeripheral", "size": 0x4000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "fsl,imx6q-gpio": { "type": "Python.PythonPeripheral", "size": 0x4000, "initable": false, "script": "request.Value = 0xFFFFFFFF" },
    "fsl,imx6sl-ccm": "Python.PythonPeripheral",
    "fsl,imx6sll-ccm": "Python.PythonPeripheral",
    "fsl,imx6sx-ccm": "Python.PythonPeripheral",
    "fsl,imx6ul-ccm": "Python.PythonPeripheral",
    "fsl,imx6ul-usb": { "type": "Python.PythonPeripheral", "size": 0x200, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "fsl,imx25-fec": { "type": "Python.PythonPeripheral", "size": 0x4000, "initable": false, "script": "request.Value = {0x4: 0x800000}.get(request.Offset, 0) # 4==ievent" },
    "fsl,imx6q-fec": { "type": "Python.PythonPeripheral", "size": 0x4000, "initable": false, "script": "request.Value = {0x4: 0x800000}.get(request.Offset, 0) # 4==ievent" },
    "fsl,imx6sl-fec": { "type": "Python.PythonPeripheral", "size": 0x4000, "initable": false, "script": "request.Value = {0x4: 0x800000}.get(request.Offset, 0) # 4==ievent" },
    "fsl,imx31-gpt": {"type": "Timers.IMX_GPTimer", "frequency": 32000 },
    "fsl,imx6dl-gpt": {"type": "Timers.IMX_GPTimer", "frequency": 32000 },
    "fsl,imx6q-gpt": {"type": "Timers.IMX_GPTimer", "frequency": 32000 },
    "fsl,imx6sx-gpt": {"type": "Timers.IMX_GPTimer", "frequency": 32000 },
    "fsl,imx6sl-gpt": {"type": "Timers.IMX_GPTimer", "frequency": 32000 },
    "fsl,imx6sll-gpt": {"type": "Timers.IMX_GPTimer", "frequency": 32000 },
    "fsl,imx6q-mmdc": "Python.PythonPeripheral",
    "fsl,imx6q-uart": "UART.MxcUart",
    "fsl,imx21-uart": "UART.MxcUart",
    "fsl,imx7ulp-lpuart" : "UART.MxcUart",
    "fsl,imxrt-lpuart": "UART.MxcUart",
    "fsl,vf610-lpuart": "UART.ImxUart",
    "fsl,vf610-i2c": { "type": "Python.PythonPeripheral", "size": 0x10000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "fsl,etsec2": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "fsl,imx8mm-usdhc": { "type": "Python.PythonPeripheral", "size": 0x10000, "initable": false, "script": "request.Value = 0xE0FFFFF8" },
    "fsl,imx8mm-i2c":  { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "fsl,imx8mm-anatop": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "fsl,imx8mm-fec": { "type": "Python.PythonPeripheral", "size": 0x10000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "fsl,imx8mm-gpio": { "type": "Python.PythonPeripheral", "size": 0x10000, "initable": false, "script": "request.Value = 0xFFFFFFFF" },
    "fsl,imx8mp-gpio": { "type": "Python.PythonPeripheral", "size": 0x10000, "initable": false, "script": "request.Value = 0xFFFFFFFF" },
    "fsl,imx8mp-ocotp": { "type": "Python.PythonPeripheral", "size": 0x10000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "nxp,imx8mp-fspi": { "type": "Python.PythonPeripheral", "size": 0x10000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "fsl,imx8mp-fec": { "type": "Python.PythonPeripheral", "size": 0x10000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "fsl,imx8mn-fec": { "type": "Python.PythonPeripheral", "size": 0x10000, "initable": true, "filename": "scripts/pydev/flipflop.py" },

    "infineon,xmc4xxx-uart": "UART.XMC4XXX_UART",
    "infineon,cat1-uart": "UART.Infineon_SCBUART",
    "infineon,uart": "UART.Infineon_SCBUART",
    "cypress,psoc6-uart": "UART.Infineon_SCBUART",

    "gaisler,apbuart": "UART.GaislerAPBUART",
    "gaisler,gptimer": "Timers.Gaisler_GPTimer",
    "gaisler,irqmp": "IRQControllers.GaislerMIC",
    "gaisler,leon3": { "type": "CPU.Sparc", "cpuType": "leon3" },

    "gd,gd32-rcu": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": false, "script": "request.Value = 0xFFFFFFFF" },
    "gd,gd32-usart": { "gd,gd32a503v-eval|gd,gd32f350r-eval|gd,gd32l233r-eval": { "type": "UART.GD32_UART", "extendedMode": true },
                       "_": "UART.GD32_UART" },

    "gpio-leds": "Miscellaneous.LED",
    
    "virtio,console": "Miscellaneous.VirtIOMMIOConsole",
    "virtio,entropy": "Miscellaneous.VirtIOMMIOEntropy",


    "ingenic,jz4780-uart": "UART.NS16550",
    "microchip,xec-uart": "UART.NS16550",
    "microchip,sercom-g1-uart": {"type": "UART.SAMD5_UART", "irq_mappings": ["IRQ", null, null, null]},

    "litex,clk": "Miscellaneous.LiteX_MMCM_CSR32",
    "litex,timer0": { "fomu": { "type" : "Timers.LiteX_Timer", "frequency": 100000000 }, "_": { "type": "Timers.LiteX_Timer_CSR32", "frequency": 100000000 } },
    "litex,uart0": "UART.LiteX_UART",
    "litex,uart": "UART.LiteX_UART",
    "litex,vexriscv-standard": "CPU.RiscV32",

    "memory": "Memory.MappedMemory",
    "mmio-sram": "Memory.MappedMemory",
    "ddram": "Memory.MappedMemory",
    "jedec,spi-nor": "Memory.MappedMemory",
    "jedec,qspi-nor": "Memory.MappedMemory",
    "renesas,rz-qspi-spibsc": "Memory.MappedMemory",
    "shared-dma-pool": "Memory.MappedMemory",

    "marvell,armada-370-timer": {"type": "Timers.Marvell_Armada_Timer", "frequency": 100000000 },
    "marvell,armada-375-timer": {"type": "Timers.Marvell_Armada_Timer", "frequency": 100000000 },
    "marvell,armada-xp-timer": {"type": "Timers.Marvell_Armada_Timer", "frequency": 100000000 },
    "marvell,armada370-nand-controller": { "type": "Python.PythonPeripheral", "size": 0x100, "initable": false, "script": "request.Value = 0xffffffe1" },
    "marvell,armada-8k-nand-controller": { "type": "Python.PythonPeripheral", "size": 0x100, "initable": false, "script": "request.Value = 0xffffffe1" },
    "marvell,armada-38x-uart": "UART.NS16550",
    "marvell,armada-3700-uart": "UART.NS16550",

    "marvell,mbus-controller": "Python.PythonPeripheral",
    "marvell,mv64xxx-i2c": {"type": "Python.PythonPeripheral", "size": 0x100, "initable": false, "script": "request.Value = 0xf8" },
    "marvell,mv78230-a0-i2c": {"type": "Python.PythonPeripheral", "size": 0x100, "initable": false, "script": "request.Value = 0xf8" },
    "marvell,sheeva-v7": { "type": "CPU.ARMv7A", "cpuType": "cortex-a9" },

    "amlogic,meson-gx-uart": "UART.MesonUart",
    "amlogic,meson-gx-ao-sysctrl": {"type": "Python.PythonPeripheral", "size": 0x100, "initable": false, "script": "request.Value = 0x2000000" },
    "amlogic,meson-gx-ao-secure": {"type": "Python.PythonPeripheral", "size": 0x140, "initable": false, "script": "request.Value = 0x4000000" },

    "openisa,rv32m1-intmux": "IRQControllers.NXP_INTMUX",
    "openisa,ri5cy": "CPU.Ri5cy",
    "openisa,zero-ri5cy": { "type": "CPU.Ri5cy", "hartId": 0 },
    "openisa,rv32m1-lpuart": { "type": "UART.NXP_LPUART", "fifoSize": 8 },
    "openisa,rv32m1-lptmr": { "type": "UART.LowPower_Timer" },

    "lowrisc,ibex": "CPU.IbexRiscV32",

    "microchip,miv": "CPU.RiscV32",
    "microchip,coreuart": { "type": "UART.MiV_CoreUART", "clockFrequency": 66000000 },
    "microchip,mpfs-gpio": "GPIOPort.MPFS_GPIO",
    "microchip,sam9x60-pit64b": { "type": "Python.PythonPeripheral", "size": 0xec, "initable": true, "filename": "scripts/pydev/counter.py" },
    "microchip,xec-i2c-v2": {"type": "Python.PythonPeripheral", "size": 0x4, "initable": false, "script": "request.Value = 0xffffffff" },

    "mediatek,mt8365-uart": "UART.NS16550",

    "nuclei,bumblebee": "CPU.RiscV32",
    "espressif,riscv": "CPU.RiscV32",
    "espressif,esp32-uart": "UART.ESP32_UART",
    "intel,niosv": "CPU.RiscV32",
    "intel,x86": { "type": "CPU.X86", "cpuType": "n270" },
    "intel,x86_64": { "type": "CPU.X86_64", "cpuType": "x86_64" },
    "intel,apollo-lake": { "type": "CPU.X86_64", "cpuType": "x86_64" },
    "intel,core-i3-gen5": { "type": "CPU.X86", "cpuType": "x86" },
    "intel,core-gen3": { "type": "CPU.X86", "cpuType": "x86" },
    "intel,bartlett-lake": { "type": "CPU.X86_64", "cpuType": "x86_64" },
    "intel,ioapic": "IRQControllers.IOAPIC",
    "intel,hpet": {"type": "Timers.HPET", "irq_mappings": [null]},
    "intel,sedi-uart": { "type": "UART.NS16550", "wideRegisters": true },
    "ite,riscv-ite": "CPU.RiscV32",

    "issi,is25lp128": "Memory.MappedMemory",

    "neorv-sysinfo": { "type": "Python.PythonPeripheral", "size": 0x20, "initable": false, "script": "request.Value = 0xFFFFFFFF" },

    "nordic,nrf-clock": { "nrf54l|nrf54h": "Miscellaneous.NRF54L_CLOCK", "_": { "type": "Miscellaneous.NRF_CLOCK" } },
    "nordic,nrf-ecb": "Miscellaneous.NRF52840_ECB",
    "nordic,nrf-gpio": "GPIOPort.NRF52840_GPIO",
    "nordic,nrf-rng": "Miscellaneous.NRF52840_RNG",
    "nordic,nrf-rtc": "Timers.NRF52840_RTC",
    "nordic,nrf-grtc": { "type": "Timers.NRF54H20_GRTC", "irq_mappings": ["IRQ"] },
    "nordic,nrf-spi": "SPI.NRF52840_SPI",
    "nordic,nrf-timer": "Timers.NRF52840_Timer",
    "nordic,nrf-twi": "I2C.NRF52840_I2C",
    "nordic,nrf-uart": "UART.NRF52840_UART",
    "nordic,nrf-uarte": { "nrf54l|nrf54h": "UART.NRF54H20_UARTE", "_": { "type": "UART.NRF52840_UART", "easyDMA": true } },
    "nordic,nrf-vevif-task-tx" : "Miscellaneous.NRF_VPREventInterface",
    "nordic,nrf-bellboard-rx" : "Miscellaneous.NRF_Bellboard",
    "nordic,nrf-watchdog": "Timers.NRF52840_Watchdog",
    "nordic,nrf-usbd": "USB.NRF_USBD",
    "nordic,nrf91-flash-controller": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },
    "nordic,owned-memory" : "Memory.MappedMemory",
    "nordic,nrf-usbreg": "Miscellaneous.NRF_USBREG",

    "ns16550": { "type": "UART.NS16550", "wideRegisters": true },
    "ns16550a": { "type": "UART.NS16550", "wideRegisters": true },

    "nvidia,tegra20-timer": "Timers.TegraUsecTimer",
    "nvidia,tegra210-timer": "Timers.TegraUsecTimer",
    "nvidia,tegra30-timer": "Timers.TegraUsecTimer",
    "nvidia,tegra30-car": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": false, "script": "request.Value = 0x3ff" },
    "nvidia,tegra30-mc": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": false, "script": "request.Value = 0x400" },
    "nvidia,tegra30-sdhci": { "type": "Python.PythonPeripheral", "size": 0x200, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "nvidia,tegra30-i2c": "I2C.TegraI2CController",
    "nvidia,tegra20-uart": "UART.NS16550",
    "nvidia,tegra20-car": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": false, "script": "request.Value = 0x3ff" },
    "nvidia,tegra20-mc": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": false, "script": "request.Value = 0x100000" },
    "nvidia,tegra20-emc": { "type": "Python.PythonPeripheral", "size": 0x200, "initable": false, "script": "request.Value = 0x100000" },
    "nvidia,tegra210-mc": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": false, "script": "request.Value = 0x400" },
    "nvidia,tegra210-i2c": { "type": "Python.PythonPeripheral", "size": 0x100, "initable": false, "script": "request.Value = 8<<4 | 1" },

    "nvidia,tegra114-i2c": "I2C.TegraI2CController",
    "nvidia,tegra124-i2c": "I2C.TegraI2CController",
    "nvidia,tegra124-car": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": false, "script": "request.Value = 0x3ff" },

    "rockchip,rk3308-otp": { "type": "Python.PythonPeripheral", "size": 0x4000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "rockchip,rk3308-cru": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "rockchip,rk3568-cru": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "rockchip,rk3588-cru": { "type": "Python.PythonPeripheral", "size": 0x5c000, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },
    "rockchip,rk3588-otp": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "rockchip,rk3568-pmucru": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "rockchip,rk3568-i2c": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "rockchip,rk3288-grf" : { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "rockchip,rk3288-i2c": "I2C.RockchipI2C",
    "rockchip,rk3399-pmucru": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },
    "rockchip,rk3399-i2c": "I2C.RockchipI2C",
    "rockchip,rk3399-sdhci-5.1": { "type": "Python.PythonPeripheral", "size": 0x10000, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },

    "renesas.smartbond-gpio": "GPIOPort.RenesasDA14_GPIO",
    "renesas,smartbond-i2c": "I2C.DesignWare_APB_I2C",
    "renesas,smartbond-spi": "SPI.RenesasDA_SPI",
    "renesas,smartbond-uart": "UART.RenesasDA14_UART",
    "renesas,smartbond-watchdog": {"type": "Timers.RenesasDA_Watchdog", "frequency": 32000},
    "renesas,smartbond-adc": "Analog.RenesasDA14_GPADC",
    "renesas.smartbond-dma" : "DMA.RenesasDA14_DMA",
    "renesas,rzt2m-uart": "UART.Renesas_SCI",
    "renesas,rcar-scif": "UART.RCAR_UART",
    "renesas,rcar-hscif": "UART.RCAR_UART",
    "renesas,scif": "UART.RCAR_UART",
    "renesas,hscif": "UART.RCAR_UART",
    "renesas,ra-gpio-ioport": {
        "renesas,ra2": "GPIOPort.RenesasRA2_GPIO",
        "renesas,ra4": "GPIOPort.RenesasRA4_GPIO",
        "renesas,ra6": "GPIOPort.RenesasRA6_GPIO",
        "renesas,ra8": "GPIOPort.RenesasRA8_GPIO"
    },
    "renesas,ra-pinctrl-pfs": "GPIOPort.RenesasRA_GPIOMisc",
    "renesas,ra-i2c" : "I2C.RenesasRA_IIC",
    "renesas,rcar-gen3-i2c": { "type": "Python.PythonPeripheral", "size": 0x40, "initable": true, "script": "request.Value = 0x59" },
    "renesas,rcar-gen3-iic": { "type": "Python.PythonPeripheral", "size": 0x425, "initable": true, "script": "request.Value = 0x1" },
    "renesas,ra-interrupt-controller-unit" : "IRQControllers.RenesasRA_ICU",
    "renesas,rz-sci": {"type":"UART.Renesas_SCI", "irq_mappings": [null, "RxIRQ", "TxIRQ", "TxEndIRQ"]},
    "renesas,ra-sci" :  { "renesas,ra8|renesas,ra8m1" : { "type" : "UART.RenesasRA8M1_SCI", "frequency": 48000000, "irq_mappings": ["ReceiveIRQ", "TransmitIRQ", "TransmitEndIRQ", null] },
                          "_": { "type" : "SCI.RenesasRA6M5_SCI", "frequency": 48000000, "enableManchesterMode" : false, "enableFIFO" : true, "irq_mappings": ["ReceiveIRQ", "TransmitIRQ", "TransmitEndIRQ", null ] } },
    "renesas,scif-r9a07g044" : { "type": "SCI.RenesasRZG_SCIFA", "frequency": 100000000, "irq_mappings": ["0", "2", "3", "1", "4"] },
    "renesas,rz-scif-uart": { "type": "SCI.RenesasRZG_SCIFA", "frequency": 100000000, "irq_mappings": ["0", "1", "2", "3", "4"] },
    "renesas,ra-timer" : "Timers.RenesasRA_GPT",
    "renesas,smartbond-timer" : "Timers.RenesasDA14_GPT",
    "renesas,ra-mram-controller": { "type": "Python.PythonPeripheral", "size": 0x100, "initable": true, "script": "lastVal = (0 if request.IsInit else ((request.Value & 0xFFFF) if request.IsWrite else lastVal)) ; request.Value = lastVal" },
    "renesas,ra-clock-generation-circuit": { "type": "Python.PythonPeripheral", "size": 0x40, "initable": false, "script": "request.Value = 0xFFFFFFFF" },
    "renesas,r9a07g044-cpg": { "type": "Python.PythonPeripheral", "size": 0x10000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "renesas,rz-cpg": { "type": "Python.PythonPeripheral", "size": 0x10000, "initable": true, "filename": "scripts/pydev/flipflop.py" },

    "socionext,uniphier-uart": "UART.NS16550",

    "nxp,flexpwm": "Timers.IMXRT_PWM",
    "nxp,spc": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": false, "script": "request.Value = 0xF0000000 if request.Offset == 0x40 else 0x0" },
    "nxp,imx-code-bus": "Memory.MappedMemory",
    "nxp,imx-dtcm": "Memory.MappedMemory",
    "nxp,imx-flexspi": "SPI.IMXRT_FlexSPI",
    "nxp,imx-flexspi-nor": "Memory.MappedMemory",
    "nxp,s32-qspi-nor": "Memory.MappedMemory",
    "nxp,imx-flexspi-hyperflash": "Memory.MappedMemory",
    "nxp,imx-flexspi-mx25um51345g": "Memory.MappedMemory",
    "nxp,xspi-mx25um51345g": "Memory.MappedMemory",
    "nxp,imx-gpio": { "type": "GPIOPort.IMXRT_GPIO", "irq_mappings": ["IRQ", null] },
    "nxp,imx-itcm": "Memory.MappedMemory",
    "nxp,imx-lpspi": "SPI.IMXRT_LPSPI",
    "nxp,imx-sys-bus": "Memory.MappedMemory",
    "nxp,imx-uart": "UART.MxcUart",
    "nxp,imx-iuart": "UART.MxcUart",
    "nxp,lpi2c": {"type": "I2C.S32K3XX_LowPowerInterIntegratedCircuit", "irq_mappings": ["", null]},
    "nxp,imx-lpi2c": {"type": "I2C.S32K3XX_LowPowerInterIntegratedCircuit", "irq_mappings": ["", null]},
    "nxp,kinetis-lpsci": "UART.ImxUart",
    "nxp,gpt-hw-timer": "Timers.IMX_GPTimer",
    "nxp,kinetis-lpuart": { "nxp,k6x|nxp,k8x": { "type": "UART.NXP_LPUART", "hasGlobalRegisters": false, "fifoSize": 4 }, "_" : "UART.NXP_LPUART" },
    "nxp,lpuart": {
        "nxp,k6x|nxp,k8x|nxp,mcxc444|nxp,mcxc242": { "type": "UART.NXP_LPUART", "hasGlobalRegisters": false, "fifoSize": 4 },
        "_" : "UART.NXP_LPUART"
    },
    "nxp,lp-flexcomm": "UART.NXP_FLEXCOMM",
    "nxp,kinetis-mcg": "Miscellaneous.K6xF_MCG",
    "nxp,kinetis-rnga": "Miscellaneous.K6xF_RNG",
    "nxp,kinetis-sim": "Miscellaneous.K6xF_SIM",
    "nxp,kinetis-trng": "Miscellaneous.IMX_TRNG",
    "nxp,kinetis-uart": "UART.K6xF_UART",
    "nxp,lpc3220-timer": "Timers.LPC_CTimer",
    "nxp,lpc-ctimer": "Timers.LPC_CTimer",
    "nxp,lpc-usart": "UART.LPC_USART",
    "nxp,mcux-12b1msps-sar": {"type": "Analog.IMXRT_ADC", "referenceVoltage": 3.3},
    "nxp,lpc-syscon": { "type": "Python.PythonPeripheral", "size": 0x1000, "script": "request.Value = {0x264: 0x3, 0x284: 0x3, 0x2B0: 0x4, 0x2E8: 0x0, 0x320: 0xFF, 0x3A0: 0xFF, 0x508: 0x0, 0x568: 0x0, 0xA18: 0xFF}.get(request.Offset, (0x0 if (request.Counter % 2) else 0xFFFFFFFF))" },
    "nxp,lpc11u6x-syscon": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "nxp,iap-fmc55": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "nxp,lpc11u6x-uart": "UART.NS16550",
    "nxp,s32-linflexd": "UART.LINFlexD_UART",
    "nxp,s32-siul2-eirq": { "type": "Miscellaneous.S32K3XX_SystemIntegrationUnitLite2", "irq_mappings": ["IRQ1", "IRQ2", "IRQ3", "IRQ4" ] },
    "nxp,os-timer": { "type": "Timers.NXP_OsTimer", "frequency": 1000000 },

    "openhwgroup,cva6": "CPU.RiscV32",
    
    "riscv": "CPU.RiscV32",
    "andestech,andescore-v5": "CPU.RiscV32",

    "andestech,atcpit100": { "type": "Timers.AndesATCPIT100", "clockFrequency": 60000000 },
    "andestech,nceplic100": { "type": "IRQControllers.AndesNCEPLIC100", "numberOfContexts": 16, "prioritiesEnabled": true, "numberOfSources": 1023 },
    "andestech,atcgpio100": "GPIOPort.AndesATCGPIO100",
    "andestech,atcwdt200": { "type": "Timers.AndesATCWDT200_Watchdog", "clockFrequency": 32768 },
    "andestech,atcrtc100": { "type": "Timers.AndesATCRTC100", "irq_mappings": [""] },
    "egis,et171-spi": "SPI.AndesATCSPI200",
    "egis,et171-sha": "Miscellaneous.EgisET171_Crypto",
    "egis,et171-aosmu": "Miscellaneous.EgisET171_AOSMU",

    "riscv,plic1": { "type": "IRQControllers.PlatformLevelInterruptController", "numberOfContexts": 16, "prioritiesEnabled": true },
    "sifive,plic-1.0.0": {
        "egis,et171": { "type": "IRQControllers.AndesNCEPLIC100", "numberOfContexts": 16, "prioritiesEnabled": true, "numberOfSources": 1023 },
        "_": { "type": "IRQControllers.PlatformLevelInterruptController", "numberOfContexts": 16, "prioritiesEnabled": true }
    },
    "sifive,clint0": "IRQControllers.CoreLevelInterruptor",
    "starfive,jh7100-clint": "IRQControllers.CoreLevelInterruptor",
    "thead,c900-clint": "IRQControllers.CoreLevelInterruptor",
    "riscv,sifive-e31": "CPU.RiscV32",
    "sifive,e31": "CPU.RiscV32",
    "nordic,vpr": "CPU.RiscV32",
    "neorv32-cpu": "CPU.RiscV32",
    "neorv32-uart": "UART.NEORV32_UART",
    "neorv32,uart": "UART.NEORV32_UART",
    "riscv,machine-timer": {
        "lowrisc,opentitan-earlgrey": null,
        "andestech,ae350": { "type": "Timers.RiscVMachineTimer", "frequency": 60000000, "irq_mappings": [""] },
        "_": { "type": "Timers.RiscVMachineTimer", "frequency": 100000000, "irq_mappings": [""] }
    },
    "samsung,exynos4210-uart": "UART.NS16550",

    "sifive,dtim0": "Memory.MappedMemory",
    "sifive,l2lim0": "Memory.MappedMemory",
    "sifive,gpio0": "GPIOPort.SiFive_GPIO",
    "sifive,maskrom0": "Memory.MappedMemory",
    "sifive,otp0": "Memory.MappedMemory",
    "sifive,rocket0": "CPU.RiscV32",
    "sifive,uart0": "UART.SiFive_UART",

    "sensry,sy1xx" : "CPU.RiscV32",

    "sc,hrmem": "Memory.MappedMemory",

    "silabs,gecko-leuart": "UART.LEUART",
    "silabs,gecko-uart": "UART.EFM32_UART",
    "silabs,gecko-usart": { "silabs,efr32mg2|silabs,efr32bg2|silabs,efr32fg2|silabs,efr32zg2|silabs,efm32pg2|silabs,mgm2|silabs,bgm2": "UART.EFR32xG22_USART", "_": "UART.EFR32_USART" },
    "silabs,usart-uart": {
        "silabs,efr32mg2|silabs,efr32bg2|silabs,efr32fg2|silabs,efr32zg2|silabs,efm32pg2|silabs,mgm2|silabs,bgm2": "UART.EFR32xG22_USART",
        "_": "UART.EFR32_USART"
    },
    "silabs,gecko-gpio-port": "GPIOPort.EFR32_GPIOPort",
    "silabs,gecko-burtc": "Timers.EFR32xG2_BURTC",
    "silabs,rtcc": { "type": "Timers.EFR32_RTCC", "frequency": 32768 },
    "silabs,si32-usart": "UART.SI32_USART",
    "silabs,series-clock": { "silabs,efr32mg21": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": false, "script": "request.Value = {0x70: 0x1, 0x160: 0x2, 0x240: 0x1}.get(request.Offset, 0)" },
                             "_": { "type": "Miscellaneous.SiLabs.EFR32xG2_CMU_3", "irq_mappings": [null] }},
    "silabs,gecko-stimer": { "type": "Timers.EFR32xG24_SYSRTC", "irq_mappings": ["AppIRQ"] },
    "silabs,sysrtc": { "type": "Timers.EFR32xG24_SYSRTC", "irq_mappings": ["AppIRQ"] },
    "silabs,eusart-spi": { "type": "UART.EFR32xG2_EUSART_2", "irq_mappings": ["ReceiveIRQ", "TransmitIRQ"] },
    "silabs,eusart-uart": { "type": "UART.EFR32xG2_EUSART_2", "irq_mappings": ["ReceiveIRQ", "TransmitIRQ"] },
    "silabs,hfxo": { "silabs,efr32mg21": {},
                     "silabs,efr32bg22|silabs,efr32mg22|silabs,efr32bg27|silabs,efr32mg27|silabs,bgm22": { "type": "Miscellaneous.SiLabs.EFR32xG2_HFXO_2", "startupDelayTicks": 3 },
                     "_" : { "type": "Miscellaneous.SiLabs.EFR32xG2_HFXO_3", "startupDelayTicks": 3 }},
    "silabs,series2-dcdc": { "type": "Miscellaneous.SiLabs.EFR32xG2_DCDC_2", "irq_mappings": [null] },

    "sifli,sf32lb-usart": { "type": "UART.STM32F7_USART", "frequency": 48000000 },
    "sifli,sf32lb-rcc": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },
    "sifli,sf32lb-aon": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": false, "script": "request.Value = 0xFFFFFFFF" },

    "snps,dw-apb-uart": "UART.NS16550",
    "snps,dw-apb-timer": { "type": "Python.PythonPeripheral", "size": 0x100, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },
    "snps,dwc3": {"type": "Python.PythonPeripheral", "size": 0x10000, "initable": true, "script": "request.Value = 0" },
    "snps,ddrc-3.80a": {"type": "Python.PythonPeripheral", "size": 0x400000, "initable": true, "script": "request.Value = 0x1" },
    "snps,designware-gpio": "GPIOPort.DesignWare_APB_GPIO",

    "nuvoton,numaker-uart": "UART.NS16550",
    "nuvoton,npcm845-uart": "UART.NS16550",

    "soc-nv-flash": "Memory.MappedMemory",
    "renesas,ra-nv-flash": "Memory.MappedMemory",
    "renesas,ra-nv-code-flash": "Memory.MappedMemory",
    "renesas,ra-nv-data-flash": "Memory.MappedMemory",
    "renesas,ra-nv-mram": "Memory.MappedMemory",

    "st,stm32-adc": {
        "st,stm32wba": { "type": "Analog.STM32WBA_ADC", "referenceVoltage": 3.0, "externalEventFrequency": 1000},
        "_": "Analog.STM32_ADC"
    },
    "st,stm32-gpio": { "st,stm32f1" : "GPIOPort.STM32F1GPIOPort", "_": "GPIOPort.STM32_GPIOPort" },
    "st,stm32-lpuart": { "type": "UART.STM32F7_USART", "frequency": 200000000, "lowPowerMode": true },
    "st,stm32-lptim": { "st,stm32wba": {"type": "Timers.STM32L0_LpTimer", "frequency": 16000000},
                        "st,stm32h7": {"type": "Timers.STM32L0_LpTimer", "frequency": 32000000},
                        "st,stm32l0": {"type": "Timers.STM32L0_LpTimer", "frequency": 0x1000000}},
    "st,stm32wba-flash-controller": "MTD.STM32WBA_FlashController",
    "st,stm32-flash-controller": {
        "st,stm32u3|st,stm32c5": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/repeater.py" },
        "_": null
    },

    "st,stm32-nv-flash": "Memory.MappedMemory",
    "st,stm32-rcc": {
        "st,stm32g0|st,stm32g4|st,stm32l1|st,stm32l4|st,stm32l5" : {"type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/flipflop.py" },
        "st,stm32f1|st,stm32f3": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },
        "st,stm32l0": "Miscellaneous.STM32L0_RCC",
        "_" : "Miscellaneous.STM32F4_RCC"
    },
    "st,stm32-rng": {"type": "Miscellaneous.STM32_RNG", "series": {"reference": "STM32Series.F4"} },
    "st,stm32-rtc": "Timers.STM32F4_RTC",
    "st,stm32-spi": { "type": "SPI.STM32SPI", "series": {"reference": "STM32Series.F4"} },
    "st,stm32-timers": { "type": "Timers.STM32_Timer", "frequency": 10000000, "initialLimit": 0xFFFFFFFF },
    "st,stm32-timer": { "type": "Timers.STM32_Timer", "frequency": 10000000, "initialLimit": 0xFFFFFFFF },
    "st,stm32-uart": { "st,stm32f3|st,stm32l4|st,stm32u5|st,stm32u3|st,stm32c5|st,stm32h5|st,stm32h7|st,stm32h7rs|st,stm32mp1": { "type": "UART.STM32F7_USART", "frequency": 200000000 }, "_": "UART.STM32_UART" },
    "st,stm32-usart": {
        "st,stm32h7|st,stm32f7|st,stm32u5|st,stm32u3|st,stm32c5|st,stm32n6|st,stm32h5|st,stm32l5|st,stm32f0|st,stm32l0|st,stm32g0|st,stm32c0|st,stm32l4|st,stm32g4|st,stm32f3|st,stm32wba|st,stm32wl|st,stm32wb0|st,stm32u0|st,stm32wb|st,stm32mp1": { "type": "UART.STM32F7_USART", "frequency": 200000000 },
        "_": "UART.STM32_UART"
    },
    "st,stm32h7-uart": { "type": "UART.STM32F7_USART", "frequency": 200000000 },
    "st,stm32-watchdog": { "type": "Timers.STM32_IndependentWatchdog", "frequency": 32000, "irq_mappings": [ null ] },
    "st,stm32f0-rcc": {
      "st,stm32u0": {
        "type": "Python.PythonPeripheral",
        "size": 0x400,
        "initable": true,
        "script": "request.Value = (3 if request.IsInit or lastVal == 0 else (lastVal << 1) & 0xFFFFFFFF) ; lastVal = 3 if request.IsInit or lastVal == 0 else (lastVal << 1) & 0xFFFFFFFF"
      },
      "_": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/rolling-bit.py" }
    },
    "st,stm32f1-rcc": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },
    "st,stm32f3-rcc": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },
    "st,stm32f4-rcc": "Miscellaneous.STM32F4_RCC",
    "st,stm32wb-rcc": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },
    "st,stm32wba-rcc": "Miscellaneous.STM32WBA_RCC",
    "st,stm32wb0-rcc": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },
    "st,stm32u5-rcc": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "st,stm32c5-rcc": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "st,stm32u3-rcc": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "st,stm32n6-rcc": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "st,stm32h5-rcc": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "st,stm32h7-rcc": "Miscellaneous.STM32H7_RCC",
    "st,stm32h7rs-rcc": "Miscellaneous.STM32H7_RCC",
    "st,stm32h743-rcc": "Miscellaneous.STM32H7_RCC",
    "st,stm32wl-rcc": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "st,stm32-ethernet": {  "st,stm32h7": { "type": "Network.SynopsysDWCEthernetQualityOfService", "systemClockFrequency": 50000000 },
                            "_": "Network.SynopsysEthernetMAC" },
    "st,stm32-i2c-v1": "I2C.STM32F1_I2C",
    "st,stm32-i2c-v2": "I2C.STM32F7_I2C",
    "st,stm32mp13-rcc": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": false, "script": "request.Value = 0xffffffff" },
    "st,stm32mp15-i2c": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "st,stm32mp157-syscfg": { "type": "Python.PythonPeripheral", "size": 0x400, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "st,stm32-hsem-mailbox": "Miscellaneous.STM32H7_HardwareSemaphore",
    "st,stm32-pwr": { "type": "Python.PythonPeripheral", "size": 0x400 , "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "st,stm32wb0-pwr": { "type": "Python.PythonPeripheral", "size": 0x400 , "initable": true, "filename": "scripts/pydev/flipflop.py" },

    "starfive,itim0": "Memory.MappedMemory",
    "starfive,rocket0": "CPU.RiscV32",

    "quicklogic,eos-s3-usbserial": "UART.USBSerialPort_S3B",
    "quicklogic,usbserialport-s3b": "UART.USBSerialPort_S3B",

    "ti,am4372-i2c": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": false, "script": "request.Value = 0x1" },
    "ti,am654-uart": "UART.NS16550",
    "ti,am654-secure-proxy":  { "type": "Python.PythonPeripheral", "size": 0x100000, "initable": true, "filename": "scripts/pydev/flipflop.py" },
    "ti,am4372-uart": "UART.NS16550",
    "ti,am3352-uart": "UART.NS16550",
    "ti,am335x-timer": { "type": "Timers.OMAP_Timer", "frequency": 4000000 },
    "ti,am4372-timer": { "type": "Timers.OMAP_Timer", "frequency": 4000000 },
    "ti,omap5430-timer": { "type": "Timers.OMAP_Timer", "frequency": 4000000 },
    "ti,am4-prcm": { "type": "Python.PythonPeripheral", "size": 0x11000, "initable": true, "filename": "scripts/pydev/rolling-bit.py" },
    "ti,cc13xx-cc26xx-uart": "UART.PL011",
    "ti,cc23x0-uart": "UART.PL011",
    "ti,omap2-uart": "UART.NS16550",
    "ti,omap3-uart": "UART.NS16550",
    "ti,omap4-uart": "UART.NS16550",
    "ti,omap4-i2c": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": false, "script": "request.Value = 0x1" },
    "ti,omap5-dmm": { "type": "Python.PythonPeripheral", "size": 0x800, "initable": false, "script": "request.Value = {0x40: 0x80640000}.get(request.Offset, 0)" },
    "ti,stellaris-uart": "UART.PL011",

    "xlnx,xuartps": "UART.Cadence_UART",
    "xlnx,zynq-slcr": { "type": "Python.PythonPeripheral", "size": 0x200, "initable": false, "script": "request.Value = {0x100: 0x0001A008, 0x120: 0x1F000400, 0x124: 0x18400003}.get(request.Offset, 0)" },
    "xlnx,zynqmp-ipi-mailbox": { "type": "Python.PythonPeripheral", "size": 0x1000, "initable": false, "script": "request.Value = {0x24: 0x10000, 0x1e4: 0x10000}.get(request.Offset, 0)" },
    "xlnx,zynqmp-uart": "UART.Cadence_UART",
    "xlnx,xps-uartlite-1.00.a": "UART.AxiUartLite",

    "silabs,gecko-i2c": "I2C.EFR32xG2_I2CController",

    "silabs,si7210": "Sensors.SI7210",
    "ti,tmp108": "Sensors.TMP108",
    "ti,tmp103": "Sensors.TMP103",
    "st,lis2ds12": "Sensors.LIS2DS12",
    "st,lsm303dlhc-accel": "Sensors.LSM303DLHC_Accelerometer",

    "focaltech,ft9001-cpm": "Miscellaneous.FocalTechFT9001_CPM",
    "focaltech,ft9001-usart": "UART.FT9001_USART",

    "vishay,veml7700": "Sensors.VEML7700"
}
