static int bt_power_populate_dt_pinfo(struct platform_device *pdev) { int rc; BT_PWR_DBG(""); if (!bt_power_pdata) return -ENOMEM; if (pdev->dev.of_node) { #ifdef USE_GPIO_EXPANDER_BT_EN rc = of_property_read_u32(pdev->dev.of_node, "qca,bt-reset-gpio", &bt_power_pdata->bt_gpio_sys_rst); BT_PWR_DBG("GPIO_EXPANDER rc : %d", rc); #else bt_power_pdata->bt_gpio_sys_rst = of_get_named_gpio(pdev->dev.of_node, "qca,bt-reset-gpio", 0); #endif if (bt_power_pdata->bt_gpio_sys_rst < 0) { BT_PWR_ERR("bt-reset-gpio not provided in device tree"); return bt_power_pdata->bt_gpio_sys_rst; } rc = bt_dt_parse_vreg_info(&pdev->dev, &bt_power_pdata->bt_vdd_io, "qca,bt-vdd-io"); if (rc < 0) return rc; rc = bt_dt_parse_vreg_info(&pdev->dev, &bt_power_pdata->bt_vdd_pa, "qca,bt-vdd-pa"); if (rc < 0) return rc; rc = bt_dt_parse_vreg_info(&pdev->dev, &bt_power_pdata->bt_vdd_ldo, "qca,bt-vdd-ldo"); if (rc < 0) return rc; rc = bt_dt_parse_vreg_info(&pdev->dev, &bt_power_pdata->bt_chip_pwd, "qca,bt-chip-pwd"); if (rc < 0) return rc; } bt_power_pdata->bt_power_setup = bluetooth_power; return 0; }
static int bt_power_populate_dt_pinfo(struct platform_device *pdev) { int rc; BT_PWR_DBG(""); if (!bt_power_pdata) return -ENOMEM; if (pdev->dev.of_node) { bt_power_pdata->bt_gpio_sys_rst = of_get_named_gpio(pdev->dev.of_node, "qca,bt-reset-gpio", 0); if (bt_power_pdata->bt_gpio_sys_rst < 0) { BT_PWR_ERR("bt-reset-gpio not provided in device tree"); return bt_power_pdata->bt_gpio_sys_rst; } rc = bt_dt_parse_vreg_info(&pdev->dev, &bt_power_pdata->bt_vdd_io, "qca,bt-vdd-io"); if (rc < 0) return rc; rc = bt_dt_parse_vreg_info(&pdev->dev, &bt_power_pdata->bt_vdd_pa, "qca,bt-vdd-pa"); if (rc < 0) return rc; rc = bt_dt_parse_vreg_info(&pdev->dev, &bt_power_pdata->bt_vdd_ldo, "qca,bt-vdd-ldo"); if (rc < 0) return rc; rc = bt_dt_parse_vreg_info(&pdev->dev, &bt_power_pdata->bt_chip_pwd, "qca,bt-chip-pwd"); if (rc < 0) return rc; } bt_power_pdata->bt_power_setup = bluetooth_power; return 0; }