diff mbox

[v2,1/8] dt-bindings: Document STM32 DCMI bindings

Message ID 1490887667-8880-2-git-send-email-hugues.fruchet@st.com (mailing list archive)
State New, archived
Headers show

Commit Message

Hugues FRUCHET March 30, 2017, 3:27 p.m. UTC
This adds documentation of device tree bindings for the STM32 DCMI
(Digital Camera Memory Interface).

Signed-off-by: Hugues Fruchet <hugues.fruchet@st.com>
---
 .../devicetree/bindings/media/st,stm32-dcmi.txt    | 85 ++++++++++++++++++++++
 1 file changed, 85 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/st,stm32-dcmi.txt

Comments

Rob Herring (Arm) April 3, 2017, 4:23 p.m. UTC | #1
On Thu, Mar 30, 2017 at 05:27:40PM +0200, Hugues Fruchet wrote:
> This adds documentation of device tree bindings for the STM32 DCMI
> (Digital Camera Memory Interface).
> 
> Signed-off-by: Hugues Fruchet <hugues.fruchet@st.com>
> ---
>  .../devicetree/bindings/media/st,stm32-dcmi.txt    | 85 ++++++++++++++++++++++
>  1 file changed, 85 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/media/st,stm32-dcmi.txt
> 
> diff --git a/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt b/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt
> new file mode 100644
> index 0000000..8180f63
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt
> @@ -0,0 +1,85 @@
> +STMicroelectronics STM32 Digital Camera Memory Interface (DCMI)
> +
> +Required properties:
> +- compatible: "st,stm32-dcmi"

Same block and same errata on all stm32 variants?

> +- reg: physical base address and length of the registers set for the device
> +- interrupts: should contain IRQ line for the DCMI
> +- clocks: list of clock specifiers, corresponding to entries in
> +          the clock-names property
> +- clock-names: must contain "mclk", which is the DCMI peripherial clock
> +- resets: reference to a reset controller
> +- reset-names: see Documentation/devicetree/bindings/reset/st,stm32-rcc.txt
> +
> +DCMI supports a single port node with parallel bus. It should contain one
> +'port' child node with child 'endpoint' node. Please refer to the bindings
> +defined in Documentation/devicetree/bindings/media/video-interfaces.txt.
> +
> +Example:
> +
> +Device node example
> +-------------------
> +	dcmi: dcmi@50050000 {
> +		compatible = "st,stm32-dcmi";
> +		reg = <0x50050000 0x400>;
> +		interrupts = <78>;
> +		resets = <&rcc STM32F4_AHB2_RESET(DCMI)>;
> +		clocks = <&rcc 0 STM32F4_AHB2_CLOCK(DCMI)>;
> +		clock-names = "mclk";

> +		pinctrl-names = "default";
> +		pinctrl-0 = <&dcmi_pins>;

Not documented.

> +		dmas = <&dma2 1 1 0x414 0x3>;
> +		dma-names = "tx";

Not documented.

> +		status = "disabled";

Drop status from examples.

> +	};
> +
> +Board setup example

Please don't split examples. That's just source level details and not 
part of the ABI.

> +-------------------
> +This example is extracted from STM32F429-EVAL board devicetree.
> +Please note that on this board, the camera sensor reset & power-down
> +line level are inverted (so reset is active high and power-down is
> +active low).
> +
> +/ {
> +	[...]
> +	clocks {
> +		clk_ext_camera: clk-ext-camera {
> +			#clock-cells = <0>;
> +			compatible = "fixed-clock";
> +			clock-frequency = <24000000>;
> +		};
> +	};
> +	[...]
> +};
> +
> +&dcmi {
> +	status = "okay";
> +
> +	port {
> +		dcmi_0: endpoint@0 {
> +			remote-endpoint = <&ov2640_0>;
> +			bus-width = <8>;
> +			hsync-active = <0>;
> +			vsync-active = <0>;
> +			pclk-sample = <1>;
> +		};
> +	};
> +};
> +
> +&i2c@1 {
> +	[...]
> +	ov2640: camera@30 {
> +		compatible = "ovti,ov2640";
> +		reg = <0x30>;
> +		resetb-gpios = <&stmpegpio 2 GPIO_ACTIVE_HIGH>;
> +		pwdn-gpios = <&stmpegpio 0 GPIO_ACTIVE_LOW>;
> +		clocks = <&clk_ext_camera>;
> +		clock-names = "xvclk";
> +		status = "okay";
> +
> +		port {
> +			ov2640_0: endpoint {
> +				remote-endpoint = <&dcmi_0>;
> +			};
> +		};
> +	};
> +};
> -- 
> 1.9.1
>
Hugues FRUCHET April 4, 2017, 3:45 p.m. UTC | #2
Thanks Rob for review, find answers below.

