nios2: add gpio support with asm-nios2/gpio.h
PATCH 1/1 nios2: add gpio support with asm-nios2/gpio.h
This patch adds driver for a trivial gpio core, which is described in http://nioswiki.com/GPIO.
--- include/asm-nios2/gpio.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-) create mode 100644 include/asm-nios2/gpio.h
include/asm-nios2/gpio.h new file +42 -0
@@ -0,0 +1,42 @@ +/* +* nios2 gpio driver +* +* This gpio core is described in http://nioswiki.com/GPIO +* bit[0] data +* bit[1] output enable +* +* Copyright (C) 2010 Thomas Chou <[email protected]> +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ + +#ifndef _ASM_NIOS2_GPIO_H_ +#define _ASM_NIOS2_GPIO_H_ 1 + +#include <asm/io.h> + +static inline int gpio_direction_input (unsigned pin) +{ +writel (1 ,CONFIG_SYS_GPIO_BASE + ((pin) <<2 )); +return 0 ; +} + +static inline int gpio_direction_output (unsigned pin,int value) +{ +writel (value ?3 :2 ,CONFIG_SYS_GPIO_BASE + ((pin) <<2 )); +return 0 ; +} + +static inline int gpio_get_value (unsigned pin) +{ +return readl (CONFIG_SYS_GPIO_BASE + ((pin) <<2 )); +} + +static inline void gpio_set_value (unsigned pin,int value) +{ +writel (value ?3 :2 ,CONFIG_SYS_GPIO_BASE + ((pin) <<2 )); +} + +#endif /* _ASM_NIOS2_GPIO_H_ */
Signature · 1 line
1.6.6.1
PATCH v2 1/1 nios2: add gpio support with asm-nios2/gpio.h
This patch adds driver for a trivial gpio core, which is described in http://nioswiki.com/GPIO.
When CONFIG_SYS_GPIO_BASE is not defined, board may provide its own driver.
--- include/asm-nios2/gpio.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 52 insertions(+), 0 deletions(-) create mode 100644 include/asm-nios2/gpio.h
include/asm-nios2/gpio.h new file +52 -0
@@ -0,0 +1,52 @@ +/* +* nios2 gpio driver +* +* This gpio core is described in http://nioswiki.com/GPIO +* bit[0] data +* bit[1] output enable +* +* when CONFIG_SYS_GPIO_BASE is not defined, board may provide +* its own driver. +* +* Copyright (C) 2010 Thomas Chou <[email protected]> +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ + +#ifndef _ASM_NIOS2_GPIO_H_ +#define _ASM_NIOS2_GPIO_H_ 1 + +#ifdef CONFIG_SYS_GPIO_BASE +#include <asm/io.h> + +static inline int gpio_direction_input (unsigned gpio) +{ +writel (1 ,CONFIG_SYS_GPIO_BASE + ((gpio) <<2 )); +return 0 ; +} + +static inline int gpio_direction_output (unsigned gpio,int value) +{ +writel (value ?3 :2 ,CONFIG_SYS_GPIO_BASE + ((gpio) <<2 )); +return 0 ; +} + +static inline int gpio_get_value (unsigned gpio) +{ +return readl (CONFIG_SYS_GPIO_BASE + ((gpio) <<2 )); +} + +static inline void gpio_set_value (unsigned gpio,int value) +{ +writel (value ?3 :2 ,CONFIG_SYS_GPIO_BASE + ((gpio) <<2 )); +} +#else +extern int gpio_direction_input (unsigned gpio); +extern int gpio_direction_output (unsigned gpio,int value); +extern int gpio_get_value (unsigned gpio); +extern void gpio_set_value (unsigned gpio,int value); +#endif /* CONFIG_SYS_GPIO_BASE */ + +#endif /* _ASM_NIOS2_GPIO_H_ */
Signature · 1 line
1.6.6.1
PATCH v3 1/1 nios2: add gpio support
In reply to Thomas ChouThis patch adds driver for a trivial gpio core, which is described in http://nioswiki.com/GPIO.
When CONFIG_SYS_GPIO_BASE is not defined, board may provide its own driver.
---
arch dir reorganized.
arch/nios2/include/asm/gpio.h | 52 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 52 insertions(+), 0 deletions(-) create mode 100644 arch/nios2/include/asm/gpio.h
arch/nios2/include/asm/gpio.h new file +52 -0
@@ -0,0 +1,52 @@ +/* +* nios2 gpio driver +* +* This gpio core is described in http://nioswiki.com/GPIO +* bit[0] data +* bit[1] output enable +* +* when CONFIG_SYS_GPIO_BASE is not defined, board may provide +* its own driver. +* +* Copyright (C) 2010 Thomas Chou <[email protected]> +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ + +#ifndef _ASM_NIOS2_GPIO_H_ +#define _ASM_NIOS2_GPIO_H_ 1 + +#ifdef CONFIG_SYS_GPIO_BASE +#include <asm/io.h> + +static inline int gpio_direction_input (unsigned gpio) +{ +writel (1 ,CONFIG_SYS_GPIO_BASE + ((gpio) <<2 )); +return 0 ; +} + +static inline int gpio_direction_output (unsigned gpio,int value) +{ +writel (value ?3 :2 ,CONFIG_SYS_GPIO_BASE + ((gpio) <<2 )); +return 0 ; +} + +static inline int gpio_get_value (unsigned gpio) +{ +return readl (CONFIG_SYS_GPIO_BASE + ((gpio) <<2 )); +} + +static inline void gpio_set_value (unsigned gpio,int value) +{ +writel (value ?3 :2 ,CONFIG_SYS_GPIO_BASE + ((gpio) <<2 )); +} +#else +extern int gpio_direction_input (unsigned gpio); +extern int gpio_direction_output (unsigned gpio,int value); +extern int gpio_get_value (unsigned gpio); +extern void gpio_set_value (unsigned gpio,int value); +#endif /* CONFIG_SYS_GPIO_BASE */ + +#endif /* _ASM_NIOS2_GPIO_H_ */
Signature · 1 line
1.6.6.1
PATCH v3 1/1 nios2: add gpio support
Hello.
Quoted 56 lines · Thomas Chou
This patch adds driver for a trivial gpio core, which is described in http://nioswiki.com/GPIO.
When
CONFIG_SYS_GPIO_BASEis not defined, board may provide its own driver.Signed-off-by Thomas Chou <[email protected]>---
arch dir reorganized.arch/nios2/include/asm/gpio.h | 52 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 52 insertions(+), 0 deletions(-) create mode 100644 arch/nios2/include/asm/gpio.harch/nios2/include/asm/gpio.h new file +34
-0@@ -0,0 +1,52 @@ +/* +* nios2 gpio driver +* +* This gpio core is described in http://nioswiki.com/GPIO +* bit[0] data +* bit[1] output enable +* +* when CONFIG_SYS_GPIO_BASE is not defined, board may provide +* its own driver. +* +* Copyright (C) 2010 Thomas Chou <[email protected]> +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ + +#ifndef _ASM_NIOS2_GPIO_H_ +#define _ASM_NIOS2_GPIO_H_ 1 + +#ifdef CONFIG_SYS_GPIO_BASE +#include <asm/io.h> + +static inline int gpio_direction_input (unsigned gpio) +{ +writel (1 ,CONFIG_SYS_GPIO_BASE + ((gpio) <<2 )); +return 0 ; +} + +static inline int gpio_direction_output (unsigned gpio,int value) +{ +writel (value ?3 :2 ,CONFIG_SYS_GPIO_BASE + ((gpio) <<2 )); +return 0 ; +}
arch/nios2/include/asm/gpio.h line 44
Quoted 10 lines
arch/nios2/include/asm/gpio.h new file +10
-0+ +static inline int gpio_get_value (unsigned gpio) +{ +return readl (CONFIG_SYS_GPIO_BASE + ((gpio) <<2 )); +} + +static inline void gpio_set_value (unsigned gpio,int value) +{ +writel (value ?3 :2 ,CONFIG_SYS_GPIO_BASE + ((gpio) <<2 )); +}
Why enclose 'gpio' into () when it's not within a macro?
WBR, Sergei
PATCH v3 1/1 nios2: add gpio support
Quoted 8 lines · Sergei Shtylyov
arch/nios2/include/asm/gpio.h line 44
Quoted 4 lines
arch/nios2/include/asm/gpio.h new file +4
-0+static inline void gpio_set_value (unsigned gpio,int value) +{ +writel (value ?3 :2 ,CONFIG_SYS_GPIO_BASE + ((gpio) <<2 )); +}Why enclose 'gpio' into () when it's not within a macro?
Hi Sergei,
Right. It is not not needed. Thanks.
Best regards,
Thomas
PATCH v4 1/1 nios2: add gpio support
In reply to Thomas ChouThis patch adds driver for a trivial gpio core, which is described in http://nioswiki.com/GPIO. It is used for gpio led and nand flash interface in u-boot.
When CONFIG_SYS_GPIO_BASE is not defined, board may provide its own driver.
---
remove () from gpio when it is not in a macro.
arch/nios2/include/asm/gpio.h | 52 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 52 insertions(+), 0 deletions(-) create mode 100644 arch/nios2/include/asm/gpio.h
arch/nios2/include/asm/gpio.h new file +52 -0
@@ -0,0 +1,52 @@ +/* +* nios2 gpio driver +* +* This gpio core is described in http://nioswiki.com/GPIO +* bit[0] data +* bit[1] output enable +* +* when CONFIG_SYS_GPIO_BASE is not defined, board may provide +* its own driver. +* +* Copyright (C) 2010 Thomas Chou <[email protected]> +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ + +#ifndef _ASM_NIOS2_GPIO_H_ +#define _ASM_NIOS2_GPIO_H_ + +#ifdef CONFIG_SYS_GPIO_BASE +#include <asm/io.h> + +static inline int gpio_direction_input (unsigned gpio) +{ +writel (1 ,CONFIG_SYS_GPIO_BASE + (gpio <<2 )); +return 0 ; +} + +static inline int gpio_direction_output (unsigned gpio,int value) +{ +writel (value ?3 :2 ,CONFIG_SYS_GPIO_BASE + (gpio <<2 )); +return 0 ; +} + +static inline int gpio_get_value (unsigned gpio) +{ +return readl (CONFIG_SYS_GPIO_BASE + (gpio <<2 )); +} + +static inline void gpio_set_value (unsigned gpio,int value) +{ +writel (value ?3 :2 ,CONFIG_SYS_GPIO_BASE + (gpio <<2 )); +} +#else +extern int gpio_direction_input (unsigned gpio); +extern int gpio_direction_output (unsigned gpio,int value); +extern int gpio_get_value (unsigned gpio); +extern void gpio_set_value (unsigned gpio,int value); +#endif /* CONFIG_SYS_GPIO_BASE */ + +#endif /* _ASM_NIOS2_GPIO_H_ */
Signature · 1 line
1.6.6.1