aboutsummaryrefslogtreecommitdiffstats
path: root/arch/avr32/mach-at32ap
diff options
context:
space:
mode:
authorDavid Brownell <david-b@pacbell.net>2008-06-18 05:31:43 -0400
committerHaavard Skinnemoen <haavard.skinnemoen@atmel.com>2008-06-27 09:32:29 -0400
commit9c2baf785e90419d6f9af6bd07aa0694020cba8d (patch)
tree8cc1a3721b31d7b09fd260c6bd86e960b2d91ee5 /arch/avr32/mach-at32ap
parent7ef31e9c4e711bfb817a15b54e428e5c4a7c0032 (diff)
at32ap700x spi: enable pullups on MISO
This is a minor tweak to the at32ap700x pin configuration for the SPI input pin (MISO), enabling the on-chip weak pullup (typical 190K) to (a) ensure a fixed data value for missing or input-only slaves; (b) prevent power waste associated with inputs floating near VDDIO/2. Atmel's boards have no external pullup or pulldown on these pins, so it's unlikely other boards would address these issues with external pulldowns. Were there trouble, board-specific code could turn off the relevant pullup(s). Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Diffstat (limited to 'arch/avr32/mach-at32ap')
-rw-r--r--arch/avr32/mach-at32ap/at32ap700x.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c
index a9ae7bb108b2..a2e7b96b5e8c 100644
--- a/arch/avr32/mach-at32ap/at32ap700x.c
+++ b/arch/avr32/mach-at32ap/at32ap700x.c
@@ -1181,7 +1181,8 @@ at32_add_device_spi(unsigned int id, struct spi_board_info *b, unsigned int n)
1181 switch (id) { 1181 switch (id) {
1182 case 0: 1182 case 0:
1183 pdev = &atmel_spi0_device; 1183 pdev = &atmel_spi0_device;
1184 select_peripheral(PA(0), PERIPH_A, 0); /* MISO */ 1184 /* pullup MISO so a level is always defined */
1185 select_peripheral(PA(0), PERIPH_A, AT32_GPIOF_PULLUP);
1185 select_peripheral(PA(1), PERIPH_A, 0); /* MOSI */ 1186 select_peripheral(PA(1), PERIPH_A, 0); /* MOSI */
1186 select_peripheral(PA(2), PERIPH_A, 0); /* SCK */ 1187 select_peripheral(PA(2), PERIPH_A, 0); /* SCK */
1187 at32_spi_setup_slaves(0, b, n, spi0_pins); 1188 at32_spi_setup_slaves(0, b, n, spi0_pins);
@@ -1189,7 +1190,8 @@ at32_add_device_spi(unsigned int id, struct spi_board_info *b, unsigned int n)
1189 1190
1190 case 1: 1191 case 1:
1191 pdev = &atmel_spi1_device; 1192 pdev = &atmel_spi1_device;
1192 select_peripheral(PB(0), PERIPH_B, 0); /* MISO */ 1193 /* pullup MISO so a level is always defined */
1194 select_peripheral(PB(0), PERIPH_B, AT32_GPIOF_PULLUP);
1193 select_peripheral(PB(1), PERIPH_B, 0); /* MOSI */ 1195 select_peripheral(PB(1), PERIPH_B, 0); /* MOSI */
1194 select_peripheral(PB(5), PERIPH_B, 0); /* SCK */ 1196 select_peripheral(PB(5), PERIPH_B, 0); /* SCK */
1195 at32_spi_setup_slaves(1, b, n, spi1_pins); 1197 at32_spi_setup_slaves(1, b, n, spi1_pins);