提交 c15be8cc 编写于 作者: N Nick Bulleid 提交者: Zheng Zengkai

Add ability to export gpio used by gpio-poweroff

raspberrypi inclusion
category: feature
bugzilla: 50432

--------------------------------
Signed-off-by: NNick Bulleid <nedbulleid@fastmail.com>

Added export feature to gpio-poweroff documentation
Signed-off-by: NNick Bulleid <nedbulleid@fastmail.com>
Signed-off-by: NFang Yafen <yafen@iscas.ac.cn>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 470f9247
...@@ -31,6 +31,7 @@ Optional properties: ...@@ -31,6 +31,7 @@ Optional properties:
- inactive-delay-ms: Delay (default 100) to wait after driving gpio inactive - inactive-delay-ms: Delay (default 100) to wait after driving gpio inactive
- timeout-ms: Time to wait before asserting a WARN_ON(1). If nothing is - timeout-ms: Time to wait before asserting a WARN_ON(1). If nothing is
specified, 3000 ms is used. specified, 3000 ms is used.
- export : Export the GPIO line to the sysfs system
Examples: Examples:
......
...@@ -51,6 +51,7 @@ static int gpio_poweroff_probe(struct platform_device *pdev) ...@@ -51,6 +51,7 @@ static int gpio_poweroff_probe(struct platform_device *pdev)
bool input = false; bool input = false;
enum gpiod_flags flags; enum gpiod_flags flags;
bool force = false; bool force = false;
bool export = false;
/* If a pm_power_off function has already been added, leave it alone */ /* If a pm_power_off function has already been added, leave it alone */
force = of_property_read_bool(pdev->dev.of_node, "force"); force = of_property_read_bool(pdev->dev.of_node, "force");
...@@ -76,6 +77,12 @@ static int gpio_poweroff_probe(struct platform_device *pdev) ...@@ -76,6 +77,12 @@ static int gpio_poweroff_probe(struct platform_device *pdev)
if (IS_ERR(reset_gpio)) if (IS_ERR(reset_gpio))
return PTR_ERR(reset_gpio); return PTR_ERR(reset_gpio);
export = of_property_read_bool(pdev->dev.of_node, "export");
if (export) {
gpiod_export(reset_gpio, false);
gpiod_export_link(&pdev->dev, "poweroff-gpio", reset_gpio);
}
pm_power_off = &gpio_poweroff_do_poweroff; pm_power_off = &gpio_poweroff_do_poweroff;
return 0; return 0;
} }
...@@ -85,6 +92,8 @@ static int gpio_poweroff_remove(struct platform_device *pdev) ...@@ -85,6 +92,8 @@ static int gpio_poweroff_remove(struct platform_device *pdev)
if (pm_power_off == &gpio_poweroff_do_poweroff) if (pm_power_off == &gpio_poweroff_do_poweroff)
pm_power_off = NULL; pm_power_off = NULL;
gpiod_unexport(reset_gpio);
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册