Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8b9e5678 authored by Lina Iyer's avatar Lina Iyer Committed by Elliot Berman
Browse files

drivers: irqchip: qcom-pdc: remove SPI config in SCM



SPI config registers for newer SoCs need not be done through secure
firmware. Remove support for dependent SCM APIs.

Change-Id: Ic67c808b1d74033a4f5e480f7af1f9d317a60499
Signed-off-by: default avatarLina Iyer <ilina@codeaurora.org>
parent 11b286fb
Loading
Loading
Loading
Loading
+6 −26
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@
#include <linux/slab.h>
#include <linux/types.h>

#include <linux/qcom_scm.h>
#include <linux/ipc_logging.h>

#define PDC_MAX_IRQS		168
@@ -49,7 +48,6 @@ struct spi_cfg_regs {
		void __iomem *base;
	};
	resource_size_t size;
	bool scm_io;
};

static DEFINE_RAW_SPINLOCK(pdc_lock);
@@ -145,27 +143,15 @@ static void qcom_pdc_gic_unmask(struct irq_data *d)
static u32 __spi_pin_read(unsigned int pin)
{
	void __iomem *cfg_reg = spi_cfg->base + pin * 4;
	u64 scm_cfg_reg = spi_cfg->start + pin * 4;

	if (spi_cfg->scm_io) {
		unsigned int val;

		qcom_scm_io_readl(scm_cfg_reg, &val);
		return val;
	} else {
		return readl(cfg_reg);
	}
	return readl_relaxed(cfg_reg);
}

static void __spi_pin_write(unsigned int pin, unsigned int val)
{
	void __iomem *cfg_reg = spi_cfg->base + pin * 4;
	u64 scm_cfg_reg = spi_cfg->start + pin * 4;

	if (spi_cfg->scm_io)
		qcom_scm_io_writel(scm_cfg_reg, val);
	else
		writel(val, cfg_reg);
	writel_relaxed(val, cfg_reg);
}

static int spi_configure_type(irq_hw_number_t hwirq, unsigned int type)
@@ -518,19 +504,13 @@ static int qcom_pdc_init(struct device_node *node, struct device_node *parent)
			ret = -ENOMEM;
			goto remove;
		}
		spi_cfg->scm_io = of_find_property(node,
						   "qcom,scm-spi-cfg", NULL);
		spi_cfg->size = resource_size(&res);
		if (spi_cfg->scm_io) {
			spi_cfg->start = res.start;
		} else {
		spi_cfg->base = ioremap(res.start, spi_cfg->size);
		if (!spi_cfg->base) {
			ret = -ENOMEM;
			goto remove;
		}
	}
	}

	pdc_gpio_domain = irq_domain_create_hierarchy(parent_domain,
					IRQ_DOMAIN_FLAG_QCOM_PDC_WAKEUP,