static int anx7816_parse_dt( struct device *dev, struct anx7816_platform_data *pdata) { int rc = 0; struct device_node *np = dev->of_node; pdata->gpio_p_dwn = of_get_named_gpio_flags( np, "anx7808-pdown-gpio", 0, NULL); pdata->gpio_reset = of_get_named_gpio_flags( np, "anx7808-reset-gpio", 0, NULL); pdata->gpio_cbl_det = of_get_named_gpio_flags( np, "anx7808-cbl-gpio", 0, NULL); pr_info(KERN_INFO "%s gpio p_dwn : %d, reset : %d, gpio_cbl_det %d\n", LOG_TAG, pdata->gpio_p_dwn, pdata->gpio_reset, pdata->gpio_cbl_det); /* * if "external-ldo-control" property is not exist, we * assume that it is used in board. * if don't use external ldo control, * please use "external-ldo-control=<0>" in dtsi */ rc = of_property_read_u32(np, "analogix,external-ldo-control", &pdata->external_ldo_control); if (rc == -EINVAL) pdata->external_ldo_control = 1; if (pdata->external_ldo_control) { pdata->gpio_v10_ctrl = of_get_named_gpio_flags( np, "anx7808-v10-gpio", 0, NULL); pr_info(KERN_INFO "%s gpio_v10_ctrl %d avdd33-en-gpio %d\n", LOG_TAG, pdata->gpio_v10_ctrl, pdata->gpio_v33_ctrl); } if (anx7816_regulator_configure(dev, pdata) < 0) { pr_err("%s %s: parsing dt for anx7816 is failed.\n", LOG_TAG, __func__); return rc; } /* connects function nodes which are not provided with dts */ pdata->avdd_power = slimport7816_avdd_power; pdata->dvdd_power = slimport7816_dvdd_power; return 0; }
static int anx7816_parse_dt( struct device *dev, struct anx7816_platform_data *pdata) { int rc = 0; struct device_node *np = dev->of_node; #ifdef CONFIG_SLIMPORT_DYNAMIC_HPD struct platform_device *sp_pdev = NULL; struct device_node *sp_tx_node = NULL; #endif pdata->gpio_p_dwn = of_get_named_gpio_flags( np, "analogix,p-dwn-gpio", 0, NULL); pdata->gpio_reset = of_get_named_gpio_flags( np, "analogix,reset-gpio", 0, NULL); pdata->gpio_int = of_get_named_gpio_flags( np, "analogix,irq-gpio", 0, NULL); pdata->gpio_cbl_det = of_get_named_gpio_flags( np, "analogix,cbl-det-gpio", 0, NULL); printk(KERN_INFO "%s gpio p_dwn : %d, reset : %d, irq : %d, gpio_cbl_det %d\n", LOG_TAG, pdata->gpio_p_dwn, pdata->gpio_reset, pdata->gpio_int, pdata->gpio_cbl_det); /* * if "lge,external-ldo-control" property is not exist, we * assume that it is used in board. * lgps11 don't use external ldo control, * please use "lge,external-ldo-control=<0>" in dtsi */ rc = of_property_read_u32(np, "lge,external-ldo-control", &pdata->external_ldo_control); if (rc == -EINVAL) pdata->external_ldo_control = 1; if (pdata->external_ldo_control) { pdata->gpio_v10_ctrl = of_get_named_gpio_flags( np, "analogix,v10-ctrl-gpio", 0, NULL); pdata->gpio_v33_ctrl = of_get_named_gpio_flags( np, "analogix,v33-ctrl-gpio", 0, NULL); printk(KERN_INFO "%s gpio_v10_ctrl %d avdd33-en-gpio %d\n", LOG_TAG, pdata->gpio_v10_ctrl, pdata->gpio_v33_ctrl); } #ifdef CONFIG_SLIMPORT_DYNAMIC_HPD /* parse phandle for hdmi tx */ sp_tx_node = of_parse_phandle(np, "qcom,hdmi-tx-map", 0); if (!sp_tx_node) { pr_err("%s %s: can't find hdmi phandle\n", LOG_TAG, __func__); return -ENODEV; } sp_pdev = of_find_device_by_node(sp_tx_node); if (!sp_pdev) { pr_err("%s %s: can't find the device by node\n", LOG_TAG, __func__); return -ENODEV; } pr_info("%s %s : sp_pdev [0X%x] to pdata->pdev\n", LOG_TAG, __func__, (unsigned int)sp_pdev); pdata->hdmi_pdev = sp_pdev; #endif if (anx7816_regulator_configure(dev, pdata) < 0) { pr_err("%s %s: parsing dt for anx7816 is failed.\n", LOG_TAG, __func__); return rc; } /* connects function nodes which are not provided with dts */ pdata->avdd_power = slimport7816_avdd_power; pdata->dvdd_power = slimport7816_dvdd_power; #ifdef USE_HDMI_SWITCH hdmi_switch_gpio = of_get_named_gpio_flags( np, "analogix,hdmi-switch-gpio", 0, NULL); printk(KERN_INFO "%s hdmi_switch_gpio : %d \n", LOG_TAG, hdmi_switch_gpio); #endif return 0; }
static int anx7816_parse_dt( struct device *dev, struct anx7816_platform_data *pdata, struct anx7816_data *anx7816) { int rc = 0; struct device_node *np = dev->of_node; struct platform_device *hdmi_pdev = NULL; // slimport changes struct device_node *hdmi_tx_node = NULL; // slimport changes pdata->gpio_p_dwn = of_get_named_gpio_flags( np, "analogix,p-dwn-gpio", 0, NULL); pdata->gpio_reset = of_get_named_gpio_flags( np, "analogix,reset-gpio", 0, NULL); pdata->gpio_cbl_det = of_get_named_gpio_flags( np, "analogix,cbl-det-gpio", 0, NULL); printk(KERN_INFO "%s gpio p_dwn : %d, reset : %d, gpio_cbl_det %d\n", LOG_TAG, pdata->gpio_p_dwn, pdata->gpio_reset, pdata->gpio_cbl_det); /* * if "external-ldo-control" property is not exist, we * assume that it is used in board. * if don't use external ldo control, * please use "external-ldo-control=<0>" in dtsi */ rc = of_property_read_u32(np, "analogix,external-ldo-control", &pdata->external_ldo_control); if (rc == -EINVAL) pdata->external_ldo_control = 1; if (pdata->external_ldo_control) { pdata->gpio_v10_ctrl = of_get_named_gpio_flags( np, "analogix,v10-ctrl-gpio", 0, NULL); pdata->gpio_v33_ctrl = of_get_named_gpio_flags( np, "analogix,v33-ctrl-gpio", 0, NULL); printk(KERN_INFO "%s gpio_v10_ctrl %d avdd33-en-gpio %d\n", LOG_TAG, pdata->gpio_v10_ctrl, pdata->gpio_v33_ctrl); } if (anx7816_regulator_configure(dev, pdata) < 0) { pr_err("%s %s: parsing dt for anx7816 is failed.\n", LOG_TAG, __func__); return rc; } /* connects function nodes which are not provided with dts */ // pdata->avdd_power = slimport7816_avdd_power; // pdata->dvdd_power = slimport7816_dvdd_power; // Slimport changes /* parse phandle for hdmi tx handle */ hdmi_tx_node = of_parse_phandle(np, "analogix,hdmi-tx-map", 0); if (!hdmi_tx_node) { pr_err("can't find hdmi phandle\n"); rc = -EINVAL; return rc; } hdmi_pdev = of_find_device_by_node(hdmi_tx_node); if (!hdmi_pdev) { pr_err("can't find the deivce by node\n"); rc = -EINVAL; return rc; } anx7816->hdmi_pdev = hdmi_pdev; return 0; }