Revision bcb34c7a
b/hw/misc/imx_ccm.c | ||
---|---|---|
29 | 29 |
|
30 | 30 |
static int imx_ccm_post_load(void *opaque, int version_id); |
31 | 31 |
|
32 |
typedef struct { |
|
33 |
SysBusDevice busdev; |
|
32 |
#define TYPE_IMX_CCM "imx_ccm" |
|
33 |
#define IMX_CCM(obj) OBJECT_CHECK(IMXCCMState, (obj), TYPE_IMX_CCM) |
|
34 |
|
|
35 |
typedef struct IMXCCMState { |
|
36 |
SysBusDevice parent_obj; |
|
37 |
|
|
34 | 38 |
MemoryRegion iomem; |
35 | 39 |
|
36 | 40 |
uint32_t ccmr; |
... | ... | |
108 | 112 |
|
109 | 113 |
uint32_t imx_clock_frequency(DeviceState *dev, IMXClk clock) |
110 | 114 |
{ |
111 |
IMXCCMState *s = container_of(dev, IMXCCMState, busdev.qdev);
|
|
115 |
IMXCCMState *s = IMX_CCM(dev);
|
|
112 | 116 |
|
113 | 117 |
switch (clock) { |
114 | 118 |
case NOCLK: |
... | ... | |
178 | 182 |
|
179 | 183 |
static void imx_ccm_reset(DeviceState *dev) |
180 | 184 |
{ |
181 |
IMXCCMState *s = container_of(dev, IMXCCMState, busdev.qdev);
|
|
185 |
IMXCCMState *s = IMX_CCM(dev);
|
|
182 | 186 |
|
183 | 187 |
s->ccmr = 0x074b0b7b; |
184 | 188 |
s->pdr0 = 0xff870b48; |
... | ... | |
279 | 283 |
|
280 | 284 |
static int imx_ccm_init(SysBusDevice *dev) |
281 | 285 |
{ |
282 |
IMXCCMState *s = FROM_SYSBUS(typeof(*s), dev);
|
|
286 |
IMXCCMState *s = IMX_CCM(dev);
|
|
283 | 287 |
|
284 | 288 |
memory_region_init_io(&s->iomem, OBJECT(dev), &imx_ccm_ops, s, |
285 | 289 |
"imx_ccm", 0x1000); |
... | ... | |
308 | 312 |
} |
309 | 313 |
|
310 | 314 |
static const TypeInfo imx_ccm_info = { |
311 |
.name = "imx_ccm",
|
|
315 |
.name = TYPE_IMX_CCM,
|
|
312 | 316 |
.parent = TYPE_SYS_BUS_DEVICE, |
313 | 317 |
.instance_size = sizeof(IMXCCMState), |
314 | 318 |
.class_init = imx_ccm_class_init, |
Also available in: Unified diff