Add include files for samsung s5p-common
These are from u-boot but have been cleaned up somewhat to remove references to linux include files. Change-Id: I5fe3954a11d8c4aa792620ef5e1a5ee8932b8578 Signed-off-by: Hung-Ti Lin <hungte@chromium.org> Signed-off-by: David Hendricks <dhendrix@chromium.org> Signed-off-by: Ronald G. Minnich <rminnich@gmail.com> Reviewed-on: http://review.coreboot.org/1930 Tested-by: build bot (Jenkins)
This commit is contained in:
		
							
								
								
									
										38
									
								
								src/cpu/samsung/s5p-common/clk.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								src/cpu/samsung/s5p-common/clk.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | ||||
| /* | ||||
|  * (C) Copyright 2009 Samsung Electronics | ||||
|  * Minkyu Kang <mk7.kang@samsung.com> | ||||
|  * Heungjun Kim <riverful.kim@samsung.com> | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License as | ||||
|  * published by the Free Software Foundation; either version 2 of | ||||
|  * the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||||
|  * MA 02111-1307 USA | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #ifndef __S5P_COMMON_CLK_H_ | ||||
| #define __S5P_COMMON_CLK_H_ | ||||
|  | ||||
| #define APLL	0 | ||||
| #define MPLL	1 | ||||
| #define EPLL	2 | ||||
| #define HPLL	3 | ||||
| #define VPLL	4 | ||||
|  | ||||
| unsigned long get_pll_clk(int pllreg); | ||||
| unsigned long get_arm_clk(void); | ||||
| unsigned long get_pwm_clk(void); | ||||
| unsigned long get_uart_clk(int dev_index); | ||||
| void set_mmc_clk(int dev_index, unsigned int div); | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										94
									
								
								src/cpu/samsung/s5p-common/clock.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								src/cpu/samsung/s5p-common/clock.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,94 @@ | ||||
| /* | ||||
|  * (C) Copyright 2009 Samsung Electronics | ||||
|  * Minkyu Kang <mk7.kang@samsung.com> | ||||
|  * Heungjun Kim <riverful.kim@samsung.com> | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License as | ||||
|  * published by the Free Software Foundation; either version 2 of | ||||
|  * the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||||
|  * MA 02111-1307 USA | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #ifndef __ASM_ARM_ARCH_CLOCK_H_ | ||||
| #define __ASM_ARM_ARCH_CLOCK_H_ | ||||
|  | ||||
| #ifndef __ASSEMBLY__ | ||||
| struct s5pc100_clock { | ||||
| 	unsigned int	apll_lock; | ||||
| 	unsigned int	mpll_lock; | ||||
| 	unsigned int	epll_lock; | ||||
| 	unsigned int	hpll_lock; | ||||
| 	unsigned char	res1[0xf0]; | ||||
| 	unsigned int	apll_con; | ||||
| 	unsigned int	mpll_con; | ||||
| 	unsigned int	epll_con; | ||||
| 	unsigned int	hpll_con; | ||||
| 	unsigned char	res2[0xf0]; | ||||
| 	unsigned int	src0; | ||||
| 	unsigned int	src1; | ||||
| 	unsigned int	src2; | ||||
| 	unsigned int	src3; | ||||
| 	unsigned char	res3[0xf0]; | ||||
| 	unsigned int	div0; | ||||
| 	unsigned int	div1; | ||||
| 	unsigned int	div2; | ||||
| 	unsigned int	div3; | ||||
| 	unsigned int	div4; | ||||
| 	unsigned char	res4[0x1ec]; | ||||
| 	unsigned int	gate_d00; | ||||
| 	unsigned int	gate_d01; | ||||
| 	unsigned int	gate_d02; | ||||
| 	unsigned char	res5[0x54]; | ||||
| 	unsigned int	gate_sclk0; | ||||
| 	unsigned int	gate_sclk1; | ||||
| }; | ||||
|  | ||||
| struct s5pc110_clock { | ||||
| 	unsigned int	apll_lock; | ||||
| 	unsigned char	res1[0x4]; | ||||
| 	unsigned int	mpll_lock; | ||||
| 	unsigned char	res2[0x4]; | ||||
| 	unsigned int	epll_lock; | ||||
| 	unsigned char	res3[0xc]; | ||||
| 	unsigned int	vpll_lock; | ||||
| 	unsigned char	res4[0xdc]; | ||||
| 	unsigned int	apll_con; | ||||
| 	unsigned char	res5[0x4]; | ||||
| 	unsigned int	mpll_con; | ||||
| 	unsigned char	res6[0x4]; | ||||
| 	unsigned int	epll_con; | ||||
| 	unsigned char	res7[0xc]; | ||||
| 	unsigned int	vpll_con; | ||||
| 	unsigned char	res8[0xdc]; | ||||
| 	unsigned int	src0; | ||||
| 	unsigned int	src1; | ||||
| 	unsigned int	src2; | ||||
| 	unsigned int	src3; | ||||
| 	unsigned char	res9[0xf0]; | ||||
| 	unsigned int	div0; | ||||
| 	unsigned int	div1; | ||||
| 	unsigned int	div2; | ||||
| 	unsigned int	div3; | ||||
| 	unsigned int	div4; | ||||
| 	unsigned char	res10[0x1ec]; | ||||
| 	unsigned int	gate_d00; | ||||
| 	unsigned int	gate_d01; | ||||
| 	unsigned int	gate_d02; | ||||
| 	unsigned char	res11[0x54]; | ||||
| 	unsigned int	gate_sclk0; | ||||
| 	unsigned int	gate_sclk1; | ||||
| }; | ||||
| #endif | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										116
									
								
								src/cpu/samsung/s5p-common/cpu.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								src/cpu/samsung/s5p-common/cpu.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,116 @@ | ||||
| /* | ||||
|  * (C) Copyright 2009 Samsung Electronics | ||||
|  * Minkyu Kang <mk7.kang@samsung.com> | ||||
|  * Heungjun Kim <riverful.kim@samsung.com> | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License as | ||||
|  * published by the Free Software Foundation; either version 2 of | ||||
|  * the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||||
|  * MA 02111-1307 USA | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #ifndef _S5PC1XX_CPU_H | ||||
| #define _S5PC1XX_CPU_H | ||||
|  | ||||
| #define S5PC1XX_ADDR_BASE	0xE0000000 | ||||
|  | ||||
| /* S5PC100 */ | ||||
| #define S5PC100_PRO_ID		0xE0000000 | ||||
| #define S5PC100_CLOCK_BASE	0xE0100000 | ||||
| #define S5PC100_GPIO_BASE	0xE0300000 | ||||
| #define S5PC100_VIC0_BASE	0xE4000000 | ||||
| #define S5PC100_VIC1_BASE	0xE4100000 | ||||
| #define S5PC100_VIC2_BASE	0xE4200000 | ||||
| #define S5PC100_DMC_BASE	0xE6000000 | ||||
| #define S5PC100_SROMC_BASE	0xE7000000 | ||||
| #define S5PC100_ONENAND_BASE	0xE7100000 | ||||
| #define S5PC100_PWMTIMER_BASE	0xEA000000 | ||||
| #define S5PC100_WATCHDOG_BASE	0xEA200000 | ||||
| #define S5PC100_UART_BASE	0xEC000000 | ||||
| #define S5PC100_MMC_BASE	0xED800000 | ||||
|  | ||||
| /* S5PC110 */ | ||||
| #define S5PC110_PRO_ID		0xE0000000 | ||||
| #define S5PC110_CLOCK_BASE	0xE0100000 | ||||
| #define S5PC110_GPIO_BASE	0xE0200000 | ||||
| #define S5PC110_PWMTIMER_BASE	0xE2500000 | ||||
| #define S5PC110_WATCHDOG_BASE	0xE2700000 | ||||
| #define S5PC110_UART_BASE	0xE2900000 | ||||
| #define S5PC110_SROMC_BASE	0xE8000000 | ||||
| #define S5PC110_MMC_BASE	0xEB000000 | ||||
| #define S5PC110_DMC0_BASE	0xF0000000 | ||||
| #define S5PC110_DMC1_BASE	0xF1400000 | ||||
| #define S5PC110_VIC0_BASE	0xF2000000 | ||||
| #define S5PC110_VIC1_BASE	0xF2100000 | ||||
| #define S5PC110_VIC2_BASE	0xF2200000 | ||||
| #define S5PC110_VIC3_BASE	0xF2300000 | ||||
| #define S5PC110_OTG_BASE	0xEC000000 | ||||
| #define S5PC110_PHY_BASE	0xEC100000 | ||||
| #define S5PC110_USB_PHY_CONTROL 0xE010E80C | ||||
|  | ||||
|  | ||||
| #include <arch/io.h> | ||||
| /* CPU detection macros */ | ||||
| extern unsigned int s5p_cpu_id; | ||||
|  | ||||
| /* FIXME(dhendrix): conflicts with the one in cpu_info.c ... */ | ||||
| #if 0 | ||||
| inline void s5p_set_cpu_id(void) | ||||
| { | ||||
| 	s5p_cpu_id = readl(S5PC100_PRO_ID); | ||||
| 	s5p_cpu_id = 0xC000 | ((s5p_cpu_id & 0x00FFF000) >> 12); | ||||
| } | ||||
| #endif | ||||
| inline void s5p_set_cpu_id(void); | ||||
|  | ||||
| #define IS_SAMSUNG_TYPE(type, id)			\ | ||||
| static inline int cpu_is_##type(void)			\ | ||||
| {							\ | ||||
| 	return s5p_cpu_id == id ? 1 : 0;		\ | ||||
| } | ||||
|  | ||||
| IS_SAMSUNG_TYPE(s5pc100, 0xc100) | ||||
| IS_SAMSUNG_TYPE(s5pc110, 0xc110) | ||||
|  | ||||
| /* | ||||
|  * FIXME(dhendrix): collides with SAMSUNG_BASE in exynos header files. We | ||||
|  * don't really care about old S5P processors right now. | ||||
|  */ | ||||
| #if 0 | ||||
| #define SAMSUNG_BASE(device, base)				\ | ||||
| static inline unsigned int samsung_get_base_##device(void)	\ | ||||
| {								\ | ||||
| 	if (cpu_is_s5pc100())					\ | ||||
| 		return S5PC100_##base;				\ | ||||
| 	else if (cpu_is_s5pc110())				\ | ||||
| 		return S5PC110_##base;				\ | ||||
| 	else							\ | ||||
| 		return 0;					\ | ||||
| } | ||||
|  | ||||
| SAMSUNG_BASE(clock, CLOCK_BASE) | ||||
| SAMSUNG_BASE(gpio, GPIO_BASE) | ||||
| SAMSUNG_BASE(pro_id, PRO_ID) | ||||
| SAMSUNG_BASE(mmc, MMC_BASE) | ||||
| SAMSUNG_BASE(sromc, SROMC_BASE) | ||||
| SAMSUNG_BASE(timer, PWMTIMER_BASE) | ||||
| SAMSUNG_BASE(uart, UART_BASE) | ||||
| SAMSUNG_BASE(watchdog, WATCHDOG_BASE) | ||||
| #endif | ||||
|  | ||||
| int s5p_get_cpu_rev(void); | ||||
| //void s5p_set_cpu_id(void); | ||||
| int s5p_get_cpu_id(void); | ||||
|  | ||||
| #endif	/* _S5PC1XX_CPU_H */ | ||||
							
								
								
									
										173
									
								
								src/cpu/samsung/s5p-common/gpio.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										173
									
								
								src/cpu/samsung/s5p-common/gpio.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,173 @@ | ||||
