uboot/drivers/misc/sandbox_adder.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2/*
   3 * Sandbox adder for p2sb testing
   4 *
   5 * Copyright 2019 Google LLC
   6 */
   7
   8#define LOG_CATEGORY UCLASS_MISC
   9
  10#include <common.h>
  11#include <axi.h>
  12#include <dm.h>
  13#include <misc.h>
  14#include <p2sb.h>
  15#include <asm/io.h>
  16
  17struct sandbox_adder_priv {
  18        ulong base;
  19};
  20
  21int sandbox_adder_read(struct udevice *dev, ulong address, void *data,
  22                       enum axi_size_t size)
  23{
  24        struct p2sb_child_plat *pplat = dev_get_parent_plat(dev);
  25        u32 *val = data;
  26
  27        *val = pplat->pid << 24 | address;
  28
  29        return 0;
  30}
  31
  32int sandbox_adder_write(struct udevice *dev, ulong address, void *data,
  33                        enum axi_size_t size)
  34{
  35        return 0;
  36}
  37
  38static int sandbox_adder_probe(struct udevice *dev)
  39{
  40        return 0;
  41}
  42
  43static struct axi_ops sandbox_adder_ops = {
  44        .read   = sandbox_adder_read,
  45        .write  = sandbox_adder_write,
  46};
  47
  48static const struct udevice_id sandbox_adder_ids[] = {
  49        { .compatible = "sandbox,adder" },
  50        { }
  51};
  52
  53U_BOOT_DRIVER(adder_sandbox) = {
  54        .name = "sandbox_adder",
  55        .id = UCLASS_AXI,
  56        .of_match = sandbox_adder_ids,
  57        .probe = sandbox_adder_probe,
  58        .ops = &sandbox_adder_ops,
  59        .priv_auto      = sizeof(struct sandbox_adder_priv),
  60};
  61