Hi Andreas, > -----Original Message----- > From: Andreas Bießmann [mailto:andr...@biessmann.org] > Sent: 2017年2月14日 6:01 > To: Tony Yang - A41535 <wenyou.y...@microchip.com>; U-Boot Mailing List > <u-boot@lists.denx.de> > Cc: Stephen Warren <swar...@nvidia.com>; Simon Glass <s...@chromium.org>; > Heiko Schocher <h...@denx.de>; Tony Yang - A41535 > <wenyou.y...@microchip.com> > Subject: Re: [PATCH v6 1/2] gpio: at91_gpio: Remove CPU_HAS_PIO3 macro > > Dear Wenyou, > > On 13.02.17 03:07, Wenyou Yang wrote: > > The intention of this patch is the preparation to introduce > > the pinctrl driver for AT91 PIO. > > > > Use "union" to make the PIO3 and PIO2's registers be together > > and make their offset aligned. > > unfortunately there is another breakage in this patch I was not able to > discover yesterday. The at91_emac driver for at91rm9200 devices uses the > pio struct internally and therefore this patch also breaks the build for > at91rm9200. >
Sorry for the inconvenience caused by my carelessness. > Could you please also fix this? Fixed, will send a new version. > > Andreas > > > Best Regards, Wenyou Yang > > Signed-off-by: Wenyou Yang <wenyou.y...@atmel.com> > > --- > > > > Changes in v6: > > - Move PIO_SCDR_DIV define from mach/<soc.h> to mach/at91_pio.h > > to fix the build error. > > > > Changes in v5: None > > Changes in v4: > > - Fix the incomplete conversion of the peripheral configurations on > > the sama5d3, sam9x5, and sam9n12. > > > > Changes in v3: None > > Changes in v2: None > > > > arch/arm/mach-at91/arm926ejs/at91sam9n12_devices.c | 106 ++++++------ > > arch/arm/mach-at91/arm926ejs/at91sam9x5_devices.c | 112 ++++++------- > > arch/arm/mach-at91/armv7/sama5d3_devices.c | 140 ++++++++-------- > > arch/arm/mach-at91/include/mach/at91_pio.h | 63 ++++---- > > arch/arm/mach-at91/include/mach/at91sam9x5.h | 2 - > > arch/arm/mach-at91/include/mach/sama5d3.h | 2 - > > arch/arm/mach-at91/include/mach/sama5d4.h | 2 - > > board/atmel/at91sam9n12ek/at91sam9n12ek.c | 10 +- > > board/atmel/at91sam9x5ek/at91sam9x5ek.c | 90 +++++------ > > board/atmel/sama5d3xek/sama5d3xek.c | 64 ++++---- > > board/atmel/sama5d4_xplained/sama5d4_xplained.c | 148 ++++++++--------- > > board/atmel/sama5d4ek/sama5d4ek.c | 136 ++++++++-------- > > board/denx/ma5d4evk/ma5d4evk.c | 178 > > ++++++++++----------- > > board/l+g/vinco/vinco.c | 70 ++++---- > > drivers/gpio/at91_gpio.c | 142 ++++++++++------ > > 15 files changed, 658 insertions(+), 607 deletions(-) > > > > diff --git a/arch/arm/mach-at91/arm926ejs/at91sam9n12_devices.c > b/arch/arm/mach-at91/arm926ejs/at91sam9n12_devices.c > > index a03abfc310..28c8cf260a 100644 > > --- a/arch/arm/mach-at91/arm926ejs/at91sam9n12_devices.c > > +++ b/arch/arm/mach-at91/arm926ejs/at91sam9n12_devices.c > > @@ -18,45 +18,45 @@ unsigned int has_lcdc() > > > > void at91_serial0_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTA, 0, 1); /* TXD0 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 1, 0); /* RXD0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 0, 1); /* TXD0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 1, 0); /* RXD0 > */ > > at91_periph_clk_enable(ATMEL_ID_USART0); > > } > > > > void at91_serial1_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTA, 5, 1); /* TXD1 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 6, 0); /* RXD1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 5, 1); /* TXD1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 6, 0); /* RXD1 > */ > > at91_periph_clk_enable(ATMEL_ID_USART1); > > } > > > > void at91_serial2_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTA, 7, 1); /* TXD2 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 8, 0); /* RXD2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 7, 1); /* TXD2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 8, 0); /* RXD2 > */ > > at91_periph_clk_enable(ATMEL_ID_USART2); > > } > > > > void at91_serial3_hw_init(void) > > { > > - at91_set_b_periph(AT91_PIO_PORTC, 22, 1); /* TXD3 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 23, 0); /* RXD3 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 22, 1); /* TXD3 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 23, 0); /* RXD3 > */ > > at91_periph_clk_enable(ATMEL_ID_USART3); > > } > > > > void at91_seriald_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTA, 10, 1); /* DTXD */ > > - at91_set_a_periph(AT91_PIO_PORTA, 9, 0); /* DRXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 10, 1); /* DTXD > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 9, 0); /* DRXD > */ > > at91_periph_clk_enable(ATMEL_ID_SYS); > > } > > > > #ifdef CONFIG_ATMEL_SPI > > void at91_spi0_hw_init(unsigned long cs_mask) > > { > > - 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 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 11, 0); /* SPI0_MISO */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 12, 0); /* SPI0_MOSI */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 13, 0); /* SPI0_SPCK */ > > > > at91_periph_clk_enable(ATMEL_ID_SPI0); > > > > @@ -72,9 +72,9 @@ void at91_spi0_hw_init(unsigned long cs_mask) > > > > void at91_spi1_hw_init(unsigned long cs_mask) > > { > > - 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 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTA, 21, 0); /* SPI1_MISO */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTA, 22, 0); /* SPI1_MOSI */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTA, 23, 0); /* SPI1_SPCK */ > > > > at91_periph_clk_enable(ATMEL_ID_SPI1); > > > > @@ -91,12 +91,12 @@ void at91_spi1_hw_init(unsigned long cs_mask) > > > > void at91_mci_hw_init(void) > > { > > - 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 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 18, 0); /* MCDA1 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 19, 0); /* MCDA2 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 20, 0); /* MCDA3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 17, 0); /* MCCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 16, 0); /* MCCDA */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 15, 0); /* MCDA0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 18, 0); /* MCDA1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 19, 0); /* MCDA2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 20, 0); /* MCDA3 */ > > > > at91_periph_clk_enable(ATMEL_ID_HSMCI0); > > } > > @@ -104,37 +104,37 @@ void at91_mci_hw_init(void) > > #ifdef CONFIG_LCD > > void at91_lcd_hw_init(void) > > { > > - 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 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 28, 0); /* LCDDOTCK */ > > - at91_set_a_periph(AT91_PIO_PORTC, 29, 0); /* LCDDEN */ > > - at91_set_a_periph(AT91_PIO_PORTC, 30, 0); /* LCDDOTCK */ > > - > > - at91_set_a_periph(AT91_PIO_PORTC, 0, 0); /* LCDD0 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 1, 0); /* LCDD1 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 2, 0); /* LCDD2 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 3, 0); /* LCDD3 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 4, 0); /* LCDD4 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 5, 0); /* LCDD5 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 6, 0); /* LCDD6 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 7, 0); /* LCDD7 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 8, 0); /* LCDD8 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 9, 0); /* LCDD9 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 10, 0); /* LCDD10 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 11, 0); /* LCDD11 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 12, 0); /* LCDD12 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 13, 0); /* LCDD13 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 14, 0); /* LCDD14 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 15, 0); /* LCDD15 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 16, 0); /* LCDD16 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 17, 0); /* LCDD17 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 18, 0); /* LCDD18 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 19, 0); /* LCDD19 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 20, 0); /* LCDD20 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 21, 0); /* LCDD21 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 22, 0); /* LCDD22 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 23, 0); /* LCDD23 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 24, 0); /* LCDDPWR */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 26, 0); /* LCDVSYNC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 27, 0); /* LCDHSYNC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 28, 0); /* LCDDOTCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 29, 0); /* LCDDEN */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 30, 0); /* LCDDOTCK */ > > + > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 0, 0); /* LCDD0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 1, 0); /* LCDD1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 2, 0); /* LCDD2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 3, 0); /* LCDD3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 4, 0); /* LCDD4 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 5, 0); /* LCDD5 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 6, 0); /* LCDD6 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 7, 0); /* LCDD7 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 8, 0); /* LCDD8 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 9, 0); /* LCDD9 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 10, 0); /* LCDD10 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 11, 0); /* LCDD11 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 12, 0); /* LCDD12 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 13, 0); /* LCDD13 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 14, 0); /* LCDD14 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 15, 0); /* LCDD15 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 16, 0); /* LCDD16 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 17, 0); /* LCDD17 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 18, 0); /* LCDD18 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 19, 0); /* LCDD19 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 20, 0); /* LCDD20 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 21, 0); /* LCDD21 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 22, 0); /* LCDD22 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 23, 0); /* LCDD23 */ > > > > at91_periph_clk_enable(ATMEL_ID_LCDC); > > } > > diff --git a/arch/arm/mach-at91/arm926ejs/at91sam9x5_devices.c > b/arch/arm/mach-at91/arm926ejs/at91sam9x5_devices.c > > index 3e4555a1a1..8de086efd6 100644 > > --- a/arch/arm/mach-at91/arm926ejs/at91sam9x5_devices.c > > +++ b/arch/arm/mach-at91/arm926ejs/at91sam9x5_devices.c > > @@ -64,32 +64,32 @@ char *get_cpu_name() > > > > void at91_seriald_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTA, 9, 0); /* DRXD */ > > - at91_set_a_periph(AT91_PIO_PORTA, 10, 1); /* DTXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 9, 0); /* DRXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 10, 1); /* DTXD */ > > > > at91_periph_clk_enable(ATMEL_ID_SYS); > > } > > > > void at91_serial0_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTA, 0, 1); /* TXD */ > > - at91_set_a_periph(AT91_PIO_PORTA, 1, 0); /* RXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 0, 1); /* TXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 1, 0); /* RXD */ > > > > at91_periph_clk_enable(ATMEL_ID_USART0); > > } > > > > void at91_serial1_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTA, 5, 1); /* TXD */ > > - at91_set_a_periph(AT91_PIO_PORTA, 6, 0); /* RXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 5, 1); /* TXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 6, 0); /* RXD */ > > > > at91_periph_clk_enable(ATMEL_ID_USART1); > > } > > > > void at91_serial2_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTA, 7, 1); /* TXD */ > > - at91_set_a_periph(AT91_PIO_PORTA, 8, 0); /* RXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 7, 1); /* TXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 8, 0); /* RXD */ > > > > at91_periph_clk_enable(ATMEL_ID_USART2); > > } > > @@ -97,12 +97,12 @@ void at91_serial2_hw_init(void) > > void at91_mci_hw_init(void) > > { > > /* Initialize the MCI0 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 17, 1); /* MCCK */ > > - at91_set_a_periph(AT91_PIO_PORTA, 16, 1); /* MCCDA */ > > - at91_set_a_periph(AT91_PIO_PORTA, 15, 1); /* MCDA0 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 18, 1); /* MCDA1 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 19, 1); /* MCDA2 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 20, 1); /* MCDA3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 17, 1); /* MCCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 16, 1); /* MCCDA */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 15, 1); /* MCDA0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 18, 1); /* MCDA1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 19, 1); /* MCDA2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 20, 1); /* MCDA3 */ > > > > at91_periph_clk_enable(ATMEL_ID_HSMCI0); > > } > > @@ -110,20 +110,20 @@ void at91_mci_hw_init(void) > > #ifdef CONFIG_ATMEL_SPI > > void at91_spi0_hw_init(unsigned long cs_mask) > > { > > - 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 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 11, 0); /* SPI0_MISO */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 12, 0); /* SPI0_MOSI */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 13, 0); /* SPI0_SPCK */ > > > > at91_periph_clk_enable(ATMEL_ID_SPI0); > > > > if (cs_mask & (1 << 0)) > > - at91_set_a_periph(AT91_PIO_PORTA, 14, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 14, 0); > > if (cs_mask & (1 << 1)) > > - at91_set_b_periph(AT91_PIO_PORTA, 7, 0); > > + at91_pio3_set_b_periph(AT91_PIO_PORTA, 7, 0); > > if (cs_mask & (1 << 2)) > > - at91_set_b_periph(AT91_PIO_PORTA, 1, 0); > > + at91_pio3_set_b_periph(AT91_PIO_PORTA, 1, 0); > > if (cs_mask & (1 << 3)) > > - at91_set_b_periph(AT91_PIO_PORTB, 3, 0); > > + at91_pio3_set_b_periph(AT91_PIO_PORTB, 3, 0); > > if (cs_mask & (1 << 4)) > > at91_set_pio_output(AT91_PIO_PORTA, 14, 0); > > if (cs_mask & (1 << 5)) > > @@ -136,20 +136,20 @@ void at91_spi0_hw_init(unsigned long cs_mask) > > > > void at91_spi1_hw_init(unsigned long cs_mask) > > { > > - 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 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTA, 21, 0); /* SPI1_MISO */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTA, 22, 0); /* SPI1_MOSI */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTA, 23, 0); /* SPI1_SPCK */ > > > > at91_periph_clk_enable(ATMEL_ID_SPI1); > > > > if (cs_mask & (1 << 0)) > > - at91_set_b_periph(AT91_PIO_PORTA, 8, 0); > > + at91_pio3_set_b_periph(AT91_PIO_PORTA, 8, 0); > > if (cs_mask & (1 << 1)) > > - at91_set_b_periph(AT91_PIO_PORTA, 0, 0); > > + at91_pio3_set_b_periph(AT91_PIO_PORTA, 0, 0); > > if (cs_mask & (1 << 2)) > > - at91_set_b_periph(AT91_PIO_PORTA, 31, 0); > > + at91_pio3_set_b_periph(AT91_PIO_PORTA, 31, 0); > > if (cs_mask & (1 << 3)) > > - at91_set_b_periph(AT91_PIO_PORTA, 30, 0); > > + at91_pio3_set_b_periph(AT91_PIO_PORTA, 30, 0); > > if (cs_mask & (1 << 4)) > > at91_set_pio_output(AT91_PIO_PORTA, 8, 0); > > if (cs_mask & (1 << 5)) > > @@ -181,45 +181,45 @@ void at91_macb_hw_init(void) > > /* Enable EMAC0 clock */ > > 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 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 0, 0); /* ERX0 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 1, 0); /* ERX1 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 2, 0); /* ERXER */ > > - at91_set_a_periph(AT91_PIO_PORTB, 7, 0); /* ETXEN */ > > - at91_set_a_periph(AT91_PIO_PORTB, 9, 0); /* ETX0 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 10, 0); /* ETX1 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 5, 0); /* EMDIO */ > > - at91_set_a_periph(AT91_PIO_PORTB, 6, 0); /* EMDC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 4, 0); /* ETXCK > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 3, 0); /* ERXDV > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 0, 0); /* ERX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 1, 0); /* ERX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 2, 0); /* ERXER > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 7, 0); /* ETXEN > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 9, 0); /* ETX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 10, 0); /* ETX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 5, 0); /* EMDIO > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 6, 0); /* EMDC > */ > > } > > > > if (has_emac1()) { > > /* Enable EMAC1 clock */ > > 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 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 20, 0); /* ERXO */ > > - at91_set_b_periph(AT91_PIO_PORTC, 21, 0); /* ERX1 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 16, 0); /* ERXER */ > > - at91_set_b_periph(AT91_PIO_PORTC, 27, 0); /* ETXEN */ > > - at91_set_b_periph(AT91_PIO_PORTC, 18, 0); /* ETX0 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 19, 0); /* ETX1 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 31, 0); /* EMDIO */ > > - at91_set_b_periph(AT91_PIO_PORTC, 30, 0); /* EMDC */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 29, 0); /* ETXCK > */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 28, 0); /* > ECRSDV */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 20, 0); /* ERXO > */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 21, 0); /* ERX1 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 16, 0); /* ERXER > */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 27, 0); /* ETXEN > */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 18, 0); /* ETX0 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 19, 0); /* ETX1 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 31, 0); /* EMDIO > */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 30, 0); /* EMDC > */ > > } > > > > #ifndef CONFIG_RMII > > /* Only emac0 support MII */ > > if (has_emac0()) { > > - at91_set_a_periph(AT91_PIO_PORTB, 16, 0); /* ECRS */ > > - at91_set_a_periph(AT91_PIO_PORTB, 17, 0); /* ECOL */ > > - at91_set_a_periph(AT91_PIO_PORTB, 13, 0); /* ERX2 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 14, 0); /* ERX3 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 15, 0); /* ERXCK */ > > - at91_set_a_periph(AT91_PIO_PORTB, 11, 0); /* ETX2 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 12, 0); /* ETX3 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 8, 0); /* ETXER */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 16, 0); /* ECRS > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 17, 0); /* ECOL > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 13, 0); /* ERX2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 14, 0); /* ERX3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 15, 0); /* ERXCK > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 11, 0); /* ETX2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 12, 0); /* ETX3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 8, 0); /* ETXER > */ > > } > > #endif > > } > > diff --git a/arch/arm/mach-at91/armv7/sama5d3_devices.c b/arch/arm/mach- > at91/armv7/sama5d3_devices.c > > index 64ac262818..6becdd7fee 100644 > > --- a/arch/arm/mach-at91/armv7/sama5d3_devices.c > > +++ b/arch/arm/mach-at91/armv7/sama5d3_devices.c > > @@ -52,8 +52,8 @@ char *get_cpu_name() > > > > void at91_serial0_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTD, 18, 1); /* TXD0 */ > > - at91_set_a_periph(AT91_PIO_PORTD, 17, 0); /* RXD0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 18, 1); /* TXD0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 17, 0); /* RXD0 */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_USART0); > > @@ -61,8 +61,8 @@ void at91_serial0_hw_init(void) > > > > void at91_serial1_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTB, 29, 1); /* TXD1 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 28, 0); /* RXD1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 29, 1); /* TXD1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 28, 0); /* RXD1 */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_USART1); > > @@ -70,8 +70,8 @@ void at91_serial1_hw_init(void) > > > > void at91_serial2_hw_init(void) > > { > > - at91_set_b_periph(AT91_PIO_PORTE, 26, 1); /* TXD2 */ > > - at91_set_b_periph(AT91_PIO_PORTE, 25, 0); /* RXD2 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTE, 26, 1); /* TXD2 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTE, 25, 0); /* RXD2 */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_USART2); > > @@ -79,8 +79,8 @@ void at91_serial2_hw_init(void) > > > > void at91_seriald_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTB, 31, 1); /* DTXD */ > > - at91_set_a_periph(AT91_PIO_PORTB, 30, 0); /* DRXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 31, 1); /* DTXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 30, 0); /* DRXD */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_DBGU); > > @@ -89,9 +89,9 @@ void at91_seriald_hw_init(void) > > #if defined(CONFIG_ATMEL_SPI) > > void at91_spi0_hw_init(unsigned long cs_mask) > > { > > - at91_set_a_periph(AT91_PIO_PORTD, 10, 0); /* SPI0_MISO */ > > - at91_set_a_periph(AT91_PIO_PORTD, 11, 0); /* SPI0_MOSI */ > > - at91_set_a_periph(AT91_PIO_PORTD, 12, 0); /* SPI0_SPCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 10, 0); /* SPI0_MISO */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 11, 0); /* SPI0_MOSI */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 12, 0); /* SPI0_SPCK */ > > > > if (cs_mask & (1 << 0)) > > at91_set_pio_output(AT91_PIO_PORTD, 13, 1); > > @@ -110,18 +110,18 @@ void at91_spi0_hw_init(unsigned long cs_mask) > > #ifdef CONFIG_GENERIC_ATMEL_MCI > > void at91_mci_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTD, 0, 0); /* MCI0 CMD */ > > - at91_set_a_periph(AT91_PIO_PORTD, 1, 0); /* MCI0 DA0 */ > > - at91_set_a_periph(AT91_PIO_PORTD, 2, 0); /* MCI0 DA1 */ > > - at91_set_a_periph(AT91_PIO_PORTD, 3, 0); /* MCI0 DA2 */ > > - at91_set_a_periph(AT91_PIO_PORTD, 4, 0); /* MCI0 DA3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 0, 0); /* MCI0 CMD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 1, 0); /* MCI0 DA0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 2, 0); /* MCI0 DA1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 3, 0); /* MCI0 DA2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 4, 0); /* MCI0 DA3 */ > > #ifdef CONFIG_ATMEL_MCI_8BIT > > - at91_set_a_periph(AT91_PIO_PORTD, 5, 0); /* MCI0 DA4 */ > > - at91_set_a_periph(AT91_PIO_PORTD, 6, 0); /* MCI0 DA5 */ > > - at91_set_a_periph(AT91_PIO_PORTD, 7, 0); /* MCI0 DA6 */ > > - at91_set_a_periph(AT91_PIO_PORTD, 8, 0); /* MCI0 DA7 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 5, 0); /* MCI0 DA4 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 6, 0); /* MCI0 DA5 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 7, 0); /* MCI0 DA6 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 8, 0); /* MCI0 DA7 */ > > #endif > > - at91_set_a_periph(AT91_PIO_PORTD, 9, 0); /* MCI0 CLK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 9, 0); /* MCI0 CLK */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_MCI0); > > @@ -131,16 +131,16 @@ void at91_mci_hw_init(void) > > #ifdef CONFIG_MACB > > void at91_macb_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTC, 7, 0); /* ETXCK_EREFCK */ > > - at91_set_a_periph(AT91_PIO_PORTC, 5, 0); /* ERXDV */ > > - at91_set_a_periph(AT91_PIO_PORTC, 2, 0); /* ERX0 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 3, 0); /* ERX1 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 6, 0); /* ERXER */ > > - at91_set_a_periph(AT91_PIO_PORTC, 4, 0); /* ETXEN */ > > - at91_set_a_periph(AT91_PIO_PORTC, 0, 0); /* ETX0 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 1, 0); /* ETX1 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 9, 0); /* EMDIO */ > > - at91_set_a_periph(AT91_PIO_PORTC, 8, 0); /* EMDC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 7, 0); /* > ETXCK_EREFCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 5, 0); /* ERXDV */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 2, 0); /* ERX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 3, 0); /* ERX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 6, 0); /* ERXER */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 4, 0); /* ETXEN */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 0, 0); /* ETX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 1, 0); /* ETX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 9, 0); /* EMDIO */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 8, 0); /* EMDC */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_EMAC); > > @@ -148,23 +148,23 @@ void at91_macb_hw_init(void) > > > > void at91_gmac_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTB, 0, 0); /* GTX0 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 1, 0); /* GTX1 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 2, 0); /* GTX2 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 3, 0); /* GTX3 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 4, 0); /* GRX0 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 5, 0); /* GRX1 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 6, 0); /* GRX2 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 7, 0); /* GRX3 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 8, 0); /* GTXCK */ > > - at91_set_a_periph(AT91_PIO_PORTB, 9, 0); /* GTXEN */ > > - > > - at91_set_a_periph(AT91_PIO_PORTB, 11, 0); /* GRXCK */ > > - at91_set_a_periph(AT91_PIO_PORTB, 13, 0); /* GRXER */ > > - > > - at91_set_a_periph(AT91_PIO_PORTB, 16, 0); /* GMDC */ > > - at91_set_a_periph(AT91_PIO_PORTB, 17, 0); /* GMDIO */ > > - at91_set_a_periph(AT91_PIO_PORTB, 18, 0); /* G125CK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 0, 0); /* GTX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 1, 0); /* GTX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 2, 0); /* GTX2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 3, 0); /* GTX3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 4, 0); /* GRX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 5, 0); /* GRX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 6, 0); /* GRX2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 7, 0); /* GRX3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 8, 0); /* GTXCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 9, 0); /* GTXEN */ > > + > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 11, 0); /* GRXCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 13, 0); /* GRXER */ > > + > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 16, 0); /* GMDC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 17, 0); /* GMDIO */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 18, 0); /* G125CK */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_GMAC); > > @@ -174,30 +174,30 @@ void at91_gmac_hw_init(void) > > #ifdef CONFIG_LCD > > void at91_lcd_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTA, 24, 0); /* LCDPWM */ > > - at91_set_a_periph(AT91_PIO_PORTA, 25, 0); /* LCDDISP */ > > - at91_set_a_periph(AT91_PIO_PORTA, 26, 0); /* LCDVSYNC */ > > - at91_set_a_periph(AT91_PIO_PORTA, 27, 0); /* LCDHSYNC */ > > - at91_set_a_periph(AT91_PIO_PORTA, 28, 0); /* LCDDOTCK */ > > - at91_set_a_periph(AT91_PIO_PORTA, 29, 0); /* LCDDEN */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 24, 0); /* LCDPWM */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 25, 0); /* LCDDISP */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 26, 0); /* LCDVSYNC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 27, 0); /* LCDHSYNC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 28, 0); /* LCDDOTCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 29, 0); /* LCDDEN */ > > > > /* The lower 16-bit of LCD only available on Port A */ > > - at91_set_a_periph(AT91_PIO_PORTA, 0, 0); /* LCDD0 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 1, 0); /* LCDD1 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 2, 0); /* LCDD2 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 3, 0); /* LCDD3 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 4, 0); /* LCDD4 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 5, 0); /* LCDD5 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 6, 0); /* LCDD6 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 7, 0); /* LCDD7 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 8, 0); /* LCDD8 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 9, 0); /* LCDD9 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 10, 0); /* LCDD10 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 11, 0); /* LCDD11 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 12, 0); /* LCDD12 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 13, 0); /* LCDD13 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 14, 0); /* LCDD14 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 15, 0); /* LCDD15 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 0, 0); /* LCDD0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 1, 0); /* LCDD1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 2, 0); /* LCDD2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 3, 0); /* LCDD3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 4, 0); /* LCDD4 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 5, 0); /* LCDD5 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 6, 0); /* LCDD6 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 7, 0); /* LCDD7 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 8, 0); /* LCDD8 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 9, 0); /* LCDD9 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 10, 0); /* LCDD10 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 11, 0); /* LCDD11 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 12, 0); /* LCDD12 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 13, 0); /* LCDD13 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 14, 0); /* LCDD14 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 15, 0); /* LCDD15 */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_LCDC); > > diff --git a/arch/arm/mach-at91/include/mach/at91_pio.h b/arch/arm/mach- > at91/include/mach/at91_pio.h > > index 301227880a..946f076714 100644 > > --- a/arch/arm/mach-at91/include/mach/at91_pio.h > > +++ b/arch/arm/mach-at91/include/mach/at91_pio.h > > @@ -32,6 +32,8 @@ > > #define AT91_ASM_PIOD_ASR \ > > (ATMEL_BASE_PIO + AT91_PIO_PORTD * AT91_ASM_PIO_RANGE + > 0x70) > > > > +#define PIO_SCDR_DIV 0x3fff /* Slow Clock Divider Selection > for Debouncing Mask */ > > + > > #ifndef __ASSEMBLY__ > > > > typedef struct at91_port { > > @@ -63,28 +65,32 @@ typedef struct at91_port { > > u32 puer; /* 0x64 Pull-up Enable Register */ > > u32 pusr; /* 0x68 Pad Pull-up Status Register */ > > u32 reserved4; > > -#if defined(CPU_HAS_PIO3) > > - u32 abcdsr1; /* 0x70 Peripheral ABCD Select Register 1 */ > > - u32 abcdsr2; /* 0x74 Peripheral ABCD Select Register 2 */ > > - u32 reserved5[2]; > > - u32 ifscdr; /* 0x80 Input Filter SCLK Disable Register */ > > - u32 ifscer; /* 0x84 Input Filter SCLK Enable Register */ > > - u32 ifscsr; /* 0x88 Input Filter SCLK Status Register */ > > - u32 scdr; /* 0x8C SCLK Divider Debouncing Register */ > > - u32 ppddr; /* 0x90 Pad Pull-down Disable Register */ > > - u32 ppder; /* 0x94 Pad Pull-down Enable Register */ > > - u32 ppdsr; /* 0x98 Pad Pull-down Status Register */ > > - u32 reserved6; /* */ > > -#else > > - u32 asr; /* 0x70 Select A Register */ > > - u32 bsr; /* 0x74 Select B Register */ > > - u32 absr; /* 0x78 AB Select Status Register */ > > - u32 reserved5[9]; /* */ > > -#endif > > + union { > > + struct { > > + u32 abcdsr1; /* 0x70 Peripheral ABCD Select > Register 1 */ > > + u32 abcdsr2; /* 0x74 Peripheral ABCD Select > Register 2 */ > > + u32 reserved5[2]; > > + u32 ifscdr; /* 0x80 Input Filter SCLK > > Disable > Register */ > > + u32 ifscer; /* 0x84 Input Filter SCLK Enable > Register */ > > + u32 ifscsr; /* 0x88 Input Filter SCLK Status > Register */ > > + u32 scdr; /* 0x8C SCLK Divider Debouncing > Register */ > > + u32 ppddr; /* 0x90 Pad Pull-down Disable > Register */ > > + u32 ppder; /* 0x94 Pad Pull-down Enable > Register */ > > + u32 ppdsr; /* 0x98 Pad Pull-down Status > Register */ > > + u32 reserved6; /* */ > > + } pio3; > > + > > + struct { > > + u32 asr; /* 0x70 Select A Register */ > > + u32 bsr; /* 0x74 Select B Register */ > > + u32 absr; /* 0x78 AB Select Status > > Register > */ > > + u32 reserved5[9]; /* */ > > + } pio2; > > + } mux; > > + > > u32 ower; /* 0xA0 Output Write Enable Register */ > > u32 owdr; /* 0xA4 Output Write Disable Register */ > > u32 owsr; /* OxA8 Output Write Status Register */ > > -#if defined(CPU_HAS_PIO3) > > u32 reserved7; /* */ > > u32 aimer; /* 0xB0 Additional INT Modes Enable Register */ > > u32 aimdr; /* 0xB4 Additional INT Modes Disable Register */ > > @@ -104,9 +110,6 @@ typedef struct at91_port { > > u32 reserved11[5]; /* */ > > u32 schmitt; /* 0x100 Schmitt Trigger Register */ > > u32 reserved12[63]; > > -#else > > - u32 reserved6[85]; > > -#endif > > } at91_port_t; > > > > typedef union at91_pio { > > @@ -123,13 +126,6 @@ typedef union at91_pio { > > #ifdef CONFIG_AT91_GPIO > > int at91_set_a_periph(unsigned port, unsigned pin, int use_pullup); > > int at91_set_b_periph(unsigned port, unsigned pin, int use_pullup); > > -#if defined(CPU_HAS_PIO3) > > -int at91_set_c_periph(unsigned port, unsigned pin, int use_pullup); > > -int at91_set_d_periph(unsigned port, unsigned pin, int use_pullup); > > -int at91_set_pio_debounce(unsigned port, unsigned pin, int is_on, int div); > > -int at91_set_pio_pulldown(unsigned port, unsigned pin, int is_on); > > -int at91_set_pio_disable_schmitt_trig(unsigned port, unsigned pin); > > -#endif > > int at91_set_pio_input(unsigned port, unsigned pin, int use_pullup); > > int at91_set_pio_multi_drive(unsigned port, unsigned pin, int is_on); > > int at91_set_pio_output(unsigned port, unsigned pin, int value); > > @@ -138,6 +134,15 @@ int at91_set_pio_pullup(unsigned port, unsigned pin, > int use_pullup); > > int at91_set_pio_deglitch(unsigned port, unsigned pin, int is_on); > > int at91_set_pio_value(unsigned port, unsigned pin, int value); > > int at91_get_pio_value(unsigned port, unsigned pin); > > + > > +int at91_pio3_set_a_periph(unsigned port, unsigned pin, int use_pullup); > > +int at91_pio3_set_b_periph(unsigned port, unsigned pin, int use_pullup); > > +int at91_pio3_set_c_periph(unsigned port, unsigned pin, int use_pullup); > > +int at91_pio3_set_d_periph(unsigned port, unsigned pin, int use_pullup); > > +int at91_pio3_set_pio_debounce(unsigned port, unsigned pin, int is_on, int > > div); > > +int at91_pio3_set_pio_pullup(unsigned port, unsigned pin, int use_pullup); > > +int at91_pio3_set_pio_pulldown(unsigned port, unsigned pin, int is_on); > > +int at91_pio3_set_pio_disable_schmitt_trig(unsigned port, unsigned pin); > > #endif > > #endif > > > > diff --git a/arch/arm/mach-at91/include/mach/at91sam9x5.h b/arch/arm/mach- > at91/include/mach/at91sam9x5.h > > index 8100ebed4b..e7224e432d 100644 > > --- a/arch/arm/mach-at91/include/mach/at91sam9x5.h > > +++ b/arch/arm/mach-at91/include/mach/at91sam9x5.h > > @@ -171,8 +171,6 @@ > > * Other misc defines > > */ > > #define ATMEL_PIO_PORTS 4 > > -#define CPU_HAS_PIO3 > > -#define PIO_SCDR_DIV (0x3fff << 0) /* Slow Clock Divider Mask > > */ > > #define ATMEL_PMC_UHP AT91SAM926x_PMC_UHP > > #define ATMEL_ID_UHP ATMEL_ID_UHPHS > > > > diff --git a/arch/arm/mach-at91/include/mach/sama5d3.h b/arch/arm/mach- > at91/include/mach/sama5d3.h > > index 33f6c97c11..d558f95141 100644 > > --- a/arch/arm/mach-at91/include/mach/sama5d3.h > > +++ b/arch/arm/mach-at91/include/mach/sama5d3.h > > @@ -188,8 +188,6 @@ > > * Other misc defines > > */ > > #define ATMEL_PIO_PORTS 5 > > -#define CPU_HAS_PIO3 > > -#define PIO_SCDR_DIV 0x3fff > > #define CPU_HAS_PCR > > > > /* Timer */ > > diff --git a/arch/arm/mach-at91/include/mach/sama5d4.h b/arch/arm/mach- > at91/include/mach/sama5d4.h > > index 90085da1c6..78cc2a7a0a 100644 > > --- a/arch/arm/mach-at91/include/mach/sama5d4.h > > +++ b/arch/arm/mach-at91/include/mach/sama5d4.h > > @@ -174,8 +174,6 @@ > > * Other misc defines > > */ > > #define ATMEL_PIO_PORTS 5 > > -#define CPU_HAS_PIO3 > > -#define PIO_SCDR_DIV 0x3fff > > #define CPU_HAS_PCR > > #define CPU_HAS_H32MXDIV > > > > diff --git a/board/atmel/at91sam9n12ek/at91sam9n12ek.c > b/board/atmel/at91sam9n12ek/at91sam9n12ek.c > > index fc4f50d219..58da2d27f8 100644 > > --- a/board/atmel/at91sam9n12ek/at91sam9n12ek.c > > +++ b/board/atmel/at91sam9n12ek/at91sam9n12ek.c > > @@ -71,10 +71,10 @@ static void at91sam9n12ek_nand_hw_init(void) > > /* Configure ENABLE pin for NandFlash */ > > at91_set_pio_output(AT91_PIO_PORTD, 4, 1); > > > > - at91_set_a_periph(AT91_PIO_PORTD, 0, 1); /* NAND OE */ > > - at91_set_a_periph(AT91_PIO_PORTD, 1, 1); /* NAND WE */ > > - at91_set_a_periph(AT91_PIO_PORTD, 2, 1); /* ALE */ > > - at91_set_a_periph(AT91_PIO_PORTD, 3, 1); /* CLE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 0, 1); /* NAND OE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 1, 1); /* NAND WE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 2, 1); /* ALE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 3, 1); /* CLE */ > > } > > #endif > > > > @@ -194,7 +194,7 @@ void at91sam9n12ek_ks8851_hw_init(void) > > &smc->cs[2].mode); > > > > /* Configure NCS2 PIN */ > > - at91_set_b_periph(AT91_PIO_PORTD, 19, 0); > > + at91_pio3_set_b_periph(AT91_PIO_PORTD, 19, 0); > > } > > #endif > > > > diff --git a/board/atmel/at91sam9x5ek/at91sam9x5ek.c > b/board/atmel/at91sam9x5ek/at91sam9x5ek.c > > index b0d440d728..cc81776f9b 100644 > > --- a/board/atmel/at91sam9x5ek/at91sam9x5ek.c > > +++ b/board/atmel/at91sam9x5ek/at91sam9x5ek.c > > @@ -77,18 +77,18 @@ static void at91sam9x5ek_nand_hw_init(void) > > /* Enable NandFlash */ > > at91_set_gpio_output(CONFIG_SYS_NAND_ENABLE_PIN, 1); > > > > - at91_set_a_periph(AT91_PIO_PORTD, 0, 1); /* NAND OE */ > > - at91_set_a_periph(AT91_PIO_PORTD, 1, 1); /* NAND WE */ > > - at91_set_a_periph(AT91_PIO_PORTD, 2, 1); /* NAND ALE */ > > - at91_set_a_periph(AT91_PIO_PORTD, 3, 1); /* NAND CLE */ > > - at91_set_a_periph(AT91_PIO_PORTD, 6, 1); > > - at91_set_a_periph(AT91_PIO_PORTD, 7, 1); > > - at91_set_a_periph(AT91_PIO_PORTD, 8, 1); > > - at91_set_a_periph(AT91_PIO_PORTD, 9, 1); > > - at91_set_a_periph(AT91_PIO_PORTD, 10, 1); > > - at91_set_a_periph(AT91_PIO_PORTD, 11, 1); > > - at91_set_a_periph(AT91_PIO_PORTD, 12, 1); > > - at91_set_a_periph(AT91_PIO_PORTD, 13, 1); > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 0, 1); /* NAND OE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 1, 1); /* NAND WE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 2, 1); /* NAND ALE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 3, 1); /* NAND CLE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 6, 1); > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 7, 1); > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 8, 1); > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 9, 1); > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 10, 1); > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 11, 1); > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 12, 1); > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 13, 1); > > } > > #endif > > > > @@ -128,49 +128,49 @@ vidinfo_t panel_info = { > > void lcd_enable(void) > > { > > if (has_lcdc()) > > - at91_set_a_periph(AT91_PIO_PORTC, 29, 1); /* power up */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 29, 1); /* power > up */ > > } > > > > void lcd_disable(void) > > { > > if (has_lcdc()) > > - at91_set_a_periph(AT91_PIO_PORTC, 29, 0); /* power down */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 29, 0); /* power > down */ > > } > > > > static void at91sam9x5ek_lcd_hw_init(void) > > { > > if (has_lcdc()) { > > - at91_set_a_periph(AT91_PIO_PORTC, 26, 0); /* LCDPWM */ > > - at91_set_a_periph(AT91_PIO_PORTC, 27, 0); /* LCDVSYNC */ > > - at91_set_a_periph(AT91_PIO_PORTC, 28, 0); /* LCDHSYNC */ > > - at91_set_a_periph(AT91_PIO_PORTC, 24, 0); /* LCDDISP */ > > - at91_set_a_periph(AT91_PIO_PORTC, 29, 0); /* LCDDEN */ > > - at91_set_a_periph(AT91_PIO_PORTC, 30, 0); /* LCDPCK */ > > - > > - at91_set_a_periph(AT91_PIO_PORTC, 0, 0); /* LCDD0 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 1, 0); /* LCDD1 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 2, 0); /* LCDD2 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 3, 0); /* LCDD3 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 4, 0); /* LCDD4 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 5, 0); /* LCDD5 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 6, 0); /* LCDD6 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 7, 0); /* LCDD7 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 8, 0); /* LCDD8 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 9, 0); /* LCDD9 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 10, 0); /* LCDD10 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 11, 0); /* LCDD11 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 12, 0); /* LCDD12 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 13, 0); /* LCDD13 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 14, 0); /* LCDD14 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 15, 0); /* LCDD15 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 16, 0); /* LCDD16 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 17, 0); /* LCDD17 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 18, 0); /* LCDD18 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 19, 0); /* LCDD19 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 20, 0); /* LCDD20 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 21, 0); /* LCDD21 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 22, 0); /* LCDD22 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 23, 0); /* LCDD23 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 26, 0); /* > LCDPWM */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 27, 0); /* > LCDVSYNC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 28, 0); /* > LCDHSYNC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 24, 0); /* > LCDDISP */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 29, 0); /* > LCDDEN */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 30, 0); /* > LCDPCK */ > > + > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 0, 0); /* LCDD0 > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 1, 0); /* LCDD1 > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 2, 0); /* LCDD2 > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 3, 0); /* LCDD3 > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 4, 0); /* LCDD4 > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 5, 0); /* LCDD5 > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 6, 0); /* LCDD6 > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 7, 0); /* LCDD7 > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 8, 0); /* LCDD8 > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 9, 0); /* LCDD9 > */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 10, 0); /* > LCDD10 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 11, 0); /* > LCDD11 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 12, 0); /* > LCDD12 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 13, 0); /* > LCDD13 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 14, 0); /* > LCDD14 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 15, 0); /* > LCDD15 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 16, 0); /* > LCDD16 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 17, 0); /* > LCDD17 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 18, 0); /* > LCDD18 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 19, 0); /* > LCDD19 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 20, 0); /* > LCDD20 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 21, 0); /* > LCDD21 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 22, 0); /* > LCDD22 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 23, 0); /* > LCDD23 */ > > > > at91_periph_clk_enable(ATMEL_ID_LCDC); > > } > > diff --git a/board/atmel/sama5d3xek/sama5d3xek.c > b/board/atmel/sama5d3xek/sama5d3xek.c > > index ce67478f0b..134c2fe1eb 100644 > > --- a/board/atmel/sama5d3xek/sama5d3xek.c > > +++ b/board/atmel/sama5d3xek/sama5d3xek.c > > @@ -95,31 +95,31 @@ static void sama5d3xek_nor_hw_init(void) > > &smc->cs[0].mode); > > > > /* Address pin (A1 ~ A23) configuration */ > > - at91_set_a_periph(AT91_PIO_PORTE, 1, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 2, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 3, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 4, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 5, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 6, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 7, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 8, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 9, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 10, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 11, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 12, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 13, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 14, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 15, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 16, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 17, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 18, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 19, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 20, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 21, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 22, 0); > > - at91_set_a_periph(AT91_PIO_PORTE, 23, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 1, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 2, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 3, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 4, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 5, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 6, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 7, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 8, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 9, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 10, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 11, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 12, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 13, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 14, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 15, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 16, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 17, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 18, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 19, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 20, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 21, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 22, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 23, 0); > > /* CS0 pin configuration */ > > - at91_set_a_periph(AT91_PIO_PORTE, 26, 0); > > + at91_pio3_set_a_periph(AT91_PIO_PORTE, 26, 0); > > } > > #endif > > > > @@ -170,14 +170,14 @@ static void sama5d3xek_lcd_hw_init(void) > > gd->fb_base = CONFIG_SAMA5D3_LCD_BASE; > > > > /* The higher 8 bit of LCD is board related */ > > - at91_set_c_periph(AT91_PIO_PORTC, 14, 0); /* LCDD16 */ > > - at91_set_c_periph(AT91_PIO_PORTC, 13, 0); /* LCDD17 */ > > - at91_set_c_periph(AT91_PIO_PORTC, 12, 0); /* LCDD18 */ > > - at91_set_c_periph(AT91_PIO_PORTC, 11, 0); /* LCDD19 */ > > - at91_set_c_periph(AT91_PIO_PORTC, 10, 0); /* LCDD20 */ > > - at91_set_c_periph(AT91_PIO_PORTC, 15, 0); /* LCDD21 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 27, 0); /* LCDD22 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 28, 0); /* LCDD23 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTC, 14, 0); /* LCDD16 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTC, 13, 0); /* LCDD17 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTC, 12, 0); /* LCDD18 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTC, 11, 0); /* LCDD19 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTC, 10, 0); /* LCDD20 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTC, 15, 0); /* LCDD21 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 27, 0); /* LCDD22 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 28, 0); /* LCDD23 */ > > > > /* Configure lower 16 bit of LCD and enable clock */ > > at91_lcd_hw_init(); > > diff --git a/board/atmel/sama5d4_xplained/sama5d4_xplained.c > b/board/atmel/sama5d4_xplained/sama5d4_xplained.c > > index 23ec274468..47f0bae8c1 100644 > > --- a/board/atmel/sama5d4_xplained/sama5d4_xplained.c > > +++ b/board/atmel/sama5d4_xplained/sama5d4_xplained.c > > @@ -45,9 +45,9 @@ void spi_cs_deactivate(struct spi_slave *slave) > > > > static void sama5d4_xplained_spi0_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTC, 0, 0); /* SPI0_MISO */ > > - at91_set_a_periph(AT91_PIO_PORTC, 1, 0); /* SPI0_MOSI */ > > - at91_set_a_periph(AT91_PIO_PORTC, 2, 0); /* SPI0_SPCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 0, 0); /* SPI0_MISO */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 1, 0); /* SPI0_MOSI */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 2, 0); /* SPI0_SPCK */ > > > > at91_set_pio_output(AT91_PIO_PORTC, 3, 1); /* SPI0_CS0 */ > > > > @@ -82,20 +82,20 @@ static void sama5d4_xplained_nand_hw_init(void) > > AT91_SMC_MODE_TDF_CYCLE(3), > > &smc->cs[3].mode); > > > > - at91_set_a_periph(AT91_PIO_PORTC, 5, 0); /* D0 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 6, 0); /* D1 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 7, 0); /* D2 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 8, 0); /* D3 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 9, 0); /* D4 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 10, 0); /* D5 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 11, 0); /* D6 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 12, 0); /* D7 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 13, 0); /* RE */ > > - at91_set_a_periph(AT91_PIO_PORTC, 14, 0); /* WE */ > > - at91_set_a_periph(AT91_PIO_PORTC, 15, 1); /* NCS */ > > - at91_set_a_periph(AT91_PIO_PORTC, 16, 1); /* RDY */ > > - at91_set_a_periph(AT91_PIO_PORTC, 17, 1); /* ALE */ > > - at91_set_a_periph(AT91_PIO_PORTC, 18, 1); /* CLE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 5, 0); /* D0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 6, 0); /* D1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 7, 0); /* D2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 8, 0); /* D3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 9, 0); /* D4 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 10, 0); /* D5 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 11, 0); /* D6 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 12, 0); /* D7 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 13, 0); /* RE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 14, 0); /* WE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 15, 1); /* NCS */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 16, 1); /* RDY */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 17, 1); /* ALE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 18, 1); /* CLE */ > > } > > #endif > > > > @@ -134,39 +134,39 @@ unsigned int has_lcdc(void) > > > > static void sama5d4_xplained_lcd_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTA, 24, 0); /* LCDPWM */ > > - at91_set_a_periph(AT91_PIO_PORTA, 25, 0); /* LCDDISP */ > > - at91_set_a_periph(AT91_PIO_PORTA, 26, 0); /* LCDVSYNC */ > > - at91_set_a_periph(AT91_PIO_PORTA, 27, 0); /* LCDHSYNC */ > > - at91_set_a_periph(AT91_PIO_PORTA, 28, 0); /* LCDDOTCK */ > > - at91_set_a_periph(AT91_PIO_PORTA, 29, 0); /* LCDDEN */ > > - > > - at91_set_a_periph(AT91_PIO_PORTA, 0, 0); /* LCDD0 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 1, 0); /* LCDD1 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 2, 0); /* LCDD2 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 3, 0); /* LCDD3 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 4, 0); /* LCDD4 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 5, 0); /* LCDD5 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 6, 0); /* LCDD6 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 7, 0); /* LCDD7 */ > > - > > - at91_set_a_periph(AT91_PIO_PORTA, 8, 0); /* LCDD9 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 9, 0); /* LCDD8 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 10, 0); /* LCDD10 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 11, 0); /* LCDD11 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 12, 0); /* LCDD12 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 13, 0); /* LCDD13 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 14, 0); /* LCDD14 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 15, 0); /* LCDD15 */ > > - > > - at91_set_a_periph(AT91_PIO_PORTA, 16, 0); /* LCDD16 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 17, 0); /* LCDD17 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 18, 0); /* LCDD18 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 19, 0); /* LCDD19 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 20, 0); /* LCDD20 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 21, 0); /* LCDD21 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 22, 0); /* LCDD22 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 23, 0); /* LCDD23 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 24, 0); /* LCDPWM */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 25, 0); /* LCDDISP */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 26, 0); /* LCDVSYNC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 27, 0); /* LCDHSYNC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 28, 0); /* LCDDOTCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 29, 0); /* LCDDEN */ > > + > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 0, 0); /* LCDD0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 1, 0); /* LCDD1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 2, 0); /* LCDD2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 3, 0); /* LCDD3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 4, 0); /* LCDD4 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 5, 0); /* LCDD5 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 6, 0); /* LCDD6 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 7, 0); /* LCDD7 */ > > + > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 8, 0); /* LCDD9 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 9, 0); /* LCDD8 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 10, 0); /* LCDD10 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 11, 0); /* LCDD11 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 12, 0); /* LCDD12 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 13, 0); /* LCDD13 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 14, 0); /* LCDD14 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 15, 0); /* LCDD15 */ > > + > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 16, 0); /* LCDD16 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 17, 0); /* LCDD17 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 18, 0); /* LCDD18 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 19, 0); /* LCDD19 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 20, 0); /* LCDD20 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 21, 0); /* LCDD21 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 22, 0); /* LCDD22 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 23, 0); /* LCDD23 */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_LCDC); > > @@ -203,12 +203,12 @@ void lcd_show_board_info(void) > > #ifdef CONFIG_GENERIC_ATMEL_MCI > > void sama5d4_xplained_mci1_hw_init(void) > > { > > - at91_set_c_periph(AT91_PIO_PORTE, 19, 1); /* MCI1 CDA */ > > - at91_set_c_periph(AT91_PIO_PORTE, 20, 1); /* MCI1 DA0 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 21, 1); /* MCI1 DA1 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 22, 1); /* MCI1 DA2 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 23, 1); /* MCI1 DA3 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 18, 0); /* MCI1 CLK */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 19, 1); /* MCI1 CDA */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 20, 1); /* MCI1 DA0 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 21, 1); /* MCI1 DA1 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 22, 1); /* MCI1 DA2 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 23, 1); /* MCI1 DA3 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 18, 0); /* MCI1 CLK */ > > > > /* > > * As the mci io internal pull down is too strong, so if the io needs > > @@ -216,12 +216,12 @@ void sama5d4_xplained_mci1_hw_init(void) > > * the power consumption will increase, so disable the interanl pull > > * down to save the power. > > */ > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 18, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 19, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 20, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 21, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 22, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 23, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 18, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 19, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 20, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 21, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 22, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 23, 0); > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_MCI1); > > @@ -239,16 +239,16 @@ int board_mmc_init(bd_t *bis) > > #ifdef CONFIG_MACB > > void sama5d4_xplained_macb0_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTB, 0, 0); /* ETXCK_EREFCK */ > > - at91_set_a_periph(AT91_PIO_PORTB, 6, 0); /* ERXDV */ > > - at91_set_a_periph(AT91_PIO_PORTB, 8, 0); /* ERX0 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 9, 0); /* ERX1 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 7, 0); /* ERXER */ > > - at91_set_a_periph(AT91_PIO_PORTB, 2, 0); /* ETXEN */ > > - at91_set_a_periph(AT91_PIO_PORTB, 12, 0); /* ETX0 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 13, 0); /* ETX1 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 17, 0); /* EMDIO */ > > - at91_set_a_periph(AT91_PIO_PORTB, 16, 0); /* EMDC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 0, 0); /* > ETXCK_EREFCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 6, 0); /* ERXDV */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 8, 0); /* ERX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 9, 0); /* ERX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 7, 0); /* ERXER */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 2, 0); /* ETXEN */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 12, 0); /* ETX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 13, 0); /* ETX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 17, 0); /* EMDIO */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 16, 0); /* EMDC */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_GMAC0); > > @@ -257,8 +257,8 @@ void sama5d4_xplained_macb0_hw_init(void) > > > > static void sama5d4_xplained_serial3_hw_init(void) > > { > > - at91_set_b_periph(AT91_PIO_PORTE, 17, 1); /* TXD3 */ > > - at91_set_b_periph(AT91_PIO_PORTE, 16, 0); /* RXD3 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTE, 17, 1); /* TXD3 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTE, 16, 0); /* RXD3 */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_USART3); > > diff --git a/board/atmel/sama5d4ek/sama5d4ek.c > b/board/atmel/sama5d4ek/sama5d4ek.c > > index 72bad23087..d1b5ff5797 100644 > > --- a/board/atmel/sama5d4ek/sama5d4ek.c > > +++ b/board/atmel/sama5d4ek/sama5d4ek.c > > @@ -45,9 +45,9 @@ void spi_cs_deactivate(struct spi_slave *slave) > > > > static void sama5d4ek_spi0_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTC, 0, 0); /* SPI0_MISO */ > > - at91_set_a_periph(AT91_PIO_PORTC, 1, 0); /* SPI0_MOSI */ > > - at91_set_a_periph(AT91_PIO_PORTC, 2, 0); /* SPI0_SPCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 0, 0); /* SPI0_MISO */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 1, 0); /* SPI0_MOSI */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 2, 0); /* SPI0_SPCK */ > > > > at91_set_pio_output(AT91_PIO_PORTC, 3, 1); /* SPI0_CS0 */ > > > > @@ -82,20 +82,20 @@ static void sama5d4ek_nand_hw_init(void) > > AT91_SMC_MODE_TDF_CYCLE(3), > > &smc->cs[3].mode); > > > > - at91_set_a_periph(AT91_PIO_PORTC, 5, 0); /* D0 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 6, 0); /* D1 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 7, 0); /* D2 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 8, 0); /* D3 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 9, 0); /* D4 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 10, 0); /* D5 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 11, 0); /* D6 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 12, 0); /* D7 */ > > - at91_set_a_periph(AT91_PIO_PORTC, 13, 0); /* RE */ > > - at91_set_a_periph(AT91_PIO_PORTC, 14, 0); /* WE */ > > - at91_set_a_periph(AT91_PIO_PORTC, 15, 1); /* NCS */ > > - at91_set_a_periph(AT91_PIO_PORTC, 16, 1); /* RDY */ > > - at91_set_a_periph(AT91_PIO_PORTC, 17, 1); /* ALE */ > > - at91_set_a_periph(AT91_PIO_PORTC, 18, 1); /* CLE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 5, 0); /* D0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 6, 0); /* D1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 7, 0); /* D2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 8, 0); /* D3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 9, 0); /* D4 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 10, 0); /* D5 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 11, 0); /* D6 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 12, 0); /* D7 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 13, 0); /* RE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 14, 0); /* WE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 15, 1); /* NCS */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 16, 1); /* RDY */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 17, 1); /* ALE */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 18, 1); /* CLE */ > > } > > #endif > > > > @@ -135,33 +135,33 @@ unsigned int has_lcdc(void) > > > > static void sama5d4ek_lcd_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTA, 24, 0); /* LCDPWM */ > > - at91_set_a_periph(AT91_PIO_PORTA, 25, 0); /* LCDDISP */ > > - at91_set_a_periph(AT91_PIO_PORTA, 26, 0); /* LCDVSYNC */ > > - at91_set_a_periph(AT91_PIO_PORTA, 27, 0); /* LCDHSYNC */ > > - at91_set_a_periph(AT91_PIO_PORTA, 28, 0); /* LCDDOTCK */ > > - at91_set_a_periph(AT91_PIO_PORTA, 29, 0); /* LCDDEN */ > > - > > - at91_set_a_periph(AT91_PIO_PORTA, 2, 0); /* LCDD2 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 3, 0); /* LCDD3 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 4, 0); /* LCDD4 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 5, 0); /* LCDD5 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 6, 0); /* LCDD6 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 7, 0); /* LCDD7 */ > > - > > - at91_set_a_periph(AT91_PIO_PORTA, 10, 0); /* LCDD10 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 11, 0); /* LCDD11 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 12, 0); /* LCDD12 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 13, 0); /* LCDD13 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 14, 0); /* LCDD14 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 15, 0); /* LCDD15 */ > > - > > - at91_set_a_periph(AT91_PIO_PORTA, 18, 0); /* LCDD18 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 19, 0); /* LCDD19 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 20, 0); /* LCDD20 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 21, 0); /* LCDD21 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 22, 0); /* LCDD22 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 23, 0); /* LCDD23 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 24, 0); /* LCDPWM */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 25, 0); /* LCDDISP */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 26, 0); /* LCDVSYNC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 27, 0); /* LCDHSYNC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 28, 0); /* LCDDOTCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 29, 0); /* LCDDEN */ > > + > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 2, 0); /* LCDD2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 3, 0); /* LCDD3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 4, 0); /* LCDD4 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 5, 0); /* LCDD5 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 6, 0); /* LCDD6 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 7, 0); /* LCDD7 */ > > + > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 10, 0); /* LCDD10 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 11, 0); /* LCDD11 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 12, 0); /* LCDD12 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 13, 0); /* LCDD13 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 14, 0); /* LCDD14 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 15, 0); /* LCDD15 */ > > + > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 18, 0); /* LCDD18 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 19, 0); /* LCDD19 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 20, 0); /* LCDD20 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 21, 0); /* LCDD21 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 22, 0); /* LCDD22 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 23, 0); /* LCDD23 */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_LCDC); > > @@ -199,12 +199,12 @@ void lcd_show_board_info(void) > > #ifdef CONFIG_GENERIC_ATMEL_MCI > > void sama5d4ek_mci1_hw_init(void) > > { > > - at91_set_c_periph(AT91_PIO_PORTE, 19, 1); /* MCI1 CDA */ > > - at91_set_c_periph(AT91_PIO_PORTE, 20, 1); /* MCI1 DA0 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 21, 1); /* MCI1 DA1 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 22, 1); /* MCI1 DA2 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 23, 1); /* MCI1 DA3 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 18, 0); /* MCI1 CLK */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 19, 1); /* MCI1 CDA */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 20, 1); /* MCI1 DA0 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 21, 1); /* MCI1 DA1 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 22, 1); /* MCI1 DA2 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 23, 1); /* MCI1 DA3 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 18, 0); /* MCI1 CLK */ > > > > /* > > * As the mci io internal pull down is too strong, so if the io needs > > @@ -212,12 +212,12 @@ void sama5d4ek_mci1_hw_init(void) > > * the power consumption will increase, so disable the interanl pull > > * down to save the power. > > */ > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 18, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 19, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 20, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 21, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 22, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 23, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 18, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 19, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 20, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 21, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 22, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 23, 0); > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_MCI1); > > @@ -235,16 +235,16 @@ int board_mmc_init(bd_t *bis) > > #ifdef CONFIG_MACB > > void sama5d4ek_macb0_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTB, 0, 0); /* ETXCK_EREFCK */ > > - at91_set_a_periph(AT91_PIO_PORTB, 6, 0); /* ERXDV */ > > - at91_set_a_periph(AT91_PIO_PORTB, 8, 0); /* ERX0 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 9, 0); /* ERX1 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 7, 0); /* ERXER */ > > - at91_set_a_periph(AT91_PIO_PORTB, 2, 0); /* ETXEN */ > > - at91_set_a_periph(AT91_PIO_PORTB, 12, 0); /* ETX0 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 13, 0); /* ETX1 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 17, 0); /* EMDIO */ > > - at91_set_a_periph(AT91_PIO_PORTB, 16, 0); /* EMDC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 0, 0); /* > ETXCK_EREFCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 6, 0); /* ERXDV */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 8, 0); /* ERX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 9, 0); /* ERX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 7, 0); /* ERXER */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 2, 0); /* ETXEN */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 12, 0); /* ETX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 13, 0); /* ETX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 17, 0); /* EMDIO */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 16, 0); /* EMDC */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_GMAC0); > > @@ -253,8 +253,8 @@ void sama5d4ek_macb0_hw_init(void) > > > > static void sama5d4ek_serial3_hw_init(void) > > { > > - at91_set_b_periph(AT91_PIO_PORTE, 17, 1); /* TXD3 */ > > - at91_set_b_periph(AT91_PIO_PORTE, 16, 0); /* RXD3 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTE, 17, 1); /* TXD3 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTE, 16, 0); /* RXD3 */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_USART3); > > diff --git a/board/denx/ma5d4evk/ma5d4evk.c > b/board/denx/ma5d4evk/ma5d4evk.c > > index ec0fa28f3e..81463712fa 100644 > > --- a/board/denx/ma5d4evk/ma5d4evk.c > > +++ b/board/denx/ma5d4evk/ma5d4evk.c > > @@ -44,9 +44,9 @@ void spi_cs_deactivate(struct spi_slave *slave) > > > > static void ma5d4evk_spi0_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTC, 0, 0); /* SPI0_MISO */ > > - at91_set_a_periph(AT91_PIO_PORTC, 1, 0); /* SPI0_MOSI */ > > - at91_set_a_periph(AT91_PIO_PORTC, 2, 0); /* SPI0_SPCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 0, 0); /* SPI0_MISO */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 1, 0); /* SPI0_MOSI */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 2, 0); /* SPI0_SPCK */ > > > > at91_set_pio_output(AT91_PIO_PORTC, 3, 1); /* SPI0_CS0 */ > > > > @@ -90,39 +90,39 @@ unsigned int has_lcdc(void) > > > > static void ma5d4evk_lcd_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTA, 24, 1); /* LCDPWM */ > > - at91_set_a_periph(AT91_PIO_PORTA, 25, 0); /* LCDDISP */ > > - at91_set_a_periph(AT91_PIO_PORTA, 26, 0); /* LCDVSYNC */ > > - at91_set_a_periph(AT91_PIO_PORTA, 27, 0); /* LCDHSYNC */ > > - at91_set_a_periph(AT91_PIO_PORTA, 28, 0); /* LCDDOTCK */ > > - at91_set_a_periph(AT91_PIO_PORTA, 29, 1); /* LCDDEN */ > > - > > - at91_set_a_periph(AT91_PIO_PORTA, 0, 0); /* LCDD0 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 1, 0); /* LCDD1 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 2, 0); /* LCDD2 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 3, 0); /* LCDD3 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 4, 0); /* LCDD4 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 5, 0); /* LCDD5 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 6, 0); /* LCDD6 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 7, 0); /* LCDD7 */ > > - > > - at91_set_a_periph(AT91_PIO_PORTA, 8, 0); /* LCDD9 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 9, 0); /* LCDD8 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 10, 0); /* LCDD10 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 11, 0); /* LCDD11 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 12, 0); /* LCDD12 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 13, 0); /* LCDD13 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 14, 0); /* LCDD14 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 15, 0); /* LCDD15 */ > > - > > - at91_set_a_periph(AT91_PIO_PORTA, 16, 0); /* LCDD16 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 17, 0); /* LCDD17 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 18, 0); /* LCDD18 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 19, 0); /* LCDD19 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 20, 0); /* LCDD20 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 21, 0); /* LCDD21 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 22, 0); /* LCDD22 */ > > - at91_set_a_periph(AT91_PIO_PORTA, 23, 0); /* LCDD23 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 24, 1); /* LCDPWM */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 25, 0); /* LCDDISP */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 26, 0); /* LCDVSYNC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 27, 0); /* LCDHSYNC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 28, 0); /* LCDDOTCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 29, 1); /* LCDDEN */ > > + > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 0, 0); /* LCDD0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 1, 0); /* LCDD1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 2, 0); /* LCDD2 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 3, 0); /* LCDD3 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 4, 0); /* LCDD4 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 5, 0); /* LCDD5 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 6, 0); /* LCDD6 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 7, 0); /* LCDD7 */ > > + > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 8, 0); /* LCDD9 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 9, 0); /* LCDD8 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 10, 0); /* LCDD10 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 11, 0); /* LCDD11 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 12, 0); /* LCDD12 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 13, 0); /* LCDD13 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 14, 0); /* LCDD14 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 15, 0); /* LCDD15 */ > > + > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 16, 0); /* LCDD16 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 17, 0); /* LCDD17 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 18, 0); /* LCDD18 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 19, 0); /* LCDD19 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 20, 0); /* LCDD20 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 21, 0); /* LCDD21 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 22, 0); /* LCDD22 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTA, 23, 0); /* LCDD23 */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_LCDC); > > @@ -134,16 +134,16 @@ static void ma5d4evk_lcd_hw_init(void) > > /* On-SoM eMMC */ > > void ma5d4evk_mci0_hw_init(void) > > { > > - at91_set_b_periph(AT91_PIO_PORTC, 5, 1); /* MCI1 CDA */ > > - at91_set_b_periph(AT91_PIO_PORTC, 6, 1); /* MCI1 DA0 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 7, 1); /* MCI1 DA1 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 8, 1); /* MCI1 DA2 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 9, 1); /* MCI1 DA3 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 10, 1); /* MCI1 DA4 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 11, 1); /* MCI1 DA5 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 12, 1); /* MCI1 DA6 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 13, 1); /* MCI1 DA7 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 4, 0); /* MCI1 CLK */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 5, 1); /* MCI1 CDA */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 6, 1); /* MCI1 DA0 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 7, 1); /* MCI1 DA1 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 8, 1); /* MCI1 DA2 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 9, 1); /* MCI1 DA3 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 10, 1); /* MCI1 DA4 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 11, 1); /* MCI1 DA5 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 12, 1); /* MCI1 DA6 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 13, 1); /* MCI1 DA7 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 4, 0); /* MCI1 CLK */ > > > > /* > > * As the mci io internal pull down is too strong, so if the io needs > > @@ -151,16 +151,16 @@ void ma5d4evk_mci0_hw_init(void) > > * the power consumption will increase, so disable the internal pull > > * down to save the power. > > */ > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 5, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 6, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 7, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 8, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 9, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 10, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 11, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 12, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 13, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 4, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 5, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 6, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 7, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 8, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 9, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 10, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 11, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 12, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 13, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 4, 0); > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_MCI0); > > @@ -169,12 +169,12 @@ void ma5d4evk_mci0_hw_init(void) > > /* On-board MicroSD slot */ > > void ma5d4evk_mci1_hw_init(void) > > { > > - at91_set_c_periph(AT91_PIO_PORTE, 19, 1); /* MCI1 CDA */ > > - at91_set_c_periph(AT91_PIO_PORTE, 20, 1); /* MCI1 DA0 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 21, 1); /* MCI1 DA1 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 22, 1); /* MCI1 DA2 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 23, 1); /* MCI1 DA3 */ > > - at91_set_c_periph(AT91_PIO_PORTE, 18, 0); /* MCI1 CLK */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 19, 1); /* MCI1 CDA */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 20, 1); /* MCI1 DA0 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 21, 1); /* MCI1 DA1 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 22, 1); /* MCI1 DA2 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 23, 1); /* MCI1 DA3 */ > > + at91_pio3_set_c_periph(AT91_PIO_PORTE, 18, 0); /* MCI1 CLK */ > > > > /* > > * As the mci io internal pull down is too strong, so if the io needs > > @@ -182,16 +182,16 @@ void ma5d4evk_mci1_hw_init(void) > > * the power consumption will increase, so disable the internal pull > > * down to save the power. > > */ > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 18, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 19, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 20, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 21, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 22, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 23, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 18, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 19, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 20, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 21, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 22, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 23, 0); > > > > /* Deal with WP pin on the microSD slot. */ > > at91_set_pio_output(AT91_PIO_PORTE, 16, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 16, 1); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 16, 1); > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_MCI1); > > @@ -203,7 +203,7 @@ int board_mmc_init(bd_t *bis) > > > > /* De-assert reset on On-SoM eMMC */ > > at91_set_pio_output(AT91_PIO_PORTE, 15, 1); > > - at91_set_pio_pulldown(AT91_PIO_PORTE, 15, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 15, 0); > > > > ret = atmel_mci_init((void *)ATMEL_BASE_MCI0); > > if (ret) /* eMMC init failed, skip it. */ > > @@ -223,16 +223,16 @@ int board_mmc_init(bd_t *bis) > > #ifdef CONFIG_MACB > > void ma5d4evk_macb0_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTB, 0, 0); /* ETXCK_EREFCK */ > > - at91_set_a_periph(AT91_PIO_PORTB, 6, 0); /* ERXDV */ > > - at91_set_a_periph(AT91_PIO_PORTB, 8, 0); /* ERX0 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 9, 0); /* ERX1 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 7, 0); /* ERXER */ > > - at91_set_a_periph(AT91_PIO_PORTB, 2, 0); /* ETXEN */ > > - at91_set_a_periph(AT91_PIO_PORTB, 12, 0); /* ETX0 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 13, 0); /* ETX1 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 17, 0); /* EMDIO */ > > - at91_set_a_periph(AT91_PIO_PORTB, 16, 0); /* EMDC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 0, 0); /* > ETXCK_EREFCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 6, 0); /* ERXDV */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 8, 0); /* ERX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 9, 0); /* ERX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 7, 0); /* ERXER */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 2, 0); /* ETXEN */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 12, 0); /* ETX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 13, 0); /* ETX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 17, 0); /* EMDIO */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 16, 0); /* EMDC */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_GMAC0); > > @@ -242,17 +242,17 @@ void ma5d4evk_macb0_hw_init(void) > > static void ma5d4evk_serial_hw_init(void) > > { > > /* USART0 */ > > - at91_set_a_periph(AT91_PIO_PORTD, 13, 1); /* TXD */ > > - at91_set_a_periph(AT91_PIO_PORTD, 12, 0); /* RXD */ > > - at91_set_a_periph(AT91_PIO_PORTD, 11, 0); /* RTS */ > > - at91_set_a_periph(AT91_PIO_PORTD, 10, 0); /* CTS */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 13, 1); /* TXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 12, 0); /* RXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 11, 0); /* RTS */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 10, 0); /* CTS */ > > at91_periph_clk_enable(ATMEL_ID_USART0); > > > > /* USART1 */ > > - at91_set_a_periph(AT91_PIO_PORTD, 17, 1); /* TXD */ > > - at91_set_a_periph(AT91_PIO_PORTD, 16, 0); /* RXD */ > > - at91_set_a_periph(AT91_PIO_PORTD, 15, 0); /* RTS */ > > - at91_set_a_periph(AT91_PIO_PORTD, 14, 0); /* CTS */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 17, 1); /* TXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 16, 0); /* RXD */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 15, 0); /* RTS */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTD, 14, 0); /* CTS */ > > at91_periph_clk_enable(ATMEL_ID_USART1); > > } > > > > @@ -273,7 +273,7 @@ int board_early_init_f(void) > > at91_set_pio_output(AT91_PIO_PORTB, 21, 0); > > udelay(100); > > at91_set_pio_output(AT91_PIO_PORTB, 21, 1); > > - at91_set_pio_pulldown(AT91_PIO_PORTB, 21, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTB, 21, 0); > > > > ma5d4evk_serial_hw_init(); > > > > diff --git a/board/l+g/vinco/vinco.c b/board/l+g/vinco/vinco.c > > index 3d7af092e8..a938a2c2e1 100644 > > --- a/board/l+g/vinco/vinco.c > > +++ b/board/l+g/vinco/vinco.c > > @@ -51,9 +51,9 @@ void spi_cs_deactivate(struct spi_slave *slave) > > > > static void vinco_spi0_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTC, 0, 0); /* SPI0_MISO */ > > - at91_set_a_periph(AT91_PIO_PORTC, 1, 0); /* SPI0_MOSI */ > > - at91_set_a_periph(AT91_PIO_PORTC, 2, 0); /* SPI0_SPCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 0, 0); /* SPI0_MISO */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 1, 0); /* SPI0_MOSI */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTC, 2, 0); /* SPI0_SPCK */ > > > > at91_set_pio_output(AT91_PIO_PORTC, 3, 1); /* SPI0_CS0 */ > > > > @@ -76,16 +76,16 @@ static void vinco_usb_hw_init(void) > > #ifdef CONFIG_GENERIC_ATMEL_MCI > > void vinco_mci0_hw_init(void) > > { > > - at91_set_b_periph(AT91_PIO_PORTC, 5, 1); /* MCI0 CDA */ > > - at91_set_b_periph(AT91_PIO_PORTC, 6, 1); /* MCI0 DA0 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 7, 1); /* MCI0 DA1 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 8, 1); /* MCI0 DA2 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 9, 1); /* MCI0 DA3 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 10, 1); /* MCI0 DA4 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 11, 1); /* MCI0 DA5 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 12, 1); /* MCI0 DA6 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 13, 1); /* MCI0 DA7 */ > > - at91_set_b_periph(AT91_PIO_PORTC, 4, 0); /* MCI0 CLK */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 5, 1); /* MCI0 CDA */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 6, 1); /* MCI0 DA0 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 7, 1); /* MCI0 DA1 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 8, 1); /* MCI0 DA2 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 9, 1); /* MCI0 DA3 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 10, 1); /* MCI0 DA4 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 11, 1); /* MCI0 DA5 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 12, 1); /* MCI0 DA6 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 13, 1); /* MCI0 DA7 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTC, 4, 0); /* MCI0 CLK */ > > > > /* > > * As the mci io internal pull down is too strong, so if the io needs > > @@ -93,16 +93,16 @@ void vinco_mci0_hw_init(void) > > * the power consumption will increase, so disable the interanl pull > > * down to save the power. > > */ > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 4, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 5, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 6, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 7, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 8, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 9, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 10, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 11, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 12, 0); > > - at91_set_pio_pulldown(AT91_PIO_PORTC, 13, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 4, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 5, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 6, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 7, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 8, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 9, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 10, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 11, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 12, 0); > > + at91_pio3_set_pio_pulldown(AT91_PIO_PORTC, 13, 0); > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_MCI0); > > @@ -120,16 +120,16 @@ int board_mmc_init(bd_t *bis) > > #ifdef CONFIG_MACB > > void vinco_macb0_hw_init(void) > > { > > - at91_set_a_periph(AT91_PIO_PORTB, 0, 0); /* ETXCK_EREFCK */ > > - at91_set_a_periph(AT91_PIO_PORTB, 6, 0); /* ERXDV */ > > - at91_set_a_periph(AT91_PIO_PORTB, 8, 0); /* ERX0 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 9, 0); /* ERX1 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 7, 0); /* ERXER */ > > - at91_set_a_periph(AT91_PIO_PORTB, 2, 0); /* ETXEN */ > > - at91_set_a_periph(AT91_PIO_PORTB, 12, 0); /* ETX0 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 13, 0); /* ETX1 */ > > - at91_set_a_periph(AT91_PIO_PORTB, 17, 0); /* EMDIO */ > > - at91_set_a_periph(AT91_PIO_PORTB, 16, 0); /* EMDC */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 0, 0); /* > ETXCK_EREFCK */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 6, 0); /* ERXDV */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 8, 0); /* ERX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 9, 0); /* ERX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 7, 0); /* ERXER */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 2, 0); /* ETXEN */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 12, 0); /* ETX0 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 13, 0); /* ETX1 */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 17, 0); /* EMDIO */ > > + at91_pio3_set_a_periph(AT91_PIO_PORTB, 16, 0); /* EMDC */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_GMAC0); > > @@ -141,8 +141,8 @@ void vinco_macb0_hw_init(void) > > > > static void vinco_serial3_hw_init(void) > > { > > - at91_set_b_periph(AT91_PIO_PORTE, 17, 1); /* TXD3 */ > > - at91_set_b_periph(AT91_PIO_PORTE, 16, 0); /* RXD3 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTE, 17, 1); /* TXD3 */ > > + at91_pio3_set_b_periph(AT91_PIO_PORTE, 16, 0); /* RXD3 */ > > > > /* Enable clock */ > > at91_periph_clk_enable(ATMEL_ID_USART3); > > diff --git a/drivers/gpio/at91_gpio.c b/drivers/gpio/at91_gpio.c > > index 8e52e3dad0..2f9e44b620 100644 > > --- a/drivers/gpio/at91_gpio.c > > +++ b/drivers/gpio/at91_gpio.c > > @@ -59,11 +59,6 @@ int at91_set_pio_pullup(unsigned port, unsigned pin, int > use_pullup) > > { > > struct at91_port *at91_port = at91_pio_get_port(port); > > > > -#if defined(CPU_HAS_PIO3) > > - if (use_pullup) > > - at91_set_pio_pulldown(port, pin, 0); > > -#endif > > - > > if (at91_port && (pin < GPIO_PER_BANK)) > > at91_set_port_pullup(at91_port, pin, use_pullup); > > > > @@ -100,14 +95,7 @@ int at91_set_a_periph(unsigned port, unsigned pin, int > use_pullup) > > mask = 1 << pin; > > writel(mask, &at91_port->idr); > > at91_set_pio_pullup(port, pin, use_pullup); > > -#if defined(CPU_HAS_PIO3) > > - writel(readl(&at91_port->abcdsr1) & ~mask, > > - &at91_port->abcdsr1); > > - writel(readl(&at91_port->abcdsr2) & ~mask, > > - &at91_port->abcdsr2); > > -#else > > - writel(mask, &at91_port->asr); > > -#endif > > + writel(mask, &at91_port->mux.pio2.asr); > > writel(mask, &at91_port->pdr); > > } > > > > @@ -126,25 +114,62 @@ int at91_set_b_periph(unsigned port, unsigned pin, > int use_pullup) > > mask = 1 << pin; > > writel(mask, &at91_port->idr); > > at91_set_pio_pullup(port, pin, use_pullup); > > -#if defined(CPU_HAS_PIO3) > > - writel(readl(&at91_port->abcdsr1) | mask, > > - &at91_port->abcdsr1); > > - writel(readl(&at91_port->abcdsr2) & ~mask, > > - &at91_port->abcdsr2); > > -#else > > - writel(mask, &at91_port->bsr); > > -#endif > > + writel(mask, &at91_port->mux.pio2.bsr); > > + writel(mask, &at91_port->pdr); > > + } > > + > > + return 0; > > +} > > + > > +/* > > + * mux the pin to the "A" internal peripheral role. > > + */ > > +int at91_pio3_set_a_periph(unsigned port, unsigned pin, int use_pullup) > > +{ > > + struct at91_port *at91_port = at91_pio_get_port(port); > > + u32 mask; > > + > > + if (at91_port && (pin < GPIO_PER_BANK)) { > > + mask = 1 << pin; > > + writel(mask, &at91_port->idr); > > + at91_set_pio_pullup(port, pin, use_pullup); > > + writel(readl(&at91_port->mux.pio3.abcdsr1) & ~mask, > > + &at91_port->mux.pio3.abcdsr1); > > + writel(readl(&at91_port->mux.pio3.abcdsr2) & ~mask, > > + &at91_port->mux.pio3.abcdsr2); > > + > > writel(mask, &at91_port->pdr); > > } > > > > return 0; > > } > > > > -#if defined(CPU_HAS_PIO3) > > +/* > > + * mux the pin to the "B" internal peripheral role. > > + */ > > +int at91_pio3_set_b_periph(unsigned port, unsigned pin, int use_pullup) > > +{ > > + struct at91_port *at91_port = at91_pio_get_port(port); > > + u32 mask; > > + > > + if (at91_port && (pin < GPIO_PER_BANK)) { > > + mask = 1 << pin; > > + writel(mask, &at91_port->idr); > > + at91_set_pio_pullup(port, pin, use_pullup); > > + writel(readl(&at91_port->mux.pio3.abcdsr1) | mask, > > + &at91_port->mux.pio3.abcdsr1); > > + writel(readl(&at91_port->mux.pio3.abcdsr2) & ~mask, > > + &at91_port->mux.pio3.abcdsr2); > > + > > + writel(mask, &at91_port->pdr); > > + } > > + > > + return 0; > > +} > > /* > > * mux the pin to the "C" internal peripheral role. > > */ > > -int at91_set_c_periph(unsigned port, unsigned pin, int use_pullup) > > +int at91_pio3_set_c_periph(unsigned port, unsigned pin, int use_pullup) > > { > > struct at91_port *at91_port = at91_pio_get_port(port); > > u32 mask; > > @@ -153,10 +178,10 @@ int at91_set_c_periph(unsigned port, unsigned pin, > int use_pullup) > > mask = 1 << pin; > > writel(mask, &at91_port->idr); > > at91_set_pio_pullup(port, pin, use_pullup); > > - writel(readl(&at91_port->abcdsr1) & ~mask, > > - &at91_port->abcdsr1); > > - writel(readl(&at91_port->abcdsr2) | mask, > > - &at91_port->abcdsr2); > > + writel(readl(&at91_port->mux.pio3.abcdsr1) & ~mask, > > + &at91_port->mux.pio3.abcdsr1); > > + writel(readl(&at91_port->mux.pio3.abcdsr2) | mask, > > + &at91_port->mux.pio3.abcdsr2); > > writel(mask, &at91_port->pdr); > > } > > > > @@ -166,7 +191,7 @@ int at91_set_c_periph(unsigned port, unsigned pin, int > use_pullup) > > /* > > * mux the pin to the "D" internal peripheral role. > > */ > > -int at91_set_d_periph(unsigned port, unsigned pin, int use_pullup) > > +int at91_pio3_set_d_periph(unsigned port, unsigned pin, int use_pullup) > > { > > struct at91_port *at91_port = at91_pio_get_port(port); > > u32 mask; > > @@ -175,16 +200,15 @@ int at91_set_d_periph(unsigned port, unsigned pin, > int use_pullup) > > mask = 1 << pin; > > writel(mask, &at91_port->idr); > > at91_set_pio_pullup(port, pin, use_pullup); > > - writel(readl(&at91_port->abcdsr1) | mask, > > - &at91_port->abcdsr1); > > - writel(readl(&at91_port->abcdsr2) | mask, > > - &at91_port->abcdsr2); > > + writel(readl(&at91_port->mux.pio3.abcdsr1) | mask, > > + &at91_port->mux.pio3.abcdsr1); > > + writel(readl(&at91_port->mux.pio3.abcdsr2) | mask, > > + &at91_port->mux.pio3.abcdsr2); > > writel(mask, &at91_port->pdr); > > } > > > > return 0; > > } > > -#endif > > > > #ifdef CONFIG_DM_GPIO > > static bool at91_get_port_output(struct at91_port *at91_port, int offset) > > @@ -263,10 +287,27 @@ int at91_set_pio_deglitch(unsigned port, unsigned > pin, int is_on) > > > > if (at91_port && (pin < GPIO_PER_BANK)) { > > mask = 1 << pin; > > + if (is_on) > > + writel(mask, &at91_port->ifer); > > + else > > + writel(mask, &at91_port->ifdr); > > + } > > + > > + return 0; > > +} > > + > > +/* > > + * enable/disable the glitch filter. mostly used with IRQ handling. > > + */ > > +int at91_pio3_set_pio_deglitch(unsigned port, unsigned pin, int is_on) > > +{ > > + struct at91_port *at91_port = at91_pio_get_port(port); > > + u32 mask; > > + > > + if (at91_port && (pin < GPIO_PER_BANK)) { > > + mask = 1 << pin; > > if (is_on) { > > -#if defined(CPU_HAS_PIO3) > > - writel(mask, &at91_port->ifscdr); > > -#endif > > + writel(mask, &at91_port->mux.pio3.ifscdr); > > writel(mask, &at91_port->ifer); > > } else { > > writel(mask, &at91_port->ifdr); > > @@ -276,11 +317,10 @@ int at91_set_pio_deglitch(unsigned port, unsigned > pin, int is_on) > > return 0; > > } > > > > -#if defined(CPU_HAS_PIO3) > > /* > > * enable/disable the debounce filter. > > */ > > -int at91_set_pio_debounce(unsigned port, unsigned pin, int is_on, int div) > > +int at91_pio3_set_pio_debounce(unsigned port, unsigned pin, int is_on, int > > div) > > { > > struct at91_port *at91_port = at91_pio_get_port(port); > > u32 mask; > > @@ -288,8 +328,8 @@ int at91_set_pio_debounce(unsigned port, unsigned pin, > int is_on, int div) > > if (at91_port && (pin < GPIO_PER_BANK)) { > > mask = 1 << pin; > > if (is_on) { > > - writel(mask, &at91_port->ifscer); > > - writel(div & PIO_SCDR_DIV, &at91_port->scdr); > > + writel(mask, &at91_port->mux.pio3.ifscer); > > + writel(div & PIO_SCDR_DIV, &at91_port->mux.pio3.scdr); > > writel(mask, &at91_port->ifer); > > } else { > > writel(mask, &at91_port->ifdr); > > @@ -303,7 +343,7 @@ int at91_set_pio_debounce(unsigned port, unsigned pin, > int is_on, int div) > > * enable/disable the pull-down. > > * If pull-up already enabled while calling the function, we disable it. > > */ > > -int at91_set_pio_pulldown(unsigned port, unsigned pin, int is_on) > > +int at91_pio3_set_pio_pulldown(unsigned port, unsigned pin, int is_on) > > { > > struct at91_port *at91_port = at91_pio_get_port(port); > > u32 mask; > > @@ -312,18 +352,31 @@ int at91_set_pio_pulldown(unsigned port, unsigned > pin, int is_on) > > mask = 1 << pin; > > if (is_on) { > > at91_set_pio_pullup(port, pin, 0); > > - writel(mask, &at91_port->ppder); > > + writel(mask, &at91_port->mux.pio3.ppder); > > } else > > - writel(mask, &at91_port->ppddr); > > + writel(mask, &at91_port->mux.pio3.ppddr); > > } > > > > return 0; > > } > > > > +int at91_pio3_set_pio_pullup(unsigned port, unsigned pin, int use_pullup) > > +{ > > + struct at91_port *at91_port = at91_pio_get_port(port); > > + > > + if (use_pullup) > > + at91_pio3_set_pio_pulldown(port, pin, 0); > > + > > + if (at91_port && (pin < GPIO_PER_BANK)) > > + at91_set_port_pullup(at91_port, pin, use_pullup); > > + > > + return 0; > > +} > > + > > /* > > * disable Schmitt trigger > > */ > > -int at91_set_pio_disable_schmitt_trig(unsigned port, unsigned pin) > > +int at91_pio3_set_pio_disable_schmitt_trig(unsigned port, unsigned pin) > > { > > struct at91_port *at91_port = at91_pio_get_port(port); > > u32 mask; > > @@ -336,7 +389,6 @@ int at91_set_pio_disable_schmitt_trig(unsigned port, > unsigned pin) > > > > return 0; > > } > > -#endif > > > > /* > > * enable/disable the multi-driver. This is only valid for output and > > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot