• Javier Martinez Canillas's avatar
    spi: s3c64xx: Revert "spi: s3c64xx: Added provision for dedicated cs pin" · e2689b94
    Javier Martinez Canillas authored
    This reverts commit 3146beec.
    
    This commit resulted in a DT backward compatibility breakage.
    
    Some devices use the native chip select (CS) instead of a GPIO
    pin to drive the CS line. But the SPI driver made it mandatory
    to specify a GPIO pin in the SPI device node controller-data.
    So, using the built-in CS was not possible with the driver.
    
    Commit 3146beec tried to fix that by adding a "cs-gpio" property
    which could be defined in the SPI device node to make the driver
    request the GPIO from the controller-data node.
    
    Unfortunately that changed the old DT binding semantics since
    now it's mandatory to have the "cs-gpio" property defined in
    the SPI device node in order to use a GPIO pin to drive the CS.
    
    As an example, a SPI device was defined before the commit with:
    
    spi@12d20000 {
        slave-node@0 {
            controller-data {
                 cs-gpio = <&gpb1 2 0>;
            }
       }
    }
    
    and after the commit, the following DTS snippet must be used:
    
    spi@12d20000 {
        cs-gpio;
        slave-node@0 {
            controller-data {
                 cs-gpio = <&gpb1 2 0>;
            }
       }
    }
    
    So, after commit 3146beec
    
     the driver does not look for the GPIO
    by default and it only looks for it if the top level "cs-gpio"
    property is defined while the default used to be the opposite.
    To always request the GPIO defined in the controller-data node.
    
    This means that old FDT that of course didn't have this added
    "cs-gpio" DT property in the SPI node broke after this change.
    
    The offending commit can't be reverted cleanly since more than
    a year have passed and other changes were made in the meantime
    but this patch partially reverts the driver to it's original
    state so old FDT can work again.
    
    This patch will break Device Trees that were relying on the new
    behavior of course but the patch should be reverted because:
    
    a) There aren't DTS in mainline that use this new property.
    b) They were relying on a behavior that broke DT compatibility.
    c) The new binding is awkard, needing two properties with the
       same name (cs-gpio) on different nodes is confusing at least.
    d) The new property was not added to the DT binding doc:
       Documentation/devicetree/bindings/spi/spi-samsung.txt
    Signed-off-by: default avatarJavier Martinez Canillas <javier.martinez@collabora.co.uk>
    Reviewed-by: default avatarTomasz Figa <t.figa@samsung.com>
    Signed-off-by: default avatarMark Brown <broonie@linaro.org>
    e2689b94
spi-s3c64xx.c 37.3 KB