浏览代码

AVR32: Add clk and gpio infrastructure for mmci

Implement functions for configuring the mmci pins, as well as
functions for getting the clock rate of the mmci controller.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Haavard Skinnemoen 18 年之前
父节点
当前提交
05fdab1ef6
共有 3 个文件被更改,包括 15 次插入0 次删除
  1. 10 0
      cpu/at32ap/at32ap7000/gpio.c
  2. 4 0
      include/asm-avr32/arch-at32ap7000/clk.h
  3. 1 0
      include/asm-avr32/arch-at32ap7000/gpio.h

+ 10 - 0
cpu/at32ap/at32ap7000/gpio.c

@@ -125,3 +125,13 @@ void gpio_enable_macb1(void)
 	gpio_select_periph_B(GPIO_PIN_PD15, 0);	/* SPD	*/
 #endif
 }
+
+void gpio_enable_mmci(void)
+{
+	gpio_select_periph_A(GPIO_PIN_PA10, 0);	/* CLK	 */
+	gpio_select_periph_A(GPIO_PIN_PA11, 0);	/* CMD	 */
+	gpio_select_periph_A(GPIO_PIN_PA12, 0);	/* DATA0 */
+	gpio_select_periph_A(GPIO_PIN_PA13, 0);	/* DATA1 */
+	gpio_select_periph_A(GPIO_PIN_PA14, 0);	/* DATA2 */
+	gpio_select_periph_A(GPIO_PIN_PA15, 0);	/* DATA3 */
+}

+ 4 - 0
include/asm-avr32/arch-at32ap7000/clk.h

@@ -62,5 +62,9 @@ static inline unsigned long get_macb_hclk_rate(unsigned int dev_id)
 {
 	return get_hsb_clk_rate();
 }
+static inline unsigned long get_mci_clk_rate(void)
+{
+	return get_pbb_clk_rate();
+}
 
 #endif /* __ASM_AVR32_ARCH_CLK_H__ */

+ 1 - 0
include/asm-avr32/arch-at32ap7000/gpio.h

@@ -207,6 +207,7 @@ void gpio_enable_usart2(void);
 void gpio_enable_usart3(void);
 void gpio_enable_macb0(void);
 void gpio_enable_macb1(void);
+void gpio_enable_mmci(void);
 
 #endif /* __ASM_AVR32_ARCH_GPIO_H__ */