CPM2: Implement GPIO LIB API on CPM2 Freescale SoC.
Based on earlier work by Laurent Pinchart.
This patch implement GPIO LIB support for the CPM2 GPIOs.
Signed-off-by Jochen Friedrich <[email protected]>
Cc Laurent Pinchart <[email protected]>
--- arch/powerpc/platforms/Kconfig | 2 + arch/powerpc/sysdev/cpm2.c | 11 ++++ arch/powerpc/sysdev/cpm_common.c | 120 ++++++++++++++++++++++++++++++++++++++ include/asm-powerpc/cpm.h | 3 + 4 files changed, 136 insertions(+), 0 deletions(-)
arch/powerpc/platforms/Kconfig +2 -0
@@ -283,6 +283,8 @@ config CPM2 depends on MPC85xx || 8260 select CPM select PPC_LIB_RHEAP + select GENERIC_GPIO + select HAVE_GPIO_LIB help The CPM2 (Communications Processor Module) is a coprocessor on embedded CPUs made by Freescale. Selecting this option means that
arch/powerpc/sysdev/cpm2.c +11 -0
@@ -377,3 +377,14 @@ 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); +
arch/powerpc/sysdev/cpm_common.c +120 -0
129 lines not on this page · raw message
include/asm-powerpc/cpm.h +3 -0
@@ -3,6 +3,7 @@#include <linux/compiler.h> #include <linux/types.h> +#include <linux/of.h> /* Opcodes common to CPM1 and CPM2 */
@@ -99,4 +100,6 @@ void __iomem *cpm_muram_addr(unsigned long offset);dma_addr_t cpm_muram_dma (void __iomem *addr);int cpm_command (u32 command,u8 opcode); +int cpm2_gpiochip_add32 (struct device_node *np); +#endif
Signature · 1 line
1.5.5