mirror of https://gitee.com/openkylin/linux.git
Merge tag 'arm-ep93xx-adc' of https://github.com/sverdlin/linux into next/soc
Pull "ADC device support for Cirrus Logic EP93xx SoC" from Alexander Sverdlin: - Add ADC specific clock - Add ADC device support to EP93xx core - Add ADC instance to EDB93xx boards The above doesn't include a driver for ADC device. * tag 'arm-ep93xx-adc' of https://github.com/sverdlin/linux: ARM: edb93xx: Add ADC platform device ARM: ep93xx: Add ADC platform device support to core ARM: ep93xx: Add ADC clock
This commit is contained in:
commit
5cc3928cab
|
@ -98,6 +98,13 @@ static struct clk clk_keypad = {
|
|||
.enable_mask = EP93XX_SYSCON_KEYTCHCLKDIV_KEN,
|
||||
.set_rate = set_keytchclk_rate,
|
||||
};
|
||||
static struct clk clk_adc = {
|
||||
.parent = &clk_xtali,
|
||||
.sw_locked = 1,
|
||||
.enable_reg = EP93XX_SYSCON_KEYTCHCLKDIV,
|
||||
.enable_mask = EP93XX_SYSCON_KEYTCHCLKDIV_TSEN,
|
||||
.set_rate = set_keytchclk_rate,
|
||||
};
|
||||
static struct clk clk_spi = {
|
||||
.parent = &clk_xtali,
|
||||
.rate = EP93XX_EXT_CLK_RATE,
|
||||
|
@ -214,6 +221,7 @@ static struct clk_lookup clocks[] = {
|
|||
INIT_CK(NULL, "pll2", &clk_pll2),
|
||||
INIT_CK("ohci-platform", NULL, &clk_usb_host),
|
||||
INIT_CK("ep93xx-keypad", NULL, &clk_keypad),
|
||||
INIT_CK("ep93xx-adc", NULL, &clk_adc),
|
||||
INIT_CK("ep93xx-fb", NULL, &clk_video),
|
||||
INIT_CK("ep93xx-spi.0", NULL, &clk_spi),
|
||||
INIT_CK("ep93xx-i2s", "mclk", &clk_i2s_mclk),
|
||||
|
|
|
@ -820,6 +820,30 @@ void ep93xx_ide_release_gpio(struct platform_device *pdev)
|
|||
}
|
||||
EXPORT_SYMBOL(ep93xx_ide_release_gpio);
|
||||
|
||||
/*************************************************************************
|
||||
* EP93xx ADC
|
||||
*************************************************************************/
|
||||
static struct resource ep93xx_adc_resources[] = {
|
||||
DEFINE_RES_MEM(EP93XX_ADC_PHYS_BASE, 0x28),
|
||||
DEFINE_RES_IRQ(IRQ_EP93XX_TOUCH),
|
||||
};
|
||||
|
||||
static struct platform_device ep93xx_adc_device = {
|
||||
.name = "ep93xx-adc",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(ep93xx_adc_resources),
|
||||
.resource = ep93xx_adc_resources,
|
||||
};
|
||||
|
||||
void __init ep93xx_register_adc(void)
|
||||
{
|
||||
/* Power up ADC, deactivate Touch Screen Controller */
|
||||
ep93xx_devcfg_set_clear(EP93XX_SYSCON_DEVCFG_TIN,
|
||||
EP93XX_SYSCON_DEVCFG_ADCPD);
|
||||
|
||||
platform_device_register(&ep93xx_adc_device);
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* EP93xx Security peripheral
|
||||
*************************************************************************/
|
||||
|
|
|
@ -245,6 +245,7 @@ static void __init edb93xx_init_machine(void)
|
|||
edb93xx_register_pwm();
|
||||
edb93xx_register_fb();
|
||||
edb93xx_register_ide();
|
||||
ep93xx_register_adc();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -52,6 +52,7 @@ int ep93xx_i2s_acquire(void);
|
|||
void ep93xx_i2s_release(void);
|
||||
void ep93xx_register_ac97(void);
|
||||
void ep93xx_register_ide(void);
|
||||
void ep93xx_register_adc(void);
|
||||
int ep93xx_ide_acquire_gpio(struct platform_device *pdev);
|
||||
void ep93xx_ide_release_gpio(struct platform_device *pdev);
|
||||
|
||||
|
|
|
@ -95,6 +95,7 @@
|
|||
#define EP93XX_KEY_MATRIX_PHYS_BASE EP93XX_APB_PHYS(0x000f0000)
|
||||
#define EP93XX_KEY_MATRIX_BASE EP93XX_APB_IOMEM(0x000f0000)
|
||||
|
||||
#define EP93XX_ADC_PHYS_BASE EP93XX_APB_PHYS(0x00100000)
|
||||
#define EP93XX_ADC_BASE EP93XX_APB_IOMEM(0x00100000)
|
||||
#define EP93XX_TOUCHSCREEN_BASE EP93XX_APB_IOMEM(0x00100000)
|
||||
|
||||
|
|
Loading…
Reference in New Issue