uboot/drivers/demo/demo-uclass.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0+
   2/*
   3 * Copyright (c) 2013 Google, Inc
   4 *
   5 * (C) Copyright 2012
   6 * Pavel Herrmann <morpheus.ibis@gmail.com>
   7 */
   8
   9#include <common.h>
  10#include <dm.h>
  11#include <dm-demo.h>
  12#include <errno.h>
  13#include <log.h>
  14#include <malloc.h>
  15#include <asm/io.h>
  16#include <linux/list.h>
  17
  18UCLASS_DRIVER(demo) = {
  19        .name           = "demo",
  20        .id             = UCLASS_DEMO,
  21};
  22
  23int demo_hello(struct udevice *dev, int ch)
  24{
  25        const struct demo_ops *ops = device_get_ops(dev);
  26
  27        if (!ops->hello)
  28                return -ENOSYS;
  29
  30        return ops->hello(dev, ch);
  31}
  32
  33int demo_status(struct udevice *dev, int *status)
  34{
  35        const struct demo_ops *ops = device_get_ops(dev);
  36
  37        if (!ops->status)
  38                return -ENOSYS;
  39
  40        return ops->status(dev, status);
  41}
  42
  43int demo_get_light(struct udevice *dev)
  44{
  45        const struct demo_ops *ops = device_get_ops(dev);
  46
  47        if (!ops->get_light)
  48                return -ENOSYS;
  49
  50        return ops->get_light(dev);
  51}
  52
  53int demo_set_light(struct udevice *dev, int light)
  54{
  55        const struct demo_ops *ops = device_get_ops(dev);
  56
  57        if (!ops->set_light)
  58                return -ENOSYS;
  59
  60        return ops->set_light(dev, light);
  61}
  62
  63int demo_parse_dt(struct udevice *dev)
  64{
  65        struct dm_demo_pdata *pdata = dev_get_plat(dev);
  66
  67        pdata->sides = dev_read_s32_default(dev, "sides", 0);
  68        pdata->colour = dev_read_string(dev, "colour");
  69        if (!pdata->sides || !pdata->colour) {
  70                debug("%s: Invalid device tree data\n", __func__);
  71                return -EINVAL;
  72        }
  73
  74        return 0;
  75}
  76