[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 07/26] hw/ssi: Introduce a ssi_get_cs() helper
From: |
Cédric Le Goater |
Subject: |
[PULL 07/26] hw/ssi: Introduce a ssi_get_cs() helper |
Date: |
Fri, 1 Sep 2023 11:41:55 +0200 |
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>
---
include/hw/ssi/ssi.h | 2 ++
hw/ssi/ssi.c | 15 +++++++++++++++
2 files changed, 17 insertions(+)
diff --git a/include/hw/ssi/ssi.h b/include/hw/ssi/ssi.h
index c5bdf1f2165f..3cdcbd539042 100644
--- a/include/hw/ssi/ssi.h
+++ b/include/hw/ssi/ssi.h
@@ -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
diff --git a/hw/ssi/ssi.c b/hw/ssi/ssi.c
index 4e33e0ea5bc2..54ca3c34e9d0 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,
--
2.41.0
- [PULL 00/26] aspeed queue, Cédric Le Goater, 2023/09/01
- [PULL 01/26] aspeed: Introduce helper for 32-bit hosts limitation, Cédric Le Goater, 2023/09/01
- [PULL 02/26] hw/i2c/aspeed: Fix Tx count and Rx size error in buffer pool mode, Cédric Le Goater, 2023/09/01
- [PULL 03/26] hw/i2c/aspeed: Fix TXBUF transmission start position error, Cédric Le Goater, 2023/09/01
- [PULL 05/26] tests/avocado/machine_aspeed.py: Update SDK images, Cédric Le Goater, 2023/09/01
- [PULL 06/26] hw/ssi: Add a "cs" property to SSIPeripheral, Cédric Le Goater, 2023/09/01
- [PULL 04/26] hw/i2c/aspeed: Add support for buffer organization, Cédric Le Goater, 2023/09/01
- [PULL 07/26] hw/ssi: Introduce a ssi_get_cs() helper,
Cédric Le Goater <=
- [PULL 09/26] hw/ssi: Check for duplicate CS indexes, Cédric Le Goater, 2023/09/01
- [PULL 08/26] aspeed/smc: Wire CS lines at reset, Cédric Le Goater, 2023/09/01
- [PULL 11/26] m25p80: Introduce an helper to retrieve the BlockBackend of a device, Cédric Le Goater, 2023/09/01
- [PULL 12/26] aspeed: Get the BlockBackend of FMC0 from the flash device, Cédric Le Goater, 2023/09/01
- [PULL 13/26] hw/sd/sdcard: Return ILLEGAL for CMD19/CMD23 prior SD spec v3.01, Cédric Le Goater, 2023/09/01
- [PULL 15/26] hw/sd: When card is in wrong state, log which spec version is used, Cédric Le Goater, 2023/09/01
- [PULL 14/26] hw/sd: When card is in wrong state, log which state it is, Cédric Le Goater, 2023/09/01
- [PULL 10/26] aspeed: Create flash devices only when defaults are enabled, Cédric Le Goater, 2023/09/01
- [PULL 17/26] hw/sd: Introduce sd_cmd_handler type, Cédric Le Goater, 2023/09/01
- [PULL 16/26] hw/sd: Move proto_name to SDProto structure, Cédric Le Goater, 2023/09/01