From 79ca69b72f81aeca972624ea7d402d7f9e383aa3 Mon Sep 17 00:00:00 2001 From: Qubot <1445788683@qq.com> Date: Sun, 14 Jun 2026 18:24:07 +0800 Subject: [PATCH] media: sunxi-vin: tune BPI-M8 IMX415 power sequence --- .../boot/dts/sunxi/overlay/bpi-m8/sun60i-a733-imx415-csi0.dts | 4 ++++ .../boot/dts/sunxi/overlay/bpi-m8/sun60i-a733-imx415-csi1.dts | 4 ++++ bsp/drivers/vin/modules/sensor/imx415_mipi.c | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m8/sun60i-a733-imx415-csi0.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m8/sun60i-a733-imx415-csi0.dts index 45834f1ed..a4a9330d5 100644 --- a/arch/arm64/boot/dts/sunxi/overlay/bpi-m8/sun60i-a733-imx415-csi0.dts +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m8/sun60i-a733-imx415-csi0.dts @@ -36,6 +36,10 @@ sensor0_stby_mode = <0>; sensor0_vflip = <0>; sensor0_hflip = <0>; + sensor0_cameravdd_vol = <3300000>; + sensor0_iovdd_vol = <1800000>; + sensor0_avdd_vol = <3300000>; + sensor0_dvdd_vol = <1800000>; sensor0_reset = <&pio PE 7 GPIO_ACTIVE_LOW>; sensor0_pwdn = <&pio PE 6 GPIO_ACTIVE_LOW>; status = "okay"; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m8/sun60i-a733-imx415-csi1.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m8/sun60i-a733-imx415-csi1.dts index 40c6c465e..b91a8eb18 100644 --- a/arch/arm64/boot/dts/sunxi/overlay/bpi-m8/sun60i-a733-imx415-csi1.dts +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m8/sun60i-a733-imx415-csi1.dts @@ -36,6 +36,10 @@ sensor1_stby_mode = <0>; sensor1_vflip = <0>; sensor1_hflip = <0>; + sensor1_cameravdd_vol = <3300000>; + sensor1_iovdd_vol = <1800000>; + sensor1_avdd_vol = <3300000>; + sensor1_dvdd_vol = <1800000>; sensor1_reset = <&pio PE 9 GPIO_ACTIVE_LOW>; sensor1_pwdn = <&pio PE 8 GPIO_ACTIVE_LOW>; status = "okay"; diff --git a/bsp/drivers/vin/modules/sensor/imx415_mipi.c b/bsp/drivers/vin/modules/sensor/imx415_mipi.c index 2439bbf67..51273f612 100644 --- a/bsp/drivers/vin/modules/sensor/imx415_mipi.c +++ b/bsp/drivers/vin/modules/sensor/imx415_mipi.c @@ -862,7 +862,7 @@ static int sensor_power(struct v4l2_subdev *sd, int on) vin_set_pmu_channel(sd, AVDD, ON); vin_set_pmu_channel(sd, DVDD, ON); vin_gpio_write(sd, RESET, CSI_GPIO_HIGH); - vin_gpio_write(sd, PWDN, CSI_GPIO_HIGH); + vin_gpio_write(sd, PWDN, CSI_GPIO_LOW); usleep_range(100, 120); vin_set_mclk(sd, ON); usleep_range(100, 120);