[Patch v4 0/2] can: mcan: Add MCAN support for FSD SoC

From: Vivek Yadav
Date: Wed Dec 07 2022 - 05:36:10 EST


Add support for MCAN instances present on the FSD platform.

Vivek Yadav (2):
can: m_can: Call the RAM init directly from m_can_chip_config
arm64: dts: fsd: Add MCAN device node

changes since v3:

[PATCH v3 1/2] can: m_can: Move mram init to mcan device setup
https://lore.kernel.org/lkml/20221122105455.39294-2-vivek.2311@xxxxxxxxxxx/
1: Addressed review comment given by Marc Kleine-Budde
a) Call the RAM init directly from m_can_chip_config.
b) If we call m_can_init_ram() from m_can_chip_config(),
then remove it from the tcan's tcan4x5x_init() functions,
and from m_can_class_resume(). It should only be called
once for open and once for resume.

changes since v2:

[PATCH v2 1/6] dt-bindings: Document the SYSREG specific compatibles found
on FSD SoC
link:
https://lore.kernel.org/lkml/20221109100928.109478-2-vivek.2311@xxxxxxxxxxx/
1: Addressed review comment given by Krzysztof Kozlowski
a) As per suggestion separated this patch and posted separately.
ref: https://www.spinics.net/lists/kernel/msg4597970.html

[PATCH v2 2/6] dt-bindings: can: mcan: Add ECC functionality to message ram
link:
https://lore.kernel.org/lkml/20221109100928.109478-3-vivek.2311@xxxxxxxxxxx/
1: Addressed review comment given by Krzysztof Kozlowski
a) For now I am dropping this. I will reconsider the implementation
and will resend as separate patch.

[PATCH v2 3/6] arm64: dts: fsd: add sysreg device node
link:
https://lore.kernel.org/lkml/20221109100928.109478-4-vivek.2311@xxxxxxxxxxx/
1: Addressed review comment given by Krzysztof Kozlowski
a) Dropped Cc from commit message.
b) As per suggestion separated this and corresponding DT-bindin
patch and posted separately.
ref: https://www.spinics.net/lists/kernel/msg4597921.html

[PATCH v2 4/6] arm64: dts: fsd: Add MCAN device node
link:
https://lore.kernel.org/lkml/20221109100928.109478-5-vivek.2311@xxxxxxxxxxx/
1: Addressed review comment given by Krzysztof Kozlowski
a) Aligned the lines.

[PATCH v2 5/6] can: m_can: Add ECC functionality for message RAM
link:
https://lore.kernel.org/lkml/20221109100928.109478-6-vivek.2311@xxxxxxxxxxx/
1: Addressed review comment given by Krzysztof Kozlowski
a) We are dropping this for now and will reconsider it's
implementation and resend as separate patch.

[PATCH v2 6/6] arm64: dts: fsd: Add support for error correction code for
message RAM
link:
https://lore.kernel.org/lkml/20221109100928.109478-7-vivek.2311@xxxxxxxxxxx/
1: Addressed review comment given by Krzysztof Kozlowski
a) Subject is updated and patch go via ARM SOC tree, we will
resend this as separate patch along with ECC patch.

changes since v1:

[PATCH 0/7] can: mcan: Add MCAN support for FSD SoC
1: Addressed review comment given by Marc Kleine-Budde
a) Added my signed off.

[PATCH 2/7] dt-bindings: can: mcan: Add ECC functionality to message ram
link:
https://lore.kernel.org/netdev/87k04oxsvb.fsf@xxxxxxxxxxxxxxxxxxxxxxxx/
1: Addressed review comment given by Marc Kleine-Budde
a) Added an example to the yaml that makes use of the
mram-ecc-cfg property.
b) Added prefix to "mram-ecc-cfg" property and
"$ref: /schemas/types.yaml#/definitions/phandle".

[PATCH 4/7] can: mcan: enable peripheral clk to access mram
link:
https://lore.kernel.org/netdev/20221021095833.62406-5-vivek.2311@xxxxxxxxxxx/
1: Addressed review comment given by Marc Kleine-Budde
a) Moved mram init into m_can_dev_setup function by then
clocks are enabled and prevent probe failure.
b) Added the platform init ops in m_can_plat_ops and
moved mram init into it.

[PATCH 5/7] arm64: dts: fsd: Add MCAN device node
link:
https://lore.kernel.org/netdev/20221021095833.62406-6-vivek.2311@xxxxxxxxxxx/
1: Addressed review comment given by Marc Kleine-Budde
a) Added the DT people on Cc.

[PATCH 6/7] can: m_can: Add ECC functionality for message RAM
link:
https://lore.kernel.org/netdev/20221021095833.62406-7-vivek.2311@xxxxxxxxxxx/
1: Addressed review comment given by kernel test robot.
a) Addressed missing prototypes warnings.
2: Addressed review comment given by Marc Kleine-Budde
a) Sorted the declaration of local variable by reverse Christmas
tree.
b) Used syscon_regmap_lookup_by_phandle_args to get the syscon
Base Address and offset.
c) Used FIELD_PREP instead of logical operation.
d) Used regmap_read_poll_timeout API to give timeout condition
for ECC cfg done status instead of using while loop counter.
e) Moved all the ECC mcaros in m_can.c file and changed the name
with a common prefix M_CAN.
f) Moved ECC init into platform init function called during m_can
device setup.

arch/arm64/boot/dts/tesla/fsd-evb.dts | 16 +++++
arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi | 28 +++++++++
arch/arm64/boot/dts/tesla/fsd.dtsi | 68 ++++++++++++++++++++++
drivers/net/can/m_can/m_can.c | 32 ++++++++--
drivers/net/can/m_can/m_can_platform.c | 4 --
drivers/net/can/m_can/tcan4x5x-core.c | 5 --
6 files changed, 138 insertions(+), 15 deletions(-)

--
2.17.1