soc: nxp: rt: Add CSI video support
Add CSI node to generic nxp rt dtsi. Add corresponding dts binding. Add CSI capability for rt MCUs. Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
This commit is contained in:
parent
43e58aed34
commit
a019e92d23
7 changed files with 62 additions and 0 deletions
|
@ -547,6 +547,14 @@
|
||||||
clocks = <&ccm IMX_CCM_USDHC2_CLK 0 0>;
|
clocks = <&ccm IMX_CCM_USDHC2_CLK 0 0>;
|
||||||
label = "USDHC_2";
|
label = "USDHC_2";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
csi: csi@402bc000 {
|
||||||
|
compatible = "nxp,imx-csi";
|
||||||
|
reg = <0x402BC000 0x4000>;
|
||||||
|
interrupts = <43 1>;
|
||||||
|
status = "disabled";
|
||||||
|
label = "CSI";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
26
dts/bindings/video/nxp,imx-csi.yaml
Normal file
26
dts/bindings/video/nxp,imx-csi.yaml
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019, Linaro Limited
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
title: NXP MCUX CSI module
|
||||||
|
|
||||||
|
description: >
|
||||||
|
This binding gives a base representation of NXP MCUX CMOS Sensor Interface
|
||||||
|
|
||||||
|
compatible: "nxp,imx-csi"
|
||||||
|
|
||||||
|
include: base.yaml
|
||||||
|
|
||||||
|
properties:
|
||||||
|
interrupts:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
label:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
sensor-label:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
description: label of connected sensor device
|
|
@ -152,4 +152,9 @@ config HAS_MCUX_SMC
|
||||||
help
|
help
|
||||||
Set if the SMC module is present in the SoC.
|
Set if the SMC module is present in the SoC.
|
||||||
|
|
||||||
|
config HAS_MCUX_CSI
|
||||||
|
bool
|
||||||
|
help
|
||||||
|
Set if the CMOS Sensor Interface module is present in the SoC.
|
||||||
|
|
||||||
endif # HAS_MCUX
|
endif # HAS_MCUX
|
||||||
|
|
|
@ -165,6 +165,13 @@ config USB_DC_NXP_EHCI
|
||||||
|
|
||||||
endif # USB
|
endif # USB
|
||||||
|
|
||||||
|
if VIDEO
|
||||||
|
|
||||||
|
config VIDEO_MCUX_CSI
|
||||||
|
default y if HAS_MCUX_CSI
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
source "soc/arm/nxp_imx/rt/Kconfig.defconfig.mimxrt*"
|
source "soc/arm/nxp_imx/rt/Kconfig.defconfig.mimxrt*"
|
||||||
|
|
||||||
endif # SOC_SERIES_IMX_RT
|
endif # SOC_SERIES_IMX_RT
|
||||||
|
|
|
@ -70,6 +70,7 @@ config SOC_MIMXRT1051
|
||||||
select HAS_MCUX_USB_EHCI
|
select HAS_MCUX_USB_EHCI
|
||||||
select HAS_MCUX_USDHC1
|
select HAS_MCUX_USDHC1
|
||||||
select HAS_MCUX_USDHC2
|
select HAS_MCUX_USDHC2
|
||||||
|
select HAS_MCUX_CSI
|
||||||
|
|
||||||
config SOC_MIMXRT1052
|
config SOC_MIMXRT1052
|
||||||
bool "SOC_MIMXRT1052"
|
bool "SOC_MIMXRT1052"
|
||||||
|
@ -93,6 +94,7 @@ config SOC_MIMXRT1052
|
||||||
select HAS_MCUX_USB_EHCI
|
select HAS_MCUX_USB_EHCI
|
||||||
select HAS_MCUX_USDHC1
|
select HAS_MCUX_USDHC1
|
||||||
select HAS_MCUX_USDHC2
|
select HAS_MCUX_USDHC2
|
||||||
|
select HAS_MCUX_CSI
|
||||||
|
|
||||||
config SOC_MIMXRT1061
|
config SOC_MIMXRT1061
|
||||||
bool "SOC_MIMXRT1061"
|
bool "SOC_MIMXRT1061"
|
||||||
|
@ -113,6 +115,7 @@ config SOC_MIMXRT1061
|
||||||
select HAS_MCUX_USB_EHCI
|
select HAS_MCUX_USB_EHCI
|
||||||
select HAS_MCUX_USDHC1
|
select HAS_MCUX_USDHC1
|
||||||
select HAS_MCUX_USDHC2
|
select HAS_MCUX_USDHC2
|
||||||
|
select HAS_MCUX_CSI
|
||||||
|
|
||||||
config SOC_MIMXRT1062
|
config SOC_MIMXRT1062
|
||||||
bool "SOC_MIMXRT1062"
|
bool "SOC_MIMXRT1062"
|
||||||
|
@ -136,6 +139,7 @@ config SOC_MIMXRT1062
|
||||||
select HAS_MCUX_USB_EHCI
|
select HAS_MCUX_USB_EHCI
|
||||||
select HAS_MCUX_USDHC1
|
select HAS_MCUX_USDHC1
|
||||||
select HAS_MCUX_USDHC2
|
select HAS_MCUX_USDHC2
|
||||||
|
select HAS_MCUX_CSI
|
||||||
|
|
||||||
config SOC_MIMXRT1064
|
config SOC_MIMXRT1064
|
||||||
bool "SOC_MIMXRT1064"
|
bool "SOC_MIMXRT1064"
|
||||||
|
@ -159,6 +163,7 @@ config SOC_MIMXRT1064
|
||||||
select HAS_MCUX_USB_EHCI
|
select HAS_MCUX_USB_EHCI
|
||||||
select HAS_MCUX_USDHC1
|
select HAS_MCUX_USDHC1
|
||||||
select HAS_MCUX_USDHC2
|
select HAS_MCUX_USDHC2
|
||||||
|
select HAS_MCUX_CSI
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
|
|
@ -233,4 +233,10 @@
|
||||||
#define DT_PWM_MCUX_15_NAME DT_NXP_IMX_PWM_403E8000_PWM3_LABEL
|
#define DT_PWM_MCUX_15_NAME DT_NXP_IMX_PWM_403E8000_PWM3_LABEL
|
||||||
#define DT_PWM_MCUX_15_INDEX DT_NXP_IMX_PWM_403E8000_PWM3_INDEX
|
#define DT_PWM_MCUX_15_INDEX DT_NXP_IMX_PWM_403E8000_PWM3_INDEX
|
||||||
|
|
||||||
|
#define DT_VIDEO_MCUX_CSI_BASE_ADDRESS DT_NXP_IMX_CSI_402BC000_BASE_ADDRESS
|
||||||
|
#define DT_VIDEO_MCUX_CSI_IRQ DT_NXP_IMX_CSI_402BC000_IRQ_0
|
||||||
|
#define DT_VIDEO_MCUX_CSI_IRQ_PRI DT_NXP_IMX_CSI_402BC000_IRQ_0_PRIORITY
|
||||||
|
#define DT_VIDEO_MCUX_CSI_NAME DT_NXP_IMX_CSI_402BC000_LABEL
|
||||||
|
#define DT_VIDEO_MCUX_CSI_SENSOR_NAME DT_NXP_IMX_CSI_402BC000_SENSOR_LABEL
|
||||||
|
|
||||||
/* End of SoC Level DTS fixup file */
|
/* End of SoC Level DTS fixup file */
|
||||||
|
|
|
@ -199,6 +199,11 @@ static ALWAYS_INLINE void clock_init(void)
|
||||||
CLOCK_SetMux(kCLOCK_Usdhc2Mux, 1U);
|
CLOCK_SetMux(kCLOCK_Usdhc2Mux, 1U);
|
||||||
CLOCK_EnableClock(kCLOCK_Usdhc2);
|
CLOCK_EnableClock(kCLOCK_Usdhc2);
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_VIDEO_MCUX_CSI
|
||||||
|
CLOCK_EnableClock(kCLOCK_Csi); /* Disable CSI clock gate */
|
||||||
|
CLOCK_SetDiv(kCLOCK_CsiDiv, 0); /* Set CSI divider to 1 */
|
||||||
|
CLOCK_SetMux(kCLOCK_CsiMux, 0); /* Set CSI source to OSC 24M */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Keep the system clock running so SYSTICK can wake up the system from
|
/* Keep the system clock running so SYSTICK can wake up the system from
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue