mirror of
https://github.com/torvalds/linux.git
synced 2026-07-30 11:11:26 +02:00
Merge "pinctrl: qcom: spmi-gpio: add support for LV_VIN2 and MV_VIN3 subtypes"
This commit is contained in:
commit
d8f988289f
|
|
@ -1,6 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2012-2014, 2016-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/gpio/driver.h>
|
||||
|
|
@ -36,6 +37,8 @@
|
|||
#define PMIC_GPIO_SUBTYPE_GPIOC_8CH 0xd
|
||||
#define PMIC_GPIO_SUBTYPE_GPIO_LV 0x10
|
||||
#define PMIC_GPIO_SUBTYPE_GPIO_MV 0x11
|
||||
#define PMIC_GPIO_SUBTYPE_GPIO_LV_VIN2 0x12
|
||||
#define PMIC_GPIO_SUBTYPE_GPIO_MV_VIN3 0x13
|
||||
|
||||
#define PMIC_MPP_REG_RT_STS 0x10
|
||||
#define PMIC_MPP_REG_RT_STS_VAL_MASK 0x1
|
||||
|
|
@ -522,7 +525,7 @@ static int pmic_gpio_config_set(struct pinctrl_dev *pctldev, unsigned int pin,
|
|||
pad->pullup = arg;
|
||||
break;
|
||||
case PMIC_GPIO_CONF_STRENGTH:
|
||||
if (arg > PMIC_GPIO_STRENGTH_LOW)
|
||||
if (arg > PMIC_GPIO_STRENGTH_HIGH)
|
||||
return -EINVAL;
|
||||
pad->strength = arg;
|
||||
break;
|
||||
|
|
@ -823,6 +826,16 @@ static int pmic_gpio_populate(struct pmic_gpio_state *state,
|
|||
pad->have_buffer = true;
|
||||
pad->lv_mv_type = true;
|
||||
break;
|
||||
case PMIC_GPIO_SUBTYPE_GPIO_LV_VIN2:
|
||||
pad->num_sources = 2;
|
||||
pad->have_buffer = true;
|
||||
pad->lv_mv_type = true;
|
||||
break;
|
||||
case PMIC_GPIO_SUBTYPE_GPIO_MV_VIN3:
|
||||
pad->num_sources = 3;
|
||||
pad->have_buffer = true;
|
||||
pad->lv_mv_type = true;
|
||||
break;
|
||||
default:
|
||||
dev_err(state->dev, "unknown GPIO type 0x%x\n", subtype);
|
||||
return -ENODEV;
|
||||
|
|
@ -1149,6 +1162,7 @@ static const struct of_device_id pmic_gpio_of_match[] = {
|
|||
{ .compatible = "qcom,pm6150-gpio", .data = (void *) 10 },
|
||||
{ .compatible = "qcom,pm6150l-gpio", .data = (void *) 12 },
|
||||
{ .compatible = "qcom,pm6350-gpio", .data = (void *) 9 },
|
||||
{ .compatible = "qcom,pm7250b-gpio", .data = (void *) 12 },
|
||||
{ .compatible = "qcom,pm7325-gpio", .data = (void *) 10 },
|
||||
{ .compatible = "qcom,pm8005-gpio", .data = (void *) 4 },
|
||||
{ .compatible = "qcom,pm8008-gpio", .data = (void *) 2 },
|
||||
|
|
@ -1183,6 +1197,13 @@ static const struct of_device_id pmic_gpio_of_match[] = {
|
|||
{ .compatible = "qcom,pms405-gpio", .data = (void *) 12 },
|
||||
/* pmx55 has 11 GPIOs with holes on 3, 7, 10, 11 */
|
||||
{ .compatible = "qcom,pmx55-gpio", .data = (void *) 11 },
|
||||
{ .compatible = "qcom,pmx65-gpio", .data = (void *) 16 },
|
||||
{ .compatible = "qcom,pm8550-gpio", .data = (void *) 12 },
|
||||
{ .compatible = "qcom,pm8550b-gpio", .data = (void *) 12 },
|
||||
{ .compatible = "qcom,pm8550ve-gpio", .data = (void *) 8 },
|
||||
{ .compatible = "qcom,pm8550vs-gpio", .data = (void *) 6 },
|
||||
{ .compatible = "qcom,pmk8550-gpio", .data = (void *) 6 },
|
||||
{ .compatible = "qcom,pmr735d-gpio", .data = (void *) 2 },
|
||||
{ },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2015, Sony Mobile Communications AB.
|
||||
* Copyright (c) 2013, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2013, 2018 The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
|
|
@ -371,7 +371,7 @@ static int pm8xxx_pin_config_set(struct pinctrl_dev *pctldev,
|
|||
banks |= BIT(0);
|
||||
break;
|
||||
case PM8XXX_QCOM_DRIVE_STRENGH:
|
||||
if (arg > PMIC_GPIO_STRENGTH_LOW) {
|
||||
if (arg > PM8921_GPIO_STRENGTH_LOW) {
|
||||
dev_err(pctrl->dev, "invalid drive strength\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,9 +12,14 @@
|
|||
#define PMIC_GPIO_PULL_UP_1P5_30 3
|
||||
|
||||
#define PMIC_GPIO_STRENGTH_NO 0
|
||||
#define PMIC_GPIO_STRENGTH_HIGH 1
|
||||
#define PMIC_GPIO_STRENGTH_LOW 1
|
||||
#define PMIC_GPIO_STRENGTH_MED 2
|
||||
#define PMIC_GPIO_STRENGTH_LOW 3
|
||||
#define PMIC_GPIO_STRENGTH_HIGH 3
|
||||
|
||||
#define PM8921_GPIO_STRENGTH_NO 0
|
||||
#define PM8921_GPIO_STRENGTH_HIGH 1
|
||||
#define PM8921_GPIO_STRENGTH_MED 2
|
||||
#define PM8921_GPIO_STRENGTH_LOW 3
|
||||
|
||||
/*
|
||||
* Note: PM8018 GPIO3 and GPIO4 are supporting
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user