From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Thu, 10 Dec 2015 10:38:13 +0100 Subject: [U-Boot] [PATCH v3 3/5] ARM: cpu: at91: clean up peripheral clock code In-Reply-To: <1449714053-26416-4-git-send-email-wenyou.yang@atmel.com> References: <1449714053-26416-1-git-send-email-wenyou.yang@atmel.com> <1449714053-26416-4-git-send-email-wenyou.yang@atmel.com> Message-ID: <56694805.9080205@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Wenyou, Am 10.12.2015 um 03:20 schrieb Wenyou Yang: > Due to introducing the new peripheral clock handle functions, > use these functions to clean up the duplicated code. > > Meanwhile, remove unneeded header file include, at91_pmc.h. > > Signed-off-by: Wenyou Yang > --- > > Changes in v3: None > Changes in v2: None > > arch/arm/mach-at91/arm920t/at91rm9200_devices.c | 13 ++----- > arch/arm/mach-at91/arm920t/timer.c | 4 +- > arch/arm/mach-at91/arm926ejs/at91sam9260_devices.c | 36 +++++------------- > arch/arm/mach-at91/arm926ejs/at91sam9261_devices.c | 28 ++++---------- > arch/arm/mach-at91/arm926ejs/at91sam9263_devices.c | 37 +++++------------- > .../mach-at91/arm926ejs/at91sam9m10g45_devices.c | 33 ++++------------ > arch/arm/mach-at91/arm926ejs/at91sam9n12_devices.c | 40 +++++--------------- > arch/arm/mach-at91/arm926ejs/at91sam9rl_devices.c | 28 ++++---------- > arch/arm/mach-at91/arm926ejs/at91sam9x5_devices.c | 38 +++++-------------- > arch/arm/mach-at91/arm926ejs/cpu.c | 1 - > arch/arm/mach-at91/arm926ejs/timer.c | 5 +-- > arch/arm/mach-at91/armv7/cpu.c | 1 - > arch/arm/mach-at91/armv7/timer.c | 1 - > arch/arm/mach-at91/phy.c | 1 - > arch/arm/mach-at91/sdram.c | 1 - > 15 files changed, 65 insertions(+), 202 deletions(-) Tested on the smartweb board, see log: http://xeidos.ddns.net/buildbot/builders/smartweb_dfu/builds/29/steps/shell/logs/tbotlog Tested-by: Heiko Schocher bye, Heiko > > diff --git a/arch/arm/mach-at91/arm920t/at91rm9200_devices.c b/arch/arm/mach-at91/arm920t/at91rm9200_devices.c > index fc54327..a340122 100644 > --- a/arch/arm/mach-at91/arm920t/at91rm9200_devices.c > +++ b/arch/arm/mach-at91/arm920t/at91rm9200_devices.c > @@ -14,7 +14,6 @@ > #include > #include > #include > -#include > #include > > /* > @@ -34,29 +33,23 @@ > > void at91_serial0_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 17, 1); /* TXD0 */ > at91_set_a_periph(AT91_PIO_PORTA, 18, PUP); /* RXD0 */ > - writel(1 << ATMEL_ID_USART0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART0); > } > > void at91_serial1_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTB, 20, PUP); /* RXD1 */ > at91_set_a_periph(AT91_PIO_PORTB, 21, 1); /* TXD1 */ > - writel(1 << ATMEL_ID_USART1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART1); > } > > void at91_serial2_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 22, PUP); /* RXD2 */ > at91_set_a_periph(AT91_PIO_PORTA, 23, 1); /* TXD2 */ > - writel(1 << ATMEL_ID_USART2, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART2); > } > > void at91_seriald_hw_init(void) > diff --git a/arch/arm/mach-at91/arm920t/timer.c b/arch/arm/mach-at91/arm920t/timer.c > index 6aa2994..3190961 100644 > --- a/arch/arm/mach-at91/arm920t/timer.c > +++ b/arch/arm/mach-at91/arm920t/timer.c > @@ -19,7 +19,6 @@ > #include > #include > #include > -#include > > DECLARE_GLOBAL_DATA_PTR; > > @@ -31,8 +30,7 @@ int timer_init(void) > at91_tc_t *tc = (at91_tc_t *) ATMEL_BASE_TC; > at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > > - /* enables TC1.0 clock */ > - writel(1 << ATMEL_ID_TC0, &pmc->pcer); /* enable clock */ > + at91_periph_clk_enable(ATMEL_ID_TC0); > > writel(0, &tc->bcr); > writel(AT91_TC_BMR_TC0XC0S_NONE | AT91_TC_BMR_TC1XC1S_NONE | > diff --git a/arch/arm/mach-at91/arm926ejs/at91sam9260_devices.c b/arch/arm/mach-at91/arm926ejs/at91sam9260_devices.c > index 5e0c0f5..912a966 100644 > --- a/arch/arm/mach-at91/arm926ejs/at91sam9260_devices.c > +++ b/arch/arm/mach-at91/arm926ejs/at91sam9260_devices.c > @@ -11,8 +11,8 @@ > #include > #include > #include > -#include > #include > +#include > #include > > /* > @@ -32,51 +32,40 @@ > > void at91_serial0_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTB, 4, 1); /* TXD0 */ > at91_set_a_periph(AT91_PIO_PORTB, 5, PUP); /* RXD0 */ > - writel(1 << ATMEL_ID_USART0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART0); > } > > void at91_serial1_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTB, 6, 1); /* TXD1 */ > at91_set_a_periph(AT91_PIO_PORTB, 7, PUP); /* RXD1 */ > - writel(1 << ATMEL_ID_USART1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART1); > } > > void at91_serial2_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTB, 8, 1); /* TXD2 */ > at91_set_a_periph(AT91_PIO_PORTB, 9, PUP); /* RXD2 */ > - writel(1 << ATMEL_ID_USART2, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART2); > } > > void at91_seriald_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTB, 14, PUP); /* DRXD */ > at91_set_a_periph(AT91_PIO_PORTB, 15, 1); /* DTXD */ > - writel(1 << ATMEL_ID_SYS, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SYS); > } > > #if defined(CONFIG_HAS_DATAFLASH) || defined(CONFIG_ATMEL_SPI) > void at91_spi0_hw_init(unsigned long cs_mask) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 0, PUP); /* SPI0_MISO */ > at91_set_a_periph(AT91_PIO_PORTA, 1, PUP); /* SPI0_MOSI */ > at91_set_a_periph(AT91_PIO_PORTA, 2, PUP); /* SPI0_SPCK */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_SPI0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SPI0); > > if (cs_mask & (1 << 0)) { > at91_set_a_periph(AT91_PIO_PORTA, 3, 1); > @@ -106,14 +95,11 @@ void at91_spi0_hw_init(unsigned long cs_mask) > > void at91_spi1_hw_init(unsigned long cs_mask) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTB, 0, PUP); /* SPI1_MISO */ > at91_set_a_periph(AT91_PIO_PORTB, 1, PUP); /* SPI1_MOSI */ > at91_set_a_periph(AT91_PIO_PORTB, 2, PUP); /* SPI1_SPCK */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_SPI1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SPI1); > > if (cs_mask & (1 << 0)) { > at91_set_a_periph(AT91_PIO_PORTB, 3, 1); > @@ -145,9 +131,7 @@ void at91_spi1_hw_init(unsigned long cs_mask) > #ifdef CONFIG_MACB > void at91_macb_hw_init(void) > { > - /* Enable EMAC clock */ > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - writel(1 << ATMEL_ID_EMAC0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_EMAC0); > > at91_set_a_periph(AT91_PIO_PORTA, 19, 0); /* ETXCK_EREFCK */ > at91_set_a_periph(AT91_PIO_PORTA, 17, 0); /* ERXDV */ > @@ -190,9 +174,7 @@ void at91_macb_hw_init(void) > #if defined(CONFIG_GENERIC_ATMEL_MCI) > void at91_mci_hw_init(void) > { > - /* Enable mci clock */ > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - writel(1 << ATMEL_ID_MCI, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_MCI); > > at91_set_a_periph(AT91_PIO_PORTA, 8, 1); /* MCCK */ > #if defined(CONFIG_ATMEL_MCI_PORTB) > diff --git a/arch/arm/mach-at91/arm926ejs/at91sam9261_devices.c b/arch/arm/mach-at91/arm926ejs/at91sam9261_devices.c > index a445c75..4bd4e75 100644 > --- a/arch/arm/mach-at91/arm926ejs/at91sam9261_devices.c > +++ b/arch/arm/mach-at91/arm926ejs/at91sam9261_devices.c > @@ -9,7 +9,7 @@ > #include > #include > #include > -#include > +#include > #include > > /* > @@ -29,51 +29,40 @@ > > void at91_serial0_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTC, 8, 1); /* TXD0 */ > at91_set_a_periph(AT91_PIO_PORTC, 9, 0); /* RXD0 */ > - writel(1 << ATMEL_ID_USART0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART0); > } > > void at91_serial1_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTC, 12, 1); /* TXD1 */ > at91_set_a_periph(AT91_PIO_PORTC, 13, 0); /* RXD1 */ > - writel(1 << ATMEL_ID_USART1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART1); > } > > void at91_serial2_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTC, 14, 1); /* TXD2 */ > at91_set_a_periph(AT91_PIO_PORTC, 15, 0); /* RXD2 */ > - writel(1 << ATMEL_ID_USART2, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART2); > } > > void at91_seriald_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 9, 0); /* DRXD */ > at91_set_a_periph(AT91_PIO_PORTA, 10, 1); /* DTXD */ > - writel(1 << ATMEL_ID_SYS, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SYS); > } > > #if defined(CONFIG_HAS_DATAFLASH) || defined(CONFIG_ATMEL_SPI) > void at91_spi0_hw_init(unsigned long cs_mask) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 0, PUP); /* SPI0_MISO */ > at91_set_a_periph(AT91_PIO_PORTA, 1, PUP); /* SPI0_MOSI */ > at91_set_a_periph(AT91_PIO_PORTA, 2, PUP); /* SPI0_SPCK */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_SPI0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SPI0); > > if (cs_mask & (1 << 0)) { > at91_set_a_periph(AT91_PIO_PORTA, 3, 1); > @@ -103,14 +92,11 @@ void at91_spi0_hw_init(unsigned long cs_mask) > > void at91_spi1_hw_init(unsigned long cs_mask) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTB, 30, PUP); /* SPI1_MISO */ > at91_set_a_periph(AT91_PIO_PORTB, 31, PUP); /* SPI1_MOSI */ > at91_set_a_periph(AT91_PIO_PORTB, 29, PUP); /* SPI1_SPCK */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_SPI1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SPI1); > > if (cs_mask & (1 << 0)) { > at91_set_a_periph(AT91_PIO_PORTB, 28, 1); > diff --git a/arch/arm/mach-at91/arm926ejs/at91sam9263_devices.c b/arch/arm/mach-at91/arm926ejs/at91sam9263_devices.c > index 6b51d5f..f3f4800 100644 > --- a/arch/arm/mach-at91/arm926ejs/at91sam9263_devices.c > +++ b/arch/arm/mach-at91/arm926ejs/at91sam9263_devices.c > @@ -13,7 +13,7 @@ > #include > #include > #include > -#include > +#include > #include > > /* > @@ -33,51 +33,40 @@ > > void at91_serial0_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 26, 1); /* TXD0 */ > at91_set_a_periph(AT91_PIO_PORTA, 27, PUP); /* RXD0 */ > - writel(1 << ATMEL_ID_USART0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART0); > } > > void at91_serial1_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTD, 0, 1); /* TXD1 */ > at91_set_a_periph(AT91_PIO_PORTD, 1, PUP); /* RXD1 */ > - writel(1 << ATMEL_ID_USART1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART1); > } > > void at91_serial2_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTD, 2, 1); /* TXD2 */ > at91_set_a_periph(AT91_PIO_PORTD, 3, PUP); /* RXD2 */ > - writel(1 << ATMEL_ID_USART2, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART2); > } > > void at91_seriald_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTC, 30, PUP); /* DRXD */ > at91_set_a_periph(AT91_PIO_PORTC, 31, 1); /* DTXD */ > - writel(1 << ATMEL_ID_SYS, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SYS); > } > > #if defined(CONFIG_HAS_DATAFLASH) || defined(CONFIG_ATMEL_SPI) > void at91_spi0_hw_init(unsigned long cs_mask) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_b_periph(AT91_PIO_PORTA, 0, PUP); /* SPI0_MISO */ > at91_set_b_periph(AT91_PIO_PORTA, 1, PUP); /* SPI0_MOSI */ > at91_set_b_periph(AT91_PIO_PORTA, 2, PUP); /* SPI0_SPCK */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_SPI0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SPI0); > > if (cs_mask & (1 << 0)) { > at91_set_b_periph(AT91_PIO_PORTA, 5, 1); > @@ -107,14 +96,11 @@ void at91_spi0_hw_init(unsigned long cs_mask) > > void at91_spi1_hw_init(unsigned long cs_mask) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTB, 12, PUP); /* SPI1_MISO */ > at91_set_a_periph(AT91_PIO_PORTB, 13, PUP); /* SPI1_MOSI */ > at91_set_a_periph(AT91_PIO_PORTB, 14, PUP); /* SPI1_SPCK */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_SPI1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SPI1); > > if (cs_mask & (1 << 0)) { > at91_set_a_periph(AT91_PIO_PORTB, 15, 1); > @@ -146,9 +132,7 @@ void at91_spi1_hw_init(unsigned long cs_mask) > #if defined(CONFIG_GENERIC_ATMEL_MCI) > void at91_mci_hw_init(void) > { > - /* Enable mci clock */ > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - writel(1 << ATMEL_ID_MCI1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_MCI1); > > at91_set_a_periph(AT91_PIO_PORTA, 6, PUP); /* MCI1_CK */ > > @@ -207,12 +191,9 @@ void at91_uhp_hw_init(void) > #ifdef CONFIG_AT91_CAN > void at91_can_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 13, 0); /* CAN_TX */ > at91_set_a_periph(AT91_PIO_PORTA, 14, 1); /* CAN_RX */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_CAN, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_CAN); > } > #endif > diff --git a/arch/arm/mach-at91/arm926ejs/at91sam9m10g45_devices.c b/arch/arm/mach-at91/arm926ejs/at91sam9m10g45_devices.c > index 0e6c0da..0d83426 100644 > --- a/arch/arm/mach-at91/arm926ejs/at91sam9m10g45_devices.c > +++ b/arch/arm/mach-at91/arm926ejs/at91sam9m10g45_devices.c > @@ -8,7 +8,7 @@ > > #include > #include > -#include > +#include > #include > #include > > @@ -29,51 +29,40 @@ > > void at91_serial0_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTB, 19, 1); /* TXD0 */ > at91_set_a_periph(AT91_PIO_PORTB, 18, PUP); /* RXD0 */ > - writel(1 << ATMEL_ID_USART0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART0); > } > > void at91_serial1_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTB, 4, 1); /* TXD1 */ > at91_set_a_periph(AT91_PIO_PORTB, 5, PUP); /* RXD1 */ > - writel(1 << ATMEL_ID_USART1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART1); > } > > void at91_serial2_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTD, 6, 1); /* TXD2 */ > at91_set_a_periph(AT91_PIO_PORTD, 7, PUP); /* RXD2 */ > - writel(1 << ATMEL_ID_USART2, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART2); > } > > void at91_seriald_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTB, 12, 0); /* DRXD */ > at91_set_a_periph(AT91_PIO_PORTB, 13, 1); /* DTXD */ > - writel(1 << ATMEL_ID_SYS, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SYS); > } > > #if defined(CONFIG_HAS_DATAFLASH) || defined(CONFIG_ATMEL_SPI) > void at91_spi0_hw_init(unsigned long cs_mask) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTB, 0, PUP); /* SPI0_MISO */ > at91_set_a_periph(AT91_PIO_PORTB, 1, PUP); /* SPI0_MOSI */ > at91_set_a_periph(AT91_PIO_PORTB, 2, PUP); /* SPI0_SPCK */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_SPI0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SPI0); > > if (cs_mask & (1 << 0)) { > at91_set_a_periph(AT91_PIO_PORTB, 3, 1); > @@ -103,14 +92,11 @@ void at91_spi0_hw_init(unsigned long cs_mask) > > void at91_spi1_hw_init(unsigned long cs_mask) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTB, 14, PUP); /* SPI1_MISO */ > at91_set_a_periph(AT91_PIO_PORTB, 15, PUP); /* SPI1_MOSI */ > at91_set_a_periph(AT91_PIO_PORTB, 16, PUP); /* SPI1_SPCK */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_SPI1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SPI1); > > if (cs_mask & (1 << 0)) { > at91_set_a_periph(AT91_PIO_PORTB, 17, 1); > @@ -169,8 +155,6 @@ void at91_macb_hw_init(void) > #ifdef CONFIG_GENERIC_ATMEL_MCI > void at91_mci_hw_init(void) > { > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 0, 0); /* MCI0 CLK */ > at91_set_a_periph(AT91_PIO_PORTA, 1, 0); /* MCI0 CDA */ > at91_set_a_periph(AT91_PIO_PORTA, 2, 0); /* MCI0 DA0 */ > @@ -178,7 +162,6 @@ void at91_mci_hw_init(void) > at91_set_a_periph(AT91_PIO_PORTA, 4, 0); /* MCI0 DA2 */ > at91_set_a_periph(AT91_PIO_PORTA, 5, 0); /* MCI0 DA3 */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_MCI0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_MCI0); > } > #endif > diff --git a/arch/arm/mach-at91/arm926ejs/at91sam9n12_devices.c b/arch/arm/mach-at91/arm926ejs/at91sam9n12_devices.c > index 39f17a1..a03abfc 100644 > --- a/arch/arm/mach-at91/arm926ejs/at91sam9n12_devices.c > +++ b/arch/arm/mach-at91/arm926ejs/at91sam9n12_devices.c > @@ -8,8 +8,8 @@ > #include > #include > #include > -#include > #include > +#include > > unsigned int has_lcdc() > { > @@ -18,60 +18,47 @@ unsigned int has_lcdc() > > void at91_serial0_hw_init(void) > { > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 0, 1); /* TXD0 */ > at91_set_a_periph(AT91_PIO_PORTA, 1, 0); /* RXD0 */ > - writel(1 << ATMEL_ID_USART0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART0); > } > > void at91_serial1_hw_init(void) > { > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 5, 1); /* TXD1 */ > at91_set_a_periph(AT91_PIO_PORTA, 6, 0); /* RXD1 */ > - writel(1 << ATMEL_ID_USART1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART1); > } > > void at91_serial2_hw_init(void) > { > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 7, 1); /* TXD2 */ > at91_set_a_periph(AT91_PIO_PORTA, 8, 0); /* RXD2 */ > - writel(1 << ATMEL_ID_USART2, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART2); > } > > void at91_serial3_hw_init(void) > { > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - > at91_set_b_periph(AT91_PIO_PORTC, 22, 1); /* TXD3 */ > at91_set_b_periph(AT91_PIO_PORTC, 23, 0); /* RXD3 */ > - writel(1 << ATMEL_ID_USART3, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART3); > } > > void at91_seriald_hw_init(void) > { > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 10, 1); /* DTXD */ > at91_set_a_periph(AT91_PIO_PORTA, 9, 0); /* DRXD */ > - writel(1 << ATMEL_ID_SYS, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SYS); > } > > #ifdef CONFIG_ATMEL_SPI > void at91_spi0_hw_init(unsigned long cs_mask) > { > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 11, 0); /* SPI0_MISO */ > at91_set_a_periph(AT91_PIO_PORTA, 12, 0); /* SPI0_MOSI */ > at91_set_a_periph(AT91_PIO_PORTA, 13, 0); /* SPI0_SPCK */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_SPI0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SPI0); > > if (cs_mask & (1 << 0)) > at91_set_pio_output(AT91_PIO_PORTA, 14, 1); > @@ -85,14 +72,11 @@ void at91_spi0_hw_init(unsigned long cs_mask) > > void at91_spi1_hw_init(unsigned long cs_mask) > { > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - > at91_set_b_periph(AT91_PIO_PORTA, 21, 0); /* SPI1_MISO */ > at91_set_b_periph(AT91_PIO_PORTA, 22, 0); /* SPI1_MOSI */ > at91_set_b_periph(AT91_PIO_PORTA, 23, 0); /* SPI1_SPCK */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_SPI1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SPI1); > > if (cs_mask & (1 << 0)) > at91_set_pio_output(AT91_PIO_PORTA, 8, 1); > @@ -107,8 +91,6 @@ void at91_spi1_hw_init(unsigned long cs_mask) > > void at91_mci_hw_init(void) > { > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 17, 0); /* MCCK */ > at91_set_a_periph(AT91_PIO_PORTA, 16, 0); /* MCCDA */ > at91_set_a_periph(AT91_PIO_PORTA, 15, 0); /* MCDA0 */ > @@ -116,14 +98,12 @@ void at91_mci_hw_init(void) > at91_set_a_periph(AT91_PIO_PORTA, 19, 0); /* MCDA2 */ > at91_set_a_periph(AT91_PIO_PORTA, 20, 0); /* MCDA3 */ > > - writel(1 << ATMEL_ID_HSMCI0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_HSMCI0); > } > > #ifdef CONFIG_LCD > void at91_lcd_hw_init(void) > { > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTC, 24, 0); /* LCDDPWR */ > at91_set_a_periph(AT91_PIO_PORTC, 26, 0); /* LCDVSYNC */ > at91_set_a_periph(AT91_PIO_PORTC, 27, 0); /* LCDHSYNC */ > @@ -156,6 +136,6 @@ void at91_lcd_hw_init(void) > at91_set_a_periph(AT91_PIO_PORTC, 22, 0); /* LCDD22 */ > at91_set_a_periph(AT91_PIO_PORTC, 23, 0); /* LCDD23 */ > > - writel(1 << ATMEL_ID_LCDC, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_LCDC); > } > #endif > diff --git a/arch/arm/mach-at91/arm926ejs/at91sam9rl_devices.c b/arch/arm/mach-at91/arm926ejs/at91sam9rl_devices.c > index 857c864..dbf9386 100644 > --- a/arch/arm/mach-at91/arm926ejs/at91sam9rl_devices.c > +++ b/arch/arm/mach-at91/arm926ejs/at91sam9rl_devices.c > @@ -9,7 +9,7 @@ > #include > #include > #include > -#include > +#include > #include > > /* > @@ -29,51 +29,40 @@ > > void at91_serial0_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 6, 1); /* TXD0 */ > at91_set_a_periph(AT91_PIO_PORTA, 7, PUP); /* RXD0 */ > - writel(1 << ATMEL_ID_USART0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART0); > } > > void at91_serial1_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 11, 1); /* TXD1 */ > at91_set_a_periph(AT91_PIO_PORTA, 12, PUP); /* RXD1 */ > - writel(1 << ATMEL_ID_USART1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART1); > } > > void at91_serial2_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 13, 1); /* TXD2 */ > at91_set_a_periph(AT91_PIO_PORTA, 14, PUP); /* RXD2 */ > - writel(1 << ATMEL_ID_USART2, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART2); > } > > void at91_seriald_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 21, PUP); /* DRXD */ > at91_set_a_periph(AT91_PIO_PORTA, 22, 1); /* DTXD */ > - writel(1 << ATMEL_ID_SYS, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SYS); > } > > #if defined(CONFIG_HAS_DATAFLASH) || defined(CONFIG_ATMEL_SPI) > void at91_spi0_hw_init(unsigned long cs_mask) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 25, PUP); /* SPI0_MISO */ > at91_set_a_periph(AT91_PIO_PORTA, 26, PUP); /* SPI0_MOSI */ > at91_set_a_periph(AT91_PIO_PORTA, 27, PUP); /* SPI0_SPCK */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_SPI, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SPI); > > if (cs_mask & (1 << 0)) { > at91_set_a_periph(AT91_PIO_PORTA, 28, 1); > @@ -105,8 +94,6 @@ void at91_spi0_hw_init(unsigned long cs_mask) > #ifdef CONFIG_GENERIC_ATMEL_MCI > void at91_mci_hw_init(void) > { > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 2, 0); /* MCI CLK */ > at91_set_a_periph(AT91_PIO_PORTA, 1, 0); /* MCI CDA */ > at91_set_a_periph(AT91_PIO_PORTA, 0, 0); /* MCI DA0 */ > @@ -114,7 +101,6 @@ void at91_mci_hw_init(void) > at91_set_a_periph(AT91_PIO_PORTA, 4, 0); /* MCI DA2 */ > at91_set_a_periph(AT91_PIO_PORTA, 5, 0); /* MCI DA3 */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_MCI, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_MCI); > } > #endif > diff --git a/arch/arm/mach-at91/arm926ejs/at91sam9x5_devices.c b/arch/arm/mach-at91/arm926ejs/at91sam9x5_devices.c > index 6d94572..3e4555a 100644 > --- a/arch/arm/mach-at91/arm926ejs/at91sam9x5_devices.c > +++ b/arch/arm/mach-at91/arm926ejs/at91sam9x5_devices.c > @@ -6,7 +6,7 @@ > > #include > #include > -#include > +#include > #include > #include > > @@ -64,42 +64,34 @@ char *get_cpu_name() > > void at91_seriald_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 9, 0); /* DRXD */ > at91_set_a_periph(AT91_PIO_PORTA, 10, 1); /* DTXD */ > > - writel(1 << ATMEL_ID_SYS, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SYS); > } > > void at91_serial0_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 0, 1); /* TXD */ > at91_set_a_periph(AT91_PIO_PORTA, 1, 0); /* RXD */ > > - writel(1 << ATMEL_ID_USART0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART0); > } > > void at91_serial1_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 5, 1); /* TXD */ > at91_set_a_periph(AT91_PIO_PORTA, 6, 0); /* RXD */ > > - writel(1 << ATMEL_ID_USART1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART1); > } > > void at91_serial2_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 7, 1); /* TXD */ > at91_set_a_periph(AT91_PIO_PORTA, 8, 0); /* RXD */ > > - writel(1 << ATMEL_ID_USART2, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_USART2); > } > > void at91_mci_hw_init(void) > @@ -112,22 +104,17 @@ void at91_mci_hw_init(void) > at91_set_a_periph(AT91_PIO_PORTA, 19, 1); /* MCDA2 */ > at91_set_a_periph(AT91_PIO_PORTA, 20, 1); /* MCDA3 */ > > - /* Enable clock for MCI0 */ > - struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC; > - writel(1 << ATMEL_ID_HSMCI0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_HSMCI0); > } > > #ifdef CONFIG_ATMEL_SPI > void at91_spi0_hw_init(unsigned long cs_mask) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_a_periph(AT91_PIO_PORTA, 11, 0); /* SPI0_MISO */ > at91_set_a_periph(AT91_PIO_PORTA, 12, 0); /* SPI0_MOSI */ > at91_set_a_periph(AT91_PIO_PORTA, 13, 0); /* SPI0_SPCK */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_SPI0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SPI0); > > if (cs_mask & (1 << 0)) > at91_set_a_periph(AT91_PIO_PORTA, 14, 0); > @@ -149,14 +136,11 @@ void at91_spi0_hw_init(unsigned long cs_mask) > > void at91_spi1_hw_init(unsigned long cs_mask) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > at91_set_b_periph(AT91_PIO_PORTA, 21, 0); /* SPI1_MISO */ > at91_set_b_periph(AT91_PIO_PORTA, 22, 0); /* SPI1_MOSI */ > at91_set_b_periph(AT91_PIO_PORTA, 23, 0); /* SPI1_SPCK */ > > - /* Enable clock */ > - writel(1 << ATMEL_ID_SPI1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SPI1); > > if (cs_mask & (1 << 0)) > at91_set_b_periph(AT91_PIO_PORTA, 8, 0); > @@ -193,11 +177,9 @@ void at91_uhp_hw_init(void) > #ifdef CONFIG_MACB > void at91_macb_hw_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > - > if (has_emac0()) { > /* Enable EMAC0 clock */ > - writel(1 << ATMEL_ID_EMAC0, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_EMAC0); > /* EMAC0 pins setup */ > at91_set_a_periph(AT91_PIO_PORTB, 4, 0); /* ETXCK */ > at91_set_a_periph(AT91_PIO_PORTB, 3, 0); /* ERXDV */ > @@ -213,7 +195,7 @@ void at91_macb_hw_init(void) > > if (has_emac1()) { > /* Enable EMAC1 clock */ > - writel(1 << ATMEL_ID_EMAC1, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_EMAC1); > /* EMAC1 pins setup */ > at91_set_b_periph(AT91_PIO_PORTC, 29, 0); /* ETXCK */ > at91_set_b_periph(AT91_PIO_PORTC, 28, 0); /* ECRSDV */ > diff --git a/arch/arm/mach-at91/arm926ejs/cpu.c b/arch/arm/mach-at91/arm926ejs/cpu.c > index 990c689..9b9f8af 100644 > --- a/arch/arm/mach-at91/arm926ejs/cpu.c > +++ b/arch/arm/mach-at91/arm926ejs/cpu.c > @@ -10,7 +10,6 @@ > #include > #include > #include > -#include > #include > #include > #include > diff --git a/arch/arm/mach-at91/arm926ejs/timer.c b/arch/arm/mach-at91/arm926ejs/timer.c > index 31ce646..c49d306 100644 > --- a/arch/arm/mach-at91/arm926ejs/timer.c > +++ b/arch/arm/mach-at91/arm926ejs/timer.c > @@ -10,7 +10,6 @@ > #include > #include > #include > -#include > #include > #include > > @@ -38,11 +37,9 @@ DECLARE_GLOBAL_DATA_PTR; > */ > int timer_init(void) > { > - at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; > at91_pit_t *pit = (at91_pit_t *) ATMEL_BASE_PIT; > > - /* Enable PITC Clock */ > - writel(1 << ATMEL_ID_SYS, &pmc->pcer); > + at91_periph_clk_enable(ATMEL_ID_SYS); > > /* Enable PITC */ > writel(TIMER_LOAD_VAL | AT91_PIT_MR_EN , &pit->mr); > diff --git a/arch/arm/mach-at91/armv7/cpu.c b/arch/arm/mach-at91/armv7/cpu.c > index 7843aed..1865303 100644 > --- a/arch/arm/mach-at91/armv7/cpu.c > +++ b/arch/arm/mach-at91/armv7/cpu.c > @@ -12,7 +12,6 @@ > #include > #include > #include > -#include > #include > #include > #include > diff --git a/arch/arm/mach-at91/armv7/timer.c b/arch/arm/mach-at91/armv7/timer.c > index a4a3817..6f91e22 100644 > --- a/arch/arm/mach-at91/armv7/timer.c > +++ b/arch/arm/mach-at91/armv7/timer.c > @@ -13,7 +13,6 @@ > #include > #include > #include > -#include > #include > #include > > diff --git a/arch/arm/mach-at91/phy.c b/arch/arm/mach-at91/phy.c > index 2cba716..ddd70f5 100644 > --- a/arch/arm/mach-at91/phy.c > +++ b/arch/arm/mach-at91/phy.c > @@ -15,7 +15,6 @@ > #include > #include > #include > -#include > #include > #include > > diff --git a/arch/arm/mach-at91/sdram.c b/arch/arm/mach-at91/sdram.c > index 5758b06..1dfc74f 100644 > --- a/arch/arm/mach-at91/sdram.c > +++ b/arch/arm/mach-at91/sdram.c > @@ -13,7 +13,6 @@ > #include > #include > #include > -#include > #include > #include > > -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany