boards to test gpio line bias flags?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 05, 2019 at 10:04:22AM +0800, Kent Gibson wrote:
> This series adds gross control o:f pull-up/pull-down to the GPIO uAPI.
> Gross control means enabling and disabling of bias functionality,
> not finer grained control such as setting biasing impedances.
> 
> The support allows both input and output lines to have any one of the
> following biases applied as part of the line handle or event request:
>  0. As Is - bias is left alone.  This is the default for ABI compatibility.
>  1. Bias Disable - bias is explicitly disabled.
>  2. Pull Down - pull-down bias is enabled.
>  3. Pull Up - pull-up bias is enabled.
> 
> The biases are set via three flags, BIAS_DISABLE, BIAS_PULL_DOWN
> and BIAS_PULL_UP.  These map directly to the similarly named 
> pinctrl pin_config_param flags.
> As Is corresponds to none of the flags being set.

I had been looking at how to make these flags work on the BeagleBone
(TI Sitara AM3358 SoC) which uses the  gpio-omap driver and
pinctrl-single driver.  Howeverm, it seems that it is not posssible as
the BeagleBone device tree uses compatible of "pinctrl-single" instead
of "padconf-single", and thus pcs_pinconf_set() is not called [0].

The bias flags already work on the Raspberry Pi as the Broadcom SoC uses
pinctrl-bcm2835.c which uses gpiochip_generic_config() from gpiolib.c 
for .set_config in bcm2835_gpio_chip.  This eventually calls
bcm2835_pinconf_set() which handles the PIN_CONFIG_BIAS_* flags.

Thus, I started thinking about what other boards I could test the bias
flags with, and potentially, find drivers that I could add or fix
support.

The PIN_CONFIG_BIAS_* flags exist in these GPIO drivers:

gpio-aspeed.c:
aspeed seems to be used in server BMC so not hardware that I have
access to or could easily acquire.

gpio-mockup.c:
mockup driver that has already been tested and works

gpio-pca953x.c:
an external I2C GPIO expander, easy for me to acquire, it appears
that gpio uapi bias flags should work, but I could test and verify

gpiolib.c:
like the bmc2835 in the raspberry pi, it seems some drivers in pinctrl
directory will define a gpiochip and use gpiochip_generic_config().

Here is a list of other pinctrl drivers which use gpiochip_generic_config:

drivers/pinctrl/pinctrl-stmfx.c and drivers/pinctrl/pinctrl-sx150x.c:
These are both GPIO expanders which I could probably purchase

drivers/pinctrl/intel/pinctrl-intel.c:
Maybe this means that I could try this on x86 boards?

drivers/pinctrl/sunxi/pinctrl-sunxi.c
Maybe the Allwinner boards might work too?


Any other hardware that I should take a look at testing?


Thanks,
Drew


[0] https://lore.kernel.org/linux-gpio/20200413123921.GA32586@x1/T/#t



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux