
From: Simon Glass <sjg@chromium.org> Add a header file to allow other drivers to implement MMIO and share the code. Signed-off-by: Simon Glass <sjg@chromium.org> --- drivers/virtio/virtio_internal.h | 19 +++++++++++++++++++ drivers/virtio/virtio_mmio.c | 7 ++++--- 2 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 drivers/virtio/virtio_internal.h diff --git a/drivers/virtio/virtio_internal.h b/drivers/virtio/virtio_internal.h new file mode 100644 index 00000000000..96b6bffbe54 --- /dev/null +++ b/drivers/virtio/virtio_internal.h @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Internal header file for virtio + * + * Copyright 2025 Simon Glass <sjg@chromium.org> + */ + +#ifndef _VIRTIO_INTERNAL_H +#define _VIRTIO_INTERNAL_H + +struct udevice; + +/* MMIO operations from virtio_mmcio.c */ +extern const struct dm_virtio_ops virtio_mmio_ops; + +/* exported probe function from virtio_mmcio.c */ +int virtio_mmio_probe(struct udevice *udev); + +#endif diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c index 1cd737aca24..190a4d617ad 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -344,13 +344,14 @@ static int virtio_mmio_of_to_plat(struct udevice *udev) return 0; } -static int virtio_mmio_probe(struct udevice *udev) +int virtio_mmio_probe(struct udevice *udev) { struct virtio_mmio_priv *priv = dev_get_priv(udev); struct virtio_dev_priv *uc_priv = dev_get_uclass_priv(udev); u32 magic; /* Check magic value */ + log_debug("probe %p\n", priv->base); magic = readl(priv->base + VIRTIO_MMIO_MAGIC_VALUE); if (magic != ('v' | 'i' << 8 | 'r' << 16 | 't' << 24)) { debug("(%s): wrong magic value 0x%08x!\n", udev->name, magic); @@ -379,13 +380,13 @@ static int virtio_mmio_probe(struct udevice *udev) if (priv->version == 1) writel(PAGE_SIZE, priv->base + VIRTIO_MMIO_GUEST_PAGE_SIZE); - debug("(%s): device (%d) vendor (%08x) version (%d)\n", udev->name, + debug("(%s): device (%04x) vendor (%04x) version (%d)\n", udev->name, uc_priv->device, uc_priv->vendor, priv->version); return 0; } -static const struct dm_virtio_ops virtio_mmio_ops = { +const struct dm_virtio_ops virtio_mmio_ops = { .get_config = virtio_mmio_get_config, .set_config = virtio_mmio_set_config, .generation = virtio_mmio_generation, -- 2.43.0