diff --git a/arch/arm64/boot/dts/vendor/qcom/Makefile b/arch/arm64/boot/dts/vendor/qcom/Makefile index 103514543fcd..dc8747da7380 100644 --- a/arch/arm64/boot/dts/vendor/qcom/Makefile +++ b/arch/arm64/boot/dts/vendor/qcom/Makefile @@ -240,6 +240,7 @@ dtbo-$(CONFIG_ARCH_YUPIK) += \ lisa-sm7325-overlay.dtbo \ mona-sm7325-overlay.dtbo \ taoyao-sm7325-overlay.dtbo \ + zijin-sm7325-overlay.dtbo \ yupik-rumi-overlay.dtbo \ yupik-idp-overlay.dtbo \ yupik-atp-overlay.dtbo \ @@ -276,6 +277,7 @@ dtbo-$(CONFIG_ARCH_YUPIK) += \ lisa-sm7325-overlay.dtbo-base := yupik.dtb mona-sm7325-overlay.dtbo-base := yupik.dtb taoyao-sm7325-overlay.dtbo-base := yupik.dtb +zijin-sm7325-overlay.dtbo-base := yupik.dtb yupik-rumi-overlay.dtbo-base := yupik.dtb yupik-idp-overlay.dtbo-base := yupik.dtb yupik-atp-overlay.dtbo-base := yupik.dtb diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/zijin-sm7325-camera-sensor.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/zijin-sm7325-camera-sensor.dtsi new file mode 100644 index 000000000000..f1c46bd288bd --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/zijin-sm7325-camera-sensor.dtsi @@ -0,0 +1,717 @@ +#include + +&PM8008I { + vdd_l1_l2-supply = <&S8B>; + vdd_l3_l4-supply = <&BOB>; + vdd_l5-supply = <&S1B>; + vdd_l6-supply = <&S1B>; + vdd_l7-supply = <&BOB>; +}; + +&L2I { + regulator-min-microvolt = <950000>; + regulator-max-microvolt = <1200000>; + qcom,min-dropout-voltage = <24000>; +}; +&L6I { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2900000>; +}; + +&cci0_active { + config { + pins = "gpio69","gpio70"; + bias-pull-up; /* PULL UP*/ + drive-strength = <4>; /* 4 MA */ + }; +}; + +&cci1_active { + config { + pins = "gpio71","gpio72"; + bias-pull-up; /* PULL UP*/ + drive-strength = <4>; /* 4 MA */ + }; +}; + +&cci2_active { + config { + pins = "gpio73","gpio74"; + bias-pull-up; /* PULL UP*/ + drive-strength = <4>; /* 4 MA */ + }; +}; + +&cci3_active { + config { + pins = "gpio75","gpio76"; + bias-pull-up; /* PULL UP*/ + drive-strength = <4>; /* 4 MA */ + }; +}; + +&pm8350c_flash0 { + qcom,max-current-ma = <720>; +}; +&pm8350c_flash1 { + qcom,max-current-ma = <300>; +}; +&pm8350c_flash2 { + qcom,max-current-ma = <300>; +}; + +&pm8350c_torch1 { + qcom,max-current-ma = <300>; +}; +&pm8350c_torch2 { + qcom,max-current-ma = <300>; +}; + +&pm8350c_switch0 { + qcom,led-mask = <1>; /* Channels 1*/ +}; + +&pm8350c_switch1 { + qcom,led-mask = <6>; /* Channels 2&3*/ +}; + +&pm8350c_switch2 { + qcom,led-mask = <2>; /* Channels 2 */ + qcom,symmetry-en; +}; + +&pm8350c_flash { + pm8350c_switch3: qcom,led_switch_3 { + label = "switch"; + qcom,led-name = "led:switch_3"; + qcom,default-led-trigger = "switch3_trigger"; + qcom,led-mask = <4>; /* Channels 3 */ + qcom,symmetry-en; + }; +}; +&soc { + led_flash_wide: qcom,camera-flash@0 { + cell-index = <0>; + compatible = "qcom,camera-flash"; + flash-source = <&pm8350c_flash0>; + torch-source = <&pm8350c_torch0>; + switch-source = <&pm8350c_switch0>; + status = "ok"; + }; + + led_flash_ultra: qcom,camera-flash@1 { + cell-index = <1>; + compatible = "qcom,camera-flash"; + flash-source = <&pm8350c_flash0>; + torch-source = <&pm8350c_torch0>; + switch-source = <&pm8350c_switch0>; + status = "ok"; + }; + + led_flash_macro: qcom,camera-flash@2 { + cell-index = <2>; + compatible = "qcom,camera-flash"; + flash-source = <&pm8350c_flash0>; + torch-source = <&pm8350c_torch0>; + switch-source = <&pm8350c_switch0>; + status = "ok"; + }; + + led_flash_front: qcom,camera-flash@3 { + cell-index = <3>; + compatible = "qcom,camera-flash"; + flash-source = <&pm8350c_flash1 &pm8350c_flash2>; + torch-source = <&pm8350c_torch1 &pm8350c_torch2>; + switch-source = <&pm8350c_switch1>; + status = "ok"; + }; + + camera_wide_vana_ldo: gpio-regulator@0 { + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "camera_wide_vana_ldo"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <135>; + enable-active-high; + gpio = <&tlmm 106 0>; + vin-supply = <&BOB>; + }; + + camera_wide_vdig_ldo: gpio-regulator@1 { + compatible = "regulator-fixed"; + reg = <0x01 0x00>; + regulator-name = "camera_wide_vdig_ldo"; + regulator-min-microvolt = <1056000>; + regulator-max-microvolt = <1056000>; + regulator-enable-ramp-delay = <135>; + enable-active-high; + gpio = <&tlmm 108 0>; + vin-supply = <&S8B>; + }; + + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + }; +}; + +&cam_cci0 { + actuator_wide: qcom,actuator0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <1>; + cam_vaf-supply = <&L9C>; + cam_vio-supply = <&L5I>; + regulator-names = "cam_vaf", "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000 1800000>; + rgltr-max-voltage = <2800000 1800000>; + rgltr-load-current = <300000 10000>; + status = "ok"; + }; + actuator_front: qcom,actuator1 { + cell-index = <1>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vaf-supply = <&L6C>; + cam_vio-supply = <&L5I>; + regulator-names = "cam_vaf", "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000 1800000>; + rgltr-max-voltage = <2800000 1800000>; + rgltr-load-current = <300000 10000>; + status = "ok"; + }; + + eeprom_wide: qcom,eeprom0 { + cell-index = <0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L5I>; + cam_vdig-supply = <&camera_wide_vdig_ldo>; + cam_vana-supply = <&camera_wide_vana_ldo>; + + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_bob-supply = <&BOB>; + regulator-names = "cam_vio", "cam_vdig", "cam_vana", + "cam_clk", "cam_bob"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1056000 2800000 0 3200000>; + rgltr-max-voltage = <1800000 1056000 2800000 0 3960000>; + rgltr-load-current = <4800 120000 970000 0 2000000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_active_wide>; + pinctrl-1 = <&cam_sensor_suspend_wide>; + gpios = <&tlmm 65 0>, + <&tlmm 21 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + eeprom_front: qcom,eeprom1 { + cell-index = <1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L5I>; + cam_vdig-supply = <&L1I>; + cam_vana-supply = <&L3I>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_bob-supply = <&BOB>; + regulator-names = "cam_vio", "cam_vdig", "cam_vana", + "cam_clk", "cam_bob"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1056000 2800000 0 3200000>; + rgltr-max-voltage = <1800000 1056000 2800000 0 3960000>; + rgltr-load-current = <10000 140000 280000 0 2000000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_active_front + &cam_front_mclk_active>; + pinctrl-1 = <&cam_sensor_suspend_front + &cam_front_mclk_suspend>; + gpios = <&tlmm 64 0>, + <&tlmm 20 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + cci-master = <0>; + clocks = <&camcc CAM_CC_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + + // wide S5KGW3 64M (AVDD 2.8V ) (VIO 1.8) (DVDD 1.05 ) + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_wide>; + actuator-src = <&actuator_wide>; + led-flash-src = <&led_flash_wide>; + + cam_vio-supply = <&L5I>; + cam_vdig-supply = <&camera_wide_vdig_ldo>; + cam_vana-supply = <&camera_wide_vana_ldo>; + cam_vaf_supply = <&L9C>; + + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_bob-supply = <&BOB>; + regulator-names = "cam_vio", "cam_vdig", "cam_vana", "cam_vaf", "cam_clk", "cam_bob"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1056000 2800000 2800000 0 3200000>; + rgltr-max-voltage = <1800000 1056000 2800000 2800000 0 3960000>; + rgltr-load-current = <4800 120000 970000 106000 0 2000000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_active_wide + &cam_wide_mclk_active>; + pinctrl-1 = <&cam_sensor_suspend_wide + &cam_wide_mclk_suspend>; + gpios = <&tlmm 65 0>, + <&tlmm 21 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + // Front imx616 (AVDD 2.9V ) (VIO 1.8) (DVDD 1.05 ) + qcom,cam-sensor1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + actuator-src = <&actuator_front>; + led-flash-src = <&led_flash_front>; + cam_vio-supply = <&L5I>; + cam_vdig-supply = <&L1I>; + cam_vana-supply = <&L3I>; + cam_vaf_supply = <&L6C>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_bob-supply = <&BOB>; + regulator-names = "cam_vio", "cam_vdig", "cam_vana", "cam_vaf" + , "cam_clk", "cam_bob"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1056000 2800000 2800000 0 3200000>; + rgltr-max-voltage = <1800000 1056000 2800000 2800000 0 3960000>; + rgltr-load-current = <10000 140000 970000 1060000 0 2000000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_active_front + &cam_front_mclk_active>; + pinctrl-1 = <&cam_sensor_suspend_front + &cam_front_mclk_suspend>; + gpios = <&tlmm 64 0>, + <&tlmm 20 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + cci-master = <0>; + clocks = <&camcc CAM_CC_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + +}; + +&cam_cci1 { + eeprom_ultra: qcom,eeprom3 { + cell-index = <3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L5I>; + cam_vdig-supply = <&L2I>; + cam_vana-supply = <&L4I>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_bob-supply = <&BOB>; + regulator-names = "cam_vio", "cam_vdig", "cam_vana" + ,"cam_clk", "cam_bob"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1200000 2704000 0 3200000>; + rgltr-max-voltage = <1800000 1200000 2704000 0 3960000>; + rgltr-load-current = <10000 140000 180000 0 2000000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_active_ultra + &cam_ultra_mclk_active>; + pinctrl-1 = <&cam_sensor_suspend_ultra + &cam_ultra_mclk_suspend>; + gpios = <&tlmm 67 0>, + <&tlmm 78 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + eeprom_macro: qcom,eeprom2 { + cell-index = <2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L6I>; + cam_vdig-supply = <&L5I>; + cam_vana-supply = <&L7I>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_bob-supply = <&BOB>; + regulator-names = "cam_vio", "cam_vdig", "cam_vana" + , "cam_clk", "cam_bob"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000 2800000 0 3200000>; + rgltr-max-voltage = <1800000 1800000 2800000 0 3960000>; + rgltr-load-current = <10000 1800000 180000 0 2000000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_active_macro + &cam_macro_mclk_active>; + pinctrl-1 = <&cam_sensor_suspend_macro + &cam_macro_mclk_suspend>; + gpios = <&tlmm 66 0>, + <&tlmm 77 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2"; + cci-master = <0>; + clocks = <&camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + // Ultra IMX355 (AVDD 2.7V ) (VIO 1.8) (DVDD 1.2 ) + qcom,cam-sensor3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_ultra>; + led-flash-src = <&led_flash_ultra>; + cam_vio-supply = <&L5I>; + cam_vdig-supply = <&L2I>; + cam_vana-supply = <&L4I>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_bob-supply = <&BOB>; + regulator-names = "cam_vio", "cam_vdig", "cam_vana" + ,"cam_clk", "cam_bob"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1200000 2704000 0 3200000>; + rgltr-max-voltage = <1800000 1200000 2704000 0 3960000>; + rgltr-load-current = <10000 140000 180000 0 2000000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_active_ultra + &cam_ultra_mclk_active>; + pinctrl-1 = <&cam_sensor_suspend_ultra + &cam_ultra_mclk_suspend>; + gpios = <&tlmm 67 0>, + <&tlmm 78 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + // MACRO GC02M1 (AVDD 2.8V ) (VIO 1.8 ) + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_macro>; + led-flash-src = <&led_flash_macro>; + cam_vio-supply = <&L6I>; + cam_vdig-supply = <&L5I>; + cam_vana-supply = <&L7I>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_bob-supply = <&BOB>; + regulator-names = "cam_vio", "cam_vdig", "cam_vana", "cam_clk", "cam_bob"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000 2800000 0 3200000>; + rgltr-max-voltage = <1800000 1800000 2800000 0 3960000>; + rgltr-load-current = <140000 140000 180000 0 2000000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_active_macro + &cam_macro_mclk_active>; + pinctrl-1 = <&cam_sensor_suspend_macro + &cam_macro_mclk_suspend>; + gpios = <&tlmm 66 0>, + <&tlmm 77 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2"; + cci-master = <0>; + clocks = <&camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; +}; + +&tlmm { + cam_wide_mclk_active: cam_wide_mclk_active { + mux { + pins = "gpio65"; + function = "cam_mclk"; + }; + + config { + pins = "gpio65"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_wide_mclk_suspend: cam_wide_mclk_suspend { + mux { + pins = "gpio65"; + function = "cam_mclk"; + }; + + config { + pins = "gpio65"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_sensor_active_wide: cam_sensor_active_wide { + /*RESET AVDD DVDD*/ + mux { + pins = "gpio21", "gpio106", "gpio108"; + function = "gpio"; + }; + + config { + pins = "gpio21", "gpio106", "gpio108"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_suspend_wide: cam_sensor_suspend_wide { + mux { + pins = "gpio21", "gpio106", "gpio108"; + function = "gpio"; + }; + + config { + pins = "gpio21", "gpio106", "gpio108"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_front_mclk_active: cam_front_mclk_active { + mux { + pins = "gpio64"; + function = "cam_mclk"; + }; + + config { + pins = "gpio64"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_front_mclk_suspend: cam_front_mclk_suspend { + mux { + pins = "gpio64"; + function = "cam_mclk"; + }; + + config { + pins = "gpio64"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_sensor_active_front: cam_sensor_active_front { + mux { + pins = "gpio20"; + function = "gpio"; + }; + + config { + pins = "gpio20"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_suspend_front: cam_sensor_suspend_front { + mux { + pins = "gpio20"; + function = "gpio"; + }; + + config { + pins = "gpio20"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_ultra_mclk_active: cam_ultra_mclk_active { + mux { + pins = "gpio67"; + function = "cam_mclk"; + }; + + config { + pins = "gpio67"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_ultra_mclk_suspend: cam_ultra_mclk_suspend { + mux { + pins = "gpio67"; + function = "cam_mclk"; + }; + + config { + pins = "gpio67"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_sensor_active_ultra: cam_sensor_active_ultra { + /*RESET */ + mux { + pins = "gpio78"; + function = "gpio"; + }; + + config { + pins = "gpio78"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_suspend_ultra: cam_sensor_suspend_ultra { + mux { + pins = "gpio78"; + function = "gpio"; + }; + + config { + pins = "gpio78"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_macro_mclk_active: cam_macro_mclk_active { + mux { + pins = "gpio66"; + function = "cam_mclk"; + }; + + config { + pins = "gpio66"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_macro_mclk_suspend: cam_macro_mclk_suspend { + mux { + pins = "gpio66"; + function = "cam_mclk"; + }; + + config { + pins = "gpio66"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_active_macro: cam_sensor_active_macro { + /*RESET */ + mux { + pins = "gpio77"; + function = "gpio"; + }; + + config { + pins = "gpio77"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_suspend_macro: cam_sensor_suspend_macro { + mux { + pins = "gpio77"; + function = "gpio"; + }; + + config { + pins = "gpio77"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/zijin-audio-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/zijin-audio-overlay.dtsi new file mode 100644 index 000000000000..25c1b174e41d --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/zijin-audio-overlay.dtsi @@ -0,0 +1,147 @@ +#include "yupik-audio-overlay.dtsi" + +&yupik_snd { + qcom,model = "lahaina-yupikidp-snd-card"; + qcom,msm-mi2s-master = <1>, <1>, <1>, <1>, <1>, <1>; + qcom,wcn-bt = <1>; + qcom,mi2s-audio-intf = <1>; + qcom,auxpcm-audio-intf = <1>; + qcom,ext-disp-audio-rx = <0>; + qcom,afe-rxtx-lb = <0>; + qcom,audio-routing = + "AMIC1", "Analog Mic1", + "Analog Mic1", "MIC BIAS1", + "AMIC2", "Analog Mic2", + "Analog Mic2", "MIC BIAS2", + "AMIC3", "Analog Mic3", + "Analog Mic3", "MIC BIAS3", + "AMIC4", "Analog Mic4", + "Analog Mic4", "MIC BIAS3", + "AMIC5", "Analog Mic5", + "Analog Mic5", "MIC BIAS4", + "TX DMIC0", "Digital Mic0", + "Digital Mic0", "MIC BIAS3", + "TX DMIC1", "Digital Mic1", + "Digital Mic1", "MIC BIAS3", + "TX DMIC2", "Digital Mic2", + "Digital Mic2", "MIC BIAS1", + "TX DMIC3", "Digital Mic3", + "Digital Mic3", "MIC BIAS1", + "TX DMIC4", "Digital Mic4", + "Digital Mic4", "MIC BIAS4", + "TX DMIC5", "Digital Mic5", + "Digital Mic5", "MIC BIAS4", + "IN1_HPHL", "HPHL_OUT", + "IN2_HPHR", "HPHR_OUT", + "IN3_AUX", "AUX_OUT", + "RX_TX DEC0_INP", "TX DEC0 MUX", + "RX_TX DEC1_INP", "TX DEC1 MUX", + "RX_TX DEC2_INP", "TX DEC2 MUX", + "RX_TX DEC3_INP", "TX DEC3 MUX", + "TX SWR_INPUT", "WCD_TX_OUTPUT", + "VA SWR_INPUT", "VA_SWR_CLK", + "VA SWR_INPUT", "WCD_TX_OUTPUT", + "VA_AIF1 CAP", "VA_SWR_CLK", + "VA_AIF2 CAP", "VA_SWR_CLK", + "VA_AIF3 CAP", "VA_SWR_CLK"; + qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-gnd-swh = <0>; + qcom,wsa-max-devs = <0>; + qcom,swr-dmic-max-devs = <0>; + qcom,pri-mi2s-gpios = <&cdc_pri_tdm_gpios>; + qcom,msm-mbhc-usbc-audio-supported = <1>; +// qcom,uart-audio-sw-gpio = <&sbu_uart_en>; + asoc-codec = <&stub_codec>, <&bolero>, + <&wcd938x_codec>, <&swr_haptics>, + <&wsa883x_0222>, + <&ext_disp_audio_codec>; + asoc-codec-names = "msm-stub-codec.1", "bolero_codec", + "wcd938x_codec", "swr-haptics", + "wsa-codec2", + "msm-ext-disp-audio-codec-rx"; + qcom,msm_audio_ssr_devs = <&audio_apr>, <&q6core>, <&lpi_tlmm>, + <&bolero>; +}; + +&q6core { + cdc_pri_tdm_gpios: pri_tdm_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&pri_tdm_clk_active &pri_tdm_sync_active + &pri_tdm_din_active &pri_tdm_dout_active>; + pinctrl-1 = <&pri_tdm_clk_sleep &pri_tdm_sync_sleep + &pri_tdm_din_sleep &pri_tdm_dout_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; +}; + +&swr2 { + qcom,swr-phy-dev-addr = <0x0D 0x01170223>, + <0x08 0x58350223>, + <0x08 0x58350222>, + <0x08 0x58350221>, + <0x08 0x58350220>; +}; + +&wcd938x_rx_slave { + status = "okay"; +}; + +&wcd938x_tx_slave { + status = "okay"; +}; + +&wcd938x_codec { + status = "okay"; + qcom,cdc-micbias1-mv = <2750>; + qcom,cdc-micbias2-mv = <2750>; + qcom,cdc-micbias3-mv = <2750>; + qcom,cdc-micbias4-mv = <2750>; +}; + +&wcd937x_codec { + status = "disabled"; +}; + +&wcd937x_rx_slave { + status = "disabled"; +}; + +&wcd937x_tx_slave { + status = "disabled"; +}; + +&wsa_swr_gpios { + status = "disabled"; +}; + +&wsa_spkr_en1 { + status = "disabled"; +}; + +&wsa_spkr_en2 { + status = "disabled"; +}; + +&bolero { + qcom,num-macros = <3>; +}; + +&wsa_macro { + compatible = "qcom,wsa-macro"; + status = "disabled"; +}; + +/* +&soc { + sbu_uart_en: msm_cdc_pinctrl@9 { + compatible = "qcom,msm-cdc-pinctrl"; + status = "disabled"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&sbu_uart_en_active>; + pinctrl-1 = <&sbu_uart_en_idle>; + #gpio-cells = <0>; + }; +}; + */ diff --git a/arch/arm64/boot/dts/vendor/qcom/zijin-pinctrl.dtsi b/arch/arm64/boot/dts/vendor/qcom/zijin-pinctrl.dtsi new file mode 100644 index 000000000000..d23a3105a183 --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/zijin-pinctrl.dtsi @@ -0,0 +1,127 @@ +/*for mona pinctrl */ +&tlmm { +/* + sbu_uart_en_ctrl { + sbu_uart_en_idle: uart_audio_en_idle { + mux { + pins = "gpio6"; + function = "gpio"; + }; + config { + pins = "gpio6"; + drive-strength = <2>; + bias-pull-down; + output-low; + }; + }; + + sbu_uart_en_active: uart_audio_en_active { + mux { + pins = "gpio6"; + function = "gpio"; + }; + config { + pins = "gpio9"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; + }; +*/ + + top_smartpa_int_active: top_smartpa_int_active { + /* active state */ + mux { + /* GPIO 102 Interrupt */ + pins = "gpio102"; + function = "gpio"; + }; + + config { + pins = "gpio102"; + drive-strength = <2>; /* 2 MA */ + bias-pull-up; + input-enable; + }; + }; + + top_smartpa_int_suspend: top_smartpa_int_suspend { + /* sleep state */ + mux { + /* GPIO 102 Interrupt */ + pins = "gpio102"; + function = "gpio"; + }; + + config { + pins = "gpio102"; + drive-strength = <2>; /* 2 MA */ + bias-pull-up; + input-enable; + }; + }; + + bot_smartpa_int_active: bot_smartpa_int_active { + /* active state */ + mux { + /* GPIO 24 Interrupt */ + pins = "gpio24"; + function = "gpio"; + }; + + config { + pins = "gpio24"; + drive-strength = <2>; /* 2 MA */ + bias-pull-up; + input-enable; + }; + }; + + bot_smartpa_int_suspend: bot_smartpa_int_suspend { + /* sleep state */ + mux { + /* GPIO 24 Interrupt */ + pins = "gpio24"; + function = "gpio"; + }; + + config { + pins = "gpio24"; + drive-strength = <2>; /* 2 MA */ + bias-pull-up; + input-enable; + }; + }; + + md_mode_ctrl_irq { + ant3_ctrl_irq: ant3_ctrl_irq { + mux { + pins = "gpio129"; + function = "gpio"; + }; + + config { + pins = "gpio129"; + drive-strength = <2>; + bias-disable; + input-enable; + }; + }; + + ant5_ctrl_irq: ant5_ctrl_irq { + mux { + pins = "gpio136"; + function = "gpio"; + }; + + config { + pins = "gpio136"; + drive-strength = <2>; + bias-disable; + input-enable; + }; + }; + }; + +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/zijin-sm7325-overlay.dts b/arch/arm64/boot/dts/vendor/qcom/zijin-sm7325-overlay.dts new file mode 100644 index 000000000000..9b3968c5eeff --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/zijin-sm7325-overlay.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +#include "zijin-sm7325.dtsi" + +/ { + model = "zijin based Qualcomm Technologies, Inc. SM7325"; + compatible = "qcom,yupik-idp", "qcom,yupik", "qcom,idp"; + qcom,msm-id = <475 0x10000>, <515 0x10000>; + qcom,board-id = <0x1000B 0>; + xiaomi,board-id = <0xC 0>; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/zijin-sm7325.dtsi b/arch/arm64/boot/dts/vendor/qcom/zijin-sm7325.dtsi new file mode 100644 index 000000000000..77a6656140bc --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/zijin-sm7325.dtsi @@ -0,0 +1,542 @@ +/* +this file is for attribution only of mona +And public attribution of xiaomi platforms +*/ + +#include "zijin-pinctrl.dtsi" +#include "xiaomi-sm7325-common.dtsi" +#include "camera/zijin-sm7325-camera-sensor.dtsi" +#include "zijin-audio-overlay.dtsi" + +&sde_dsi { + dvdd-supply = <&L16B>; +}; + +&pm8350c_rgb { + status = "disabled"; +}; + +&qupv3_se3_i2c { + status = "ok"; + + /* TOP Smart PA */ + aw882xx_smartpa@34 { + compatible = "awinic,aw882xx_smartpa"; + reg = <0x34>; + reset-gpio = <&tlmm 2 0>; + irq-gpio = <&tlmm 102 0>; + spk-sw-gpio = <&tlmm 101 0>; + interrupt-parent = <&tlmm>; + interrupts = <102 0>; + interrupt-names = "smartpa_irq"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&top_smartpa_int_active>; + pinctrl-1 = <&top_smartpa_int_suspend>; + monitor-flag = <1>; + dc-flag = <0>; + aw-tx-topo-id = <0x1000ff01>; + aw-rx-topo-id = <0x1000ff00>; + aw-tx-port-id = <0x9001>; + aw-rx-port-id = <0x9000>; + aw-re-min = <4000>; + aw-re-max= <9000>; + aw-cali-mode = "aw_class"; + sound-channel = <0>; + status = "ok"; + }; + + /* BOT Smart PA */ + aw882xx_smartpa@35 { + compatible = "awinic,aw882xx_smartpa"; + reg = <0x35>; + reset-gpio = <&tlmm 6 0>; + irq-gpio = <&tlmm 24 0>; + interrupt-parent = <&tlmm>; + interrupts = <24 0>; + interrupt-names = "smartpa_irq"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&bot_smartpa_int_active>; + pinctrl-1 = <&bot_smartpa_int_suspend>; + monitor-flag = <1>; + dc-flag = <0>; + aw-tx-topo-id = <0x1000ff01>; + aw-rx-topo-id = <0x1000ff00>; + aw-tx-port-id = <0x9001>; + aw-rx-port-id = <0x9000>; + aw-re-min = <4000>; + aw-re-max= <9000>; + aw-cali-mode = "aw_class"; + sound-channel = <1>; + status = "ok"; + }; +}; + +&qupv3_se15_spi { + status = "ok"; + ir-spi@0 { + compatible = "ir-spi"; + reg = <0>; + spi-max-frequency = <19200000>; + status = "ok"; + }; +}; + +&qupv3_se13_spi { + status = "ok"; + qcom,rt; + pinctrl-1 = <&qupv3_se13_spi_sleep &qupv3_se13_spi_sleep_cs>; + xiaomi_ts_touch@0 { + compatible = "xiaomi,ts-spi"; + reg = <0>; + spi-max-frequency = <20000000>; + interrupt-parent = <&tlmm>; + interrupts = <81 0x2808>; + synaptics,avdd-name = "avdd"; + avdd-supply = <&L7C>; + synaptics,iovdd-name = "iovdd"; + iovdd-supply = <&L2C>; + /*synaptics,bus-reg-name = "vdd";*/ + /*synaptics,pwr-reg-name = "avdd";*/ + synaptics,irq-gpio = <&tlmm 81 0x2808>; + synaptics,reset-gpio = <&tlmm 105 0x00>; + synaptics,irq-on-state = <0>; + synaptics,spi-mode = <0>; + synaptics,byte-delay-us = <0>; + synaptics,block-delay-us = <0>; + synaptics,power-delay-ms = <50>; + synaptics,reset-delay-ms = <200>; + synaptics,ubl-max-freq = <5000000>; + synaptics,ubl-byte-delay-us = <20>; + pinctrl-names = "default"; + pinctrl-0 = <&syna_tcm_eint_init &syna_tcm_rst_init>; + synaptics,game-mode-array = + <1 0 0 0 0>; /* MAX MIN DEF SET GET */ + synaptics,active-mode-array = + <1 0 0 0 0>; /* MAX MIN DEF SET GET */ + synaptics,up-threshold-array = + <3 0 3 3 3>; /* MAX MIN DEF SET GET */ + synaptics,tolerance-array = + <3 0 3 3 3>; /* MAX MIN DEF SET GET */ + synaptics,edge-filter-array = + <3 0 2 2 2>; /* MAX MIN DEF SET GET */ + synaptics,panel-orien-array = + <3 0 0 0 0>; /* MAX MIN DEF SET GET */ + synaptics,report-rate-array = + <3 0 0 0 0>; /* MAX MIN DEF SET GET */ + synaptics,cornerfilter-area-step-array = <0 100 170 250>; /* step 0 to step 3 */ + synaptics,cornerzone-filter-hor1-array = + /* B0:Type, B1:pos, B2:x0, B3:y0, B4:x1, B5:y1, B6:reserved, B7: reserved */ + <0 0 0 0 170 170 0 0>, + <0 1 0 0 0 0 0 0>, + <0 2 0 2229 170 2399 0 0>, + <0 3 0 0 0 0 0 0>; + synaptics,cornerzone-filter-hor2-array = + /* B0:Type, B1:pos, B2:x0, B3:y0, B4:x1, B5:y1, B6:reserved, B7: reserved */ + <0 0 0 0 0 0 0 0>, + <0 1 909 0 1079 170 0 0>, + <0 2 0 0 0 0 0 0>, + <0 3 909 2229 1079 2399 0 0>; + synaptics,cornerzone-filter-ver-array = + /* B0:Type, B1:pos, B2:x0, B3:y0, B4:x1, B5:y1, B6:reserved, B7: reserved */ + <0 0 0 0 0 0 0 0>, + <0 1 0 0 0 0 0 0>, + <0 2 0 2099 150 2399 0 0>, + <0 3 929 2099 1079 2399 0 0>; + synaptics,deadzone-filter-hor-array = + /* B0:Type, B1:pos, B2:x0, B3:y0, B4:x1, B5:y1, B6:reserved, B7: reserved */ + <2 0 0 0 1079 5 0 0>, + <2 1 0 2394 1079 2399 0 0>, + <2 2 0 0 0 0 0 0>, + <2 3 0 0 0 0 0 0>; + synaptics,deadzone-filter-ver-array = + /* B0:Type, B1:pos, B2:x0, B3:y0, B4:x1, B5:y1, B6:reserved, B7: reserved */ + <2 0 0 0 0 0 0 0>, + <2 1 0 0 0 0 0 0>, + <2 2 0 0 5 2399 0 0>, + <2 3 1074 0 1079 2399 0 0>; + synaptics,edgezone-filter-hor-array = + /* B0:Type, B1:pos, B2:x0, B3:y0, B4:x1, B5:y1, B6:reserved, B7: reserved */ + <1 0 0 0 1079 40 0 0>, + <1 1 0 2359 1079 2399 0 0>, + <1 2 0 0 40 2399 0 0>, + <1 3 1039 0 1079 2399 0 0>; + synaptics,edgezone-filter-ver-array = + /* B0:Type, B1:pos, B2:x0, B3:y0, B4:x1, B5:y1, B6:reserved, B7: reserved */ + <1 0 0 0 0 0 0 0>, + <1 1 0 0 0 0 0 0>, + <1 2 0 0 40 2399 0 0>, + <1 3 1039 0 1079 2399 0 0>; + synaptics,panel-display-resolution = <1079 2399>; /* X Y*/ + }; +}; + +&tlmm { + syna_tcm_eint_init: syna_tcm_eint_init { + mux { + /* GPIO 81 Interrupt */ + pins = "gpio81"; + function = "gpio"; + }; + + config { + pins = "gpio81"; + bias-disable; + input-enable; + }; + }; + + syna_tcm_rst_init: syna_tcm_rst_init { + mux { + /* GPIO 105 Interrupt */ + pins = "gpio105"; + function = "gpio"; + }; + + config { + pins = "gpio105"; + bias-disable; + output-low; + }; + }; + + qupv3_se13_spi_sleep: qupv3_se13_spi_sleep { + mux { + pins = "gpio52", "gpio53", + "gpio54"; + function = "gpio"; + }; + + config { + pins = "gpio52", "gpio53", + "gpio54"; + drive-strength = <6>; + bias-disable; + }; + }; + + qupv3_se13_spi_sleep_cs: qupv3_se13_spi_sleep_cs { + mux { + pins = "gpio55"; + function = "gpio"; + }; + + config { + pins = "gpio55"; + drive-strength = <6>; + bias-disable; + output-high; + }; + }; +}; + +&soc { + fingerprint_goodix { + compatible = "goodix,fingerprint"; + l11c_vdd-supply = <&L3C>; + goodix,gpio-reset = <&tlmm 43 0x0>; + goodix,gpio-irq = <&tlmm 34 0x0>; + status = "ok"; + }; + md_testing_mode { + compatible = "modem,md-testing-mode"; + status-gpio = <&tlmm 129 0x00>, + <&tlmm 136 0x00>; + debounce-time = <30>; + pinctrl-names = "default"; + pinctrl-0 = <&ant3_ctrl_irq &ant5_ctrl_irq>; + }; +}; + +&L3C { + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <3200000>; + regulator-max-microvolt = <3200000>; + qcom,init-voltage = <3200000>; +}; + + +&pmk8350_vadc { + pm7325_4g_pa_therm { + reg = ; + label = "pm7325_4g_pa_therm"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; + pm7325_5g_pa_therm { + reg = ; + label = "pm7325_5g_pa_therm"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; +}; + +&pmk8350_adc_tm { + io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>, + <&pmk8350_vadc PM7325_ADC7_AMUX_THM2_100K_PU>, + <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>, + <&pmk8350_vadc PM7325_ADC7_AMUX_THM4_100K_PU>, + <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>, + <&pmk8350_vadc PM7325B_ADC7_GPIO2_100K_PU>, + <&pmk8350_vadc PM7325_ADC7_AMUX_THM5_100K_PU>, + <&pmk8350_vadc PM7325_ADC7_GPIO3_100K_PU>; + pm7325_4g_pa_therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; + pm7325_5g_pa_therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; +}; + +&thermal_zones { + pa_4gtherm { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pmk8350_adc_tm PM7325_ADC7_AMUX_THM5_100K_PU>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + modem1_pa0 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pmk8350_adc_tm PM7325_ADC7_GPIO3_100K_PU>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; +}; +&qupv3_se4_i2c { + status = "ok"; + awinic_haptic@58 { + compatible = "awinic,awinic_haptic"; + reg = <0x5A>; + aw8622x_i2c_addr = < 0x58 >; + reset-gpio = <&tlmm 35 0>; + irq-gpio = <&tlmm 18 0>; + pinctrl-names = "awinic_reset_reset","awinic_reset_active","awinic_interrupt_active"; + pinctrl-0 = <&awinic_gpio_reset>; + pinctrl-1 = <&awinic_gpio_reset_output_high>; + pinctrl-2 = <&awinic_gpio_int>; + /*---------------------aw8624_dts_info---------------------*/ + aw8624_vib_f0_pre = < 2050 >; + aw8624_vib_f0_cali_percen = < 7 >; + aw8624_vib_cont_drv_lev = < 106 >; + aw8624_vib_cont_drv_lvl_ov = < 155 >; + aw8624_vib_cont_td = < 0xF06C >; + aw8624_vib_cont_zc_thr = < 0x08F8 >; + aw8624_vib_cont_num_brk = < 3 >; + aw8624_vib_f0_coeff = < 260 >; /*Don't modify it*/ + aw8624_vib_duration_time = < 15 60 0 0 0 >; + aw8624_vib_brake_ram_config = < 1 1 90 60 20 3 1 3 1 1 90 60 30 5 1 3 0 0 50 40 25 0 5 3 >; + aw8624_vib_brake_cont_config = < 1 1 90 42 20 5 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >; + aw8624_vib_f0_trace_parameter = < 9 5 1 15 >; + aw8624_vib_bemf_config = < 0 8 3 0xf8 >; + aw8624_vib_sw_brake = < 0x2c >; + aw8624_vib_wavseq = < 0 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 >; /*wavseq1-seq8 0x07-0x0E*/ + aw8624_vib_wavloop = < 0 6 1 15 0 0 0 0 0 0>;/*loop1-mainloog 0x0f-0x13*/ + aw8624_vib_td_brake = < 42720 42720 42720 >; /*level0 level1 level2*/ + aw8624_vib_tset = < 0x11 >; + aw8624_vib_func_parameter1 = < 1 >; + aw8624_vib_gain_flag = < 1 >; + aw8624_vib_r_spare = < 0x68 >; + aw8624_vib_bstdbg = < 0x30 0xeb 0xd4 0 0 0 >; + /*---------------------aw8622x_dts_info---------------------*/ + aw8622x_vib_mode = < 0 >; /* mode: RAM mode->0; CONT mode->1 */ + aw8622x_vib_f0_pre = < 2050 >; + aw8622x_vib_f0_cali_percen = < 7 >; + aw8622x_vib_cont_drv1_lvl = < 0x7F >; + aw8622x_vib_cont_drv2_lvl = < 0x36 >; + aw8622x_vib_cont_brk_time = < 0x06 >; + aw8622x_vib_cont_tset = < 0x06 >; + aw8622x_vib_cont_bemf_set = < 0x02 >; + aw8622x_vib_cont_drv_width = < 0x6A >; + aw8622x_vib_cont_wait_num = < 0x06 >; + aw8622x_vib_cont_brk_gain = < 0x08 >; + aw8622x_vib_cont_drv1_time = < 0x04 >; + aw8622x_vib_cont_drv2_time = < 0x14 >; + aw8622x_vib_cont_track_margin = < 0x12 >; + aw8622x_vib_sine_array = < 0x05 0xB2 0xFF 0xEF >; /* SIN_H SIN_L COS_H COS_L*/ + aw8622x_vib_d2s_gain = < 0x05 >; + aw8622x_vib_prctmode = < 0x2D 0x3E 0x3F >; + /*---------------------common_dts_info---------------------*/ + vib_effect_id_boundary = < 10 >; + vib_effect_max = < 170 >; + vib_rtp_time = < 20 20 20 20 40 20 20 20 20 20 + 20 20 20 20 20 20 20 20 20 20 + 20 24058 11520 14770 40341 22060 16745 15166 10590 17260 + 16923 16000 9920 14420 12000 18000 7860 19400 12600 31992 + 18581 30093 39836 19500 8530 9692 2000 16820 18782 14223 + 1034 1161 2096 874 1606 795 1788 859 1260 1668 + 2254 1852 5126 1931 1204 890 1803 1822 1325 2607 + 1015 890 208 676 679 850 357 380 1140 457 + 1176 1400 328 1500 100 150 100 341 100 249 + 704 100 1000 479 100 1 1089 1 2103 1 + 1 620 100 466 178 1 100 785 124 140 + 414 97 39 462 165 152 295 1 64 4088 + 965 931 308 3584 4583 4289 100 70 1 1656 + 89 56 76 56 51 681 1 36 1 1 + 83 129 216 87 128 215 227 534 312 90 + 299 1109 686 395 10500 5648 6708 618 749 701 + 814 2610 200 200 300 200 200 300 200 200 + 300 516 286 200 200 200 400 1200 200 400 + 200 200 350 200 400 250 300 200 250 200 + 300 600 23200 1 1 1 1 1 1 1 >; + status = "okay"; + wf_0 { + //CLICK + qcom,effect-id = <0>; + qcom,wf-vmax-mv = <3600>; + qcom,wf-pattern = [3e 3e]; + qcom,wf-brake-pattern = [02 01 00 00]; + qcom,wf-play-rate-us = <20000>; + }; + wf_1 { + //DOUBLE CLICK + qcom,effect-id = <1>; + qcom,wf-vmax-mv = <3600>; + qcom,wf-pattern = [7e 3e]; + qcom,wf-brake-pattern = [03 01 00 00]; + qcom,wf-play-rate-us = <20000>; + }; + wf_2 { + //TICK + qcom,effect-id = <2>; + qcom,wf-vmax-mv = <3600>; + qcom,wf-pattern = [7e 3e]; + qcom,wf-brake-pattern = [02 01 00 00]; + qcom,wf-play-rate-us = <20000>; + }; + wf_3 { + //THUD + qcom,effect-id = <3>; + qcom,wf-vmax-mv = <3600>; + qcom,wf-pattern = [3e 3e]; + qcom,wf-brake-pattern = [02 01 00 00]; + qcom,wf-play-rate-us = <20000>; + }; + wf_4 { + //POP + qcom,effect-id = <4>; + qcom,wf-vmax-mv = <3600>; + qcom,wf-pattern = [3e 3e]; + qcom,wf-brake-pattern = [02 01 00 00]; + qcom,wf-play-rate-us = <28000>; + }; + wf_5 { + //HEAVY CLICK + qcom,effect-id = <5>; + qcom,wf-vmax-mv = <3600>; + qcom,wf-pattern = [7e 7e 7e]; + qcom,wf-brake-pattern = [03 03 01 00]; + qcom,wf-play-rate-us = <20000>; + }; + wf_6 { + //id 6 + qcom,effect-id = <6>; + qcom,wf-vmax-mv = <3600>; + qcom,wf-pattern = [3e 3e]; + qcom,wf-brake-pattern = [02 01 00 00]; + qcom,wf-play-rate-us = <20000>; + }; + wf_7 { + //id 7 + qcom,effect-id = <7>; + qcom,wf-vmax-mv = <3600>; + qcom,wf-pattern = [3e 3e]; + qcom,wf-brake-pattern = [02 01 00 00]; + qcom,wf-play-rate-us = <20000>; + }; + wf_8 { + //id 8 + qcom,effect-id = <8>; + qcom,wf-vmax-mv = <3600>; + qcom,wf-pattern = [3e 3e]; + qcom,wf-brake-pattern = [02 01 00 00]; + qcom,wf-play-rate-us = <20000>; + }; + wf_9 { + //id 9 + qcom,effect-id = <9>; + qcom,wf-vmax-mv = <3600>; + qcom,wf-pattern = [3e 3e]; + qcom,wf-brake-pattern = [02 01 00 00]; + qcom,wf-play-rate-us = <20000>; + }; + }; +}; +&tlmm { + /* AW86224_RESET_N */ + awinic_gpio_reset: awinic_gpio_reset { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + drive-strength = <2>; + bias-disable; + output-low; + }; + }; + /* AW8624_RESET_N, state device active*/ + awinic_gpio_reset_output_high: awinic_gpio_reset_output_high { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; + /* AW86224_INTERRUPT_N */ + awinic_gpio_int: awinic_gpio_int { + mux { + pins = "gpio18"; + function = "gpio"; + }; + + config { + pins = "gpio18"; + drive-strength = <2>; + bias-pull-up; + input-enable; + }; + }; +}; + +&usb2_phy0 { + mi,factory-usb; + qcom,param-override-seq-fac = + <0xe7 0x6c /* override_x0 */ + 0xc6 0x70 /* override_x1 */ + 0x0b 0x74>; /* override x2 */ + qcom,param-override-seq = + <0xe7 0x6c /* override_x0 */ + 0xc6 0x70 /* override_x1 */ + 0x0b 0x74>; /* override x2 */ +};