1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- === ST Microelectronics SPEAr SPI CS Driver ===
- 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.
- Required properties:
- * compatible: should be defined as "st,spear-spics-gpio"
- * reg: mentioning address range of spics controller
- * st-spics,peripcfg-reg: peripheral configuration register offset
- * st-spics,sw-enable-bit: bit offset to enable sw control
- * st-spics,cs-value-bit: bit offset to drive chipselect low or high
- * st-spics,cs-enable-mask: chip select number bit mask
- * st-spics,cs-enable-shift: chip select number program offset
- * gpio-controller: Marks the device node as gpio controller
- * #gpio-cells: should be 1 and will mention chip select number
- All the above bit offsets are within peripcfg register.
- Example:
- -------
- spics: spics@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>;
- };
- spi0: spi@e0100000 {
- status = "okay";
- num-cs = <3>;
- cs-gpios = <&gpio1 7 0>, <&spics 0>,
- <&spics 1>;
- ...
- }
|