OpenWrt – Blame information for rev 2
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | Add access to the function2 gpio register. This probably has to be |
2 | converted into a pimux driver later on. This is needed for some setup |
||
3 | functions on the Arduino Yun. |
||
4 | |||
5 | --- a/arch/mips/ath79/common.h |
||
6 | +++ b/arch/mips/ath79/common.h |
||
7 | @@ -29,6 +29,7 @@ void ath79_ddr_ctrl_init(void); |
||
8 | void ath79_gpio_function_enable(u32 mask); |
||
9 | void ath79_gpio_function_disable(u32 mask); |
||
10 | void ath79_gpio_function_setup(u32 set, u32 clear); |
||
11 | +void ath79_gpio_function2_setup(u32 set, u32 clear); |
||
12 | void ath79_gpio_output_select(unsigned gpio, u8 val); |
||
13 | int ath79_gpio_direction_select(unsigned gpio, bool oe); |
||
14 | void ath79_gpio_init(void); |
||
15 | --- a/arch/mips/ath79/gpio.c |
||
16 | +++ b/arch/mips/ath79/gpio.c |
||
17 | @@ -43,6 +43,31 @@ static void __iomem *ath79_gpio_get_func |
||
18 | return ath79_gpio_base + reg; |
||
19 | } |
||
20 | |||
21 | +static void __iomem *ath79_gpio_get_function2_reg(void) |
||
22 | +{ |
||
23 | + u32 reg = 0; |
||
24 | + |
||
25 | + if (soc_is_ar71xx() || |
||
26 | + soc_is_ar724x() || |
||
27 | + soc_is_ar913x() || |
||
28 | + soc_is_ar933x()) |
||
29 | + reg = AR71XX_GPIO_REG_FUNC_2; |
||
30 | + else |
||
31 | + BUG(); |
||
32 | + |
||
33 | + return ath79_gpio_base + reg; |
||
34 | +} |
||
35 | + |
||
36 | + |
||
37 | +void ath79_gpio_function2_setup(u32 set, u32 clear) |
||
38 | +{ |
||
39 | + void __iomem *reg = ath79_gpio_get_function2_reg(); |
||
40 | + |
||
41 | + __raw_writel((__raw_readl(reg) & ~clear) | set, reg); |
||
42 | + /* flush write */ |
||
43 | + __raw_readl(reg); |
||
44 | +} |
||
45 | + |
||
46 | void ath79_gpio_function_setup(u32 set, u32 clear) |
||
47 | { |
||
48 | void __iomem *reg = ath79_gpio_get_function_reg(); |
||
49 | --- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h |
||
50 | +++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h |
||
51 | @@ -865,6 +865,7 @@ |
||
52 | #define AR71XX_GPIO_REG_INT_PENDING 0x20 |
||
53 | #define AR71XX_GPIO_REG_INT_ENABLE 0x24 |
||
54 | #define AR71XX_GPIO_REG_FUNC 0x28 |
||
55 | +#define AR71XX_GPIO_REG_FUNC_2 0x30 |
||
56 | |||
57 | #define AR934X_GPIO_REG_OUT_FUNC0 0x2c |
||
58 | #define AR934X_GPIO_REG_OUT_FUNC1 0x30 |
||
59 | @@ -989,6 +990,8 @@ |
||
60 | #define AR724X_GPIO_FUNC_UART_EN BIT(1) |
||
61 | #define AR724X_GPIO_FUNC_JTAG_DISABLE BIT(0) |
||
62 | |||
63 | +#define AR933X_GPIO_FUNC2_JUMPSTART_DISABLE BIT(9) |
||
64 | + |
||
65 | #define AR913X_GPIO_FUNC_WMAC_LED_EN BIT(22) |
||
66 | #define AR913X_GPIO_FUNC_EXP_PORT_CS_EN BIT(21) |
||
67 | #define AR913X_GPIO_FUNC_I2S_REFCLKEN BIT(20) |