From c6a7ecda932d5b7e9a3c1973c96c59b5ac909b1c Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Thu, 12 Mar 2020 12:55:39 -0500 Subject: [PATCH] Revert "scripts: gen_defines: re-work write_irqs() with augmented nodes" This reverts commit f68da76d364aa8a9acdbe53c8235364be4bb4f54. Reverted as the changes to gen_defines.py break things. Signed-off-by: Kumar Gala --- scripts/dts/gen_defines.py | 54 ++++++++++++++------------------------ 1 file changed, 19 insertions(+), 35 deletions(-) diff --git a/scripts/dts/gen_defines.py b/scripts/dts/gen_defines.py index 098fd85e310..2cd590e5da1 100755 --- a/scripts/dts/gen_defines.py +++ b/scripts/dts/gen_defines.py @@ -625,39 +625,14 @@ def write_irqs(node): # Writes IRQ num and data for the interrupts in the node's 'interrupt' # property - if not node.interrupts: - return + def irq_name_alias(irq, cell_name): + if not irq.name: + return None - # maps (irq_i, cell_name) to the primary macro for that pair, - # if there is one. - irq_cell2primary_macro = {} - - def write_irqs_for_ident(node, ident): - # Like write_regs_for_ident(), but for interrupts. - - for irq_i, irq in enumerate(node.interrupts): - for cell_name, cell_value in irq.data.items(): - if cell_name == "irq": - if "arm,gic" in irq.controller.compats: - cell_value = map_arm_gic_irq_type(irq, cell_value) - cell_value = encode_zephyr_multi_level_irq(irq, cell_value) - name_suffix = "" - else: - name_suffix = f"_{str2ident(cell_name)}" - - # DT__IRQ_[_] - idx_macro = f"{ident}_IRQ_{irq_i}{name_suffix}" - primary_macro = irq_cell2primary_macro.get((irq_i, cell_name)) - if primary_macro is not None: - out(idx_macro, primary_macro) - else: - primary_macro = out(idx_macro, cell_value) - irq_cell2primary_macro[(irq_i, cell_name)] = primary_macro - - # DT__IRQ_[_] - if irq.name: - out(f"{ident}_IRQ_{str2ident(irq.name)}{name_suffix}", - primary_macro) + alias = f"IRQ_{str2ident(irq.name)}" + if cell_name != "irq": + alias += f"_{str2ident(cell_name)}" + return alias def map_arm_gic_irq_type(irq, irq_num): # Maps ARM GIC IRQ (type)+(index) combo to linear IRQ number @@ -687,9 +662,18 @@ def write_irqs(node): irq_ctrl = irq_ctrl.interrupts[0].controller return irq_num - out_comment("IRQ macros from the 'interrupts' property", - blank_before=False) - for_each_ident(node, write_irqs_for_ident) + for irq_i, irq in enumerate(node.interrupts): + for cell_name, cell_value in irq.data.items(): + ident = f"IRQ_{irq_i}" + if cell_name == "irq": + if "arm,gic" in irq.controller.compats: + cell_value = map_arm_gic_irq_type(irq, cell_value) + cell_value = encode_zephyr_multi_level_irq(irq, cell_value) + else: + ident += f"_{str2ident(cell_name)}" + + out_node(node, ident, cell_value, + name_alias=irq_name_alias(irq, cell_name)) def write_spi_dev(node):