| /* | ||||
|  * (C) Copyright 2009 Samsung Electronics | ||||
|  * Minkyu Kang <mk7.kang@samsung.com> | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License as | ||||
|  * published by the Free Software Foundation; either version 2 of | ||||
|  * the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||||
|  * MA 02111-1307 USA | ||||
|  */ | ||||
|  | ||||
| #ifndef S5P_GPIO_H_ | ||||
| #define S5P_GPIO_H_ | ||||
|  | ||||
| #include <cpu/samsung/s5p-common/cpu.h>	/* FIXME: for S5PC110_GPIO_BASE */ | ||||
|  | ||||
| #ifndef __ASSEMBLY__ | ||||
| struct s5p_gpio_bank { | ||||
| 	unsigned int	con; | ||||
| 	unsigned int	dat; | ||||
| 	unsigned int	pull; | ||||
| 	unsigned int	drv; | ||||
| 	unsigned int	pdn_con; | ||||
| 	unsigned int	pdn_pull; | ||||
| 	unsigned char	res1[8]; | ||||
| }; | ||||
|  | ||||
| struct s5pc100_gpio { | ||||
| 	struct s5p_gpio_bank a0; | ||||
| 	struct s5p_gpio_bank a1; | ||||
| 	struct s5p_gpio_bank b; | ||||
| 	struct s5p_gpio_bank c; | ||||
| 	struct s5p_gpio_bank d; | ||||
| 	struct s5p_gpio_bank e0; | ||||
| 	struct s5p_gpio_bank e1; | ||||
| 	struct s5p_gpio_bank f0; | ||||
| 	struct s5p_gpio_bank f1; | ||||
| 	struct s5p_gpio_bank f2; | ||||
| 	struct s5p_gpio_bank f3; | ||||
| 	struct s5p_gpio_bank g0; | ||||
| 	struct s5p_gpio_bank g1; | ||||
| 	struct s5p_gpio_bank g2; | ||||
| 	struct s5p_gpio_bank g3; | ||||
| 	struct s5p_gpio_bank i; | ||||
| 	struct s5p_gpio_bank j0; | ||||
| 	struct s5p_gpio_bank j1; | ||||
| 	struct s5p_gpio_bank j2; | ||||
| 	struct s5p_gpio_bank j3; | ||||
| 	struct s5p_gpio_bank j4; | ||||
| 	struct s5p_gpio_bank k0; | ||||
| 	struct s5p_gpio_bank k1; | ||||
| 	struct s5p_gpio_bank k2; | ||||
| 	struct s5p_gpio_bank k3; | ||||
| 	struct s5p_gpio_bank l0; | ||||
| 	struct s5p_gpio_bank l1; | ||||
| 	struct s5p_gpio_bank l2; | ||||
| 	struct s5p_gpio_bank l3; | ||||
| 	struct s5p_gpio_bank l4; | ||||
| 	struct s5p_gpio_bank h0; | ||||
| 	struct s5p_gpio_bank h1; | ||||
| 	struct s5p_gpio_bank h2; | ||||
| 	struct s5p_gpio_bank h3; | ||||
| }; | ||||
|  | ||||
| struct s5pc110_gpio { | ||||
| 	struct s5p_gpio_bank a0; | ||||
| 	struct s5p_gpio_bank a1; | ||||
| 	struct s5p_gpio_bank b; | ||||
| 	struct s5p_gpio_bank c0; | ||||
| 	struct s5p_gpio_bank c1; | ||||
| 	struct s5p_gpio_bank d0; | ||||
| 	struct s5p_gpio_bank d1; | ||||
| 	struct s5p_gpio_bank e0; | ||||
| 	struct s5p_gpio_bank e1; | ||||
| 	struct s5p_gpio_bank f0; | ||||
| 	struct s5p_gpio_bank f1; | ||||
| 	struct s5p_gpio_bank f2; | ||||
| 	struct s5p_gpio_bank f3; | ||||
| 	struct s5p_gpio_bank g0; | ||||
| 	struct s5p_gpio_bank g1; | ||||
| 	struct s5p_gpio_bank g2; | ||||
| 	struct s5p_gpio_bank g3; | ||||
| 	struct s5p_gpio_bank i; | ||||
| 	struct s5p_gpio_bank j0; | ||||
| 	struct s5p_gpio_bank j1; | ||||
| 	struct s5p_gpio_bank j2; | ||||
| 	struct s5p_gpio_bank j3; | ||||
| 	struct s5p_gpio_bank j4; | ||||
| 	struct s5p_gpio_bank mp0_1; | ||||
| 	struct s5p_gpio_bank mp0_2; | ||||
| 	struct s5p_gpio_bank mp0_3; | ||||
| 	struct s5p_gpio_bank mp0_4; | ||||
| 	struct s5p_gpio_bank mp0_5; | ||||
| 	struct s5p_gpio_bank mp0_6; | ||||
| 	struct s5p_gpio_bank mp0_7; | ||||
| 	struct s5p_gpio_bank mp1_0; | ||||
| 	struct s5p_gpio_bank mp1_1; | ||||
| 	struct s5p_gpio_bank mp1_2; | ||||
| 	struct s5p_gpio_bank mp1_3; | ||||
| 	struct s5p_gpio_bank mp1_4; | ||||
| 	struct s5p_gpio_bank mp1_5; | ||||
| 	struct s5p_gpio_bank mp1_6; | ||||
| 	struct s5p_gpio_bank mp1_7; | ||||
| 	struct s5p_gpio_bank mp1_8; | ||||
| 	struct s5p_gpio_bank mp2_0; | ||||
| 	struct s5p_gpio_bank mp2_1; | ||||
| 	struct s5p_gpio_bank mp2_2; | ||||
| 	struct s5p_gpio_bank mp2_3; | ||||
| 	struct s5p_gpio_bank mp2_4; | ||||
| 	struct s5p_gpio_bank mp2_5; | ||||
| 	struct s5p_gpio_bank mp2_6; | ||||
| 	struct s5p_gpio_bank mp2_7; | ||||
| 	struct s5p_gpio_bank mp2_8; | ||||
| 	struct s5p_gpio_bank res1[48]; | ||||
| 	struct s5p_gpio_bank h0; | ||||
| 	struct s5p_gpio_bank h1; | ||||
| 	struct s5p_gpio_bank h2; | ||||
| 	struct s5p_gpio_bank h3; | ||||
| }; | ||||
|  | ||||
| /* functions */ | ||||
| void s5p_gpio_cfg_pin(struct s5p_gpio_bank *bank, int gpio, int cfg); | ||||
| void s5p_gpio_direction_output(struct s5p_gpio_bank *bank, int gpio, int en); | ||||
| void s5p_gpio_direction_input(struct s5p_gpio_bank *bank, int gpio); | ||||
| void s5p_gpio_set_value(struct s5p_gpio_bank *bank, int gpio, int en); | ||||
| unsigned int s5p_gpio_get_value(struct s5p_gpio_bank *bank, int gpio); | ||||
| void s5p_gpio_set_pull(struct s5p_gpio_bank *bank, int gpio, int mode); | ||||
| void s5p_gpio_set_drv(struct s5p_gpio_bank *bank, int gpio, int mode); | ||||
| void s5p_gpio_set_rate(struct s5p_gpio_bank *bank, int gpio, int mode); | ||||
|  | ||||
| /* GPIO pins per bank  */ | ||||
| #define GPIO_PER_BANK 8 | ||||
|  | ||||
| static inline unsigned int s5p_gpio_base(int nr) | ||||
| { | ||||
| 	return S5PC110_GPIO_BASE; | ||||
| } | ||||
|  | ||||
| #define s5pc110_gpio_get_nr(bank, pin) \ | ||||
| 	((((((unsigned int)&(((struct s5pc110_gpio *)S5PC110_GPIO_BASE)->bank))\ | ||||
| 	    - S5PC110_GPIO_BASE) / sizeof(struct s5p_gpio_bank)) \ | ||||
| 	  * GPIO_PER_BANK) + pin) | ||||
| #endif | ||||
|  | ||||
| /* Pin configurations */ | ||||
| #define GPIO_INPUT	0x0 | ||||
| #define GPIO_OUTPUT	0x1 | ||||
| #define GPIO_IRQ	0xf | ||||
| #define GPIO_FUNC(x)	(x) | ||||
|  | ||||
| /* Pull mode */ | ||||
| #define GPIO_PULL_NONE	0x0 | ||||
| #define GPIO_PULL_DOWN	0x1 | ||||
| #define GPIO_PULL_UP	0x2 | ||||
|  | ||||
| /* Drive Strength level */ | ||||
| #define GPIO_DRV_1X	0x0 | ||||
| #define GPIO_DRV_3X	0x1 | ||||
| #define GPIO_DRV_2X	0x2 | ||||
| #define GPIO_DRV_4X	0x3 | ||||
| #define GPIO_DRV_FAST	0x0 | ||||
| #define GPIO_DRV_SLOW	0x1 | ||||
|  | ||||
| #endif	/* S5P_GPIO_H_ */ | ||||
							
								
								
									
										73
									
								
								src/cpu/samsung/s5p-common/mmc.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								src/cpu/samsung/s5p-common/mmc.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,73 @@ | ||||
