[PATCH 1/2] [v5] pinctrl: qcom: disable GPIO groups with no pins
Timur Tabi
timur at codeaurora.org
Thu Oct 19 15:44:59 PDT 2017
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.
More information about the linux-arm-kernel
mailing list