diff options
author | Cédric Le Goater <clg@kaod.org> | 2023-06-07 06:39:36 +0200 |
---|---|---|
committer | Cédric Le Goater <clg@kaod.org> | 2023-09-01 11:40:04 +0200 |
commit | 8a211fa3b2189735177f3c529dabc8ebc37042fa (patch) | |
tree | 841d2d2d2cd898bb1aa37c4b2b2374023e71f54a /hw/ssi | |
parent | 243975c0553a61646e7c24beaa12f4451536ea6b (diff) |
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>
Diffstat (limited to 'hw/ssi')
-rw-r--r-- | hw/ssi/ssi.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/hw/ssi/ssi.c b/hw/ssi/ssi.c index 4e33e0ea5b..54ca3c34e9 100644 --- a/hw/ssi/ssi.c +++ b/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, |