Lines Matching +full:usb2 +full:- +full:phy

22 #include "qemu/error-report.h"
25 #include "hw/qdev-core.h"
27 #include "hw/char/serial-mm.h"
29 #include "hw/usb/hcd-ehci.h"
32 #include "hw/arm/allwinner-h3.h"
33 #include "target/arm/cpu-qom.h"
82 { "d-engine", 0x01000000, 4 * MiB },
83 { "d-inter", 0x01400000, 128 * KiB },
96 { "usb0-otg", 0x01c19000, 4 * KiB },
97 { "usb0-phy", 0x01c1a000, 4 * KiB },
98 { "usb1-phy", 0x01c1b000, 4 * KiB },
99 { "usb2-phy", 0x01c1c000, 4 * KiB },
100 { "usb3-phy", 0x01c1d000, 4 * KiB },
129 { "r_cir-rx", 0x01f02000, 1 * KiB },
133 { "core-dbg", 0x3f500000, 128 * KiB },
134 { "tsgen-ro", 0x3f506000, 4 * KiB },
135 { "tsgen-ctl", 0x3f507000, 4 * KiB },
136 { "ddr-mem", 0x40000000, 2 * GiB },
137 { "n-brom", 0xffff0000, 32 * KiB },
138 { "s-brom", 0xffff0000, 64 * KiB }
189 rom_add_blob("allwinner-h3.bootrom", buffer, rom_size, in allwinner_h3_bootrom_setup()
190 rom_size, s->memmap[AW_H3_DEV_SRAM_A1], in allwinner_h3_bootrom_setup()
198 s->memmap = allwinner_h3_memmap; in allwinner_h3_init()
201 object_initialize_child(obj, "cpu[*]", &s->cpus[i], in allwinner_h3_init()
202 ARM_CPU_TYPE_NAME("cortex-a7")); in allwinner_h3_init()
205 object_initialize_child(obj, "gic", &s->gic, TYPE_ARM_GIC); in allwinner_h3_init()
207 object_initialize_child(obj, "timer", &s->timer, TYPE_AW_A10_PIT); in allwinner_h3_init()
208 object_property_add_alias(obj, "clk0-freq", OBJECT(&s->timer), in allwinner_h3_init()
209 "clk0-freq"); in allwinner_h3_init()
210 object_property_add_alias(obj, "clk1-freq", OBJECT(&s->timer), in allwinner_h3_init()
211 "clk1-freq"); in allwinner_h3_init()
213 object_initialize_child(obj, "ccu", &s->ccu, TYPE_AW_H3_CCU); in allwinner_h3_init()
215 object_initialize_child(obj, "sysctrl", &s->sysctrl, TYPE_AW_H3_SYSCTRL); in allwinner_h3_init()
217 object_initialize_child(obj, "cpucfg", &s->cpucfg, TYPE_AW_CPUCFG); in allwinner_h3_init()
219 object_initialize_child(obj, "sid", &s->sid, TYPE_AW_SID); in allwinner_h3_init()
220 object_property_add_alias(obj, "identifier", OBJECT(&s->sid), in allwinner_h3_init()
223 object_initialize_child(obj, "mmc0", &s->mmc0, TYPE_AW_SDHOST_SUN5I); in allwinner_h3_init()
225 object_initialize_child(obj, "emac", &s->emac, TYPE_AW_SUN8I_EMAC); in allwinner_h3_init()
227 object_initialize_child(obj, "dramc", &s->dramc, TYPE_AW_H3_DRAMC); in allwinner_h3_init()
228 object_property_add_alias(obj, "ram-addr", OBJECT(&s->dramc), in allwinner_h3_init()
229 "ram-addr"); in allwinner_h3_init()
230 object_property_add_alias(obj, "ram-size", OBJECT(&s->dramc), in allwinner_h3_init()
231 "ram-size"); in allwinner_h3_init()
233 object_initialize_child(obj, "rtc", &s->rtc, TYPE_AW_RTC_SUN6I); in allwinner_h3_init()
235 object_initialize_child(obj, "twi0", &s->i2c0, TYPE_AW_I2C_SUN6I); in allwinner_h3_init()
236 object_initialize_child(obj, "twi1", &s->i2c1, TYPE_AW_I2C_SUN6I); in allwinner_h3_init()
237 object_initialize_child(obj, "twi2", &s->i2c2, TYPE_AW_I2C_SUN6I); in allwinner_h3_init()
238 object_initialize_child(obj, "r_twi", &s->r_twi, TYPE_AW_I2C_SUN6I); in allwinner_h3_init()
240 object_initialize_child(obj, "wdt", &s->wdt, TYPE_AW_WDT_SUN6I); in allwinner_h3_init()
255 qdev_prop_set_bit(DEVICE(&s->cpus[i]), "start-powered-off", in allwinner_h3_realize()
259 qdev_prop_set_bit(DEVICE(&s->cpus[i]), "has_el3", true); in allwinner_h3_realize()
260 qdev_prop_set_bit(DEVICE(&s->cpus[i]), "has_el2", true); in allwinner_h3_realize()
263 qdev_realize(DEVICE(&s->cpus[i]), NULL, &error_fatal); in allwinner_h3_realize()
267 qdev_prop_set_uint32(DEVICE(&s->gic), "num-irq", AW_H3_GIC_NUM_SPI + in allwinner_h3_realize()
269 qdev_prop_set_uint32(DEVICE(&s->gic), "revision", 2); in allwinner_h3_realize()
270 qdev_prop_set_uint32(DEVICE(&s->gic), "num-cpu", AW_H3_NUM_CPUS); in allwinner_h3_realize()
271 qdev_prop_set_bit(DEVICE(&s->gic), "has-security-extensions", false); in allwinner_h3_realize()
272 qdev_prop_set_bit(DEVICE(&s->gic), "has-virtualization-extensions", true); in allwinner_h3_realize()
273 sysbus_realize(SYS_BUS_DEVICE(&s->gic), &error_fatal); in allwinner_h3_realize()
275 sysbus_mmio_map(SYS_BUS_DEVICE(&s->gic), 0, s->memmap[AW_H3_DEV_GIC_DIST]); in allwinner_h3_realize()
276 sysbus_mmio_map(SYS_BUS_DEVICE(&s->gic), 1, s->memmap[AW_H3_DEV_GIC_CPU]); in allwinner_h3_realize()
277 sysbus_mmio_map(SYS_BUS_DEVICE(&s->gic), 2, s->memmap[AW_H3_DEV_GIC_HYP]); in allwinner_h3_realize()
278 sysbus_mmio_map(SYS_BUS_DEVICE(&s->gic), 3, s->memmap[AW_H3_DEV_GIC_VCPU]); in allwinner_h3_realize()
286 DeviceState *cpudev = DEVICE(&s->cpus[i]); in allwinner_h3_realize()
303 qdev_get_gpio_in(DEVICE(&s->gic), in allwinner_h3_realize()
308 sysbus_connect_irq(SYS_BUS_DEVICE(&s->gic), i, in allwinner_h3_realize()
310 sysbus_connect_irq(SYS_BUS_DEVICE(&s->gic), i + AW_H3_NUM_CPUS, in allwinner_h3_realize()
312 sysbus_connect_irq(SYS_BUS_DEVICE(&s->gic), i + (2 * AW_H3_NUM_CPUS), in allwinner_h3_realize()
314 sysbus_connect_irq(SYS_BUS_DEVICE(&s->gic), i + (3 * AW_H3_NUM_CPUS), in allwinner_h3_realize()
318 sysbus_connect_irq(SYS_BUS_DEVICE(&s->gic), i + (4 * AW_H3_NUM_CPUS), in allwinner_h3_realize()
319 qdev_get_gpio_in(DEVICE(&s->gic), in allwinner_h3_realize()
324 sysbus_realize(SYS_BUS_DEVICE(&s->timer), &error_fatal); in allwinner_h3_realize()
325 sysbus_mmio_map(SYS_BUS_DEVICE(&s->timer), 0, s->memmap[AW_H3_DEV_PIT]); in allwinner_h3_realize()
326 sysbus_connect_irq(SYS_BUS_DEVICE(&s->timer), 0, in allwinner_h3_realize()
327 qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_TIMER0)); in allwinner_h3_realize()
328 sysbus_connect_irq(SYS_BUS_DEVICE(&s->timer), 1, in allwinner_h3_realize()
329 qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_TIMER1)); in allwinner_h3_realize()
332 memory_region_init_ram(&s->sram_a1, OBJECT(dev), "sram A1", in allwinner_h3_realize()
334 memory_region_init_ram(&s->sram_a2, OBJECT(dev), "sram A2", in allwinner_h3_realize()
336 memory_region_init_ram(&s->sram_c, OBJECT(dev), "sram C", in allwinner_h3_realize()
338 memory_region_add_subregion(get_system_memory(), s->memmap[AW_H3_DEV_SRAM_A1], in allwinner_h3_realize()
339 &s->sram_a1); in allwinner_h3_realize()
340 memory_region_add_subregion(get_system_memory(), s->memmap[AW_H3_DEV_SRAM_A2], in allwinner_h3_realize()
341 &s->sram_a2); in allwinner_h3_realize()
342 memory_region_add_subregion(get_system_memory(), s->memmap[AW_H3_DEV_SRAM_C], in allwinner_h3_realize()
343 &s->sram_c); in allwinner_h3_realize()
346 sysbus_realize(SYS_BUS_DEVICE(&s->ccu), &error_fatal); in allwinner_h3_realize()
347 sysbus_mmio_map(SYS_BUS_DEVICE(&s->ccu), 0, s->memmap[AW_H3_DEV_CCU]); in allwinner_h3_realize()
350 sysbus_realize(SYS_BUS_DEVICE(&s->sysctrl), &error_fatal); in allwinner_h3_realize()
351 sysbus_mmio_map(SYS_BUS_DEVICE(&s->sysctrl), 0, s->memmap[AW_H3_DEV_SYSCTRL]); in allwinner_h3_realize()
354 sysbus_realize(SYS_BUS_DEVICE(&s->cpucfg), &error_fatal); in allwinner_h3_realize()
355 sysbus_mmio_map(SYS_BUS_DEVICE(&s->cpucfg), 0, s->memmap[AW_H3_DEV_CPUCFG]); in allwinner_h3_realize()
358 sysbus_realize(SYS_BUS_DEVICE(&s->sid), &error_fatal); in allwinner_h3_realize()
359 sysbus_mmio_map(SYS_BUS_DEVICE(&s->sid), 0, s->memmap[AW_H3_DEV_SID]); in allwinner_h3_realize()
362 object_property_set_link(OBJECT(&s->mmc0), "dma-memory", in allwinner_h3_realize()
364 sysbus_realize(SYS_BUS_DEVICE(&s->mmc0), &error_fatal); in allwinner_h3_realize()
365 sysbus_mmio_map(SYS_BUS_DEVICE(&s->mmc0), 0, s->memmap[AW_H3_DEV_MMC0]); in allwinner_h3_realize()
366 sysbus_connect_irq(SYS_BUS_DEVICE(&s->mmc0), 0, in allwinner_h3_realize()
367 qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_MMC0)); in allwinner_h3_realize()
369 object_property_add_alias(OBJECT(s), "sd-bus", OBJECT(&s->mmc0), in allwinner_h3_realize()
370 "sd-bus"); in allwinner_h3_realize()
373 qemu_configure_nic_device(DEVICE(&s->emac), true, NULL); in allwinner_h3_realize()
374 object_property_set_link(OBJECT(&s->emac), "dma-memory", in allwinner_h3_realize()
376 sysbus_realize(SYS_BUS_DEVICE(&s->emac), &error_fatal); in allwinner_h3_realize()
377 sysbus_mmio_map(SYS_BUS_DEVICE(&s->emac), 0, s->memmap[AW_H3_DEV_EMAC]); in allwinner_h3_realize()
378 sysbus_connect_irq(SYS_BUS_DEVICE(&s->emac), 0, in allwinner_h3_realize()
379 qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_EMAC)); in allwinner_h3_realize()
382 sysbus_create_simple(TYPE_AW_H3_EHCI, s->memmap[AW_H3_DEV_EHCI0], in allwinner_h3_realize()
383 qdev_get_gpio_in(DEVICE(&s->gic), in allwinner_h3_realize()
385 sysbus_create_simple(TYPE_AW_H3_EHCI, s->memmap[AW_H3_DEV_EHCI1], in allwinner_h3_realize()
386 qdev_get_gpio_in(DEVICE(&s->gic), in allwinner_h3_realize()
388 sysbus_create_simple(TYPE_AW_H3_EHCI, s->memmap[AW_H3_DEV_EHCI2], in allwinner_h3_realize()
389 qdev_get_gpio_in(DEVICE(&s->gic), in allwinner_h3_realize()
391 sysbus_create_simple(TYPE_AW_H3_EHCI, s->memmap[AW_H3_DEV_EHCI3], in allwinner_h3_realize()
392 qdev_get_gpio_in(DEVICE(&s->gic), in allwinner_h3_realize()
395 sysbus_create_simple("sysbus-ohci", s->memmap[AW_H3_DEV_OHCI0], in allwinner_h3_realize()
396 qdev_get_gpio_in(DEVICE(&s->gic), in allwinner_h3_realize()
398 sysbus_create_simple("sysbus-ohci", s->memmap[AW_H3_DEV_OHCI1], in allwinner_h3_realize()
399 qdev_get_gpio_in(DEVICE(&s->gic), in allwinner_h3_realize()
401 sysbus_create_simple("sysbus-ohci", s->memmap[AW_H3_DEV_OHCI2], in allwinner_h3_realize()
402 qdev_get_gpio_in(DEVICE(&s->gic), in allwinner_h3_realize()
404 sysbus_create_simple("sysbus-ohci", s->memmap[AW_H3_DEV_OHCI3], in allwinner_h3_realize()
405 qdev_get_gpio_in(DEVICE(&s->gic), in allwinner_h3_realize()
409 serial_mm_init(get_system_memory(), s->memmap[AW_H3_DEV_UART0], 2, in allwinner_h3_realize()
410 qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_UART0), in allwinner_h3_realize()
413 serial_mm_init(get_system_memory(), s->memmap[AW_H3_DEV_UART1], 2, in allwinner_h3_realize()
414 qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_UART1), in allwinner_h3_realize()
417 serial_mm_init(get_system_memory(), s->memmap[AW_H3_DEV_UART2], 2, in allwinner_h3_realize()
418 qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_UART2), in allwinner_h3_realize()
421 serial_mm_init(get_system_memory(), s->memmap[AW_H3_DEV_UART3], 2, in allwinner_h3_realize()
422 qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_UART3), in allwinner_h3_realize()
426 sysbus_realize(SYS_BUS_DEVICE(&s->dramc), &error_fatal); in allwinner_h3_realize()
427 sysbus_mmio_map(SYS_BUS_DEVICE(&s->dramc), 0, s->memmap[AW_H3_DEV_DRAMCOM]); in allwinner_h3_realize()
428 sysbus_mmio_map(SYS_BUS_DEVICE(&s->dramc), 1, s->memmap[AW_H3_DEV_DRAMCTL]); in allwinner_h3_realize()
429 sysbus_mmio_map(SYS_BUS_DEVICE(&s->dramc), 2, s->memmap[AW_H3_DEV_DRAMPHY]); in allwinner_h3_realize()
432 sysbus_realize(SYS_BUS_DEVICE(&s->rtc), &error_fatal); in allwinner_h3_realize()
433 sysbus_mmio_map(SYS_BUS_DEVICE(&s->rtc), 0, s->memmap[AW_H3_DEV_RTC]); in allwinner_h3_realize()
436 sysbus_realize(SYS_BUS_DEVICE(&s->i2c0), &error_fatal); in allwinner_h3_realize()
437 sysbus_mmio_map(SYS_BUS_DEVICE(&s->i2c0), 0, s->memmap[AW_H3_DEV_TWI0]); in allwinner_h3_realize()
438 sysbus_connect_irq(SYS_BUS_DEVICE(&s->i2c0), 0, in allwinner_h3_realize()
439 qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_TWI0)); in allwinner_h3_realize()
441 sysbus_realize(SYS_BUS_DEVICE(&s->i2c1), &error_fatal); in allwinner_h3_realize()
442 sysbus_mmio_map(SYS_BUS_DEVICE(&s->i2c1), 0, s->memmap[AW_H3_DEV_TWI1]); in allwinner_h3_realize()
443 sysbus_connect_irq(SYS_BUS_DEVICE(&s->i2c1), 0, in allwinner_h3_realize()
444 qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_TWI1)); in allwinner_h3_realize()
446 sysbus_realize(SYS_BUS_DEVICE(&s->i2c2), &error_fatal); in allwinner_h3_realize()
447 sysbus_mmio_map(SYS_BUS_DEVICE(&s->i2c2), 0, s->memmap[AW_H3_DEV_TWI2]); in allwinner_h3_realize()
448 sysbus_connect_irq(SYS_BUS_DEVICE(&s->i2c2), 0, in allwinner_h3_realize()
449 qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_TWI2)); in allwinner_h3_realize()
451 sysbus_realize(SYS_BUS_DEVICE(&s->r_twi), &error_fatal); in allwinner_h3_realize()
452 sysbus_mmio_map(SYS_BUS_DEVICE(&s->r_twi), 0, s->memmap[AW_H3_DEV_R_TWI]); in allwinner_h3_realize()
453 sysbus_connect_irq(SYS_BUS_DEVICE(&s->r_twi), 0, in allwinner_h3_realize()
454 qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_R_TWI)); in allwinner_h3_realize()
457 sysbus_realize(SYS_BUS_DEVICE(&s->wdt), &error_fatal); in allwinner_h3_realize()
458 sysbus_mmio_map_overlap(SYS_BUS_DEVICE(&s->wdt), 0, in allwinner_h3_realize()
459 s->memmap[AW_H3_DEV_WDT], 1); in allwinner_h3_realize()
473 dc->realize = allwinner_h3_realize; in allwinner_h3_class_init()
475 dc->user_creatable = false; in allwinner_h3_class_init()