From 93d3a42776d5e0bddd9b2e061c5a46ee7d9ede16 Mon Sep 17 00:00:00 2001 From: Erwan Gouriou Date: Fri, 4 May 2018 14:37:31 +0200 Subject: [PATCH] scripts: extract_includes_dts: Remove usage of cell_string yaml attribute 'cell_string' yaml attribute has been introduced in order to help enforcement of specific string during defines generation. This adds complexity in understanding script behavior as a black box and create additional dependency which is not strictly required. For node specific generation functions (pinctrl and interrupts), this could be replaced directly by an hardcoded version (as everyone used the same 'cell_string' anyway). For extract_cells functions, string could be replaced by extracted property name. As a consequence, we're now able to generate defines for properties refering to these controllers via phandle. For instance, in following node spbtle-rf@0 { compatible = "st,spbtle-rf"; reg = <0>; reset-gpios = <&gpioa 8 0>; }; We'll be able to generate: #define ST_STM32_SPI_...LE_RF_0_RESET_GPIOS_CONTROLLER "GPIOA" #define ST_STM32_SPI_...PBTLE_RF_0_RESET_GPIOS_FLAGS_0 0 #define ST_STM32_SPI_..._SPBTLE_RF_0_RESET_GPIOS_PIN_0 8 Only impact for this whole change is for NXP clocks which were the only ones using 'cell_string' attribute with a value different than the default one. Signed-off-by: Erwan Gouriou --- arch/arm/soc/nxp_imx/rt/dts.fixup | 2 +- arch/arm/soc/nxp_kinetis/k6x/dts.fixup | 12 ++-- arch/arm/soc/nxp_kinetis/kl2x/dts.fixup | 2 +- arch/arm/soc/nxp_kinetis/kwx/dts.fixup | 10 +-- dts/bindings/arm/nxp,kinetis-sim.yaml | 2 - dts/bindings/arm/nxp,kw41z-sim.yaml | 2 - dts/bindings/clock/nxp,imx-ccm.yaml | 2 - dts/bindings/clock/st,stm32-rcc.yaml | 2 - dts/bindings/device_node.yaml.template | 1 - dts/bindings/gpio/nxp,imx-gpio.yaml | 2 - dts/bindings/gpio/nxp,kinetis-gpio.yaml | 2 - dts/bindings/gpio/st,stm32-gpio.yaml | 2 - .../interrupt-controller/arm,v6m-nvic.yaml | 2 - .../interrupt-controller/arm,v7m-nvic.yaml | 2 - .../interrupt-controller/arm,v8m-nvic.yaml | 2 - .../interrupt-controller/intel,ioapic.yaml | 2 - .../interrupt-controller/intel,mvic.yaml | 2 - .../interrupt-controller/snps,arcv2-intc.yaml | 2 - dts/bindings/pinctrl/atmel,sam0-pinmux.yaml | 2 - dts/bindings/pinctrl/nxp,kinetis-pinmux.yaml | 2 - dts/bindings/pinctrl/st,stm32-pinmux.yaml | 2 - dts/bindings/pinctrl/ti,cc2650-pinmux.yaml | 2 - scripts/dts/extract_dts_includes.py | 63 +++++++++++++------ 23 files changed, 58 insertions(+), 66 deletions(-) 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,