[PATCH v2 05/11] SSBI: Convert SSBI to device tree
Stephen Boyd
sboyd at codeaurora.org
Tue Mar 12 16:46:28 EDT 2013
On 03/12/13 11:41, David Brown wrote:
> @@ -261,56 +263,13 @@ int msm_ssbi_write(struct device *dev, u16 addr, u8 *buf, int len)
> }
> EXPORT_SYMBOL_GPL(msm_ssbi_write);
>
> -static int msm_ssbi_add_slave(struct msm_ssbi *ssbi,
> - const struct msm_ssbi_slave_info *slave)
> -{
> - struct platform_device *slave_pdev;
> - int ret;
> -
> - if (ssbi->slave) {
> - pr_err("slave already attached??\n");
> - return -EBUSY;
> - }
> -
> - slave_pdev = platform_device_alloc(slave->name, -1);
> - if (!slave_pdev) {
> - pr_err("cannot allocate pdev for slave '%s'", slave->name);
> - ret = -ENOMEM;
> - goto err;
> - }
> -
> - slave_pdev->dev.parent = ssbi->dev;
> - slave_pdev->dev.platform_data = slave->platform_data;
> -
> - ret = platform_device_add(slave_pdev);
> - if (ret) {
> - pr_err("cannot add slave platform device for '%s'\n",
> - slave->name);
> - goto err;
> - }
> -
> - ssbi->slave = &slave_pdev->dev;
> - return 0;
> -
> -err:
> - if (slave_pdev)
> - platform_device_put(slave_pdev);
> - return ret;
> -}
> -
> static int msm_ssbi_probe(struct platform_device *pdev)
> {
> - const struct msm_ssbi_platform_data *pdata = pdev->dev.platform_data;
Now that all this code is gone do we have a user of the
msm_ssbi_platform_data struct? Why not remove it from the header file?
If you remove it from the header you can probably move the enum for
controller_type into this file too.
> @@ -334,7 +293,25 @@ static int msm_ssbi_probe(struct platform_device *pdev)
> ssbi->dev = &pdev->dev;
> platform_set_drvdata(pdev, ssbi);
>
> - ssbi->controller_type = pdata->controller_type;
> + type = of_get_property(np, "qcom,controller-type", NULL);
> + if (type == NULL) {
> + pr_err("Missing qcom,controller-type property\n");
This could be dev_err() considering you use dev_info() below.
> + ret = -EINVAL;
> + goto err_ssbi_controller;
> + }
> + dev_info(&pdev->dev, "SSBI controller type: '%s'\n", type);
> + if (strcmp(type, "ssbi") == 0)
> + ssbi->controller_type = MSM_SBI_CTRL_SSBI;
> + else if (strcmp(type, "ssbi2") == 0)
> + ssbi->controller_type = MSM_SBI_CTRL_SSBI2;
> + else if (strcmp(type, "pmic-arbiter") == 0)
> + ssbi->controller_type = MSM_SBI_CTRL_PMIC_ARBITER;
> + else {
> + pr_err("Unknown qcom,controller-type\n");
dev_err()?
> @@ -370,12 +347,18 @@ static int msm_ssbi_remove(struct platform_device *pdev)
> return 0;
> }
>
> +static struct of_device_id ssbi_match_table[] = {
const?
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the linux-arm-kernel
mailing list