The Unicam IP cores are CSI-2/CCP2 receivers. They are part of VC4, but can be controlled directly from the operating system without going through the VPU firmware. Exposes them as DT nodes. Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> --- arch/arm/boot/dts/bcm2711.dtsi | 43 ++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi index a91cf68e3c4c..0a4d75a64e7c 100644 --- a/arch/arm/boot/dts/bcm2711.dtsi +++ b/arch/arm/boot/dts/bcm2711.dtsi @@ -2,6 +2,7 @@ #include "bcm283x.dtsi" #include <dt-bindings/interrupt-controller/arm-gic.h> +#include <dt-bindings/power/raspberrypi-power.h> #include <dt-bindings/soc/bcm2835-pm.h> / { @@ -244,6 +245,48 @@ pwm1: pwm@7e20c800 { hvs@7e400000 { interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; }; + + csi0: csi@7e800000 { + compatible = "brcm,bcm2835-unicam"; + reg = <0x7e800000 0x800>, + <0x7e802000 0x4>; + interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clocks BCM2835_CLOCK_CAM0>; + clock-names = "lp"; + power-domains = <&power RPI_POWER_DOMAIN_UNICAM0>; + brcm,num-data-lanes = <2>; + #address-cells = <1>; + #size-cells = <0>; + #clock-cells = <1>; + status = "disabled"; + + port { + endpoint { + data-lanes = <1 2>; + }; + }; + }; + + csi1: csi@7e801000 { + compatible = "brcm,bcm2835-unicam"; + reg = <0x7e801000 0x800>, + <0x7e802004 0x4>; + interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clocks BCM2835_CLOCK_CAM1>; + clock-names = "lp"; + power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>; + brcm,num-data-lanes = <4>; + #address-cells = <1>; + #size-cells = <0>; + #clock-cells = <1>; + status = "disabled"; + + port { + endpoint { + data-lanes = <1 2 3 4>; + }; + }; + }; }; /* -- Regards, Laurent Pinchart