/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Copyright (c) 2013 Google, Inc
 */

#ifndef __DM_DEMO_H
#define __DM_DEMO_H

/**
 * struct dm_demo_pdata - configuration data for demo instance
 *
 * @colour: Color of the demo
 * @sides: Numbers of sides
 * @default_char: Default ASCII character to output (65 = 'A')
 */
struct dm_demo_pdata {
	const char *colour;
	int sides;
	int default_char;
};

struct demo_ops {
	int (*hello)(struct udevice *dev, int ch);
	int (*status)(struct udevice *dev, int *status);
	int (*set_light)(struct udevice *dev, int light);
	int (*get_light)(struct udevice *dev);
};

int demo_hello(struct udevice *dev, int ch);
int demo_status(struct udevice *dev, int *status);
int demo_set_light(struct udevice *dev, int light);
int demo_get_light(struct udevice *dev);
int demo_list(void);

int demo_parse_dt(struct udevice *dev);

#endif