| /* | ||||
|  * (C) Copyright 2009 SAMSUNG Electronics | ||||
|  * Minkyu Kang <mk7.kang@samsung.com> | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation; either version 2 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #ifndef __ASM_ARCH_MMC_H_ | ||||
| #define __ASM_ARCH_MMC_H_ | ||||
|  | ||||
| #ifndef __ASSEMBLY__ | ||||
| struct s5p_mmc { | ||||
| 	unsigned int	sysad; | ||||
| 	unsigned short	blksize; | ||||
| 	unsigned short	blkcnt; | ||||
| 	unsigned int	argument; | ||||
| 	unsigned short	trnmod; | ||||
| 	unsigned short	cmdreg; | ||||
| 	unsigned int	rspreg0; | ||||
| 	unsigned int	rspreg1; | ||||
| 	unsigned int	rspreg2; | ||||
| 	unsigned int	rspreg3; | ||||
| 	unsigned int	bdata; | ||||
| 	unsigned int	prnsts; | ||||
| 	unsigned char	hostctl; | ||||
| 	unsigned char	pwrcon; | ||||
| 	unsigned char	blkgap; | ||||
| 	unsigned char	wakcon; | ||||
| 	unsigned short	clkcon; | ||||
| 	unsigned char	timeoutcon; | ||||
| 	unsigned char	swrst; | ||||
| 	unsigned int	norintsts;	/* errintsts */ | ||||
| 	unsigned int	norintstsen;	/* errintstsen */ | ||||
| 	unsigned int	norintsigen;	/* errintsigen */ | ||||
| 	unsigned short	acmd12errsts; | ||||
| 	unsigned char	res1[2]; | ||||
| 	unsigned int	capareg; | ||||
| 	unsigned char	res2[4]; | ||||
| 	unsigned int	maxcurr; | ||||
| 	unsigned char	res3[0x34]; | ||||
| 	unsigned int	control2; | ||||
| 	unsigned int	control3; | ||||
| 	unsigned char	res4[4]; | ||||
| 	unsigned int	control4; | ||||
| 	unsigned char	res5[0x6e]; | ||||
| 	unsigned short	hcver; | ||||
| 	unsigned char	res6[0xFFF00]; | ||||
| }; | ||||
|  | ||||
| struct mmc_host { | ||||
| 	struct s5p_mmc *reg; | ||||
| 	unsigned int version;	/* SDHCI spec. version */ | ||||
| 	unsigned int clock;	/* Current clock (MHz) */ | ||||
| 	int dev_index; | ||||
| }; | ||||
|  | ||||
| int s5p_mmc_init(int dev_index, int bus_width); | ||||
|  | ||||
| #endif	/* __ASSEMBLY__ */ | ||||
| #endif | ||||
							
								
								
									
										42
									
								
								src/cpu/samsung/s5p-common/power.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								src/cpu/samsung/s5p-common/power.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| /* | ||||
|  * Copyright (c) 2009 Samsung Electronics | ||||
|  * Kyungmin Park <kyungmin.park@samsung.com> | ||||
|  * Minkyu Kang <mk7.kang@samsung.com> | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License as | ||||
|  * published by the Free Software Foundation; either version 2 of | ||||
|  * the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||||
|  * MA 02111-1307 USA | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #ifndef __ASM_ARM_ARCH_POWER_H_ | ||||
| #define __ASM_ARM_ARCH_POWER_H_ | ||||
|  | ||||
| /* | ||||
|  * Power control | ||||
|  */ | ||||
| #define S5PC100_OTHERS			0xE0108200 | ||||
| #define S5PC100_RST_STAT		0xE0108300 | ||||
| #define S5PC100_SLEEP_WAKEUP		(1 << 3) | ||||
| #define S5PC100_WAKEUP_STAT		0xE0108304 | ||||
| #define S5PC100_INFORM0			0xE0108400 | ||||
|  | ||||
| #define S5PC110_RST_STAT		0xE010A000 | ||||
| #define S5PC110_SLEEP_WAKEUP		(1 << 3) | ||||
| #define S5PC110_WAKEUP_STAT		0xE010C200 | ||||
| #define S5PC110_OTHERS			0xE010E000 | ||||
| #define S5PC110_USB_PHY_CON		0xE010E80C | ||||
| #define S5PC110_INFORM0			0xE010F000 | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										75
									
								
								src/cpu/samsung/s5p-common/pwm.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								src/cpu/samsung/s5p-common/pwm.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | ||||
