xref: /rk3399_rockchip-uboot/drivers/demo/demo-simple.c (revision b939689c7b87773c44275a578ffc8674a867e39d)
139f7611fSSimon Glass /*
239f7611fSSimon Glass  * Copyright (c) 2013 Google, Inc
339f7611fSSimon Glass  *
439f7611fSSimon Glass  * (C) Copyright 2012
539f7611fSSimon Glass  * Pavel Herrmann <morpheus.ibis@gmail.com>
639f7611fSSimon Glass  *
739f7611fSSimon Glass  * SPDX-License-Identifier:	GPL-2.0+
839f7611fSSimon Glass  */
939f7611fSSimon Glass 
1039f7611fSSimon Glass #include <common.h>
1139f7611fSSimon Glass #include <dm.h>
1239f7611fSSimon Glass #include <dm-demo.h>
13*0eb25b61SJoe Hershberger #include <mapmem.h>
1439f7611fSSimon Glass #include <asm/io.h>
1539f7611fSSimon Glass 
simple_hello(struct udevice * dev,int ch)1654c5d08aSHeiko Schocher static int simple_hello(struct udevice *dev, int ch)
1739f7611fSSimon Glass {
1839f7611fSSimon Glass 	const struct dm_demo_pdata *pdata = dev_get_platdata(dev);
1939f7611fSSimon Glass 
2039f7611fSSimon Glass 	printf("Hello from %08x: %s %d\n", map_to_sysmem(dev), pdata->colour,
2139f7611fSSimon Glass 	       pdata->sides);
2239f7611fSSimon Glass 
2339f7611fSSimon Glass 	return 0;
2439f7611fSSimon Glass }
2539f7611fSSimon Glass 
2639f7611fSSimon Glass static const struct demo_ops simple_ops = {
2739f7611fSSimon Glass 	.hello = simple_hello,
2839f7611fSSimon Glass };
2939f7611fSSimon Glass 
demo_shape_ofdata_to_platdata(struct udevice * dev)3054c5d08aSHeiko Schocher static int demo_shape_ofdata_to_platdata(struct udevice *dev)
3139f7611fSSimon Glass {
3239f7611fSSimon Glass 	/* Parse the data that is common with all demo devices */
3339f7611fSSimon Glass 	return demo_parse_dt(dev);
3439f7611fSSimon Glass }
3539f7611fSSimon Glass 
36ae7f4513SSimon Glass static const struct udevice_id demo_shape_id[] = {
3739f7611fSSimon Glass 	{ "demo-simple", 0 },
3839f7611fSSimon Glass 	{ },
3939f7611fSSimon Glass };
4039f7611fSSimon Glass 
4139f7611fSSimon Glass U_BOOT_DRIVER(demo_simple_drv) = {
4239f7611fSSimon Glass 	.name	= "demo_simple_drv",
4339f7611fSSimon Glass 	.of_match = demo_shape_id,
4439f7611fSSimon Glass 	.id	= UCLASS_DEMO,
4539f7611fSSimon Glass 	.ofdata_to_platdata = demo_shape_ofdata_to_platdata,
4639f7611fSSimon Glass 	.ops	= &simple_ops,
4739f7611fSSimon Glass 	.platdata_auto_alloc_size = sizeof(struct dm_demo_pdata),
4839f7611fSSimon Glass };
49