120936684SInès Varhol /* 220936684SInès Varhol * STM32L4x5 SYSCFG (System Configuration Controller) 320936684SInès Varhol * 420936684SInès Varhol * Copyright (c) 2023 Arnaud Minier <arnaud.minier@telecom-paris.fr> 520936684SInès Varhol * Copyright (c) 2023 Inès Varhol <ines.varhol@telecom-paris.fr> 620936684SInès Varhol * 720936684SInès Varhol * SPDX-License-Identifier: GPL-2.0-or-later 820936684SInès Varhol * 920936684SInès Varhol * This work is licensed under the terms of the GNU GPL, version 2 or later. 1020936684SInès Varhol * See the COPYING file in the top-level directory. 1120936684SInès Varhol * 1220936684SInès Varhol * This work is based on the stm32f4xx_syscfg by Alistair Francis. 1320936684SInès Varhol * Original code is licensed under the MIT License: 1420936684SInès Varhol * 1520936684SInès Varhol * Copyright (c) 2014 Alistair Francis <alistair@alistair23.me> 1620936684SInès Varhol */ 1720936684SInès Varhol 1820936684SInès Varhol /* 1920936684SInès Varhol * The reference used is the STMicroElectronics RM0351 Reference manual 2020936684SInès Varhol * for STM32L4x5 and STM32L4x6 advanced Arm ® -based 32-bit MCUs. 2120936684SInès Varhol * https://www.st.com/en/microcontrollers-microprocessors/stm32l4x5/documentation.html 2220936684SInès Varhol */ 2320936684SInès Varhol 2420936684SInès Varhol #ifndef HW_STM32L4X5_SYSCFG_H 2520936684SInès Varhol #define HW_STM32L4X5_SYSCFG_H 2620936684SInès Varhol 2720936684SInès Varhol #include "hw/sysbus.h" 2820936684SInès Varhol #include "qom/object.h" 29*1c38129dSInès Varhol #include "hw/gpio/stm32l4x5_gpio.h" 3020936684SInès Varhol 3120936684SInès Varhol #define TYPE_STM32L4X5_SYSCFG "stm32l4x5-syscfg" 3220936684SInès Varhol OBJECT_DECLARE_SIMPLE_TYPE(Stm32l4x5SyscfgState, STM32L4X5_SYSCFG) 3320936684SInès Varhol 3420936684SInès Varhol #define SYSCFG_NUM_EXTICR 4 3520936684SInès Varhol 3620936684SInès Varhol struct Stm32l4x5SyscfgState { 3720936684SInès Varhol SysBusDevice parent_obj; 3820936684SInès Varhol 3920936684SInès Varhol MemoryRegion mmio; 4020936684SInès Varhol 4120936684SInès Varhol uint32_t memrmp; 4220936684SInès Varhol uint32_t cfgr1; 4320936684SInès Varhol uint32_t exticr[SYSCFG_NUM_EXTICR]; 4420936684SInès Varhol uint32_t scsr; 4520936684SInès Varhol uint32_t cfgr2; 4620936684SInès Varhol uint32_t swpr; 4720936684SInès Varhol uint32_t skr; 4820936684SInès Varhol uint32_t swpr2; 4920936684SInès Varhol 5020936684SInès Varhol qemu_irq gpio_out[GPIO_NUM_PINS]; 5120936684SInès Varhol }; 5220936684SInès Varhol 5320936684SInès Varhol #endif 54