100e4b197SAnatolij GustschinIFM camera sensor interface on mpc5200 LocalPlus bus
200e4b197SAnatolij Gustschin
300e4b197SAnatolij GustschinRequired properties:
400e4b197SAnatolij Gustschin- compatible: "ifm,o2d-csi"
500e4b197SAnatolij Gustschin- reg: specifies sensor chip select number and associated address range
600e4b197SAnatolij Gustschin- interrupts: external interrupt line number and interrupt sense mode
700e4b197SAnatolij Gustschin  of the interrupt line signaling frame valid events
800e4b197SAnatolij Gustschin- gpios: three gpio-specifiers for "capture", "reset" and "master enable"
900e4b197SAnatolij Gustschin  GPIOs (strictly in this order).
1000e4b197SAnatolij Gustschin- ifm,csi-clk-handle: the phandle to a node in the DT describing the sensor
1100e4b197SAnatolij Gustschin  clock generator. This node is usually a general purpose timer controller.
1200e4b197SAnatolij Gustschin- ifm,csi-addr-bus-width: address bus width (valid values are 16, 24, 25)
1300e4b197SAnatolij Gustschin- ifm,csi-data-bus-width: data bus width (valid values are 8 and 16)
1400e4b197SAnatolij Gustschin- ifm,csi-wait-cycles: sensor bus wait cycles
1500e4b197SAnatolij Gustschin
1600e4b197SAnatolij GustschinOptional properties:
1700e4b197SAnatolij Gustschin- ifm,csi-byte-swap: if this property is present, the byte swapping on
1800e4b197SAnatolij Gustschin  the bus will be enabled.
1900e4b197SAnatolij Gustschin
2000e4b197SAnatolij GustschinExample:
2100e4b197SAnatolij Gustschin
2200e4b197SAnatolij Gustschin	csi@3,0 {
2300e4b197SAnatolij Gustschin		compatible = "ifm,o2d-csi";
2400e4b197SAnatolij Gustschin		reg = <3 0 0x00100000>;		/* CS 3, 1 MiB range */
2500e4b197SAnatolij Gustschin		interrupts = <1 1 2>;		/* IRQ1, edge falling */
2600e4b197SAnatolij Gustschin
2700e4b197SAnatolij Gustschin		ifm,csi-clk-handle = <&timer7>;
2800e4b197SAnatolij Gustschin		gpios = <&gpio_simple 23 0	/* image_capture */
2900e4b197SAnatolij Gustschin			 &gpio_simple 26 0	/* image_reset */
3000e4b197SAnatolij Gustschin			 &gpio_simple 29 0>;	/* image_master_en */
3100e4b197SAnatolij Gustschin
3200e4b197SAnatolij Gustschin		ifm,csi-addr-bus-width = <24>;
3300e4b197SAnatolij Gustschin		ifm,csi-data-bus-width = <8>;
3400e4b197SAnatolij Gustschin		ifm,csi-wait-cycles = <0>;
3500e4b197SAnatolij Gustschin	};
3600e4b197SAnatolij Gustschin
3700e4b197SAnatolij GustschinThe base address of the used chip select is specified in the
3800e4b197SAnatolij Gustschinranges property of the parent localbus node, for example:
3900e4b197SAnatolij Gustschin
4000e4b197SAnatolij Gustschin	ranges = <0 0 0xff000000 0x01000000
4100e4b197SAnatolij Gustschin		  3 0 0xe3000000 0x00100000>;
42