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

Commit 1ba0f31f authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

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

parents b3396c08 8b9e5678
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,