// SPDX-License-Identifier: GPL-2.0 /* Copyright (c) 2020 MediaTek Inc. */ /* 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; }; }; //cam0 powerdown nc camera_pins_cam0_pnd_0: cam0@2 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera_pins_cam0_pnd_1: cam0@3 { 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_cam1_pnd_0: cam1@2 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera_pins_cam1_pnd_1: cam1@3 { 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_pnd_0: cam2@2 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera_pins_cam2_pnd_1: cam2@3 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; camera_pins_cam3_rst_0: cam3@0 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera_pins_cam3_rst_1: cam3@1 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; camera_pins_cam3_pnd_0: cam3@2 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera_pins_cam3_pnd_1: cam3@3 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; camera0_vcama_off: camera0_vcama_output_low@gpio56 { pins_cmd_dat { pinmux = ; output-low; }; }; camera0_vcama_on: camera0_vcama_output_high@gpio56 { pins_cmd_dat { pinmux = ; output-high; }; }; camera0_vcamd_off: camera0_vcamd_output_low@gpio57 { pins_cmd_dat { pinmux = ; output-low; }; }; camera0_vcamd_on: camera0_vcamd_output_high@gpio57 { pins_cmd_dat { pinmux = ; output-high; }; }; camera1_vcama_off: camera1_vcama_output_low@gpio59 { pins_cmd_dat { pinmux = ; output-low; }; }; camera1_vcama_on: camera1_vcama_output_high@gpio59 { pins_cmd_dat { pinmux = ; output-high; }; }; camera1_vcamd_off: camera1_vcamd_output_low@gpio35 { pins_cmd_dat { pinmux = ; output-low; }; }; camera1_vcamd_on: camera1_vcamd_output_high@gpio35 { pins_cmd_dat { pinmux = ; output-high; }; }; camera2_vcama_off: camera2_vcama_output_low@gpio59 { pins_cmd_dat { pinmux = ; output-low; }; }; camera2_vcama_on: camera2_vcama_output_high@gpio59 { pins_cmd_dat { pinmux = ; output-high; }; }; camera2_vcamd_off: camera2_vcamd_output_low@gpio13 { pins_cmd_dat { pinmux = ; output-low; }; }; camera2_vcamd_on: camera2_vcamd_output_high@gpio13 { pins_cmd_dat { pinmux = ; output-high; }; }; camera3_vcama_off: camera3_vcama_output_low@gpio32 { pins_cmd_dat { pinmux = ; output-low; }; }; camera3_vcama_on: camera3_vcama_output_high@gpio32 { pins_cmd_dat { pinmux = ; output-high; }; }; camera3_vcamd_off: camera3_vcamd_output_low@gpio13 { pins_cmd_dat { pinmux = ; output-low; }; }; camera3_vcamd_on: camera3_vcamd_output_high@gpio13 { pins_cmd_dat { pinmux = ; 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_cam3_mclk_off: camera_pins_cam3_mclk_off { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera_pins_cam3_mclk_2ma: camera_pins_cam3_mclk_2ma { pins_cmd_dat { pinmux = ; drive-strength = <0>; }; }; camera_pins_cam3_mclk_4ma: camera_pins_cam3_mclk_4ma { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera_pins_cam3_mclk_6ma: camera_pins_cam3_mclk_6ma { pins_cmd_dat { pinmux = ; drive-strength = <2>; }; }; camera_pins_cam3_mclk_8ma: camera_pins_cam3_mclk_8ma { pins_cmd_dat { pinmux = ; drive-strength = <3>; }; }; camera0_vcamio_off: camera0_vcamio_output_low@gpio34 { pins_cmd_dat { pinmux = ; output-low; }; }; camera0_vcamio_on: camera0_vcamio_output_high@gpio34 { pins_cmd_dat { pinmux = ; output-high; }; }; camera1_vcamio_off: camera1_vcamio_output_low@gpio34 { pins_cmd_dat { pinmux = ; output-low; }; }; camera1_vcamio_on: camera1_vcamio_output_high@gpio34 { pins_cmd_dat { pinmux = ; output-high; }; }; camera2_vcamio_off: camera2_vcamio_output_low@gpio34 { pins_cmd_dat { pinmux = ; output-low; }; }; camera2_vcamio_on: camera2_vcamio_output_high@gpio34 { pins_cmd_dat { pinmux = ; output-high; }; }; camera3_vcamio_off: camera3_vcamio_output_low@gpio34 { pins_cmd_dat { pinmux = ; output-low; }; }; camera3_vcamio_on: camera3_vcamio_output_high@gpio34 { pins_cmd_dat { pinmux = ; output-high; }; }; camera_pins_cam_mipi_switch_en_1: mipi_en@1 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; camera_pins_cam_mipi_switch_en_0: mipi_en@0 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; 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; }; }; camera_pins_default: camdefault { }; }; &kd_camera_hw1 { pinctrl-names = "default", "cam0_rst0", "cam0_rst1", "cam0_pnd0", "cam0_pnd1", "cam1_rst0", "cam1_rst1", "cam1_pnd0", "cam1_pnd1", "cam2_rst0", "cam2_rst1", "cam2_pnd0", "cam2_pnd1", "cam3_rst0", "cam3_rst1", "cam3_pnd0", "cam3_pnd1", "cam0_ldo_vcama_1", "cam0_ldo_vcama_0", "cam0_ldo_vcamd_1", "cam0_ldo_vcamd_0", "cam1_ldo_vcama_1", "cam1_ldo_vcama_0", "cam1_ldo_vcamd_1", "cam1_ldo_vcamd_0", "cam2_ldo_vcama_1", "cam2_ldo_vcama_0", "cam2_ldo_vcamd_1", "cam2_ldo_vcamd_0", "cam3_ldo_vcama_1", "cam3_ldo_vcama_0", "cam3_ldo_vcamd_1", "cam3_ldo_vcamd_0", "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", "cam3_mclk_off", "cam3_mclk_2mA", "cam3_mclk_4mA", "cam3_mclk_6mA", "cam3_mclk_8mA", "cam0_ldo_vcamio_1", "cam0_ldo_vcamio_0", "cam1_ldo_vcamio_1", "cam1_ldo_vcamio_0", "cam2_ldo_vcamio_1", "cam2_ldo_vcamio_0", "cam3_ldo_vcamio_1", "cam3_ldo_vcamio_0"; pinctrl-0 = <&camera_pins_default>; pinctrl-1 = <&camera_pins_cam0_rst_0>; pinctrl-2 = <&camera_pins_cam0_rst_1>; pinctrl-3 = <&camera_pins_cam0_pnd_0>; pinctrl-4 = <&camera_pins_cam0_pnd_1>; pinctrl-5 = <&camera_pins_cam1_rst_0>; pinctrl-6 = <&camera_pins_cam1_rst_1>; pinctrl-7 = <&camera_pins_cam1_pnd_0>; pinctrl-8 = <&camera_pins_cam1_pnd_1>; pinctrl-9 = <&camera_pins_cam2_rst_0>; pinctrl-10 = <&camera_pins_cam2_rst_1>; pinctrl-11 = <&camera_pins_cam2_pnd_0>; pinctrl-12 = <&camera_pins_cam2_pnd_1>; pinctrl-13 = <&camera_pins_cam3_rst_0>; pinctrl-14 = <&camera_pins_cam3_rst_1>; pinctrl-15 = <&camera_pins_cam3_pnd_0>; pinctrl-16 = <&camera_pins_cam3_pnd_1>; pinctrl-17 = <&camera0_vcama_on>; pinctrl-18 = <&camera0_vcama_off>; pinctrl-19 = <&camera0_vcamd_on>; pinctrl-20 = <&camera0_vcamd_off>; pinctrl-21 = <&camera1_vcama_on>; pinctrl-22 = <&camera1_vcama_off>; pinctrl-23 = <&camera1_vcamd_on>; pinctrl-24 = <&camera1_vcamd_off>; pinctrl-25 = <&camera2_vcama_on>; pinctrl-26 = <&camera2_vcama_off>; pinctrl-27 = <&camera2_vcamd_on>; pinctrl-28 = <&camera2_vcamd_off>; pinctrl-29 = <&camera3_vcama_on>; pinctrl-30 = <&camera3_vcama_off>; pinctrl-31 = <&camera3_vcamd_on>; pinctrl-32 = <&camera3_vcamd_off>; pinctrl-33 = <&camera_pins_cam0_mclk_off>; pinctrl-34 = <&camera_pins_cam0_mclk_2ma>; pinctrl-35 = <&camera_pins_cam0_mclk_4ma>; pinctrl-36 = <&camera_pins_cam0_mclk_6ma>; pinctrl-37 = <&camera_pins_cam0_mclk_8ma>; pinctrl-38 = <&camera_pins_cam1_mclk_off>; pinctrl-39 = <&camera_pins_cam1_mclk_2ma>; pinctrl-40 = <&camera_pins_cam1_mclk_4ma>; pinctrl-41 = <&camera_pins_cam1_mclk_6ma>; pinctrl-42 = <&camera_pins_cam1_mclk_8ma>; pinctrl-43 = <&camera_pins_cam2_mclk_off>; pinctrl-44 = <&camera_pins_cam2_mclk_2ma>; pinctrl-45 = <&camera_pins_cam2_mclk_4ma>; pinctrl-46 = <&camera_pins_cam2_mclk_6ma>; pinctrl-47 = <&camera_pins_cam2_mclk_8ma>; pinctrl-48 = <&camera_pins_cam3_mclk_off>; pinctrl-49 = <&camera_pins_cam3_mclk_2ma>; pinctrl-50 = <&camera_pins_cam3_mclk_4ma>; pinctrl-51 = <&camera_pins_cam3_mclk_6ma>; pinctrl-52 = <&camera_pins_cam3_mclk_8ma>; pinctrl-53 = <&camera0_vcamio_on>; pinctrl-54 = <&camera0_vcamio_off>; pinctrl-55 = <&camera1_vcamio_on>; pinctrl-56 = <&camera1_vcamio_off>; pinctrl-57 = <&camera2_vcamio_on>; pinctrl-58 = <&camera2_vcamio_off>; pinctrl-59 = <&camera3_vcamio_on>; pinctrl-60 = <&camera3_vcamio_off>; /* main (wide)*/ //cam0_vcama-supply = <&rt5133_ldo4>; //cam0_vcamio-supply = <&rt5133_ldo1>; //cam0_vcamd-supply = <&rt5133_ldo8>; //cam0_vcama1-supply = <&rt5133_ldo5>; //cam0_vcamaf-supply = <&rt5133_ldo3>; /* front*/ //cam1_vcama-supply = <&rt5133_ldo6>; //cam1_vcamio-supply = <&rt5133_ldo1>; //cam1_vcamd-supply = <&rt5133_ldo7>; //cam1_vcama1-supply = <&rt5133_ldo5>; //cam1_vcamaf-supply = <&rt5133_ldo2>; /* main2 (Ultra Wide)*/ //cam2_vcama-supply = <&rt5133_gpio2>; //cam2_vcamio-supply = <&rt5133_ldo1>; //cam2_vcamd-supply = <&rt5133_ldo7>; //cam2_vcama1-supply = <&rt5133_ldo5>; //cam2_vcamaf-supply = <&rt5133_gpio1>; //cam0_vcamio-supply = <&mt_pmic_vcamio_ldo_reg>; //cam1_vcamio-supply = <&mt_pmic_vcamio_ldo_reg>; //cam2_vcamio-supply = <&mt_pmic_vcamio_ldo_reg>; //cam3_vcamio-supply = <&mt_pmic_vcamio_ldo_reg>; cam0_vcamaf-supply = <&mt6377_vtp>; cam0_pin_mclk = "mclk"; cam0_pin_rst = "gpio"; cam0_pin_pnd = "gpio"; cam0_pin_vcama = "gpio"; cam0_pin_vcamio = "gpio"; cam0_pin_vcamd = "gpio"; cam0_pin_vcamaf = "regulator"; cam1_pin_mclk = "mclk"; cam1_pin_rst = "gpio"; cam1_pin_pnd = "gpio"; cam1_pin_vcama = "gpio"; cam1_pin_vcamio = "gpio"; cam1_pin_vcamd = "gpio"; cam2_pin_mclk = "mclk"; cam2_pin_rst = "gpio"; cam2_pin_pnd = "gpio"; cam2_pin_vcama = "gpio"; cam2_pin_vcamio = "gpio"; cam2_pin_vcamd = "gpio"; cam3_pin_mclk = "mclk"; cam3_pin_rst = "gpio"; cam3_pin_pnd = "gpio"; cam3_pin_vcama = "gpio"; cam3_pin_vcamio = "gpio"; cam3_pin_vcamd = "gpio"; cam0_enable_sensor = "s5k3l8_mipi_raw ov50c40_mipi_raw"; cam1_enable_sensor = "gc05a2sub_mipi_raw"; cam2_enable_sensor = "bf2257csmacro_mipi_raw"; cam3_enable_sensor = ""; status = "okay"; }; /* CAMERA GPIO end */ /* CAMERA EEPROM */ &i2c8 { status = "okay"; clock-frequency = <400000>; #address-cells = <1>; #size-cells = <0>; mtk_camera_eeprom2:camera_eeprom2@51 { compatible = "mediatek,camera_eeprom"; reg = <0x51>; status = "okay"; }; camera_main_two_mtk:camera_main_two@1a { compatible = "mediatek,camera_main_two"; #thermal-sensor-cells = <0>; reg = <0x1a>; status = "okay"; }; }; &i2c2 { status = "okay"; clock-frequency = <400000>; #address-cells = <1>; #size-cells = <0>; mtk_camera_eeprom1:camera_eeprom1@51 { compatible = "mediatek,camera_eeprom"; reg = <0x51>; status = "okay"; }; camera_sub_mtk:camera_sub@1a { compatible = "mediatek,camera_sub"; #thermal-sensor-cells = <0>; reg = <0x1a>; status = "okay"; }; camera_sub_two_mtk:camera_sub_two@10 { compatible = "mediatek,camera_sub_two"; #thermal-sensor-cells = <0>; reg = <0x10>; status = "okay"; }; }; &i2c4 { status = "okay"; clock-frequency = <400000>; #address-cells = <1>; #size-cells = <0>; mtk_camera_eeprom0:camera_eeprom0@50 { compatible = "mediatek,camera_eeprom"; reg = <0x50>; status = "okay"; }; camera_main_mtk:camera_main@1a { compatible = "mediatek,camera_main"; #thermal-sensor-cells = <0>; reg = <0x1a>; status = "okay"; }; }; /* CAMERA EEPROM end */ /* CAMERA TZ config */ &thermal_zones { camera_main: camera_main { polling-delay = <1000>; /* milliseconds */ polling-delay-passive = <0>; /* milliseconds */ thermal-sensors = <&camera_main_mtk>; }; camera_sub: camera_sub { polling-delay = <1000>; /* milliseconds */ polling-delay-passive = <0>; /* milliseconds */ thermal-sensors = <&camera_sub_mtk>; }; camera_main_two: camera_main_two { polling-delay = <1000>; /* milliseconds */ polling-delay-passive = <0>; /* milliseconds */ thermal-sensors = <&camera_main_two_mtk>; }; camera_sub_two: camera_sub_two { polling-delay = <1000>; /* milliseconds */ polling-delay-passive = <0>; /* milliseconds */ thermal-sensors = <&camera_main_two_mtk>; }; }; /* CAMERA TZ config end */