All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Cédric Le Goater" <clg@kaod.org>
To: qemu-arm@nongnu.org
Cc: qemu-devel@nongnu.org, "Peter Maydell" <peter.maydell@linaro.org>,
	"Joel Stanley" <joel@jms.id.au>,
	"Andrew Jeffery" <andrew@aj.id.au>,
	"Cédric Le Goater" <clg@kaod.org>,
	"Alistair Francis" <alistair@alistair23.me>
Subject: [PATCH 05/12] hw/ssi: Introduce a ssi_get_cs() helper
Date: Mon,  8 May 2023 09:58:52 +0200	[thread overview]
Message-ID: <20230508075859.3326566-6-clg@kaod.org> (raw)
In-Reply-To: <20230508075859.3326566-1-clg@kaod.org>

Simple routine to retrieve a DeviceState object on a SPI bus using its
address/cs. It will be useful for the board to wire the CS lines.

Cc: Alistair Francis <alistair@alistair23.me>
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 ffd3a34ba4..c7beabdb09 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, int addr);
+
 #endif
diff --git a/hw/ssi/ssi.c b/hw/ssi/ssi.c
index 9fffe4f27a..a25e064417 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, int addr)
+{
+    BusState *b = BUS(bus);
+    BusChild *kid;
+
+    QTAILQ_FOREACH(kid, &b->children, sibling) {
+        SSIPeripheral *kid_ssi = SSI_PERIPHERAL(kid->child);
+        if (kid_ssi->addr == addr) {
+            return kid->child;
+        }
+    }
+
+    return NULL;
+}
+
 static const TypeInfo ssi_bus_info = {
     .name = TYPE_SSI_BUS,
     .parent = TYPE_BUS,
-- 
2.40.0



  parent reply	other threads:[~2023-05-08  8:02 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-08  7:58 [PATCH 00/12] aspeed: fixes and extensions Cédric Le Goater
2023-05-08  7:58 ` [PATCH 01/12] aspeed/hace: Initialize g_autofree pointer Cédric Le Goater
2023-05-08 14:28   ` Francisco Iglesias
2023-05-30 21:30   ` Philippe Mathieu-Daudé
2023-05-08  7:58 ` [PATCH 02/12] aspeed: Introduce a boot_rom region at the machine level Cédric Le Goater
2023-05-08 14:27   ` Francisco Iglesias
2023-05-30 21:28   ` Philippe Mathieu-Daudé
2023-05-08  7:58 ` [PATCH 03/12] aspeed: Use the boot_rom region of the fby35 machine Cédric Le Goater
2023-05-30 21:27   ` Philippe Mathieu-Daudé
2023-05-31  5:57     ` Cédric Le Goater
2023-05-08  7:58 ` [PATCH 04/12] hw/ssi: Add an "addr" property to SSIPeripheral Cédric Le Goater
2023-05-30 20:33   ` Philippe Mathieu-Daudé
2023-05-31  5:58     ` Cédric Le Goater
2023-05-08  7:58 ` Cédric Le Goater [this message]
2023-05-30 20:34   ` [PATCH 05/12] hw/ssi: Introduce a ssi_get_cs() helper Philippe Mathieu-Daudé
2023-05-30 21:15     ` Philippe Mathieu-Daudé
2023-05-31  5:59       ` Cédric Le Goater
2023-05-31  6:17         ` Philippe Mathieu-Daudé
2023-05-31  6:36           ` Cédric Le Goater
2023-05-31  7:39             ` Philippe Mathieu-Daudé
2023-06-05  5:57               ` Bernhard Beschow
2023-06-05 16:21                 ` Cédric Le Goater
2023-05-31  5:58     ` Cédric Le Goater
2023-05-08  7:58 ` [PATCH 06/12] aspeed/smc: Wire CS lines at reset Cédric Le Goater
2023-05-30 20:56   ` Philippe Mathieu-Daudé
2023-05-31  6:14     ` Cédric Le Goater
2023-05-08  7:58 ` [PATCH 07/12] hw/ssi: Check for duplicate addresses Cédric Le Goater
2023-05-30 21:05   ` Philippe Mathieu-Daudé
2023-05-31  6:20     ` Cédric Le Goater
2023-05-08  7:58 ` [PATCH 08/12] aspeed: Create flash devices only when defaults are enabled Cédric Le Goater
2023-05-08  7:58 ` [PATCH 09/12] m25p80: Introduce an helper to retrieve the BlockBackend of a device Cédric Le Goater
2023-05-30 21:14   ` Philippe Mathieu-Daudé
2023-05-31  6:48     ` Cédric Le Goater
2023-05-31  7:47       ` Philippe Mathieu-Daudé
2023-05-08  7:58 ` [PATCH 10/12] aspeed: Get the BlockBackend of FMC0 from the flash device Cédric Le Goater
2023-05-30 21:08   ` Philippe Mathieu-Daudé
2023-05-08  7:58 ` [PATCH 11/12] aspeed: Introduce a "uart" machine option Cédric Le Goater
2023-05-30 21:22   ` Philippe Mathieu-Daudé
2023-05-31  6:28     ` Cédric Le Goater
2023-05-31  7:50       ` Philippe Mathieu-Daudé
2023-05-31  8:47         ` Cédric Le Goater
2023-05-08  7:58 ` [PATCH 12/12] target/arm: Allow users to set the number of VFP registers Cédric Le Goater
2023-05-30 15:03 ` [PATCH 00/12] aspeed: fixes and extensions Cédric Le Goater

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230508075859.3326566-6-clg@kaod.org \
    --to=clg@kaod.org \
    --cc=alistair@alistair23.me \
    --cc=andrew@aj.id.au \
    --cc=joel@jms.id.au \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.