Please apply this before: https://patchwork.kernel.org/patch/11232473/ > Am 15.12.2019 um 14:32 schrieb gregkh@xxxxxxxxxxxxxxxxxxx: > > > The patch below does not apply to the 5.4-stable tree. > If someone wants it applied there, or to any other stable or longterm > tree, then please email the backport, including the original git commit > id to <stable@xxxxxxxxxxxxxxx>. > > thanks, > > greg k-h > > ------------------ original commit in Linus's tree ------------------ > > From 2398c41d64321e62af54424fd399964f3d48cdc2 Mon Sep 17 00:00:00 2001 > From: "H. Nikolaus Schaller" <hns@xxxxxxxxxxxxx> > Date: Thu, 7 Nov 2019 11:30:39 +0100 > Subject: [PATCH] omap: pdata-quirks: remove openpandora quirks for mmc3 and > wl1251 > > With a wl1251 child node of mmc3 in the device tree decoded > in omap_hsmmc.c to handle special wl1251 initialization, we do > no longer need to instantiate the mmc3 through pdata quirks. > > We also can remove the wlan regulator and reset/interrupt definitions > and do them through device tree. > > Fixes: 81eef6ca9201 ("mmc: omap_hsmmc: Use dma_request_chan() for requesting DMA channel") > Signed-off-by: H. Nikolaus Schaller <hns@xxxxxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> # v4.7+ > Acked-by: Tony Lindgren <tony@xxxxxxxxxxx> > Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> > > diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c > index 800a602c06ec..1b7cf81ff035 100644 > --- a/arch/arm/mach-omap2/pdata-quirks.c > +++ b/arch/arm/mach-omap2/pdata-quirks.c > @@ -310,108 +310,15 @@ static void __init omap3_logicpd_torpedo_init(void) > } > > /* omap3pandora legacy devices */ > -#define PANDORA_WIFI_IRQ_GPIO 21 > -#define PANDORA_WIFI_NRESET_GPIO 23 > > static struct platform_device pandora_backlight = { > .name = "pandora-backlight", > .id = -1, > }; > > -static struct regulator_consumer_supply pandora_vmmc3_supply[] = { > - REGULATOR_SUPPLY("vmmc", "omap_hsmmc.2"), > -}; > - > -static struct regulator_init_data pandora_vmmc3 = { > - .constraints = { > - .valid_ops_mask = REGULATOR_CHANGE_STATUS, > - }, > - .num_consumer_supplies = ARRAY_SIZE(pandora_vmmc3_supply), > - .consumer_supplies = pandora_vmmc3_supply, > -}; > - > -static struct fixed_voltage_config pandora_vwlan = { > - .supply_name = "vwlan", > - .microvolts = 1800000, /* 1.8V */ > - .gpio = PANDORA_WIFI_NRESET_GPIO, > - .startup_delay = 50000, /* 50ms */ > - .enable_high = 1, > - .init_data = &pandora_vmmc3, > -}; > - > -static struct platform_device pandora_vwlan_device = { > - .name = "reg-fixed-voltage", > - .id = 1, > - .dev = { > - .platform_data = &pandora_vwlan, > - }, > -}; > - > -static void pandora_wl1251_init_card(struct mmc_card *card) > -{ > - /* > - * We have TI wl1251 attached to MMC3. Pass this information to > - * SDIO core because it can't be probed by normal methods. > - */ > - if (card->type == MMC_TYPE_SDIO || card->type == MMC_TYPE_SD_COMBO) { > - card->quirks |= MMC_QUIRK_NONSTD_SDIO; > - card->cccr.wide_bus = 1; > - card->cis.vendor = 0x104c; > - card->cis.device = 0x9066; > - card->cis.blksize = 512; > - card->cis.max_dtr = 24000000; > - card->ocr = 0x80; > - } > -} > - > -static struct omap2_hsmmc_info pandora_mmc3[] = { > - { > - .mmc = 3, > - .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD, > - .gpio_cd = -EINVAL, > - .gpio_wp = -EINVAL, > - .init_card = pandora_wl1251_init_card, > - }, > - {} /* Terminator */ > -}; > - > -static void __init pandora_wl1251_init(void) > -{ > - struct wl1251_platform_data pandora_wl1251_pdata; > - int ret; > - > - memset(&pandora_wl1251_pdata, 0, sizeof(pandora_wl1251_pdata)); > - > - pandora_wl1251_pdata.power_gpio = -1; > - > - ret = gpio_request_one(PANDORA_WIFI_IRQ_GPIO, GPIOF_IN, "wl1251 irq"); > - if (ret < 0) > - goto fail; > - > - pandora_wl1251_pdata.irq = gpio_to_irq(PANDORA_WIFI_IRQ_GPIO); > - if (pandora_wl1251_pdata.irq < 0) > - goto fail_irq; > - > - pandora_wl1251_pdata.use_eeprom = true; > - ret = wl1251_set_platform_data(&pandora_wl1251_pdata); > - if (ret < 0) > - goto fail_irq; > - > - return; > - > -fail_irq: > - gpio_free(PANDORA_WIFI_IRQ_GPIO); > -fail: > - pr_err("wl1251 board initialisation failed\n"); > -} > - > static void __init omap3_pandora_legacy_init(void) > { > platform_device_register(&pandora_backlight); > - platform_device_register(&pandora_vwlan_device); > - omap_hsmmc_init(pandora_mmc3); > - omap_hsmmc_late_init(pandora_mmc3); > - pandora_wl1251_init(); > } > #endif /* CONFIG_ARCH_OMAP3 */ > >