/* * Copyright (c) 2019 MediaTek Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * 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. */ /* CAMERA GPIO standardization */ &pio { camera_pins_cam0_rst_0: cam0@0 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera_pins_cam0_rst_1: cam0@1 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; camera_pins_cam1_rst_0: cam1@0 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera_pins_cam1_rst_1: cam1@1 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; camera_pins_cam2_rst_0: cam2@0 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera_pins_cam2_rst_1: cam2@1 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; camera_pins_cam2_dvdd_off: ldo_vcamd2@0 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera_pins_cam2_dvdd_on: ldo_vcamd2@1 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; camera_pins_cam4_rst_0: cam4@0 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera_pins_cam4_rst_1: cam4@1 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; camera_pins_cam0_mclk_off: camera_pins_cam0_mclk_off { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera_pins_cam0_mclk_2ma: camera_pins_cam0_mclk_2ma { pins_cmd_dat { pinmux = ; drive-strength = <0>; }; }; camera_pins_cam0_mclk_4ma: camera_pins_cam0_mclk_4ma { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera_pins_cam0_mclk_6ma: camera_pins_cam0_mclk_6ma { pins_cmd_dat { pinmux = ; drive-strength = <2>; }; }; camera_pins_cam0_mclk_8ma: camera_pins_cam0_mclk_8ma { pins_cmd_dat { pinmux = ; drive-strength = <3>; }; }; camera_pins_cam1_mclk_off: camera_pins_cam1_mclk_off { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera_pins_cam1_mclk_2ma: camera_pins_cam1_mclk_2ma { pins_cmd_dat { pinmux = ; drive-strength = <0>; }; }; camera_pins_cam1_mclk_4ma: camera_pins_cam1_mclk_4ma { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera_pins_cam1_mclk_6ma: camera_pins_cam1_mclk_6ma { pins_cmd_dat { pinmux = ; drive-strength = <2>; }; }; camera_pins_cam1_mclk_8ma: camera_pins_cam1_mclk_8ma { pins_cmd_dat { pinmux = ; drive-strength = <3>; }; }; camera_pins_cam2_mclk_off: camera_pins_cam2_mclk_off { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera_pins_cam2_mclk_2ma: camera_pins_cam2_mclk_2ma { pins_cmd_dat { pinmux = ; drive-strength = <0>; }; }; camera_pins_cam2_mclk_4ma: camera_pins_cam2_mclk_4ma { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera_pins_cam2_mclk_6ma: camera_pins_cam2_mclk_6ma { pins_cmd_dat { pinmux = ; drive-strength = <2>; }; }; camera_pins_cam2_mclk_8ma: camera_pins_cam2_mclk_8ma { pins_cmd_dat { pinmux = ; drive-strength = <3>; }; }; camera_pins_cam4_mclk_off: camera_pins_cam4_mclk_off { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera_pins_cam4_mclk_2ma: camera_pins_cam4_mclk_2ma { pins_cmd_dat { pinmux = ; drive-strength = <0>; }; }; camera_pins_cam4_mclk_4ma: camera_pins_cam4_mclk_4ma { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera_pins_cam4_mclk_6ma: camera_pins_cam4_mclk_6ma { pins_cmd_dat { pinmux = ; drive-strength = <2>; }; }; camera_pins_cam4_mclk_8ma: camera_pins_cam4_mclk_8ma { pins_cmd_dat { pinmux = ; drive-strength = <3>; }; }; camera_pins_cam_mipi_switch_sel_1: mipi_sel@1 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; camera_pins_cam_mipi_switch_sel_0: mipi_sel@0 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; // camera1 GPIO supply camera_pins_cam1_dvdd_off: ldo_vcamd@0{ pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera_pins_cam1_dvdd_on: ldo_vcamd@1{ pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; camera_pins_default: camdefault { }; }; &kd_camera_hw1 { pinctrl-names = "default", "cam0_rst0", "cam0_rst1", "cam1_rst0", "cam1_rst1", "cam2_rst0", "cam2_rst1", "cam4_rst0", "cam4_rst1", "cam0_mclk_off", "cam0_mclk_2mA", "cam0_mclk_4mA", "cam0_mclk_6mA", "cam0_mclk_8mA", "cam1_mclk_off", "cam1_mclk_2mA", "cam1_mclk_4mA", "cam1_mclk_6mA", "cam1_mclk_8mA", "cam2_mclk_off", "cam2_mclk_2mA", "cam2_mclk_4mA", "cam2_mclk_6mA", "cam2_mclk_8mA", "cam4_mclk_off", "cam4_mclk_2mA", "cam4_mclk_4mA", "cam4_mclk_6mA", "cam4_mclk_8mA", "cam_mipi_switch_sel_1", "cam_mipi_switch_sel_0", "cam1_ldo_vcamd_0", "cam1_ldo_vcamd_1", "cam2_ldo_vcamd_0", "cam2_ldo_vcamd_1"; pinctrl-0 = <&camera_pins_default>; pinctrl-1 = <&camera_pins_cam0_rst_0>; pinctrl-2 = <&camera_pins_cam0_rst_1>; pinctrl-3 = <&camera_pins_cam1_rst_0>; pinctrl-4 = <&camera_pins_cam1_rst_1>; pinctrl-5 = <&camera_pins_cam2_rst_0>; pinctrl-6 = <&camera_pins_cam2_rst_1>; pinctrl-7 = <&camera_pins_cam4_rst_0>; pinctrl-8 = <&camera_pins_cam4_rst_1>; pinctrl-9 = <&camera_pins_cam0_mclk_off>; pinctrl-10 = <&camera_pins_cam0_mclk_2ma>; pinctrl-11 = <&camera_pins_cam0_mclk_4ma>; pinctrl-12 = <&camera_pins_cam0_mclk_6ma>; pinctrl-13 = <&camera_pins_cam0_mclk_8ma>; pinctrl-14 = <&camera_pins_cam1_mclk_off>; pinctrl-15 = <&camera_pins_cam1_mclk_2ma>; pinctrl-16 = <&camera_pins_cam1_mclk_4ma>; pinctrl-17 = <&camera_pins_cam1_mclk_6ma>; pinctrl-18 = <&camera_pins_cam1_mclk_8ma>; pinctrl-19 = <&camera_pins_cam2_mclk_off>; pinctrl-20 = <&camera_pins_cam2_mclk_2ma>; pinctrl-21 = <&camera_pins_cam2_mclk_4ma>; pinctrl-22 = <&camera_pins_cam2_mclk_6ma>; pinctrl-23 = <&camera_pins_cam2_mclk_8ma>; pinctrl-24 = <&camera_pins_cam4_mclk_off>; pinctrl-25 = <&camera_pins_cam4_mclk_2ma>; pinctrl-26 = <&camera_pins_cam4_mclk_4ma>; pinctrl-27 = <&camera_pins_cam4_mclk_6ma>; pinctrl-28 = <&camera_pins_cam4_mclk_8ma>; pinctrl-29 = <&camera_pins_cam_mipi_switch_sel_1>; pinctrl-30 = <&camera_pins_cam_mipi_switch_sel_0>; pinctrl-31 = <&camera_pins_cam1_dvdd_off>; pinctrl-32 = <&camera_pins_cam1_dvdd_on>; pinctrl-33 = <&camera_pins_cam2_dvdd_off>; pinctrl-34 = <&camera_pins_cam2_dvdd_on>; cam0_vcamd-supply = <&wl2866d_dvdd1>; cam0_vcama-supply = <&wl2866d_avdd1>; cam0_vcamio-supply = <&mt_pmic_vtp_ldo_reg>; cam1_vcama-supply = <&wl2866d_avdd2>; cam1_vcamd-supply = <&wl2866d_dvdd2>; cam1_vcamio-supply = <&mt_pmic_vcamio_ldo_reg>; cam2_vcama-supply = <&wl2866d_avdd2>; cam2_vcamd-supply = <&wl2866d_dvdd2>; cam2_vcamio-supply = <&mt_pmic_vcamio_ldo_reg>; cam4_vcama-supply = <&wl2866d_avdd2>; cam4_vcamio-supply = <&mt_pmic_vcamio_ldo_reg>; status = "okay"; }; /* CAMERA GPIO end */ /* CAMERA specify sensor */ &kd_camera_hw1 { cam0_enable_sensor = "s5kjn1sunny_mipi_raw ov50c40ofilm_mipi_raw"; cam1_enable_sensor = "ov16a1qofilm_mipi_raw ov16a1qqtech_mipi_raw"; cam2_enable_sensor = "imx355ofilm_mipi_raw imx355sunny_mipi_raw"; cam3_enable_sensor = ""; cam4_enable_sensor = ""; }; /* CAMERA specify sensor end */ /* CAMERA EEPROM */ &i2c2 { mtk_camera_eeprom0:camera_eeprom0@50 { compatible = "mediatek,camera_eeprom"; reg = <0x50>; status = "okay"; }; }; &i2c4 { mtk_camera_eeprom1:camera_eeprom1@51 { compatible = "mediatek,camera_eeprom"; reg = <0x51>; status = "okay"; }; mtk_camera_eeprom2:camera_eeprom2@50 { compatible = "mediatek,camera_eeprom"; reg = <0x50>; status = "okay"; }; }; &i2c8 { mtk_camera_eeprom4:camera_eeprom4@51 { compatible = "mediatek,camera_eeprom"; reg = <0x51>; status = "okay"; }; }; /* CAMERA EEPROM end */ &i2c6 { #include "wl2866d.dtsi" };