diff options
Diffstat (limited to 'drivers/demo/demo-simple.c')
| -rw-r--r-- | drivers/demo/demo-simple.c | 47 | 
1 files changed, 47 insertions, 0 deletions
| diff --git a/drivers/demo/demo-simple.c b/drivers/demo/demo-simple.c new file mode 100644 index 000000000..6ba813172 --- /dev/null +++ b/drivers/demo/demo-simple.c @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2013 Google, Inc + * + * (C) Copyright 2012 + * Pavel Herrmann <morpheus.ibis@gmail.com> + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#include <common.h> +#include <dm.h> +#include <dm-demo.h> +#include <asm/io.h> + +static int simple_hello(struct device *dev, int ch) +{ +	const struct dm_demo_pdata *pdata = dev_get_platdata(dev); + +	printf("Hello from %08x: %s %d\n", map_to_sysmem(dev), pdata->colour, +	       pdata->sides); + +	return 0; +} + +static const struct demo_ops simple_ops = { +	.hello = simple_hello, +}; + +static int demo_shape_ofdata_to_platdata(struct device *dev) +{ +	/* Parse the data that is common with all demo devices */ +	return demo_parse_dt(dev); +} + +static const struct device_id demo_shape_id[] = { +	{ "demo-simple", 0 }, +	{ }, +}; + +U_BOOT_DRIVER(demo_simple_drv) = { +	.name	= "demo_simple_drv", +	.of_match = demo_shape_id, +	.id	= UCLASS_DEMO, +	.ofdata_to_platdata = demo_shape_ofdata_to_platdata, +	.ops	= &simple_ops, +	.platdata_auto_alloc_size = sizeof(struct dm_demo_pdata), +}; |