1 /* 2 * Copyright (c) 2016, NVIDIA CORPORATION. 3 * 4 * SPDX-License-Identifier: GPL-2.0 5 */ 6 7 #include <common.h> 8 #include <dm.h> 9 #include <mailbox.h> 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 }; 55