diff --git a/arch/arm/soc/nxp_imx/rt/dts.fixup b/arch/arm/soc/nxp_imx/rt/dts.fixup index 9c4b6add3a6..69bc7e32216 100644 --- a/arch/arm/soc/nxp_imx/rt/dts.fixup +++ b/arch/arm/soc/nxp_imx/rt/dts.fixup @@ -31,6 +31,6 @@ #define CONFIG_UART_MCUX_LPUART_1_IRQ_PRI NXP_KINETIS_LPUART_40184000_IRQ_0_PRIORITY #define CONFIG_UART_MCUX_LPUART_1_BAUD_RATE NXP_KINETIS_LPUART_40184000_CURRENT_SPEED #define CONFIG_UART_MCUX_LPUART_1_CLOCK_NAME NXP_IMX_CCM_400FC000_LABEL -#define CONFIG_UART_MCUX_LPUART_1_CLOCK_SUBSYS NXP_KINETIS_LPUART_40184000_CCM_CLK_NAME +#define CONFIG_UART_MCUX_LPUART_1_CLOCK_SUBSYS NXP_KINETIS_LPUART_40184000_CLOCK_NAME /* End of SoC Level DTS fixup file */ diff --git a/arch/arm/soc/nxp_kinetis/k6x/dts.fixup b/arch/arm/soc/nxp_kinetis/k6x/dts.fixup index ba6447e40f4..b8aa16cb732 100644 --- a/arch/arm/soc/nxp_kinetis/k6x/dts.fixup +++ b/arch/arm/soc/nxp_kinetis/k6x/dts.fixup @@ -8,7 +8,7 @@ #define CONFIG_UART_MCUX_0_IRQ_STATUS NXP_KINETIS_UART_4006A000_IRQ_STATUS #define CONFIG_UART_MCUX_0_IRQ_STATUS_PRI NXP_KINETIS_UART_4006A000_IRQ_STATUS_PRIORITY #define CONFIG_UART_MCUX_0_CLOCK_NAME NXP_KINETIS_SIM_40047000_LABEL -#define CONFIG_UART_MCUX_0_CLOCK_SUBSYS NXP_KINETIS_UART_4006A000_SIM_CLK_NAME +#define CONFIG_UART_MCUX_0_CLOCK_SUBSYS NXP_KINETIS_UART_4006A000_CLOCK_NAME #define CONFIG_UART_MCUX_1_BAUD_RATE NXP_KINETIS_UART_4006B000_CURRENT_SPEED #define CONFIG_UART_MCUX_1_NAME NXP_KINETIS_UART_4006B000_LABEL @@ -17,7 +17,7 @@ #define CONFIG_UART_MCUX_1_IRQ_STATUS NXP_KINETIS_UART_4006B000_IRQ_STATUS #define CONFIG_UART_MCUX_1_IRQ_STATUS_PRI NXP_KINETIS_UART_4006B000_IRQ_STATUS_PRIORITY #define CONFIG_UART_MCUX_1_CLOCK_NAME NXP_KINETIS_SIM_40047000_LABEL -#define CONFIG_UART_MCUX_1_CLOCK_SUBSYS NXP_KINETIS_UART_4006B000_SIM_CLK_NAME +#define CONFIG_UART_MCUX_1_CLOCK_SUBSYS NXP_KINETIS_UART_4006B000_CLOCK_NAME #define CONFIG_UART_MCUX_2_BAUD_RATE NXP_KINETIS_UART_4006C000_CURRENT_SPEED #define CONFIG_UART_MCUX_2_NAME NXP_KINETIS_UART_4006C000_LABEL @@ -26,7 +26,7 @@ #define CONFIG_UART_MCUX_2_IRQ_STATUS NXP_KINETIS_UART_4006C000_IRQ_STATUS #define CONFIG_UART_MCUX_2_IRQ_STATUS_PRI NXP_KINETIS_UART_4006C000_IRQ_STATUS_PRIORITY #define CONFIG_UART_MCUX_2_CLOCK_NAME NXP_KINETIS_SIM_40047000_LABEL -#define CONFIG_UART_MCUX_2_CLOCK_SUBSYS NXP_KINETIS_UART_4006C000_SIM_CLK_NAME +#define CONFIG_UART_MCUX_2_CLOCK_SUBSYS NXP_KINETIS_UART_4006C000_CLOCK_NAME #define CONFIG_UART_MCUX_3_BAUD_RATE NXP_KINETIS_UART_4006D000_CURRENT_SPEED #define CONFIG_UART_MCUX_3_NAME NXP_KINETIS_UART_4006D000_LABEL @@ -35,7 +35,7 @@ #define CONFIG_UART_MCUX_3_IRQ_STATUS NXP_KINETIS_UART_4006D000_IRQ_STATUS #define CONFIG_UART_MCUX_3_IRQ_STATUS_PRI NXP_KINETIS_UART_4006D000_IRQ_STATUS_PRIORITY #define CONFIG_UART_MCUX_3_CLOCK_NAME NXP_KINETIS_SIM_40047000_LABEL -#define CONFIG_UART_MCUX_3_CLOCK_SUBSYS NXP_KINETIS_UART_4006D000_SIM_CLK_NAME +#define CONFIG_UART_MCUX_3_CLOCK_SUBSYS NXP_KINETIS_UART_4006D000_CLOCK_NAME #define CONFIG_UART_MCUX_4_BAUD_RATE NXP_KINETIS_UART_400EA000_CURRENT_SPEED #define CONFIG_UART_MCUX_4_NAME NXP_KINETIS_UART_400EA000_LABEL @@ -44,7 +44,7 @@ #define CONFIG_UART_MCUX_4_IRQ_STATUS NXP_KINETIS_UART_400EA000_IRQ_STATUS #define CONFIG_UART_MCUX_4_IRQ_STATUS_PRI NXP_KINETIS_UART_400EA000_IRQ_STATUS_PRIORITY #define CONFIG_UART_MCUX_4_CLOCK_NAME NXP_KINETIS_SIM_40047000_LABEL -#define CONFIG_UART_MCUX_4_CLOCK_SUBSYS NXP_KINETIS_UART_400EA000_SIM_CLK_NAME +#define CONFIG_UART_MCUX_4_CLOCK_SUBSYS NXP_KINETIS_UART_400EA000_CLOCK_NAME #define CONFIG_UART_MCUX_5_BAUD_RATE NXP_KINETIS_UART_400EB000_CURRENT_SPEED #define CONFIG_UART_MCUX_5_NAME NXP_KINETIS_UART_400EB000_LABEL @@ -53,7 +53,7 @@ #define CONFIG_UART_MCUX_5_IRQ_STATUS NXP_KINETIS_UART_400EB000_IRQ_STATUS #define CONFIG_UART_MCUX_5_IRQ_STATUS_PRI NXP_KINETIS_UART_400EB000_IRQ_STATUS_PRIORITY #define CONFIG_UART_MCUX_5_CLOCK_NAME NXP_KINETIS_SIM_40047000_LABEL -#define CONFIG_UART_MCUX_5_CLOCK_SUBSYS NXP_KINETIS_UART_400EB000_SIM_CLK_NAME +#define CONFIG_UART_MCUX_5_CLOCK_SUBSYS NXP_KINETIS_UART_400EB000_CLOCK_NAME #define CONFIG_ADC_0_BASE_ADDRESS NXP_KINETIS_ADC16_4003B000_BASE_ADDRESS #define CONFIG_ADC_0_IRQ NXP_KINETIS_ADC16_4003B000_IRQ_0 diff --git a/arch/arm/soc/nxp_kinetis/kl2x/dts.fixup b/arch/arm/soc/nxp_kinetis/kl2x/dts.fixup index 40566301a3b..34158f143bf 100644 --- a/arch/arm/soc/nxp_kinetis/kl2x/dts.fixup +++ b/arch/arm/soc/nxp_kinetis/kl2x/dts.fixup @@ -2,7 +2,7 @@ #define CONFIG_NUM_IRQ_PRIO_BITS ARM_V6M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS #define CONFIG_UART_MCUX_LPSCI_0_NAME NXP_KINETIS_LPSCI_4006A000_LABEL #define CONFIG_UART_MCUX_LPSCI_0_CLOCK_NAME NXP_KINETIS_SIM_40047000_LABEL -#define CONFIG_UART_MCUX_LPSCI_0_CLOCK_SUBSYS NXP_KINETIS_LPSCI_4006A000_SIM_CLK_NAME +#define CONFIG_UART_MCUX_LPSCI_0_CLOCK_SUBSYS NXP_KINETIS_LPSCI_4006A000_CLOCK_NAME #define CONFIG_ADC_0_BASE_ADDRESS NXP_KINETIS_ADC16_4003B000_BASE_ADDRESS #define CONFIG_ADC_0_IRQ NXP_KINETIS_ADC16_4003B000_IRQ_0 diff --git a/arch/arm/soc/nxp_kinetis/kwx/dts.fixup b/arch/arm/soc/nxp_kinetis/kwx/dts.fixup index b85a471a8bd..f0b1433842a 100644 --- a/arch/arm/soc/nxp_kinetis/kwx/dts.fixup +++ b/arch/arm/soc/nxp_kinetis/kwx/dts.fixup @@ -35,7 +35,7 @@ #define CONFIG_UART_MCUX_0_IRQ_STATUS NXP_KINETIS_UART_4006A000_IRQ_STATUS #define CONFIG_UART_MCUX_0_IRQ_STATUS_PRI NXP_KINETIS_UART_4006A000_IRQ_STATUS_PRIORITY #define CONFIG_UART_MCUX_0_CLOCK_NAME NXP_KINETIS_SIM_40047000_LABEL -#define CONFIG_UART_MCUX_0_CLOCK_SUBSYS NXP_KINETIS_UART_4006A000_SIM_CLK_NAME +#define CONFIG_UART_MCUX_0_CLOCK_SUBSYS NXP_KINETIS_UART_4006A000_CLOCK_NAME #define CONFIG_UART_MCUX_1_BAUD_RATE NXP_KINETIS_UART_4006B000_CURRENT_SPEED #define CONFIG_UART_MCUX_1_NAME NXP_KINETIS_UART_4006B000_LABEL @@ -44,7 +44,7 @@ #define CONFIG_UART_MCUX_1_IRQ_STATUS NXP_KINETIS_UART_4006B000_IRQ_STATUS #define CONFIG_UART_MCUX_1_IRQ_STATUS_PRI NXP_KINETIS_UART_4006B000_IRQ_STATUS_PRIORITY #define CONFIG_UART_MCUX_1_CLOCK_NAME NXP_KINETIS_SIM_40047000_LABEL -#define CONFIG_UART_MCUX_1_CLOCK_SUBSYS NXP_KINETIS_UART_4006B000_SIM_CLK_NAME +#define CONFIG_UART_MCUX_1_CLOCK_SUBSYS NXP_KINETIS_UART_4006B000_CLOCK_NAME #define CONFIG_UART_MCUX_2_BAUD_RATE NXP_KINETIS_UART_4006C000_CURRENT_SPEED #define CONFIG_UART_MCUX_2_NAME NXP_KINETIS_UART_4006C000_LABEL @@ -53,7 +53,7 @@ #define CONFIG_UART_MCUX_2_IRQ_STATUS NXP_KINETIS_UART_4006C000_IRQ_STATUS #define CONFIG_UART_MCUX_2_IRQ_STATUS_PRI NXP_KINETIS_UART_4006C000_IRQ_STATUS_PRIORITY #define CONFIG_UART_MCUX_2_CLOCK_NAME NXP_KINETIS_SIM_40047000_LABEL -#define CONFIG_UART_MCUX_2_CLOCK_SUBSYS NXP_KINETIS_UART_4006C000_SIM_CLK_NAME +#define CONFIG_UART_MCUX_2_CLOCK_SUBSYS NXP_KINETIS_UART_4006C000_CLOCK_NAME #define CONFIG_UART_MCUX_3_BAUD_RATE NXP_KINETIS_UART_4006D000_CURRENT_SPEED #define CONFIG_UART_MCUX_3_NAME NXP_KINETIS_UART_4006D000_LABEL @@ -62,7 +62,7 @@ #define CONFIG_UART_MCUX_3_IRQ_STATUS NXP_KINETIS_UART_4006D000_IRQ_STATUS #define CONFIG_UART_MCUX_3_IRQ_STATUS_PRI NXP_KINETIS_UART_4006D000_IRQ_STATUS_PRIORITY #define CONFIG_UART_MCUX_3_CLOCK_NAME NXP_KINETIS_SIM_40047000_LABEL -#define CONFIG_UART_MCUX_3_CLOCK_SUBSYS NXP_KINETIS_UART_4006D000_SIM_CLK_NAME +#define CONFIG_UART_MCUX_3_CLOCK_SUBSYS NXP_KINETIS_UART_4006D000_CLOCK_NAME #define FLASH_DEV_BASE_ADDRESS NXP_KINETIS_FTFL_40020000_BASE_ADDRESS #define FLASH_DEV_NAME NXP_KINETIS_FTFL_40020000_LABEL @@ -76,7 +76,7 @@ #define CONFIG_UART_MCUX_LPUART_0_IRQ_PRI NXP_KINETIS_LPUART_40054000_IRQ_0_PRIORITY #define CONFIG_UART_MCUX_LPUART_0_NAME NXP_KINETIS_LPUART_40054000_LABEL #define CONFIG_UART_MCUX_LPUART_0_CLOCK_NAME NXP_KINETIS_SIM_40047000_LABEL -#define CONFIG_UART_MCUX_LPUART_0_CLOCK_SUBSYS NXP_KINETIS_LPUART_40054000_SIM_CLK_NAME +#define CONFIG_UART_MCUX_LPUART_0_CLOCK_SUBSYS NXP_KINETIS_LPUART_40054000_CLOCK_NAME #define FLASH_DEV_BASE_ADDRESS NXP_KINETIS_FTFA_40020000_BASE_ADDRESS #define FLASH_DEV_NAME NXP_KINETIS_FTFA_40020000_LABEL diff --git a/dts/bindings/arm/nxp,kinetis-sim.yaml b/dts/bindings/arm/nxp,kinetis-sim.yaml index e30075893e3..4bd8cd649a7 100644 --- a/dts/bindings/arm/nxp,kinetis-sim.yaml +++ b/dts/bindings/arm/nxp,kinetis-sim.yaml @@ -30,8 +30,6 @@ properties: description: Human readable string describing the device (used by Zephyr for API name) generation: define -cell_string: SIM_CLK - "#cells": - name - offset diff --git a/dts/bindings/arm/nxp,kw41z-sim.yaml b/dts/bindings/arm/nxp,kw41z-sim.yaml index 4035c5aa576..2986ff72edc 100644 --- a/dts/bindings/arm/nxp,kw41z-sim.yaml +++ b/dts/bindings/arm/nxp,kw41z-sim.yaml @@ -18,8 +18,6 @@ properties: generation: define category: required -cell_string: SIM_CLK - "#cells": - offset - bits diff --git a/dts/bindings/clock/nxp,imx-ccm.yaml b/dts/bindings/clock/nxp,imx-ccm.yaml index f2f5716f073..c176e0da514 100644 --- a/dts/bindings/clock/nxp,imx-ccm.yaml +++ b/dts/bindings/clock/nxp,imx-ccm.yaml @@ -30,8 +30,6 @@ properties: description: Human readable string describing the device (used by Zephyr for API name) generation: define -cell_string: CCM_CLK - "#cells": - name - offset diff --git a/dts/bindings/clock/st,stm32-rcc.yaml b/dts/bindings/clock/st,stm32-rcc.yaml index 887396fe2cf..2e93da9ac83 100644 --- a/dts/bindings/clock/st,stm32-rcc.yaml +++ b/dts/bindings/clock/st,stm32-rcc.yaml @@ -19,8 +19,6 @@ properties: generation: define category: required -cell_string: CLOCKS - "#cells": - bus - bits diff --git a/dts/bindings/device_node.yaml.template b/dts/bindings/device_node.yaml.template index 539aa3c2f10..cf88e4b93c6 100644 --- a/dts/bindings/device_node.yaml.template +++ b/dts/bindings/device_node.yaml.template @@ -50,7 +50,6 @@ properties: # If a node is a interrupt controller, gpio controller, pinmux device # or any device which is referenced via phandle plus some number of cells # then the cell fiels below must be present. -cell_string: "#cells": - cell0 # name of first cell diff --git a/dts/bindings/gpio/nxp,imx-gpio.yaml b/dts/bindings/gpio/nxp,imx-gpio.yaml index e7200b9854e..4a381bed461 100644 --- a/dts/bindings/gpio/nxp,imx-gpio.yaml +++ b/dts/bindings/gpio/nxp,imx-gpio.yaml @@ -35,8 +35,6 @@ properties: description: Human readable string describing the device (used by Zephyr for API name) generation: define -cell_string: GPIO - "#cells": - pin - flags diff --git a/dts/bindings/gpio/nxp,kinetis-gpio.yaml b/dts/bindings/gpio/nxp,kinetis-gpio.yaml index 43f8470a884..89cfdc0e880 100644 --- a/dts/bindings/gpio/nxp,kinetis-gpio.yaml +++ b/dts/bindings/gpio/nxp,kinetis-gpio.yaml @@ -30,8 +30,6 @@ properties: description: Human readable string describing the device (used by Zephyr for API name) generation: define -cell_string: GPIO - "#cells": - pin - flags diff --git a/dts/bindings/gpio/st,stm32-gpio.yaml b/dts/bindings/gpio/st,stm32-gpio.yaml index 89fcda81565..36b824a3a64 100644 --- a/dts/bindings/gpio/st,stm32-gpio.yaml +++ b/dts/bindings/gpio/st,stm32-gpio.yaml @@ -42,8 +42,6 @@ properties: description: Clock gate control information generation: define -cell_string: GPIO - "#cells": - pin - flags diff --git a/dts/bindings/interrupt-controller/arm,v6m-nvic.yaml b/dts/bindings/interrupt-controller/arm,v6m-nvic.yaml index 2543a13672e..414104bc458 100644 --- a/dts/bindings/interrupt-controller/arm,v6m-nvic.yaml +++ b/dts/bindings/interrupt-controller/arm,v6m-nvic.yaml @@ -24,8 +24,6 @@ properties: description: number of bits of IRQ priorities generation: define -cell_string: IRQ - "#cells": - irq - priority diff --git a/dts/bindings/interrupt-controller/arm,v7m-nvic.yaml b/dts/bindings/interrupt-controller/arm,v7m-nvic.yaml index 2d33d90c965..4429661c969 100644 --- a/dts/bindings/interrupt-controller/arm,v7m-nvic.yaml +++ b/dts/bindings/interrupt-controller/arm,v7m-nvic.yaml @@ -24,8 +24,6 @@ properties: description: number of bits of IRQ priorities generation: define -cell_string: IRQ - "#cells": - irq - priority diff --git a/dts/bindings/interrupt-controller/arm,v8m-nvic.yaml b/dts/bindings/interrupt-controller/arm,v8m-nvic.yaml index d09427ffc62..aa664773711 100644 --- a/dts/bindings/interrupt-controller/arm,v8m-nvic.yaml +++ b/dts/bindings/interrupt-controller/arm,v8m-nvic.yaml @@ -24,8 +24,6 @@ properties: description: number of bits of IRQ priorities generation: define -cell_string: IRQ - "#cells": - irq - priority diff --git a/dts/bindings/interrupt-controller/intel,ioapic.yaml b/dts/bindings/interrupt-controller/intel,ioapic.yaml index bf6e15c4a8a..9fb688129ca 100644 --- a/dts/bindings/interrupt-controller/intel,ioapic.yaml +++ b/dts/bindings/interrupt-controller/intel,ioapic.yaml @@ -25,8 +25,6 @@ properties: description: number of bits of IRQ priorities generation: define -cell_string: IRQ - "#cells": - irq - sense diff --git a/dts/bindings/interrupt-controller/intel,mvic.yaml b/dts/bindings/interrupt-controller/intel,mvic.yaml index 568f7163a70..736ed6a0aaa 100644 --- a/dts/bindings/interrupt-controller/intel,mvic.yaml +++ b/dts/bindings/interrupt-controller/intel,mvic.yaml @@ -25,8 +25,6 @@ properties: description: number of bits of IRQ priorities generation: define -cell_string: IRQ - "#cells": - irq - sense diff --git a/dts/bindings/interrupt-controller/snps,arcv2-intc.yaml b/dts/bindings/interrupt-controller/snps,arcv2-intc.yaml index 04d016e9863..0b56767cd91 100644 --- a/dts/bindings/interrupt-controller/snps,arcv2-intc.yaml +++ b/dts/bindings/interrupt-controller/snps,arcv2-intc.yaml @@ -29,8 +29,6 @@ properties: description: number of bits of IRQ priorities generation: define -cell_string: IRQ - "#cells": - irq - priority diff --git a/dts/bindings/pinctrl/atmel,sam0-pinmux.yaml b/dts/bindings/pinctrl/atmel,sam0-pinmux.yaml index 95744aa20c7..66afb6164f5 100644 --- a/dts/bindings/pinctrl/atmel,sam0-pinmux.yaml +++ b/dts/bindings/pinctrl/atmel,sam0-pinmux.yaml @@ -25,8 +25,6 @@ properties: description: Human readable string describing the device (used by Zephyr for API name) generation: define -cell_string: PINMUX - "#cells": - pin - function diff --git a/dts/bindings/pinctrl/nxp,kinetis-pinmux.yaml b/dts/bindings/pinctrl/nxp,kinetis-pinmux.yaml index eb49b3518d3..bc11ef17507 100644 --- a/dts/bindings/pinctrl/nxp,kinetis-pinmux.yaml +++ b/dts/bindings/pinctrl/nxp,kinetis-pinmux.yaml @@ -24,8 +24,6 @@ properties: generation: define category: required -cell_string: PINMUX - "#cells": - pin - function diff --git a/dts/bindings/pinctrl/st,stm32-pinmux.yaml b/dts/bindings/pinctrl/st,stm32-pinmux.yaml index f1e8da87142..72d6fe0d0f0 100644 --- a/dts/bindings/pinctrl/st,stm32-pinmux.yaml +++ b/dts/bindings/pinctrl/st,stm32-pinmux.yaml @@ -19,8 +19,6 @@ properties: generation: define category: required -cell_string: PINMUX - "#cells": - pin - function diff --git a/dts/bindings/pinctrl/ti,cc2650-pinmux.yaml b/dts/bindings/pinctrl/ti,cc2650-pinmux.yaml index 8d8d5a9fb5d..623bc97d7c1 100644 --- a/dts/bindings/pinctrl/ti,cc2650-pinmux.yaml +++ b/dts/bindings/pinctrl/ti,cc2650-pinmux.yaml @@ -19,8 +19,6 @@ properties: generation: define category: required -cell_string: PINMUX - "#cells": - pin - function diff --git a/scripts/dts/extract_dts_includes.py b/scripts/dts/extract_dts_includes.py index 6e3daaef49c..9a533d16cc1 100755 --- a/scripts/dts/extract_dts_includes.py +++ b/scripts/dts/extract_dts_includes.py @@ -92,8 +92,7 @@ def extract_interrupts(node_address, yaml, prop, names, defs, def_label): name = [] cell_yaml = yaml[get_compat(irq_parent)] - l_cell_prefix = [yaml[get_compat(irq_parent)].get( - 'cell_string', []).upper()] + l_cell_prefix = ['IRQ'] for i in range(reduced[irq_parent]['props']['#interrupt-cells']): l_cell_name = [cell_yaml['#cells'][i].upper()] @@ -188,7 +187,7 @@ def extract_reg_prop(node_address, names, defs, def_label, div, post_label): index += 1 -def extract_controller(node_address, prop, prop_values, index, defs, def_label): +def extract_controller(node_address, yaml, prop, prop_values, index, defs, def_label, generic): prop_def = {} prop_alias = {} @@ -220,9 +219,18 @@ def extract_controller(node_address, prop, prop_values, index, defs, def_label): else: l_idx = [str(index)] - for k in reduced[cell_parent]['props']: - if 'controller' in k: - l_cellname = convert_string_to_label(str(k)) + # Check node generation requirements + try: + generation = yaml[get_compat(node_address)]['properties'][prop][ + 'generation'] + except: + generation = '' + + if 'use-prop-name' in generation: + l_cellname = convert_string_to_label(prop + '_' + 'controller') + else: + l_cellname = convert_string_to_label(generic + '_' + 'controller') + label = l_base + [l_cellname] + l_idx prop_def['_'.join(label)] = "\"" + l_cell + "\"" @@ -247,7 +255,7 @@ def extract_controller(node_address, prop, prop_values, index, defs, def_label): def extract_cells(node_address, yaml, prop, prop_values, names, index, defs, - def_label): + def_label, generic): cell_parent = phandles[prop_values.pop(0)] @@ -267,9 +275,17 @@ def extract_cells(node_address, yaml, prop, prop_values, names, index, defs, for k in reduced[cell_parent]['props'].keys(): if k[0] == '#' and '-cells' in k: num_cells = reduced[cell_parent]['props'].get(k) + try: + generation = yaml[get_compat(node_address)]['properties'][prop][ + 'generation'] + except: + generation = '' + + if 'use-prop-name' in generation: + l_cell = [convert_string_to_label(str(prop))] + else: + l_cell = [convert_string_to_label(str(generic))] - # Generate label for each field of the property element - l_cell = [str(cell_yaml.get('cell_string', ''))] l_base = def_label.split('/') # Check if #define should be indexed (_0, _1, ...) if index == 0 and len(prop_values) < (num_cells + 2): @@ -306,12 +322,14 @@ def extract_cells(node_address, yaml, prop, prop_values, names, index, defs, # recurse if we have anything left if len(prop_values): extract_cells(node_address, yaml, prop, prop_values, names, - index + 1, defs, def_label) + index + 1, defs, def_label, generic) -def extract_pinctrl(node_address, yaml, pinconf, names, index, defs, +def extract_pinctrl(node_address, yaml, prop, names, index, defs, def_label): + pinconf = reduced[node_address]['props'][prop] + prop_list = [] if not isinstance(pinconf, list): prop_list.append(pinconf) @@ -325,7 +343,7 @@ def extract_pinctrl(node_address, yaml, pinconf, names, index, defs, pin_node_address = phandles[p] pin_subnode = '/'.join(pin_node_address.split('/')[-1:]) cell_yaml = yaml[get_compat(pin_node_address)] - cell_prefix = cell_yaml.get('cell_string', None) + cell_prefix = 'PINMUX' post_fix = [] if cell_prefix is not None: @@ -458,19 +476,28 @@ def extract_property(node_compat, yaml, node_address, prop, prop_val, names, extract_interrupts(node_address, yaml, prop, names, defs, def_label) elif 'pinctrl-' in prop: p_index = int(prop.split('-')[1]) - extract_pinctrl(node_address, yaml, - reduced[node_address]['props'][prop], + extract_pinctrl(node_address, yaml, prop, names[p_index], p_index, defs, def_label) - elif 'clocks' in prop or 'gpios' in prop: + elif 'clocks' in prop: try: prop_values = list(reduced[node_address]['props'].get(prop)) except: prop_values = reduced[node_address]['props'].get(prop) - extract_controller(node_address, prop, prop_values, 0, defs, - def_label) + extract_controller(node_address, yaml, prop, prop_values, 0, defs, + def_label, 'clock') extract_cells(node_address, yaml, prop, prop_values, - names, 0, defs, def_label) + names, 0, defs, def_label, 'clock') + elif 'gpios' in prop: + try: + prop_values = list(reduced[node_address]['props'].get(prop)) + except: + prop_values = reduced[node_address]['props'].get(prop) + + extract_controller(node_address, yaml, prop, prop_values, 0, defs, + def_label, 'gpio') + extract_cells(node_address, yaml, prop, prop_values, + names, 0, defs, def_label, 'gpio') else: extract_single(node_address, yaml, reduced[node_address]['props'][prop], prop,