Merge branch 'ib-qcom-acpi' into devel
authorLinus Walleij <linus.walleij@linaro.org>
Wed, 12 Jun 2019 07:19:31 +0000 (09:19 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 12 Jun 2019 07:19:31 +0000 (09:19 +0200)
1  2 
drivers/pinctrl/qcom/pinctrl-sdm845.c

index e4e5acade086c6459898a11b6c43b6bc28f9629a,98a438dba71175ba9a61cc74fe749fa7545e7fdf..06790e5ece6ca9d4c85f9860af0dd8e4dcd5735b
@@@ -1275,8 -1275,13 +1276,12 @@@ static const struct msm_pingroup sdm845
        SDC_QDSD_PINGROUP(sdc2_clk, 0x99a000, 14, 6),
        SDC_QDSD_PINGROUP(sdc2_cmd, 0x99a000, 11, 3),
        SDC_QDSD_PINGROUP(sdc2_data, 0x99a000, 9, 0),
 -      UFS_RESET(ufs_reset, 0x99f000),
  };
  
+ static const int sdm845_acpi_reserved_gpios[] = {
+       0, 1, 2, 3, 81, 82, 83, 84, -1
+ };
  static const struct msm_pinctrl_soc_data sdm845_pinctrl = {
        .pins = sdm845_pins,
        .npins = ARRAY_SIZE(sdm845_pins),
        .nfunctions = ARRAY_SIZE(sdm845_functions),
        .groups = sdm845_groups,
        .ngroups = ARRAY_SIZE(sdm845_groups),
 -      .ngpios = 150,
 +      .ngpios = 151,
  };
  
+ static const struct msm_pinctrl_soc_data sdm845_acpi_pinctrl = {
+       .pins = sdm845_pins,
+       .npins = ARRAY_SIZE(sdm845_pins),
+       .groups = sdm845_groups,
+       .ngroups = ARRAY_SIZE(sdm845_groups),
+       .reserved_gpios = sdm845_acpi_reserved_gpios,
+       .ngpios = 150,
+ };
  static int sdm845_pinctrl_probe(struct platform_device *pdev)
  {
-       return msm_pinctrl_probe(pdev, &sdm845_pinctrl);
+       int ret;
+       if (pdev->dev.of_node) {
+               ret = msm_pinctrl_probe(pdev, &sdm845_pinctrl);
+       } else if (has_acpi_companion(&pdev->dev)) {
+               ret = msm_pinctrl_probe(pdev, &sdm845_acpi_pinctrl);
+       } else {
+               dev_err(&pdev->dev, "DT and ACPI disabled\n");
+               return -EINVAL;
+       }
+       return ret;
  }
  
+ #if CONFIG_ACPI
+ static const struct acpi_device_id sdm845_pinctrl_acpi_match[] = {
+       { "QCOM0217"},
+       { },
+ };
+ MODULE_DEVICE_TABLE(acpi, sdm845_pinctrl_acpi_match);
+ #endif
  static const struct of_device_id sdm845_pinctrl_of_match[] = {
        { .compatible = "qcom,sdm845-pinctrl", },
        { },