Commit 4afa0f3a authored by Michael Ellerman's avatar Michael Ellerman
Browse files
Freescale updates from Scott:

"Contains fixes for CPM GPIO and an FSL PCI erratum workaround, plus a
 minor cleanup patch."
parents ebf0b6a8 c095ff93
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -166,6 +166,6 @@ static inline int cpm_command(u32 command, u8 opcode)
}
#endif /* CONFIG_CPM */

int cpm2_gpiochip_add32(struct device_node *np);
int cpm2_gpiochip_add32(struct device *dev);

#endif
+2 −0
Original line number Diff line number Diff line
@@ -605,5 +605,7 @@ enum cpm_clk {
};

int cpm1_clk_setup(enum cpm_clk_target target, int clock, int mode);
int cpm1_gpiochip_add16(struct device *dev);
int cpm1_gpiochip_add32(struct device *dev);

#endif /* __CPM1__ */
+2 −1
Original line number Diff line number Diff line
@@ -43,7 +43,8 @@ obj-$(CONFIG_OF_RTC) += of_rtc.o

obj-$(CONFIG_CPM)		+= cpm_common.o
obj-$(CONFIG_CPM1)		+= cpm1.o
obj-$(CONFIG_CPM2)		+= cpm2.o cpm2_pic.o
obj-$(CONFIG_CPM2)		+= cpm2.o cpm2_pic.o cpm_gpio.o
obj-$(CONFIG_8xx_GPIO)		+= cpm_gpio.o
obj-$(CONFIG_QUICC_ENGINE)	+= cpm_common.o
obj-$(CONFIG_PPC_DCR)		+= dcr.o
obj-$(CONFIG_UCODE_PATCH)	+= micropatch.o
+8 −25
Original line number Diff line number Diff line
@@ -629,8 +629,9 @@ static int cpm1_gpio16_dir_in(struct gpio_chip *gc, unsigned int gpio)
	return 0;
}

int cpm1_gpiochip_add16(struct device_node *np)
int cpm1_gpiochip_add16(struct device *dev)
{
	struct device_node *np = dev->of_node;
	struct cpm1_gpio16_chip *cpm1_gc;
	struct of_mm_gpio_chip *mm_gc;
	struct gpio_chip *gc;
@@ -660,6 +661,8 @@ int cpm1_gpiochip_add16(struct device_node *np)
	gc->get = cpm1_gpio16_get;
	gc->set = cpm1_gpio16_set;
	gc->to_irq = cpm1_gpio16_to_irq;
	gc->parent = dev;
	gc->owner = THIS_MODULE;

	return of_mm_gpiochip_add_data(np, mm_gc, cpm1_gc);
}
@@ -755,8 +758,9 @@ static int cpm1_gpio32_dir_in(struct gpio_chip *gc, unsigned int gpio)
	return 0;
}

int cpm1_gpiochip_add32(struct device_node *np)
int cpm1_gpiochip_add32(struct device *dev)
{
	struct device_node *np = dev->of_node;
	struct cpm1_gpio32_chip *cpm1_gc;
	struct of_mm_gpio_chip *mm_gc;
	struct gpio_chip *gc;
@@ -776,31 +780,10 @@ int cpm1_gpiochip_add32(struct device_node *np)
	gc->direction_output = cpm1_gpio32_dir_out;
	gc->get = cpm1_gpio32_get;
	gc->set = cpm1_gpio32_set;
	gc->parent = dev;
	gc->owner = THIS_MODULE;

	return of_mm_gpiochip_add_data(np, mm_gc, cpm1_gc);
}

static int cpm_init_par_io(void)
{
	struct device_node *np;

	for_each_compatible_node(np, NULL, "fsl,cpm1-pario-bank-a")
		cpm1_gpiochip_add16(np);

	for_each_compatible_node(np, NULL, "fsl,cpm1-pario-bank-b")
		cpm1_gpiochip_add32(np);

	for_each_compatible_node(np, NULL, "fsl,cpm1-pario-bank-c")
		cpm1_gpiochip_add16(np);

	for_each_compatible_node(np, NULL, "fsl,cpm1-pario-bank-d")
		cpm1_gpiochip_add16(np);

	/* Port E uses CPM2 layout */
	for_each_compatible_node(np, NULL, "fsl,cpm1-pario-bank-e")
		cpm2_gpiochip_add32(np);
	return 0;
}
arch_initcall(cpm_init_par_io);

#endif /* CONFIG_8xx_GPIO */
+0 −11
Original line number Diff line number Diff line
@@ -354,14 +354,3 @@ void cpm2_set_pin(int port, int pin, int flags)
	else
		clrbits32(&iop[port].odr, pin);
}

static int cpm_init_par_io(void)
{
	struct device_node *np;

	for_each_compatible_node(np, NULL, "fsl,cpm2-pario-bank")
		cpm2_gpiochip_add32(np);
	return 0;
}
arch_initcall(cpm_init_par_io);
Loading