4fb013afcc
Currently the MPS2 SCC device implements a fixed number of OSCCLK values (3). The variant of this device in the MPS3 AN524 board has 6 OSCCLK values. Switch to using a PROP_ARRAY, which allows board code to specify how large the OSCCLK array should be as well as its values. With a variable-length property array, the SCC no longer specifies default values for the OSCCLKs, so we must set them explicitly in the board code. This defaults are actually incorrect for the an521 and an505; we will correct this bug in a following patch. This is a migration compatibility break for all the mps boards. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210215115138.20465-3-peter.maydell@linaro.org
46 lines
905 B
C
46 lines
905 B
C
/*
|
|
* ARM MPS2 SCC emulation
|
|
*
|
|
* Copyright (c) 2017 Linaro Limited
|
|
* Written by Peter Maydell
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 or
|
|
* (at your option) any later version.
|
|
*/
|
|
|
|
#ifndef MPS2_SCC_H
|
|
#define MPS2_SCC_H
|
|
|
|
#include "hw/sysbus.h"
|
|
#include "hw/misc/led.h"
|
|
#include "qom/object.h"
|
|
|
|
#define TYPE_MPS2_SCC "mps2-scc"
|
|
OBJECT_DECLARE_SIMPLE_TYPE(MPS2SCC, MPS2_SCC)
|
|
|
|
struct MPS2SCC {
|
|
/*< private >*/
|
|
SysBusDevice parent_obj;
|
|
|
|
/*< public >*/
|
|
MemoryRegion iomem;
|
|
LEDState *led[8];
|
|
|
|
uint32_t cfg0;
|
|
uint32_t cfg1;
|
|
uint32_t cfg4;
|
|
uint32_t cfgdata_rtn;
|
|
uint32_t cfgdata_out;
|
|
uint32_t cfgctrl;
|
|
uint32_t cfgstat;
|
|
uint32_t dll;
|
|
uint32_t aid;
|
|
uint32_t id;
|
|
uint32_t num_oscclk;
|
|
uint32_t *oscclk;
|
|
uint32_t *oscclk_reset;
|
|
};
|
|
|
|
#endif
|