^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) IFM camera sensor interface on mpc5200 LocalPlus bus
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) - compatible: "ifm,o2d-csi"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) - reg: specifies sensor chip select number and associated address range
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) - interrupts: external interrupt line number and interrupt sense mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) of the interrupt line signaling frame valid events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) - gpios: three gpio-specifiers for "capture", "reset" and "master enable"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) GPIOs (strictly in this order).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - ifm,csi-clk-handle: the phandle to a node in the DT describing the sensor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) clock generator. This node is usually a general purpose timer controller.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) - ifm,csi-addr-bus-width: address bus width (valid values are 16, 24, 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) - ifm,csi-data-bus-width: data bus width (valid values are 8 and 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) - ifm,csi-wait-cycles: sensor bus wait cycles
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) Optional properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) - ifm,csi-byte-swap: if this property is present, the byte swapping on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) the bus will be enabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) csi@3,0 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) compatible = "ifm,o2d-csi";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) reg = <3 0 0x00100000>; /* CS 3, 1 MiB range */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) interrupts = <1 1 2>; /* IRQ1, edge falling */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) ifm,csi-clk-handle = <&timer7>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) gpios = <&gpio_simple 23 0 /* image_capture */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) &gpio_simple 26 0 /* image_reset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) &gpio_simple 29 0>; /* image_master_en */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) ifm,csi-addr-bus-width = <24>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) ifm,csi-data-bus-width = <8>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) ifm,csi-wait-cycles = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) The base address of the used chip select is specified in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) ranges property of the parent localbus node, for example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) ranges = <0 0 0xff000000 0x01000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 3 0 0xe3000000 0x00100000>;