g_slist_free_full(dec->outputs, g_free);
g_slist_free_full(dec->inputs, g_free);
+ g_slist_free_full(dec->tags, g_free);
g_free(dec->license);
g_free(dec->desc);
g_free(dec->longname);
goto err_out;
}
+ if (py_attr_as_strlist(d->py_dec, "tags", &(d->tags)) != SRD_OK) {
+ fail_txt = "missing or malformed 'tags' attribute";
+ goto err_out;
+ }
+
/* All options and their default values. */
if (get_options(d) != SRD_OK) {
fail_txt = "cannot get options";
license = 'gplv2+'
inputs = ['logic']
outputs = ['ac97']
+ tags = ['Logic', 'Audio']
channels = (
{'id': 'sync', 'name': 'SYNC', 'desc': 'Frame synchronization'},
{'id': 'clk', 'name': 'BIT_CLK', 'desc': 'Data bits clock'},
license = 'mit'
inputs = ['spi']
outputs = ['ade77xx']
+ tags = ['Logic', 'Sensors']
annotations = (
('read', 'Register read commands'),
('write', 'Register write commands'),
license = 'gplv3+'
inputs = ['spi']
outputs = ['adf435x']
+ tags = ['Logic']
annotations = (
# Sent from the host to the chip.
('register', 'Register written to the device'),
license = 'gplv2+'
inputs = ['spi']
outputs = ['adns5020']
+ tags = ['Logic', 'Sensors']
annotations = (
('read', 'Register read commands'),
('write', 'Register write commands'),
license = 'gplv2+'
inputs = ['logic']
outputs = ['am230x']
+ tags = ['Logic', 'Sensors']
channels = (
{'id': 'sda', 'name': 'SDA', 'desc': 'Single wire serial data line'},
)
license = 'gplv2+'
inputs = ['uart']
outputs = ['arm_etmv3']
+ tags = ['Logic', 'MCU Debugging']
annotations = (
('trace', 'Trace info'),
('branch', 'Branches'),
license = 'gplv2+'
inputs = ['uart']
outputs = ['arm_itm']
+ tags = ['Logic', 'MCU Debugging']
options = (
{'id': 'objdump', 'desc': 'objdump path',
'default': 'arm-none-eabi-objdump'},
license = 'gplv2+'
inputs = ['uart']
outputs = ['uart'] # Emulate uart output so that arm_itm/arm_etm can stack.
+ tags = ['Logic', 'MCU Debugging']
options = (
{'id': 'stream', 'desc': 'Stream index', 'default': 1},
{'id': 'sync_offset', 'desc': 'Initial sync offset', 'default': 0},
license = 'gplv2+'
inputs = ['i2c']
outputs = ['atsha204a']
+ tags = ['Logic']
annotations = (
('waddr', 'Word address'),
('count', 'Count'),
license = 'gplv2+'
inputs = ['logic']
outputs = ['aud']
+ tags = ['Logic', 'MCU Debugging']
channels = (
{'id': 'audck', 'name': 'AUDCK', 'desc': 'AUD clock'},
{'id': 'naudsync', 'name': 'nAUDSYNC', 'desc': 'AUD sync'},
license = 'gplv2+'
inputs = ['spi']
outputs = ['avr_isp']
+ tags = ['Logic', 'MCU Debugging']
annotations = (
('pe', 'Programming enable'),
('rsb0', 'Read signature byte 0'),
license = 'gplv2+'
inputs = ['logic']
outputs = ['pdi']
+ tags = ['Logic', 'MCU Debugging']
channels = (
{'id': 'reset', 'name': 'RESET', 'desc': 'RESET / PDI_CLK'},
{'id': 'data', 'name': 'DATA', 'desc': 'PDI_DATA'},
license = 'gplv2+'
inputs = ['logic']
outputs = ['can']
+ tags = ['Logic', 'Bus']
channels = (
{'id': 'can_rx', 'name': 'CAN RX', 'desc': 'CAN bus line'},
)
license = 'gplv2+'
inputs = ['logic']
outputs = ['cec']
+ tags = ['Logic', 'Bus', 'Video']
channels = (
{'id': 'cec', 'name': 'CEC', 'desc': 'CEC bus data'},
)
license = 'gplv2+'
inputs = ['logic']
outputs = []
+ tags = ['Logic', 'Tools']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
)
license = 'gplv3+'
inputs = ['i2c']
outputs = ['edid']
+ tags = ['Logic', 'Video', 'Bus']
annotations = (
('fields', 'EDID structure fields'),
('sections', 'EDID structure sections'),
license = 'gplv2+'
inputs = ['i2c']
outputs = ['eeprom24xx']
+ tags = ['Logic', 'Memory']
options = (
{'id': 'chip', 'desc': 'Chip', 'default': 'generic',
'values': tuple(chips.keys())},
license = 'gplv2+'
inputs = ['microwire']
outputs = ['eeprom93xx']
+ tags = ['Logic', 'Memory']
options = (
{'id': 'addresssize', 'desc': 'Address size', 'default': 8},
{'id': 'wordsize', 'desc': 'Word size', 'default': 16},
license = 'gplv2+'
inputs = ['logic']
outputs = ['em4100']
+ tags = ['Logic', 'Wireless']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
)
license = 'gplv2+'
inputs = ['logic']
outputs = ['em4305']
+ tags = ['Logic', 'Wireless']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
)
license = 'gplv2+'
inputs = ['logic']
outputs = ['guess_bitrate']
+ tags = ['Logic', 'Tools']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
)
license = 'gplv2+'
inputs = ['logic']
outputs = ['i2c']
+ tags = ['Logic', 'Bus']
channels = (
{'id': 'scl', 'name': 'SCL', 'desc': 'Serial clock line'},
{'id': 'sda', 'name': 'SDA', 'desc': 'Serial data line'},
license = 'gplv2+'
inputs = ['logic']
outputs = ['i2s']
+ tags = ['Logic', 'Bus', 'Audio']
channels = (
{'id': 'sck', 'name': 'SCK', 'desc': 'Bit clock line'},
{'id': 'ws', 'name': 'WS', 'desc': 'Word select line'},
license = 'gplv2+'
inputs = ['logic']
outputs = ['jtag']
+ tags = ['Logic', 'MCU Debugging', 'Bus']
channels = (
{'id': 'tdi', 'name': 'TDI', 'desc': 'Test data input'},
{'id': 'tdo', 'name': 'TDO', 'desc': 'Test data output'},
license = 'gplv2+'
inputs = ['jtag']
outputs = ['jtag_ejtag']
+ tags = ['Logic', 'MCU Debugging', 'Bus']
annotations = (
('instruction', 'Instruction'),
) + regs_items['ann'] + (
license = 'gplv2+'
inputs = ['jtag']
outputs = ['jtag_stm32']
+ tags = ['Logic', 'MCU Debugging', 'Bus']
annotations = (
('item', 'Item'),
('field', 'Field'),
license = 'gplv2+'
inputs = ['logic']
outputs = ['maple_bus']
+ tags = ['Logic', 'Bus']
channels = (
{'id': 'sdcka', 'name': 'SDCKA', 'desc': 'Data/clock line A'},
{'id': 'sdckb', 'name': 'SDCKB', 'desc': 'Data/clock line B'},
license = 'gplv2+'
inputs = ['uart']
outputs = ['midi']
+ tags = ['Logic', 'Bus', 'Audio']
annotations = (
('text-verbose', 'Human-readable text (verbose)'),
('text-sysreal-verbose', 'Human-readable SysReal text (verbose)'),
license = 'gplv2+'
inputs = ['logic']
outputs = ['parallel']
+ tags = ['Logic', 'Bus']
optional_channels = channel_list(NUM_CHANNELS)
options = (
{'id': 'clock_edge', 'desc': 'Clock edge to sample on',
license = 'gplv2+'
inputs = ['logic']
outputs = ['ps2']
+ tags = ['Logic', 'Bus']
channels = (
{'id': 'clk', 'name': 'Clock', 'desc': 'Clock line'},
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
license = 'gplv2+'
inputs = ['logic']
outputs = ['sdcard_sd']
+ tags = ['Logic', 'Memory']
channels = (
{'id': 'cmd', 'name': 'CMD', 'desc': 'Command'},
{'id': 'clk', 'name': 'CLK', 'desc': 'Clock'},
license = 'gplv2+'
inputs = ['spi']
outputs = ['sdcard_spi']
+ tags = ['Logic', 'Memory']
annotations = \
tuple(('cmd%d' % i, 'CMD%d' % i) for i in range(64)) + \
tuple(('acmd%d' % i, 'ACMD%d' % i) for i in range(64)) + ( \
license = 'gplv2+'
inputs = ['logic']
outputs = ['spi']
+ tags = ['Logic', 'Bus']
channels = (
{'id': 'clk', 'name': 'CLK', 'desc': 'Clock'},
)
license = 'gplv2+'
inputs = ['logic']
outputs = ['timing']
+ tags = ['Logic', 'Tools']
channels = (
{'id': 'data', 'name': 'Data', 'desc': 'Data line'},
)
license = 'gplv2+'
inputs = ['logic']
outputs = ['uart']
+ tags = ['Logic', 'Bus']
optional_channels = (
# Allow specifying only one of the signals, e.g. if only one data
# direction exists (or is relevant).
license = 'gplv3+'
inputs = ['logic']
outputs = ['z80']
+ tags = ['Logic', 'MCU Debugging']
channels = tuple({
'id': 'd%d' % i,
'name': 'D%d' % i,
/** List of possible decoder output IDs. */
GSList *outputs;
+ /** List of tags associated with this decoder. */
+ GSList *tags;
+
/** List of channels required by this decoder. */
GSList *channels;