On 04/03/2017 06:23 PM, Rob Herring wrote:
> On Thu, Mar 30, 2017 at 05:27:40PM +0200, Hugues Fruchet wrote:
>> This adds documentation of device tree bindings for the STM32 DCMI
>> (Digital Camera Memory Interface).
>>
>> Signed-off-by: Hugues Fruchet <hugues.fruchet@st.com>
>> ---
>>  .../devicetree/bindings/media/st,stm32-dcmi.txt    | 85 ++++++++++++++++++++++
>>  1 file changed, 85 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/media/st,stm32-dcmi.txt
>>
>> diff --git a/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt b/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt
>> new file mode 100644
>> index 0000000..8180f63
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt
>> @@ -0,0 +1,85 @@
>> +STMicroelectronics STM32 Digital Camera Memory Interface (DCMI)
>> +
>> +Required properties:
>> +- compatible: "st,stm32-dcmi"
>
> Same block and same errata on all stm32 variants?

Yes, it is the same IP block on all stm32 variants.

>
>> +- reg: physical base address and length of the registers set for the device
>> +- interrupts: should contain IRQ line for the DCMI
>> +- clocks: list of clock specifiers, corresponding to entries in
>> +          the clock-names property
>> +- clock-names: must contain "mclk", which is the DCMI peripherial clock
>> +- resets: reference to a reset controller
>> +- reset-names: see Documentation/devicetree/bindings/reset/st,stm32-rcc.txt
>> +
>> +DCMI supports a single port node with parallel bus. It should contain one
>> +'port' child node with child 'endpoint' node. Please refer to the bindings
>> +defined in Documentation/devicetree/bindings/media/video-interfaces.txt.
>> +
>> +Example:
>> +
>> +Device node example
>> +-------------------
>> +	dcmi: dcmi@50050000 {
>> +		compatible = "st,stm32-dcmi";
>> +		reg = <0x50050000 0x400>;
>> +		interrupts = <78>;
>> +		resets = <&rcc STM32F4_AHB2_RESET(DCMI)>;
>> +		clocks = <&rcc 0 STM32F4_AHB2_CLOCK(DCMI)>;
>> +		clock-names = "mclk";
>
>> +		pinctrl-names = "default";
>> +		pinctrl-0 = <&dcmi_pins>;
>
> Not documented.

Fixed in v3.

>
>> +		dmas = <&dma2 1 1 0x414 0x3>;
>> +		dma-names = "tx";
>
> Not documented.

Fixed in v3.

>
>> +		status = "disabled";
>
> Drop status from examples.

Fixed in v3.

>
>> +	};
>> +
>> +Board setup example
>
> Please don't split examples. That's just source level details and not
> part of the ABI.

Fixed in v3.

