]>
Commit | Line | Data |
---|---|---|
83d290c5 | 1 | // SPDX-License-Identifier: GPL-2.0 |
8961b524 SW |
2 | /* |
3 | * Copyright (c) 2016, NVIDIA CORPORATION. | |
8961b524 SW |
4 | */ |
5 | ||
6 | #include <common.h> | |
7 | #include <dm.h> | |
769d52ef | 8 | #include <mailbox.h> |
336d4615 | 9 | #include <malloc.h> |
8961b524 SW |
10 | #include <asm/io.h> |
11 | ||
12 | struct sandbox_mbox_test { | |
13 | struct mbox_chan chan; | |
14 | }; | |
15 | ||
16 | int sandbox_mbox_test_get(struct udevice *dev) | |
17 | { | |
18 | struct sandbox_mbox_test *sbmt = dev_get_priv(dev); | |
19 | ||
20 | return mbox_get_by_name(dev, "test", &sbmt->chan); | |
21 | } | |
22 | ||
23 | int sandbox_mbox_test_send(struct udevice *dev, uint32_t msg) | |
24 | { | |
25 | struct sandbox_mbox_test *sbmt = dev_get_priv(dev); | |
26 | ||
27 | return mbox_send(&sbmt->chan, &msg); | |
28 | } | |
29 | ||
30 | int sandbox_mbox_test_recv(struct udevice *dev, uint32_t *msg) | |
31 | { | |
32 | struct sandbox_mbox_test *sbmt = dev_get_priv(dev); | |
33 | ||
34 | return mbox_recv(&sbmt->chan, msg, 100); | |
35 | } | |
36 | ||
37 | int sandbox_mbox_test_free(struct udevice *dev) | |
38 | { | |
39 | struct sandbox_mbox_test *sbmt = dev_get_priv(dev); | |
40 | ||
41 | return mbox_free(&sbmt->chan); | |
42 | } | |
43 | ||
44 | static const struct udevice_id sandbox_mbox_test_ids[] = { | |
45 | { .compatible = "sandbox,mbox-test" }, | |
46 | { } | |
47 | }; | |
48 | ||
49 | U_BOOT_DRIVER(sandbox_mbox_test) = { | |
50 | .name = "sandbox_mbox_test", | |
51 | .id = UCLASS_MISC, | |
52 | .of_match = sandbox_mbox_test_ids, | |
53 | .priv_auto_alloc_size = sizeof(struct sandbox_mbox_test), | |
54 | }; |