Using the mailbox subsystem for plain doorbells?

From: Stephen Warren
Date: Mon May 09 2016 - 19:45:46 EST


Jassi,

Does the HW described below sound like something that should be represented using the Linux kernel's mailbox subsystem, and related DT bindings? I think the existing drivers/mailbox/pcc.c is similar, but wanted to double-check.

We have some HW that literally just allows a SW-generated interrupt to be generated by our main CPU complex to an auxiliary CPU, and likewise a different interrupt can be generated in the opposite direction. There's no ability to transfer any data; just an IRQ is generated. Our current mailbox implementation just handles IRQ generation/reception so struct mbox_chan_ops.send_data completely ignores the data parameter, and our IRQ handler "receives" hard-coded NULL messages when the IRQ fires. Higher level protocol code (using shared memory along with the plain-IRQ mbox channels) is outside the mailbox driver.

Does that fit the mailbox subsystem?