>
>> +-------------------
>> +This example is extracted from STM32F429-EVAL board devicetree.
>> +Please note that on this board, the camera sensor reset & power-down
>> +line level are inverted (so reset is active high and power-down is
>> +active low).
>> +
>> +/ {
>> +	[...]
>> +	clocks {
>> +		clk_ext_camera: clk-ext-camera {
>> +			#clock-cells = <0>;
>> +			compatible = "fixed-clock";
>> +			clock-frequency = <24000000>;
>> +		};
>> +	};
>> +	[...]
>> +};
>> +
>> +&dcmi {
>> +	status = "okay";
>> +
>> +	port {
>> +		dcmi_0: endpoint@0 {
>> +			remote-endpoint = <&ov2640_0>;
>> +			bus-width = <8>;
>> +			hsync-active = <0>;
>> +			vsync-active = <0>;
>> +			pclk-sample = <1>;
>> +		};
>> +	};
>> +};
>> +
>> +&i2c@1 {
>> +	[...]
>> +	ov2640: camera@30 {
>> +		compatible = "ovti,ov2640";
>> +		reg = <0x30>;
>> +		resetb-gpios = <&stmpegpio 2 GPIO_ACTIVE_HIGH>;
>> +		pwdn-gpios = <&stmpegpio 0 GPIO_ACTIVE_LOW>;
>> +		clocks = <&clk_ext_camera>;
>> +		clock-names = "xvclk";
>> +		status = "okay";
>> +
>> +		port {
>> +			ov2640_0: endpoint {
>> +				remote-endpoint = <&dcmi_0>;
>> +			};
>> +		};
>> +	};
>> +};
>> --
>> 1.9.1
>>
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt b/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt
new file mode 100644
index 0000000..8180f63
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt
@@ -0,0 +1,85 @@ 
+STMicroelectronics STM32 Digital Camera Memory Interface (DCMI)
+
+Required properties:
+- compatible: "st,stm32-dcmi"
+- reg: physical base address and length of the registers set for the device
+- interrupts: should contain IRQ line for the DCMI
+- clocks: list of clock specifiers, corresponding to entries in
+          the clock-names property
+- clock-names: must contain "mclk", which is the DCMI peripherial clock
+- resets: reference to a reset controller
+- reset-names: see Documentation/devicetree/bindings/reset/st,stm32-rcc.txt
+
+DCMI supports a single port node with parallel bus. It should contain one
+'port' child node with child 'endpoint' node. Please refer to the bindings
+defined in Documentation/devicetree/bindings/media/video-interfaces.txt.
+
+Example:
+
+Device node example
+-------------------
+	dcmi: dcmi@50050000 {
+		compatible = "st,stm32-dcmi";
+		reg = <0x50050000 0x400>;
+		interrupts = <78>;
+		resets = <&rcc STM32F4_AHB2_RESET(DCMI)>;
+		clocks = <&rcc 0 STM32F4_AHB2_CLOCK(DCMI)>;
+		clock-names = "mclk";
+		pinctrl-names = "default";
+		pinctrl-0 = <&dcmi_pins>;
+		dmas = <&dma2 1 1 0x414 0x3>;
+		dma-names = "tx";
+		status = "disabled";
+	};
+
+Board setup example
+-------------------
+This example is extracted from STM32F429-EVAL board devicetree.
+Please note that on this board, the camera sensor reset & power-down
+line level are inverted (so reset is active high and power-down is
+active low).
+
+/ {
+	[...]
+	clocks {
+		clk_ext_camera: clk-ext-camera {
+			#clock-cells = <0>;
+			compatible = "fixed-clock";
+			clock-frequency = <24000000>;
+		};
+	};
+	[...]
+};
+
+&dcmi {
+	status = "okay";
+
+	port {
+		dcmi_0: endpoint@0 {
+			remote-endpoint = <&ov2640_0>;
+			bus-width = <8>;
+			hsync-active = <0>;
+			vsync-active = <0>;
+			pclk-sample = <1>;
+		};
+	};
+};
+
+&i2c@1 {
+	[...]
+	ov2640: camera@30 {
+		compatible = "ovti,ov2640";
+		reg = <0x30>;
+		resetb-gpios = <&stmpegpio 2 GPIO_ACTIVE_HIGH>;
+		pwdn-gpios = <&stmpegpio 0 GPIO_ACTIVE_LOW>;
+		clocks = <&clk_ext_camera>;
+		clock-names = "xvclk";
+		status = "okay";
+
+		port {
+			ov2640_0: endpoint {
+				remote-endpoint = <&dcmi_0>;
+			};
+		};
+	};
+};