// SPDX-License-Identifier: GPL-2.0-only #include "msm8916-pm8916.dtsi" #include #include #include #include / { aliases { serial0 = &blsp1_uart2; }; chosen { stdout-path = "serial0"; }; reserved-memory { /* Additional memory used by Samsung firmware modifications */ tz-apps@85500000 { reg = <0x0 0x85500000 0x0 0xb00000>; no-map; }; }; clk_pwm: pwm { compatible = "clk-pwm"; #pwm-cells = <2>; clocks = <&gcc GCC_GP2_CLK>; pinctrl-names = "default"; pinctrl-0 = <&motor_pwm_default>; status = "disabled"; }; gpio-keys { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&gpio_keys_default>; label = "GPIO Buttons"; button-volume-up { label = "Volume Up"; gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>; linux,code = ; }; button-home { label = "Home"; gpios = <&msmgpio 109 GPIO_ACTIVE_LOW>; linux,code = ; }; }; gpio-hall-sensor { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&gpio_hall_sensor_default>; label = "GPIO Hall Effect Sensor"; event-hall-sensor { label = "Hall Effect Sensor"; gpios = <&msmgpio 52 GPIO_ACTIVE_LOW>; linux,input-type = ; linux,code = ; linux,can-disable; }; }; /* * NOTE: A5 connects GPIO 76 to a reglator powering the motor * driver IC but A3 connects the same signal to an ENABLE pin of * the driver. */ reg_motor_vdd: regulator-motor-vdd { compatible = "regulator-fixed"; regulator-name = "motor_vdd"; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; gpio = <&msmgpio 76 GPIO_ACTIVE_HIGH>; enable-active-high; pinctrl-names = "default"; pinctrl-0 = <&motor_en_default>; }; reg_vdd_tsp_a: regulator-vdd-tsp-a { compatible = "regulator-fixed"; regulator-name = "vdd_tsp_a"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&msmgpio 73 GPIO_ACTIVE_HIGH>; enable-active-high; pinctrl-names = "default"; pinctrl-0 = <&tsp_en_default>; }; i2c-muic { compatible = "i2c-gpio"; sda-gpios = <&msmgpio 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; scl-gpios = <&msmgpio 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; pinctrl-names = "default"; pinctrl-0 = <&muic_i2c_default>; #address-cells = <1>; #size-cells = <0>; muic: extcon@25 { compatible = "siliconmitus,sm5502-muic"; reg = <0x25>; interrupt-parent = <&msmgpio>; interrupts = <12 IRQ_TYPE_EDGE_FALLING>; pinctrl-names = "default"; pinctrl-0 = <&muic_int_default>; }; }; i2c-tkey { compatible = "i2c-gpio"; sda-gpios = <&msmgpio 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; scl-gpios = <&msmgpio 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; pinctrl-names = "default"; pinctrl-0 = <&tkey_i2c_default>; #address-cells = <1>; #size-cells = <0>; touchkey: touchkey@20 { /* Note: Actually an ABOV MCU that implements same interface */ compatible = "coreriver,tc360-touchkey"; reg = <0x20>; interrupt-parent = <&msmgpio>; interrupts = <98 IRQ_TYPE_EDGE_FALLING>; /* vcc/vdd-supply are board-specific */ vddio-supply = <&pm8916_l6>; linux,keycodes = ; pinctrl-names = "default"; pinctrl-0 = <&tkey_default>; }; }; i2c-nfc { compatible = "i2c-gpio"; sda-gpios = <&msmgpio 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; scl-gpios = <&msmgpio 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; pinctrl-names = "default"; pinctrl-0 = <&nfc_i2c_default>; #address-cells = <1>; #size-cells = <0>; nfc@27 { compatible = "samsung,s3fwrn5-i2c"; reg = <0x27>; interrupt-parent = <&msmgpio>; interrupts = <21 IRQ_TYPE_EDGE_RISING>; en-gpios = <&msmgpio 20 GPIO_ACTIVE_LOW>; wake-gpios = <&msmgpio 49 GPIO_ACTIVE_HIGH>; clocks = <&rpmcc RPM_SMD_BB_CLK2_PIN>; pinctrl-names = "default"; pinctrl-0 = <&nfc_default &nfc_clk_req>; }; }; vibrator: vibrator { compatible = "pwm-vibrator"; pwms = <&clk_pwm 0 100000>; pwm-names = "enable"; vcc-supply = <®_motor_vdd>; status = "disabled"; }; }; &blsp_i2c2 { status = "okay"; accelerometer: accelerometer@10 { compatible = "bosch,bmc150_accel"; reg = <0x10>; interrupt-parent = <&msmgpio>; interrupts = <115 IRQ_TYPE_EDGE_RISING>; vdd-supply = <&pm8916_l17>; vddio-supply = <&pm8916_l5>; pinctrl-names = "default"; pinctrl-0 = <&accel_int_default>; }; magnetometer@12 { compatible = "bosch,bmc150_magn"; reg = <0x12>; vdd-supply = <&pm8916_l17>; vddio-supply = <&pm8916_l5>; }; }; &blsp_i2c4 { status = "okay"; battery@35 { compatible = "richtek,rt5033-battery"; reg = <0x35>; interrupt-parent = <&msmgpio>; interrupts = <121 IRQ_TYPE_EDGE_BOTH>; pinctrl-names = "default"; pinctrl-0 = <&fg_alert_default>; }; }; &blsp1_uart2 { status = "okay"; }; &dsi0 { pinctrl-names = "default", "sleep"; pinctrl-0 = <&mdss_default>; pinctrl-1 = <&mdss_sleep>; }; &mdss { status = "okay"; }; &pm8916_resin { status = "okay"; linux,code = ; }; &pronto { status = "okay"; }; &sdhc_1 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>; pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>; }; &sdhc_2 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>; }; &usb { status = "okay"; extcon = <&muic>, <&muic>; }; &usb_hs_phy { extcon = <&muic>; }; &smd_rpm_regulators { vdd_l1_l2_l3-supply = <&pm8916_s3>; vdd_l4_l5_l6-supply = <&pm8916_s4>; vdd_l7-supply = <&pm8916_s4>; s3 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1300000>; }; s4 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <2100000>; }; l1 { regulator-min-microvolt = <1225000>; regulator-max-microvolt = <1225000>; }; l2 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; }; l4 { regulator-min-microvolt = <2050000>; regulator-max-microvolt = <2050000>; }; l5 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; l6 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; l7 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; l8 { regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2900000>; }; l9 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; l10 { regulator-min-microvolt = <2700000>; regulator-max-microvolt = <2800000>; }; l11 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <2950000>; regulator-allow-set-load; regulator-system-load = <200000>; }; l12 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <2950000>; }; l13 { regulator-min-microvolt = <3075000>; regulator-max-microvolt = <3075000>; }; l14 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; }; l15 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; }; l16 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; }; l17 { regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; }; l18 { regulator-min-microvolt = <2700000>; regulator-max-microvolt = <2700000>; }; }; &msmgpio { accel_int_default: accel-int-default-state { pins = "gpio115"; function = "gpio"; drive-strength = <2>; bias-disable; }; fg_alert_default: fg-alert-default-state { pins = "gpio121"; function = "gpio"; drive-strength = <2>; bias-disable; }; gpio_keys_default: gpio-keys-default-state { pins = "gpio107", "gpio109"; function = "gpio"; drive-strength = <2>; bias-pull-up; }; gpio_hall_sensor_default: gpio-hall-sensor-default-state { pins = "gpio52"; function = "gpio"; drive-strength = <2>; bias-disable; }; mdss_default: mdss-default-state { pins = "gpio25"; function = "gpio"; drive-strength = <8>; bias-disable; }; mdss_sleep: mdss-sleep-state { pins = "gpio25"; function = "gpio"; drive-strength = <2>; bias-pull-down; }; motor_en_default: motor-en-default-state { pins = "gpio76"; function = "gpio"; drive-strength = <2>; bias-disable; }; motor_pwm_default: motor-pwm-default-state { pins = "gpio50"; function = "gcc_gp2_clk_a"; }; muic_i2c_default: muic-i2c-default-state { pins = "gpio105", "gpio106"; function = "gpio"; drive-strength = <2>; bias-disable; }; muic_int_default: muic-int-default-state { pins = "gpio12"; function = "gpio"; drive-strength = <2>; bias-disable; }; nfc_default: nfc-default-state { nfc-pins { pins = "gpio20", "gpio49"; function = "gpio"; drive-strength = <2>; bias-disable; }; irq-pins { pins = "gpio21"; function = "gpio"; drive-strength = <2>; bias-pull-down; }; }; nfc_i2c_default: nfc-i2c-default-state { pins = "gpio0", "gpio1"; function = "gpio"; drive-strength = <2>; bias-disable; }; tkey_default: tkey-default-state { pins = "gpio98"; function = "gpio"; drive-strength = <2>; bias-disable; }; tkey_i2c_default: tkey-i2c-default-state { pins = "gpio16", "gpio17"; function = "gpio"; drive-strength = <2>; bias-disable; }; tsp_en_default: tsp-en-default-state { pins = "gpio73"; function = "gpio"; drive-strength = <2>; bias-disable; }; ts_int_default: ts-int-default-state { pins = "gpio13"; function = "gpio"; drive-strength = <2>; bias-disable; }; }; &pm8916_gpios { nfc_clk_req: nfc-clk-req-state { pins = "gpio2"; function = "func1"; input-enable; bias-disable; power-source = ; }; };