From: Grant Likely Date: Sat, 12 Mar 2011 08:25:53 +0000 (-0700) Subject: Merge commit 'v2.6.38-rc8' into spi/next X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=9c3c8afccb6a163fd2be739f511e863eab668702;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git Merge commit 'v2.6.38-rc8' into spi/next Conflicts: drivers/spi/pxa2xx_spi_pci.c --- 9c3c8afccb6a163fd2be739f511e863eab668702 diff --cc Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt index 000000000000,c39ac2891951..89a0084df2f7 mode 000000,100644..100644 --- a/Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt +++ b/Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt @@@ -1,0 -1,23 +1,30 @@@ + MMC/SD/SDIO slot directly connected to a SPI bus + + Required properties: + - compatible : should be "mmc-spi-slot". + - reg : should specify SPI address (chip-select number). + - spi-max-frequency : maximum frequency for this device (Hz). + - voltage-ranges : two cells are required, first cell specifies minimum + slot voltage (mV), second cell specifies maximum slot voltage (mV). + Several ranges could be specified. -- gpios : (optional) may specify GPIOs in this order: Card-Detect GPIO, ++ ++Optional properties: ++- gpios : may specify GPIOs in this order: Card-Detect GPIO, + Write-Protect GPIO. ++- interrupts : the interrupt of a card detect interrupt. ++- interrupt-parent : the phandle for the interrupt controller that ++ services interrupts for this device. + + Example: + + mmc-slot@0 { + compatible = "fsl,mpc8323rdb-mmc-slot", + "mmc-spi-slot"; + reg = <0>; + gpios = <&qe_pio_d 14 1 + &qe_pio_d 15 0>; + voltage-ranges = <3300 3300>; + spi-max-frequency = <50000000>; ++ interrupts = <42>; ++ interrupt-parent = <&PIC>; + }; diff --cc drivers/spi/pxa2xx_spi_pci.c index b6589bb3a6c3,19752b09e155..378e504f89eb --- a/drivers/spi/pxa2xx_spi_pci.c +++ b/drivers/spi/pxa2xx_spi_pci.c @@@ -84,25 -75,24 +75,22 @@@ static int __devinit ce4100_spi_probe(s return ret; } + pdev = platform_device_alloc("pxa2xx-spi", dev->devfn); spi_info = kzalloc(sizeof(*spi_info), GFP_KERNEL); - if (!spi_info) { + if (!pdev || !spi_info ) { ret = -ENOMEM; - goto err_kz; + goto err_nomem; } - ssp = &spi_info->ssp; - pdev = &spi_info->spi_pdev; - spi_pdata = &spi_info->spi_pdata; + memset(&spi_pdata, 0, sizeof(spi_pdata)); + spi_pdata.num_chipselect = dev->devfn; - pdev->name = "pxa2xx-spi"; - pdev->id = dev->devfn; - pdev->dev.parent = &dev->dev; - pdev->dev.platform_data = &spi_info->spi_pdata; + ret = platform_device_add_data(pdev, &spi_pdata, sizeof(spi_pdata)); + if (ret) + goto err_nomem; + pdev->dev.parent = &dev->dev; -#ifdef CONFIG_OF pdev->dev.of_node = dev->dev.of_node; - pdev->dev.release = plat_dev_release; - - spi_pdata->num_chipselect = dev->devfn; - -#endif + ssp = &spi_info->ssp; ssp->phys_base = pci_resource_start(dev, 0); ssp->mmio_base = ioremap(phys_beg, phys_len); if (!ssp->mmio_base) {