From 557c24d082b6ecb9bfe5407b77ae43fa7650a5dc Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Fri, 17 Feb 2023 11:02:20 +0000 Subject: [PATCH] add eDP LVDS PCIE WIFI6 --- kernel/drivers/misc/nkio/nk_io_core.c | 102 +++++++++++++++++++++++++++------------------------ 1 files changed, 54 insertions(+), 48 deletions(-) diff --git a/kernel/drivers/misc/nkio/nk_io_core.c b/kernel/drivers/misc/nkio/nk_io_core.c index e084fb3..b9db2bd 100755 --- a/kernel/drivers/misc/nkio/nk_io_core.c +++ b/kernel/drivers/misc/nkio/nk_io_core.c @@ -61,11 +61,8 @@ { struct device_node *node = pdev->dev.of_node; struct nk_io_pdata *pdata; - int gpio0, gpio1, gpio2, gpio3, reset_pin, ch342_reset; int ret; - int lvds_index; - int i=0; - static int lvds_gpio[4] ; + enum of_gpio_flags flags; @@ -97,7 +94,7 @@ goto err; } } - +#if 0 //vcc3_io_en_gpio ret = of_get_named_gpio_flags(node, "vcc3_io_en_gpio", 0, &flags); if (ret < 0) { @@ -117,7 +114,7 @@ goto err; } } - +#endif //vcc_12v_io ret = of_get_named_gpio_flags(node, "vcc_12v_io", 0, &flags); if (ret < 0) { @@ -287,7 +284,24 @@ printk("%s() gpio_direction_output hp_en_gpio set ERROR\n", __FUNCTION__); } } - +#if 0 + //pcie_power_en_gpio + ret = of_get_named_gpio_flags(node, "pcie_power_en_gpio", 0, &flags); + if (ret < 0) { + printk("%s() Can not read property pcie_power_en_gpio\n", __FUNCTION__); + } else { + pdata->pcie_power_en_gpio = ret; + + ret = devm_gpio_request(&pdev->dev, pdata->pcie_power_en_gpio, "pcie_power_en_gpio"); + if(ret < 0){ + printk("%s() devm_gpio_request pcie_power_en_gpio request ERROR\n", __FUNCTION__); + } + ret = gpio_direction_output(pdata->pcie_power_en_gpio,1); + if(ret < 0){ + printk("%s() gpio_direction_output pcie_power_en_gpio set ERROR\n", __FUNCTION__); + } + } +#endif //wifi_power_en_gpio ret = of_get_named_gpio_flags(node, "wifi_power_en_gpio", 0, &flags); if (ret < 0) { @@ -377,24 +391,42 @@ } } - //ch342_enable-gpio; - ret = of_get_named_gpio_flags(node, "ch342_power", 0, &flags); + //lcd_bk_en_gpio; + ret = of_get_named_gpio_flags(node, "lcd_bk_en_gpio", 0, &flags); if (ret < 0) { - printk("%s() Can not read property ch342_gpio\n", __FUNCTION__); + printk("%s() Can not read property lcd_bk_en_gpio\n", __FUNCTION__); } else { - pdata->ch342_power = ret; + pdata->lcd_bk_en_gpio = ret; - ret = devm_gpio_request(&pdev->dev, pdata->ch342_power, "ch342_power"); + ret = devm_gpio_request(&pdev->dev, pdata->lcd_bk_en_gpio, "lcd_bk_en_gpio"); if(ret < 0){ - printk("%s() devm_gpio_request ch342_power request ERROR\n", __FUNCTION__); + printk("%s() devm_gpio_request lcd_bk_en_gpio request ERROR\n", __FUNCTION__); } - ret = gpio_direction_output(pdata->ch342_power,1); + ret = gpio_direction_output(pdata->lcd_bk_en_gpio,1); if(ret < 0){ - printk("%s() gpio_direction_input ch342_power set ERROR\n", __FUNCTION__); + printk("%s() gpio_direction_output lcd_bk_en_gpio set ERROR\n", __FUNCTION__); } } -*/ + + //lcd_pwblk_gpio; + ret = of_get_named_gpio_flags(node, "lcd_pwblk_gpio", 0, &flags); + if (ret < 0) { + printk("%s() Can not read property lcd_pwblk_gpio\n", __FUNCTION__); + } else { + pdata->lcd_pwblk_gpio = ret; + + ret = devm_gpio_request(&pdev->dev, pdata->lcd_pwblk_gpio, "lcd_pwblk_gpio"); + if(ret < 0){ + printk("%s() devm_gpio_request lcd_pwblk_gpio request ERROR\n", __FUNCTION__); + } + + ret = gpio_direction_output(pdata->lcd_pwblk_gpio,1); + if(ret < 0){ + printk("%s() gpio_direction_output lcd_pwblk_gpio set ERROR\n", __FUNCTION__); + } + } + //edp_set_pixel-s ret = of_get_named_gpio_flags(node, "edp_reset", 0, &flags); @@ -498,6 +530,12 @@ gpio_direction_output(gpio2, lvds_gpio[2]); gpio_direction_output(gpio3, lvds_gpio[3]); + + gpio_direction_output(reset_pin, 0); + usleep_range(80000, 100000); + gpio_direction_output(reset_pin, 1); + usleep_range(80000, 100000); +*/ printk(" #######nk_io_control_probe end####### \n"); return 0; @@ -542,38 +580,6 @@ static int nk_io_control_resume(struct platform_device *pdev) { - int ret,reset_pin; - printk("nk_io resume !!!!\n"); - ret = gpio_get_value(120); - -#if 0 - gpio_set_value(8,1); - ret = gpio_get_value(8); - printk("vcc12v gpio value : %d\n",ret); -#endif -#if 0 - gpio_set_value(15,1); - ret = gpio_get_value(15); - printk("edp_en gpio value : %d\n",ret); - gpio_set_value(21,1); - ret = gpio_get_value(21); - printk("hub_host3_5v_gpio value : %d\n",ret); -#endif -#if 0 - usleep_range(80000, 100000); - gpio_set_value(120,0); -// gpio_direction_output(120, 0); - usleep_range(80000, 100000); - ret = gpio_get_value(120); - printk("edp_reset gpio value : %d\n",ret); -// gpio_direction_output(120, 1); - gpio_set_value(120,1); - usleep_range(80000, 100000); - ret = gpio_get_value(120); - printk("edp_reset gpio value : %d\n",ret); -#endif - //enable = 1; - //LED_SET(11); return 0; } -- Gitblit v1.6.2