Lines Matching defs:mbox

63 	return container_of(link->mbox, struct bcm2835_mbox, controller);
68 struct bcm2835_mbox *mbox = dev_id;
69 struct device *dev = mbox->controller.dev;
70 struct mbox_chan *link = &mbox->controller.chans[0];
72 while (!(readl(mbox->regs + MAIL0_STA) & ARM_MS_EMPTY)) {
73 u32 msg = readl(mbox->regs + MAIL0_RD);
82 struct bcm2835_mbox *mbox = bcm2835_link_mbox(link);
85 spin_lock(&mbox->lock);
86 writel(msg, mbox->regs + MAIL1_WRT);
87 dev_dbg(mbox->controller.dev, "Request 0x%08X\n", msg);
88 spin_unlock(&mbox->lock);
94 struct bcm2835_mbox *mbox = bcm2835_link_mbox(link);
97 writel(ARM_MC_IHAVEDATAIRQEN, mbox->regs + MAIL0_CNF);
104 struct bcm2835_mbox *mbox = bcm2835_link_mbox(link);
106 writel(0, mbox->regs + MAIL0_CNF);
111 struct bcm2835_mbox *mbox = bcm2835_link_mbox(link);
114 spin_lock(&mbox->lock);
115 ret = !(readl(mbox->regs + MAIL1_STA) & ARM_MS_FULL);
116 spin_unlock(&mbox->lock);
127 static struct mbox_chan *bcm2835_mbox_index_xlate(struct mbox_controller *mbox,
133 return &mbox->chans[0];
140 struct bcm2835_mbox *mbox;
142 mbox = devm_kzalloc(dev, sizeof(*mbox), GFP_KERNEL);
143 if (mbox == NULL)
145 spin_lock_init(&mbox->lock);
148 bcm2835_mbox_irq, 0, dev_name(dev), mbox);
155 mbox->regs = devm_platform_ioremap_resource(pdev, 0);
156 if (IS_ERR(mbox->regs)) {
157 ret = PTR_ERR(mbox->regs);
161 mbox->controller.txdone_poll = true;
162 mbox->controller.txpoll_period = 5;
163 mbox->controller.ops = &bcm2835_mbox_chan_ops;
164 mbox->controller.of_xlate = &bcm2835_mbox_index_xlate;
165 mbox->controller.dev = dev;
166 mbox->controller.num_chans = 1;
167 mbox->controller.chans = devm_kzalloc(dev,
168 sizeof(*mbox->controller.chans), GFP_KERNEL);
169 if (!mbox->controller.chans)
172 ret = devm_mbox_controller_register(dev, &mbox->controller);
176 platform_set_drvdata(pdev, mbox);
183 { .compatible = "brcm,bcm2835-mbox", },
190 .name = "bcm2835-mbox",