X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Fipq806x%2Fpatches%2F0133-spi-qup-Remove-chip-select-function.patch;fp=target%2Flinux%2Fipq806x%2Fpatches%2F0133-spi-qup-Remove-chip-select-function.patch;h=0000000000000000000000000000000000000000;hb=4aadad3284b92f562f050879690b144dc40a2e98;hp=14ae782b494b897deeb6ee4e7639669e82ece30d;hpb=86c86fceef7c2c6130e50d0a52f23d8e978d9c40;p=openwrt%2Fsvn-archive%2Farchive.git diff --git a/target/linux/ipq806x/patches/0133-spi-qup-Remove-chip-select-function.patch b/target/linux/ipq806x/patches/0133-spi-qup-Remove-chip-select-function.patch deleted file mode 100644 index 14ae782b49..0000000000 --- a/target/linux/ipq806x/patches/0133-spi-qup-Remove-chip-select-function.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 9bc674f40f22596ef8c2ff6d7f9e53da0baa57e9 Mon Sep 17 00:00:00 2001 -From: Andy Gross -Date: Thu, 12 Jun 2014 14:34:10 -0500 -Subject: [PATCH 133/182] spi: qup: Remove chip select function - -This patch removes the chip select function. Chip select should instead be -supported using GPIOs, defining the DT entry "cs-gpios", and letting the SPI -core assert/deassert the chip select as it sees fit. - -Signed-off-by: Andy Gross ---- - .../devicetree/bindings/spi/qcom,spi-qup.txt | 6 ++++ - drivers/spi/spi-qup.c | 33 ++++---------------- - 2 files changed, 12 insertions(+), 27 deletions(-) - ---- a/Documentation/devicetree/bindings/spi/qcom,spi-qup.txt -+++ b/Documentation/devicetree/bindings/spi/qcom,spi-qup.txt -@@ -23,6 +23,12 @@ Optional properties: - - spi-max-frequency: Specifies maximum SPI clock frequency, - Units - Hz. Definition as per - Documentation/devicetree/bindings/spi/spi-bus.txt -+- num-cs: total number of chipselects -+- cs-gpios: should specify GPIOs used for chipselects. -+ The gpios will be referred to as reg = in the SPI child -+ nodes. If unspecified, a single SPI device without a chip -+ select can be used. -+ - - SPI slave nodes must be children of the SPI master node and can contain - properties described in Documentation/devicetree/bindings/spi/spi-bus.txt ---- a/drivers/spi/spi-qup.c -+++ b/drivers/spi/spi-qup.c -@@ -424,31 +424,6 @@ static int spi_qup_io_config(struct spi_ - return 0; - } - --static void spi_qup_set_cs(struct spi_device *spi, bool enable) --{ -- struct spi_qup *controller = spi_master_get_devdata(spi->master); -- -- u32 iocontol, mask; -- -- iocontol = readl_relaxed(controller->base + SPI_IO_CONTROL); -- -- /* Disable auto CS toggle and use manual */ -- iocontol &= ~SPI_IO_C_MX_CS_MODE; -- iocontol |= SPI_IO_C_FORCE_CS; -- -- iocontol &= ~SPI_IO_C_CS_SELECT_MASK; -- iocontol |= SPI_IO_C_CS_SELECT(spi->chip_select); -- -- mask = SPI_IO_C_CS_N_POLARITY_0 << spi->chip_select; -- -- if (enable) -- iocontol |= mask; -- else -- iocontol &= ~mask; -- -- writel_relaxed(iocontol, controller->base + SPI_IO_CONTROL); --} -- - static int spi_qup_transfer_one(struct spi_master *master, - struct spi_device *spi, - struct spi_transfer *xfer) -@@ -571,12 +546,16 @@ static int spi_qup_probe(struct platform - return -ENOMEM; - } - -+ /* use num-cs unless not present or out of range */ -+ if (of_property_read_u16(dev->of_node, "num-cs", -+ &master->num_chipselect) || -+ (master->num_chipselect > SPI_NUM_CHIPSELECTS)) -+ master->num_chipselect = SPI_NUM_CHIPSELECTS; -+ - master->bus_num = pdev->id; - master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LOOP; -- master->num_chipselect = SPI_NUM_CHIPSELECTS; - master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32); - master->max_speed_hz = max_freq; -- master->set_cs = spi_qup_set_cs; - master->transfer_one = spi_qup_transfer_one; - master->dev.of_node = pdev->dev.of_node; - master->auto_runtime_pm = true;