The ground clock isn't really an internal component of the CPRMAN peripheral. Use the qdev_ground_clock() helper to access the board ground plane.
Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> --- include/hw/misc/bcm2835_cprman.h | 1 - hw/misc/bcm2835_cprman.c | 7 ++----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/include/hw/misc/bcm2835_cprman.h b/include/hw/misc/bcm2835_cprman.h index 3df4ceedd2e..2996ccb4632 100644 --- a/include/hw/misc/bcm2835_cprman.h +++ b/include/hw/misc/bcm2835_cprman.h @@ -204,7 +204,6 @@ struct BCM2835CprmanState { uint32_t xosc_freq; Clock *xosc; - Clock *gnd; }; #endif diff --git a/hw/misc/bcm2835_cprman.c b/hw/misc/bcm2835_cprman.c index 75e6c574d46..5039b7632b4 100644 --- a/hw/misc/bcm2835_cprman.c +++ b/hw/misc/bcm2835_cprman.c @@ -678,9 +678,6 @@ static void cprman_init(Object *obj) } s->xosc = clock_new(obj, "xosc"); - s->gnd = clock_new(obj, "gnd"); - - clock_set(s->gnd, 0); memory_region_init_io(&s->iomem, obj, &cprman_ops, s, "bcm2835-cprman", 0x2000); @@ -697,7 +694,7 @@ static void connect_mux_sources(BCM2835CprmanState *s, /* For sources from 0 to 3. Source 4 to 9 are mux specific */ Clock * const CLK_SRC_MAPPING[] = { - [CPRMAN_CLOCK_SRC_GND] = s->gnd, + [CPRMAN_CLOCK_SRC_GND] = qdev_ground_clock(), [CPRMAN_CLOCK_SRC_XOSC] = s->xosc, [CPRMAN_CLOCK_SRC_TD0] = td0, [CPRMAN_CLOCK_SRC_TD1] = td1, @@ -708,7 +705,7 @@ static void connect_mux_sources(BCM2835CprmanState *s, Clock *src; if (mapping == CPRMAN_CLOCK_SRC_FORCE_GROUND) { - src = s->gnd; + src = qdev_ground_clock(); } else if (mapping == CPRMAN_CLOCK_SRC_DSI0HSCK) { src = s->dsi0hsck_mux.out; } else if (i < CPRMAN_CLOCK_SRC_PLLA) { -- 2.26.3