qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

imx6_src.h (1725B)


      1 /*
      2  * IMX6 System Reset Controller
      3  *
      4  * Copyright (C) 2012 NICTA
      5  * Updated by Jean-Christophe Dubois <jcd@tribudubois.net>
      6  *
      7  * This work is licensed under the terms of the GNU GPL, version 2 or later.
      8  * See the COPYING file in the top-level directory.
      9  */
     10 
     11 #ifndef IMX6_SRC_H
     12 #define IMX6_SRC_H
     13 
     14 #include "hw/sysbus.h"
     15 #include "qemu/bitops.h"
     16 #include "qom/object.h"
     17 
     18 #define SRC_SCR 0
     19 #define SRC_SBMR1 1
     20 #define SRC_SRSR 2
     21 #define SRC_SISR 5
     22 #define SRC_SIMR 6
     23 #define SRC_SBMR2 7
     24 #define SRC_GPR1 8
     25 #define SRC_GPR2 9
     26 #define SRC_GPR3 10
     27 #define SRC_GPR4 11
     28 #define SRC_GPR5 12
     29 #define SRC_GPR6 13
     30 #define SRC_GPR7 14
     31 #define SRC_GPR8 15
     32 #define SRC_GPR9 16
     33 #define SRC_GPR10 17
     34 #define SRC_MAX 18
     35 
     36 /* SRC_SCR */
     37 #define CORE3_ENABLE_SHIFT     24
     38 #define CORE3_ENABLE_LENGTH    1
     39 #define CORE2_ENABLE_SHIFT     23
     40 #define CORE2_ENABLE_LENGTH    1
     41 #define CORE1_ENABLE_SHIFT     22
     42 #define CORE1_ENABLE_LENGTH    1
     43 #define CORE3_RST_SHIFT        16
     44 #define CORE3_RST_LENGTH       1
     45 #define CORE2_RST_SHIFT        15
     46 #define CORE2_RST_LENGTH       1
     47 #define CORE1_RST_SHIFT        14
     48 #define CORE1_RST_LENGTH       1
     49 #define CORE0_RST_SHIFT        13
     50 #define CORE0_RST_LENGTH       1
     51 #define SW_IPU1_RST_SHIFT      3
     52 #define SW_IPU1_RST_LENGTH     1
     53 #define SW_IPU2_RST_SHIFT      12
     54 #define SW_IPU2_RST_LENGTH     1
     55 #define WARM_RST_ENABLE_SHIFT  0
     56 #define WARM_RST_ENABLE_LENGTH 1
     57 
     58 #define EXTRACT(value, name) extract32(value, name##_SHIFT, name##_LENGTH)
     59 
     60 #define TYPE_IMX6_SRC "imx6.src"
     61 OBJECT_DECLARE_SIMPLE_TYPE(IMX6SRCState, IMX6_SRC)
     62 
     63 struct IMX6SRCState {
     64     /* <private> */
     65     SysBusDevice parent_obj;
     66 
     67     /* <public> */
     68     MemoryRegion iomem;
     69 
     70     uint32_t regs[SRC_MAX];
     71 
     72 };
     73 
     74 #endif /* IMX6_SRC_H */