arm: exx32: Add Silabs EFM32PG12B soc files

The Silicon Labs EFM32 Pearl Gecko MCU includes:

         * Cortex-M4F core at 40MHz
         * up to 1024KB of flash and 256KB of RAM
         * multiple low power peripherals

Ported from EFM32WG:
https://www.silabs.com/documents/public/application-notes/an0918.0-efm32_to_efm32jgpg_migration_guide.pdf

Signed-off-by: Gil Benkö <gil.benkoe@pm.me>
Signed-off-by: Christian Taedcke <hacking@taedcke.com>
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
Gil Benkö 2018-04-11 11:47:19 +02:00 committed by Kumar Gala
commit 1f6425b1d8
11 changed files with 553 additions and 0 deletions

View file

@ -0,0 +1,91 @@
/*
* Copyright (c) 2018, Christian Taedcke <hacking@taedcke.com>
*
* SPDX-License-Identifier: Apache-2.0
*/
/* SoC level DTS fixup file */
#define DT_NUM_IRQ_PRIO_BITS DT_ARM_V7M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS
#define DT_FLASH_DEV_BASE_ADDRESS DT_SILABS_GECKO_FLASH_CONTROLLER_400E0000_BASE_ADDRESS
#define DT_FLASH_DEV_NAME DT_SILABS_GECKO_FLASH_CONTROLLER_400E0000_LABEL
#define DT_USART_GECKO_0_BASE_ADDRESS DT_SILABS_GECKO_USART_40010000_BASE_ADDRESS
#define DT_USART_GECKO_0_CURRENT_SPEED DT_SILABS_GECKO_USART_40010000_CURRENT_SPEED
#define DT_USART_GECKO_0_IRQ_RX DT_SILABS_GECKO_USART_40010000_IRQ_0
#define DT_USART_GECKO_0_IRQ_RX_PRIORITY DT_SILABS_GECKO_USART_40010000_IRQ_0_PRIORITY
#define DT_USART_GECKO_0_IRQ_TX DT_SILABS_GECKO_USART_40010000_IRQ_1
#define DT_USART_GECKO_0_IRQ_TX_PRIORITY DT_SILABS_GECKO_USART_40010000_IRQ_1_PRIORITY
#define DT_USART_GECKO_0_LABEL DT_SILABS_GECKO_USART_40010000_LABEL
#define DT_USART_GECKO_0_LOCATION DT_SILABS_GECKO_USART_40010000_LOCATION
#define DT_USART_GECKO_0_SIZE DT_SILABS_GECKO_USART_40010000_SIZE
#define DT_USART_GECKO_1_BASE_ADDRESS DT_SILABS_GECKO_USART_40010400_BASE_ADDRESS
#define DT_USART_GECKO_1_CURRENT_SPEED DT_SILABS_GECKO_USART_40010400_CURRENT_SPEED
#define DT_USART_GECKO_1_IRQ_RX DT_SILABS_GECKO_USART_40010400_IRQ_0
#define DT_USART_GECKO_1_IRQ_RX_PRIORITY DT_SILABS_GECKO_USART_40010400_IRQ_0_PRIORITY
#define DT_USART_GECKO_1_IRQ_TX DT_SILABS_GECKO_USART_40010400_IRQ_1
#define DT_USART_GECKO_1_IRQ_TX_PRIORITY DT_SILABS_GECKO_USART_40010400_IRQ_1_PRIORITY
#define DT_USART_GECKO_1_LABEL DT_SILABS_GECKO_USART_40010400_LABEL
#define DT_USART_GECKO_1_LOCATION DT_SILABS_GECKO_USART_40010400_LOCATION
#define DT_USART_GECKO_1_SIZE DT_SILABS_GECKO_USART_40010400_SIZE
#define DT_USART_GECKO_2_BASE_ADDRESS DT_SILABS_GECKO_USART_40010800_BASE_ADDRESS
#define DT_USART_GECKO_2_CURRENT_SPEED DT_SILABS_GECKO_USART_40010800_CURRENT_SPEED
#define DT_USART_GECKO_2_IRQ_RX DT_SILABS_GECKO_USART_40010800_IRQ_0
#define DT_USART_GECKO_2_IRQ_RX_PRIORITY DT_SILABS_GECKO_USART_40010800_IRQ_0_PRIORITY
#define DT_USART_GECKO_2_IRQ_TX DT_SILABS_GECKO_USART_40010800_IRQ_1
#define DT_USART_GECKO_2_IRQ_TX_PRIORITY DT_SILABS_GECKO_USART_40010800_IRQ_1_PRIORITY
#define DT_USART_GECKO_2_LABEL DT_SILABS_GECKO_USART_40010800_LABEL
#define DT_USART_GECKO_2_LOCATION DT_SILABS_GECKO_USART_40010800_LOCATION
#define DT_USART_GECKO_2_SIZE DT_SILABS_GECKO_USART_40010800_SIZE
#define DT_USART_GECKO_3_BASE_ADDRESS DT_SILABS_GECKO_USART_40010C00_BASE_ADDRESS
#define DT_USART_GECKO_3_CURRENT_SPEED DT_SILABS_GECKO_USART_40010C00_CURRENT_SPEED
#define DT_USART_GECKO_3_IRQ_RX DT_SILABS_GECKO_USART_40010C00_IRQ_0
#define DT_USART_GECKO_3_IRQ_RX_PRIORITY DT_SILABS_GECKO_USART_40010C00_IRQ_0_PRIORITY
#define DT_USART_GECKO_3_IRQ_TX DT_SILABS_GECKO_USART_40010C00_IRQ_1
#define DT_USART_GECKO_3_IRQ_TX_PRIORITY DT_SILABS_GECKO_USART_40010C00_IRQ_1_PRIORITY
#define DT_USART_GECKO_3_LABEL DT_SILABS_GECKO_USART_40010C00_LABEL
#define DT_USART_GECKO_3_LOCATION DT_SILABS_GECKO_USART_40010C00_LOCATION
#define DT_USART_GECKO_3_SIZE DT_SILABS_GECKO_USART_40010C00_SIZE
#define DT_LEUART_GECKO_0_BASE_ADDRESS DT_SILABS_GECKO_LEUART_4004A000_BASE_ADDRESS
#define DT_LEUART_GECKO_0_CURRENT_SPEED DT_SILABS_GECKO_LEUART_4004A000_CURRENT_SPEED
#define DT_LEUART_GECKO_0_IRQ DT_SILABS_GECKO_LEUART_4004A000_IRQ_0
#define DT_LEUART_GECKO_0_IRQ_PRIORITY DT_SILABS_GECKO_LEUART_4004A000_IRQ_0_PRIORITY
#define DT_LEUART_GECKO_0_LABEL DT_SILABS_GECKO_LEUART_4004A000_LABEL
#define DT_LEUART_GECKO_0_LOCATION DT_SILABS_GECKO_LEUART_4004A000_LOCATION
#define DT_LEUART_GECKO_0_SIZE DT_SILABS_GECKO_LEUART_4004A000_SIZE
#define DT_GPIO_GECKO_COMMON_NAME DT_SILABS_EFM32_GPIO_4000A400_LABEL
#define DT_GPIO_GECKO_COMMON_EVEN_IRQ DT_SILABS_EFM32_GPIO_4000A400_IRQ_GPIO_EVEN
#define DT_GPIO_GECKO_COMMON_EVEN_PRI DT_SILABS_EFM32_GPIO_4000A400_IRQ_GPIO_EVEN_PRIORITY
#define DT_GPIO_GECKO_COMMON_ODD_IRQ DT_SILABS_EFM32_GPIO_4000A400_IRQ_GPIO_ODD
#define DT_GPIO_GECKO_COMMON_ODD_PRI DT_SILABS_EFM32_GPIO_4000A400_IRQ_GPIO_ODD_PRIORITY
#define DT_GPIO_GECKO_PORTA_NAME DT_SILABS_EFM32_GPIO_PORT_4000A000_LABEL
#define DT_GPIO_GECKO_PORTB_NAME DT_SILABS_EFM32_GPIO_PORT_4000A030_LABEL
#define DT_GPIO_GECKO_PORTC_NAME DT_SILABS_EFM32_GPIO_PORT_4000A060_LABEL
#define DT_GPIO_GECKO_PORTD_NAME DT_SILABS_EFM32_GPIO_PORT_4000A090_LABEL
#define DT_GPIO_GECKO_PORTE_NAME DT_SILABS_EFM32_GPIO_PORT_4000A0C0_LABEL
#define DT_GPIO_GECKO_PORTF_NAME DT_SILABS_EFM32_GPIO_PORT_4000A0F0_LABEL
#define DT_I2C_GECKO_0_BASE_ADDRESS DT_SILABS_GECKO_I2C_4000C000_BASE_ADDRESS
#define DT_I2C_GECKO_0_CLOCK_FREQUENCY DT_SILABS_GECKO_I2C_4000C000_CLOCK_FREQUENCY
#define DT_I2C_GECKO_0_IRQ DT_SILABS_GECKO_I2C_4000C000_IRQ_0
#define DT_I2C_GECKO_0_IRQ_PRIORITY DT_SILABS_GECKO_I2C_4000C000_IRQ_0_PRIORITY
#define DT_I2C_GECKO_0_LABEL DT_SILABS_GECKO_I2C_4000C000_LABEL
#define DT_I2C_GECKO_0_LOCATION DT_SILABS_GECKO_I2C_4000C000_LOCATION
#define DT_I2C_GECKO_0_SIZE DT_SILABS_GECKO_I2C_4000C000_SIZE
#define DT_I2C_GECKO_1_BASE_ADDRESS DT_SILABS_GECKO_I2C_4000C400_BASE_ADDRESS
#define DT_I2C_GECKO_1_CLOCK_FREQUENCY DT_SILABS_GECKO_I2C_4000C400_CLOCK_FREQUENCY
#define DT_I2C_GECKO_1_IRQ DT_SILABS_GECKO_I2C_4000C400_IRQ_0
#define DT_I2C_GECKO_1_IRQ_PRIORITY DT_SILABS_GECKO_I2C_4000C400_IRQ_0_PRIORITY
#define DT_I2C_GECKO_1_LABEL DT_SILABS_GECKO_I2C_4000C400_LABEL
#define DT_I2C_GECKO_1_LOCATION DT_SILABS_GECKO_I2C_4000C400_LOCATION
#define DT_I2C_GECKO_1_SIZE DT_SILABS_GECKO_I2C_4000C400_SIZE
/* End of SoC Level DTS fixup file */