I2C: add i2c support for Pantheon platform
Add i2c support to dkb board with pantheon soc. Acked-by: Heiko Schocher <hs@denx.de> Acked-by: Prafulla Wadaskar <prafulla@marvell.com> Signed-off-by: Lei Wen <leiwen@marvell.com>
This commit is contained in:
		
							parent
							
								
									3df619ec2c
								
							
						
					
					
						commit
						aa3b168e31
					
				|  | @ -59,6 +59,12 @@ int arch_cpu_init(void) | ||||||
| 	/* Enable GPIO clock */ | 	/* Enable GPIO clock */ | ||||||
| 	writel(APBC_APBCLK, &apbclkres->gpio); | 	writel(APBC_APBCLK, &apbclkres->gpio); | ||||||
| 
 | 
 | ||||||
|  | #ifdef CONFIG_I2C_MV | ||||||
|  | 	/* Enable I2C clock */ | ||||||
|  | 	writel(APBC_RST | APBC_FNCLK | APBC_APBCLK, &apbclkres->twsi); | ||||||
|  | 	writel(APBC_FNCLK | APBC_APBCLK, &apbclkres->twsi); | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| 	icache_enable(); | 	icache_enable(); | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
|  | @ -76,3 +82,9 @@ int print_cpuinfo(void) | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
|  | 
 | ||||||
|  | #ifdef CONFIG_I2C_MV | ||||||
|  | void i2c_clk_enable(void) | ||||||
|  | { | ||||||
|  | } | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | @ -34,5 +34,15 @@ | ||||||
| #define MV_UART_CONSOLE_BASE	PANTHEON_UART1_BASE | #define MV_UART_CONSOLE_BASE	PANTHEON_UART1_BASE | ||||||
| #define CONFIG_SYS_NS16550_IER	(1 << 6)	/* Bit 6 in UART_IER register | #define CONFIG_SYS_NS16550_IER	(1 << 6)	/* Bit 6 in UART_IER register | ||||||
| 						represents UART Unit Enable */ | 						represents UART Unit Enable */ | ||||||
|  | /*
 | ||||||
|  |  * I2C definition | ||||||
|  |  */ | ||||||
|  | #ifdef CONFIG_CMD_I2C | ||||||
|  | #define CONFIG_I2C_MV			1 | ||||||
|  | #define CONFIG_MV_I2C_REG		0xd4011000 | ||||||
|  | #define CONFIG_HARD_I2C			1 | ||||||
|  | #define CONFIG_SYS_I2C_SPEED		0 | ||||||
|  | #define CONFIG_SYS_I2C_SLAVE		0xfe | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| #endif /* _PANTHEON_CONFIG_H */ | #endif /* _PANTHEON_CONFIG_H */ | ||||||
|  |  | ||||||
|  | @ -50,7 +50,9 @@ struct panthapb_registers { | ||||||
| 	u32 uart0;	/*0x000*/ | 	u32 uart0;	/*0x000*/ | ||||||
| 	u32 uart1;	/*0x004*/ | 	u32 uart1;	/*0x004*/ | ||||||
| 	u32 gpio;	/*0x008*/ | 	u32 gpio;	/*0x008*/ | ||||||
| 	u8 pad0[0x034 - 0x08 - 4]; | 	u8 pad0[0x02c - 0x08 - 4]; | ||||||
|  | 	u32 twsi;	/*0x02c*/ | ||||||
|  | 	u8 pad1[0x034 - 0x2c - 4]; | ||||||
| 	u32 timers;	/*0x034*/ | 	u32 timers;	/*0x034*/ | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -32,8 +32,10 @@ | ||||||
|  * offset, pull,pF, drv,dF, edge,eF ,afn,aF |  * offset, pull,pF, drv,dF, edge,eF ,afn,aF | ||||||
|  */ |  */ | ||||||
| /* UART2 */ | /* UART2 */ | ||||||
| #define MFP47_UART2_RXD		MFP_REG(0x198) | MFP_AF6 | MFP_DRIVE_MEDIUM | #define MFP47_UART2_RXD		(MFP_REG(0x198) | MFP_AF6 | MFP_DRIVE_MEDIUM) | ||||||
| #define MFP48_UART2_TXD		MFP_REG(0x19c) | MFP_AF6 | MFP_DRIVE_MEDIUM | #define MFP48_UART2_TXD		(MFP_REG(0x19c) | MFP_AF6 | MFP_DRIVE_MEDIUM) | ||||||
|  | #define MFP53_CI2C_SCL		(MFP_REG(0x1b0) | MFP_AF2 | MFP_DRIVE_MEDIUM) | ||||||
|  | #define MFP54_CI2C_SDA		(MFP_REG(0x1b4) | MFP_AF2 | MFP_DRIVE_MEDIUM) | ||||||
| 
 | 
 | ||||||
| /* More macros can be defined here... */ | /* More macros can be defined here... */ | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -36,6 +36,10 @@ int board_early_init_f(void) | ||||||
| 		MFP47_UART2_RXD, | 		MFP47_UART2_RXD, | ||||||
| 		MFP48_UART2_TXD, | 		MFP48_UART2_TXD, | ||||||
| 
 | 
 | ||||||
|  | 		/* I2C */ | ||||||
|  | 		MFP53_CI2C_SCL, | ||||||
|  | 		MFP54_CI2C_SDA, | ||||||
|  | 
 | ||||||
| 		MFP_EOC		/*End of configureation*/ | 		MFP_EOC		/*End of configureation*/ | ||||||
| 	}; | 	}; | ||||||
| 	/* configure MFP's */ | 	/* configure MFP's */ | ||||||
|  |  | ||||||
|  | @ -47,6 +47,7 @@ | ||||||
| #define CONFIG_SYS_NO_FLASH		/* Declare no flash (NOR/SPI) */ | #define CONFIG_SYS_NO_FLASH		/* Declare no flash (NOR/SPI) */ | ||||||
| #include <config_cmd_default.h> | #include <config_cmd_default.h> | ||||||
| #define CONFIG_CMD_AUTOSCRIPT | #define CONFIG_CMD_AUTOSCRIPT | ||||||
|  | #define CONFIG_CMD_I2C | ||||||
| #undef CONFIG_CMD_NET | #undef CONFIG_CMD_NET | ||||||
| #undef CONFIG_CMD_NFS | #undef CONFIG_CMD_NFS | ||||||
| /*
 | /*
 | ||||||
|  | @ -56,6 +57,7 @@ | ||||||
| #include "mv-common.h" | #include "mv-common.h" | ||||||
| 
 | 
 | ||||||
| #undef CONFIG_ARCH_MISC_INIT | #undef CONFIG_ARCH_MISC_INIT | ||||||
|  | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Environment variables configurations |  * Environment variables configurations | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue