Loading Documentation/devicetree/bindings/input/misc/apds993x.txt +7 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ Required properties: - compatible : Should be "avago,apds9930" or "avago,apds9900". - reg : i2c slave address of the device. - pinctrl-names : The pinctrl configration names of this sensor driver. Should be "default" and "sleep". - pinctrl-0 : Should specify pin control groups used for this controller. - pinctrl-1 : Should specify pin control groups used for this controller. - interrupt-parent : Parent of interrupt. - interupts : L/P sample interrupt to indicate new data ready. - vdd-supply : Power supply needed to power up the device. Loading @@ -26,6 +30,9 @@ Required properties: avago@39 { compatible = "avago,apds9930"; reg = <0x39>; pinctrl-names = "default","sleep"; pinctrl-0 = <&apds99xx_default>; pinctrl-1 = <&apds99xx_sleep>; interrupt-parent = <&msmgpio>; interrupts = <80 0x2>; vdd-supply = <&pm8110_l19>; Loading Documentation/devicetree/bindings/input/misc/lis3dh_acc.txt +10 −5 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ Required properties: - compatible : Should be "st,lis3dh". - reg : i2c slave address of the device. - pinctrl-names : The pinctrl configration names of this sensor driver. Should be "lis3dh_default" and "lis3dh_sleep". - pinctrl-0 : Should specify pin control groups used for this controller. - pinctrl-1 : Should specify pin control groups used for this controller. - interrupt-parent : Parent of interrupt. - interrupts : Accelerometer sample interrupt to indicate new data ready. - vdd-supply : Analog power supply needed to power device. Loading Loading @@ -55,19 +59,20 @@ Example: st@18 { compatible = "st,lis3dh"; reg = <0x18>; pinctrl-names = "default"; pinctrl-names = "lis3dh_default","lis3dh_sleep"; pinctrl-0 = <&lis3dh_int1_default>; interrupt-parent = <&msm_gpio 115 0x2002>; pinctrl-1 = <&lis3dh_int1_sleep>; interrupt-parent = <&msm_gpio>; interrupts = <115 0x2002>; vdd-supply = <&pm8110_l19>; vddio-supply = <&pm8110_l14>; vdd-supply = <&pm8916_l17>; vddio-supply = <&pm8916_l6>; st,min-interval = <5>; st,init-interval = <200>; st,axis-map-x = <1>; st,axis-map-y = <0>; st,axis-map-z = <2>; st,g-range = <2>; st,gpio-int1 = <&msmgpio 81 0x2>; st,gpio-int1 = <&msm_gpio 115 0x2002>; st,negate-x; st,negate-y; st,negate-z; Loading arch/arm/boot/dts/qcom/msm8916-mtp.dts +0 −34 Original line number Diff line number Diff line Loading @@ -20,37 +20,3 @@ qcom,board-id = <8 0>; }; &tlmm_pinmux { apds9930_int_pin { qcom,pins = <&gp 113>; qcom,pin-func = <0>; qcom,num-grp-pins = <1>; label = "apds9930-irq"; apds9930_default: apds9930_default { drive-strenghth = <6>; bias-pull-up; }; }; }; &i2c_0 { /* BLSP1 QUP2 */ avago@39 { compatible = "avago,apds9930"; reg = <0x39>; pinctrl-names = "default"; pinctrl-0 = <&apds9930_default>; interrupt-parent = <&msm_gpio>; interrupts = <113 0x2>; vdd-supply = <&pm8916_l17>; vio-supply = <&pm8916_l6>; avago,irq-gpio = <&msm_gpio 113 0x2>; avago,ps_threshold = <600>; avago,ps_hysteresis_threshold = <500>; avago,ps_pulse = <8>; avago,ps_pgain = <0>; avago,als_B = <223>; avago,als_C = <70>; avago,als_D = <142>; avago,ga_value = <48>; }; }; arch/arm/boot/dts/qcom/msm8916-qrd-skuh.dtsi +12 −7 Original line number Diff line number Diff line Loading @@ -21,11 +21,11 @@ qcom,num-grp-pins = <1>; label = "akm_reset_pin"; akm_default: akm_default { drive-strength = <16>; drive-strength = <6>; bias-pull-up; }; akm_sleep: akm_sleep { drive-strength = <16>; drive-strength = <2>; bias-pull-down; }; }; Loading @@ -36,7 +36,11 @@ label = "lis3dh_int_pin"; lis3dh_int1_default: int1_default { drive-strength = <6>; bias-pull-up; bias-pull-down; }; lis3dh_int1_sleep: int1_sleep { drive-strength = <2>; bias-pull-down; }; }; Loading Loading @@ -91,8 +95,9 @@ st@18 { compatible = "st,lis3dh"; reg = <0x18>; pinctrl-names = "default"; pinctrl-names = "lis3dh_default","lis3dh_sleep"; pinctrl-0 = <&lis3dh_int1_default>; pinctrl-1 = <&lis3dh_int1_sleep>; interrupt-parent = <&msm_gpio>; vdd-supply = <&pm8916_l17>; vddio-supply = <&pm8916_l6>; Loading drivers/input/misc/lis3dh_acc.c +53 −9 Original line number Diff line number Diff line Loading @@ -221,6 +221,9 @@ struct lis3dh_acc_data { struct i2c_client *client; struct lis3dh_acc_platform_data *pdata; struct sensors_classdev cdev; struct pinctrl *pinctrl; struct pinctrl_state *pin_default; struct pinctrl_state *pin_sleep; struct mutex lock; struct delayed_work input_work; Loading Loading @@ -513,11 +516,6 @@ static void lis3dh_acc_device_power_off(struct lis3dh_acc_data *acc) if (err < 0) dev_err(&acc->client->dev, "soft power off failed: %d\n", err); if (gpio_is_valid(acc->pdata->gpio_int1)) disable_irq_nosync(acc->irq1); if (gpio_is_valid(acc->pdata->gpio_int2)) disable_irq_nosync(acc->irq2); lis3dh_acc_config_regulator(acc, false); if (acc->hw_initialized) { Loading @@ -540,10 +538,6 @@ static int lis3dh_acc_device_power_on(struct lis3dh_acc_data *acc) return err; } if (gpio_is_valid(acc->pdata->gpio_int1)) enable_irq(acc->irq1); if (gpio_is_valid(acc->pdata->gpio_int2)) enable_irq(acc->irq2); msleep(20); Loading Loading @@ -774,6 +768,10 @@ static int lis3dh_acc_enable(struct lis3dh_acc_data *acc) int err; if (!atomic_cmpxchg(&acc->enabled, 0, 1)) { if (pinctrl_select_state(acc->pinctrl, acc->pin_default)) dev_err(&acc->client->dev, "Can't select pinctrl default state\n"); err = lis3dh_acc_device_power_on(acc); if (err < 0) { atomic_set(&acc->enabled, 0); Loading @@ -791,6 +789,9 @@ static int lis3dh_acc_disable(struct lis3dh_acc_data *acc) if (atomic_cmpxchg(&acc->enabled, 1, 0)) { cancel_delayed_work_sync(&acc->input_work); lis3dh_acc_device_power_off(acc); if (pinctrl_select_state(acc->pinctrl, acc->pin_sleep)) dev_err(&acc->client->dev, "Can't select pinctrl sleep state\n"); } return 0; Loading Loading @@ -1300,6 +1301,33 @@ static void lis3dh_acc_input_cleanup(struct lis3dh_acc_data *acc) input_free_device(acc->input_dev); } static int lis3dh_pinctrl_init(struct lis3dh_acc_data *acc) { struct i2c_client *client = acc->client; acc->pinctrl = devm_pinctrl_get(&client->dev); if (IS_ERR_OR_NULL(acc->pinctrl)) { dev_err(&client->dev, "Failed to get pinctrl\n"); return PTR_ERR(acc->pinctrl); } acc->pin_default = pinctrl_lookup_state(acc->pinctrl, "lis3dh_default"); if (IS_ERR_OR_NULL(acc->pin_default)) { dev_err(&client->dev, "Failed to look up default state\n"); return PTR_ERR(acc->pin_default); } acc->pin_sleep = pinctrl_lookup_state(acc->pinctrl, "lis3dh_sleep"); if (IS_ERR_OR_NULL(acc->pin_sleep)) { dev_err(&client->dev, "Failed to look up sleep state\n"); return PTR_ERR(acc->pin_sleep); } return 0; } #ifdef CONFIG_OF static int lis3dh_parse_dt(struct device *dev, struct lis3dh_acc_platform_data *pdata) Loading Loading @@ -1454,6 +1482,18 @@ static int lis3dh_acc_probe(struct i2c_client *client, goto exit_kfree_pdata; } /* initialize pinctrl */ err = lis3dh_pinctrl_init(acc); if (err) { dev_err(&client->dev, "Can't initialize pinctrl\n"); goto exit_kfree_pdata; } err = pinctrl_select_state(acc->pinctrl, acc->pin_default); if (err) { dev_err(&client->dev, "Can't select pinctrl default state\n"); goto exit_kfree_pdata; } if (acc->pdata->init) { err = acc->pdata->init(); Loading Loading @@ -1579,6 +1619,10 @@ static int lis3dh_acc_probe(struct i2c_client *client, disable_irq_nosync(acc->irq2); } if (pinctrl_select_state(acc->pinctrl, acc->pin_sleep)) dev_err(&client->dev, "Can't select pinctrl sleep state\n"); mutex_unlock(&acc->lock); dev_dbg(&client->dev, "%s: probed\n", LIS3DH_ACC_DEV_NAME); Loading Loading
Documentation/devicetree/bindings/input/misc/apds993x.txt +7 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ Required properties: - compatible : Should be "avago,apds9930" or "avago,apds9900". - reg : i2c slave address of the device. - pinctrl-names : The pinctrl configration names of this sensor driver. Should be "default" and "sleep". - pinctrl-0 : Should specify pin control groups used for this controller. - pinctrl-1 : Should specify pin control groups used for this controller. - interrupt-parent : Parent of interrupt. - interupts : L/P sample interrupt to indicate new data ready. - vdd-supply : Power supply needed to power up the device. Loading @@ -26,6 +30,9 @@ Required properties: avago@39 { compatible = "avago,apds9930"; reg = <0x39>; pinctrl-names = "default","sleep"; pinctrl-0 = <&apds99xx_default>; pinctrl-1 = <&apds99xx_sleep>; interrupt-parent = <&msmgpio>; interrupts = <80 0x2>; vdd-supply = <&pm8110_l19>; Loading
Documentation/devicetree/bindings/input/misc/lis3dh_acc.txt +10 −5 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ Required properties: - compatible : Should be "st,lis3dh". - reg : i2c slave address of the device. - pinctrl-names : The pinctrl configration names of this sensor driver. Should be "lis3dh_default" and "lis3dh_sleep". - pinctrl-0 : Should specify pin control groups used for this controller. - pinctrl-1 : Should specify pin control groups used for this controller. - interrupt-parent : Parent of interrupt. - interrupts : Accelerometer sample interrupt to indicate new data ready. - vdd-supply : Analog power supply needed to power device. Loading Loading @@ -55,19 +59,20 @@ Example: st@18 { compatible = "st,lis3dh"; reg = <0x18>; pinctrl-names = "default"; pinctrl-names = "lis3dh_default","lis3dh_sleep"; pinctrl-0 = <&lis3dh_int1_default>; interrupt-parent = <&msm_gpio 115 0x2002>; pinctrl-1 = <&lis3dh_int1_sleep>; interrupt-parent = <&msm_gpio>; interrupts = <115 0x2002>; vdd-supply = <&pm8110_l19>; vddio-supply = <&pm8110_l14>; vdd-supply = <&pm8916_l17>; vddio-supply = <&pm8916_l6>; st,min-interval = <5>; st,init-interval = <200>; st,axis-map-x = <1>; st,axis-map-y = <0>; st,axis-map-z = <2>; st,g-range = <2>; st,gpio-int1 = <&msmgpio 81 0x2>; st,gpio-int1 = <&msm_gpio 115 0x2002>; st,negate-x; st,negate-y; st,negate-z; Loading
arch/arm/boot/dts/qcom/msm8916-mtp.dts +0 −34 Original line number Diff line number Diff line Loading @@ -20,37 +20,3 @@ qcom,board-id = <8 0>; }; &tlmm_pinmux { apds9930_int_pin { qcom,pins = <&gp 113>; qcom,pin-func = <0>; qcom,num-grp-pins = <1>; label = "apds9930-irq"; apds9930_default: apds9930_default { drive-strenghth = <6>; bias-pull-up; }; }; }; &i2c_0 { /* BLSP1 QUP2 */ avago@39 { compatible = "avago,apds9930"; reg = <0x39>; pinctrl-names = "default"; pinctrl-0 = <&apds9930_default>; interrupt-parent = <&msm_gpio>; interrupts = <113 0x2>; vdd-supply = <&pm8916_l17>; vio-supply = <&pm8916_l6>; avago,irq-gpio = <&msm_gpio 113 0x2>; avago,ps_threshold = <600>; avago,ps_hysteresis_threshold = <500>; avago,ps_pulse = <8>; avago,ps_pgain = <0>; avago,als_B = <223>; avago,als_C = <70>; avago,als_D = <142>; avago,ga_value = <48>; }; };
arch/arm/boot/dts/qcom/msm8916-qrd-skuh.dtsi +12 −7 Original line number Diff line number Diff line Loading @@ -21,11 +21,11 @@ qcom,num-grp-pins = <1>; label = "akm_reset_pin"; akm_default: akm_default { drive-strength = <16>; drive-strength = <6>; bias-pull-up; }; akm_sleep: akm_sleep { drive-strength = <16>; drive-strength = <2>; bias-pull-down; }; }; Loading @@ -36,7 +36,11 @@ label = "lis3dh_int_pin"; lis3dh_int1_default: int1_default { drive-strength = <6>; bias-pull-up; bias-pull-down; }; lis3dh_int1_sleep: int1_sleep { drive-strength = <2>; bias-pull-down; }; }; Loading Loading @@ -91,8 +95,9 @@ st@18 { compatible = "st,lis3dh"; reg = <0x18>; pinctrl-names = "default"; pinctrl-names = "lis3dh_default","lis3dh_sleep"; pinctrl-0 = <&lis3dh_int1_default>; pinctrl-1 = <&lis3dh_int1_sleep>; interrupt-parent = <&msm_gpio>; vdd-supply = <&pm8916_l17>; vddio-supply = <&pm8916_l6>; Loading
drivers/input/misc/lis3dh_acc.c +53 −9 Original line number Diff line number Diff line Loading @@ -221,6 +221,9 @@ struct lis3dh_acc_data { struct i2c_client *client; struct lis3dh_acc_platform_data *pdata; struct sensors_classdev cdev; struct pinctrl *pinctrl; struct pinctrl_state *pin_default; struct pinctrl_state *pin_sleep; struct mutex lock; struct delayed_work input_work; Loading Loading @@ -513,11 +516,6 @@ static void lis3dh_acc_device_power_off(struct lis3dh_acc_data *acc) if (err < 0) dev_err(&acc->client->dev, "soft power off failed: %d\n", err); if (gpio_is_valid(acc->pdata->gpio_int1)) disable_irq_nosync(acc->irq1); if (gpio_is_valid(acc->pdata->gpio_int2)) disable_irq_nosync(acc->irq2); lis3dh_acc_config_regulator(acc, false); if (acc->hw_initialized) { Loading @@ -540,10 +538,6 @@ static int lis3dh_acc_device_power_on(struct lis3dh_acc_data *acc) return err; } if (gpio_is_valid(acc->pdata->gpio_int1)) enable_irq(acc->irq1); if (gpio_is_valid(acc->pdata->gpio_int2)) enable_irq(acc->irq2); msleep(20); Loading Loading @@ -774,6 +768,10 @@ static int lis3dh_acc_enable(struct lis3dh_acc_data *acc) int err; if (!atomic_cmpxchg(&acc->enabled, 0, 1)) { if (pinctrl_select_state(acc->pinctrl, acc->pin_default)) dev_err(&acc->client->dev, "Can't select pinctrl default state\n"); err = lis3dh_acc_device_power_on(acc); if (err < 0) { atomic_set(&acc->enabled, 0); Loading @@ -791,6 +789,9 @@ static int lis3dh_acc_disable(struct lis3dh_acc_data *acc) if (atomic_cmpxchg(&acc->enabled, 1, 0)) { cancel_delayed_work_sync(&acc->input_work); lis3dh_acc_device_power_off(acc); if (pinctrl_select_state(acc->pinctrl, acc->pin_sleep)) dev_err(&acc->client->dev, "Can't select pinctrl sleep state\n"); } return 0; Loading Loading @@ -1300,6 +1301,33 @@ static void lis3dh_acc_input_cleanup(struct lis3dh_acc_data *acc) input_free_device(acc->input_dev); } static int lis3dh_pinctrl_init(struct lis3dh_acc_data *acc) { struct i2c_client *client = acc->client; acc->pinctrl = devm_pinctrl_get(&client->dev); if (IS_ERR_OR_NULL(acc->pinctrl)) { dev_err(&client->dev, "Failed to get pinctrl\n"); return PTR_ERR(acc->pinctrl); } acc->pin_default = pinctrl_lookup_state(acc->pinctrl, "lis3dh_default"); if (IS_ERR_OR_NULL(acc->pin_default)) { dev_err(&client->dev, "Failed to look up default state\n"); return PTR_ERR(acc->pin_default); } acc->pin_sleep = pinctrl_lookup_state(acc->pinctrl, "lis3dh_sleep"); if (IS_ERR_OR_NULL(acc->pin_sleep)) { dev_err(&client->dev, "Failed to look up sleep state\n"); return PTR_ERR(acc->pin_sleep); } return 0; } #ifdef CONFIG_OF static int lis3dh_parse_dt(struct device *dev, struct lis3dh_acc_platform_data *pdata) Loading Loading @@ -1454,6 +1482,18 @@ static int lis3dh_acc_probe(struct i2c_client *client, goto exit_kfree_pdata; } /* initialize pinctrl */ err = lis3dh_pinctrl_init(acc); if (err) { dev_err(&client->dev, "Can't initialize pinctrl\n"); goto exit_kfree_pdata; } err = pinctrl_select_state(acc->pinctrl, acc->pin_default); if (err) { dev_err(&client->dev, "Can't select pinctrl default state\n"); goto exit_kfree_pdata; } if (acc->pdata->init) { err = acc->pdata->init(); Loading Loading @@ -1579,6 +1619,10 @@ static int lis3dh_acc_probe(struct i2c_client *client, disable_irq_nosync(acc->irq2); } if (pinctrl_select_state(acc->pinctrl, acc->pin_sleep)) dev_err(&client->dev, "Can't select pinctrl sleep state\n"); mutex_unlock(&acc->lock); dev_dbg(&client->dev, "%s: probed\n", LIS3DH_ACC_DEV_NAME); Loading