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