Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
legoater committed Sep 1, 2023
1 parent 243975c commit 8a211fa
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
15 changes: 15 additions & 0 deletions hw/ssi/ssi.c
Expand Up @@ -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,
Expand Down
2 changes: 2 additions & 0 deletions include/hw/ssi/ssi.h
Expand Up @@ -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

0 comments on commit 8a211fa

Please sign in to comment.