ARM: dts: nokia n900: update dts with camera support
authorPavel Machek <pavel@ucw.cz>
Thu, 10 Aug 2017 20:49:23 +0000 (22:49 +0200)
committerTony Lindgren <tony@atomide.com>
Mon, 14 Aug 2017 18:34:25 +0000 (11:34 -0700)
Add camera support to N900 dts. Also add a note about MMC & debugging.

Signed-off-by: Pavel Machek <pavel@ucw.cz>
Acked-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/dts/omap3-n900.dts

index 92c1f4a..26c20e1 100644 (file)
                io-channel-names = "temp", "bsi", "vbat";
        };
 
+       rear_camera: camera@0 {
+               compatible = "linux,camera";
+
+               module {
+                       model = "TCM8341MD";
+                       sensor = <&cam1>;
+               };
+       };
+
        pwm9: dmtimer-pwm {
                compatible = "ti,omap-dmtimer-pwm";
                #pwm-cells = <3>;
        };
 };
 
+&isp {
+       vdds_csib-supply = <&vaux2>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&camera_pins>;
+
+       ports {
+               port@1 {
+                       reg = <1>;
+
+                       csi_isp: endpoint {
+                               remote-endpoint = <&csi_cam1>;
+                               bus-type = <3>; /* CCP2 */
+                               clock-lanes = <1>;
+                               data-lanes = <0>;
+                               lane-polarity = <0 0>;
+                               clock-inv = <0>;
+                               /* Select strobe = <1> for back camera, <0> for front camera */
+                               strobe = <1>;
+                               crc = <0>;
+                       };
+               };
+       };
+};
+
 &omap3_pmx_core {
        pinctrl-names = "default";
 
                        OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4)               /* gpio 157 => cmt_bsi */
                >;
        };
+
+       camera_pins: pinmux_camera {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x210c, PIN_OUTPUT | MUX_MODE7)       /* cam_hs */
+                       OMAP3_CORE1_IOPAD(0x210e, PIN_OUTPUT | MUX_MODE7)       /* cam_vs */
+                       OMAP3_CORE1_IOPAD(0x2110, PIN_OUTPUT | MUX_MODE0)       /* cam_xclka */
+                       OMAP3_CORE1_IOPAD(0x211e, PIN_OUTPUT | MUX_MODE7)       /* cam_d4 */
+                       OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE0)        /* cam_d6 */
+                       OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE0)        /* cam_d7 */
+                       OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE0)        /* cam_d8 */
+                       OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE0)        /* cam_d9 */
+                       OMAP3_CORE1_IOPAD(0x212a, PIN_OUTPUT | MUX_MODE7)       /* cam_d10 */
+                       OMAP3_CORE1_IOPAD(0x212e, PIN_OUTPUT | MUX_MODE7)       /* cam_xclkb */
+                       OMAP3_CORE1_IOPAD(0x2132, PIN_OUTPUT | MUX_MODE0)       /* cam_strobe */
+               >;
+       };
 };
 
 &i2c1 {
                st,max-limit-y = <32>;
                st,max-limit-z = <32>;
        };
+
+       cam1: camera@3e {
+               compatible = "toshiba,et8ek8";
+               reg = <0x3e>;
+
+               vana-supply = <&vaux4>;
+
+               clocks = <&isp 0>;
+               clock-names = "extclk";
+               clock-frequency = <9600000>;
+
+               reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
+
+               port {
+                       csi_cam1: endpoint {
+                               bus-type = <3>; /* CCP2 */
+                               strobe = <1>;
+                               clock-inv = <0>;
+                               crc = <1>;
+
+                               remote-endpoint = <&csi_isp>;
+                       };
+               };
+       };
+
+       /* D/A converter for auto-focus */
+       ad5820: dac@0c {
+               compatible = "adi,ad5820";
+               reg = <0x0c>;
+
+               VANA-supply = <&vaux4>;
+
+               #io-channel-cells = <0>;
+       };
 };
 
 &mmc1 {
        pinctrl-0 = <&mmc1_pins>;
        vmmc-supply = <&vmmc1>;
        bus-width = <4>;
+       /* For debugging, it is often good idea to remove this GPIO.
+          It means you can remove back cover (to reboot by removing
+          battery) and still use the MMC card. */
        cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */
 };