mirror of https://github.com/xemu-project/xemu.git
hw/ssi: Introduce a ssi_get_cs() helper
Simple routine to retrieve a DeviceState object on a SPI bus using its CS index. It will be useful for the board to wire the CS lines. Cc: Alistair Francis <alistair@alistair23.me> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
243975c055
commit
8a211fa3b2
15
hw/ssi/ssi.c
15
hw/ssi/ssi.c
|
@ -27,6 +27,21 @@ struct SSIBus {
|
|||
#define TYPE_SSI_BUS "SSI"
|
||||
OBJECT_DECLARE_SIMPLE_TYPE(SSIBus, SSI_BUS)
|
||||
|
||||
DeviceState *ssi_get_cs(SSIBus *bus, uint8_t cs_index)
|
||||
{
|
||||
BusState *b = BUS(bus);
|
||||
BusChild *kid;
|
||||
|
||||
QTAILQ_FOREACH(kid, &b->children, sibling) {
|
||||
SSIPeripheral *kid_ssi = SSI_PERIPHERAL(kid->child);
|
||||
if (kid_ssi->cs_index == cs_index) {
|
||||
return kid->child;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static const TypeInfo ssi_bus_info = {
|
||||
.name = TYPE_SSI_BUS,
|
||||
.parent = TYPE_BUS,
|
||||
|
|
|
@ -112,4 +112,6 @@ SSIBus *ssi_create_bus(DeviceState *parent, const char *name);
|
|||
|
||||
uint32_t ssi_transfer(SSIBus *bus, uint32_t val);
|
||||
|
||||
DeviceState *ssi_get_cs(SSIBus *bus, uint8_t cs_index);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue