[PATCH 1/2] [v5] pinctrl: qcom: disable GPIO groups with no pins
From: Timur Tabi <hidden>
Date: 2017-10-19 22:45:02
Also in:
linux-arm-msm, linux-gpio
From: Timur Tabi <hidden>
Date: 2017-10-19 22:45:02
Also in:
linux-arm-msm, linux-gpio
On 10/07/2017 06:07 AM, Linus Walleij wrote:
I mean that you add unsigned long *line_valid_mask; to struct gpio_chip using the same type of logic as .irq_valid_mask. The mask should be optional. Then the operation gpiod_get[_index]() will FAIL if the line is not valid. There is no need to check on every operation, there should be no way to get a handle on the pin any other way. All new code should be using descriptors at this point so we only need to design for that case.
I think I'm missing something, because I implemented what you're asking
for, but whenever I try to expose a GPIO from sysfs (e.g. echo 37 >
/sys/class/gpio/export), gpiod_get_index() is not called. The only
thing preventing the GPIO from being exported is the ->request callback:
static int msm_gpio_request(struct gpio_chip *chip, unsigned int offset)
{
struct msm_pinctrl *pctrl = gpiochip_get_data(chip);
const struct msm_pingroup *g = &pctrl->soc->groups[offset];
if (!g->npins)
return -ENODEV;
What operation is supposed to trigger a call to gpiod_get_index?
--
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm
Technologies, Inc. Qualcomm Technologies, Inc. is a member of the
Code Aurora Forum, a Linux Foundation Collaborative Project.