| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/gpio/st,spear-spics-gpio.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: ST Microelectronics SPEAr SPI CS GPIO Controller |
| |
| maintainers: |
| - Viresh Kumar <vireshk@kernel.org> |
| |
| description: > |
| SPEAr platform provides a provision to control chipselects of ARM PL022 Prime |
| Cell spi controller through its system registers, which otherwise remains |
| under PL022 control. If chipselect remain under PL022 control then they would |
| be released as soon as transfer is over and TxFIFO becomes empty. This is not |
| desired by some of the device protocols above spi which expect (multiple) |
| transfers without releasing their chipselects. |
| |
| Chipselects can be controlled by software by turning them as GPIOs. SPEAr |
| provides another interface through system registers through which software can |
| directly control each PL022 chipselect. Hence, it is natural for SPEAr to |
| export the control of this interface as gpio. |
| |
| properties: |
| compatible: |
| const: st,spear-spics-gpio |
| |
| reg: |
| maxItems: 1 |
| |
| gpio-controller: true |
| |
| '#gpio-cells': |
| const: 2 |
| |
| st-spics,peripcfg-reg: |
| description: Offset of the peripcfg register. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| |
| st-spics,sw-enable-bit: |
| description: Bit offset to enable software chipselect control. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| |
| st-spics,cs-value-bit: |
| description: Bit offset to drive chipselect low or high. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| |
| st-spics,cs-enable-mask: |
| description: Bitmask selecting which chipselects to enable. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| |
| st-spics,cs-enable-shift: |
| description: Bit shift for programming chipselect number. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| |
| required: |
| - compatible |
| - reg |
| - gpio-controller |
| - '#gpio-cells' |
| - st-spics,peripcfg-reg |
| - st-spics,sw-enable-bit |
| - st-spics,cs-value-bit |
| - st-spics,cs-enable-mask |
| - st-spics,cs-enable-shift |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| gpio@e0700000 { |
| compatible = "st,spear-spics-gpio"; |
| reg = <0xe0700000 0x1000>; |
| st-spics,peripcfg-reg = <0x3b0>; |
| st-spics,sw-enable-bit = <12>; |
| st-spics,cs-value-bit = <11>; |
| st-spics,cs-enable-mask = <3>; |
| st-spics,cs-enable-shift = <8>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| }; |