mbox: add polarfire soc system controller mailbox
Subsystems (3)
[email protected]
maintainerPATCH v2 1/5 mbox: add polarfire soc system controller mailbox
From: Conor Dooley <[email protected]>
This driver adds support for the single mailbox channel of the MSS system controller on the Microchip PolarFire SoC.
--- drivers/mailbox/Kconfig | 12 ++ drivers/mailbox/Makefile | 2 + drivers/mailbox/mailbox-mpfs.c | 285 +++++++++++++++++++++++++++++++++ include/soc/microchip/mpfs.h | 51 ++++++ 4 files changed, 350 insertions(+) create mode 100644 drivers/mailbox/mailbox-mpfs.c create mode 100644 include/soc/microchip/mpfs.h
drivers/mailbox/Kconfig +12 -0
@@ -153,6 +153,18 @@ config MAILBOX_TEST Test client to help with testing new Controller driver implementations. +config MPFS_MBOX + tristate "MPFS Mailbox" + depends on HAS_IOMEM + depends on SOC_MICROCHIP_POLARFIRE || COMPILE_TEST + help + This driver adds support for the Polarfire SoC mailbox controller. + + To compile this driver as a module, choose M here. the + module will be called mailbox-mpfs. + + If unsure, say N. + config QCOM_APCS_IPC tristate "Qualcomm APCS IPC driver" depends on ARCH_QCOM || COMPILE_TEST
drivers/mailbox/Makefile +2 -0
@@ -39,6 +39,8 @@ obj-$(CONFIG_BCM_PDC_MBOX) += bcm-pdc-mailbox.o obj-$(CONFIG_BCM_FLEXRM_MBOX) += bcm-flexrm-mailbox.o +obj-$(CONFIG_MPFS_MBOX) += mailbox-mpfs.o + obj-$(CONFIG_QCOM_APCS_IPC) += qcom-apcs-ipc-mailbox.o obj-$(CONFIG_TEGRA_HSP_MBOX) += tegra-hsp.o
drivers/mailbox/mailbox-mpfs.c new file +285 -0
285 lines not on this page · raw message
include/soc/microchip/mpfs.h new file +51 -0
51 lines not on this page · raw message
Signature · 7 lines
2.17.1 _______________________________________________ linux-riscv mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-riscv
Quoted 74 lines · On 2020/12/01 20:02, [email protected] wrote:
From: Conor Dooley <[email protected]>
This driver adds support for the single mailbox channel of the MSS system controller on the Microchip PolarFire SoC.
Signed-off-by Conor Dooley <[email protected]>--- drivers/mailbox/Kconfig | 12 ++ drivers/mailbox/Makefile | 2 + drivers/mailbox/mailbox-mpfs.c | 285 +++++++++++++++++++++++++++++++++ include/soc/microchip/mpfs.h | 51 ++++++ 4 files changed, 350 insertions(+) create mode 100644 drivers/mailbox/mailbox-mpfs.c create mode 100644 include/soc/microchip/mpfs.hdrivers/mailbox/Kconfig +12
-0@@ -153,6 +153,18 @@ config MAILBOX_TEST Test client to help with testing new Controller driver implementations. +config MPFS_MBOX + tristate "MPFS Mailbox" + depends on HAS_IOMEM + depends on SOC_MICROCHIP_POLARFIRE || COMPILE_TEST + help + This driver adds support for the Polarfire SoC mailbox controller. + + To compile this driver as a module, choose M here. the + module will be called mailbox-mpfs. + + If unsure, say N. + config QCOM_APCS_IPC tristate "Qualcomm APCS IPC driver" depends on ARCH_QCOM || COMPILE_TESTdrivers/mailbox/Makefile +2
-0@@ -39,6 +39,8 @@ obj-$(CONFIG_BCM_PDC_MBOX) += bcm-pdc-mailbox.o obj-$(CONFIG_BCM_FLEXRM_MBOX) += bcm-flexrm-mailbox.o +obj-$(CONFIG_MPFS_MBOX) += mailbox-mpfs.o + obj-$(CONFIG_QCOM_APCS_IPC) += qcom-apcs-ipc-mailbox.o obj-$(CONFIG_TEGRA_HSP_MBOX) += tegra-hsp.odrivers/mailbox/mailbox-mpfs.c new file +17
-0@@ -0,0 +1,285 @@ +// SPDX-License-Identifier: GPL-2.0 +/* +* Microchip MPFS system controller/mailbox controller driver +* +* Copyright (c) 2020 Microchip Corporation. All rights reserved. +* +* Author: Conor Dooley <[email protected]> +* +*/ + +#include <linux/io.h> +#include <linux/err.h> +#include <linux/init.h> +#include <linux/module.h> +#include <linux/kernel.h> +#include <linux/interrupt.h> +#include <linux/platform_device.h>
drivers/mailbox/mailbox-mpfs.c line 27
Quoted 10 lines
drivers/mailbox/mailbox-mpfs.c new file +10
-0+#include <linux/mailbox_controller.h> +#include <soc/microchip/mpfs.h> + +#define SERVICES_CR_OFFSET 0x50u +#define SERVICES_SR_OFFSET 0x54u +#define MAILBOX_REG_OFFSET 0x800u +#define MSS_SYS_BUSY -EBUSY +#define MSS_SYS_PARAM_ERR -EINVAL +#define MSS_SYS_MAILBOX_DATA_OFFSET 0u +#define SCB_MASK_WIDTH 16u
Value identation seems off here. Aligning it would be nice.
Quoted 6 lines
drivers/mailbox/mailbox-mpfs.c new file +6
-0+/* SCBCTRL service control register */ + +#define SCB_CTRL_REQ (0u) +#define SCB_CTRL_REQ_MASK BIT(SCB_CTRL_REQ) + +#define SCB_CTRL_BUSY (1u)
drivers/mailbox/mailbox-mpfs.c line 43
Quoted 10 lines
drivers/mailbox/mailbox-mpfs.c new file +10
-0+#define SCB_CTRL_BUSY_MASK BIT(SCB_CTRL_BUSY) + +#define SCB_CTRL_ABORT (2u) +#define SCB_CTRL_ABORT_MASK BIT(SCB_CTRL_ABORT) + +#define SCB_CTRL_NOTIFY (3u) +#define SCB_CTRL_NOTIFY_MASK BIT(SCB_CTRL_NOTIFY) + +#define SCB_CTRL_POS (16u) +#define SCB_CTRL_MASK GENMASK(SCB_CTRL_POS+SCB_MASK_WIDTH, SCB_CTRL_POS)
Please add spaces before and after the "+" operator.
And I am really not a big fan of the (useless in my opinion) "u" for unsigned for all of these.
Quoted 7 lines
drivers/mailbox/mailbox-mpfs.c new file +7
-0+ +/* SCBCTRL service status registers */ + +#define SCB_STATUS_REQ (0u) +#define SCB_STATUS_REQ_MASK BIT(SCB_STATUS_REQ) + +#define SCB_STATUS_BUSY (1u)
drivers/mailbox/mailbox-mpfs.c line 60
Quoted 10 lines
drivers/mailbox/mailbox-mpfs.c new file +10
-0+#define SCB_STATUS_BUSY_MASK BIT(SCB_STATUS_BUSY) + +#define SCB_STATUS_ABORT (2u) +#define SCB_STATUS_ABORT_MASK BIT(SCB_STATUS_ABORT) + +#define SCB_STATUS_NOTIFY (3u) +#define SCB_STATUS_NOTIFY_MASK BIT(SCB_STATUS_NOTIFY) + +#define SCB_STATUS_POS (16u) +#define SCB_STATUS_MASK GENMASK(SCB_STATUS_POS+SCB_MASK_WIDTH, SCB_STATUS_POS)
Spaces around "+".
Quoted 15 lines
drivers/mailbox/mailbox-mpfs.c new file +15
-0+ +struct mpfs_mbox { +struct mbox_controller controller; +struct device *dev; +int irq; +void __iomem *mailbox_base; +void __iomem *int_reg; +struct mbox_chan *chan; +u16 response_size; +u16 response_offset; +}; + +static bool mpfs_mbox_busy (struct mpfs_mbox *mbox) +{ +u32 status;
drivers/mailbox/mailbox-mpfs.c line 85
Quoted 10 lines
drivers/mailbox/mailbox-mpfs.c new file +10
-0+ + status =readl_relaxed (mbox->mailbox_base +SERVICES_SR_OFFSET ); + +return status &SCB_STATUS_BUSY_MASK ; +} + +static struct mpfs_mbox *mbox_chan_to_mpfs_mbox (struct mbox_chan *chan) +{ +if (!chan || !chan->con_priv) +return NULL ;
You do not need the "|| !chan->con_priv" here. The return below will return NULL.
Quoted 21 lines
drivers/mailbox/mailbox-mpfs.c new file +21
-0+ +return (struct mpfs_mbox *)chan->con_priv; +} + +static int mpfs_mbox_send_data (struct mbox_chan *chan,void *data) +{ +u32 index; +u32 *word_buf; +u8 *byte_buf; +u8 byte_off; +u8 i; +u32 mailbox_val =0u ; +u16 mb_offset; +u16 mbox_options_select; +u32 mbox_tx_trigger; +struct mpfs_mss_msg *msg = data; +struct mpfs_mbox *mbox =mbox_chan_to_mpfs_mbox (chan); + mb_offset = msg->mailbox_offset; + mbox->response_size = msg->response_size; + mbox->response_offset = msg->response_offset; +
drivers/mailbox/mailbox-mpfs.c line 116
Quoted 10 lines
drivers/mailbox/mailbox-mpfs.c new file +10
-0+if (mpfs_mbox_busy (mbox)) +return MSS_SYS_BUSY ; + + mbox_options_select = ((mb_offset <<7u ) | (msg->cmd_opcode &0x7fu )); + mbox_tx_trigger = (((mbox_options_select <<SCB_CTRL_POS ) & +SCB_CTRL_MASK ) |SCB_CTRL_REQ_MASK |SCB_STATUS_NOTIFY_MASK ); + +/* Code for MSS_SYS_PARAM_ERR is not implemented with this version of driver. */ + +writel_relaxed (0x0u , mbox->int_reg);
0x0u seems like an awfully complicated way of writing 0. Less characters for the brain to decode makes reading easier :)
drivers/mailbox/mailbox-mpfs.c line 124
Quoted 8 lines
drivers/mailbox/mailbox-mpfs.c new file +8
-0+ +if (msg->cmd_data_size) { + byte_buf = (u8 *)(msg->cmd_data); + +for (index =0 ; index < (msg->cmd_data_size /4 ); index++) { +writel_relaxed (word_buf[index], + mbox->mailbox_base +MAILBOX_REG_OFFSET + index); + }
You do not need the braces here.
drivers/mailbox/mailbox-mpfs.c line 126
Quoted 2 lines
drivers/mailbox/mailbox-mpfs.c new file +2
-0+ +if ((msg->cmd_data_size %4 ) >0 ) {
s/% 4/& 3. And you do not need the "> 0".
drivers/mailbox/mailbox-mpfs.c line 127
Quoted 1 line
drivers/mailbox/mailbox-mpfs.c new file +1
-0+ byte_off = (((msg->cmd_data_size /4 ) *4 ));
Extra outside parenthesis not needed.byte_off = msg->cmd_data_size & (~3);
orbyte_off = ALIGN_DOWN(msg->cmd_data_size, 4);
drivers/mailbox/mailbox-mpfs.c line 128
Quoted 1 line
drivers/mailbox/mailbox-mpfs.c new file +1
-0+ byte_buf = (u8 *)(msg->cmd_data + byte_off);
cmd_data is already u8 *, so you do not need the cast.
drivers/mailbox/mailbox-mpfs.c line 133
Quoted 5 lines
drivers/mailbox/mailbox-mpfs.c new file +5
-0+ + mailbox_val =readl_relaxed (mbox->mailbox_base + +MAILBOX_REG_OFFSET + index); + +for (i =0u ; i < (msg->cmd_data_size %4u ); i++) {
% 4 -> & 3
And since you already have taht in the if above, why not use a local variable ?
Quoted 26 lines
drivers/mailbox/mailbox-mpfs.c new file +26
-0+ mailbox_val &= ~(0xffu << (i *8u )); + mailbox_val |= (byte_buf[i] << (i *8u )); + } + +writel_relaxed (mailbox_val, mbox->mailbox_base +MAILBOX_REG_OFFSET + index); + } + } + +writel_relaxed (mbox_tx_trigger, mbox->mailbox_base +SERVICES_CR_OFFSET ); + +return 0 ; +} + +static inline bool mpfs_mbox_pending (struct mpfs_mbox *mbox) +{ +u32 status; + + status =readl_relaxed (mbox->mailbox_base +SERVICES_SR_OFFSET ); + +return !(status &SCB_STATUS_BUSY_MASK ); +} + +static void mpfs_mbox_rx_data (struct mbox_chan *chan) +{ +struct mpfs_mbox *mbox =mbox_chan_to_mpfs_mbox (chan); +u32 *data;
drivers/mailbox/mailbox-mpfs.c line 169
Quoted 10 lines
drivers/mailbox/mailbox-mpfs.c new file +10
-0+u32 i; +u32 response_limit; + + data =devm_kzalloc (mbox->dev,sizeof (*data) * mbox->response_size,GFP_ATOMIC ); +if (!data) +dev_err (mbox->dev,"failed to register mailbox interrupt:%d\n" , -ENOMEM ); + + response_limit = (mbox->response_size) + (mbox->response_offset); +if (mpfs_mbox_pending (mbox) && mbox->response_size >0U ) { +for (i = (mbox->response_offset); i < response_limit; i++) {
Parenthesis not needed around (mbox->response_offset).
drivers/mailbox/mailbox-mpfs.c line 170
Quoted 1 line
drivers/mailbox/mailbox-mpfs.c new file +1
-0+ data[i - (mbox->response_offset)] =
Same here.
Quoted 4 lines
drivers/mailbox/mailbox-mpfs.c new file +4
-0+readl_relaxed (mbox->mailbox_base +MAILBOX_REG_OFFSET + i *0x4 ); + } + } +
drivers/mailbox/mailbox-mpfs.c line 184
Quoted 10 lines
drivers/mailbox/mailbox-mpfs.c new file +10
-0+mbox_chan_received_data (chan, (void *)data); +devm_kfree (mbox->dev, data); +} + +static irqreturn_t mpfs_mbox_inbox_isr (int irq,void *data) +{ +struct mbox_chan *chan = (struct mbox_chan *)data; +struct mpfs_mbox *mbox =mbox_chan_to_mpfs_mbox (chan); + +writel_relaxed (0x0U , mbox->int_reg);
0x0U == 0...
Quoted 8 lines
drivers/mailbox/mailbox-mpfs.c new file +8
-0+ +mpfs_mbox_rx_data (chan); + +mbox_chan_txdone (chan,0 ); +return IRQ_HANDLED ; +} + +static int mpfs_mbox_startup (struct mbox_chan *chan)
drivers/mailbox/mailbox-mpfs.c line 202
Quoted 10 lines
drivers/mailbox/mailbox-mpfs.c new file +10
-0+{ +struct mpfs_mbox *mbox =mbox_chan_to_mpfs_mbox (chan); +int ret =0 ; + +if (!mbox) +return -EINVAL ; + ret =devm_request_irq (mbox->dev, mbox->irq, mpfs_mbox_inbox_isr,0 ,"mpfs-mailbox" , chan); +if (ret) { +dev_err (mbox->dev,"failed to register mailbox interrupt:%d\n" , ret); + }
No need for the curly braces.
Quoted 59 lines
drivers/mailbox/mailbox-mpfs.c new file +59
-0+ +return ret; +} + +static void mpfs_mbox_shutdown (struct mbox_chan *chan) +{ +struct mpfs_mbox *mbox =mbox_chan_to_mpfs_mbox (chan); + +devm_free_irq (mbox->dev, mbox->irq, chan); +} + +static const struct mbox_chan_ops mpfs_mbox_ops = { + .send_data = mpfs_mbox_send_data, + .startup = mpfs_mbox_startup, + .shutdown = mpfs_mbox_shutdown, +}; + +static int mpfs_mbox_probe (struct platform_device *pdev) +{ +struct mpfs_mbox *mbox; +struct resource *regs; +struct mbox_chan *chans; +int ret; + + mbox =devm_kzalloc (&pdev->dev,sizeof (*mbox),GFP_KERNEL ); +if (!mbox) +return -ENOMEM ; + + chans =devm_kzalloc (&pdev->dev,sizeof (*chans),GFP_KERNEL ); +if (!chans) +return -ENOMEM ; + + mbox->mailbox_base =devm_platform_get_and_ioremap_resource (pdev,0 , ®s); +if (IS_ERR (mbox->mailbox_base)) +return PTR_ERR (mbox->mailbox_base); + + mbox->int_reg =devm_platform_get_and_ioremap_resource (pdev,1 , ®s); +if (IS_ERR (mbox->int_reg)) +return PTR_ERR (mbox->int_reg); + + mbox->irq =platform_get_irq (pdev,0 ); +if (mbox->irq <0 ) +return mbox->irq; + + mbox->dev = &pdev->dev; + + chans[0 ].con_priv = mbox; + mbox->controller.dev = mbox->dev; + mbox->controller.num_chans =1 ; + mbox->controller.chans = chans; + mbox->controller.ops = &mpfs_mbox_ops; + mbox->controller.txdone_irq = true; + + ret =devm_mbox_controller_register (&pdev->dev, &mbox->controller); +if (ret) { +dev_err (&pdev->dev,"Registering MPFS mailbox controller failed\n" ); +return ret; + } +dev_info (&pdev->dev,"Registered MPFS mailbox controller driver\n" );
drivers/mailbox/mailbox-mpfs.c line 271
Quoted 10 lines
drivers/mailbox/mailbox-mpfs.c new file +10
-0+ +return 0 ; +} + +static const struct of_device_id mpfs_mbox_of_match[] = { + { + .compatible ="microchip,polarfire-soc-mailbox" , + }, + {}, +};
The typical way of writing this is:
static const struct of_device_id mpfs_mbox_of_match[] = {
{ .compatible = "microchip,polarfire-soc-mailbox", },
{}
};Quoted 39 lines
drivers/mailbox/mailbox-mpfs.c new file +14
-0+MODULE_DEVICE_TABLE (of, mpfs_mbox_of_match); + +static struct platform_driver mpfs_mbox_driver = { + .driver = { + .name ="mpfs-mailbox" , + .of_match_table = mpfs_mbox_of_match, + }, + .probe = mpfs_mbox_probe, +}; +module_platform_driver (mpfs_mbox_driver); + +MODULE_LICENSE ("GPL v2" ); +MODULE_AUTHOR ("Conor Dooley <[email protected]>" ); +MODULE_DESCRIPTION ("MPFS mailbox controller driver" );include/soc/microchip/mpfs.h new file +19
-0@@ -0,0 +1,51 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* +* +* Microchip MPFS mailbox +* +* Copyright (c) 2020 Microchip Corporation. All rights reserved. +* +* Author: Conor Dooley <[email protected]> +* +*/ + +#ifndef __SOC_MPFS_H__ +#define __SOC_MPFS_H__ + +#include <linux/types.h> +#include <linux/of_device.h> + +struct mpfs_sys_controller ; +
include/soc/microchip/mpfs.h line 29
Quoted 10 lines
include/soc/microchip/mpfs.h new file +10
-0+struct mpfs_mss_msg { +u8 cmd_opcode; +u16 cmd_data_size; +u16 response_size; +u8 *cmd_data; +u16 mailbox_offset; +u16 response_offset; +}; + +#if IS_ENABLED (CONFIG_MPFS_SYS_CONTROLLER )
A simple #ifdef would do.
Quoted 23 lines
include/soc/microchip/mpfs.h new file +22
-0+ +int mpfs_blocking_transaction (struct mpfs_sys_controller *mpfs_client,void *msg, +void *response,u16 response_size_bytes); + +struct mpfs_sys_controller *mpfs_sys_controller_get (struct device_node *mailbox_node); + +#else + +static int mpfs_blocking_transaction (struct mpfs_sys_controller *mpfs_client,void *msg, +void *response,u16 response_size_bytes) +{ +return -ENOSYS ; +}; + +struct mpfs_sys_controller *mpfs_sys_controller_get (struct device_node *mailbox_node) +{ +return NULL ; +} + +#endif /* IS_ENABLED(CONFIG_MPFS_SYS_CONTROLLER) */ + +#endif /* __SOC_MPFS_H__ */
Signature · 7 lines
Damien Le Moal Western Digital Research _______________________________________________ linux-riscv mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-riscv
[email protected]
maintainerQuoted 17 lines · Damien Le Moal
EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
Quoted 14 lines · On 2020/12/01 20:02, [email protected] wrote:
From: Conor Dooley <[email protected]>
This driver adds support for the single mailbox channel of the MSS system controller on the Microchip PolarFire SoC.
Signed-off-by Conor Dooley <[email protected]>--- drivers/mailbox/Kconfig | 12 ++ drivers/mailbox/Makefile | 2 + drivers/mailbox/mailbox-mpfs.c | 285 +++++++++++++++++++++++++++++++++ include/soc/microchip/mpfs.h | 51 ++++++ 4 files changed, 350 insertions(+) create mode 100644 drivers/mailbox/mailbox-mpfs.c create mode 100644 include/soc/microchip/mpfs.h
(trimmed)
Quoted 26 lines
Quoted 26 lines
drivers/mailbox/mailbox-mpfs.c new file +20
-0@@ -0,0 +1,285 @@ +// SPDX-License-Identifier: GPL-2.0 +/* +* Microchip MPFS system controller/mailbox controller driver +* +* Copyright (c) 2020 Microchip Corporation. All rights reserved. +* +* Author: Conor Dooley <[email protected]> +* +*/ + +#include <linux/io.h> +#include <linux/err.h> +#include <linux/init.h> +#include <linux/module.h> +#include <linux/kernel.h> +#include <linux/interrupt.h> +#include <linux/platform_device.h> +#include <linux/mailbox_controller.h> +#include <soc/microchip/mpfs.h> +
Quoted 8 lines
drivers/mailbox/mailbox-mpfs.c line 27
Quoted 7 lines
drivers/mailbox/mailbox-mpfs.c new file +7
-0+#define SERVICES_CR_OFFSET 0x50u +#define SERVICES_SR_OFFSET 0x54u +#define MAILBOX_REG_OFFSET 0x800u +#define MSS_SYS_BUSY -EBUSY +#define MSS_SYS_PARAM_ERR -EINVAL +#define MSS_SYS_MAILBOX_DATA_OFFSET 0u +#define SCB_MASK_WIDTH 16uValue identation seems off here. Aligning it would be nice.
Not really sure why thats off, its off in my mail client too but it's aligned when I apply the patch from the original text file, or if I git am the emailed patch.
I'll address the other comments in the next version.
Quoted 3 lines
--
Damien Le Moal
Western Digital Research
_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv
Quoted 4 lines · On Tue, Dec 01, 2020 at 11:02:42AM +0000, [email protected] wrote:
From: Conor Dooley <[email protected]>
This driver adds support for the single mailbox channel of the MSS system controller on the Microchip PolarFire SoC.
Out of my curiosity: What is MSS? Is it the Microprocessor Subsystem in the SoC?
(It isn't quite clear from the PolarFire documentation I could find)
Quoted 3 lines
Signed-off-by Conor Dooley <[email protected]>---
[...]
drivers/mailbox/Kconfig config MAILBOX_TEST · line 157
Quoted 2 lines
drivers/mailbox/Kconfig +2
-0+config MPFS_MBOX + tristate "MPFS Mailbox"
"MPFS" in the title seems (to me) a bit too obscure for the uninitiated. Perhaps you could use something slightly longer that mentions Microchip and/or the PolarFire series?
drivers/mailbox/mailbox-mpfs.c line 3
Quoted 5 lines
+++
b/drivers/mailbox/mailbox-mpfs.cdrivers/mailbox/mailbox-mpfs.c new file +3
-0@@ -0,0 +1,285 @@ +// SPDX-License-Identifier: GPL-2.0 +/* +* Microchip MPFS system controller/mailbox controller driver
The same might apply here.
Best regards,
Jonathan Neuschäfer
_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv
[email protected]
maintainerQuoted 11 lines · Jonathan Neuschäfer
EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
Quoted 4 lines · On Tue, Dec 01, 2020 at 11:02:42AM +0000, [email protected] wrote:
From: Conor Dooley <[email protected]>
This driver adds support for the single mailbox channel of the MSS system controller on the Microchip PolarFire SoC.
Out of my curiosity: What is MSS? Is it the Microprocessor Subsystem in the SoC?
yes, it is the microprocessor subsystem
Quoted 5 lines
(It isn't quite clear from the PolarFire documentation I could find)
Quoted 3 lines
Signed-off-by Conor Dooley <[email protected]>---
Quoted 7 lines
[...]
drivers/mailbox/Kconfig config MAILBOX_TEST · line 157
Quoted 2 lines
drivers/mailbox/Kconfig +2
-0+config MPFS_MBOX + tristate "MPFS Mailbox""MPFS" in the title seems (to me) a bit too obscure for the uninitiated. Perhaps you could use something slightly longer that mentions Microchip and/or the PolarFire series?
Sure. MPFS is the part name while PolarFire SoC is the marketing name. I will switch it in the next version to POLARFIRE_SOC_MBOX, which better matches the config option for the SoC directory that's in Atish's patches anyway.
Quoted 9 lines
drivers/mailbox/mailbox-mpfs.c line 3
Quoted 5 lines
+++
b/drivers/mailbox/mailbox-mpfs.cdrivers/mailbox/mailbox-mpfs.c new file +3
-0@@ -0,0 +1,285 @@ +// SPDX-License-Identifier: GPL-2.0 +/* +* Microchip MPFS system controller/mailbox controller driver The same might apply here.
Quoted 3 lines
Best regards,
Jonathan Neuschäfer
_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv