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

Commit 0660a48b authored by Maulik Shah's avatar Maulik Shah
Browse files

drivers: pinctrl: qcom: Correctly set up gpio0 irq_data



Correctly set up gpio0 irq_data.
Update msm_dir_conn data to indicate direct connect availability
using negative number instead of 0.

Change-Id: I072e8c5080ec35f1437216d63918397e94482439
Signed-off-by: default avatarMaulik Shah <mkshah@codeaurora.org>
parent ec416f81
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -1000,11 +1000,11 @@ static void msm_gpio_dirconn_handler(struct irq_desc *desc)
}

static void setup_pdc_gpio(struct irq_domain *domain,
			unsigned int parent_irq, unsigned int gpio)
			unsigned int parent_irq, int gpio)
{
	int irq;

	if (gpio != 0) {
	if (gpio != -1) {
		irq = irq_create_mapping(domain, gpio);
		irq_set_parent(irq, parent_irq);
		irq_set_chip(irq, &msm_dirconn_irq_chip);
@@ -1016,7 +1016,7 @@ static void setup_pdc_gpio(struct irq_domain *domain,

static void request_dc_interrupt(struct irq_domain *domain,
			struct irq_domain *parent, irq_hw_number_t hwirq,
			unsigned int gpio)
			int gpio)
{
	struct irq_fwspec fwspec;
	unsigned int parent_irq;
@@ -1362,7 +1362,7 @@ static int select_dir_conn_mux(struct irq_data *d, irq_hw_number_t *irq)
			return pctrl->soc->dir_conn_irq_base - dir_conn->hwirq;
		}

		if (dir_conn->gpio)
		if (dir_conn->gpio != -1)
			continue;

		/* Use the first unused direct connect available */
@@ -1372,7 +1372,7 @@ static int select_dir_conn_mux(struct irq_data *d, irq_hw_number_t *irq)

	if (dc) {
		*irq = dc->hwirq + 32;
		dc->gpio = (u32)d->hwirq;
		dc->gpio = (int)d->hwirq;
		return pctrl->soc->dir_conn_irq_base - (u32)dc->hwirq;
	}

@@ -1594,7 +1594,7 @@ static void msm_gpio_setup_dir_connects(struct msm_pinctrl *pctrl)
		request_dc_interrupt(pctrl->chip.irqdomain, pdc_domain,
					dirconn->hwirq, dirconn->gpio);

		if (!dirconn->gpio)
		if (dirconn->gpio == -1)
			continue;

		if (!dirconn->tlmm_dc)
@@ -1618,7 +1618,7 @@ static void msm_gpio_setup_dir_connects(struct msm_pinctrl *pctrl)
					&pctrl->soc->pdc_mux_out[i];

		request_dc_interrupt(pctrl->chip.irqdomain, pdc_domain,
					pdc_out->hwirq, 0);
					pdc_out->hwirq, -1);
	}

	/*
+1 −1
Original line number Diff line number Diff line
@@ -136,7 +136,7 @@ struct msm_pdc_mux_output {
 * @tlmm_dc:	indicates if the GPIO is routed to GIC directly
 */
struct msm_dir_conn {
	unsigned int gpio;
	int gpio;
	irq_hw_number_t hwirq;
	bool tlmm_dc;
};
+8 −8
Original line number Diff line number Diff line
@@ -1522,14 +1522,14 @@ static struct msm_dir_conn sdmmagpie_dir_conn[] = {
	{109, 619},
	{110, 559},
	{113, 565},
	{0, 216},
	{0, 215},
	{0, 214},
	{0, 213},
	{0, 212},
	{0, 211},
	{0, 210},
	{0, 209},
	{-1, 216},
	{-1, 215},
	{-1, 214},
	{-1, 213},
	{-1, 212},
	{-1, 211},
	{-1, 210},
	{-1, 209},
};

static const struct msm_pinctrl_soc_data sdmmagpie_pinctrl = {
+8 −8
Original line number Diff line number Diff line
@@ -1315,14 +1315,14 @@ static struct msm_pdc_mux_output sdxprairie_mux_out[] = {
};

static struct msm_dir_conn sdxprairie_dir_conn[] = {
	{0, 220},
	{0, 219},
	{0, 218},
	{0, 217},
	{0, 216},
	{0, 215},
	{0, 214},
	{0, 213},
	{-1, 220},
	{-1, 219},
	{-1, 218},
	{-1, 217},
	{-1, 216},
	{-1, 215},
	{-1, 214},
	{-1, 213},
};

static const struct msm_pinctrl_soc_data sdxprairie_pinctrl = {
+8 −8
Original line number Diff line number Diff line
@@ -1622,14 +1622,14 @@ static struct msm_dir_conn sm6150_dir_conn[] = {
	{120, 629},
	{121, 569},
	{122, 570},
	{0, 216},
	{0, 215},
	{0, 214},
	{0, 213},
	{0, 212},
	{0, 211},
	{0, 210},
	{0, 209},
	{-1, 216},
	{-1, 215},
	{-1, 214},
	{-1, 213},
	{-1, 212},
	{-1, 211},
	{-1, 210},
	{-1, 209},
};

static const struct msm_pinctrl_soc_data sm6150_pinctrl = {
Loading