Initial commit
This commit is contained in:
73
target/linux/ixp4xx/patches-4.9/030-gpio_line_config.patch
Normal file
73
target/linux/ixp4xx/patches-4.9/030-gpio_line_config.patch
Normal file
@@ -0,0 +1,73 @@
|
||||
--- a/arch/arm/mach-ixp4xx/common.c
|
||||
+++ b/arch/arm/mach-ixp4xx/common.c
|
||||
@@ -93,22 +93,7 @@ void __init ixp4xx_map_io(void)
|
||||
/*
|
||||
* GPIO-functions
|
||||
*/
|
||||
-/*
|
||||
- * The following converted to the real HW bits the gpio_line_config
|
||||
- */
|
||||
-/* GPIO pin types */
|
||||
-#define IXP4XX_GPIO_OUT 0x1
|
||||
-#define IXP4XX_GPIO_IN 0x2
|
||||
-
|
||||
-/* GPIO signal types */
|
||||
-#define IXP4XX_GPIO_LOW 0
|
||||
-#define IXP4XX_GPIO_HIGH 1
|
||||
-
|
||||
-/* GPIO Clocks */
|
||||
-#define IXP4XX_GPIO_CLK_0 14
|
||||
-#define IXP4XX_GPIO_CLK_1 15
|
||||
-
|
||||
-static void gpio_line_config(u8 line, u32 direction)
|
||||
+void gpio_line_config(u8 line, u32 direction)
|
||||
{
|
||||
if (direction == IXP4XX_GPIO_IN)
|
||||
*IXP4XX_GPIO_GPOER |= (1 << line);
|
||||
@@ -116,17 +101,17 @@ static void gpio_line_config(u8 line, u3
|
||||
*IXP4XX_GPIO_GPOER &= ~(1 << line);
|
||||
}
|
||||
|
||||
-static void gpio_line_get(u8 line, int *value)
|
||||
+void gpio_line_get(u8 line, int *value)
|
||||
{
|
||||
*value = (*IXP4XX_GPIO_GPINR >> line) & 0x1;
|
||||
}
|
||||
|
||||
-static void gpio_line_set(u8 line, int value)
|
||||
+void gpio_line_set(u8 line, int value)
|
||||
{
|
||||
- if (value == IXP4XX_GPIO_HIGH)
|
||||
- *IXP4XX_GPIO_GPOUTR |= (1 << line);
|
||||
- else if (value == IXP4XX_GPIO_LOW)
|
||||
+ if (value == IXP4XX_GPIO_LOW)
|
||||
*IXP4XX_GPIO_GPOUTR &= ~(1 << line);
|
||||
+ else
|
||||
+ *IXP4XX_GPIO_GPOUTR |= (1 << line);
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
--- a/arch/arm/mach-ixp4xx/include/mach/platform.h
|
||||
+++ b/arch/arm/mach-ixp4xx/include/mach/platform.h
|
||||
@@ -131,5 +131,21 @@ struct pci_sys_data;
|
||||
extern int ixp4xx_setup(int nr, struct pci_sys_data *sys);
|
||||
extern struct pci_ops ixp4xx_ops;
|
||||
|
||||
+/* GPIO pin types */
|
||||
+#define IXP4XX_GPIO_OUT 0x1
|
||||
+#define IXP4XX_GPIO_IN 0x2
|
||||
+
|
||||
+/* GPIO signal types */
|
||||
+#define IXP4XX_GPIO_LOW 0
|
||||
+#define IXP4XX_GPIO_HIGH 1
|
||||
+
|
||||
+/* GPIO Clocks */
|
||||
+#define IXP4XX_GPIO_CLK_0 14
|
||||
+#define IXP4XX_GPIO_CLK_1 15
|
||||
+
|
||||
+void gpio_line_config(u8 line, u32 direction);
|
||||
+void gpio_line_get(u8 line, int *value);
|
||||
+void gpio_line_set(u8 line, int value);
|
||||
+
|
||||
#endif // __ASSEMBLY__
|
||||
|
||||
Reference in New Issue
Block a user