| /* | ||||
|  * Copyright (C) 2009 Samsung Electronics | ||||
|  * Kyungmin Park <kyungmin.park@samsung.com> | ||||
|  * Minkyu Kang <mk7.kang@samsung.com> | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License as | ||||
|  * published by the Free Software Foundation; either version 2 of | ||||
|  * the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||||
|  * MA 02111-1307 USA | ||||
|  */ | ||||
|  | ||||
| #ifndef __S5P_COMMON_PWM_H_ | ||||
| #define __S5P_COMMON_PWM_H_ | ||||
|  | ||||
| #define PRESCALER_0		(8 - 1)		/* prescaler of timer 0, 1 */ | ||||
| #define PRESCALER_1		(16 - 1)	/* prescaler of timer 2, 3, 4 */ | ||||
|  | ||||
| /* Divider MUX */ | ||||
| #define MUX_DIV_1		0		/* 1/1 period */ | ||||
| #define MUX_DIV_2		1		/* 1/2 period */ | ||||
| #define MUX_DIV_4		2		/* 1/4 period */ | ||||
| #define MUX_DIV_8		3		/* 1/8 period */ | ||||
| #define MUX_DIV_16		4		/* 1/16 period */ | ||||
|  | ||||
| #define MUX_DIV_SHIFT(x)	(x * 4) | ||||
|  | ||||
| #define TCON_OFFSET(x)		((x + 1) * (!!x) << 2) | ||||
|  | ||||
| #define TCON_START(x)		(1 << TCON_OFFSET(x)) | ||||
| #define TCON_UPDATE(x)		(1 << (TCON_OFFSET(x) + 1)) | ||||
| #define TCON_INVERTER(x)	(1 << (TCON_OFFSET(x) + 2)) | ||||
| #define TCON_AUTO_RELOAD(x)	(1 << (TCON_OFFSET(x) + 3)) | ||||
| #define TCON4_AUTO_RELOAD	(1 << 22) | ||||
|  | ||||
| #ifndef __ASSEMBLY__ | ||||
| struct s5p_timer { | ||||
| 	unsigned int	tcfg0; | ||||
| 	unsigned int	tcfg1; | ||||
| 	unsigned int	tcon; | ||||
| 	unsigned int	tcntb0; | ||||
| 	unsigned int	tcmpb0; | ||||
| 	unsigned int	tcnto0; | ||||
| 	unsigned int	tcntb1; | ||||
| 	unsigned int	tcmpb1; | ||||
| 	unsigned int	tcnto1; | ||||
| 	unsigned int	tcntb2; | ||||
| 	unsigned int	tcmpb2; | ||||
| 	unsigned int	tcnto2; | ||||
| 	unsigned int	tcntb3; | ||||
| 	unsigned int	res1; | ||||
| 	unsigned int	tcnto3; | ||||
| 	unsigned int	tcntb4; | ||||
| 	unsigned int	tcnto4; | ||||
| 	unsigned int	tintcstat; | ||||
| }; | ||||
| #endif	/* __ASSEMBLY__ */ | ||||
|  | ||||
| /* FIXME(dhendrix): added missing prototypes... */ | ||||
| int pwm_config(int pwm_id, int duty_ns, int period_ns); | ||||
| int pwm_check_enabled(int pwm_id); | ||||
| void pwm_disable(int pwm_id); | ||||
| int pwm_enable(int pwm_id); | ||||
| int pwm_init(int pwm_id, int div, int invert); | ||||
|  | ||||
| #endif	/* __S5P_COMMON_PWM_H_ */ | ||||
							
								
								
									
										53
									
								
								src/cpu/samsung/s5p-common/sromc.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								src/cpu/samsung/s5p-common/sromc.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| /* | ||||
|  * (C) Copyright 2010 Samsung Electronics | ||||
|  * Naveen Krishna Ch <ch.naveen@samsung.com> | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License as | ||||
|  * published by the Free Software Foundation; either version 2 of | ||||
|  * the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||||
|  * MA 02111-1307 USA | ||||
|  * | ||||
|  * Note: This file contains the register description for Memory subsystem | ||||
|  * 	 (SROM, NAND Flash, OneNand, DDR, OneDRAM) on S5PC1XX. | ||||
|  * | ||||
|  * 	 Only SROMC is defined as of now | ||||
|  */ | ||||
|  | ||||
| #ifndef __ASM_ARCH_SROMC_H_ | ||||
| #define __ASM_ARCH_SROMC_H_ | ||||
|  | ||||
| #define SMC_DATA16_WIDTH(x)    (1<<((x*4)+0)) | ||||
| #define SMC_BYTE_ADDR_MODE(x)  (1<<((x*4)+1))  /* 0-> Half-word base address*/ | ||||
| 						/* 1-> Byte base address*/ | ||||
| #define SMC_WAIT_ENABLE(x)     (1<<((x*4)+2)) | ||||
| #define SMC_BYTE_ENABLE(x)     (1<<((x*4)+3)) | ||||
|  | ||||
| #define SMC_BC_TACS(x) (x << 28) /* 0clk     address set-up */ | ||||
| #define SMC_BC_TCOS(x) (x << 24) /* 4clk     chip selection set-up */ | ||||
| #define SMC_BC_TACC(x) (x << 16) /* 14clk    access cycle */ | ||||
| #define SMC_BC_TCOH(x) (x << 12) /* 1clk     chip selection hold */ | ||||
| #define SMC_BC_TAH(x)  (x << 8)  /* 4clk     address holding time */ | ||||
| #define SMC_BC_TACP(x) (x << 4)  /* 6clk     page mode access cycle */ | ||||
| #define SMC_BC_PMC(x)  (x << 0)  /* normal(1data)page mode configuration */ | ||||
|  | ||||
| #ifndef __ASSEMBLY__ | ||||
| struct s5p_sromc { | ||||
| 	unsigned int	bw; | ||||
| 	unsigned int	bc[6]; | ||||
| }; | ||||
| #endif	/* __ASSEMBLY__ */ | ||||
|  | ||||
| /* Configure the Band Width and Bank Control Regs for required SROMC Bank */ | ||||
| void s5p_config_sromc(u32 srom_bank, u32 srom_bw_conf, u32 srom_bc_conf); | ||||
|  | ||||
| #endif /* __ASM_ARCH_SMC_H_ */ | ||||
							
								
								
									
										29
									
								
								src/cpu/samsung/s5p-common/sys_proto.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/cpu/samsung/s5p-common/sys_proto.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | ||||
