^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) Atmel Image Sensor Interface (ISI)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) ----------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) Required properties for ISI:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) - compatible: must be "atmel,at91sam9g45-isi" or "microchip,sam9x60-isi".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) - reg: physical base address and length of the registers set for the device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) - interrupts: should contain IRQ line for the ISI.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) - clocks: list of clock specifiers, corresponding to entries in the clock-names
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) property; please refer to clock-bindings.txt.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - clock-names: required elements: "isi_clk".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) - pinctrl-names, pinctrl-0: please refer to pinctrl-bindings.txt.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) ISI supports a single port node with parallel bus. It shall contain one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 'port' child node with child 'endpoint' node. Please refer to the bindings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) defined in Documentation/devicetree/bindings/media/video-interfaces.txt.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) Endpoint node properties
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) ------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) - bus-width: <8> or <10> (mandatory)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) - hsync-active (default: active high)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) - vsync-active (default: active high)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) - pclk-sample (default: sample on falling edge)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) - remote-endpoint: A phandle to the bus receiver's endpoint node (mandatory).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) isi: isi@f0034000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) compatible = "atmel,at91sam9g45-isi";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) reg = <0xf0034000 0x4000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) interrupts = <37 IRQ_TYPE_LEVEL_HIGH 5>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) pinctrl-names = "default";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) pinctrl-0 = <&pinctrl_isi_data_0_7>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) clocks = <&isi_clk>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) clock-names = "isi_clk";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) port {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) isi_0: endpoint {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) remote-endpoint = <&ov2640_0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) bus-width = <8>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) vsync-active = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) hsync-active = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) i2c1: i2c@f0018000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) ov2640: camera@30 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) compatible = "ovti,ov2640";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) reg = <0x30>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) pinctrl-names = "default";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) resetb-gpios = <&pioE 11 GPIO_ACTIVE_LOW>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) pwdn-gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) clocks = <&pck0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) clock-names = "xvclk";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) assigned-clocks = <&pck0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) assigned-clock-rates = <25000000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) port {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) ov2640_0: endpoint {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) remote-endpoint = <&isi_0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) bus-width = <8>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) };