diff --git a/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/dts_arm64/sg2000_milkv_duos_glibc_arm64_sd.dts b/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/dts_arm64/sg2000_milkv_duos_glibc_arm64_sd.dts index 86126b705..f05b6e114 100644 --- a/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/dts_arm64/sg2000_milkv_duos_glibc_arm64_sd.dts +++ b/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/dts_arm64/sg2000_milkv_duos_glibc_arm64_sd.dts @@ -12,6 +12,10 @@ }; }; +&mipi_rx { + snsr-reset = <&porta 2 GPIO_ACTIVE_LOW>, <&porta 2 GPIO_ACTIVE_LOW>, <&porta 2 GPIO_ACTIVE_LOW>; +}; + &i2c4 { status = "okay"; diff --git a/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/u-boot/cvi_board_init.c b/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/u-boot/cvi_board_init.c index 33e07073d..01b5c7cc2 100644 --- a/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/u-boot/cvi_board_init.c +++ b/build/boards/cv181x/sg2000_milkv_duos_glibc_arm64_sd/u-boot/cvi_board_init.c @@ -23,6 +23,18 @@ int cvi_board_init(void) // TP Reset PINMUX_CONFIG(JTAG_CPU_TMS, XGPIOA_19); + // Camera0 + PINMUX_CONFIG(IIC3_SCL, IIC3_SCL); + PINMUX_CONFIG(IIC3_SDA, IIC3_SDA); + PINMUX_CONFIG(CAM_MCLK0, CAM_MCLK0); // Sensor0 MCLK + PINMUX_CONFIG(CAM_RST0, XGPIOA_2); // Sensor0 RESET + + // Camera1 + PINMUX_CONFIG(IIC2_SDA, IIC2_SDA); + PINMUX_CONFIG(IIC2_SCL, IIC2_SCL); + PINMUX_CONFIG(CAM_MCLK1, CAM_MCLK1); // Sensor1 MCLK + PINMUX_CONFIG(CAM_PD1, XGPIOA_4); // Sensor1 RESET + set_rtc_register_for_power(); return 0; diff --git a/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/dts_riscv/sg2000_milkv_duos_musl_riscv64_sd.dts b/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/dts_riscv/sg2000_milkv_duos_musl_riscv64_sd.dts index 7f4e16ee4..e4e1fd31f 100644 --- a/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/dts_riscv/sg2000_milkv_duos_musl_riscv64_sd.dts +++ b/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/dts_riscv/sg2000_milkv_duos_musl_riscv64_sd.dts @@ -8,6 +8,10 @@ model = "Milk-V DuoS"; }; +&mipi_rx { + snsr-reset = <&porta 2 GPIO_ACTIVE_LOW>, <&porta 2 GPIO_ACTIVE_LOW>, <&porta 2 GPIO_ACTIVE_LOW>; +}; + &i2c4 { status = "okay"; diff --git a/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/u-boot/cvi_board_init.c b/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/u-boot/cvi_board_init.c index 33e07073d..01b5c7cc2 100644 --- a/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/u-boot/cvi_board_init.c +++ b/build/boards/cv181x/sg2000_milkv_duos_musl_riscv64_sd/u-boot/cvi_board_init.c @@ -23,6 +23,18 @@ int cvi_board_init(void) // TP Reset PINMUX_CONFIG(JTAG_CPU_TMS, XGPIOA_19); + // Camera0 + PINMUX_CONFIG(IIC3_SCL, IIC3_SCL); + PINMUX_CONFIG(IIC3_SDA, IIC3_SDA); + PINMUX_CONFIG(CAM_MCLK0, CAM_MCLK0); // Sensor0 MCLK + PINMUX_CONFIG(CAM_RST0, XGPIOA_2); // Sensor0 RESET + + // Camera1 + PINMUX_CONFIG(IIC2_SDA, IIC2_SDA); + PINMUX_CONFIG(IIC2_SCL, IIC2_SCL); + PINMUX_CONFIG(CAM_MCLK1, CAM_MCLK1); // Sensor1 MCLK + PINMUX_CONFIG(CAM_PD1, XGPIOA_4); // Sensor1 RESET + set_rtc_register_for_power(); return 0; diff --git a/build/boards/cv181x/sg2002_milkv_duo256m_glibc_arm64_sd/dts_arm64/sg2002_milkv_duo256m_glibc_arm64_sd.dts b/build/boards/cv181x/sg2002_milkv_duo256m_glibc_arm64_sd/dts_arm64/sg2002_milkv_duo256m_glibc_arm64_sd.dts index 123d533a7..11cdf790b 100644 --- a/build/boards/cv181x/sg2002_milkv_duo256m_glibc_arm64_sd/dts_arm64/sg2002_milkv_duo256m_glibc_arm64_sd.dts +++ b/build/boards/cv181x/sg2002_milkv_duo256m_glibc_arm64_sd/dts_arm64/sg2002_milkv_duo256m_glibc_arm64_sd.dts @@ -12,6 +12,10 @@ }; }; +&mipi_rx { + snsr-reset = <&portc 17 GPIO_ACTIVE_LOW>, <&portc 17 GPIO_ACTIVE_LOW>, <&portc 17 GPIO_ACTIVE_LOW>; +}; + &dac { mute-gpio-r = <&porte 1 GPIO_ACTIVE_LOW>; }; diff --git a/build/boards/cv181x/sg2002_milkv_duo256m_glibc_arm64_sd/u-boot/cvi_board_init.c b/build/boards/cv181x/sg2002_milkv_duo256m_glibc_arm64_sd/u-boot/cvi_board_init.c index d2248d15f..a31889fc5 100644 --- a/build/boards/cv181x/sg2002_milkv_duo256m_glibc_arm64_sd/u-boot/cvi_board_init.c +++ b/build/boards/cv181x/sg2002_milkv_duo256m_glibc_arm64_sd/u-boot/cvi_board_init.c @@ -8,6 +8,12 @@ int cvi_board_init(void) // LED PINMUX_CONFIG(PWR_GPIO2, PWR_GPIO_2); + // Camera + PINMUX_CONFIG(PAD_MIPI_TXM1, IIC2_SDA); // GP10 + PINMUX_CONFIG(PAD_MIPI_TXP1, IIC2_SCL); // GP11 + PINMUX_CONFIG(PAD_MIPI_TXP0, CAM_MCLK0); // Sensor MCLK + PINMUX_CONFIG(PAD_MIPI_TXP2, XGPIOC_17); // Sensor RESET + set_rtc_register_for_power(); return 0; diff --git a/build/boards/cv181x/sg2002_milkv_duo256m_musl_riscv64_sd/dts_riscv/sg2002_milkv_duo256m_musl_riscv64_sd.dts b/build/boards/cv181x/sg2002_milkv_duo256m_musl_riscv64_sd/dts_riscv/sg2002_milkv_duo256m_musl_riscv64_sd.dts index 69b1625d3..cf4c886cc 100644 --- a/build/boards/cv181x/sg2002_milkv_duo256m_musl_riscv64_sd/dts_riscv/sg2002_milkv_duo256m_musl_riscv64_sd.dts +++ b/build/boards/cv181x/sg2002_milkv_duo256m_musl_riscv64_sd/dts_riscv/sg2002_milkv_duo256m_musl_riscv64_sd.dts @@ -8,6 +8,10 @@ model = "Milk-V Duo256M"; }; +&mipi_rx { + snsr-reset = <&portc 17 GPIO_ACTIVE_LOW>, <&portc 17 GPIO_ACTIVE_LOW>, <&portc 17 GPIO_ACTIVE_LOW>; +}; + &dac { mute-gpio-r = <&porte 1 GPIO_ACTIVE_LOW>; }; diff --git a/build/boards/cv181x/sg2002_milkv_duo256m_musl_riscv64_sd/u-boot/cvi_board_init.c b/build/boards/cv181x/sg2002_milkv_duo256m_musl_riscv64_sd/u-boot/cvi_board_init.c index d2248d15f..a31889fc5 100644 --- a/build/boards/cv181x/sg2002_milkv_duo256m_musl_riscv64_sd/u-boot/cvi_board_init.c +++ b/build/boards/cv181x/sg2002_milkv_duo256m_musl_riscv64_sd/u-boot/cvi_board_init.c @@ -8,6 +8,12 @@ int cvi_board_init(void) // LED PINMUX_CONFIG(PWR_GPIO2, PWR_GPIO_2); + // Camera + PINMUX_CONFIG(PAD_MIPI_TXM1, IIC2_SDA); // GP10 + PINMUX_CONFIG(PAD_MIPI_TXP1, IIC2_SCL); // GP11 + PINMUX_CONFIG(PAD_MIPI_TXP0, CAM_MCLK0); // Sensor MCLK + PINMUX_CONFIG(PAD_MIPI_TXP2, XGPIOC_17); // Sensor RESET + set_rtc_register_for_power(); return 0;