From: Lee Jones <lee.jones@linaro.org> To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, sameo@linux.intel.com Cc: arnd@arndb.de, linus.walleij@stericsson.com, Lee Jones <lee.jones@linaro.org> Subject: [PATCH 09/35] mfd: ab8500-core: Add ADC support for ab8540 Date: Fri, 15 Feb 2013 12:56:40 +0000 [thread overview] Message-ID: <1360933026-30325-10-git-send-email-lee.jones@linaro.org> (raw) In-Reply-To: <1360933026-30325-1-git-send-email-lee.jones@linaro.org> Signed-off-by: Lee Jones <lee.jones@linaro.org> --- drivers/mfd/ab8500-core.c | 74 +++++++++++++++++++++++++++++++++++--------- drivers/mfd/ab8500-gpadc.c | 67 ++++++++++++++++++++++----------------- 2 files changed, 98 insertions(+), 43 deletions(-) diff --git a/drivers/mfd/ab8500-core.c b/drivers/mfd/ab8500-core.c index 678afd0..ecf570f 100644 --- a/drivers/mfd/ab8500-core.c +++ b/drivers/mfd/ab8500-core.c @@ -604,6 +604,15 @@ static struct resource ab8500_gpadc_resources[] = { }, }; +static struct resource ab8540_gpadc_resources[] = { + { + .name = "SW_CONV_END", + .start = AB8500_INT_GP_SW_ADC_CONV_END, + .end = AB8500_INT_GP_SW_ADC_CONV_END, + .flags = IORESOURCE_IRQ, + }, +}; + static struct resource ab8500_rtc_resources[] = { { .name = "60S", @@ -954,12 +963,6 @@ static struct mfd_cell abx500_common_devs[] = { .of_compatible = "stericsson,abx500-clk", }, { - .name = "ab8500-gpadc", - .of_compatible = "stericsson,ab8500-gpadc", - .num_resources = ARRAY_SIZE(ab8500_gpadc_resources), - .resources = ab8500_gpadc_resources, - }, - { .name = "ab8500-rtc", .of_compatible = "stericsson,ab8500-rtc", .num_resources = ARRAY_SIZE(ab8500_rtc_resources), @@ -1066,6 +1069,12 @@ static struct mfd_cell ab8500_devs[] = { .name = "ab8500-codec", .of_compatible = "stericsson,ab8500-codec", }, + { + .name = "ab8500-gpadc", + .of_compatible = "stericsson,ab8500-gpadc", + .num_resources = ARRAY_SIZE(ab8500_gpadc_resources), + .resources = ab8500_gpadc_resources, + }, }; static struct mfd_cell ab9540_devs[] = { @@ -1080,10 +1089,44 @@ static struct mfd_cell ab9540_devs[] = { { .name = "ab9540-codec", }, + { + .name = "ab8500-gpadc", + .num_resources = ARRAY_SIZE(ab8500_gpadc_resources), + .resources = ab8500_gpadc_resources, + }, + { + .name = "ab-iddet", + .num_resources = ARRAY_SIZE(ab8505_iddet_resources), + .resources = ab8505_iddet_resources, + }, }; -/* Device list common to ab9540 and ab8505 */ -static struct mfd_cell ab9540_ab8505_devs[] = { +/* Device list for ab8505 */ +static struct mfd_cell ab8505_devs[] = { + { + .name = "ab-iddet", + .num_resources = ARRAY_SIZE(ab8505_iddet_resources), + .resources = ab8505_iddet_resources, + }, +}; + +static struct mfd_cell ab8540_devs[] = { + { + .name = "ab8500-gpio", + }, + { + .name = "ab8540-usb", + .num_resources = ARRAY_SIZE(ab8500_usb_resources), + .resources = ab8500_usb_resources, + }, + { + .name = "ab8540-codec", + }, + { + .name = "ab8500-gpadc", + .num_resources = ARRAY_SIZE(ab8540_gpadc_resources), + .resources = ab8540_gpadc_resources, + }, { .name = "ab-iddet", .num_resources = ARRAY_SIZE(ab8505_iddet_resources), @@ -1416,6 +1459,14 @@ static int ab8500_probe(struct platform_device *pdev) ret = mfd_add_devices(ab8500->dev, 0, ab9540_devs, ARRAY_SIZE(ab9540_devs), NULL, ab8500->irq_base, ab8500->domain); + else if (is_ab8540(ab8500)) + ret = mfd_add_devices(ab8500->dev, 0, ab8540_devs, + ARRAY_SIZE(ab8540_devs), NULL, + ab8500->irq_base, ab8500->domain); + else if (is_ab8505(ab8500)) + ret = mfd_add_devices(ab8500->dev, 0, ab8505_devs, + ARRAY_SIZE(ab8505_devs), NULL, + ab8500->irq_base, ab8500->domain); else ret = mfd_add_devices(ab8500->dev, 0, ab8500_devs, ARRAY_SIZE(ab8500_devs), NULL, @@ -1423,13 +1474,6 @@ static int ab8500_probe(struct platform_device *pdev) if (ret) return ret; - if (is_ab9540(ab8500) || is_ab8505(ab8500)) - ret = mfd_add_devices(ab8500->dev, 0, ab9540_ab8505_devs, - ARRAY_SIZE(ab9540_ab8505_devs), NULL, - ab8500->irq_base, ab8500->domain); - if (ret) - return ret; - if (!no_bm) { /* Add battery management devices */ ret = mfd_add_devices(ab8500->dev, 0, ab8500_bm_devs, diff --git a/drivers/mfd/ab8500-gpadc.c b/drivers/mfd/ab8500-gpadc.c index 5942f2f..6b18975 100644 --- a/drivers/mfd/ab8500-gpadc.c +++ b/drivers/mfd/ab8500-gpadc.c @@ -314,6 +314,12 @@ int ab8500_gpadc_read_raw(struct ab8500_gpadc *gpadc, u8 channel, if (!gpadc) return -ENODEV; + /* check if convertion is supported */ + if ((gpadc->irq_sw < 0) && (conv_type == ADC_SW)) + return -ENOTSUPP; + if ((gpadc->irq_hw < 0) && (conv_type == ADC_HW)) + return -ENOTSUPP; + mutex_lock(&gpadc->ab8500_gpadc_lock); /* Enable VTVout LDO this is required for GPADC */ pm_runtime_get_sync(gpadc->dev); @@ -766,20 +772,12 @@ static int ab8500_gpadc_probe(struct platform_device *pdev) } gpadc->irq_sw = platform_get_irq_byname(pdev, "SW_CONV_END"); - if (gpadc->irq_sw < 0) { - dev_err(gpadc->dev, "failed to get platform irq-%d\n", - gpadc->irq_sw); - ret = gpadc->irq_sw; - goto fail; - } + if (gpadc->irq_sw < 0) + dev_err(gpadc->dev, "failed to get platform sw_conv_end irq\n"); gpadc->irq_hw = platform_get_irq_byname(pdev, "HW_CONV_END"); - if (gpadc->irq_hw < 0) { - dev_err(gpadc->dev, "failed to get platform irq-%d\n", - gpadc->irq_hw); - ret = gpadc->irq_hw; - goto fail; - } + if (gpadc->irq_hw < 0) + dev_err(gpadc->dev, "failed to get platform hw_conv_end irq\n"); gpadc->dev = &pdev->dev; gpadc->parent = dev_get_drvdata(pdev->dev.parent); @@ -789,21 +787,30 @@ static int ab8500_gpadc_probe(struct platform_device *pdev) init_completion(&gpadc->ab8500_gpadc_complete); /* Register interrupts */ - ret = request_threaded_irq(gpadc->irq_sw, NULL, - ab8500_bm_gpadcconvend_handler, - IRQF_NO_SUSPEND | IRQF_SHARED, "ab8500-gpadc-sw", gpadc); - if (ret < 0) { - dev_err(gpadc->dev, "Failed to register interrupt, irq: %d\n", - gpadc->irq_sw); - goto fail; + if (gpadc->irq_sw >= 0) { + ret = request_threaded_irq(gpadc->irq_sw, NULL, + ab8500_bm_gpadcconvend_handler, + IRQF_NO_SUSPEND | IRQF_SHARED, "ab8500-gpadc-sw", + gpadc); + if (ret < 0) { + dev_err(gpadc->dev, + "Failed to register interrupt irq: %d\n", + gpadc->irq_sw); + goto fail; + } } - ret = request_threaded_irq(gpadc->irq_hw, NULL, - ab8500_bm_gpadcconvend_handler, - IRQF_NO_SUSPEND | IRQF_SHARED, "ab8500-gpadc-hw", gpadc); - if (ret < 0) { - dev_err(gpadc->dev, "Failed to register interrupt, irq: %d\n", - gpadc->irq_hw); - goto fail; + + if (gpadc->irq_hw >= 0) { + ret = request_threaded_irq(gpadc->irq_hw, NULL, + ab8500_bm_gpadcconvend_handler, + IRQF_NO_SUSPEND | IRQF_SHARED, "ab8500-gpadc-hw", + gpadc); + if (ret < 0) { + dev_err(gpadc->dev, + "Failed to register interrupt irq: %d\n", + gpadc->irq_hw); + goto fail_irq; + } } /* VTVout LDO used to power up ab8500-GPADC */ @@ -825,7 +832,9 @@ static int ab8500_gpadc_probe(struct platform_device *pdev) ab8500_gpadc_read_calibration_data(gpadc); list_add_tail(&gpadc->node, &ab8500_gpadc_list); dev_dbg(gpadc->dev, "probe success\n"); + return 0; + fail_irq: free_irq(gpadc->irq_sw, gpadc); free_irq(gpadc->irq_hw, gpadc); @@ -842,8 +851,10 @@ static int ab8500_gpadc_remove(struct platform_device *pdev) /* remove this gpadc entry from the list */ list_del(&gpadc->node); /* remove interrupt - completion of Sw ADC conversion */ - free_irq(gpadc->irq_sw, gpadc); - free_irq(gpadc->irq_hw, gpadc); + if (gpadc->irq_sw >= 0) + free_irq(gpadc->irq_sw, gpadc); + if (gpadc->irq_hw >= 0) + free_irq(gpadc->irq_hw, gpadc); pm_runtime_get_sync(gpadc->dev); pm_runtime_disable(gpadc->dev); -- 1.7.10.4
WARNING: multiple messages have this Message-ID (diff)
From: lee.jones@linaro.org (Lee Jones) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 09/35] mfd: ab8500-core: Add ADC support for ab8540 Date: Fri, 15 Feb 2013 12:56:40 +0000 [thread overview] Message-ID: <1360933026-30325-10-git-send-email-lee.jones@linaro.org> (raw) In-Reply-To: <1360933026-30325-1-git-send-email-lee.jones@linaro.org> Signed-off-by: Lee Jones <lee.jones@linaro.org> --- drivers/mfd/ab8500-core.c | 74 +++++++++++++++++++++++++++++++++++--------- drivers/mfd/ab8500-gpadc.c | 67 ++++++++++++++++++++++----------------- 2 files changed, 98 insertions(+), 43 deletions(-) diff --git a/drivers/mfd/ab8500-core.c b/drivers/mfd/ab8500-core.c index 678afd0..ecf570f 100644 --- a/drivers/mfd/ab8500-core.c +++ b/drivers/mfd/ab8500-core.c @@ -604,6 +604,15 @@ static struct resource ab8500_gpadc_resources[] = { }, }; +static struct resource ab8540_gpadc_resources[] = { + { + .name = "SW_CONV_END", + .start = AB8500_INT_GP_SW_ADC_CONV_END, + .end = AB8500_INT_GP_SW_ADC_CONV_END, + .flags = IORESOURCE_IRQ, + }, +}; + static struct resource ab8500_rtc_resources[] = { { .name = "60S", @@ -954,12 +963,6 @@ static struct mfd_cell abx500_common_devs[] = { .of_compatible = "stericsson,abx500-clk", }, { - .name = "ab8500-gpadc", - .of_compatible = "stericsson,ab8500-gpadc", - .num_resources = ARRAY_SIZE(ab8500_gpadc_resources), - .resources = ab8500_gpadc_resources, - }, - { .name = "ab8500-rtc", .of_compatible = "stericsson,ab8500-rtc", .num_resources = ARRAY_SIZE(ab8500_rtc_resources), @@ -1066,6 +1069,12 @@ static struct mfd_cell ab8500_devs[] = { .name = "ab8500-codec", .of_compatible = "stericsson,ab8500-codec", }, + { + .name = "ab8500-gpadc", + .of_compatible = "stericsson,ab8500-gpadc", + .num_resources = ARRAY_SIZE(ab8500_gpadc_resources), + .resources = ab8500_gpadc_resources, + }, }; static struct mfd_cell ab9540_devs[] = { @@ -1080,10 +1089,44 @@ static struct mfd_cell ab9540_devs[] = { { .name = "ab9540-codec", }, + { + .name = "ab8500-gpadc", + .num_resources = ARRAY_SIZE(ab8500_gpadc_resources), + .resources = ab8500_gpadc_resources, + }, + { + .name = "ab-iddet", + .num_resources = ARRAY_SIZE(ab8505_iddet_resources), + .resources = ab8505_iddet_resources, + }, }; -/* Device list common to ab9540 and ab8505 */ -static struct mfd_cell ab9540_ab8505_devs[] = { +/* Device list for ab8505 */ +static struct mfd_cell ab8505_devs[] = { + { + .name = "ab-iddet", + .num_resources = ARRAY_SIZE(ab8505_iddet_resources), + .resources = ab8505_iddet_resources, + }, +}; + +static struct mfd_cell ab8540_devs[] = { + { + .name = "ab8500-gpio", + }, + { + .name = "ab8540-usb", + .num_resources = ARRAY_SIZE(ab8500_usb_resources), + .resources = ab8500_usb_resources, + }, + { + .name = "ab8540-codec", + }, + { + .name = "ab8500-gpadc", + .num_resources = ARRAY_SIZE(ab8540_gpadc_resources), + .resources = ab8540_gpadc_resources, + }, { .name = "ab-iddet", .num_resources = ARRAY_SIZE(ab8505_iddet_resources), @@ -1416,6 +1459,14 @@ static int ab8500_probe(struct platform_device *pdev) ret = mfd_add_devices(ab8500->dev, 0, ab9540_devs, ARRAY_SIZE(ab9540_devs), NULL, ab8500->irq_base, ab8500->domain); + else if (is_ab8540(ab8500)) + ret = mfd_add_devices(ab8500->dev, 0, ab8540_devs, + ARRAY_SIZE(ab8540_devs), NULL, + ab8500->irq_base, ab8500->domain); + else if (is_ab8505(ab8500)) + ret = mfd_add_devices(ab8500->dev, 0, ab8505_devs, + ARRAY_SIZE(ab8505_devs), NULL, + ab8500->irq_base, ab8500->domain); else ret = mfd_add_devices(ab8500->dev, 0, ab8500_devs, ARRAY_SIZE(ab8500_devs), NULL, @@ -1423,13 +1474,6 @@ static int ab8500_probe(struct platform_device *pdev) if (ret) return ret; - if (is_ab9540(ab8500) || is_ab8505(ab8500)) - ret = mfd_add_devices(ab8500->dev, 0, ab9540_ab8505_devs, - ARRAY_SIZE(ab9540_ab8505_devs), NULL, - ab8500->irq_base, ab8500->domain); - if (ret) - return ret; - if (!no_bm) { /* Add battery management devices */ ret = mfd_add_devices(ab8500->dev, 0, ab8500_bm_devs, diff --git a/drivers/mfd/ab8500-gpadc.c b/drivers/mfd/ab8500-gpadc.c index 5942f2f..6b18975 100644 --- a/drivers/mfd/ab8500-gpadc.c +++ b/drivers/mfd/ab8500-gpadc.c @@ -314,6 +314,12 @@ int ab8500_gpadc_read_raw(struct ab8500_gpadc *gpadc, u8 channel, if (!gpadc) return -ENODEV; + /* check if convertion is supported */ + if ((gpadc->irq_sw < 0) && (conv_type == ADC_SW)) + return -ENOTSUPP; + if ((gpadc->irq_hw < 0) && (conv_type == ADC_HW)) + return -ENOTSUPP; + mutex_lock(&gpadc->ab8500_gpadc_lock); /* Enable VTVout LDO this is required for GPADC */ pm_runtime_get_sync(gpadc->dev); @@ -766,20 +772,12 @@ static int ab8500_gpadc_probe(struct platform_device *pdev) } gpadc->irq_sw = platform_get_irq_byname(pdev, "SW_CONV_END"); - if (gpadc->irq_sw < 0) { - dev_err(gpadc->dev, "failed to get platform irq-%d\n", - gpadc->irq_sw); - ret = gpadc->irq_sw; - goto fail; - } + if (gpadc->irq_sw < 0) + dev_err(gpadc->dev, "failed to get platform sw_conv_end irq\n"); gpadc->irq_hw = platform_get_irq_byname(pdev, "HW_CONV_END"); - if (gpadc->irq_hw < 0) { - dev_err(gpadc->dev, "failed to get platform irq-%d\n", - gpadc->irq_hw); - ret = gpadc->irq_hw; - goto fail; - } + if (gpadc->irq_hw < 0) + dev_err(gpadc->dev, "failed to get platform hw_conv_end irq\n"); gpadc->dev = &pdev->dev; gpadc->parent = dev_get_drvdata(pdev->dev.parent); @@ -789,21 +787,30 @@ static int ab8500_gpadc_probe(struct platform_device *pdev) init_completion(&gpadc->ab8500_gpadc_complete); /* Register interrupts */ - ret = request_threaded_irq(gpadc->irq_sw, NULL, - ab8500_bm_gpadcconvend_handler, - IRQF_NO_SUSPEND | IRQF_SHARED, "ab8500-gpadc-sw", gpadc); - if (ret < 0) { - dev_err(gpadc->dev, "Failed to register interrupt, irq: %d\n", - gpadc->irq_sw); - goto fail; + if (gpadc->irq_sw >= 0) { + ret = request_threaded_irq(gpadc->irq_sw, NULL, + ab8500_bm_gpadcconvend_handler, + IRQF_NO_SUSPEND | IRQF_SHARED, "ab8500-gpadc-sw", + gpadc); + if (ret < 0) { + dev_err(gpadc->dev, + "Failed to register interrupt irq: %d\n", + gpadc->irq_sw); + goto fail; + } } - ret = request_threaded_irq(gpadc->irq_hw, NULL, - ab8500_bm_gpadcconvend_handler, - IRQF_NO_SUSPEND | IRQF_SHARED, "ab8500-gpadc-hw", gpadc); - if (ret < 0) { - dev_err(gpadc->dev, "Failed to register interrupt, irq: %d\n", - gpadc->irq_hw); - goto fail; + + if (gpadc->irq_hw >= 0) { + ret = request_threaded_irq(gpadc->irq_hw, NULL, + ab8500_bm_gpadcconvend_handler, + IRQF_NO_SUSPEND | IRQF_SHARED, "ab8500-gpadc-hw", + gpadc); + if (ret < 0) { + dev_err(gpadc->dev, + "Failed to register interrupt irq: %d\n", + gpadc->irq_hw); + goto fail_irq; + } } /* VTVout LDO used to power up ab8500-GPADC */ @@ -825,7 +832,9 @@ static int ab8500_gpadc_probe(struct platform_device *pdev) ab8500_gpadc_read_calibration_data(gpadc); list_add_tail(&gpadc->node, &ab8500_gpadc_list); dev_dbg(gpadc->dev, "probe success\n"); + return 0; + fail_irq: free_irq(gpadc->irq_sw, gpadc); free_irq(gpadc->irq_hw, gpadc); @@ -842,8 +851,10 @@ static int ab8500_gpadc_remove(struct platform_device *pdev) /* remove this gpadc entry from the list */ list_del(&gpadc->node); /* remove interrupt - completion of Sw ADC conversion */ - free_irq(gpadc->irq_sw, gpadc); - free_irq(gpadc->irq_hw, gpadc); + if (gpadc->irq_sw >= 0) + free_irq(gpadc->irq_sw, gpadc); + if (gpadc->irq_hw >= 0) + free_irq(gpadc->irq_hw, gpadc); pm_runtime_get_sync(gpadc->dev); pm_runtime_disable(gpadc->dev); -- 1.7.10.4
next prev parent reply other threads:[~2013-02-15 12:57 UTC|newest] Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-02-15 12:56 [PATCH 00/35] mfd: ab8500: Internal development push Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 01/35] mfd: ab8500-gpadc: Implemented suspend/resume Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-20 13:19 ` Mark Brown 2013-02-20 13:19 ` Mark Brown 2013-02-21 22:45 ` Ulf Hansson 2013-02-21 22:45 ` Ulf Hansson 2013-02-22 7:55 ` Lee Jones 2013-02-22 7:55 ` Lee Jones 2013-02-22 10:38 ` Mark Brown 2013-02-22 10:38 ` Mark Brown 2013-02-25 9:27 ` Ulf Hansson 2013-02-25 9:27 ` Ulf Hansson 2013-02-25 13:51 ` Mark Brown 2013-02-25 13:51 ` Mark Brown 2013-02-25 14:52 ` Ulf Hansson 2013-02-25 14:52 ` Ulf Hansson 2013-02-15 12:56 ` [PATCH 02/35] mfd: ab8500-gpadc: Allow tvout regulator to be missing Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-20 13:23 ` Mark Brown 2013-02-20 13:23 ` Mark Brown 2013-02-20 16:38 ` Lee Jones 2013-02-20 16:38 ` Lee Jones 2013-02-15 12:56 ` [PATCH 03/35] mfd: ab8500-gpadc: Reread on failure Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 04/35] mfd: ab8500-gpadc: Add gpadc hw conversion Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 05/35] mfd: ab8500-core: APE Interrupts are not cleared Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 06/35] mfd: ab8500-core: Sysfs chip id modification Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-19 22:04 ` Arnd Bergmann 2013-02-19 22:04 ` Arnd Bergmann 2013-02-20 8:13 ` Lee Jones 2013-02-20 8:13 ` Lee Jones 2013-02-20 8:53 ` Marcus Cooper 2013-02-20 8:53 ` Marcus Cooper 2013-02-20 10:43 ` Lee Jones 2013-02-20 10:43 ` Lee Jones 2013-02-15 12:56 ` [PATCH 07/35] mfd: ab8500-debug: Print banks in hex Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 08/35] mfd: ab8500-debug: Function to save all ABB registers to mem Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` Lee Jones [this message] 2013-02-15 12:56 ` [PATCH 09/35] mfd: ab8500-core: Add ADC support for ab8540 Lee Jones 2013-02-15 12:56 ` [PATCH 10/35] mfd: ab8500-core: Rework MFD sub-device initialisation structures Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-19 22:07 ` Arnd Bergmann 2013-02-19 22:07 ` Arnd Bergmann 2013-02-20 8:09 ` Lee Jones 2013-02-20 8:09 ` Lee Jones 2013-02-15 12:56 ` [PATCH 11/35] mfd: ab8500-core: Add Interrupt support for ab8540 Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 12/35] mfd: ab8500-debug: Better error handling on crash Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 13/35] mfd: ab8500-debug: Add wake-up info Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 14/35] mfd: ab8500-sysctrl: Error check clean up Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 15/35] mfd: ab8500-debugfs: Add tests for ab8540 based platform initialisations Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 16/35] mfd: ab8500: Add more platform checks Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 17/35] mfd: ab8500: Introduce AB8540 cuts definition Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 18/35] mfd: ab8500-sysctrl: Update correct turn on status Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 19/35] mfd: ab8500-debug: Add support for ab8505 and ab9540 Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 20/35] mfd: ab8500-sysctrl: Add new reset function Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 21/35] mfd: ab8500-gpadc: Add support for the AB8540 Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 22/35] mfd: ab8500-debug: " Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 23/35] mfd: ab8500-gpadc: Optimise GPADC driver Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 24/35] mfd: ab8500: Remove unnecessary 'struct device' declaration Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-25 14:33 ` Arnd Bergmann 2013-02-25 14:33 ` Arnd Bergmann 2013-02-25 14:49 ` Lee Jones 2013-02-25 14:49 ` Lee Jones 2013-02-25 16:27 ` Arnd Bergmann 2013-02-25 16:27 ` Arnd Bergmann 2013-02-15 12:56 ` [PATCH 25/35] mfd: ab8500-core: Add additional resources to ab8505_iddet_resources Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 26/35] mfd: ab8500-sysctrl: AB8505 doesn't have SYSCLKREQ5..8 Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 27/35] mfd: ab8500-debugfs: Dump sim registers Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:56 ` [PATCH 28/35] mfd: ab8500-debug: Add ADC input channel usb_id in debugfs Lee Jones 2013-02-15 12:56 ` Lee Jones 2013-02-15 12:57 ` [PATCH 29/35] mfd: ab8500-core: Show turn on status at boot Lee Jones 2013-02-15 12:57 ` Lee Jones 2013-02-15 12:57 ` [PATCH 30/35] mfd: ab8500-debugfs: Change AB8500 debug permissions Lee Jones 2013-02-15 12:57 ` Lee Jones 2013-02-15 12:57 ` [PATCH 31/35] mfd: ab8500-debug: Add register map for ab8540 Lee Jones 2013-02-15 12:57 ` Lee Jones 2013-02-15 12:57 ` [PATCH 32/35] mfd: ab8500-core: Add abx500-clk as an mfd child device Lee Jones 2013-02-15 12:57 ` Lee Jones 2013-02-15 12:57 ` [PATCH 33/35] mfd: ab8500-debug: Add explicit dependencies Lee Jones 2013-02-15 12:57 ` Lee Jones 2013-02-15 12:57 ` [PATCH 34/35] mfd: ab8500-debug: Convert to kstrtoul_from_user Lee Jones 2013-02-15 12:57 ` Lee Jones 2013-02-15 12:57 ` [PATCH 35/35] mfd: ab8500-core: Hierarchical interrupt registers Lee Jones 2013-02-15 12:57 ` Lee Jones
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1360933026-30325-10-git-send-email-lee.jones@linaro.org \ --to=lee.jones@linaro.org \ --cc=arnd@arndb.de \ --cc=linus.walleij@stericsson.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=sameo@linux.intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.