mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-15 05:11:32 +00:00
Merge branch 'next-samsung-cleanup-2' into next-samsung-devel-2
Conflicts: arch/arm/plat-s5p/include/plat/pll.h
This commit is contained in:
commit
86f82da586
@ -1,7 +0,0 @@
|
||||
#ifndef __MACH_CLKDEV_H__
|
||||
#define __MACH_CLKDEV_H__
|
||||
|
||||
#define __clk_get(clk) ({ 1; })
|
||||
#define __clk_put(clk) do {} while (0)
|
||||
|
||||
#endif
|
@ -10,16 +10,7 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <linux/mmc/card.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <plat/regs-sdhci.h>
|
||||
|
||||
/* clock sources for the mmc bus clock, order as for the ctrl2[5..4] */
|
||||
|
||||
@ -29,41 +20,3 @@ char *exynos4_hsmmc_clksrcs[4] = {
|
||||
[2] = "sclk_mmc", /* mmc_bus */
|
||||
[3] = NULL,
|
||||
};
|
||||
|
||||
void exynos4_setup_sdhci_cfg_card(struct platform_device *dev, void __iomem *r,
|
||||
struct mmc_ios *ios, struct mmc_card *card)
|
||||
{
|
||||
u32 ctrl2, ctrl3;
|
||||
|
||||
/* don't need to alter anything according to card-type */
|
||||
|
||||
ctrl2 = readl(r + S3C_SDHCI_CONTROL2);
|
||||
|
||||
/* select base clock source to HCLK */
|
||||
|
||||
ctrl2 &= S3C_SDHCI_CTRL2_SELBASECLK_MASK;
|
||||
|
||||
/*
|
||||
* clear async mode, enable conflict mask, rx feedback ctrl, SD
|
||||
* clk hold and no use debounce count
|
||||
*/
|
||||
|
||||
ctrl2 |= (S3C64XX_SDHCI_CTRL2_ENSTAASYNCCLR |
|
||||
S3C64XX_SDHCI_CTRL2_ENCMDCNFMSK |
|
||||
S3C_SDHCI_CTRL2_ENFBCLKRX |
|
||||
S3C_SDHCI_CTRL2_DFCNT_NONE |
|
||||
S3C_SDHCI_CTRL2_ENCLKOUTHOLD);
|
||||
|
||||
/* Tx and Rx feedback clock delay control */
|
||||
|
||||
if (ios->clock < 25 * 1000000)
|
||||
ctrl3 = (S3C_SDHCI_CTRL3_FCSEL3 |
|
||||
S3C_SDHCI_CTRL3_FCSEL2 |
|
||||
S3C_SDHCI_CTRL3_FCSEL1 |
|
||||
S3C_SDHCI_CTRL3_FCSEL0);
|
||||
else
|
||||
ctrl3 = (S3C_SDHCI_CTRL3_FCSEL1 | S3C_SDHCI_CTRL3_FCSEL0);
|
||||
|
||||
writel(ctrl2, r + S3C_SDHCI_CONTROL2);
|
||||
writel(ctrl3, r + S3C_SDHCI_CONTROL3);
|
||||
}
|
||||
|
@ -696,9 +696,9 @@ static void __init h1940_init(void)
|
||||
S3C2410_MISCCR_USBSUSPND0 |
|
||||
S3C2410_MISCCR_USBSUSPND1, 0x0);
|
||||
|
||||
tmp = (0x78 << S3C24XX_PLLCON_MDIVSHIFT)
|
||||
| (0x02 << S3C24XX_PLLCON_PDIVSHIFT)
|
||||
| (0x03 << S3C24XX_PLLCON_SDIVSHIFT);
|
||||
tmp = (0x78 << S3C24XX_PLL_MDIV_SHIFT)
|
||||
| (0x02 << S3C24XX_PLL_PDIV_SHIFT)
|
||||
| (0x03 << S3C24XX_PLL_SDIV_SHIFT);
|
||||
writel(tmp, S3C2410_UPLLCON);
|
||||
|
||||
gpio_request(S3C2410_GPC(0), "LCD power");
|
||||
|
@ -21,7 +21,6 @@
|
||||
#include <plat/cpu.h>
|
||||
|
||||
#include <plat/cpu-freq.h>
|
||||
#include <plat/pll6553x.h>
|
||||
#include <plat/pll.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
|
@ -12,17 +12,7 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <linux/mmc/card.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <plat/regs-sdhci.h>
|
||||
#include <plat/sdhci.h>
|
||||
|
||||
/* clock sources for the mmc bus clock, order as for the ctrl2[5..4] */
|
||||
|
||||
@ -32,30 +22,3 @@ char *s3c2416_hsmmc_clksrcs[4] = {
|
||||
[2] = "hsmmc-if",
|
||||
/* [3] = "48m", - note not successfully used yet */
|
||||
};
|
||||
|
||||
void s3c2416_setup_sdhci_cfg_card(struct platform_device *dev,
|
||||
void __iomem *r,
|
||||
struct mmc_ios *ios,
|
||||
struct mmc_card *card)
|
||||
{
|
||||
u32 ctrl2, ctrl3;
|
||||
|
||||
ctrl2 = __raw_readl(r + S3C_SDHCI_CONTROL2);
|
||||
ctrl2 &= S3C_SDHCI_CTRL2_SELBASECLK_MASK;
|
||||
ctrl2 |= (S3C64XX_SDHCI_CTRL2_ENSTAASYNCCLR |
|
||||
S3C64XX_SDHCI_CTRL2_ENCMDCNFMSK |
|
||||
S3C_SDHCI_CTRL2_ENFBCLKRX |
|
||||
S3C_SDHCI_CTRL2_DFCNT_NONE |
|
||||
S3C_SDHCI_CTRL2_ENCLKOUTHOLD);
|
||||
|
||||
if (ios->clock < 25 * 1000000)
|
||||
ctrl3 = (S3C_SDHCI_CTRL3_FCSEL3 |
|
||||
S3C_SDHCI_CTRL3_FCSEL2 |
|
||||
S3C_SDHCI_CTRL3_FCSEL1 |
|
||||
S3C_SDHCI_CTRL3_FCSEL0);
|
||||
else
|
||||
ctrl3 = (S3C_SDHCI_CTRL3_FCSEL1 | S3C_SDHCI_CTRL3_FCSEL0);
|
||||
|
||||
__raw_writel(ctrl2, r + S3C_SDHCI_CONTROL2);
|
||||
__raw_writel(ctrl3, r + S3C_SDHCI_CONTROL3);
|
||||
}
|
||||
|
@ -25,13 +25,13 @@
|
||||
|
||||
#include <mach/regs-sys.h>
|
||||
#include <mach/regs-clock.h>
|
||||
#include <mach/pll.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/devs.h>
|
||||
#include <plat/cpu-freq.h>
|
||||
#include <plat/clock.h>
|
||||
#include <plat/clock-clksrc.h>
|
||||
#include <plat/pll.h>
|
||||
|
||||
/* fin_apll, fin_mpll and fin_epll are all the same clock, which we call
|
||||
* ext_xtal_mux for want of an actual name from the manual.
|
||||
@ -735,7 +735,8 @@ void __init_or_cpufreq s3c6400_setup_clocks(void)
|
||||
/* For now assume the mux always selects the crystal */
|
||||
clk_ext_xtal_mux.parent = xtal_clk;
|
||||
|
||||
epll = s3c6400_get_epll(xtal);
|
||||
epll = s3c_get_pll6553x(xtal, __raw_readl(S3C_EPLL_CON0),
|
||||
__raw_readl(S3C_EPLL_CON1));
|
||||
mpll = s3c6400_get_pll(xtal, __raw_readl(S3C_MPLL_CON));
|
||||
apll = s3c6400_get_pll(xtal, __raw_readl(S3C_APLL_CON));
|
||||
|
||||
|
@ -33,8 +33,8 @@
|
||||
#include <plat/devs.h>
|
||||
#include <plat/clock.h>
|
||||
|
||||
#include <mach/s3c6400.h>
|
||||
#include <mach/s3c6410.h>
|
||||
#include <plat/s3c6400.h>
|
||||
#include <plat/s3c6410.h>
|
||||
|
||||
/* table of supported CPUs */
|
||||
|
||||
|
@ -1,7 +0,0 @@
|
||||
#ifndef __MACH_CLKDEV_H__
|
||||
#define __MACH_CLKDEV_H__
|
||||
|
||||
#define __clk_get(clk) ({ 1; })
|
||||
#define __clk_put(clk) do {} while (0)
|
||||
|
||||
#endif
|
@ -1,45 +0,0 @@
|
||||
/* arch/arm/plat-s3c64xx/include/plat/pll.h
|
||||
*
|
||||
* Copyright 2008 Openmoko, Inc.
|
||||
* Copyright 2008 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
* http://armlinux.simtec.co.uk/
|
||||
*
|
||||
* S3C64XX PLL code
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#define S3C6400_PLL_MDIV_MASK ((1 << (25-16+1)) - 1)
|
||||
#define S3C6400_PLL_PDIV_MASK ((1 << (13-8+1)) - 1)
|
||||
#define S3C6400_PLL_SDIV_MASK ((1 << (2-0+1)) - 1)
|
||||
#define S3C6400_PLL_MDIV_SHIFT (16)
|
||||
#define S3C6400_PLL_PDIV_SHIFT (8)
|
||||
#define S3C6400_PLL_SDIV_SHIFT (0)
|
||||
|
||||
#include <asm/div64.h>
|
||||
#include <plat/pll6553x.h>
|
||||
|
||||
static inline unsigned long s3c6400_get_pll(unsigned long baseclk,
|
||||
u32 pllcon)
|
||||
{
|
||||
u32 mdiv, pdiv, sdiv;
|
||||
u64 fvco = baseclk;
|
||||
|
||||
mdiv = (pllcon >> S3C6400_PLL_MDIV_SHIFT) & S3C6400_PLL_MDIV_MASK;
|
||||
pdiv = (pllcon >> S3C6400_PLL_PDIV_SHIFT) & S3C6400_PLL_PDIV_MASK;
|
||||
sdiv = (pllcon >> S3C6400_PLL_SDIV_SHIFT) & S3C6400_PLL_SDIV_MASK;
|
||||
|
||||
fvco *= mdiv;
|
||||
do_div(fvco, (pdiv << sdiv));
|
||||
|
||||
return (unsigned long)fvco;
|
||||
}
|
||||
|
||||
static inline unsigned long s3c6400_get_epll(unsigned long baseclk)
|
||||
{
|
||||
return s3c_get_pll6553x(baseclk, __raw_readl(S3C_EPLL_CON0),
|
||||
__raw_readl(S3C_EPLL_CON1));
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
/* linux/arch/arm/mach-s3c6400/include/mach/pwm-clock.h
|
||||
*
|
||||
* Copyright 2008 Openmoko, Inc.
|
||||
* Copyright 2008 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
* http://armlinux.simtec.co.uk/
|
||||
*
|
||||
* S3C64xx - pwm clock and timer support
|
||||
*/
|
||||
|
||||
/**
|
||||
* pwm_cfg_src_is_tclk() - return whether the given mux config is a tclk
|
||||
* @tcfg: The timer TCFG1 register bits shifted down to 0.
|
||||
*
|
||||
* Return true if the given configuration from TCFG1 is a TCLK instead
|
||||
* any of the TDIV clocks.
|
||||
*/
|
||||
static inline int pwm_cfg_src_is_tclk(unsigned long tcfg)
|
||||
{
|
||||
return tcfg >= S3C64XX_TCFG1_MUX_TCLK;
|
||||
}
|
||||
|
||||
/**
|
||||
* tcfg_to_divisor() - convert tcfg1 setting to a divisor
|
||||
* @tcfg1: The tcfg1 setting, shifted down.
|
||||
*
|
||||
* Get the divisor value for the given tcfg1 setting. We assume the
|
||||
* caller has already checked to see if this is not a TCLK source.
|
||||
*/
|
||||
static inline unsigned long tcfg_to_divisor(unsigned long tcfg1)
|
||||
{
|
||||
return 1 << tcfg1;
|
||||
}
|
||||
|
||||
/**
|
||||
* pwm_tdiv_has_div1() - does the tdiv setting have a /1
|
||||
*
|
||||
* Return true if we have a /1 in the tdiv setting.
|
||||
*/
|
||||
static inline unsigned int pwm_tdiv_has_div1(void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* pwm_tdiv_div_bits() - calculate TCFG1 divisor value.
|
||||
* @div: The divisor to calculate the bit information for.
|
||||
*
|
||||
* Turn a divisor into the necessary bit field for TCFG1.
|
||||
*/
|
||||
static inline unsigned long pwm_tdiv_div_bits(unsigned int div)
|
||||
{
|
||||
return ilog2(div);
|
||||
}
|
||||
|
||||
#define S3C_TCFG1_MUX_TCLK S3C64XX_TCFG1_MUX_TCLK
|
@ -45,7 +45,7 @@
|
||||
#include <plat/fb.h>
|
||||
#include <plat/regs-fb-v4.h>
|
||||
|
||||
#include <mach/s3c6410.h>
|
||||
#include <plat/s3c6410.h>
|
||||
#include <plat/clock.h>
|
||||
#include <plat/devs.h>
|
||||
#include <plat/cpu.h>
|
||||
|
@ -43,7 +43,6 @@
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/map.h>
|
||||
|
||||
#include <mach/s3c6410.h>
|
||||
#include <mach/regs-sys.h>
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/regs-modem.h>
|
||||
@ -51,6 +50,7 @@
|
||||
|
||||
#include <mach/regs-gpio-memport.h>
|
||||
|
||||
#include <plat/s3c6410.h>
|
||||
#include <plat/regs-serial.h>
|
||||
#include <plat/regs-fb-v4.h>
|
||||
#include <plat/fb.h>
|
||||
|
@ -37,7 +37,7 @@
|
||||
#include <plat/fb.h>
|
||||
#include <plat/nand.h>
|
||||
|
||||
#include <mach/s3c6410.h>
|
||||
#include <plat/s3c6410.h>
|
||||
#include <plat/clock.h>
|
||||
#include <plat/devs.h>
|
||||
#include <plat/cpu.h>
|
||||
|
@ -32,8 +32,8 @@
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/regs-modem.h>
|
||||
#include <mach/regs-srom.h>
|
||||
#include <mach/s3c6410.h>
|
||||
|
||||
#include <plat/s3c6410.h>
|
||||
#include <plat/adc.h>
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/devs.h>
|
||||
|
@ -39,7 +39,7 @@
|
||||
#include <plat/iic.h>
|
||||
#include <plat/fb.h>
|
||||
|
||||
#include <mach/s3c6410.h>
|
||||
#include <plat/s3c6410.h>
|
||||
#include <plat/clock.h>
|
||||
#include <plat/devs.h>
|
||||
#include <plat/cpu.h>
|
||||
|
@ -33,8 +33,8 @@
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/regs-modem.h>
|
||||
#include <mach/regs-srom.h>
|
||||
#include <mach/s3c6410.h>
|
||||
|
||||
#include <plat/s3c6410.h>
|
||||
#include <plat/adc.h>
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/devs.h>
|
||||
|
@ -22,8 +22,8 @@
|
||||
|
||||
#include <mach/map.h>
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/s3c6410.h>
|
||||
|
||||
#include <plat/s3c6410.h>
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/devs.h>
|
||||
#include <plat/fb.h>
|
||||
|
@ -22,8 +22,8 @@
|
||||
|
||||
#include <mach/map.h>
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/s3c6410.h>
|
||||
|
||||
#include <plat/s3c6410.h>
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/devs.h>
|
||||
#include <plat/fb.h>
|
||||
|
@ -31,7 +31,7 @@
|
||||
|
||||
#include <plat/regs-serial.h>
|
||||
|
||||
#include <mach/s3c6400.h>
|
||||
#include <plat/s3c6400.h>
|
||||
#include <plat/clock.h>
|
||||
#include <plat/devs.h>
|
||||
#include <plat/cpu.h>
|
||||
|
@ -63,7 +63,7 @@
|
||||
#include <plat/fb.h>
|
||||
#include <plat/gpio-cfg.h>
|
||||
|
||||
#include <mach/s3c6410.h>
|
||||
#include <plat/s3c6410.h>
|
||||
#include <plat/clock.h>
|
||||
#include <plat/devs.h>
|
||||
#include <plat/cpu.h>
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include <plat/sdhci.h>
|
||||
#include <plat/iic-core.h>
|
||||
#include <plat/onenand-core.h>
|
||||
#include <mach/s3c6400.h>
|
||||
#include <plat/s3c6400.h>
|
||||
|
||||
void __init s3c6400_map_io(void)
|
||||
{
|
||||
|
@ -41,8 +41,8 @@
|
||||
#include <plat/adc-core.h>
|
||||
#include <plat/iic-core.h>
|
||||
#include <plat/onenand-core.h>
|
||||
#include <mach/s3c6400.h>
|
||||
#include <mach/s3c6410.h>
|
||||
#include <plat/s3c6400.h>
|
||||
#include <plat/s3c6410.h>
|
||||
|
||||
void __init s3c6410_map_io(void)
|
||||
{
|
||||
|
@ -12,17 +12,7 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <linux/mmc/card.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <plat/regs-sdhci.h>
|
||||
#include <plat/sdhci.h>
|
||||
|
||||
/* clock sources for the mmc bus clock, order as for the ctrl2[5..4] */
|
||||
|
||||
@ -32,41 +22,3 @@ char *s3c64xx_hsmmc_clksrcs[4] = {
|
||||
[2] = "mmc_bus",
|
||||
/* [3] = "48m", - note not successfully used yet */
|
||||
};
|
||||
|
||||
void s3c6400_setup_sdhci_cfg_card(struct platform_device *dev,
|
||||
void __iomem *r,
|
||||
struct mmc_ios *ios,
|
||||
struct mmc_card *card)
|
||||
{
|
||||
u32 ctrl2, ctrl3;
|
||||
|
||||
ctrl2 = readl(r + S3C_SDHCI_CONTROL2);
|
||||
ctrl2 &= S3C_SDHCI_CTRL2_SELBASECLK_MASK;
|
||||
ctrl2 |= (S3C64XX_SDHCI_CTRL2_ENSTAASYNCCLR |
|
||||
S3C64XX_SDHCI_CTRL2_ENCMDCNFMSK |
|
||||
S3C_SDHCI_CTRL2_ENFBCLKRX |
|
||||
S3C_SDHCI_CTRL2_DFCNT_NONE |
|
||||
S3C_SDHCI_CTRL2_ENCLKOUTHOLD);
|
||||
|
||||
if (ios->clock < 25 * 1000000)
|
||||
ctrl3 = (S3C_SDHCI_CTRL3_FCSEL3 |
|
||||
S3C_SDHCI_CTRL3_FCSEL2 |
|
||||
S3C_SDHCI_CTRL3_FCSEL1 |
|
||||
S3C_SDHCI_CTRL3_FCSEL0);
|
||||
else
|
||||
ctrl3 = (S3C_SDHCI_CTRL3_FCSEL1 | S3C_SDHCI_CTRL3_FCSEL0);
|
||||
|
||||
pr_debug("%s: CTRL 2=%08x, 3=%08x\n", __func__, ctrl2, ctrl3);
|
||||
writel(ctrl2, r + S3C_SDHCI_CONTROL2);
|
||||
writel(ctrl3, r + S3C_SDHCI_CONTROL3);
|
||||
}
|
||||
|
||||
void s3c6410_setup_sdhci_cfg_card(struct platform_device *dev,
|
||||
void __iomem *r,
|
||||
struct mmc_ios *ios,
|
||||
struct mmc_card *card)
|
||||
{
|
||||
writel(S3C64XX_SDHCI_CONTROL4_DRIVE_9mA, r + S3C64XX_SDHCI_CONTROL4);
|
||||
|
||||
s3c6400_setup_sdhci_cfg_card(dev, r, ios, card);
|
||||
}
|
||||
|
@ -1,7 +0,0 @@
|
||||
#ifndef __MACH_CLKDEV_H__
|
||||
#define __MACH_CLKDEV_H__
|
||||
|
||||
#define __clk_get(clk) ({ 1; })
|
||||
#define __clk_put(clk) do {} while (0)
|
||||
|
||||
#endif
|
@ -1,68 +0,0 @@
|
||||
/* linux/arch/arm/mach-s5p64x0/include/mach/pwm-clock.h
|
||||
*
|
||||
* Copyright (c) 2009-2010 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com
|
||||
*
|
||||
* Copyright 2008 Openmoko, Inc.
|
||||
* Copyright 2008 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
* http://armlinux.simtec.co.uk/
|
||||
*
|
||||
* S5P64X0 - pwm clock and timer support
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_PWMCLK_H
|
||||
#define __ASM_ARCH_PWMCLK_H __FILE__
|
||||
|
||||
/**
|
||||
* pwm_cfg_src_is_tclk() - return whether the given mux config is a tclk
|
||||
* @tcfg: The timer TCFG1 register bits shifted down to 0.
|
||||
*
|
||||
* Return true if the given configuration from TCFG1 is a TCLK instead
|
||||
* any of the TDIV clocks.
|
||||
*/
|
||||
static inline int pwm_cfg_src_is_tclk(unsigned long tcfg)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* tcfg_to_divisor() - convert tcfg1 setting to a divisor
|
||||
* @tcfg1: The tcfg1 setting, shifted down.
|
||||
*
|
||||
* Get the divisor value for the given tcfg1 setting. We assume the
|
||||
* caller has already checked to see if this is not a TCLK source.
|
||||
*/
|
||||
static inline unsigned long tcfg_to_divisor(unsigned long tcfg1)
|
||||
{
|
||||
return 1 << tcfg1;
|
||||
}
|
||||
|
||||
/**
|
||||
* pwm_tdiv_has_div1() - does the tdiv setting have a /1
|
||||
*
|
||||
* Return true if we have a /1 in the tdiv setting.
|
||||
*/
|
||||
static inline unsigned int pwm_tdiv_has_div1(void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* pwm_tdiv_div_bits() - calculate TCFG1 divisor value.
|
||||
* @div: The divisor to calculate the bit information for.
|
||||
*
|
||||
* Turn a divisor into the necessary bit field for TCFG1.
|
||||
*/
|
||||
static inline unsigned long pwm_tdiv_div_bits(unsigned int div)
|
||||
{
|
||||
return ilog2(div);
|
||||
}
|
||||
|
||||
#define S3C_TCFG1_MUX_TCLK 0
|
||||
|
||||
#endif /* __ASM_ARCH_PWMCLK_H */
|
@ -1,7 +0,0 @@
|
||||
#ifndef __MACH_CLKDEV_H__
|
||||
#define __MACH_CLKDEV_H__
|
||||
|
||||
#define __clk_get(clk) ({ 1; })
|
||||
#define __clk_put(clk) do {} while (0)
|
||||
|
||||
#endif
|
@ -1,56 +0,0 @@
|
||||
/* linux/arch/arm/mach-s5pc100/include/mach/pwm-clock.h
|
||||
*
|
||||
* Copyright 2009 Samsung Electronics Co.
|
||||
* Byungho Min <bhmin@samsung.com>
|
||||
*
|
||||
* S5PC100 - pwm clock and timer support
|
||||
*
|
||||
* Based on mach-s3c6400/include/mach/pwm-clock.h
|
||||
*/
|
||||
|
||||
/**
|
||||
* pwm_cfg_src_is_tclk() - return whether the given mux config is a tclk
|
||||
* @tcfg: The timer TCFG1 register bits shifted down to 0.
|
||||
*
|
||||
* Return true if the given configuration from TCFG1 is a TCLK instead
|
||||
* any of the TDIV clocks.
|
||||
*/
|
||||
static inline int pwm_cfg_src_is_tclk(unsigned long tcfg)
|
||||
{
|
||||
return tcfg >= S3C64XX_TCFG1_MUX_TCLK;
|
||||
}
|
||||
|
||||
/**
|
||||
* tcfg_to_divisor() - convert tcfg1 setting to a divisor
|
||||
* @tcfg1: The tcfg1 setting, shifted down.
|
||||
*
|
||||
* Get the divisor value for the given tcfg1 setting. We assume the
|
||||
* caller has already checked to see if this is not a TCLK source.
|
||||
*/
|
||||
static inline unsigned long tcfg_to_divisor(unsigned long tcfg1)
|
||||
{
|
||||
return 1 << tcfg1;
|
||||
}
|
||||
|
||||
/**
|
||||
* pwm_tdiv_has_div1() - does the tdiv setting have a /1
|
||||
*
|
||||
* Return true if we have a /1 in the tdiv setting.
|
||||
*/
|
||||
static inline unsigned int pwm_tdiv_has_div1(void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* pwm_tdiv_div_bits() - calculate TCFG1 divisor value.
|
||||
* @div: The divisor to calculate the bit information for.
|
||||
*
|
||||
* Turn a divisor into the necessary bit field for TCFG1.
|
||||
*/
|
||||
static inline unsigned long pwm_tdiv_div_bits(unsigned int div)
|
||||
{
|
||||
return ilog2(div);
|
||||
}
|
||||
|
||||
#define S3C_TCFG1_MUX_TCLK S3C64XX_TCFG1_MUX_TCLK
|
@ -11,17 +11,7 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <linux/mmc/card.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <plat/regs-sdhci.h>
|
||||
#include <plat/sdhci.h>
|
||||
|
||||
/* clock sources for the mmc bus clock, order as for the ctrl2[5..4] */
|
||||
|
||||
@ -31,35 +21,3 @@ char *s5pc100_hsmmc_clksrcs[4] = {
|
||||
[2] = "sclk_mmc", /* mmc_bus */
|
||||
/* [3] = "48m", - note not successfully used yet */
|
||||
};
|
||||
|
||||
|
||||
void s5pc100_setup_sdhci0_cfg_card(struct platform_device *dev,
|
||||
void __iomem *r,
|
||||
struct mmc_ios *ios,
|
||||
struct mmc_card *card)
|
||||
{
|
||||
u32 ctrl2, ctrl3;
|
||||
|
||||
/* don't need to alter anything according to card-type */
|
||||
|
||||
writel(S3C64XX_SDHCI_CONTROL4_DRIVE_9mA, r + S3C64XX_SDHCI_CONTROL4);
|
||||
|
||||
ctrl2 = readl(r + S3C_SDHCI_CONTROL2);
|
||||
ctrl2 &= S3C_SDHCI_CTRL2_SELBASECLK_MASK;
|
||||
ctrl2 |= (S3C64XX_SDHCI_CTRL2_ENSTAASYNCCLR |
|
||||
S3C64XX_SDHCI_CTRL2_ENCMDCNFMSK |
|
||||
S3C_SDHCI_CTRL2_ENFBCLKRX |
|
||||
S3C_SDHCI_CTRL2_DFCNT_NONE |
|
||||
S3C_SDHCI_CTRL2_ENCLKOUTHOLD);
|
||||
|
||||
if (ios->clock < 25 * 1000000)
|
||||
ctrl3 = (S3C_SDHCI_CTRL3_FCSEL3 |
|
||||
S3C_SDHCI_CTRL3_FCSEL2 |
|
||||
S3C_SDHCI_CTRL3_FCSEL1 |
|
||||
S3C_SDHCI_CTRL3_FCSEL0);
|
||||
else
|
||||
ctrl3 = (S3C_SDHCI_CTRL3_FCSEL1 | S3C_SDHCI_CTRL3_FCSEL0);
|
||||
|
||||
writel(ctrl2, r + S3C_SDHCI_CONTROL2);
|
||||
writel(ctrl3, r + S3C_SDHCI_CONTROL3);
|
||||
}
|
||||
|
@ -1,7 +0,0 @@
|
||||
#ifndef __MACH_CLKDEV_H__
|
||||
#define __MACH_CLKDEV_H__
|
||||
|
||||
#define __clk_get(clk) ({ 1; })
|
||||
#define __clk_put(clk) do {} while (0)
|
||||
|
||||
#endif
|
@ -1,70 +0,0 @@
|
||||
/* linux/arch/arm/mach-s5pv210/include/mach/pwm-clock.h
|
||||
*
|
||||
* Copyright (c) 2009 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com/
|
||||
*
|
||||
* Copyright 2008 Openmoko, Inc.
|
||||
* Copyright 2008 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
* http://armlinux.simtec.co.uk/
|
||||
*
|
||||
* Based on arch/arm/mach-s3c64xx/include/mach/pwm-clock.h
|
||||
*
|
||||
* S5PV210 - pwm clock and timer support
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_PWMCLK_H
|
||||
#define __ASM_ARCH_PWMCLK_H __FILE__
|
||||
|
||||
/**
|
||||
* pwm_cfg_src_is_tclk() - return whether the given mux config is a tclk
|
||||
* @tcfg: The timer TCFG1 register bits shifted down to 0.
|
||||
*
|
||||
* Return true if the given configuration from TCFG1 is a TCLK instead
|
||||
* any of the TDIV clocks.
|
||||
*/
|
||||
static inline int pwm_cfg_src_is_tclk(unsigned long tcfg)
|
||||
{
|
||||
return tcfg == S3C64XX_TCFG1_MUX_TCLK;
|
||||
}
|
||||
|
||||
/**
|
||||
* tcfg_to_divisor() - convert tcfg1 setting to a divisor
|
||||
* @tcfg1: The tcfg1 setting, shifted down.
|
||||
*
|
||||
* Get the divisor value for the given tcfg1 setting. We assume the
|
||||
* caller has already checked to see if this is not a TCLK source.
|
||||
*/
|
||||
static inline unsigned long tcfg_to_divisor(unsigned long tcfg1)
|
||||
{
|
||||
return 1 << tcfg1;
|
||||
}
|
||||
|
||||
/**
|
||||
* pwm_tdiv_has_div1() - does the tdiv setting have a /1
|
||||
*
|
||||
* Return true if we have a /1 in the tdiv setting.
|
||||
*/
|
||||
static inline unsigned int pwm_tdiv_has_div1(void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* pwm_tdiv_div_bits() - calculate TCFG1 divisor value.
|
||||
* @div: The divisor to calculate the bit information for.
|
||||
*
|
||||
* Turn a divisor into the necessary bit field for TCFG1.
|
||||
*/
|
||||
static inline unsigned long pwm_tdiv_div_bits(unsigned int div)
|
||||
{
|
||||
return ilog2(div);
|
||||
}
|
||||
|
||||
#define S3C_TCFG1_MUX_TCLK S3C64XX_TCFG1_MUX_TCLK
|
||||
|
||||
#endif /* __ASM_ARCH_PWMCLK_H */
|
@ -10,17 +10,7 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <linux/mmc/card.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <plat/regs-sdhci.h>
|
||||
#include <plat/sdhci.h>
|
||||
|
||||
/* clock sources for the mmc bus clock, order as for the ctrl2[5..4] */
|
||||
|
||||
@ -30,34 +20,3 @@ char *s5pv210_hsmmc_clksrcs[4] = {
|
||||
[2] = "sclk_mmc", /* mmc_bus */
|
||||
/* [3] = NULL, - reserved */
|
||||
};
|
||||
|
||||
void s5pv210_setup_sdhci_cfg_card(struct platform_device *dev,
|
||||
void __iomem *r,
|
||||
struct mmc_ios *ios,
|
||||
struct mmc_card *card)
|
||||
{
|
||||
u32 ctrl2, ctrl3;
|
||||
|
||||
/* don't need to alter anything according to card-type */
|
||||
|
||||
writel(S3C64XX_SDHCI_CONTROL4_DRIVE_9mA, r + S3C64XX_SDHCI_CONTROL4);
|
||||
|
||||
ctrl2 = readl(r + S3C_SDHCI_CONTROL2);
|
||||
ctrl2 &= S3C_SDHCI_CTRL2_SELBASECLK_MASK;
|
||||
ctrl2 |= (S3C64XX_SDHCI_CTRL2_ENSTAASYNCCLR |
|
||||
S3C64XX_SDHCI_CTRL2_ENCMDCNFMSK |
|
||||
S3C_SDHCI_CTRL2_ENFBCLKRX |
|
||||
S3C_SDHCI_CTRL2_DFCNT_NONE |
|
||||
S3C_SDHCI_CTRL2_ENCLKOUTHOLD);
|
||||
|
||||
if (ios->clock < 25 * 1000000)
|
||||
ctrl3 = (S3C_SDHCI_CTRL3_FCSEL3 |
|
||||
S3C_SDHCI_CTRL3_FCSEL2 |
|
||||
S3C_SDHCI_CTRL3_FCSEL1 |
|
||||
S3C_SDHCI_CTRL3_FCSEL0);
|
||||
else
|
||||
ctrl3 = (S3C_SDHCI_CTRL3_FCSEL1 | S3C_SDHCI_CTRL3_FCSEL0);
|
||||
|
||||
writel(ctrl2, r + S3C_SDHCI_CONTROL2);
|
||||
writel(ctrl3, r + S3C_SDHCI_CONTROL3);
|
||||
}
|
||||
|
@ -1,7 +0,0 @@
|
||||
#ifndef __MACH_CLKDEV_H__
|
||||
#define __MACH_CLKDEV_H__
|
||||
|
||||
#define __clk_get(clk) ({ 1; })
|
||||
#define __clk_put(clk) do {} while (0)
|
||||
|
||||
#endif
|
@ -1,55 +0,0 @@
|
||||
/* linux/arch/arm/plat-s3c24xx/include/mach/pwm-clock.h
|
||||
*
|
||||
* Copyright 2008 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
* http://armlinux.simtec.co.uk/
|
||||
*
|
||||
* S3C24xx - pwm clock and timer support
|
||||
*/
|
||||
|
||||
/**
|
||||
* pwm_cfg_src_is_tclk() - return whether the given mux config is a tclk
|
||||
* @cfg: The timer TCFG1 register bits shifted down to 0.
|
||||
*
|
||||
* Return true if the given configuration from TCFG1 is a TCLK instead
|
||||
* any of the TDIV clocks.
|
||||
*/
|
||||
static inline int pwm_cfg_src_is_tclk(unsigned long tcfg)
|
||||
{
|
||||
return tcfg == S3C2410_TCFG1_MUX_TCLK;
|
||||
}
|
||||
|
||||
/**
|
||||
* tcfg_to_divisor() - convert tcfg1 setting to a divisor
|
||||
* @tcfg1: The tcfg1 setting, shifted down.
|
||||
*
|
||||
* Get the divisor value for the given tcfg1 setting. We assume the
|
||||
* caller has already checked to see if this is not a TCLK source.
|
||||
*/
|
||||
static inline unsigned long tcfg_to_divisor(unsigned long tcfg1)
|
||||
{
|
||||
return 1 << (1 + tcfg1);
|
||||
}
|
||||
|
||||
/**
|
||||
* pwm_tdiv_has_div1() - does the tdiv setting have a /1
|
||||
*
|
||||
* Return true if we have a /1 in the tdiv setting.
|
||||
*/
|
||||
static inline unsigned int pwm_tdiv_has_div1(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* pwm_tdiv_div_bits() - calculate TCFG1 divisor value.
|
||||
* @div: The divisor to calculate the bit information for.
|
||||
*
|
||||
* Turn a divisor into the necessary bit field for TCFG1.
|
||||
*/
|
||||
static inline unsigned long pwm_tdiv_div_bits(unsigned int div)
|
||||
{
|
||||
return ilog2(div) - 1;
|
||||
}
|
||||
|
||||
#define S3C_TCFG1_MUX_TCLK S3C2410_TCFG1_MUX_TCLK
|
@ -1,62 +0,0 @@
|
||||
/* linux/arch/arm/plat-s3c24xx/include/plat/pll.h
|
||||
*
|
||||
* Copyright 2008 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
* http://armlinux.simtec.co.uk/
|
||||
*
|
||||
* S3C24xx - common pll registers and code
|
||||
*/
|
||||
|
||||
#define S3C24XX_PLLCON_MDIVSHIFT 12
|
||||
#define S3C24XX_PLLCON_PDIVSHIFT 4
|
||||
#define S3C24XX_PLLCON_SDIVSHIFT 0
|
||||
#define S3C24XX_PLLCON_MDIVMASK ((1<<(1+(19-12)))-1)
|
||||
#define S3C24XX_PLLCON_PDIVMASK ((1<<5)-1)
|
||||
#define S3C24XX_PLLCON_SDIVMASK 3
|
||||
|
||||
#include <asm/div64.h>
|
||||
|
||||
static inline unsigned int
|
||||
s3c24xx_get_pll(unsigned int pllval, unsigned int baseclk)
|
||||
{
|
||||
unsigned int mdiv, pdiv, sdiv;
|
||||
uint64_t fvco;
|
||||
|
||||
mdiv = pllval >> S3C24XX_PLLCON_MDIVSHIFT;
|
||||
pdiv = pllval >> S3C24XX_PLLCON_PDIVSHIFT;
|
||||
sdiv = pllval >> S3C24XX_PLLCON_SDIVSHIFT;
|
||||
|
||||
mdiv &= S3C24XX_PLLCON_MDIVMASK;
|
||||
pdiv &= S3C24XX_PLLCON_PDIVMASK;
|
||||
sdiv &= S3C24XX_PLLCON_SDIVMASK;
|
||||
|
||||
fvco = (uint64_t)baseclk * (mdiv + 8);
|
||||
do_div(fvco, (pdiv + 2) << sdiv);
|
||||
|
||||
return (unsigned int)fvco;
|
||||
}
|
||||
|
||||
#define S3C2416_PLL_M_SHIFT (14)
|
||||
#define S3C2416_PLL_P_SHIFT (5)
|
||||
#define S3C2416_PLL_S_MASK (7)
|
||||
#define S3C2416_PLL_M_MASK ((1 << 10) - 1)
|
||||
#define S3C2416_PLL_P_MASK (63)
|
||||
|
||||
static inline unsigned int
|
||||
s3c2416_get_pll(unsigned int pllval, unsigned int baseclk)
|
||||
{
|
||||
unsigned int m, p, s;
|
||||
uint64_t fvco;
|
||||
|
||||
m = pllval >> S3C2416_PLL_M_SHIFT;
|
||||
p = pllval >> S3C2416_PLL_P_SHIFT;
|
||||
|
||||
s = pllval & S3C2416_PLL_S_MASK;
|
||||
m &= S3C2416_PLL_M_MASK;
|
||||
p &= S3C2416_PLL_P_MASK;
|
||||
|
||||
fvco = (uint64_t)baseclk * m;
|
||||
do_div(fvco, (p << s));
|
||||
|
||||
return (unsigned int)fvco;
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
/* arch/arm/mach-s3c2410/include/mach/regs-iis.h
|
||||
*
|
||||
* Copyright (c) 2003 Simtec Electronics <linux@simtec.co.uk>
|
||||
* http://www.simtec.co.uk/products/SWLINUX/
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* S3C2410 IIS register definition
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_REGS_IIS_H
|
||||
#define __ASM_ARCH_REGS_IIS_H
|
||||
|
||||
#define S3C2410_IISCON (0x00)
|
||||
|
||||
#define S3C2410_IISCON_LRINDEX (1<<8)
|
||||
#define S3C2410_IISCON_TXFIFORDY (1<<7)
|
||||
#define S3C2410_IISCON_RXFIFORDY (1<<6)
|
||||
#define S3C2410_IISCON_TXDMAEN (1<<5)
|
||||
#define S3C2410_IISCON_RXDMAEN (1<<4)
|
||||
#define S3C2410_IISCON_TXIDLE (1<<3)
|
||||
#define S3C2410_IISCON_RXIDLE (1<<2)
|
||||
#define S3C2410_IISCON_PSCEN (1<<1)
|
||||
#define S3C2410_IISCON_IISEN (1<<0)
|
||||
|
||||
#define S3C2410_IISMOD (0x04)
|
||||
|
||||
#define S3C2440_IISMOD_MPLL (1<<9)
|
||||
#define S3C2410_IISMOD_SLAVE (1<<8)
|
||||
#define S3C2410_IISMOD_NOXFER (0<<6)
|
||||
#define S3C2410_IISMOD_RXMODE (1<<6)
|
||||
#define S3C2410_IISMOD_TXMODE (2<<6)
|
||||
#define S3C2410_IISMOD_TXRXMODE (3<<6)
|
||||
#define S3C2410_IISMOD_LR_LLOW (0<<5)
|
||||
#define S3C2410_IISMOD_LR_RLOW (1<<5)
|
||||
#define S3C2410_IISMOD_IIS (0<<4)
|
||||
#define S3C2410_IISMOD_MSB (1<<4)
|
||||
#define S3C2410_IISMOD_8BIT (0<<3)
|
||||
#define S3C2410_IISMOD_16BIT (1<<3)
|
||||
#define S3C2410_IISMOD_BITMASK (1<<3)
|
||||
#define S3C2410_IISMOD_256FS (0<<2)
|
||||
#define S3C2410_IISMOD_384FS (1<<2)
|
||||
#define S3C2410_IISMOD_16FS (0<<0)
|
||||
#define S3C2410_IISMOD_32FS (1<<0)
|
||||
#define S3C2410_IISMOD_48FS (2<<0)
|
||||
#define S3C2410_IISMOD_FS_MASK (3<<0)
|
||||
|
||||
#define S3C2410_IISPSR (0x08)
|
||||
#define S3C2410_IISPSR_INTMASK (31<<5)
|
||||
#define S3C2410_IISPSR_INTSHIFT (5)
|
||||
#define S3C2410_IISPSR_EXTMASK (31<<0)
|
||||
#define S3C2410_IISPSR_EXTSHFIT (0)
|
||||
|
||||
#define S3C2410_IISFCON (0x0c)
|
||||
|
||||
#define S3C2410_IISFCON_TXDMA (1<<15)
|
||||
#define S3C2410_IISFCON_RXDMA (1<<14)
|
||||
#define S3C2410_IISFCON_TXENABLE (1<<13)
|
||||
#define S3C2410_IISFCON_RXENABLE (1<<12)
|
||||
#define S3C2410_IISFCON_TXMASK (0x3f << 6)
|
||||
#define S3C2410_IISFCON_TXSHIFT (6)
|
||||
#define S3C2410_IISFCON_RXMASK (0x3f)
|
||||
#define S3C2410_IISFCON_RXSHIFT (0)
|
||||
|
||||
#define S3C2410_IISFIFO (0x10)
|
||||
#endif /* __ASM_ARCH_REGS_IIS_H */
|
@ -1,81 +0,0 @@
|
||||
/* arch/arm/mach-s3c2410/include/mach/regs-spi.h
|
||||
*
|
||||
* Copyright (c) 2004 Fetron GmbH
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* S3C2410 SPI register definition
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_REGS_SPI_H
|
||||
#define __ASM_ARCH_REGS_SPI_H
|
||||
|
||||
#define S3C2410_SPI1 (0x20)
|
||||
#define S3C2412_SPI1 (0x100)
|
||||
|
||||
#define S3C2410_SPCON (0x00)
|
||||
|
||||
#define S3C2412_SPCON_RXFIFO_RB2 (0<<14)
|
||||
#define S3C2412_SPCON_RXFIFO_RB4 (1<<14)
|
||||
#define S3C2412_SPCON_RXFIFO_RB12 (2<<14)
|
||||
#define S3C2412_SPCON_RXFIFO_RB14 (3<<14)
|
||||
#define S3C2412_SPCON_TXFIFO_RB2 (0<<12)
|
||||
#define S3C2412_SPCON_TXFIFO_RB4 (1<<12)
|
||||
#define S3C2412_SPCON_TXFIFO_RB12 (2<<12)
|
||||
#define S3C2412_SPCON_TXFIFO_RB14 (3<<12)
|
||||
#define S3C2412_SPCON_RXFIFO_RESET (1<<11) /* RxFIFO reset */
|
||||
#define S3C2412_SPCON_TXFIFO_RESET (1<<10) /* TxFIFO reset */
|
||||
#define S3C2412_SPCON_RXFIFO_EN (1<<9) /* RxFIFO Enable */
|
||||
#define S3C2412_SPCON_TXFIFO_EN (1<<8) /* TxFIFO Enable */
|
||||
|
||||
#define S3C2412_SPCON_DIRC_RX (1<<7)
|
||||
|
||||
#define S3C2410_SPCON_SMOD_DMA (2<<5) /* DMA mode */
|
||||
#define S3C2410_SPCON_SMOD_INT (1<<5) /* interrupt mode */
|
||||
#define S3C2410_SPCON_SMOD_POLL (0<<5) /* polling mode */
|
||||
#define S3C2410_SPCON_ENSCK (1<<4) /* Enable SCK */
|
||||
#define S3C2410_SPCON_MSTR (1<<3) /* Master/Slave select
|
||||
0: slave, 1: master */
|
||||
#define S3C2410_SPCON_CPOL_HIGH (1<<2) /* Clock polarity select */
|
||||
#define S3C2410_SPCON_CPOL_LOW (0<<2) /* Clock polarity select */
|
||||
|
||||
#define S3C2410_SPCON_CPHA_FMTB (1<<1) /* Clock Phase Select */
|
||||
#define S3C2410_SPCON_CPHA_FMTA (0<<1) /* Clock Phase Select */
|
||||
|
||||
#define S3C2410_SPCON_TAGD (1<<0) /* Tx auto garbage data mode */
|
||||
|
||||
|
||||
#define S3C2410_SPSTA (0x04)
|
||||
|
||||
#define S3C2412_SPSTA_RXFIFO_AE (1<<11)
|
||||
#define S3C2412_SPSTA_TXFIFO_AE (1<<10)
|
||||
#define S3C2412_SPSTA_RXFIFO_ERROR (1<<9)
|
||||
#define S3C2412_SPSTA_TXFIFO_ERROR (1<<8)
|
||||
#define S3C2412_SPSTA_RXFIFO_FIFO (1<<7)
|
||||
#define S3C2412_SPSTA_RXFIFO_EMPTY (1<<6)
|
||||
#define S3C2412_SPSTA_TXFIFO_NFULL (1<<5)
|
||||
#define S3C2412_SPSTA_TXFIFO_EMPTY (1<<4)
|
||||
|
||||
#define S3C2410_SPSTA_DCOL (1<<2) /* Data Collision Error */
|
||||
#define S3C2410_SPSTA_MULD (1<<1) /* Multi Master Error */
|
||||
#define S3C2410_SPSTA_READY (1<<0) /* Data Tx/Rx ready */
|
||||
#define S3C2412_SPSTA_READY_ORG (1<<3)
|
||||
|
||||
#define S3C2410_SPPIN (0x08)
|
||||
|
||||
#define S3C2410_SPPIN_ENMUL (1<<2) /* Multi Master Error detect */
|
||||
#define S3C2410_SPPIN_RESERVED (1<<1)
|
||||
#define S3C2410_SPPIN_KEEP (1<<0) /* Master Out keep */
|
||||
|
||||
#define S3C2410_SPPRE (0x0C)
|
||||
#define S3C2410_SPTDAT (0x10)
|
||||
#define S3C2410_SPRDAT (0x14)
|
||||
|
||||
#define S3C2412_TXFIFO (0x18)
|
||||
#define S3C2412_RXFIFO (0x18)
|
||||
#define S3C2412_SPFIC (0x24)
|
||||
|
||||
|
||||
#endif /* __ASM_ARCH_REGS_SPI_H */
|
@ -1,4 +1,4 @@
|
||||
/* arch/arm/plat-s3c24xx/include/plat/audio-simtec.h
|
||||
/* arch/arm/plat-samsung/include/plat/audio-simtec.h
|
||||
*
|
||||
* Copyright 2008 Simtec Electronics
|
||||
* http://armlinux.simtec.co.uk/
|
@ -8,8 +8,8 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef PLAT_S5P_CAMPORT_H_
|
||||
#define PLAT_S5P_CAMPORT_H_ __FILE__
|
||||
#ifndef __PLAT_SAMSUNG_CAMPORT_H_
|
||||
#define __PLAT_SAMSUNG_CAMPORT_H_ __FILE__
|
||||
|
||||
enum s5p_camport_id {
|
||||
S5P_CAMPORT_A,
|
||||
@ -25,4 +25,4 @@ enum s5p_camport_id {
|
||||
int s5pv210_fimc_setup_gpio(enum s5p_camport_id id);
|
||||
int exynos4_fimc_setup_gpio(enum s5p_camport_id id);
|
||||
|
||||
#endif
|
||||
#endif /* __PLAT_SAMSUNG_CAMPORT_H */
|
@ -1,4 +1,4 @@
|
||||
/* linux/include/asm-arm/plat-s3c24xx/common-smdk.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/common-smdk.h
|
||||
*
|
||||
* Copyright (c) 2006 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
@ -1,4 +1,4 @@
|
||||
/* arch/arm/plat-s3c/include/plat/cpu-freq.h
|
||||
/* arch/arm/plat-samsung/include/plat/cpu-freq-core.h
|
||||
*
|
||||
* Copyright (c) 2006-2009 Simtec Electronics
|
||||
* http://armlinux.simtec.co.uk/
|
||||
@ -195,7 +195,8 @@ struct s3c_cpufreq_info {
|
||||
|
||||
extern int s3c_cpufreq_register(struct s3c_cpufreq_info *info);
|
||||
|
||||
extern int s3c_plltab_register(struct cpufreq_frequency_table *plls, unsigned int plls_no);
|
||||
extern int s3c_plltab_register(struct cpufreq_frequency_table *plls,
|
||||
unsigned int plls_no);
|
||||
|
||||
/* exports and utilities for debugfs */
|
||||
extern struct s3c_cpufreq_config *s3c_cpufreq_getconfig(void);
|
@ -8,8 +8,8 @@
|
||||
* option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef __PLAT_S5P_EHCI_H
|
||||
#define __PLAT_S5P_EHCI_H
|
||||
#ifndef __PLAT_SAMSUNG_EHCI_H
|
||||
#define __PLAT_SAMSUNG_EHCI_H __FILE__
|
||||
|
||||
struct s5p_ehci_platdata {
|
||||
int (*phy_init)(struct platform_device *pdev, int type);
|
||||
@ -18,4 +18,4 @@ struct s5p_ehci_platdata {
|
||||
|
||||
extern void s5p_ehci_set_platdata(struct s5p_ehci_platdata *pd);
|
||||
|
||||
#endif /* __PLAT_S5P_EHCI_H */
|
||||
#endif /* __PLAT_SAMSUNG_EHCI_H */
|
@ -1,4 +1,4 @@
|
||||
/* linux/arch/arm/plat-s5p/include/plat/exynos4.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/exynos4.h
|
||||
*
|
||||
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com
|
@ -1,4 +1,4 @@
|
||||
/* linux/include/asm-arm/plat-s3c24xx/fiq.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/fiq.h
|
||||
*
|
||||
* Copyright (c) 2009 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
@ -1,4 +1,4 @@
|
||||
/* linux/include/asm-arm/plat-s3c24xx/irq.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/irq.h
|
||||
*
|
||||
* Copyright (c) 2004-2005 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
@ -25,9 +25,9 @@
|
||||
extern struct irq_chip s3c_irq_level_chip;
|
||||
extern struct irq_chip s3c_irq_chip;
|
||||
|
||||
static inline void
|
||||
s3c_irqsub_mask(unsigned int irqno, unsigned int parentbit,
|
||||
int subcheck)
|
||||
static inline void s3c_irqsub_mask(unsigned int irqno,
|
||||
unsigned int parentbit,
|
||||
int subcheck)
|
||||
{
|
||||
unsigned long mask;
|
||||
unsigned long submask;
|
||||
@ -39,17 +39,16 @@ s3c_irqsub_mask(unsigned int irqno, unsigned int parentbit,
|
||||
|
||||
/* check to see if we need to mask the parent IRQ */
|
||||
|
||||
if ((submask & subcheck) == subcheck) {
|
||||
if ((submask & subcheck) == subcheck)
|
||||
__raw_writel(mask | parentbit, S3C2410_INTMSK);
|
||||
}
|
||||
|
||||
/* write back masks */
|
||||
__raw_writel(submask, S3C2410_INTSUBMSK);
|
||||
|
||||
}
|
||||
|
||||
static inline void
|
||||
s3c_irqsub_unmask(unsigned int irqno, unsigned int parentbit)
|
||||
static inline void s3c_irqsub_unmask(unsigned int irqno,
|
||||
unsigned int parentbit)
|
||||
{
|
||||
unsigned long mask;
|
||||
unsigned long submask;
|
||||
@ -66,8 +65,9 @@ s3c_irqsub_unmask(unsigned int irqno, unsigned int parentbit)
|
||||
}
|
||||
|
||||
|
||||
static inline void
|
||||
s3c_irqsub_maskack(unsigned int irqno, unsigned int parentmask, unsigned int group)
|
||||
static inline void s3c_irqsub_maskack(unsigned int irqno,
|
||||
unsigned int parentmask,
|
||||
unsigned int group)
|
||||
{
|
||||
unsigned int bit = 1UL << (irqno - IRQ_S3CUART_RX0);
|
||||
|
||||
@ -86,8 +86,9 @@ s3c_irqsub_maskack(unsigned int irqno, unsigned int parentmask, unsigned int gro
|
||||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
s3c_irqsub_ack(unsigned int irqno, unsigned int parentmask, unsigned int group)
|
||||
static inline void s3c_irqsub_ack(unsigned int irqno,
|
||||
unsigned int parentmask,
|
||||
unsigned int group)
|
||||
{
|
||||
unsigned int bit = 1UL << (irqno - IRQ_S3CUART_RX0);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* linux/arch/arm/plat-s5p/include/plat/irqs.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/irqs.h
|
||||
*
|
||||
* Copyright (c) 2009 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com/
|
||||
@ -10,8 +10,8 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_PLAT_S5P_IRQS_H
|
||||
#define __ASM_PLAT_S5P_IRQS_H __FILE__
|
||||
#ifndef __PLAT_SAMSUNG_IRQS_H
|
||||
#define __PLAT_SAMSUNG_IRQS_H __FILE__
|
||||
|
||||
/* we keep the first set of CPU IRQs out of the range of
|
||||
* the ISA space, so that the PC104 has them to itself
|
||||
@ -112,4 +112,4 @@
|
||||
#define S5P_IRQ_TYPE_EDGE_RISING (0x03)
|
||||
#define S5P_IRQ_TYPE_EDGE_BOTH (0x04)
|
||||
|
||||
#endif /* __ASM_PLAT_S5P_IRQS_H */
|
||||
#endif /* __PLAT_SAMSUNG_IRQS_H */
|
@ -27,11 +27,11 @@
|
||||
* to a non-zero value, otherwise the default of 3.2-3.4V is used.
|
||||
*/
|
||||
struct s3c24xx_mci_pdata {
|
||||
unsigned int no_wprotect : 1;
|
||||
unsigned int no_detect : 1;
|
||||
unsigned int wprotect_invert : 1;
|
||||
unsigned int detect_invert : 1; /* set => detect active high. */
|
||||
unsigned int use_dma : 1;
|
||||
unsigned int no_wprotect:1;
|
||||
unsigned int no_detect:1;
|
||||
unsigned int wprotect_invert:1;
|
||||
unsigned int detect_invert:1; /* set => detect active high */
|
||||
unsigned int use_dma:1;
|
||||
|
||||
unsigned int gpio_detect;
|
||||
unsigned int gpio_wprotect;
|
@ -7,8 +7,8 @@
|
||||
* option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef __PLAT_S5P_MFC_H
|
||||
#define __PLAT_S5P_MFC_H
|
||||
#ifndef __PLAT_SAMSUNG_MFC_H
|
||||
#define __PLAT_SAMSUNG_MFC_H __FILE__
|
||||
|
||||
/**
|
||||
* s5p_mfc_reserve_mem - function to early reserve memory for MFC driver
|
||||
@ -24,4 +24,4 @@
|
||||
void __init s5p_mfc_reserve_mem(phys_addr_t rbase, unsigned int rsize,
|
||||
phys_addr_t lbase, unsigned int lsize);
|
||||
|
||||
#endif /* __PLAT_S5P_MFC_H */
|
||||
#endif /* __PLAT_SAMSUNG_MFC_H */
|
@ -8,8 +8,8 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef PLAT_S5P_MIPI_CSIS_H_
|
||||
#define PLAT_S5P_MIPI_CSIS_H_ __FILE__
|
||||
#ifndef __PLAT_SAMSUNG_MIPI_CSIS_H_
|
||||
#define __PLAT_SAMSUNG_MIPI_CSIS_H_ __FILE__
|
||||
|
||||
struct platform_device;
|
||||
|
||||
@ -40,4 +40,4 @@ struct s5p_platform_mipi_csis {
|
||||
*/
|
||||
int s5p_csis_phy_enable(struct platform_device *pdev, bool on);
|
||||
|
||||
#endif /* PLAT_S5P_MIPI_CSIS_H_ */
|
||||
#endif /* __PLAT_SAMSUNG_MIPI_CSIS_H_ */
|
@ -1,11 +1,14 @@
|
||||
/* arch/arm/plat-s5p/include/plat/pll.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/pll.h
|
||||
*
|
||||
* Copyright (c) 2009 Samsung Electronics Co., Ltd.
|
||||
* Copyright (c) 2009-2011 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com/
|
||||
*
|
||||
* S5P PLL code
|
||||
* Copyright 2008 Openmoko, Inc.
|
||||
* Copyright 2008 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
* http://armlinux.simtec.co.uk/
|
||||
*
|
||||
* Based on arch/arm/plat-s3c64xx/include/plat/pll.h
|
||||
* Samsung PLL codes
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
@ -14,6 +17,111 @@
|
||||
|
||||
#include <asm/div64.h>
|
||||
|
||||
#define S3C24XX_PLL_MDIV_MASK (0xFF)
|
||||
#define S3C24XX_PLL_PDIV_MASK (0x1F)
|
||||
#define S3C24XX_PLL_SDIV_MASK (0x3)
|
||||
#define S3C24XX_PLL_MDIV_SHIFT (12)
|
||||
#define S3C24XX_PLL_PDIV_SHIFT (4)
|
||||
#define S3C24XX_PLL_SDIV_SHIFT (0)
|
||||
|
||||
static inline unsigned int s3c24xx_get_pll(unsigned int pllval,
|
||||
unsigned int baseclk)
|
||||
{
|
||||
unsigned int mdiv, pdiv, sdiv;
|
||||
uint64_t fvco;
|
||||
|
||||
mdiv = (pllval >> S3C24XX_PLL_MDIV_SHIFT) & S3C24XX_PLL_MDIV_MASK;
|
||||
pdiv = (pllval >> S3C24XX_PLL_PDIV_SHIFT) & S3C24XX_PLL_PDIV_MASK;
|
||||
sdiv = (pllval >> S3C24XX_PLL_SDIV_SHIFT) & S3C24XX_PLL_SDIV_MASK;
|
||||
|
||||
fvco = (uint64_t)baseclk * (mdiv + 8);
|
||||
do_div(fvco, (pdiv + 2) << sdiv);
|
||||
|
||||
return (unsigned int)fvco;
|
||||
}
|
||||
|
||||
#define S3C2416_PLL_MDIV_MASK (0x3FF)
|
||||
#define S3C2416_PLL_PDIV_MASK (0x3F)
|
||||
#define S3C2416_PLL_SDIV_MASK (0x7)
|
||||
#define S3C2416_PLL_MDIV_SHIFT (14)
|
||||
#define S3C2416_PLL_PDIV_SHIFT (5)
|
||||
#define S3C2416_PLL_SDIV_SHIFT (0)
|
||||
|
||||
static inline unsigned int s3c2416_get_pll(unsigned int pllval,
|
||||
unsigned int baseclk)
|
||||
{
|
||||
unsigned int mdiv, pdiv, sdiv;
|
||||
uint64_t fvco;
|
||||
|
||||
mdiv = (pllval >> S3C2416_PLL_MDIV_SHIFT) & S3C2416_PLL_MDIV_MASK;
|
||||
pdiv = (pllval >> S3C2416_PLL_PDIV_SHIFT) & S3C2416_PLL_PDIV_MASK;
|
||||
sdiv = (pllval >> S3C2416_PLL_SDIV_SHIFT) & S3C2416_PLL_SDIV_MASK;
|
||||
|
||||
fvco = (uint64_t)baseclk * mdiv;
|
||||
do_div(fvco, (pdiv << sdiv));
|
||||
|
||||
return (unsigned int)fvco;
|
||||
}
|
||||
|
||||
#define S3C6400_PLL_MDIV_MASK (0x3FF)
|
||||
#define S3C6400_PLL_PDIV_MASK (0x3F)
|
||||
#define S3C6400_PLL_SDIV_MASK (0x7)
|
||||
#define S3C6400_PLL_MDIV_SHIFT (16)
|
||||
#define S3C6400_PLL_PDIV_SHIFT (8)
|
||||
#define S3C6400_PLL_SDIV_SHIFT (0)
|
||||
|
||||
static inline unsigned long s3c6400_get_pll(unsigned long baseclk,
|
||||
u32 pllcon)
|
||||
{
|
||||
u32 mdiv, pdiv, sdiv;
|
||||
u64 fvco = baseclk;
|
||||
|
||||
mdiv = (pllcon >> S3C6400_PLL_MDIV_SHIFT) & S3C6400_PLL_MDIV_MASK;
|
||||
pdiv = (pllcon >> S3C6400_PLL_PDIV_SHIFT) & S3C6400_PLL_PDIV_MASK;
|
||||
sdiv = (pllcon >> S3C6400_PLL_SDIV_SHIFT) & S3C6400_PLL_SDIV_MASK;
|
||||
|
||||
fvco *= mdiv;
|
||||
do_div(fvco, (pdiv << sdiv));
|
||||
|
||||
return (unsigned long)fvco;
|
||||
}
|
||||
|
||||
#define PLL6553X_MDIV_MASK (0x7F)
|
||||
#define PLL6553X_PDIV_MASK (0x1F)
|
||||
#define PLL6553X_SDIV_MASK (0x3)
|
||||
#define PLL6553X_KDIV_MASK (0xFFFF)
|
||||
#define PLL6553X_MDIV_SHIFT (16)
|
||||
#define PLL6553X_PDIV_SHIFT (8)
|
||||
#define PLL6553X_SDIV_SHIFT (0)
|
||||
|
||||
static inline unsigned long s3c_get_pll6553x(unsigned long baseclk,
|
||||
u32 pll_con0, u32 pll_con1)
|
||||
{
|
||||
unsigned long result;
|
||||
u32 mdiv, pdiv, sdiv, kdiv;
|
||||
u64 tmp;
|
||||
|
||||
mdiv = (pll_con0 >> PLL6553X_MDIV_SHIFT) & PLL6553X_MDIV_MASK;
|
||||
pdiv = (pll_con0 >> PLL6553X_PDIV_SHIFT) & PLL6553X_PDIV_MASK;
|
||||
sdiv = (pll_con0 >> PLL6553X_SDIV_SHIFT) & PLL6553X_SDIV_MASK;
|
||||
kdiv = pll_con1 & PLL6553X_KDIV_MASK;
|
||||
|
||||
/*
|
||||
* We need to multiple baseclk by mdiv (the integer part) and kdiv
|
||||
* which is in 2^16ths, so shift mdiv up (does not overflow) and
|
||||
* add kdiv before multiplying. The use of tmp is to avoid any
|
||||
* overflows before shifting bac down into result when multipling
|
||||
* by the mdiv and kdiv pair.
|
||||
*/
|
||||
|
||||
tmp = baseclk;
|
||||
tmp *= (mdiv << 16) + kdiv;
|
||||
do_div(tmp, (pdiv << sdiv));
|
||||
result = tmp >> 16;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#define PLL35XX_MDIV_MASK (0x3FF)
|
||||
#define PLL35XX_PDIV_MASK (0x3F)
|
||||
#define PLL35XX_SDIV_MASK (0x7)
|
||||
@ -132,6 +240,7 @@ static inline unsigned long s5p_get_pll46xx(unsigned long baseclk,
|
||||
mdiv = (pll_con0 >> PLL46XX_MDIV_SHIFT) & PLL46XX_MDIV_MASK;
|
||||
pdiv = (pll_con0 >> PLL46XX_PDIV_SHIFT) & PLL46XX_PDIV_MASK;
|
||||
sdiv = (pll_con0 >> PLL46XX_SDIV_SHIFT) & PLL46XX_SDIV_MASK;
|
||||
kdiv = pll_con1 & PLL46XX_KDIV_MASK;
|
||||
|
||||
if (pll_type == pll_4650c)
|
||||
kdiv = pll_con1 & PLL4650C_KDIV_MASK;
|
||||
@ -175,7 +284,8 @@ static inline unsigned long s5p_get_pll90xx(unsigned long baseclk,
|
||||
sdiv = (pll_con >> PLL90XX_SDIV_SHIFT) & PLL90XX_SDIV_MASK;
|
||||
kdiv = pll_conk & PLL90XX_KDIV_MASK;
|
||||
|
||||
/* We need to multiple baseclk by mdiv (the integer part) and kdiv
|
||||
/*
|
||||
* We need to multiple baseclk by mdiv (the integer part) and kdiv
|
||||
* which is in 2^16ths, so shift mdiv up (does not overflow) and
|
||||
* add kdiv before multiplying. The use of tmp is to avoid any
|
||||
* overflows before shifting bac down into result when multipling
|
@ -1,51 +0,0 @@
|
||||
/* arch/arm/plat-samsung/include/plat/pll6553x.h
|
||||
* partially from arch/arm/mach-s3c64xx/include/mach/pll.h
|
||||
*
|
||||
* Copyright 2008 Openmoko, Inc.
|
||||
* Copyright 2008 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
* http://armlinux.simtec.co.uk/
|
||||
*
|
||||
* Samsung PLL6553x PLL code
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
/* S3C6400 and compatible (S3C2416, etc.) EPLL code */
|
||||
|
||||
#define PLL6553X_MDIV_MASK ((1 << (23-16)) - 1)
|
||||
#define PLL6553X_PDIV_MASK ((1 << (13-8)) - 1)
|
||||
#define PLL6553X_SDIV_MASK ((1 << (2-0)) - 1)
|
||||
#define PLL6553X_MDIV_SHIFT (16)
|
||||
#define PLL6553X_PDIV_SHIFT (8)
|
||||
#define PLL6553X_SDIV_SHIFT (0)
|
||||
#define PLL6553X_KDIV_MASK (0xffff)
|
||||
|
||||
static inline unsigned long s3c_get_pll6553x(unsigned long baseclk,
|
||||
u32 pll0, u32 pll1)
|
||||
{
|
||||
unsigned long result;
|
||||
u32 mdiv, pdiv, sdiv, kdiv;
|
||||
u64 tmp;
|
||||
|
||||
mdiv = (pll0 >> PLL6553X_MDIV_SHIFT) & PLL6553X_MDIV_MASK;
|
||||
pdiv = (pll0 >> PLL6553X_PDIV_SHIFT) & PLL6553X_PDIV_MASK;
|
||||
sdiv = (pll0 >> PLL6553X_SDIV_SHIFT) & PLL6553X_SDIV_MASK;
|
||||
kdiv = pll1 & PLL6553X_KDIV_MASK;
|
||||
|
||||
/* We need to multiple baseclk by mdiv (the integer part) and kdiv
|
||||
* which is in 2^16ths, so shift mdiv up (does not overflow) and
|
||||
* add kdiv before multiplying. The use of tmp is to avoid any
|
||||
* overflows before shifting bac down into result when multipling
|
||||
* by the mdiv and kdiv pair.
|
||||
*/
|
||||
|
||||
tmp = baseclk;
|
||||
tmp *= (mdiv << 16) + kdiv;
|
||||
do_div(tmp, (pdiv << sdiv));
|
||||
result = tmp >> 16;
|
||||
|
||||
return result;
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
/* linux/arch/arm/mach-exynos4/include/mach/pwm-clock.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/pwm-clock.h
|
||||
*
|
||||
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com
|
||||
@ -8,17 +8,15 @@
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
* http://armlinux.simtec.co.uk/
|
||||
*
|
||||
* Based on arch/arm/mach-s3c64xx/include/mach/pwm-clock.h
|
||||
*
|
||||
* EXYNOS4 - pwm clock and timer support
|
||||
* SAMSUNG - pwm clock and timer support
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_PWMCLK_H
|
||||
#define __ASM_ARCH_PWMCLK_H __FILE__
|
||||
#ifndef __ASM_PLAT_PWM_CLOCK_H
|
||||
#define __ASM_PLAT_PWM_CLOCK_H __FILE__
|
||||
|
||||
/**
|
||||
* pwm_cfg_src_is_tclk() - return whether the given mux config is a tclk
|
||||
@ -29,7 +27,14 @@
|
||||
*/
|
||||
static inline int pwm_cfg_src_is_tclk(unsigned long tcfg)
|
||||
{
|
||||
return tcfg == S3C64XX_TCFG1_MUX_TCLK;
|
||||
if (soc_is_s3c24xx())
|
||||
return tcfg == S3C2410_TCFG1_MUX_TCLK;
|
||||
else if (soc_is_s3c64xx() || soc_is_s5pc100())
|
||||
return tcfg >= S3C64XX_TCFG1_MUX_TCLK;
|
||||
else if (soc_is_s5p6440() || soc_is_s5p6450())
|
||||
return 0;
|
||||
else
|
||||
return tcfg == S3C64XX_TCFG1_MUX_TCLK;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -41,7 +46,10 @@ static inline int pwm_cfg_src_is_tclk(unsigned long tcfg)
|
||||
*/
|
||||
static inline unsigned long tcfg_to_divisor(unsigned long tcfg1)
|
||||
{
|
||||
return 1 << tcfg1;
|
||||
if (soc_is_s3c24xx())
|
||||
return 1 << (tcfg1 + 1);
|
||||
else
|
||||
return 1 << tcfg1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -51,7 +59,10 @@ static inline unsigned long tcfg_to_divisor(unsigned long tcfg1)
|
||||
*/
|
||||
static inline unsigned int pwm_tdiv_has_div1(void)
|
||||
{
|
||||
return 1;
|
||||
if (soc_is_s3c24xx())
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -62,9 +73,9 @@ static inline unsigned int pwm_tdiv_has_div1(void)
|
||||
*/
|
||||
static inline unsigned long pwm_tdiv_div_bits(unsigned int div)
|
||||
{
|
||||
return ilog2(div);
|
||||
if (soc_is_s3c24xx())
|
||||
return ilog2(div) - 1;
|
||||
else
|
||||
return ilog2(div);
|
||||
}
|
||||
|
||||
#define S3C_TCFG1_MUX_TCLK S3C64XX_TCFG1_MUX_TCLK
|
||||
|
||||
#endif /* __ASM_ARCH_PWMCLK_H */
|
||||
#endif /* __ASM_PLAT_PWM_CLOCK_H */
|
@ -1,4 +1,4 @@
|
||||
/* arch/arm/mach-s3c2410/include/mach/dma.h
|
||||
/* arch/arm/plat-samsung/include/plat/regs-dma.h
|
||||
*
|
||||
* Copyright (C) 2003-2006 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
@ -10,7 +10,8 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
/* DMA Register definitions */
|
||||
#ifndef __ASM_PLAT_REGS_DMA_H
|
||||
#define __ASM_PLAT_REGS_DMA_H __FILE__
|
||||
|
||||
#define S3C2410_DMA_DISRC (0x00)
|
||||
#define S3C2410_DMA_DISRCC (0x04)
|
||||
@ -24,74 +25,75 @@
|
||||
#define S3C2412_DMA_DMAREQSEL (0x24)
|
||||
#define S3C2443_DMA_DMAREQSEL (0x24)
|
||||
|
||||
#define S3C2410_DISRCC_INC (1<<0)
|
||||
#define S3C2410_DISRCC_APB (1<<1)
|
||||
#define S3C2410_DISRCC_INC (1 << 0)
|
||||
#define S3C2410_DISRCC_APB (1 << 1)
|
||||
|
||||
#define S3C2410_DMASKTRIG_STOP (1<<2)
|
||||
#define S3C2410_DMASKTRIG_ON (1<<1)
|
||||
#define S3C2410_DMASKTRIG_SWTRIG (1<<0)
|
||||
#define S3C2410_DMASKTRIG_STOP (1 << 2)
|
||||
#define S3C2410_DMASKTRIG_ON (1 << 1)
|
||||
#define S3C2410_DMASKTRIG_SWTRIG (1 << 0)
|
||||
|
||||
#define S3C2410_DCON_DEMAND (0<<31)
|
||||
#define S3C2410_DCON_HANDSHAKE (1<<31)
|
||||
#define S3C2410_DCON_SYNC_PCLK (0<<30)
|
||||
#define S3C2410_DCON_SYNC_HCLK (1<<30)
|
||||
#define S3C2410_DCON_DEMAND (0 << 31)
|
||||
#define S3C2410_DCON_HANDSHAKE (1 << 31)
|
||||
#define S3C2410_DCON_SYNC_PCLK (0 << 30)
|
||||
#define S3C2410_DCON_SYNC_HCLK (1 << 30)
|
||||
|
||||
#define S3C2410_DCON_INTREQ (1<<29)
|
||||
#define S3C2410_DCON_INTREQ (1 << 29)
|
||||
|
||||
#define S3C2410_DCON_CH0_XDREQ0 (0<<24)
|
||||
#define S3C2410_DCON_CH0_UART0 (1<<24)
|
||||
#define S3C2410_DCON_CH0_SDI (2<<24)
|
||||
#define S3C2410_DCON_CH0_TIMER (3<<24)
|
||||
#define S3C2410_DCON_CH0_USBEP1 (4<<24)
|
||||
#define S3C2410_DCON_CH0_XDREQ0 (0 << 24)
|
||||
#define S3C2410_DCON_CH0_UART0 (1 << 24)
|
||||
#define S3C2410_DCON_CH0_SDI (2 << 24)
|
||||
#define S3C2410_DCON_CH0_TIMER (3 << 24)
|
||||
#define S3C2410_DCON_CH0_USBEP1 (4 << 24)
|
||||
|
||||
#define S3C2410_DCON_CH1_XDREQ1 (0<<24)
|
||||
#define S3C2410_DCON_CH1_UART1 (1<<24)
|
||||
#define S3C2410_DCON_CH1_I2SSDI (2<<24)
|
||||
#define S3C2410_DCON_CH1_SPI (3<<24)
|
||||
#define S3C2410_DCON_CH1_USBEP2 (4<<24)
|
||||
#define S3C2410_DCON_CH1_XDREQ1 (0 << 24)
|
||||
#define S3C2410_DCON_CH1_UART1 (1 << 24)
|
||||
#define S3C2410_DCON_CH1_I2SSDI (2 << 24)
|
||||
#define S3C2410_DCON_CH1_SPI (3 << 24)
|
||||
#define S3C2410_DCON_CH1_USBEP2 (4 << 24)
|
||||
|
||||
#define S3C2410_DCON_CH2_I2SSDO (0<<24)
|
||||
#define S3C2410_DCON_CH2_I2SSDI (1<<24)
|
||||
#define S3C2410_DCON_CH2_SDI (2<<24)
|
||||
#define S3C2410_DCON_CH2_TIMER (3<<24)
|
||||
#define S3C2410_DCON_CH2_USBEP3 (4<<24)
|
||||
#define S3C2410_DCON_CH2_I2SSDO (0 << 24)
|
||||
#define S3C2410_DCON_CH2_I2SSDI (1 << 24)
|
||||
#define S3C2410_DCON_CH2_SDI (2 << 24)
|
||||
#define S3C2410_DCON_CH2_TIMER (3 << 24)
|
||||
#define S3C2410_DCON_CH2_USBEP3 (4 << 24)
|
||||
|
||||
#define S3C2410_DCON_CH3_UART2 (0<<24)
|
||||
#define S3C2410_DCON_CH3_SDI (1<<24)
|
||||
#define S3C2410_DCON_CH3_SPI (2<<24)
|
||||
#define S3C2410_DCON_CH3_TIMER (3<<24)
|
||||
#define S3C2410_DCON_CH3_USBEP4 (4<<24)
|
||||
#define S3C2410_DCON_CH3_UART2 (0 << 24)
|
||||
#define S3C2410_DCON_CH3_SDI (1 << 24)
|
||||
#define S3C2410_DCON_CH3_SPI (2 << 24)
|
||||
#define S3C2410_DCON_CH3_TIMER (3 << 24)
|
||||
#define S3C2410_DCON_CH3_USBEP4 (4 << 24)
|
||||
|
||||
#define S3C2410_DCON_SRCSHIFT (24)
|
||||
#define S3C2410_DCON_SRCMASK (7<<24)
|
||||
#define S3C2410_DCON_SRCMASK (7 << 24)
|
||||
|
||||
#define S3C2410_DCON_BYTE (0<<20)
|
||||
#define S3C2410_DCON_HALFWORD (1<<20)
|
||||
#define S3C2410_DCON_WORD (2<<20)
|
||||
#define S3C2410_DCON_BYTE (0 << 20)
|
||||
#define S3C2410_DCON_HALFWORD (1 << 20)
|
||||
#define S3C2410_DCON_WORD (2 << 20)
|
||||
|
||||
#define S3C2410_DCON_AUTORELOAD (0<<22)
|
||||
#define S3C2410_DCON_NORELOAD (1<<22)
|
||||
#define S3C2410_DCON_HWTRIG (1<<23)
|
||||
#define S3C2410_DCON_AUTORELOAD (0 << 22)
|
||||
#define S3C2410_DCON_NORELOAD (1 << 22)
|
||||
#define S3C2410_DCON_HWTRIG (1 << 23)
|
||||
|
||||
#ifdef CONFIG_CPU_S3C2440
|
||||
#define S3C2440_DIDSTC_CHKINT (1<<2)
|
||||
|
||||
#define S3C2440_DCON_CH0_I2SSDO (5<<24)
|
||||
#define S3C2440_DCON_CH0_PCMIN (6<<24)
|
||||
#define S3C2440_DIDSTC_CHKINT (1 << 2)
|
||||
|
||||
#define S3C2440_DCON_CH1_PCMOUT (5<<24)
|
||||
#define S3C2440_DCON_CH1_SDI (6<<24)
|
||||
#define S3C2440_DCON_CH0_I2SSDO (5 << 24)
|
||||
#define S3C2440_DCON_CH0_PCMIN (6 << 24)
|
||||
|
||||
#define S3C2440_DCON_CH2_PCMIN (5<<24)
|
||||
#define S3C2440_DCON_CH2_MICIN (6<<24)
|
||||
#define S3C2440_DCON_CH1_PCMOUT (5 << 24)
|
||||
#define S3C2440_DCON_CH1_SDI (6 << 24)
|
||||
|
||||
#define S3C2440_DCON_CH3_MICIN (5<<24)
|
||||
#define S3C2440_DCON_CH3_PCMOUT (6<<24)
|
||||
#endif
|
||||
#define S3C2440_DCON_CH2_PCMIN (5 << 24)
|
||||
#define S3C2440_DCON_CH2_MICIN (6 << 24)
|
||||
|
||||
#define S3C2440_DCON_CH3_MICIN (5 << 24)
|
||||
#define S3C2440_DCON_CH3_PCMOUT (6 << 24)
|
||||
#endif /* CONFIG_CPU_S3C2440 */
|
||||
|
||||
#ifdef CONFIG_CPU_S3C2412
|
||||
|
||||
#define S3C2412_DMAREQSEL_SRC(x) ((x)<<1)
|
||||
#define S3C2412_DMAREQSEL_SRC(x) ((x) << 1)
|
||||
|
||||
#define S3C2412_DMAREQSEL_HW (1)
|
||||
|
||||
@ -115,10 +117,11 @@
|
||||
#define S3C2412_DMAREQSEL_UART1_1 S3C2412_DMAREQSEL_SRC(22)
|
||||
#define S3C2412_DMAREQSEL_UART2_0 S3C2412_DMAREQSEL_SRC(23)
|
||||
#define S3C2412_DMAREQSEL_UART2_1 S3C2412_DMAREQSEL_SRC(24)
|
||||
#endif /* CONFIG_CPU_S3C2412 */
|
||||
|
||||
#endif
|
||||
#ifdef CONFIG_CPU_S3C2443
|
||||
|
||||
#define S3C2443_DMAREQSEL_SRC(x) ((x)<<1)
|
||||
#define S3C2443_DMAREQSEL_SRC(x) ((x) << 1)
|
||||
|
||||
#define S3C2443_DMAREQSEL_HW (1)
|
||||
|
||||
@ -141,5 +144,8 @@
|
||||
#define S3C2443_DMAREQSEL_UART3_0 S3C2443_DMAREQSEL_SRC(25)
|
||||
#define S3C2443_DMAREQSEL_UART3_1 S3C2443_DMAREQSEL_SRC(26)
|
||||
#define S3C2443_DMAREQSEL_PCMOUT S3C2443_DMAREQSEL_SRC(27)
|
||||
#define S3C2443_DMAREQSEL_PCMIN S3C2443_DMAREQSEL_SRC(28)
|
||||
#define S3C2443_DMAREQSEL_PCMIN S3C2443_DMAREQSEL_SRC(28)
|
||||
#define S3C2443_DMAREQSEL_MICIN S3C2443_DMAREQSEL_SRC(29)
|
||||
#endif /* CONFIG_CPU_S3C2443 */
|
||||
|
||||
#endif /* __ASM_PLAT_REGS_DMA_H */
|
70
arch/arm/plat-samsung/include/plat/regs-iis.h
Normal file
70
arch/arm/plat-samsung/include/plat/regs-iis.h
Normal file
@ -0,0 +1,70 @@
|
||||
/* arch/arm/plat-samsung/include/plat/regs-iis.h
|
||||
*
|
||||
* Copyright (c) 2003 Simtec Electronics <linux@simtec.co.uk>
|
||||
* http://www.simtec.co.uk/products/SWLINUX/
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* S3C2410 IIS register definition
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_REGS_IIS_H
|
||||
#define __ASM_ARCH_REGS_IIS_H
|
||||
|
||||
#define S3C2410_IISCON (0x00)
|
||||
|
||||
#define S3C2410_IISCON_LRINDEX (1 << 8)
|
||||
#define S3C2410_IISCON_TXFIFORDY (1 << 7)
|
||||
#define S3C2410_IISCON_RXFIFORDY (1 << 6)
|
||||
#define S3C2410_IISCON_TXDMAEN (1 << 5)
|
||||
#define S3C2410_IISCON_RXDMAEN (1 << 4)
|
||||
#define S3C2410_IISCON_TXIDLE (1 << 3)
|
||||
#define S3C2410_IISCON_RXIDLE (1 << 2)
|
||||
#define S3C2410_IISCON_PSCEN (1 << 1)
|
||||
#define S3C2410_IISCON_IISEN (1 << 0)
|
||||
|
||||
#define S3C2410_IISMOD (0x04)
|
||||
|
||||
#define S3C2440_IISMOD_MPLL (1 << 9)
|
||||
#define S3C2410_IISMOD_SLAVE (1 << 8)
|
||||
#define S3C2410_IISMOD_NOXFER (0 << 6)
|
||||
#define S3C2410_IISMOD_RXMODE (1 << 6)
|
||||
#define S3C2410_IISMOD_TXMODE (2 << 6)
|
||||
#define S3C2410_IISMOD_TXRXMODE (3 << 6)
|
||||
#define S3C2410_IISMOD_LR_LLOW (0 << 5)
|
||||
#define S3C2410_IISMOD_LR_RLOW (1 << 5)
|
||||
#define S3C2410_IISMOD_IIS (0 << 4)
|
||||
#define S3C2410_IISMOD_MSB (1 << 4)
|
||||
#define S3C2410_IISMOD_8BIT (0 << 3)
|
||||
#define S3C2410_IISMOD_16BIT (1 << 3)
|
||||
#define S3C2410_IISMOD_BITMASK (1 << 3)
|
||||
#define S3C2410_IISMOD_256FS (0 << 2)
|
||||
#define S3C2410_IISMOD_384FS (1 << 2)
|
||||
#define S3C2410_IISMOD_16FS (0 << 0)
|
||||
#define S3C2410_IISMOD_32FS (1 << 0)
|
||||
#define S3C2410_IISMOD_48FS (2 << 0)
|
||||
#define S3C2410_IISMOD_FS_MASK (3 << 0)
|
||||
|
||||
#define S3C2410_IISPSR (0x08)
|
||||
|
||||
#define S3C2410_IISPSR_INTMASK (31 << 5)
|
||||
#define S3C2410_IISPSR_INTSHIFT (5)
|
||||
#define S3C2410_IISPSR_EXTMASK (31 << 0)
|
||||
#define S3C2410_IISPSR_EXTSHFIT (0)
|
||||
|
||||
#define S3C2410_IISFCON (0x0c)
|
||||
|
||||
#define S3C2410_IISFCON_TXDMA (1 << 15)
|
||||
#define S3C2410_IISFCON_RXDMA (1 << 14)
|
||||
#define S3C2410_IISFCON_TXENABLE (1 << 13)
|
||||
#define S3C2410_IISFCON_RXENABLE (1 << 12)
|
||||
#define S3C2410_IISFCON_TXMASK (0x3f << 6)
|
||||
#define S3C2410_IISFCON_TXSHIFT (6)
|
||||
#define S3C2410_IISFCON_RXMASK (0x3f)
|
||||
#define S3C2410_IISFCON_RXSHIFT (0)
|
||||
|
||||
#define S3C2410_IISFIFO (0x10)
|
||||
|
||||
#endif /* __ASM_ARCH_REGS_IIS_H */
|
48
arch/arm/plat-samsung/include/plat/regs-spi.h
Normal file
48
arch/arm/plat-samsung/include/plat/regs-spi.h
Normal file
@ -0,0 +1,48 @@
|
||||
/* arch/arm/plat-samsung/include/plat/regs-spi.h
|
||||
*
|
||||
* Copyright (c) 2004 Fetron GmbH
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* S3C2410 SPI register definition
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_REGS_SPI_H
|
||||
#define __ASM_ARCH_REGS_SPI_H
|
||||
|
||||
#define S3C2410_SPI1 (0x20)
|
||||
#define S3C2412_SPI1 (0x100)
|
||||
|
||||
#define S3C2410_SPCON (0x00)
|
||||
|
||||
#define S3C2410_SPCON_SMOD_DMA (2 << 5) /* DMA mode */
|
||||
#define S3C2410_SPCON_SMOD_INT (1 << 5) /* interrupt mode */
|
||||
#define S3C2410_SPCON_SMOD_POLL (0 << 5) /* polling mode */
|
||||
#define S3C2410_SPCON_ENSCK (1 << 4) /* Enable SCK */
|
||||
#define S3C2410_SPCON_MSTR (1 << 3) /* Master:1, Slave:0 select */
|
||||
#define S3C2410_SPCON_CPOL_HIGH (1 << 2) /* Clock polarity select */
|
||||
#define S3C2410_SPCON_CPOL_LOW (0 << 2) /* Clock polarity select */
|
||||
|
||||
#define S3C2410_SPCON_CPHA_FMTB (1 << 1) /* Clock Phase Select */
|
||||
#define S3C2410_SPCON_CPHA_FMTA (0 << 1) /* Clock Phase Select */
|
||||
|
||||
#define S3C2410_SPSTA (0x04)
|
||||
|
||||
#define S3C2410_SPSTA_DCOL (1 << 2) /* Data Collision Error */
|
||||
#define S3C2410_SPSTA_MULD (1 << 1) /* Multi Master Error */
|
||||
#define S3C2410_SPSTA_READY (1 << 0) /* Data Tx/Rx ready */
|
||||
#define S3C2412_SPSTA_READY_ORG (1 << 3)
|
||||
|
||||
#define S3C2410_SPPIN (0x08)
|
||||
|
||||
#define S3C2410_SPPIN_ENMUL (1 << 2) /* Multi Master Error detect */
|
||||
#define S3C2410_SPPIN_RESERVED (1 << 1)
|
||||
#define S3C2410_SPPIN_KEEP (1 << 0) /* Master Out keep */
|
||||
|
||||
#define S3C2410_SPPRE (0x0C)
|
||||
#define S3C2410_SPTDAT (0x10)
|
||||
#define S3C2410_SPRDAT (0x14)
|
||||
|
||||
#endif /* __ASM_ARCH_REGS_SPI_H */
|
@ -1,4 +1,4 @@
|
||||
/* linux/arch/arm/plat-s5p/include/plat/regs-srom.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/regs-srom.h
|
||||
*
|
||||
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com
|
||||
@ -10,8 +10,8 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_PLAT_S5P_REGS_SROM_H
|
||||
#define __ASM_PLAT_S5P_REGS_SROM_H __FILE__
|
||||
#ifndef __PLAT_SAMSUNG_REGS_SROM_H
|
||||
#define __PLAT_SAMSUNG_REGS_SROM_H __FILE__
|
||||
|
||||
#include <mach/map.h>
|
||||
|
||||
@ -51,4 +51,4 @@
|
||||
#define S5P_SROM_BCX__TCOS__SHIFT 24
|
||||
#define S5P_SROM_BCX__TACS__SHIFT 28
|
||||
|
||||
#endif /* __ASM_PLAT_S5P_REGS_SROM_H */
|
||||
#endif /* __PLAT_SAMSUNG_REGS_SROM_H */
|
@ -1,4 +1,4 @@
|
||||
/* arch/arm/mach-s3c2410/include/mach/regs-udc.h
|
||||
/* arch/arm/plat-samsung/include/plat/regs-udc.h
|
||||
*
|
||||
* Copyright (C) 2004 Herbert Poetzl <herbert@13thfloor.at>
|
||||
*
|
||||
@ -75,79 +75,77 @@
|
||||
#define S3C2410_UDC_OUT_FIFO_CNT1_REG S3C2410_USBDREG(0x0198)
|
||||
#define S3C2410_UDC_OUT_FIFO_CNT2_REG S3C2410_USBDREG(0x019c)
|
||||
|
||||
#define S3C2410_UDC_FUNCADDR_UPDATE (1<<7)
|
||||
#define S3C2410_UDC_FUNCADDR_UPDATE (1 << 7)
|
||||
|
||||
#define S3C2410_UDC_PWR_ISOUP (1<<7) // R/W
|
||||
#define S3C2410_UDC_PWR_RESET (1<<3) // R
|
||||
#define S3C2410_UDC_PWR_RESUME (1<<2) // R/W
|
||||
#define S3C2410_UDC_PWR_SUSPEND (1<<1) // R
|
||||
#define S3C2410_UDC_PWR_ENSUSPEND (1<<0) // R/W
|
||||
#define S3C2410_UDC_PWR_ISOUP (1 << 7) /* R/W */
|
||||
#define S3C2410_UDC_PWR_RESET (1 << 3) /* R */
|
||||
#define S3C2410_UDC_PWR_RESUME (1 << 2) /* R/W */
|
||||
#define S3C2410_UDC_PWR_SUSPEND (1 << 1) /* R */
|
||||
#define S3C2410_UDC_PWR_ENSUSPEND (1 << 0) /* R/W */
|
||||
|
||||
#define S3C2410_UDC_PWR_DEFAULT 0x00
|
||||
#define S3C2410_UDC_PWR_DEFAULT (0x00)
|
||||
|
||||
#define S3C2410_UDC_INT_EP4 (1<<4) // R/W (clear only)
|
||||
#define S3C2410_UDC_INT_EP3 (1<<3) // R/W (clear only)
|
||||
#define S3C2410_UDC_INT_EP2 (1<<2) // R/W (clear only)
|
||||
#define S3C2410_UDC_INT_EP1 (1<<1) // R/W (clear only)
|
||||
#define S3C2410_UDC_INT_EP0 (1<<0) // R/W (clear only)
|
||||
#define S3C2410_UDC_INT_EP4 (1 << 4) /* R/W (clear only) */
|
||||
#define S3C2410_UDC_INT_EP3 (1 << 3) /* R/W (clear only) */
|
||||
#define S3C2410_UDC_INT_EP2 (1 << 2) /* R/W (clear only) */
|
||||
#define S3C2410_UDC_INT_EP1 (1 << 1) /* R/W (clear only) */
|
||||
#define S3C2410_UDC_INT_EP0 (1 << 0) /* R/W (clear only) */
|
||||
|
||||
#define S3C2410_UDC_USBINT_RESET (1<<2) // R/W (clear only)
|
||||
#define S3C2410_UDC_USBINT_RESUME (1<<1) // R/W (clear only)
|
||||
#define S3C2410_UDC_USBINT_SUSPEND (1<<0) // R/W (clear only)
|
||||
#define S3C2410_UDC_USBINT_RESET (1 << 2) /* R/W (clear only) */
|
||||
#define S3C2410_UDC_USBINT_RESUME (1 << 1) /* R/W (clear only) */
|
||||
#define S3C2410_UDC_USBINT_SUSPEND (1 << 0) /* R/W (clear only) */
|
||||
|
||||
#define S3C2410_UDC_INTE_EP4 (1<<4) // R/W
|
||||
#define S3C2410_UDC_INTE_EP3 (1<<3) // R/W
|
||||
#define S3C2410_UDC_INTE_EP2 (1<<2) // R/W
|
||||
#define S3C2410_UDC_INTE_EP1 (1<<1) // R/W
|
||||
#define S3C2410_UDC_INTE_EP0 (1<<0) // R/W
|
||||
|
||||
#define S3C2410_UDC_USBINTE_RESET (1<<2) // R/W
|
||||
#define S3C2410_UDC_USBINTE_SUSPEND (1<<0) // R/W
|
||||
#define S3C2410_UDC_INTE_EP4 (1 << 4) /* R/W */
|
||||
#define S3C2410_UDC_INTE_EP3 (1 << 3) /* R/W */
|
||||
#define S3C2410_UDC_INTE_EP2 (1 << 2) /* R/W */
|
||||
#define S3C2410_UDC_INTE_EP1 (1 << 1) /* R/W */
|
||||
#define S3C2410_UDC_INTE_EP0 (1 << 0) /* R/W */
|
||||
|
||||
#define S3C2410_UDC_USBINTE_RESET (1 << 2) /* R/W */
|
||||
#define S3C2410_UDC_USBINTE_SUSPEND (1 << 0) /* R/W */
|
||||
|
||||
#define S3C2410_UDC_INDEX_EP0 (0x00)
|
||||
#define S3C2410_UDC_INDEX_EP1 (0x01) // ??
|
||||
#define S3C2410_UDC_INDEX_EP2 (0x02) // ??
|
||||
#define S3C2410_UDC_INDEX_EP3 (0x03) // ??
|
||||
#define S3C2410_UDC_INDEX_EP4 (0x04) // ??
|
||||
#define S3C2410_UDC_INDEX_EP1 (0x01)
|
||||
#define S3C2410_UDC_INDEX_EP2 (0x02)
|
||||
#define S3C2410_UDC_INDEX_EP3 (0x03)
|
||||
#define S3C2410_UDC_INDEX_EP4 (0x04)
|
||||
|
||||
#define S3C2410_UDC_ICSR1_CLRDT (1<<6) // R/W
|
||||
#define S3C2410_UDC_ICSR1_SENTSTL (1<<5) // R/W (clear only)
|
||||
#define S3C2410_UDC_ICSR1_SENDSTL (1<<4) // R/W
|
||||
#define S3C2410_UDC_ICSR1_FFLUSH (1<<3) // W (set only)
|
||||
#define S3C2410_UDC_ICSR1_UNDRUN (1<<2) // R/W (clear only)
|
||||
#define S3C2410_UDC_ICSR1_PKTRDY (1<<0) // R/W (set only)
|
||||
#define S3C2410_UDC_ICSR1_CLRDT (1 << 6) /* R/W */
|
||||
#define S3C2410_UDC_ICSR1_SENTSTL (1 << 5) /* R/W (clear only) */
|
||||
#define S3C2410_UDC_ICSR1_SENDSTL (1 << 4) /* R/W */
|
||||
#define S3C2410_UDC_ICSR1_FFLUSH (1 << 3) /* W (set only) */
|
||||
#define S3C2410_UDC_ICSR1_UNDRUN (1 << 2) /* R/W (clear only) */
|
||||
#define S3C2410_UDC_ICSR1_PKTRDY (1 << 0) /* R/W (set only) */
|
||||
|
||||
#define S3C2410_UDC_ICSR2_AUTOSET (1<<7) // R/W
|
||||
#define S3C2410_UDC_ICSR2_ISO (1<<6) // R/W
|
||||
#define S3C2410_UDC_ICSR2_MODEIN (1<<5) // R/W
|
||||
#define S3C2410_UDC_ICSR2_DMAIEN (1<<4) // R/W
|
||||
#define S3C2410_UDC_ICSR2_AUTOSET (1 << 7) /* R/W */
|
||||
#define S3C2410_UDC_ICSR2_ISO (1 << 6) /* R/W */
|
||||
#define S3C2410_UDC_ICSR2_MODEIN (1 << 5) /* R/W */
|
||||
#define S3C2410_UDC_ICSR2_DMAIEN (1 << 4) /* R/W */
|
||||
|
||||
#define S3C2410_UDC_OCSR1_CLRDT (1<<7) // R/W
|
||||
#define S3C2410_UDC_OCSR1_SENTSTL (1<<6) // R/W (clear only)
|
||||
#define S3C2410_UDC_OCSR1_SENDSTL (1<<5) // R/W
|
||||
#define S3C2410_UDC_OCSR1_FFLUSH (1<<4) // R/W
|
||||
#define S3C2410_UDC_OCSR1_DERROR (1<<3) // R
|
||||
#define S3C2410_UDC_OCSR1_OVRRUN (1<<2) // R/W (clear only)
|
||||
#define S3C2410_UDC_OCSR1_PKTRDY (1<<0) // R/W (clear only)
|
||||
#define S3C2410_UDC_OCSR1_CLRDT (1 << 7) /* R/W */
|
||||
#define S3C2410_UDC_OCSR1_SENTSTL (1 << 6) /* R/W (clear only) */
|
||||
#define S3C2410_UDC_OCSR1_SENDSTL (1 << 5) /* R/W */
|
||||
#define S3C2410_UDC_OCSR1_FFLUSH (1 << 4) /* R/W */
|
||||
#define S3C2410_UDC_OCSR1_DERROR (1 << 3) /* R */
|
||||
#define S3C2410_UDC_OCSR1_OVRRUN (1 << 2) /* R/W (clear only) */
|
||||
#define S3C2410_UDC_OCSR1_PKTRDY (1 << 0) /* R/W (clear only) */
|
||||
|
||||
#define S3C2410_UDC_OCSR2_AUTOCLR (1<<7) // R/W
|
||||
#define S3C2410_UDC_OCSR2_ISO (1<<6) // R/W
|
||||
#define S3C2410_UDC_OCSR2_DMAIEN (1<<5) // R/W
|
||||
#define S3C2410_UDC_OCSR2_AUTOCLR (1 << 7) /* R/W */
|
||||
#define S3C2410_UDC_OCSR2_ISO (1 << 6) /* R/W */
|
||||
#define S3C2410_UDC_OCSR2_DMAIEN (1 << 5) /* R/W */
|
||||
|
||||
#define S3C2410_UDC_EP0_CSR_OPKRDY (1<<0)
|
||||
#define S3C2410_UDC_EP0_CSR_IPKRDY (1<<1)
|
||||
#define S3C2410_UDC_EP0_CSR_SENTSTL (1<<2)
|
||||
#define S3C2410_UDC_EP0_CSR_DE (1<<3)
|
||||
#define S3C2410_UDC_EP0_CSR_SE (1<<4)
|
||||
#define S3C2410_UDC_EP0_CSR_SENDSTL (1<<5)
|
||||
#define S3C2410_UDC_EP0_CSR_SOPKTRDY (1<<6)
|
||||
#define S3C2410_UDC_EP0_CSR_SSE (1<<7)
|
||||
|
||||
#define S3C2410_UDC_MAXP_8 (1<<0)
|
||||
#define S3C2410_UDC_MAXP_16 (1<<1)
|
||||
#define S3C2410_UDC_MAXP_32 (1<<2)
|
||||
#define S3C2410_UDC_MAXP_64 (1<<3)
|
||||
#define S3C2410_UDC_EP0_CSR_OPKRDY (1 << 0)
|
||||
#define S3C2410_UDC_EP0_CSR_IPKRDY (1 << 1)
|
||||
#define S3C2410_UDC_EP0_CSR_SENTSTL (1 << 2)
|
||||
#define S3C2410_UDC_EP0_CSR_DE (1 << 3)
|
||||
#define S3C2410_UDC_EP0_CSR_SE (1 << 4)
|
||||
#define S3C2410_UDC_EP0_CSR_SENDSTL (1 << 5)
|
||||
#define S3C2410_UDC_EP0_CSR_SOPKTRDY (1 << 6)
|
||||
#define S3C2410_UDC_EP0_CSR_SSE (1 << 7)
|
||||
|
||||
#define S3C2410_UDC_MAXP_8 (1 << 0)
|
||||
#define S3C2410_UDC_MAXP_16 (1 << 1)
|
||||
#define S3C2410_UDC_MAXP_32 (1 << 2)
|
||||
#define S3C2410_UDC_MAXP_64 (1 << 3)
|
||||
|
||||
#endif
|
@ -1,4 +1,4 @@
|
||||
/* linux/arch/arm/plat-s5p/include/plat/reset.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/reset.h
|
||||
*
|
||||
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com/
|
||||
@ -8,9 +8,9 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_PLAT_S5P_RESET_H
|
||||
#define __ASM_PLAT_S5P_RESET_H __FILE__
|
||||
#ifndef __PLAT_SAMSUNG_RESET_H
|
||||
#define __PLAT_SAMSUNG_RESET_H __FILE__
|
||||
|
||||
extern void (*s5p_reset_hook)(void);
|
||||
|
||||
#endif /* __ASM_PLAT_S5P_RESET_H */
|
||||
#endif /* __PLAT_SAMSUNG_RESET_H */
|
@ -1,4 +1,4 @@
|
||||
/* linux/include/asm-arm/plat-s3c24xx/s3c2410.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/s3c2410.h
|
||||
*
|
||||
* Copyright (c) 2004 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
@ -1,4 +1,4 @@
|
||||
/* linux/include/asm-arm/plat-s3c24xx/s3c2412.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/s3c2412.h
|
||||
*
|
||||
* Copyright (c) 2006 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
@ -1,4 +1,4 @@
|
||||
/* linux/include/asm-arm/plat-s3c24xx/s3c2443.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/s3c2416.h
|
||||
*
|
||||
* Copyright (c) 2009 Yauhen Kharuzhy <jekhor@gmail.com>
|
||||
*
|
@ -1,4 +1,4 @@
|
||||
/* linux/include/asm-arm/plat-s3c24xx/s3c2443.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/s3c2443.h
|
||||
*
|
||||
* Copyright (c) 2004-2005 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
@ -1,4 +1,4 @@
|
||||
/* linux/arch/arm/plat-s3c24xx/include/plat/s3c244x.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/s3c244x.h
|
||||
*
|
||||
* Copyright (c) 2004-2005 Simtec Electronics
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
@ -1,4 +1,4 @@
|
||||
/* arch/arm/mach-s3c64xx/include/macht/s3c6400.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/s3c6400.h
|
||||
*
|
||||
* Copyright 2008 Openmoko, Inc.
|
||||
* Copyright 2008 Simtec Electronics
|
@ -1,4 +1,4 @@
|
||||
/* arch/arm/mach-s3c64xx/include/mach/s3c6410.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/s3c6410.h
|
||||
*
|
||||
* Copyright 2008 Openmoko, Inc.
|
||||
* Copyright 2008 Simtec Electronics
|
@ -1,4 +1,4 @@
|
||||
/* linux/arch/arm/plat-s5p/include/plat/s5p-clock.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/s5p-clock.h
|
||||
*
|
||||
* Copyright (c) 2009-2010 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com
|
@ -1,4 +1,4 @@
|
||||
/* linux/arch/arm/plat-s5p/include/plat/s5p-time.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/s5p-time.h
|
||||
*
|
||||
* Copyright 2011 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com/
|
@ -1,4 +1,4 @@
|
||||
/* arch/arm/plat-s5p/include/plat/s5p6440.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/s5p6440.h
|
||||
*
|
||||
* Copyright (c) 2009 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com/
|
@ -1,4 +1,4 @@
|
||||
/* arch/arm/plat-s5p/include/plat/s5p6450.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/s5p6450.h
|
||||
*
|
||||
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com
|
@ -1,4 +1,4 @@
|
||||
/* arch/arm/plat-s5p/include/plat/s5pc100.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/s5pc100.h
|
||||
*
|
||||
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com/
|
@ -1,4 +1,4 @@
|
||||
/* linux/arch/arm/plat-s5p/include/plat/s5pv210.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/s5pv210.h
|
||||
*
|
||||
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com/
|
@ -55,10 +55,6 @@ enum clk_types {
|
||||
* cd_type == S3C_SDHCI_CD_GPIO
|
||||
* @ext_cd_gpio_invert: invert values for external CD gpio line
|
||||
* @cfg_gpio: Configure the GPIO for a specific card bit-width
|
||||
* @cfg_card: Configure the interface for a specific card and speed. This
|
||||
* is necessary the controllers and/or GPIO blocks require the
|
||||
* changing of driver-strength and other controls dependent on
|
||||
* the card and speed of operation.
|
||||
*
|
||||
* Initialisation data specific to either the machine or the platform
|
||||
* for the device driver to use or call-back when configuring gpio or
|
||||
@ -80,10 +76,6 @@ struct s3c_sdhci_platdata {
|
||||
int state));
|
||||
|
||||
void (*cfg_gpio)(struct platform_device *dev, int width);
|
||||
void (*cfg_card)(struct platform_device *dev,
|
||||
void __iomem *regbase,
|
||||
struct mmc_ios *ios,
|
||||
struct mmc_card *card);
|
||||
};
|
||||
|
||||
/* s3c_sdhci_set_platdata() - common helper for setting SDHCI platform data
|
||||
@ -139,17 +131,11 @@ extern void exynos4_setup_sdhci3_cfg_gpio(struct platform_device *, int w);
|
||||
#ifdef CONFIG_S3C2416_SETUP_SDHCI
|
||||
extern char *s3c2416_hsmmc_clksrcs[4];
|
||||
|
||||
extern void s3c2416_setup_sdhci_cfg_card(struct platform_device *dev,
|
||||
void __iomem *r,
|
||||
struct mmc_ios *ios,
|
||||
struct mmc_card *card);
|
||||
|
||||
static inline void s3c2416_default_sdhci0(void)
|
||||
{
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC
|
||||
s3c_hsmmc0_def_platdata.clocks = s3c2416_hsmmc_clksrcs;
|
||||
s3c_hsmmc0_def_platdata.cfg_gpio = s3c2416_setup_sdhci0_cfg_gpio;
|
||||
s3c_hsmmc0_def_platdata.cfg_card = s3c2416_setup_sdhci_cfg_card;
|
||||
#endif /* CONFIG_S3C_DEV_HSMMC */
|
||||
}
|
||||
|
||||
@ -158,7 +144,6 @@ static inline void s3c2416_default_sdhci1(void)
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC1
|
||||
s3c_hsmmc1_def_platdata.clocks = s3c2416_hsmmc_clksrcs;
|
||||
s3c_hsmmc1_def_platdata.cfg_gpio = s3c2416_setup_sdhci1_cfg_gpio;
|
||||
s3c_hsmmc1_def_platdata.cfg_card = s3c2416_setup_sdhci_cfg_card;
|
||||
#endif /* CONFIG_S3C_DEV_HSMMC1 */
|
||||
}
|
||||
|
||||
@ -172,17 +157,11 @@ static inline void s3c2416_default_sdhci1(void) { }
|
||||
#ifdef CONFIG_S3C64XX_SETUP_SDHCI
|
||||
extern char *s3c64xx_hsmmc_clksrcs[4];
|
||||
|
||||
extern void s3c6400_setup_sdhci_cfg_card(struct platform_device *dev,
|
||||
void __iomem *r,
|
||||
struct mmc_ios *ios,
|
||||
struct mmc_card *card);
|
||||
|
||||
static inline void s3c6400_default_sdhci0(void)
|
||||
{
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC
|
||||
s3c_hsmmc0_def_platdata.clocks = s3c64xx_hsmmc_clksrcs;
|
||||
s3c_hsmmc0_def_platdata.cfg_gpio = s3c64xx_setup_sdhci0_cfg_gpio;
|
||||
s3c_hsmmc0_def_platdata.cfg_card = s3c6400_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -191,7 +170,6 @@ static inline void s3c6400_default_sdhci1(void)
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC1
|
||||
s3c_hsmmc1_def_platdata.clocks = s3c64xx_hsmmc_clksrcs;
|
||||
s3c_hsmmc1_def_platdata.cfg_gpio = s3c64xx_setup_sdhci1_cfg_gpio;
|
||||
s3c_hsmmc1_def_platdata.cfg_card = s3c6400_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -200,21 +178,14 @@ static inline void s3c6400_default_sdhci2(void)
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC2
|
||||
s3c_hsmmc2_def_platdata.clocks = s3c64xx_hsmmc_clksrcs;
|
||||
s3c_hsmmc2_def_platdata.cfg_gpio = s3c64xx_setup_sdhci2_cfg_gpio;
|
||||
s3c_hsmmc2_def_platdata.cfg_card = s3c6400_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
extern void s3c6410_setup_sdhci_cfg_card(struct platform_device *dev,
|
||||
void __iomem *r,
|
||||
struct mmc_ios *ios,
|
||||
struct mmc_card *card);
|
||||
|
||||
static inline void s3c6410_default_sdhci0(void)
|
||||
{
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC
|
||||
s3c_hsmmc0_def_platdata.clocks = s3c64xx_hsmmc_clksrcs;
|
||||
s3c_hsmmc0_def_platdata.cfg_gpio = s3c64xx_setup_sdhci0_cfg_gpio;
|
||||
s3c_hsmmc0_def_platdata.cfg_card = s3c6410_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -223,7 +194,6 @@ static inline void s3c6410_default_sdhci1(void)
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC1
|
||||
s3c_hsmmc1_def_platdata.clocks = s3c64xx_hsmmc_clksrcs;
|
||||
s3c_hsmmc1_def_platdata.cfg_gpio = s3c64xx_setup_sdhci1_cfg_gpio;
|
||||
s3c_hsmmc1_def_platdata.cfg_card = s3c6410_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -232,7 +202,6 @@ static inline void s3c6410_default_sdhci2(void)
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC2
|
||||
s3c_hsmmc2_def_platdata.clocks = s3c64xx_hsmmc_clksrcs;
|
||||
s3c_hsmmc2_def_platdata.cfg_gpio = s3c64xx_setup_sdhci2_cfg_gpio;
|
||||
s3c_hsmmc2_def_platdata.cfg_card = s3c6410_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -251,17 +220,11 @@ static inline void s3c6400_default_sdhci2(void) { }
|
||||
#ifdef CONFIG_S5PC100_SETUP_SDHCI
|
||||
extern char *s5pc100_hsmmc_clksrcs[4];
|
||||
|
||||
extern void s5pc100_setup_sdhci0_cfg_card(struct platform_device *dev,
|
||||
void __iomem *r,
|
||||
struct mmc_ios *ios,
|
||||
struct mmc_card *card);
|
||||
|
||||
static inline void s5pc100_default_sdhci0(void)
|
||||
{
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC
|
||||
s3c_hsmmc0_def_platdata.clocks = s5pc100_hsmmc_clksrcs;
|
||||
s3c_hsmmc0_def_platdata.cfg_gpio = s5pc100_setup_sdhci0_cfg_gpio;
|
||||
s3c_hsmmc0_def_platdata.cfg_card = s5pc100_setup_sdhci0_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -270,7 +233,6 @@ static inline void s5pc100_default_sdhci1(void)
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC1
|
||||
s3c_hsmmc1_def_platdata.clocks = s5pc100_hsmmc_clksrcs;
|
||||
s3c_hsmmc1_def_platdata.cfg_gpio = s5pc100_setup_sdhci1_cfg_gpio;
|
||||
s3c_hsmmc1_def_platdata.cfg_card = s5pc100_setup_sdhci0_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -279,7 +241,6 @@ static inline void s5pc100_default_sdhci2(void)
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC2
|
||||
s3c_hsmmc2_def_platdata.clocks = s5pc100_hsmmc_clksrcs;
|
||||
s3c_hsmmc2_def_platdata.cfg_gpio = s5pc100_setup_sdhci2_cfg_gpio;
|
||||
s3c_hsmmc2_def_platdata.cfg_card = s5pc100_setup_sdhci0_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -295,17 +256,11 @@ static inline void s5pc100_default_sdhci2(void) { }
|
||||
#ifdef CONFIG_S5PV210_SETUP_SDHCI
|
||||
extern char *s5pv210_hsmmc_clksrcs[4];
|
||||
|
||||
extern void s5pv210_setup_sdhci_cfg_card(struct platform_device *dev,
|
||||
void __iomem *r,
|
||||
struct mmc_ios *ios,
|
||||
struct mmc_card *card);
|
||||
|
||||
static inline void s5pv210_default_sdhci0(void)
|
||||
{
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC
|
||||
s3c_hsmmc0_def_platdata.clocks = s5pv210_hsmmc_clksrcs;
|
||||
s3c_hsmmc0_def_platdata.cfg_gpio = s5pv210_setup_sdhci0_cfg_gpio;
|
||||
s3c_hsmmc0_def_platdata.cfg_card = s5pv210_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -314,7 +269,6 @@ static inline void s5pv210_default_sdhci1(void)
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC1
|
||||
s3c_hsmmc1_def_platdata.clocks = s5pv210_hsmmc_clksrcs;
|
||||
s3c_hsmmc1_def_platdata.cfg_gpio = s5pv210_setup_sdhci1_cfg_gpio;
|
||||
s3c_hsmmc1_def_platdata.cfg_card = s5pv210_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -323,7 +277,6 @@ static inline void s5pv210_default_sdhci2(void)
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC2
|
||||
s3c_hsmmc2_def_platdata.clocks = s5pv210_hsmmc_clksrcs;
|
||||
s3c_hsmmc2_def_platdata.cfg_gpio = s5pv210_setup_sdhci2_cfg_gpio;
|
||||
s3c_hsmmc2_def_platdata.cfg_card = s5pv210_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -332,7 +285,6 @@ static inline void s5pv210_default_sdhci3(void)
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC3
|
||||
s3c_hsmmc3_def_platdata.clocks = s5pv210_hsmmc_clksrcs;
|
||||
s3c_hsmmc3_def_platdata.cfg_gpio = s5pv210_setup_sdhci3_cfg_gpio;
|
||||
s3c_hsmmc3_def_platdata.cfg_card = s5pv210_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -348,17 +300,11 @@ static inline void s5pv210_default_sdhci3(void) { }
|
||||
#ifdef CONFIG_EXYNOS4_SETUP_SDHCI
|
||||
extern char *exynos4_hsmmc_clksrcs[4];
|
||||
|
||||
extern void exynos4_setup_sdhci_cfg_card(struct platform_device *dev,
|
||||
void __iomem *r,
|
||||
struct mmc_ios *ios,
|
||||
struct mmc_card *card);
|
||||
|
||||
static inline void exynos4_default_sdhci0(void)
|
||||
{
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC
|
||||
s3c_hsmmc0_def_platdata.clocks = exynos4_hsmmc_clksrcs;
|
||||
s3c_hsmmc0_def_platdata.cfg_gpio = exynos4_setup_sdhci0_cfg_gpio;
|
||||
s3c_hsmmc0_def_platdata.cfg_card = exynos4_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -367,7 +313,6 @@ static inline void exynos4_default_sdhci1(void)
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC1
|
||||
s3c_hsmmc1_def_platdata.clocks = exynos4_hsmmc_clksrcs;
|
||||
s3c_hsmmc1_def_platdata.cfg_gpio = exynos4_setup_sdhci1_cfg_gpio;
|
||||
s3c_hsmmc1_def_platdata.cfg_card = exynos4_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -376,7 +321,6 @@ static inline void exynos4_default_sdhci2(void)
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC2
|
||||
s3c_hsmmc2_def_platdata.clocks = exynos4_hsmmc_clksrcs;
|
||||
s3c_hsmmc2_def_platdata.cfg_gpio = exynos4_setup_sdhci2_cfg_gpio;
|
||||
s3c_hsmmc2_def_platdata.cfg_card = exynos4_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -385,7 +329,6 @@ static inline void exynos4_default_sdhci3(void)
|
||||
#ifdef CONFIG_S3C_DEV_HSMMC3
|
||||
s3c_hsmmc3_def_platdata.clocks = exynos4_hsmmc_clksrcs;
|
||||
s3c_hsmmc3_def_platdata.cfg_gpio = exynos4_setup_sdhci3_cfg_gpio;
|
||||
s3c_hsmmc3_def_platdata.cfg_card = exynos4_setup_sdhci_cfg_card;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* linux/arch/arm/plat-s5p/include/plat/sysmmu.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/sysmmu.h
|
||||
*
|
||||
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com
|
||||
@ -10,8 +10,8 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __ASM__PLAT_SYSMMU_H
|
||||
#define __ASM__PLAT_SYSMMU_H __FILE__
|
||||
#ifndef __PLAT_SAMSUNG_SYSMMU_H
|
||||
#define __PLAT_SAMSUNG_SYSMMU_H __FILE__
|
||||
|
||||
enum S5P_SYSMMU_INTERRUPT_TYPE {
|
||||
SYSMMU_PAGEFAULT,
|
@ -1,4 +1,4 @@
|
||||
/* linux/arch/arm/plat-s5p/include/plat/system-reset.h
|
||||
/* linux/arch/arm/plat-samsung/include/plat/system-reset.h
|
||||
*
|
||||
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com
|
@ -1,4 +1,4 @@
|
||||
/* arch/arm/mach-s3c2410/include/mach/udc.h
|
||||
/* arch/arm/plat-samsung/include/plat/udc.h
|
||||
*
|
||||
* Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org>
|
||||
*
|
||||
@ -26,7 +26,7 @@ enum s3c2410_udc_cmd_e {
|
||||
|
||||
struct s3c2410_udc_mach_info {
|
||||
void (*udc_command)(enum s3c2410_udc_cmd_e);
|
||||
void (*vbus_draw)(unsigned int ma);
|
||||
void (*vbus_draw)(unsigned int ma);
|
||||
|
||||
unsigned int pullup_pin;
|
||||
unsigned int pullup_pin_inverted;
|
@ -8,8 +8,8 @@
|
||||
* option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef __PLAT_S5P_USB_PHY_H
|
||||
#define __PLAT_S5P_USB_PHY_H
|
||||
#ifndef __PLAT_SAMSUNG_USB_PHY_H
|
||||
#define __PLAT_SAMSUNG_USB_PHY_H __FILE__
|
||||
|
||||
enum s5p_usb_phy_type {
|
||||
S5P_USB_PHY_DEVICE,
|
||||
@ -19,4 +19,4 @@ enum s5p_usb_phy_type {
|
||||
extern int s5p_usb_phy_init(struct platform_device *pdev, int type);
|
||||
extern int s5p_usb_phy_exit(struct platform_device *pdev, int type);
|
||||
|
||||
#endif /* __PLAT_S5P_REGS_USB_PHY_H */
|
||||
#endif /* __PLAT_SAMSUNG_USB_PHY_H */
|
@ -50,8 +50,6 @@ void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata *pd,
|
||||
set->max_width = pd->max_width;
|
||||
if (pd->cfg_gpio)
|
||||
set->cfg_gpio = pd->cfg_gpio;
|
||||
if (pd->cfg_card)
|
||||
set->cfg_card = pd->cfg_card;
|
||||
if (pd->host_caps)
|
||||
set->host_caps |= pd->host_caps;
|
||||
if (pd->clk_type)
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include <plat/cpu.h>
|
||||
|
||||
#include <plat/regs-timer.h>
|
||||
#include <mach/pwm-clock.h>
|
||||
#include <plat/pwm-clock.h>
|
||||
|
||||
/* Each of the timers 0 through 5 go through the following
|
||||
* clock tree, with the inputs depending on the timers.
|
||||
@ -339,8 +339,17 @@ static int clk_pwm_tin_set_parent(struct clk *clk, struct clk *parent)
|
||||
unsigned long bits;
|
||||
unsigned long shift = S3C2410_TCFG1_SHIFT(id);
|
||||
|
||||
unsigned long mux_tclk;
|
||||
|
||||
if (soc_is_s3c24xx())
|
||||
mux_tclk = S3C2410_TCFG1_MUX_TCLK;
|
||||
else if (soc_is_s5p6440() || soc_is_s5p6450())
|
||||
mux_tclk = 0;
|
||||
else
|
||||
mux_tclk = S3C64XX_TCFG1_MUX_TCLK;
|
||||
|
||||
if (parent == s3c24xx_pwmclk_tclk(id))
|
||||
bits = S3C_TCFG1_MUX_TCLK << shift;
|
||||
bits = mux_tclk << shift;
|
||||
else if (parent == s3c24xx_pwmclk_tdiv(id))
|
||||
bits = clk_pwm_tdiv_bits(to_tdiv(parent)) << shift;
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user