/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2019 MediaTek Inc. */ /dts-v1/; /plugin/; #include #include #include #include &mmc_fixed_3v3 { status = "okay"; regulator-name = "mmc_power"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; enable-active-high; regulator-always-on; }; &mmc_fixed_1v8_io { status = "okay"; regulator-name = "mmc_io"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; enable-active-high; regulator-always-on; }; &reserved_memory { }; /* chosen */ &chosen { atag,videolfb-fb_base_l = <0x7e020000>; atag,videolfb-fb_base_h = <0x0>; atag,videolfb-islcmfound = <1>; atag,videolfb-islcm_inited = <0>; atag,videolfb-fps= <6000>; atag,videolfb-vramSize= <0x1be0000>; atag,videolfb-lcmname= "nt35595_fhd_dsi_cmd_truly_nt50358_drv"; }; &mmc0 { status = "okay"; /* pinctrl-names = "default", "state_uhs"; */ /* pinctrl-0 = <&mmc0_pins_default>; */ /* pinctrl-1 = <&mmc0_pins_uhs>; */ bus-width = <8>; max-frequency = <5000000>; cap-mmc-highspeed; no-sdio; no-sd; vmmc-supply = <&mmc_fixed_3v3>; vqmmc-supply = <&mmc_fixed_1v8_io>; non-removable; }; &odm { led0:led@0 { compatible = "mediatek,red"; led_mode = <0>; data = <1>; pwm_config = <0 0 0 0 0>; }; led1:led@1 { compatible = "mediatek,green"; led_mode = <0>; data = <1>; pwm_config = <0 0 0 0 0>; }; led2:led@2 { compatible = "mediatek,blue"; led_mode = <0>; data = <1>; pwm_config = <0 0 0 0 0>; }; led3:led@3 { compatible = "mediatek,jogball-backlight"; led_mode = <0>; data = <1>; pwm_config = <0 0 0 0 0>; }; led4:led@4 { compatible = "mediatek,keyboard-backlight"; led_mode = <0>; data = <1>; pwm_config = <0 0 0 0 0>; }; led5:led@5 { compatible = "mediatek,button-backlight"; led_mode = <0>; data = <1>; pwm_config = <0 0 0 0 0>; }; led6:led@6 { compatible = "mediatek,lcd-backlight"; led_mode = <5>; data = <1>; pwm_config = <0 1 0 0 0>; }; vibrator0:vibrator@0 { compatible = "mediatek,vibrator"; vib_timer = <25>; vib_limit = <9>; vib_vol= <9>; }; usb_c_pinctrl:usb_c_pinctrl { compatible = "mediatek,usb_c_pinctrl"; }; }; /* DISPSYS GPIO standardization */ &pio { mtkfb_pins_lcd_bias_enp1: lcd_bias_enp1_gpio { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; mtkfb_pins_lcd_bias_enp0: lcd_bias_enp0_gpio { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; mtkfb_pins_lcd_bias_enn1: lcd_bias_enn1_gpio { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; mtkfb_pins_lcd_bias_enn0: lcd_bias_enn0_gpio { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; mtkfb_pins_lcm_rst_out1_gpio: lcm_rst_out1_gpio { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; mtkfb_pins_lcm_rst_out0_gpio: lcm_rst_out0_gpio { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; mtkfb_pins_lcm_dsi_te: lcm_dsi_te { pins_cmd_dat { pinmux = ; }; }; }; &mtkfb { pinctrl-names = "lcd_bias_enp1_gpio", "lcd_bias_enp0_gpio", "lcd_bias_enn1_gpio", "lcd_bias_enn0_gpio", "lcm_rst_out1_gpio", "lcm_rst_out0_gpio", "mode_te_te"; pinctrl-0 = <&mtkfb_pins_lcd_bias_enp1>; pinctrl-1 = <&mtkfb_pins_lcd_bias_enp0>; pinctrl-2 = <&mtkfb_pins_lcd_bias_enn1>; pinctrl-3 = <&mtkfb_pins_lcd_bias_enn0>; pinctrl-4 = <&mtkfb_pins_lcm_rst_out1_gpio>; pinctrl-5 = <&mtkfb_pins_lcm_rst_out0_gpio>; pinctrl-6 = <&mtkfb_pins_lcm_dsi_te>; status = "okay"; }; &dispsys_config { pinctrl-names = "lcm_rst_out1_gpio", "lcm_rst_out0_gpio", "mode_te_te"; pinctrl-0 = <&mtkfb_pins_lcm_rst_out1_gpio>; pinctrl-1 = <&mtkfb_pins_lcm_rst_out0_gpio>; pinctrl-2 = <&mtkfb_pins_lcm_dsi_te>; status = "okay"; }; /* DISPSYS GPIO standardization end */ /* accdet start */ &accdet { /* accdet micbias voltage: 0x09:2.85v 0x08:2.8v 0x07, * 2.7v;0x05,2.5v;0x02,1.9v */ accdet-mic-vol = <8>; /* accdet pwm_width, pwm_thresh, fall_delay, rise_delay * debounce0, debounce1, debounce3, debounce4 * eint pwm_width, eint pwm_thresh * eint deb(debounce0, debounce1, debounce2, debounce3), inv_debounce */ headset-mode-setting = <0x500 0x500 1 0x1f0 0x800 0x800 0x20 0x44 0x4 0x1 0x5 0x3 0x3 0x5 0xe>; accdet-plugout-debounce = <1>; /*1:ACC mode, 2:low cost without in bias, 6:low cost with in bias*/ accdet-mic-mode = <2>; /*0--MD_MAX--UP_MAX--DW_MAX*/ headset-three-key-threshold = <0 80 220 400>; headset-three-key-threshold-CDD = <0 121 192 600>; /*0--MD_MAX--VOICE_MAX--UP_MAX--DW_MAX*/ headset-four-key-threshold = <0 58 121 192 400>; /* select VTH to 2v and 500k, use internal resitance */ eint_use_ext_res = <0>; status = "okay"; }; /* accdet end */ /* IRTX GPIO Start */ &irtx_pwm { pinctrl-names = "irtx_gpio_led_default", "irtx_gpio_led_set"; pinctrl-0 = <&irtx_gpio_led_default>; pinctrl-1 = <&irtx_gpio_led_set>; status = "okay"; }; &pio { /* IRTX GPIO Settings -Start */ /* default: GPIO0, output, high */ irtx_gpio_led_default:irtx_gpio_led_def@gpio127 { pins_cmd_dat { pinmux = ; slew-rate = <1>; bias-disable; output-low; input-schmitt-enable = <0>; }; }; irtx_gpio_led_set:irtx_gpio_led_set@gpio127 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; }; /* IRTX GPIO Settings -End */ /* FINGERPRINT start */ &spi1 { #address-cells = <1>; #size-cells = <0>; tee-only; fingerprint@0 { compatible = "goodix,goodix-fp"; reg = <0>; spi-max-frequency = <8000000>; netlink-event = <30>; vfp-supply = <&mt_pmic_vfp_ldo_reg>; power-type = <1>; status = "okay"; }; }; &goodix_fp { pinctrl-names = "default", "reset_high", "reset_low", "eint_init"; pinctrl-0 = <&fingerprint_default>; pinctrl-1 = <&fingerprint_reset_high>; pinctrl-2 = <&fingerprint_reset_low>; pinctrl-3 = <&fingerprint_eint_init>; interrupt-parent = <&pio>; interrupts = <15 IRQ_TYPE_EDGE_RISING 15 0>; status = "okay"; }; &pio { fingerprint_default: state_default { }; fingerprint_reset_high: state_reset_high { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; fingerprint_reset_low: state_reset_low { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; fingerprint_eint_init: state_eint_init { pins_cmd_dat { pinmux = ; slew-rate = <0>; bias-pull-up = ; input-schmitt-enable; }; }; }; /* FINGERPRINT end */ &mt6360_pmu { mt6360,intr_gpio_num = <24>; /* direct defined GPIO num */ mt6360,intr_gpio = <&pio 24 0x0>; }; &mt6360_pmic { pwr_off_seq = [04 00 02 02]; }; &mt6360_typec { mt6360pd,intr_gpio_num = <25>; /* direct defined GPIO num */ mt6360pd,intr_gpio = <&pio 25 0x0>; }; /* USB SWITCH GPIO start */ &pio { usb_default: usb_default { }; gpio_redriver_c1_init: c1_init { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; gpio_redriver_c1_low: c1_low { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; gpio_redriver_c1_hiz: c1_highz { pins_cmd_dat { pinmux = ; slew-rate= <0>; bias-disable; }; }; gpio_redriver_c1_high: c1_high { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; gpio_redriver_c2_init: c2_init { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; gpio_redriver_c2_low: c2_low { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; gpio_redriver_c2_hiz: c2_highz { pins_cmd_dat { pinmux = ; slew-rate= <0>; bias-disable; }; }; gpio_redriver_c2_high: c2_high { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; gpio_u3_switch_sel1: u3_sw_sel1 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-low; }; }; gpio_u3_switch_sel2: u3_sw_sel2 { pins_cmd_dat { pinmux = ; slew-rate = <1>; output-high; }; }; gpio_u3_switch_enable: u3_sw_en { }; gpio_u3_switch_disable: u3_sw_dis { }; }; &usb_c_pinctrl { pinctrl-names = "usb_default", "redrv_c1_init", "redrv_c1_low", "redrv_c1_hiz", "redrv_c1_high", "redrv_c2_init", "redrv_c2_low", "redrv_c2_hiz", "redrv_c2_high", "switch_sel1", "switch_sel2", "switch_enable", "switch_disable"; pinctrl-0 = <&usb_default>; pinctrl-1 = <&gpio_redriver_c1_init>; pinctrl-2 = <&gpio_redriver_c1_low>; pinctrl-3 = <&gpio_redriver_c1_hiz>; pinctrl-4 = <&gpio_redriver_c1_high>; pinctrl-5 = <&gpio_redriver_c2_init>; pinctrl-6 = <&gpio_redriver_c2_low>; pinctrl-7 = <&gpio_redriver_c2_hiz>; pinctrl-8 = <&gpio_redriver_c2_high>; pinctrl-9 = <&gpio_u3_switch_sel1>; pinctrl-10 = <&gpio_u3_switch_sel2>; pinctrl-11 = <&gpio_u3_switch_enable>; pinctrl-12 = <&gpio_u3_switch_disable>; status = "okay"; usb_switch-data { en_pin_num = <0>; en_pin_val = <0>; sel_pin_num = <111>; sel_pin_val = <1>; c1_pin_num = <113>; c1_pin_val = <2>; c2_pin_num = <112>; c2_pin_val = <1>; }; }; /* USB SWITCH GPIO end */ /* GPS GPIO standardization start */ &pio { gps_pins_default: gps_default { }; gps_l1_lna_pins_ol: gps_l1_lna@0 { pins_cmd_dat { pinmux = ; output-low; }; }; gps_l1_lna_pins_dsp_ctrl: gps_l1_lna@1 { pins_cmd_dat { pinmux = ; }; }; gps_l1_lna_pins_oh: gps_l1_lna@2 { pins_cmd_dat { pinmux = ; output-high; }; }; gps_l5_lna_pins_ol: gps_l5_lna@0 { pins_cmd_dat { pinmux = ; output-low; }; }; gps_l5_lna_pins_dsp_ctrl: gps_l5_lna@1 { pins_cmd_dat { pinmux = ; }; }; gps_l5_lna_pins_oh: gps_l5_lna@2 { pins_cmd_dat { pinmux = ; output-high; }; }; }; &gps { pinctrl-names = "default", "gps_l1_lna_disable", "gps_l1_lna_dsp_ctrl", "gps_l1_lna_enable", "gps_l5_lna_disable", "gps_l5_lna_dsp_ctrl", "gps_l5_lna_enable"; pinctrl-0 = <&gps_pins_default>; pinctrl-1 = <&gps_l1_lna_pins_ol>; pinctrl-2 = <&gps_l1_lna_pins_dsp_ctrl>; pinctrl-3 = <&gps_l1_lna_pins_oh>; pinctrl-4 = <&gps_l5_lna_pins_ol>; pinctrl-5 = <&gps_l5_lna_pins_dsp_ctrl>; pinctrl-6 = <&gps_l5_lna_pins_oh>; status = "okay"; }; /* GPS GPIO standardization end */ &dsi0 { status = "okay"; #address-cells = <1>; #size-cells = <0>; panel@0 { compatible = "truly,td4330,cmd"; reg = <0>; pm-enable-gpios = <&pio 41 0>; reset-gpios = <&pio 42 0>; bias-gpios = <&pio 28 0>, <&pio 29 0>; pinctrl-names = "default"; port { panel_in: endpoint { remote-endpoint = <&dsi_out>; }; }; }; ports { port { dsi_out: endpoint { remote-endpoint = <&panel_in>; }; }; }; }; /* CAMERA specify sensor */ &kd_camera_hw1 { cam2_enable_sensor = "imx350_mipi_raw imx386_mipi_mono imx319_mipi_raw"; }; /* CAMERA specify sensor end */ #include "mediatek/cust_mt6885_touch_1080x2280.dtsi" #include "mediatek/cust_mt6885_camera.dtsi" #include /*End of this file, DO NOT ADD ANYTHING HERE*/