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" 61OBJECT_DECLARE_SIMPLE_TYPE(IMX6SRCState, IMX6_SRC) 62 63struct 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 */