| /* | ||||
|  * Copyright (C) 2009 Samsung Electrnoics | ||||
|  * Minkyu Kang <mk7.kang@samsung.com> | ||||
|  * | ||||
|  * See file CREDITS for list of people who contributed to this | ||||
|  * project. | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License as | ||||
|  * published by the Free Software Foundation; either version 2 of | ||||
|  * the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||||
|  * MA 02111-1307 USA | ||||
|  */ | ||||
|  | ||||
| #ifndef _SYS_PROTO_H_ | ||||
| #define _SYS_PROTO_H_ | ||||
|  | ||||
| u32 get_device_type(void); | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										58
									
								
								src/cpu/samsung/s5p-common/uart.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								src/cpu/samsung/s5p-common/uart.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| /* | ||||
|  * (C) Copyright 2009 Samsung Electronics | ||||
|  * Minkyu Kang <mk7.kang@samsung.com> | ||||
|  * Heungjun Kim <riverful.kim@samsung.com> | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License as | ||||
|  * published by the Free Software Foundation; either version 2 of | ||||
|  * the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||||
|  * MA 02111-1307 USA | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #ifndef __ASM_ARCH_UART_H_ | ||||
| #define __ASM_ARCH_UART_H_ | ||||
|  | ||||
| #ifndef __ASSEMBLY__ | ||||
| /* baudrate rest value */ | ||||
| union br_rest { | ||||
| 	unsigned short	slot;		/* udivslot */ | ||||
| 	unsigned char	value;		/* ufracval */ | ||||
| }; | ||||
|  | ||||
| struct s5p_uart { | ||||
| 	unsigned int	ulcon; | ||||
| 	unsigned int	ucon; | ||||
| 	unsigned int	ufcon; | ||||
| 	unsigned int	umcon; | ||||
| 	unsigned int	utrstat; | ||||
| 	unsigned int	uerstat; | ||||
| 	unsigned int	ufstat; | ||||
| 	unsigned int	umstat; | ||||
| 	unsigned char	utxh; | ||||
| 	unsigned char	res1[3]; | ||||
| 	unsigned char	urxh; | ||||
| 	unsigned char	res2[3]; | ||||
| 	unsigned int	ubrdiv; | ||||
| 	union br_rest	rest; | ||||
| 	unsigned char	res3[0x3d0]; | ||||
| }; | ||||
|  | ||||
| static inline int s5p_uart_divslot(void) | ||||
| { | ||||
| 	return 1; | ||||
| } | ||||
|  | ||||
| #endif	/* __ASSEMBLY__ */ | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										58
									
								
								src/cpu/samsung/s5p-common/watchdog.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								src/cpu/samsung/s5p-common/watchdog.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| /* | ||||
|  * Copyright (C) 2011 Samsung Electronics | ||||
|  * Heungjun Kim <riverful.kim@samsung.com> | ||||
|  * Minkyu Kang <mk7.kang@samsung.com> | ||||
|  * | ||||
|  * See file CREDITS for list of people who contributed to this | ||||
|  * project. | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License as | ||||
|  * published by the Free Software Foundation; either version 2 of | ||||
|  * the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||||
|  * MA 02111-1307 USA | ||||
|  */ | ||||
|  | ||||
| #ifndef __ASM_ARM_ARCH_WATCHDOG_H_ | ||||
| #define __ASM_ARM_ARCH_WATCHDOG_H_ | ||||
|  | ||||
| #define WTCON_RESET_OFFSET	0 | ||||
| #define WTCON_INTEN_OFFSET	2 | ||||
| #define WTCON_CLKSEL_OFFSET	3 | ||||
| #define WTCON_EN_OFFSET		5 | ||||
| #define WTCON_PRE_OFFSET	8 | ||||
|  | ||||
| #define WTCON_CLK_16		0x0 | ||||
| #define WTCON_CLK_32		0x1 | ||||
| #define WTCON_CLK_64		0x2 | ||||
| #define WTCON_CLK_128		0x3 | ||||
|  | ||||
| #define WTCON_CLK(x)		((x & 0x3) << WTCON_CLKSEL_OFFSET) | ||||
| #define WTCON_PRESCALER(x)	((x) << WTCON_PRE_OFFSET) | ||||
| #define WTCON_EN		(0x1 << WTCON_EN_OFFSET) | ||||
| #define WTCON_RESET		(0x1 << WTCON_RESET_OFFSET) | ||||
| #define WTCON_INT		(0x1 << WTCON_INTEN_OFFSET) | ||||
|  | ||||
| #ifndef __ASSEMBLY__ | ||||
| struct s5p_watchdog { | ||||
| 	unsigned int wtcon; | ||||
| 	unsigned int wtdat; | ||||
| 	unsigned int wtcnt; | ||||
| 	unsigned int wtclrint; | ||||
| }; | ||||
|  | ||||
| /* functions */ | ||||
| void wdt_stop(void); | ||||
| void wdt_start(unsigned int timeout); | ||||
| #endif	/* __ASSEMBLY__ */ | ||||
|  | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user