Lines Matching +full:- +full:refclk
29 #include "exec/address-spaces.h"
31 #include "hw/qdev-properties.h"
32 #include "hw/qdev-clock.h"
55 object_initialize_child(obj, "armv7m", &s->armv7m, TYPE_ARMV7M); in stm32f205_soc_initfn()
57 object_initialize_child(obj, "syscfg", &s->syscfg, TYPE_STM32F2XX_SYSCFG); in stm32f205_soc_initfn()
60 object_initialize_child(obj, "usart[*]", &s->usart[i], in stm32f205_soc_initfn()
65 object_initialize_child(obj, "timer[*]", &s->timer[i], in stm32f205_soc_initfn()
69 s->adc_irqs = OR_IRQ(object_new(TYPE_OR_IRQ)); in stm32f205_soc_initfn()
72 object_initialize_child(obj, "adc[*]", &s->adc[i], TYPE_STM32F2XX_ADC); in stm32f205_soc_initfn()
76 object_initialize_child(obj, "spi[*]", &s->spi[i], TYPE_STM32F2XX_SPI); in stm32f205_soc_initfn()
79 s->sysclk = qdev_init_clock_in(DEVICE(s), "sysclk", NULL, NULL, 0); in stm32f205_soc_initfn()
80 s->refclk = qdev_init_clock_in(DEVICE(s), "refclk", NULL, NULL, 0); in stm32f205_soc_initfn()
93 * We use s->refclk internally and only define it with qdev_init_clock_in() in stm32f205_soc_realize()
97 if (clock_has_source(s->refclk)) { in stm32f205_soc_realize()
98 error_setg(errp, "refclk clock must not be wired up by the board code"); in stm32f205_soc_realize()
102 if (!clock_has_source(s->sysclk)) { in stm32f205_soc_realize()
112 /* The refclk always runs at frequency HCLK / 8 */ in stm32f205_soc_realize()
113 clock_set_mul_div(s->refclk, 8, 1); in stm32f205_soc_realize()
114 clock_set_source(s->refclk, s->sysclk); in stm32f205_soc_realize()
116 memory_region_init_rom(&s->flash, OBJECT(dev_soc), "STM32F205.flash", in stm32f205_soc_realize()
118 memory_region_init_alias(&s->flash_alias, OBJECT(dev_soc), in stm32f205_soc_realize()
119 "STM32F205.flash.alias", &s->flash, 0, FLASH_SIZE); in stm32f205_soc_realize()
121 memory_region_add_subregion(system_memory, FLASH_BASE_ADDRESS, &s->flash); in stm32f205_soc_realize()
122 memory_region_add_subregion(system_memory, 0, &s->flash_alias); in stm32f205_soc_realize()
124 memory_region_init_ram(&s->sram, NULL, "STM32F205.sram", SRAM_SIZE, in stm32f205_soc_realize()
126 memory_region_add_subregion(system_memory, SRAM_BASE_ADDRESS, &s->sram); in stm32f205_soc_realize()
128 armv7m = DEVICE(&s->armv7m); in stm32f205_soc_realize()
129 qdev_prop_set_uint32(armv7m, "num-irq", 96); in stm32f205_soc_realize()
130 qdev_prop_set_uint8(armv7m, "num-prio-bits", 4); in stm32f205_soc_realize()
131 qdev_prop_set_string(armv7m, "cpu-type", ARM_CPU_TYPE_NAME("cortex-m3")); in stm32f205_soc_realize()
132 qdev_prop_set_bit(armv7m, "enable-bitband", true); in stm32f205_soc_realize()
133 qdev_connect_clock_in(armv7m, "cpuclk", s->sysclk); in stm32f205_soc_realize()
134 qdev_connect_clock_in(armv7m, "refclk", s->refclk); in stm32f205_soc_realize()
135 object_property_set_link(OBJECT(&s->armv7m), "memory", in stm32f205_soc_realize()
137 if (!sysbus_realize(SYS_BUS_DEVICE(&s->armv7m), errp)) { in stm32f205_soc_realize()
142 dev = DEVICE(&s->syscfg); in stm32f205_soc_realize()
143 if (!sysbus_realize(SYS_BUS_DEVICE(&s->syscfg), errp)) { in stm32f205_soc_realize()
151 dev = DEVICE(&(s->usart[i])); in stm32f205_soc_realize()
153 if (!sysbus_realize(SYS_BUS_DEVICE(&s->usart[i]), errp)) { in stm32f205_soc_realize()
163 dev = DEVICE(&(s->timer[i])); in stm32f205_soc_realize()
164 qdev_prop_set_uint64(dev, "clock-frequency", 1000000000); in stm32f205_soc_realize()
165 if (!sysbus_realize(SYS_BUS_DEVICE(&s->timer[i]), errp)) { in stm32f205_soc_realize()
174 object_property_set_int(OBJECT(s->adc_irqs), "num-lines", STM_NUM_ADCS, in stm32f205_soc_realize()
176 if (!qdev_realize(DEVICE(s->adc_irqs), NULL, errp)) { in stm32f205_soc_realize()
179 qdev_connect_gpio_out(DEVICE(s->adc_irqs), 0, in stm32f205_soc_realize()
183 dev = DEVICE(&(s->adc[i])); in stm32f205_soc_realize()
184 if (!sysbus_realize(SYS_BUS_DEVICE(&s->adc[i]), errp)) { in stm32f205_soc_realize()
190 qdev_get_gpio_in(DEVICE(s->adc_irqs), i)); in stm32f205_soc_realize()
195 dev = DEVICE(&(s->spi[i])); in stm32f205_soc_realize()
196 if (!sysbus_realize(SYS_BUS_DEVICE(&s->spi[i]), errp)) { in stm32f205_soc_realize()
209 dc->realize = stm32f205_soc_realize; in stm32f205_soc_class_init()