mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
jz4740: GPIO: Add functions to put function pins to high-z and to restore their
function. We want to put function pins to high-z to decrease power leakage during suspend.
This commit is contained in:
@@ -19,13 +19,12 @@
|
||||
#include <linux/types.h>
|
||||
|
||||
enum jz_gpio_function {
|
||||
JZ_GPIO_FUNC_NONE,
|
||||
JZ_GPIO_FUNC1,
|
||||
JZ_GPIO_FUNC2,
|
||||
JZ_GPIO_FUNC3,
|
||||
JZ_GPIO_FUNC_NONE,
|
||||
JZ_GPIO_FUNC1,
|
||||
JZ_GPIO_FUNC2,
|
||||
JZ_GPIO_FUNC3,
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Usually a driver for a SoC component has to request several gpio pins and
|
||||
configure them as funcion pins.
|
||||
@@ -39,13 +38,13 @@ enum jz_gpio_function {
|
||||
|
||||
inside the probe function:
|
||||
|
||||
ret = jz_gpio_bulk_request(i2c_pins, ARRAY_SIZE(i2c_pins));
|
||||
if (ret) {
|
||||
ret = jz_gpio_bulk_request(i2c_pins, ARRAY_SIZE(i2c_pins));
|
||||
if (ret) {
|
||||
...
|
||||
|
||||
inside the remove function:
|
||||
|
||||
jz_gpio_bulk_free(i2c_pins, ARRAY_SIZE(i2c_pins));
|
||||
jz_gpio_bulk_free(i2c_pins, ARRAY_SIZE(i2c_pins));
|
||||
|
||||
|
||||
*/
|
||||
@@ -56,13 +55,15 @@ struct jz_gpio_bulk_request {
|
||||
};
|
||||
|
||||
#define JZ_GPIO_BULK_PIN(pin) { \
|
||||
.gpio = JZ_GPIO_ ## pin, \
|
||||
.name = #pin, \
|
||||
.function = JZ_GPIO_FUNC_ ## pin \
|
||||
.gpio = JZ_GPIO_ ## pin, \
|
||||
.name = #pin, \
|
||||
.function = JZ_GPIO_FUNC_ ## pin \
|
||||
}
|
||||
|
||||
int jz_gpio_bulk_request(const struct jz_gpio_bulk_request *request, size_t num);
|
||||
void jz_gpio_bulk_free(const struct jz_gpio_bulk_request *request, size_t num);
|
||||
void jz_gpio_bulk_suspend(const struct jz_gpio_bulk_request *request, size_t num);
|
||||
void jz_gpio_bulk_resume(const struct jz_gpio_bulk_request *request, size_t num);
|
||||
void jz_gpio_enable_pullup(unsigned gpio);
|
||||
void jz_gpio_disable_pullup(unsigned gpio);
|
||||
int jz_gpio_set_function(int gpio, enum jz_gpio_function function);
|
||||
@@ -192,7 +193,7 @@ int jz_gpio_set_function(int gpio, enum jz_gpio_function function);
|
||||
#define JZ_GPIO_FUNC_MEM_ADDR14 JZ_GPIO_FUNC1
|
||||
#define JZ_GPIO_FUNC_MEM_ADDR15 JZ_GPIO_FUNC1
|
||||
#define JZ_GPIO_FUNC_MEM_ADDR16 JZ_GPIO_FUNC1
|
||||
#define JZ_GPIO_FUNC_MEM_CLS JZ_GPIO_FUNC1
|
||||
#define JZ_GPIO_FUNC_MEM_CLS JZ_GPIO_FUNC1
|
||||
#define JZ_GPIO_FUNC_MEM_SPL JZ_GPIO_FUNC1
|
||||
#define JZ_GPIO_FUNC_MEM_DCS JZ_GPIO_FUNC1
|
||||
#define JZ_GPIO_FUNC_MEM_RAS JZ_GPIO_FUNC1
|
||||
|
||||
Reference in New Issue
Block a user