aboutsummaryrefslogtreecommitdiff
path: root/hw/ssi/ssi.c
diff options
context:
space:
mode:
authorCédric Le Goater <clg@kaod.org>2023-06-07 06:39:36 +0200
committerCédric Le Goater <clg@kaod.org>2023-09-01 11:40:04 +0200
commit8a211fa3b2189735177f3c529dabc8ebc37042fa (patch)
tree841d2d2d2cd898bb1aa37c4b2b2374023e71f54a /hw/ssi/ssi.c
parent243975c0553a61646e7c24beaa12f4451536ea6b (diff)
downloadqemu-8a211fa3b2189735177f3c529dabc8ebc37042fa.zip
qemu-8a211fa3b2189735177f3c529dabc8ebc37042fa.tar.gz
qemu-8a211fa3b2189735177f3c529dabc8ebc37042fa.tar.bz2
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/ssi.c')
-rw-r--r--hw/ssi/ssi.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/hw/ssi/ssi.c b/hw/ssi/ssi.c
index 4e33e0e..54ca3c3 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,