dev_set_drvdata(&pdev->dev, clkdata);
  
        return 0;
 -
 -err_fll:
 -      clk_unregister(clkdata->fll);
 -err_xtal:
 -      clk_unregister(clkdata->xtal);
 -      return ret;
  }
  
- static int __devexit wm831x_clk_remove(struct platform_device *pdev)
+ static int wm831x_clk_remove(struct platform_device *pdev)
  {
 -      struct wm831x_clk *clkdata = dev_get_drvdata(&pdev->dev);
 -
 -      clk_unregister(clkdata->clkout);
 -      clk_unregister(clkdata->fll);
 -      clk_unregister(clkdata->xtal);
 -
        return 0;
  }
  
 
        .map    = em_gio_irq_domain_map,
  };
  
- static int __devinit em_gio_probe(struct platform_device *pdev)
 -static int __devinit em_gio_irq_domain_init(struct em_gio_priv *p)
 -{
 -      struct platform_device *pdev = p->pdev;
 -      struct gpio_em_config *pdata = pdev->dev.platform_data;
 -
 -      p->irq_base = irq_alloc_descs(pdata->irq_base, 0,
 -                                    pdata->number_of_pins, numa_node_id());
 -      if (p->irq_base < 0) {
 -              dev_err(&pdev->dev, "cannot get irq_desc\n");
 -              return p->irq_base;
 -      }
 -      pr_debug("gio: hw base = %d, nr = %d, sw base = %d\n",
 -               pdata->gpio_base, pdata->number_of_pins, p->irq_base);
 -
 -      p->irq_domain = irq_domain_add_legacy(pdev->dev.of_node,
 -                                            pdata->number_of_pins,
 -                                            p->irq_base, 0,
 -                                            &em_gio_irq_domain_ops, p);
 -      if (!p->irq_domain) {
 -              irq_free_descs(p->irq_base, pdata->number_of_pins);
 -              return -ENXIO;
 -      }
 -
 -      return 0;
 -}
 -
 -static void em_gio_irq_domain_cleanup(struct em_gio_priv *p)
 -{
 -      struct gpio_em_config *pdata = p->pdev->dev.platform_data;
 -
 -      irq_free_descs(p->irq_base, pdata->number_of_pins);
 -      /* FIXME: irq domain wants to be freed! */
 -}
 -
+ static int em_gio_probe(struct platform_device *pdev)
  {
        struct gpio_em_config *pdata = pdev->dev.platform_data;
        struct em_gio_priv *p;
 
  
  /*----------------------------------------------------------------------*/
  
 -#ifdef CONFIG_I2C
 +#if IS_ENABLED(CONFIG_I2C)
  
- static int __devinit mcp230xx_probe(struct i2c_client *client,
+ static int mcp230xx_probe(struct i2c_client *client,
                                    const struct i2c_device_id *id)
  {
        struct mcp23s08_platform_data *pdata;
 
        return 0;
  }
  
 -static void stmpe_gpio_irq_remove(struct stmpe_gpio *stmpe_gpio)
 +void stmpe_gpio_irq_unmap(struct irq_domain *d, unsigned int virq)
  {
 -      int base = stmpe_gpio->irq_base;
 -      int irq;
 -
 -      for (irq = base; irq < base + stmpe_gpio->chip.ngpio; irq++) {
  #ifdef CONFIG_ARM
 -              set_irq_flags(irq, 0);
 +      set_irq_flags(virq, 0);
  #endif
 -              irq_set_chip_and_handler(irq, NULL, NULL);
 -              irq_set_chip_data(irq, NULL);
 +      irq_set_chip_and_handler(virq, NULL, NULL);
 +      irq_set_chip_data(virq, NULL);
 +}
 +
 +static const struct irq_domain_ops stmpe_gpio_irq_simple_ops = {
 +      .unmap = stmpe_gpio_irq_unmap,
 +      .map = stmpe_gpio_irq_map,
 +      .xlate = irq_domain_xlate_twocell,
 +};
 +
- static int __devinit stmpe_gpio_irq_init(struct stmpe_gpio *stmpe_gpio)
++static int stmpe_gpio_irq_init(struct stmpe_gpio *stmpe_gpio)
 +{
 +      int base = stmpe_gpio->irq_base;
 +
 +      stmpe_gpio->domain = irq_domain_add_simple(NULL,
 +                              stmpe_gpio->chip.ngpio, base,
 +                              &stmpe_gpio_irq_simple_ops, stmpe_gpio);
 +      if (!stmpe_gpio->domain) {
 +              dev_err(stmpe_gpio->dev, "failed to create irqdomain\n");
 +              return -ENOSYS;
        }
 +
 +      return 0;
  }
  
- static int __devinit stmpe_gpio_probe(struct platform_device *pdev)
+ static int stmpe_gpio_probe(struct platform_device *pdev)
  {
        struct stmpe *stmpe = dev_get_drvdata(pdev->dev.parent);
 +      struct device_node *np = pdev->dev.of_node;
        struct stmpe_gpio_platform_data *pdata;
        struct stmpe_gpio *stmpe_gpio;
        int ret;
 
        }
  
        return 0;
 -
 - err_free_dt_gpios:
 -      while (--cnt >= 0)
 -              gpio_free(ourhost->gpios[cnt]);
 - err_free_dt_cd_gpio:
 -      if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL)
 -              gpio_free(ourhost->ext_cd_gpio);
 -      return -EINVAL;
  }
  #else
- static int __devinit sdhci_s3c_parse_dt(struct device *dev,
+ static int sdhci_s3c_parse_dt(struct device *dev,
                struct sdhci_host *host, struct s3c_sdhci_platdata *pdata)
  {
        return -EINVAL;
 
        return ret;
  }
  
- static const struct of_device_id pinmux_ids[] __devinitconst = {
+ static const struct of_device_id pinmux_ids[] = {
        { .compatible = "sirf,prima2-pinctrl" },
 +      { .compatible = "sirf,marco-pinctrl" },
        {}
  };
  
 
        dev_info(&pdev->dev, "initialized U300 pin control driver\n");
  
        return 0;
 -
 -out_no_pmx:
 -      iounmap(upmx->virtbase);
 -out_no_remap:
 -      platform_set_drvdata(pdev, NULL);
 -out_no_memregion:
 -      release_mem_region(upmx->phybase, upmx->physize);
 -      return ret;
  }
  
- static int __devexit u300_pmx_remove(struct platform_device *pdev)
+ static int u300_pmx_remove(struct platform_device *pdev)
  {
        struct u300_pmx *upmx = platform_get_drvdata(pdev);
  
 
  };
  
  /* exported routines */
 +static inline u32 pmx_readl(struct spear_pmx *pmx, u32 reg)
 +{
 +      return readl_relaxed(pmx->vbase + reg);
 +}
 +
 +static inline void pmx_writel(struct spear_pmx *pmx, u32 val, u32 reg)
 +{
 +      writel_relaxed(val, pmx->vbase + reg);
 +}
 +
  void __devinit pmx_init_addr(struct spear_pinctrl_machdata *machdata, u16 reg);
 +void __devinit
 +pmx_init_gpio_pingroup_addr(struct spear_gpio_pingroup *gpio_pingroup,
 +              unsigned count, u16 reg);
  int __devinit spear_pinctrl_probe(struct platform_device *pdev,
                struct spear_pinctrl_machdata *machdata);
- int __devexit spear_pinctrl_remove(struct platform_device *pdev);
+ int spear_pinctrl_remove(struct platform_device *pdev);
  
  #define SPEAR_PIN_0_TO_101            \
        PINCTRL_PIN(0, "PLGPIO0"),      \