10c80f50fSYoshinori Sato /* 20c80f50fSYoshinori Sato * RX62N MCU Object 30c80f50fSYoshinori Sato * 40c80f50fSYoshinori Sato * Datasheet: RX62N Group, RX621 Group User's Manual: Hardware 50c80f50fSYoshinori Sato * (Rev.1.40 R01UH0033EJ0140) 60c80f50fSYoshinori Sato * 70c80f50fSYoshinori Sato * Copyright (c) 2019 Yoshinori Sato 80c80f50fSYoshinori Sato * 90c80f50fSYoshinori Sato * SPDX-License-Identifier: GPL-2.0-or-later 100c80f50fSYoshinori Sato * 110c80f50fSYoshinori Sato * This program is free software; you can redistribute it and/or modify it 120c80f50fSYoshinori Sato * under the terms and conditions of the GNU General Public License, 130c80f50fSYoshinori Sato * version 2 or later, as published by the Free Software Foundation. 140c80f50fSYoshinori Sato * 150c80f50fSYoshinori Sato * This program is distributed in the hope it will be useful, but WITHOUT 160c80f50fSYoshinori Sato * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 170c80f50fSYoshinori Sato * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 180c80f50fSYoshinori Sato * more details. 190c80f50fSYoshinori Sato * 200c80f50fSYoshinori Sato * You should have received a copy of the GNU General Public License along with 210c80f50fSYoshinori Sato * this program. If not, see <http://www.gnu.org/licenses/>. 220c80f50fSYoshinori Sato */ 230c80f50fSYoshinori Sato 240c80f50fSYoshinori Sato #ifndef HW_RX_RX62N_MCU_H 250c80f50fSYoshinori Sato #define HW_RX_RX62N_MCU_H 260c80f50fSYoshinori Sato 270c80f50fSYoshinori Sato #include "target/rx/cpu.h" 280c80f50fSYoshinori Sato #include "hw/intc/rx_icu.h" 290c80f50fSYoshinori Sato #include "hw/timer/renesas_tmr.h" 300c80f50fSYoshinori Sato #include "hw/timer/renesas_cmt.h" 310c80f50fSYoshinori Sato #include "hw/char/renesas_sci.h" 320c80f50fSYoshinori Sato #include "qemu/units.h" 330c80f50fSYoshinori Sato 340c80f50fSYoshinori Sato #define TYPE_RX62N_MCU "rx62n-mcu" 350c80f50fSYoshinori Sato #define RX62N_MCU(obj) OBJECT_CHECK(RX62NState, (obj), TYPE_RX62N_MCU) 360c80f50fSYoshinori Sato 37*1db2086eSPhilippe Mathieu-Daudé #define TYPE_R5F562N7_MCU "r5f562n7-mcu" 38*1db2086eSPhilippe Mathieu-Daudé #define TYPE_R5F562N8_MCU "r5f562n8-mcu" 39*1db2086eSPhilippe Mathieu-Daudé 400c80f50fSYoshinori Sato #define RX62N_NR_TMR 2 410c80f50fSYoshinori Sato #define RX62N_NR_CMT 2 420c80f50fSYoshinori Sato #define RX62N_NR_SCI 6 430c80f50fSYoshinori Sato 440c80f50fSYoshinori Sato typedef struct RX62NState { 450c80f50fSYoshinori Sato /*< private >*/ 460c80f50fSYoshinori Sato DeviceState parent_obj; 470c80f50fSYoshinori Sato /*< public >*/ 480c80f50fSYoshinori Sato 490c80f50fSYoshinori Sato RXCPU cpu; 500c80f50fSYoshinori Sato RXICUState icu; 510c80f50fSYoshinori Sato RTMRState tmr[RX62N_NR_TMR]; 520c80f50fSYoshinori Sato RCMTState cmt[RX62N_NR_CMT]; 530c80f50fSYoshinori Sato RSCIState sci[RX62N_NR_SCI]; 540c80f50fSYoshinori Sato 550c80f50fSYoshinori Sato MemoryRegion *sysmem; 560c80f50fSYoshinori Sato bool kernel; 570c80f50fSYoshinori Sato 580c80f50fSYoshinori Sato MemoryRegion iram; 590c80f50fSYoshinori Sato MemoryRegion iomem1; 600c80f50fSYoshinori Sato MemoryRegion d_flash; 610c80f50fSYoshinori Sato MemoryRegion iomem2; 620c80f50fSYoshinori Sato MemoryRegion iomem3; 630c80f50fSYoshinori Sato MemoryRegion c_flash; 640c80f50fSYoshinori Sato qemu_irq irq[NR_IRQS]; 65*1db2086eSPhilippe Mathieu-Daudé 66*1db2086eSPhilippe Mathieu-Daudé /* Input Clock (XTAL) frequency */ 67*1db2086eSPhilippe Mathieu-Daudé uint32_t xtal_freq_hz; 68*1db2086eSPhilippe Mathieu-Daudé /* Peripheral Module Clock frequency */ 69*1db2086eSPhilippe Mathieu-Daudé uint32_t pclk_freq_hz; 700c80f50fSYoshinori Sato } RX62NState; 710c80f50fSYoshinori Sato 720c80f50fSYoshinori Sato #endif 73