Loading arch/arm/mach-integrator/impd1.c +8 −7 Original line number Diff line number Diff line Loading @@ -67,7 +67,7 @@ static void impd1_setvco(struct clk *clk, struct icst525_vco vco) } writel(0, impd1->base + IMPD1_LOCK); #if DEBUG #ifdef DEBUG vco.v = val & 0x1ff; vco.r = (val >> 9) & 0x7f; vco.s = (val >> 16) & 7; Loading Loading @@ -427,17 +427,18 @@ static int impd1_probe(struct lm_device *dev) return ret; } static int impd1_remove_one(struct device *dev, void *data) { device_unregister(dev); return 0; } static void impd1_remove(struct lm_device *dev) { struct impd1_module *impd1 = lm_get_drvdata(dev); struct list_head *l, *n; int i; list_for_each_safe(l, n, &dev->dev.children) { struct device *d = list_to_dev(l); device_unregister(d); } device_for_each_child(&dev->dev, NULL, impd1_remove_one); for (i = 0; i < ARRAY_SIZE(impd1->vcos); i++) clk_unregister(&impd1->vcos[i]); Loading arch/arm/mach-pxa/generic.c +20 −0 Original line number Diff line number Diff line Loading @@ -250,6 +250,25 @@ void __init pxa_set_i2c_info(struct i2c_pxa_platform_data *info) i2c_device.dev.platform_data = info; } static struct resource i2s_resources[] = { { .start = 0x40400000, .end = 0x40400083, .flags = IORESOURCE_MEM, }, { .start = IRQ_I2S, .end = IRQ_I2S, .flags = IORESOURCE_IRQ, }, }; static struct platform_device i2s_device = { .name = "pxa2xx-i2s", .id = -1, .resource = i2c_resources, .num_resources = ARRAY_SIZE(i2s_resources), }; static struct platform_device *devices[] __initdata = { &pxamci_device, &udc_device, Loading @@ -258,6 +277,7 @@ static struct platform_device *devices[] __initdata = { &btuart_device, &stuart_device, &i2c_device, &i2s_device, }; static int __init pxa_init(void) Loading arch/arm/mach-s3c2410/mach-bast.c +3 −3 Original line number Diff line number Diff line Loading @@ -307,9 +307,9 @@ static void bast_nand_select(struct s3c2410_nand_set *set, int slot) } static struct s3c2410_platform_nand bast_nand_info = { .tacls = 40, .twrph0 = 80, .twrph1 = 80, .tacls = 30, .twrph0 = 60, .twrph1 = 60, .nr_sets = ARRAY_SIZE(bast_nand_sets), .sets = bast_nand_sets, .select_chip = bast_nand_select, Loading include/asm-arm/arch-s3c2410/regs-clock.h +17 −4 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ * 10-Feb-2005 Ben Dooks Fixed CAMDIVN address (Guillaume Gourat) * 10-Mar-2005 Lucas Villa Real Changed S3C2410_VA to S3C24XX_VA * 27-Aug-2005 Ben Dooks Add clock-slow info * 20-Oct-2005 Ben Dooks Fixed overflow in PLL (Guillaume Gourat) * 20-Oct-2005 Ben Dooks Add masks for DCLK (Guillaume Gourat) */ #ifndef __ASM_ARM_REGS_CLOCK Loading Loading @@ -66,11 +68,16 @@ #define S3C2410_DCLKCON_DCLK0_UCLK (1<<1) #define S3C2410_DCLKCON_DCLK0_DIV(x) (((x) - 1 )<<4) #define S3C2410_DCLKCON_DCLK0_CMP(x) (((x) - 1 )<<8) #define S3C2410_DCLKCON_DCLK0_DIV_MASK ((0xf)<<4) #define S3C2410_DCLKCON_DCLK0_CMP_MASK ((0xf)<<8) #define S3C2410_DCLKCON_DCLK1EN (1<<16) #define S3C2410_DCLKCON_DCLK1_PCLK (0<<17) #define S3C2410_DCLKCON_DCLK1_UCLK (1<<17) #define S3C2410_DCLKCON_DCLK1_DIV(x) (((x) - 1) <<20) #define S3C2410_DCLKCON_DCLK1_CMP(x) (((x) - 1) <<24) #define S3C2410_DCLKCON_DCLK1_DIV_MASK ((0xf) <<20) #define S3C2410_DCLKCON_DCLK1_CMP_MASK ((0xf) <<24) #define S3C2410_CLKDIVN_PDIVN (1<<0) #define S3C2410_CLKDIVN_HDIVN (1<<1) Loading @@ -83,10 +90,13 @@ #ifndef __ASSEMBLY__ #include <asm/div64.h> static inline unsigned int s3c2410_get_pll(int pllval, int baseclk) s3c2410_get_pll(unsigned int pllval, unsigned int baseclk) { int mdiv, pdiv, sdiv; unsigned int mdiv, pdiv, sdiv; uint64_t fvco; mdiv = pllval >> S3C2410_PLLCON_MDIVSHIFT; pdiv = pllval >> S3C2410_PLLCON_PDIVSHIFT; Loading @@ -96,7 +106,10 @@ s3c2410_get_pll(int pllval, int baseclk) pdiv &= S3C2410_PLLCON_PDIVMASK; sdiv &= S3C2410_PLLCON_SDIVMASK; return (baseclk * (mdiv + 8)) / ((pdiv + 2) << sdiv); fvco = (uint64_t)baseclk * (mdiv + 8); do_div(fvco, (pdiv + 2) << sdiv); return (unsigned int)fvco; } #endif /* __ASSEMBLY__ */ Loading Loading
arch/arm/mach-integrator/impd1.c +8 −7 Original line number Diff line number Diff line Loading @@ -67,7 +67,7 @@ static void impd1_setvco(struct clk *clk, struct icst525_vco vco) } writel(0, impd1->base + IMPD1_LOCK); #if DEBUG #ifdef DEBUG vco.v = val & 0x1ff; vco.r = (val >> 9) & 0x7f; vco.s = (val >> 16) & 7; Loading Loading @@ -427,17 +427,18 @@ static int impd1_probe(struct lm_device *dev) return ret; } static int impd1_remove_one(struct device *dev, void *data) { device_unregister(dev); return 0; } static void impd1_remove(struct lm_device *dev) { struct impd1_module *impd1 = lm_get_drvdata(dev); struct list_head *l, *n; int i; list_for_each_safe(l, n, &dev->dev.children) { struct device *d = list_to_dev(l); device_unregister(d); } device_for_each_child(&dev->dev, NULL, impd1_remove_one); for (i = 0; i < ARRAY_SIZE(impd1->vcos); i++) clk_unregister(&impd1->vcos[i]); Loading
arch/arm/mach-pxa/generic.c +20 −0 Original line number Diff line number Diff line Loading @@ -250,6 +250,25 @@ void __init pxa_set_i2c_info(struct i2c_pxa_platform_data *info) i2c_device.dev.platform_data = info; } static struct resource i2s_resources[] = { { .start = 0x40400000, .end = 0x40400083, .flags = IORESOURCE_MEM, }, { .start = IRQ_I2S, .end = IRQ_I2S, .flags = IORESOURCE_IRQ, }, }; static struct platform_device i2s_device = { .name = "pxa2xx-i2s", .id = -1, .resource = i2c_resources, .num_resources = ARRAY_SIZE(i2s_resources), }; static struct platform_device *devices[] __initdata = { &pxamci_device, &udc_device, Loading @@ -258,6 +277,7 @@ static struct platform_device *devices[] __initdata = { &btuart_device, &stuart_device, &i2c_device, &i2s_device, }; static int __init pxa_init(void) Loading
arch/arm/mach-s3c2410/mach-bast.c +3 −3 Original line number Diff line number Diff line Loading @@ -307,9 +307,9 @@ static void bast_nand_select(struct s3c2410_nand_set *set, int slot) } static struct s3c2410_platform_nand bast_nand_info = { .tacls = 40, .twrph0 = 80, .twrph1 = 80, .tacls = 30, .twrph0 = 60, .twrph1 = 60, .nr_sets = ARRAY_SIZE(bast_nand_sets), .sets = bast_nand_sets, .select_chip = bast_nand_select, Loading
include/asm-arm/arch-s3c2410/regs-clock.h +17 −4 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ * 10-Feb-2005 Ben Dooks Fixed CAMDIVN address (Guillaume Gourat) * 10-Mar-2005 Lucas Villa Real Changed S3C2410_VA to S3C24XX_VA * 27-Aug-2005 Ben Dooks Add clock-slow info * 20-Oct-2005 Ben Dooks Fixed overflow in PLL (Guillaume Gourat) * 20-Oct-2005 Ben Dooks Add masks for DCLK (Guillaume Gourat) */ #ifndef __ASM_ARM_REGS_CLOCK Loading Loading @@ -66,11 +68,16 @@ #define S3C2410_DCLKCON_DCLK0_UCLK (1<<1) #define S3C2410_DCLKCON_DCLK0_DIV(x) (((x) - 1 )<<4) #define S3C2410_DCLKCON_DCLK0_CMP(x) (((x) - 1 )<<8) #define S3C2410_DCLKCON_DCLK0_DIV_MASK ((0xf)<<4) #define S3C2410_DCLKCON_DCLK0_CMP_MASK ((0xf)<<8) #define S3C2410_DCLKCON_DCLK1EN (1<<16) #define S3C2410_DCLKCON_DCLK1_PCLK (0<<17) #define S3C2410_DCLKCON_DCLK1_UCLK (1<<17) #define S3C2410_DCLKCON_DCLK1_DIV(x) (((x) - 1) <<20) #define S3C2410_DCLKCON_DCLK1_CMP(x) (((x) - 1) <<24) #define S3C2410_DCLKCON_DCLK1_DIV_MASK ((0xf) <<20) #define S3C2410_DCLKCON_DCLK1_CMP_MASK ((0xf) <<24) #define S3C2410_CLKDIVN_PDIVN (1<<0) #define S3C2410_CLKDIVN_HDIVN (1<<1) Loading @@ -83,10 +90,13 @@ #ifndef __ASSEMBLY__ #include <asm/div64.h> static inline unsigned int s3c2410_get_pll(int pllval, int baseclk) s3c2410_get_pll(unsigned int pllval, unsigned int baseclk) { int mdiv, pdiv, sdiv; unsigned int mdiv, pdiv, sdiv; uint64_t fvco; mdiv = pllval >> S3C2410_PLLCON_MDIVSHIFT; pdiv = pllval >> S3C2410_PLLCON_PDIVSHIFT; Loading @@ -96,7 +106,10 @@ s3c2410_get_pll(int pllval, int baseclk) pdiv &= S3C2410_PLLCON_PDIVMASK; sdiv &= S3C2410_PLLCON_SDIVMASK; return (baseclk * (mdiv + 8)) / ((pdiv + 2) << sdiv); fvco = (uint64_t)baseclk * (mdiv + 8); do_div(fvco, (pdiv + 2) << sdiv); return (unsigned int)fvco; } #endif /* __ASSEMBLY__ */ Loading