/* * tegra186-quill-p3310-a00-00-lc898212.dts: DTS file for Quill, enables the * lc898212 focusers for E3323. * * Copyright (c) 2015-2017, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. */ #include "tegra186-quill-p3310-1000-a00-00-base.dts" / { nvidia,dtsfilename = __FILE__; host1x { vi@15700000 { num-channels = <4>; ports { port@2 { status = "okay"; reg = <2>; e3323_vi_in2: endpoint { status = "okay"; port-index = <0>; bus-width = <4>; remote-endpoint = <&e3323_lc898212_out0>; }; }; port@3 { status = "okay"; reg = <3>; e3323_vi_in3: endpoint { status = "okay"; port-index = <2>; bus-width = <4>; remote-endpoint = <&e3323_lc898212_out1>; }; }; }; }; }; i2c@3180000 { lc898212@72 { compatible = "nvidia,lc898212"; reg = <0x72>; status = "okay"; vvcm-supply = <&en_vdd_vcm_2v8>; support_mfi = "true"; /* physical camera layer interface tags */ devnode = "video2"; /** * Type specifies the control features supported by * the focuser driver. * default type means only position control setting * supported by the focuser */ type = "default"; min_focus_distance = "10.0"; /* 1.0f/0.1f */ hyper_focal = "0.2"; /* 1.0f/5.0f */ focal_length = "4.73"; f_number = "2.2"; aperture = "2.2"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; e3323_lc898212_out0: endpoint { remote-endpoint = <&e3323_vi_in2>; }; }; }; }; }; i2c@c240000 { lc898212@72 { compatible = "nvidia,lc898212"; reg = <0x72>; status = "okay"; vvcm-supply = <&en_vdd_vcm_2v8>; support_mfi = "true"; /* physical camera layer interface tags */ devnode = "video3"; type = "default"; min_focus_distance = "10.0"; /* 1.0f/0.1f */ hyper_focal = "0.2"; /* 1.0f/5.0f */ focal_length = "4.73"; f_number = "2.2"; aperture = "2.2"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; e3323_lc898212_out1: endpoint { remote-endpoint = <&e3323_vi_in3>; }; }; }; }; }; /* camera plugin-manager */ plugin-manager { /* E3323 camera board */ fragment-e3323@0 { /* enable E3323 focuser 0 */ override@6 { target = <&cam_module0_drivernode1>; _overlay_ { status = "okay"; /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_focuser"; /* Driver v4l2 device name */ devname = "lc898212 2-0072"; /* Declare the device-tree hierarchy to driver instance */ proc-device-tree = "/proc/device-tree/i2c@3180000/lc898212@72"; }; }; /* enable E3323 focuser 1 */ override@7 { target = <&cam_module1_drivernode1>; _overlay_ { status = "okay"; /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_focuser"; /* Driver v4l2 device name */ devname = "lc898212 1-0072"; /* Declare the device-tree hierarchy to driver instance */ proc-device-tree = "/proc/device-tree/i2c@c240000/lc898212@72"; }; }; /* enable VI ports */ override@8 { target = <&vi_base>; _overlay_ { num-channels=<4>; }; }; }; }; tegra-camera-platform { modules { module0 { drivernode1 { status = "okay"; /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_focuser"; /* Driver v4l2 device name */ devname = "lc898212 2-0072"; /* Declare the device-tree hierarchy to driver instance */ proc-device-tree = "/proc/device-tree/i2c@3180000/lc898212@72"; }; }; module1 { drivernode1 { status = "okay"; /* Declare PCL support driver (classically known as guid) */ pcl_id = "v4l2_focuser"; /* Driver v4l2 device name */ devname = "lc898212 1-0072"; /* Declare the device-tree hierarchy to driver instance */ proc-device-tree = "/proc/device-tree/i2c@c240000/lc898212@72"; }; }; }; }; };