[PATCH 1/6] mbox: add polarfire soc system controller mailbox

Damien Le Moal Damien.LeMoal at wdc.com
Mon Nov 30 16:50:11 EST 2020


On 2020/11/30 22:23, Conor.Dooley at microchip.com wrote:
> On 20/11/2020 00:05, Damien Le Moal wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>
>> On 2020/11/20 2:05, conor.dooley at microchip.com wrote:
>>> From: Conor Dooley <conor.dooley at microchip.com>
>>>
>>> This driver adds support for the single mailbox channel of the MSS
>>> system controller on the Microchip PolarFire SoC.
>>>
>>> Signed-off-by: Conor Dooley <conor.dooley at microchip.com>
>>> ---
>>>  drivers/mailbox/Kconfig        |  12 ++
>>>  drivers/mailbox/Makefile       |   2 +
>>>  drivers/mailbox/mailbox-mpfs.c | 296 +++++++++++++++++++++++++++++++++
>>>  3 files changed, 310 insertions(+)
>>>  create mode 100644 drivers/mailbox/mailbox-mpfs.c
>>>
>>> diff --git a/drivers/mailbox/Kconfig b/drivers/mailbox/Kconfig
>>> index 05b1009e2820..4881a519683a 100644
>>> --- a/drivers/mailbox/Kconfig
>>> +++ b/drivers/mailbox/Kconfig
>>> @@ -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
>> Shouldn't this dependency be on SOC_MICROCHIP_POLARFIRE ?
> Not entirely sure what you mean by this one. You want the HAS_IOMEM to be selected by SOC_MICROCHIP_POLARFIRE ?

Sorry, I was not clear. I was referring to MPFS_MBOX: shouldn't it be dependent
on SOC_MICROCHIP_POLARFIRE ? E.g.:

config MPFS_MBOX
	tristate "MPFS Mailbox"
	depends on HAS_IOMEM
	depends on SOC_MICROCHIP_POLARFIRE
	...

Since it will probably not make sense to compile the driver when the SoC support
is not selected. No ?

>>
>>> +     depends on SOC_MICROCHIP_POLARFIRE
>>> +     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 Y.
>>> +
>>>  config QCOM_APCS_IPC
>>>       tristate "Qualcomm APCS IPC driver"
>>>       depends on ARCH_QCOM || COMPILE_TEST
>>> diff --git a/drivers/mailbox/Makefile b/drivers/mailbox/Makefile
>>> index 2e06e02b2e03..63f49b5bcc43 100644
>>> --- a/drivers/mailbox/Makefile
>>> +++ b/drivers/mailbox/Makefile
>>> @@ -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
>>> diff --git a/drivers/mailbox/mailbox-mpfs.c b/drivers/mailbox/mailbox-mpfs.c
>>> new file mode 100644
>>> index 000000000000..686ccd3317f9
>>> --- /dev/null
>>> +++ b/drivers/mailbox/mailbox-mpfs.c
>>> @@ -0,0 +1,296 @@
>>> +// SPDX-License-Identifier: GPL-2.0
>>> +/*
>>> + * Microchip MPFS system controller/mailbox controller driver
>>> + *
>>> + * Copyright (c) 2020 Microchip Corporation. All rights reserved.
>>> + *
>>> + * Author: Conor Dooley <conor.dooley at microchip.com>
>>> + *
>>> + */
>>> +
>>> +#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>
>>> +
>>> +#define SERVICES_CR_OFFSET                   0x50u
>>> +#define SERVICES_SR_OFFSET                   0x54u
>>> +#define MAILBOX_REG_OFFSET                   0x800u
>>> +#define MSS_SYS_SUCCESS                              0u
> trimmed, will address the rest in V2
>> -- 
>> Damien Le Moal
>> Western Digital Research
> 
>  
> 
> 


-- 
Damien Le Moal
Western Digital Research



More information about the linux-riscv mailing list