mirror of https://gitee.com/openkylin/linux.git
ARM: Merge next-samsung-devupdates2
Merge branch 'next-samsung-devupdates2' into next-samsung
This commit is contained in:
commit
28db4ed52d
arch/arm
drivers/serial
|
@ -40,11 +40,16 @@ obj-$(CONFIG_S3C64XX_DMA) += dma.o
|
|||
|
||||
obj-$(CONFIG_S3C_ADC) += dev-adc.o
|
||||
|
||||
# SPI support
|
||||
obj-$(CONFIG_S3C64XX_DEV_SPI) += dev-spi.o
|
||||
|
||||
# Device support
|
||||
obj-y += dev-audio.o
|
||||
|
||||
# Device setup
|
||||
|
||||
obj-$(CONFIG_S3C64XX_SETUP_I2C0) += setup-i2c0.o
|
||||
obj-$(CONFIG_S3C64XX_SETUP_I2C1) += setup-i2c1.o
|
||||
obj-$(CONFIG_S3C64XX_SETUP_FB_24BPP) += setup-fb-24bpp.o
|
||||
obj-$(CONFIG_S3C64XX_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o
|
||||
obj-$(CONFIG_SND_S3C24XX_SOC) += dev-audio.o
|
||||
obj-$(CONFIG_SPI_S3C64XX) += dev-spi.o
|
||||
|
||||
|
|
|
@ -132,6 +132,12 @@ config S3C_DEV_NAND
|
|||
help
|
||||
Compile in platform device definition for NAND controller
|
||||
|
||||
config S3C64XX_DEV_SPI
|
||||
bool
|
||||
help
|
||||
Compile in platform device definitions for S3C64XX's type
|
||||
SPI controllers.
|
||||
|
||||
comment "Power management"
|
||||
|
||||
config SAMSUNG_PM_DEBUG
|
||||
|
|
|
@ -262,6 +262,7 @@ static irqreturn_t s3c_adc_irq(int irq, void *pw)
|
|||
{
|
||||
struct adc_device *adc = pw;
|
||||
struct s3c_adc_client *client = adc->cur;
|
||||
enum s3c_cpu_type cpu = platform_get_device_id(adc->pdev)->driver_data;
|
||||
unsigned long flags;
|
||||
unsigned data0, data1;
|
||||
|
||||
|
@ -276,9 +277,17 @@ static irqreturn_t s3c_adc_irq(int irq, void *pw)
|
|||
|
||||
client->nr_samples--;
|
||||
|
||||
if (cpu == TYPE_S3C64XX) {
|
||||
/* S3C64XX ADC resolution is 12-bit */
|
||||
data0 &= 0xfff;
|
||||
data1 &= 0xfff;
|
||||
} else {
|
||||
data0 &= 0x3ff;
|
||||
data1 &= 0x3ff;
|
||||
}
|
||||
|
||||
if (client->convert_cb)
|
||||
(client->convert_cb)(client, data0 & 0x3ff, data1 & 0x3ff,
|
||||
&client->nr_samples);
|
||||
(client->convert_cb)(client, data0, data1, &client->nr_samples);
|
||||
|
||||
if (client->nr_samples > 0) {
|
||||
/* fire another conversion for this */
|
||||
|
@ -295,7 +304,7 @@ static irqreturn_t s3c_adc_irq(int irq, void *pw)
|
|||
}
|
||||
|
||||
exit:
|
||||
if (platform_get_device_id(adc->pdev)->driver_data == TYPE_S3C64XX) {
|
||||
if (cpu == TYPE_S3C64XX) {
|
||||
/* Clear ADC interrupt */
|
||||
writel(0, adc->regs + S3C64XX_ADCCLRINT);
|
||||
}
|
||||
|
@ -308,6 +317,7 @@ static int s3c_adc_probe(struct platform_device *pdev)
|
|||
struct adc_device *adc;
|
||||
struct resource *regs;
|
||||
int ret;
|
||||
unsigned tmp;
|
||||
|
||||
adc = kzalloc(sizeof(struct adc_device), GFP_KERNEL);
|
||||
if (adc == NULL) {
|
||||
|
@ -354,8 +364,12 @@ static int s3c_adc_probe(struct platform_device *pdev)
|
|||
|
||||
clk_enable(adc->clk);
|
||||
|
||||
writel(adc->prescale | S3C2410_ADCCON_PRSCEN,
|
||||
adc->regs + S3C2410_ADCCON);
|
||||
tmp = adc->prescale | S3C2410_ADCCON_PRSCEN;
|
||||
if (platform_get_device_id(pdev)->driver_data == TYPE_S3C64XX) {
|
||||
/* Enable 12-bit ADC resolution */
|
||||
tmp |= S3C64XX_ADCCON_RESSEL;
|
||||
}
|
||||
writel(tmp, adc->regs + S3C2410_ADCCON);
|
||||
|
||||
dev_info(dev, "attached adc driver\n");
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/map.h>
|
||||
|
@ -33,9 +34,15 @@ static struct resource s3c_usb_hsotg_resources[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static u64 s3c_hsotg_dmamask = DMA_BIT_MASK(32);
|
||||
|
||||
struct platform_device s3c_device_usb_hsotg = {
|
||||
.name = "s3c-hsotg",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(s3c_usb_hsotg_resources),
|
||||
.resource = s3c_usb_hsotg_resources,
|
||||
.dev = {
|
||||
.dma_mask = &s3c_hsotg_dmamask,
|
||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||
},
|
||||
};
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
|
||||
/* ADCCON Register Bits */
|
||||
#define S3C64XX_ADCCON_RESSEL (1<<16)
|
||||
#define S3C2410_ADCCON_ECFLG (1<<15)
|
||||
#define S3C2410_ADCCON_PRSCEN (1<<14)
|
||||
#define S3C2410_ADCCON_PRSCVL(x) (((x)&0xFF)<<6)
|
||||
|
|
|
@ -447,7 +447,7 @@ config SERIAL_CLPS711X_CONSOLE
|
|||
|
||||
config SERIAL_SAMSUNG
|
||||
tristate "Samsung SoC serial support"
|
||||
depends on ARM && PLAT_S3C
|
||||
depends on ARM && PLAT_SAMSUNG
|
||||
select SERIAL_CORE
|
||||
help
|
||||
Support for the on-chip UARTs on the Samsung S3C24XX series CPUs,
|
||||
|
@ -455,11 +455,18 @@ config SERIAL_SAMSUNG
|
|||
provide all of these ports, depending on how the serial port
|
||||
pins are configured.
|
||||
|
||||
config SERIAL_SAMSUNG_UARTS_4
|
||||
bool
|
||||
depends on ARM && PLAT_SAMSUNG
|
||||
default y if CPU_S3C2443
|
||||
help
|
||||
Internal node for the common case of 4 Samsung compatible UARTs
|
||||
|
||||
config SERIAL_SAMSUNG_UARTS
|
||||
int
|
||||
depends on ARM && PLAT_S3C
|
||||
depends on ARM && PLAT_SAMSUNG
|
||||
default 2 if ARCH_S3C2400
|
||||
default 4 if ARCH_S5P6440 || ARCH_S5PC1XX || ARCH_S5PV210 || ARCH_S3C64XX || CPU_S3C2443
|
||||
default 4 if SERIAL_SAMSUNG_UARTS_4
|
||||
default 3
|
||||
help
|
||||
Select the number of available UART ports for the Samsung S3C
|
||||
|
@ -526,8 +533,9 @@ config SERIAL_S3C24A0
|
|||
Serial port support for the Samsung S3C24A0 SoC
|
||||
|
||||
config SERIAL_S3C6400
|
||||
tristate "Samsung S3C6400/S3C6410/S5P6440 Serial port support"
|
||||
tristate "Samsung S3C6400/S3C6410/S5P6440 Seria port support"
|
||||
depends on SERIAL_SAMSUNG && (CPU_S3C6400 || CPU_S3C6410 || CPU_S5P6440)
|
||||
select SERIAL_SAMSUNG_UARTS_4
|
||||
default y
|
||||
help
|
||||
Serial port support for the Samsung S3C6400, S3C6410 and S5P6440
|
||||
|
@ -536,6 +544,7 @@ config SERIAL_S3C6400
|
|||
config SERIAL_S5PC100
|
||||
tristate "Samsung S5PC100 Serial port support"
|
||||
depends on SERIAL_SAMSUNG && CPU_S5PC100
|
||||
select SERIAL_SAMSUNG_UARTS_4
|
||||
default y
|
||||
help
|
||||
Serial port support for the Samsung S5PC100 SoCs
|
||||
|
@ -543,6 +552,7 @@ config SERIAL_S5PC100
|
|||
config SERIAL_S5PV210
|
||||
tristate "Samsung S5PV210 Serial port support"
|
||||
depends on SERIAL_SAMSUNG && CPU_S5PV210
|
||||
select SERIAL_SAMSUNG_UARTS_4
|
||||
default y
|
||||
help
|
||||
Serial port support for Samsung's S5P Family of SoC's
|
||||
|
|
|
@ -102,6 +102,7 @@ static struct s3c24xx_uart_info s3c2412_uart_inf = {
|
|||
.name = "Samsung S3C2412 UART",
|
||||
.type = PORT_S3C2412,
|
||||
.fifosize = 64,
|
||||
.has_divslot = 1,
|
||||
.rx_fifomask = S3C2440_UFSTAT_RXMASK,
|
||||
.rx_fifoshift = S3C2440_UFSTAT_RXSHIFT,
|
||||
.rx_fifofull = S3C2440_UFSTAT_RXFULL,
|
||||
|
|
Loading…
Reference in New Issue