dt-bindings: gpio: 74x164: Introduce the 'registers-default' property
Subsystems (2)
PATCH v2 1/2 dt-bindings: gpio: 74x164: Introduce the 'registers-default' property
There are cases where a certain default output value in the 74x164 output is needed.
For example: the imx6ul-evk board has the Ethernet PHY reset controlled by the 74x164 chip.
After enabling the OE pin, the output pins of the 74x164 chip go to zero by default, which makes the Ethernet PHY not to be detected.
Add a new optional property called 'registers-default' that allows describing the default output value for each shift register.
---
Changes since v1:
- None
Documentation/devicetree/bindings/gpio/gpio-74x164.txt | 3 +++ 1 file changed, 3 insertions(+)
Documentation/devicetree/bindings/gpio/gpio-74x164.txt +3 -0
@@ -14,6 +14,8 @@ Required properties: Optional properties: - enable-gpios: GPIO connected to the OE (Output Enable) pin. +- registers-default: An array of 8-bit values describing the default output +value of each shift registers. Example:
@@ -24,4 +26,5 @@ gpio5: gpio5@0 { #gpio-cells = <2>; registers-number = <4>; spi-max-frequency = <100000>; + registers-default = /bits/ 8 <0x57 0xF0 0xFF 0xF0>; };
Signature · 1 line
2.17.1
PATCH v2 2/2 gpio: 74x164: Introduce the 'registers-default' property
From: Sandor Yu <[email protected]>
On the imx7d-sdb board, there is one output pin of the 74x164 that controls all peripherals power supply (PERI_3V).
This pin should be at high voltage level when the 74x164 is probed, otherwise the modules dependent on PERI_3V3 will not be powered.
Add a new optional property called 'registers-default' that allows describing the default output value for each shift register.
---
Changes since v1:
- Use the more generic device_property_read_u8_array(), which also works in ACPI.
drivers/gpio/gpio-74x164.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/gpio/gpio-74x164.c +3 -0
@@ -141,6 +141,9 @@ static int gen_74x164_probe(struct spi_device *spi) chip->registers = nregs; chip->gpio_chip.ngpio =GEN_74X164_NUMBER_GPIOS * chip->registers; +device_property_read_u8_array (&spi->dev,"registers-default" , + chip->buffer, chip->registers); + chip->gpio_chip.can_sleep = true; chip->gpio_chip.parent = &spi->dev; chip->gpio_chip.owner =THIS_MODULE ;
Signature · 1 line
2.17.1