From 14e31ba419fc43b08718666a9a2e64647ed04130 Mon Sep 17 00:00:00 2001 From: Alexander Wachter Date: Tue, 25 Jun 2019 18:47:39 +0200 Subject: [PATCH] soc: nxp: k6x: Add CAN support This commit adds CAN support for Kinetis K6x family. Signed-off-by: Alexander Wachter --- dts/arm/nxp/nxp_k6x.dtsi | 17 +++++++++++++++++ .../nxp_kinetis/k6x/Kconfig.defconfig.mk64f12 | 7 +++++++ soc/arm/nxp_kinetis/k6x/Kconfig.soc | 1 + soc/arm/nxp_kinetis/k6x/dts_fixup.h | 2 ++ 4 files changed, 27 insertions(+) diff --git a/dts/arm/nxp/nxp_k6x.dtsi b/dts/arm/nxp/nxp_k6x.dtsi index 32472c974cd..5fa10db00db 100644 --- a/dts/arm/nxp/nxp_k6x.dtsi +++ b/dts/arm/nxp/nxp_k6x.dtsi @@ -433,6 +433,23 @@ interrupts = <23 0>; label = "RNGA"; }; + + can0: can@40024000 { + compatible = "nxp,kinetis-flexcan"; + reg = <0x40024000 0x1000>; + interrupts = <75 0>, <76 0>, <77 0>, <78 0>, <79 0>, <80 0>; + interrupt-names = "mb-0-15", "bus-off", "error", "tx-warning", "rx-warning", "wake-up"; + clocks = <&sim KINETIS_SIM_BUS_CLK 0x103C 4>; + clk-source = <1>; + label = "CAN_0"; + sjw = <1>; + prop-seg = <1>; + phase-seg1 = <3>; + phase-seg2 = <2>; + status = "disabled"; + #address-cells = <1>; + #size-cells = <0>; + }; }; }; diff --git a/soc/arm/nxp_kinetis/k6x/Kconfig.defconfig.mk64f12 b/soc/arm/nxp_kinetis/k6x/Kconfig.defconfig.mk64f12 index 46f1c0b55cc..09acf35b8d0 100644 --- a/soc/arm/nxp_kinetis/k6x/Kconfig.defconfig.mk64f12 +++ b/soc/arm/nxp_kinetis/k6x/Kconfig.defconfig.mk64f12 @@ -19,6 +19,13 @@ config ADC_MCUX_ADC16 endif # ADC +if CAN + +config CAN_MCUX_FLEXCAN + default y + +endif # CAN + if CLOCK_CONTROL config CLOCK_CONTROL_MCUX_SIM diff --git a/soc/arm/nxp_kinetis/k6x/Kconfig.soc b/soc/arm/nxp_kinetis/k6x/Kconfig.soc index a57803b99cd..5f71c14fe72 100644 --- a/soc/arm/nxp_kinetis/k6x/Kconfig.soc +++ b/soc/arm/nxp_kinetis/k6x/Kconfig.soc @@ -14,6 +14,7 @@ config SOC_MK64F12 select HAS_MCUX select HAS_MCUX_ADC16 select HAS_MCUX_ENET + select HAS_MCUX_FLEXCAN select HAS_MCUX_FTFX select HAS_MCUX_FTM select HAS_MCUX_RNGA diff --git a/soc/arm/nxp_kinetis/k6x/dts_fixup.h b/soc/arm/nxp_kinetis/k6x/dts_fixup.h index 84a86c0e454..0af95644f57 100644 --- a/soc/arm/nxp_kinetis/k6x/dts_fixup.h +++ b/soc/arm/nxp_kinetis/k6x/dts_fixup.h @@ -149,4 +149,6 @@ #define DT_ENTROPY_MCUX_RNGA_NAME DT_NXP_KINETIS_RNGA_40029000_LABEL #define CONFIG_ENTROPY_NAME DT_NXP_KINETIS_RNGA_40029000_LABEL +#define DT_CAN_0_NAME DT_NXP_KINETIS_FLEXCAN_40024000_LABEL + /* End of SoC Level DTS fixup file */