pinctrl-names = "lcdc", "sleep";
pinctrl-0 = <&lcdc0_lcdc_d>;
pinctrl-1 = <&lcdc0_lcdc_gpio>;
- lcdc-gpios = <&gpio2 GPIO_B4 GPIO_ACTIVE_LOW
- &gpio2 GPIO_B5 GPIO_ACTIVE_LOW
- &gpio2 GPIO_B6 GPIO_ACTIVE_LOW
- &gpio2 GPIO_B7 GPIO_ACTIVE_LOW
- &gpio2 GPIO_C0 GPIO_ACTIVE_LOW
- &gpio2 GPIO_C1 GPIO_ACTIVE_LOW
- &gpio2 GPIO_C2 GPIO_ACTIVE_LOW
- &gpio2 GPIO_C3 GPIO_ACTIVE_LOW>;
};
&lcdc {
pinctrl-names = "lcdc", "sleep";
pinctrl-0 = <&lcdc0_lcdc_d>;
pinctrl-1 = <&lcdc0_lcdc_gpio>;
- lcdc-gpios = <&gpio2 GPIO_B4 GPIO_ACTIVE_LOW
- &gpio2 GPIO_B5 GPIO_ACTIVE_LOW
- &gpio2 GPIO_B6 GPIO_ACTIVE_LOW
- &gpio2 GPIO_B7 GPIO_ACTIVE_LOW
- &gpio2 GPIO_C0 GPIO_ACTIVE_LOW
- &gpio2 GPIO_C1 GPIO_ACTIVE_LOW
- &gpio2 GPIO_C2 GPIO_ACTIVE_LOW
- &gpio2 GPIO_C3 GPIO_ACTIVE_LOW>;
};
&lcdc {
pinctrl-names = "lcdc", "sleep";
pinctrl-0 = <&lcdc0_lcdc_d>;
pinctrl-1 = <&lcdc0_lcdc_gpio>;
- lcdc-gpios = <&gpio2 GPIO_B4 GPIO_ACTIVE_LOW
- &gpio2 GPIO_B5 GPIO_ACTIVE_LOW
- &gpio2 GPIO_B6 GPIO_ACTIVE_LOW
- &gpio2 GPIO_B7 GPIO_ACTIVE_LOW
- &gpio2 GPIO_C0 GPIO_ACTIVE_LOW
- &gpio2 GPIO_C1 GPIO_ACTIVE_LOW
- &gpio2 GPIO_C2 GPIO_ACTIVE_LOW
- &gpio2 GPIO_C3 GPIO_ACTIVE_LOW>;
};
&lcdc {
#include <linux/rockchip/grf.h>
#include "rk31xx_lvds.h"
-#ifdef CONFIG_OF
-#include <linux/of.h>
-#include <linux/of_platform.h>
-#include <linux/of_gpio.h>
-#endif
-
#define grf_readl(offset) readl_relaxed(RK_GRF_VIRT + offset)
#define grf_writel(v,offset) \
return 0;
}
-static int rk31xx_lvds_pull_down_io(void)
-{
- int gpio;
- int i = 0, gpio_nums = 0, val = 0;
- enum of_gpio_flags flags;
- char gpio_name[20] = {0};
- struct rk_lvds_device *lvds = rk31xx_lvds;
- static bool pull_down = false;
-
- if (unlikely(!lvds) || !lvds->sys_state)
- return 0;
-
- if (pull_down)
- return 0;
-
- gpio_nums = of_gpio_named_count(lvds->dev->of_node, "lcdc-gpios");
- if (gpio_nums > 0) {
- for (i = 0; i < gpio_nums; i++) {
- gpio = of_get_named_gpio_flags(lvds->dev->of_node,
- "lcdc-gpios", i, &flags);
- if (!gpio_is_valid(gpio))
- continue;
- val = !(flags & OF_GPIO_ACTIVE_LOW);
- sprintf(gpio_name, "lcdc-gpio%d", i);
- if (!gpio_request(gpio, gpio_name)) {
- gpio_direction_output(gpio, val);
- msleep(1);
- } else {
- dev_err(lvds->dev, "request %s gpio fail!\n",
- gpio_name);
- }
- }
- }
- pull_down = true;
-
- return 0;
-}
-
static int rk31xx_lvds_disable(void)
{
struct rk_lvds_device *lvds = rk31xx_lvds;
pinctrl_select_state(lvds->pins->p,
lvds->pins->sleep_state);
}
- rk31xx_lvds_pull_down_io();
}
#endif
lvds->sys_state = false;