/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2019 MediaTek Inc. */ /* CAMERA GPIO standardization */ &pio { camera0_rst_low: camera0_rst_output_low@gpio144 { pins_cmd_dat { pinmux = ; output-low; }; }; camera0_rst_high: camera0_rst_output_high@gpio144 { pins_cmd_dat { pinmux = ; output-high; }; }; camera0_pdn_low: camera0_pdn_output_low { pins_cmd_dat1 { pinmux = ; output-low; }; pins_cmd_dat2 { pinmux = ; output-low; }; }; camera0_pdn_high: camera0_pdn_output_high { pins_cmd_dat1 { pinmux = ; output-high; }; pins_cmd_dat2 { pinmux = ; output-high; }; }; camera1_rst_low: camera1_rst_output_low@gpio143 { pins_cmd_dat { pinmux = ; output-low; }; }; camera1_rst_high: camera1_rst_output_high@gpio143 { pins_cmd_dat { pinmux = ; output-high; }; }; camera1_pdn_low: camera1_pdn_output_low@gpio147 { pins_cmd_dat { pinmux = ; output-low; }; }; camera1_pdn_high: camera1_pdn_output_high@gpio147 { pins_cmd_dat { pinmux = ; output-high; }; }; camera2_rst_low: camera2_rst_output_low@gpio145 { pins_cmd_dat { pinmux = ; output-low; }; }; camera2_rst_high: camera2_rst_output_high@gpio145 { pins_cmd_dat { pinmux = ; output-high; }; }; camera2_pdn_low: camera2_pdn_output_low@gpio146 { pins_cmd_dat { pinmux = ; output-low; }; }; camera2_pdn_high: camera2_pdn_output_high@gpio146 { pins_cmd_dat { pinmux = ; output-high; }; }; camera3_rst_low: camera3_rst_output_low@gpio130 { pins_cmd_dat { pinmux = ; output-low; }; }; camera3_rst_high: camera3_rst_output_high@gpio130 { pins_cmd_dat { pinmux = ; output-high; }; }; camera3_pdn_low: camera3_pdn_output_low@gpio148 { pins_cmd_dat { pinmux = ; output-low; }; }; camera3_pdn_high: camera3_pdn_output_high@gpio148 { pins_cmd_dat { pinmux = ; output-high; }; }; camera4_rst_low: camera4_rst_output_low@gpio131 { pins_cmd_dat { pinmux = ; output-low; }; }; camera4_rst_high: camera4_rst_output_high@gpio131 { pins_cmd_dat { pinmux = ; output-high; }; }; camera4_pdn_low: camera4_pdn_output_low@gpio148 { pins_cmd_dat { pinmux = ; output-low; }; }; camera4_pdn_high: camera4_pdn_output_high@gpio148 { pins_cmd_dat { pinmux = ; output-high; }; }; camera0_vcama_off: camera0_vcama_off { pins_cmd1_dat { pinmux = ; output-low; }; pins_cmd2_dat { pinmux = ; output-low; }; }; camera0_vcama_on: camera0_vcama_on { pins_cmd1_dat { pinmux = ; output-high; }; pins_cmd2_dat { pinmux = ; output-high; }; }; camera0_vcamd_off: camera0_vcamd_output_low@gpio147 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera0_vcamd_on: camera0_vcamd_output_high@gpio147 { pins_cmd_dat { pinmux = ; output-high; }; }; camera1_vcama_off: camera1_vcama_output_low@gpio8 { pins_cmd_dat { pinmux = ; output-low; }; }; camera1_vcama_on: camera1_vcama_output_high@gpio8 { pins_cmd_dat { pinmux = ; output-high; }; }; camera1_vcamd_off: camera1_vcamd_output_low@gpio147 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera1_vcamd_on: camera1_vcamd_output_high@gpio147 { pins_cmd_dat { pinmux = ; output-high; }; }; camera2_vcama_off: camera2_vcama_output_low@gpio148 { pins_cmd_dat { pinmux = ; output-low; }; }; camera2_vcama_on: camera2_vcama_output_high@gpio148 { pins_cmd_dat { pinmux = ; output-high; }; }; camera2_vcamd_off: camera2_vcamd_output_low@gpio146 { pins_cmd_dat { pinmux = ; output-low; }; }; camera2_vcamd_on: camera2_vcamd_output_high@gpio146 { pins_cmd_dat { pinmux = ; output-high; }; }; camera3_vcama_off: camera3_vcama_output_low@gpio148 { pins_cmd_dat { pinmux = ; output-low; }; }; camera3_vcama_on: camera3_vcama_output_hgigh@gpio148 { pins_cmd_dat { pinmux = ; output-high; }; }; camera3_vcamd_off: camera3_vcamd_output_low@gpio146 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; camera3_vcamd_on: camera3_vcamd_output_high@gpio146 { pins_cmd_dat { pinmux = ; output-high; }; }; camera4_vcama_off: camera4_vcama_output_low@gpio148 { pins_cmd_dat { pinmux = ; output-low; }; }; camera4_vcama_on: camera4_vcama_output_high@gpio148 { pins_cmd_dat { pinmux = ; output-high; }; }; camera4_vcamd_off: camera4_vcamd_output_low@gpio146 { pins_cmd_dat { pinmux = ; output-low; }; }; camera4_vcamd_on: camera4_vcamd_output_high@gpio146 { pins_cmd_dat { pinmux = ; output-high; }; }; camera0_mclk_2ma: camera0_mclk_2ma@gpio150 { pins_cmd_dat { pinmux = ; drive-strength = <0>; }; }; camera0_mclk_4ma: camera0_mclk_4ma@gpio150 { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera0_mclk_6ma: camera0_mclk_6ma@gpio150 { pins_cmd_dat { pinmux = ; drive-strength = <2>; }; }; camera0_mclk_8ma: camera0_mclk_8ma@gpio150 { pins_cmd_dat { pinmux = ; drive-strength = <3>; }; }; camera0_mclk_off: camera0_mclk_gpio_mode@gpio150 { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera1_mclk_2ma: camera1_mclk_2ma@gpio149 { pins_cmd_dat { pinmux = ; drive-strength = <0>; }; }; camera1_mclk_4ma: camera1_mclk_4ma@gpio149 { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera1_mclk_6ma: camera1_mclk_6ma@gpio149 { pins_cmd_dat { pinmux = ; drive-strength = <2>; }; }; camera1_mclk_8ma: camera1_mclk_8ma@gpio149 { pins_cmd_dat { pinmux = ; drive-strength = <3>; }; }; camera1_mclk_off: camera1_mclk_gpio_mode@gpio149 { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera2_mclk_2ma: camera2_mclk_2ma@gpio151 { pins_cmd_dat { pinmux = ; drive-strength = <0>; }; }; camera2_mclk_4ma: camera2_mclk_4ma@gpio151 { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera2_mclk_6ma: camera2_mclk_6ma@gpio151 { pins_cmd_dat { pinmux = ; drive-strength = <2>; }; }; camera2_mclk_8ma: camera2_mclk_8ma@gpio151 { pins_cmd_dat { pinmux = ; drive-strength = <3>; }; }; camera2_mclk_off: camera2_mclk_gpio_mode@gpio151 { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera3_mclk_2ma: camera3_mclk_2ma@gpio136 { pins_cmd_dat { pinmux = ; drive-strength = <0>; }; }; camera3_mclk_4ma: camera3_mclk_4ma@gpio136 { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera3_mclk_6ma: camera3_mclk_6ma@gpio136 { pins_cmd_dat { pinmux = ; drive-strength = <2>; }; }; camera3_mclk_8ma: camera3_mclk_8ma@gpio136 { pins_cmd_dat { pinmux = ; drive-strength = <3>; }; }; camera3_mclk_off: camera3_mclk_gpio_mode@gpio136 { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera4_mclk_2ma: camera4_mclk_2ma@gpio137 { pins_cmd_dat { pinmux = ; drive-strength = <0>; }; }; camera4_mclk_4ma: camera4_mclk_4ma@gpio137 { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; camera4_mclk_6ma: camera4_mclk_6ma@gpio137 { pins_cmd_dat { pinmux = ; drive-strength = <2>; }; }; camera4_mclk_8ma: camera4_mclk_8ma@gpio137 { pins_cmd_dat { pinmux = ; drive-strength = <3>; }; }; camera4_mclk_off: camera4_mclk_gpio_mode@gpio137 { pins_cmd_dat { pinmux = ; drive-strength = <1>; }; }; 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", "cam4_rst0", "cam4_rst1", "cam4_pnd0", "cam4_pnd1", "cam0_ldo_vcama_0", "cam0_ldo_vcama_1", "cam0_ldo_vcamd_0", "cam0_ldo_vcamd_1", "cam1_ldo_vcama_0", "cam1_ldo_vcama_1", "cam1_ldo_vcamd_0", "cam1_ldo_vcamd_1", "cam2_ldo_vcama_0", "cam2_ldo_vcama_1", "cam2_ldo_vcamd_0", "cam2_ldo_vcamd_1", "cam3_ldo_vcama_0", "cam3_ldo_vcama_1", "cam3_ldo_vcamd_0", "cam3_ldo_vcamd_1", "cam4_ldo_vcama_0", "cam4_ldo_vcama_1", "cam4_ldo_vcamd_0", "cam4_ldo_vcamd_1", "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", "cam4_mclk_off", "cam4_mclk_2mA", "cam4_mclk_4mA", "cam4_mclk_6mA", "cam4_mclk_8mA"; pinctrl-0 = <&camera_pins_default>; pinctrl-1 = <&camera0_rst_low>; pinctrl-2 = <&camera0_rst_high>; pinctrl-3 = <&camera0_pdn_low>; pinctrl-4 = <&camera0_pdn_high>; pinctrl-5 = <&camera1_rst_low>; pinctrl-6 = <&camera1_rst_high>; pinctrl-7 = <&camera1_pdn_low>; pinctrl-8 = <&camera1_pdn_high>; pinctrl-9 = <&camera2_rst_low>; pinctrl-10 = <&camera2_rst_high>; pinctrl-11 = <&camera2_pdn_low>; pinctrl-12 = <&camera2_pdn_high>; pinctrl-13 = <&camera3_rst_low>; pinctrl-14 = <&camera3_rst_high>; pinctrl-15 = <&camera3_pdn_low>; pinctrl-16 = <&camera3_pdn_high>; pinctrl-17 = <&camera4_rst_low>; pinctrl-18 = <&camera4_rst_high>; pinctrl-19 = <&camera4_pdn_low>; pinctrl-20 = <&camera4_pdn_high>; pinctrl-21 = <&camera0_vcama_off>; pinctrl-22 = <&camera0_vcama_on>; pinctrl-23 = <&camera0_vcamd_off>; pinctrl-24 = <&camera0_vcamd_on>; pinctrl-25 = <&camera1_vcama_off>; pinctrl-26 = <&camera1_vcama_on>; pinctrl-27 = <&camera1_vcamd_off>; pinctrl-28 = <&camera1_vcamd_on>; pinctrl-29 = <&camera2_vcama_off>; pinctrl-30 = <&camera2_vcama_on>; pinctrl-31 = <&camera2_vcamd_off>; pinctrl-32 = <&camera2_vcamd_on>; pinctrl-33 = <&camera3_vcama_off>; pinctrl-34 = <&camera3_vcama_on>; pinctrl-35 = <&camera3_vcamd_off>; pinctrl-36 = <&camera3_vcamd_on>; pinctrl-37 = <&camera4_vcama_off>; pinctrl-38 = <&camera4_vcama_on>; pinctrl-39 = <&camera4_vcamd_off>; pinctrl-40 = <&camera4_vcamd_on>; pinctrl-41 = <&camera0_mclk_off>; pinctrl-42 = <&camera0_mclk_2ma>; pinctrl-43 = <&camera0_mclk_4ma>; pinctrl-44 = <&camera0_mclk_6ma>; pinctrl-45 = <&camera0_mclk_8ma>; pinctrl-46 = <&camera1_mclk_off>; pinctrl-47 = <&camera1_mclk_2ma>; pinctrl-48 = <&camera1_mclk_4ma>; pinctrl-49 = <&camera1_mclk_6ma>; pinctrl-50 = <&camera1_mclk_8ma>; pinctrl-51 = <&camera2_mclk_off>; pinctrl-52 = <&camera2_mclk_2ma>; pinctrl-53 = <&camera2_mclk_4ma>; pinctrl-54 = <&camera2_mclk_6ma>; pinctrl-55 = <&camera2_mclk_8ma>; pinctrl-56 = <&camera3_mclk_off>; pinctrl-57 = <&camera3_mclk_2ma>; pinctrl-58 = <&camera3_mclk_4ma>; pinctrl-59 = <&camera3_mclk_6ma>; pinctrl-60 = <&camera3_mclk_8ma>; pinctrl-61 = <&camera4_mclk_off>; pinctrl-62 = <&camera4_mclk_2ma>; pinctrl-63 = <&camera4_mclk_4ma>; pinctrl-64 = <&camera4_mclk_6ma>; pinctrl-65 = <&camera4_mclk_8ma>; 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>; cam4_vcamio-supply = <&mt_pmic_vcamio_ldo_reg>; cam0_enable_sensor = "imx686_mipi_raw imx586_mipi_raw"; cam1_enable_sensor = "s5kgd1sp_mipi_raw imx616_mipi_raw"; cam2_enable_sensor = "hi846_mipi_raw"; cam3_enable_sensor = "gc02m0_mipi_raw ov02a10_mipi_mono"; cam4_enable_sensor = "gc02m0_mipi_raw ov02a10_mipi_mono"; status = "okay"; }; /* CAMERA GPIO 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"; }; }; &i2c8 { mtk_camera_eeprom2:camera_eeprom2@50 { compatible = "mediatek,camera_eeprom"; reg = <0x50>; status = "okay"; }; mtk_camera_eeprom3:camera_eeprom3@52 { compatible = "mediatek,camera_eeprom"; reg = <0x52>; status = "okay"; }; }; &i2c9 { mtk_camera_eeprom4:camera_eeprom4@51 { compatible = "mediatek,camera_eeprom"; reg = <0x51>; status = "okay"; }; }; /* CAMERA EEPROM end */ /* CAMERA AF */ &camera_af_hw_node { camaf_m1_pmic-supply = <&mt_pmic_vmc_ldo_reg>; camaf_m2_pmic-supply = <&mt_pmic_vmc_ldo_reg>; camaf_m3_pmic-supply = <&mt_pmic_vmc_ldo_reg>; status = "okay"; }; /* CAMERA AF end */