Toshiba et8ek8 5MP sensor

Toshiba et8ek8 5MP sensor is an image sensor found in Nokia N900 device

More detailed documentation can be found in
Documentation/devicetree/bindings/media/video-interfaces.txt .


Mandatory properties
--------------------

- compatible: "toshiba,et8ek8"
- reg: I2C address (0x3e, or an alternative address)
- vana-supply: Analogue voltage supply (VANA), 2.8 volts
- clocks: External clock to the sensor
- clock-frequency: Frequency of the external clock to the sensor. Camera
  driver will set this frequency on the external clock. The clock frequency is
  a pre-determined frequency known to be suitable to the board.
- reset-gpios: XSHUTDOWN GPIO. The XSHUTDOWN signal is active low. The sensor
  is in hardware standby mode when the signal is in the low state.


Endpoint node mandatory properties
----------------------------------

- remote-endpoint: A phandle to the bus receiver's endpoint node.


Example
-------

&i2c3 {
	clock-frequency = <400000>;

	cam1: camera@3e {
		compatible = "toshiba,et8ek8";
		reg = <0x3e>;
		vana-supply = <&vaux4>;
		clocks = <&isp 0>;
		clock-frequency = <9600000>;
		reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
		port {
			csi_cam1: endpoint {
				remote-endpoint = <&csi_out1>;
			};
		};
	};
};
