xref: /openbmc/u-boot/drivers/cpu/cpu_sandbox.c (revision 4e710ebb4463c8e031eb269c012fbadb2479608b)
1*fa44b533SMario Six // SPDX-License-Identifier: GPL-2.0+
2*fa44b533SMario Six /*
3*fa44b533SMario Six  * (C) Copyright 2018
4*fa44b533SMario Six  * Mario Six, Guntermann & Drunck GmbH, mario.six@gdsys.cc
5*fa44b533SMario Six  */
6*fa44b533SMario Six 
7*fa44b533SMario Six #include <common.h>
8*fa44b533SMario Six #include <dm.h>
9*fa44b533SMario Six #include <cpu.h>
10*fa44b533SMario Six 
cpu_sandbox_get_desc(struct udevice * dev,char * buf,int size)11*fa44b533SMario Six int cpu_sandbox_get_desc(struct udevice *dev, char *buf, int size)
12*fa44b533SMario Six {
13*fa44b533SMario Six 	snprintf(buf, size, "LEG Inc. SuperMegaUltraTurbo CPU No. 1");
14*fa44b533SMario Six 
15*fa44b533SMario Six 	return 0;
16*fa44b533SMario Six }
17*fa44b533SMario Six 
cpu_sandbox_get_info(struct udevice * dev,struct cpu_info * info)18*fa44b533SMario Six int cpu_sandbox_get_info(struct udevice *dev, struct cpu_info *info)
19*fa44b533SMario Six {
20*fa44b533SMario Six 	info->cpu_freq = 42 * 42 * 42 * 42 * 42;
21*fa44b533SMario Six 	info->features = 0x42424242;
22*fa44b533SMario Six 
23*fa44b533SMario Six 	return 0;
24*fa44b533SMario Six }
25*fa44b533SMario Six 
cpu_sandbox_get_count(struct udevice * dev)26*fa44b533SMario Six int cpu_sandbox_get_count(struct udevice *dev)
27*fa44b533SMario Six {
28*fa44b533SMario Six 	return 42;
29*fa44b533SMario Six }
30*fa44b533SMario Six 
cpu_sandbox_get_vendor(struct udevice * dev,char * buf,int size)31*fa44b533SMario Six int cpu_sandbox_get_vendor(struct udevice *dev, char *buf, int size)
32*fa44b533SMario Six {
33*fa44b533SMario Six 	snprintf(buf, size, "Languid Example Garbage Inc.");
34*fa44b533SMario Six 
35*fa44b533SMario Six 	return 0;
36*fa44b533SMario Six }
37*fa44b533SMario Six 
38*fa44b533SMario Six static const struct cpu_ops cpu_sandbox_ops = {
39*fa44b533SMario Six 	.get_desc = cpu_sandbox_get_desc,
40*fa44b533SMario Six 	.get_info = cpu_sandbox_get_info,
41*fa44b533SMario Six 	.get_count = cpu_sandbox_get_count,
42*fa44b533SMario Six 	.get_vendor = cpu_sandbox_get_vendor,
43*fa44b533SMario Six };
44*fa44b533SMario Six 
cpu_sandbox_probe(struct udevice * dev)45*fa44b533SMario Six int cpu_sandbox_probe(struct udevice *dev)
46*fa44b533SMario Six {
47*fa44b533SMario Six 	return 0;
48*fa44b533SMario Six }
49*fa44b533SMario Six 
50*fa44b533SMario Six static const struct udevice_id cpu_sandbox_ids[] = {
51*fa44b533SMario Six 	{ .compatible = "sandbox,cpu_sandbox" },
52*fa44b533SMario Six 	{ }
53*fa44b533SMario Six };
54*fa44b533SMario Six 
55*fa44b533SMario Six U_BOOT_DRIVER(cpu_sandbox) = {
56*fa44b533SMario Six 	.name           = "cpu_sandbox",
57*fa44b533SMario Six 	.id             = UCLASS_CPU,
58*fa44b533SMario Six 	.ops		= &cpu_sandbox_ops,
59*fa44b533SMario Six 	.of_match       = cpu_sandbox_ids,
60*fa44b533SMario Six 	.probe          = cpu_sandbox_probe,
61*fa44b533SMario Six };
62