spi: spi-bcm2835: Disable forced software CS
authorPhil Elwell <phil@raspberrypi.org>
Tue, 15 Jan 2019 12:41:15 +0000 (12:41 +0000)
committerpopcornmix <popcornmix@gmail.com>
Wed, 1 Jul 2020 15:32:47 +0000 (16:32 +0100)
With GPIO CS used by the DTBs, allow hardware CS to be selected by an
overlay.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/spi/spi-bcm2835.c

index 0eb7486..e5c5146 100644 (file)
@@ -1279,43 +1279,6 @@ static int bcm2835_spi_setup(struct spi_device *spi)
                return -EINVAL;
        }
 
-       /*
-        * Translate native CS to GPIO
-        *
-        * FIXME: poking around in the gpiolib internals like this is
-        * not very good practice. Find a way to locate the real problem
-        * and fix it. Why is the GPIO descriptor in spi->cs_gpiod
-        * sometimes not assigned correctly? Erroneous device trees?
-        */
-
-       /* get the gpio chip for the base */
-       chip = gpiochip_find("pinctrl-bcm2835", chip_match_name);
-       if (!chip)
-               return 0;
-
-       /*
-        * Retrieve the corresponding GPIO line used for CS.
-        * The inversion semantics will be handled by the GPIO core
-        * code, so we pass GPIOS_OUT_LOW for "unasserted" and
-        * the correct flag for inversion semantics. The SPI_CS_HIGH
-        * on spi->mode cannot be checked for polarity in this case
-        * as the flag use_gpio_descriptors enforces SPI_CS_HIGH.
-        */
-       if (of_property_read_bool(spi->dev.of_node, "spi-cs-high"))
-               lflags = GPIO_ACTIVE_HIGH;
-       else
-               lflags = GPIO_ACTIVE_LOW;
-       spi->cs_gpiod = gpiochip_request_own_desc(chip, 8 - spi->chip_select,
-                                                 DRV_NAME,
-                                                 lflags,
-                                                 GPIOD_OUT_LOW);
-       if (IS_ERR(spi->cs_gpiod))
-               return PTR_ERR(spi->cs_gpiod);
-
-       /* and set up the "mode" and level */
-       dev_info(&spi->dev, "setting up native-CS%i to use GPIO\n",
-                spi->chip_select);
-
        return 0;
 }