Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
m525x.c
Go to the documentation of this file.
1 /***************************************************************************/
2 
3 /*
4  * 525x.c
5  *
6  * Copyright (C) 2012, Steven King <[email protected]>
7  */
8 
9 /***************************************************************************/
10 
11 #include <linux/kernel.h>
12 #include <linux/param.h>
13 #include <linux/init.h>
14 #include <linux/io.h>
15 #include <linux/platform_device.h>
16 #include <asm/machdep.h>
17 #include <asm/coldfire.h>
18 #include <asm/mcfsim.h>
19 
20 /***************************************************************************/
21 
22 static void __init m525x_qspi_init(void)
23 {
24 #if IS_ENABLED(CONFIG_SPI_COLDFIRE_QSPI)
25  /* set the GPIO function for the qspi cs gpios */
26  /* FIXME: replace with pinmux/pinctl support */
28  f |= (1 << MCFQSPI_CS2) | (1 << MCFQSPI_CS1) | (1 << MCFQSPI_CS0);
30 
31  /* QSPI irq setup */
34  mcf_mapirq2imr(MCF_IRQ_QSPI, MCFINTC_QSPI);
35 #endif /* IS_ENABLED(CONFIG_SPI_COLDFIRE_QSPI) */
36 }
37 
38 static void __init m525x_i2c_init(void)
39 {
40 #if IS_ENABLED(CONFIG_I2C_COLDFIRE)
41  u32 r;
42 
43  /* first I2C controller uses regular irq setup */
46  mcf_mapirq2imr(MCF_IRQ_I2C0, MCFINTC_I2C);
47 
48  /* second I2C controller is completely different */
53 #endif /* IS_ENABLED(CONFIG_I2C_COLDFIRE) */
54 }
55 
56 /***************************************************************************/
57 
58 void __init config_BSP(char *commandp, int size)
59 {
61 
62  m525x_qspi_init();
63  m525x_i2c_init();
64 }
65 
66 /***************************************************************************/