#
8c3a05b4 |
| 19-May-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Enforce DMA configuration through DT
Remove the option to provide DMA configuration as platform data, enforce it through DT.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Cc: Russe
mmc: mmci: Enforce DMA configuration through DT
Remove the option to provide DMA configuration as platform data, enforce it through DT.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Cc: Russell King <linux@arm.linux.org.uk> Cc: Roland Stigge <stigge@antcom.de> Acked-by: Arnd Bergmann <arnd@arndb.de>
show more ...
|
#
5080a08d |
| 21-Mar-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Enforce max frequency configuration through DT
Remove the option to provide a maximum frequency as platform data, enforce it through DT.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.or
mmc: mmci: Enforce max frequency configuration through DT
Remove the option to provide a maximum frequency as platform data, enforce it through DT.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
show more ...
|
#
3faf80df |
| 21-Mar-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Enforce mmc capabilities through DT
Remove the option to provide the flags for mmc capabilities as platform data, enforce it through DT.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.or
mmc: mmci: Enforce mmc capabilities through DT
Remove the option to provide the flags for mmc capabilities as platform data, enforce it through DT.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
show more ...
|
#
4593df29 |
| 21-Mar-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Enforce DT for signal direction and feedback clock
Remove the option to provide signal direction configuration and feeback clock as platform data, enforce it through DT.
Signed-off-by: U
mmc: mmci: Enforce DT for signal direction and feedback clock
Remove the option to provide signal direction configuration and feeback clock as platform data, enforce it through DT.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
show more ...
|
#
9dd8a8b8 |
| 19-Mar-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Enable MMC_CAP_CMD23
This is pure software configuration, which mmci has been supporting for a while. Let's enable it as default so we can take benefit from it.
Signed-off-by: Ulf Hansso
mmc: mmci: Enable MMC_CAP_CMD23
This is pure software configuration, which mmci has been supporting for a while. Let's enable it as default so we can take benefit from it.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
show more ...
|
#
78f87df2 |
| 17-Mar-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Use the common mmc DT parser
Let mmci DT parser only handle the specific bindings related to mmci and extend the DT support by converting to the common mmc DT parser.
While both DT and p
mmc: mmci: Use the common mmc DT parser
Let mmci DT parser only handle the specific bindings related to mmci and extend the DT support by converting to the common mmc DT parser.
While both DT and platform data exist, DT takes precedence. If there are supplied DT data, the card detect and write protect GPIOS are enforced to be provided through it.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
show more ...
|
#
1a7e99c1 |
| 31-Mar-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Add DT bindings for feedback clock pin
The ST Micro variant supports the option of using a feedback clock signal in favor of the clockout pin when latching incoming signals on the data bu
mmc: mmci: Add DT bindings for feedback clock pin
The ST Micro variant supports the option of using a feedback clock signal in favor of the clockout pin when latching incoming signals on the data bus.
Since this is matter of how pins are being routed we need to provide a new DT binding to be able to configure this through DT.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
show more ...
|
#
ae94cafe |
| 18-Mar-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Add DT bindings for signal direction
Some variants have support for indicating the bus signal directions, which currently are configured through platform data.
Add corresponding DT bindi
mmc: mmci: Add DT bindings for signal direction
Some variants have support for indicating the bus signal directions, which currently are configured through platform data.
Add corresponding DT bindings to enable us to move away from using the platform data.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
show more ...
|
#
ef289982 |
| 17-Mar-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Convert to devm functions
Converting to devm functions to simplify error handling in ->probe() and to cleanup ->remove().
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
#
d2762090 |
| 17-Mar-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Convert to the mmc gpio API
To avoid duplication of code while handling card detect and write protect GPIO pins/irqs, let's convert to use the mmc gpio API.
Signed-off-by: Ulf Hansson <u
mmc: mmci: Convert to the mmc gpio API
To avoid duplication of code while handling card detect and write protect GPIO pins/irqs, let's convert to use the mmc gpio API.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
show more ...
|
Revision tags: v3.14-rc6, v3.14-rc5, v3.14-rc4, v3.14-rc3, v3.14-rc2, v3.14-rc1 |
|
#
f3737fa3 |
| 22-Jan-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Put the device into low power state at system suspend
For CONFIG_PM_SLEEP, the device were always left in full power state after system suspend.
We solely relied on a power domain to put
mmc: mmci: Put the device into low power state at system suspend
For CONFIG_PM_SLEEP, the device were always left in full power state after system suspend.
We solely relied on a power domain to put it into low power state, which is an unreasonable requirement to put on SOCs to implement. Especially for those SOCs not supporting power domains at all.
Use pm_runtime_force_suspend|resume() as the system suspend callbacks, to resolve the issue.
Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
show more ...
|
#
571dce4f |
| 22-Jan-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Let runtime PM callbacks be available for CONFIG_PM
Convert to the SET_PM_RUNTIME_PM macro while defining the runtime PM callbacks. This means the callbacks becomes available for both CON
mmc: mmci: Let runtime PM callbacks be available for CONFIG_PM
Convert to the SET_PM_RUNTIME_PM macro while defining the runtime PM callbacks. This means the callbacks becomes available for both CONFIG_PM_SLEEP and CONFIG_PM_RUNTIME, which is needed to handle the combinations of these scenarios.
Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
show more ...
|
#
42dcc89a |
| 22-Jan-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Mask IRQs for all variants during runtime suspend
In runtime suspended state, we are not expecting IRQs and thus we can safely mask them, not only for pwrreg_nopower variants but for all.
mmc: mmci: Mask IRQs for all variants during runtime suspend
In runtime suspended state, we are not expecting IRQs and thus we can safely mask them, not only for pwrreg_nopower variants but for all.
Obviously we then also need to make sure we restore the IRQ mask while becoming runtime resumed.
Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
show more ...
|
Revision tags: v3.13 |
|
#
8d94b54d |
| 13-Jan-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Enable support for busy detection for ux500 variant
The ux500 variants have HW busy detection support, which is indicated by the busy_detect flag. For these variants let's enable the MMC_
mmc: mmci: Enable support for busy detection for ux500 variant
The ux500 variants have HW busy detection support, which is indicated by the busy_detect flag. For these variants let's enable the MMC_CAP_WAIT_WHILE_BUSY flag and add the support for it.
The mmc core will provide the RSP_BUSY command flag for those requests we should care about busy detection. Regarding the max_busy_timeout, the HW don't support busy detection timeouts so at this initial step let's make it simple and set it to zero to indicate we are able to support any timeout.
Cc: Russell King <linux@arm.linux.org.uk> Cc: Johan Rudholm <jrudholm@gmail.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Chris Ball <chris@printf.net>
show more ...
|
Revision tags: v3.13-rc8 |
|
#
e7f3d222 |
| 10-Jan-2014 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Handle CMD irq before DATA irq
In case of a read operation both MCI_CMDRESPEND and MCI_DATAEND can be set in the status register when entering the interrupt handler. This is due to that t
mmc: mmci: Handle CMD irq before DATA irq
In case of a read operation both MCI_CMDRESPEND and MCI_DATAEND can be set in the status register when entering the interrupt handler. This is due to that the card start sending data before the host has acknowledged the command response.
To resolve the issue for this scenario, we must start by handling the CMD irq instead of the DATA irq. The reason is beacuse the completion of the DATA irq will not respect the current command and then causing it to be garbled.
Cc: Russell King <linux@arm.linux.org.uk> Cc: Johan Rudholm <jrudholm@gmail.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Chris Ball <chris@printf.net>
show more ...
|
Revision tags: v3.13-rc7, v3.13-rc6, v3.13-rc5, v3.13-rc4, v3.13-rc3, v3.13-rc2 |
|
#
23c34527 |
| 26-Nov-2013 |
Michal Simek <michal.simek@xilinx.com> |
ARM: 7906/1: mmc: mmci: Remove unnecessary amba_set_drvdata()
Driver core clears the driver data to NULL after device_release or on probe failure, so just remove it from here.
Driver core change: "
ARM: 7906/1: mmc: mmci: Remove unnecessary amba_set_drvdata()
Driver core clears the driver data to NULL after device_release or on probe failure, so just remove it from here.
Driver core change: "device-core: Ensure drvdata = NULL when no driver is bound" (sha1: 0998d0631001288a5974afc0b2a5f568bcdecb4d)
Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
Revision tags: v3.13-rc1, v3.12, v3.12-rc7, v3.12-rc6, v3.12-rc5, v3.12-rc4, v3.12-rc3 |
|
#
578aebc7 |
| 26-Sep-2013 |
Ulf Hansson <ulf.hansson@linaro.org> |
mmc: mmci: Move away from using deprecated APIs
Suspend and resume of cards are being handled from the protocol layer and consequently the mmc_suspend|resume_host APIs are deprecated.
This means we
mmc: mmci: Move away from using deprecated APIs
Suspend and resume of cards are being handled from the protocol layer and consequently the mmc_suspend|resume_host APIs are deprecated.
This means we can simplify the suspend|resume callbacks by removing the use of the deprecated APIs.
Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org>
show more ...
|
Revision tags: v3.12-rc2, v3.12-rc1 |
|
#
1ff44433 |
| 04-Sep-2013 |
Ulf Hansson <ulf.hansson@linaro.org> |
ARM: 7834/1: mmc: mmci: Save and restore register context
If a corresponding power domain exists for the device and it manages to cut the domain regulator while the device is runtime suspended, the
ARM: 7834/1: mmc: mmci: Save and restore register context
If a corresponding power domain exists for the device and it manages to cut the domain regulator while the device is runtime suspended, the IP loses it's registers context. We restore the context in the .runtime_resume callback from the existing register caches to adapt to this situation.
We also want to make sure the registers are in a known state while restoring context in the case when the power domain did not drop the power, since there are restrictions for the order of writing to these registers. To handle this, we clear the registers in the .runtime_suspend callback.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Rickard Andersson <rickard.andersson@stericsson.com> Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
f829c042 |
| 04-Sep-2013 |
Ulf Hansson <ulf.hansson@linaro.org> |
ARM: 7833/1: mmc: mmci: Adapt to register write restrictions
After a write to the MMCICLOCK register data cannot be written to this register for three feedback clock cycles. Writes to the MMCIPOWER
ARM: 7833/1: mmc: mmci: Adapt to register write restrictions
After a write to the MMCICLOCK register data cannot be written to this register for three feedback clock cycles. Writes to the MMCIPOWER register must be separated by three MCLK cycles. Previously no issues has been observered, but using higher ARM clock frequencies on STE- platforms has triggered this problem.
The MMCICLOCK register is written to in .set_ios and for some data transmissions for SDIO. We do not need a delay at the data transmission path, because sending and receiving data will require more than three clock cycles. Then we use a simple logic to only delay in .set_ios and thus we don't affect throughput performance.
Signed-off-by: Johan Rudholm <jrudholm@gmail.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Rickard Andersson <rickard.andersson@stericsson.com> Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
e36bd9c6 |
| 04-Sep-2013 |
Ulf Hansson <ulf.hansson@linaro.org> |
ARM: 7832/1: mmc: mmci: Use optional sleep pinctrl state
By optionally putting the pins into sleep state in the .runtime_suspend callback we can accomplish two things. One is to minimize current lea
ARM: 7832/1: mmc: mmci: Use optional sleep pinctrl state
By optionally putting the pins into sleep state in the .runtime_suspend callback we can accomplish two things. One is to minimize current leakage from pins and thus save power, second we can prevent the IP from driving pins output in an uncontrolled manner, which may happen if the power domain drops the domain regulator.
When returning from idle, entering .runtime_resume callback, the pins are restored to default state.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Rickard Andersson <rickard.andersson@stericsson.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
edaf6d3d |
| 04-Sep-2013 |
Ulf Hansson <ulf.hansson@linaro.org> |
ARM: 7831/1: mmc: mmci: Adapt to new pinctrl handling
There is no need for every driver to fetch a pinctrl handle and to select the default state. Instead this is handled by the device driver core,
ARM: 7831/1: mmc: mmci: Adapt to new pinctrl handling
There is no need for every driver to fetch a pinctrl handle and to select the default state. Instead this is handled by the device driver core, thus we can remove this piece of code from mmci.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
Revision tags: v3.11, v3.11-rc7, v3.11-rc6, v3.11-rc5, v3.11-rc4, v3.11-rc3, v3.11-rc2, v3.11-rc1, v3.10, v3.10-rc7, v3.10-rc6, v3.10-rc5, v3.10-rc4, v3.10-rc3, v3.10-rc2 |
|
#
01259620 |
| 15-May-2013 |
Ulf Hansson <ulf.hansson@linaro.org> |
ARM: 7726/1: mmc: mmci: Add card_busy function to improve UHS card support
To verify a signal voltage switch at initialization of UHS cards the .card_busy callback is used. For some of the ST-varian
ARM: 7726/1: mmc: mmci: Add card_busy function to improve UHS card support
To verify a signal voltage switch at initialization of UHS cards the .card_busy callback is used. For some of the ST-variants, card busy detection on the DAT0 pin is supported.
We extend the variant struct with a busy_detect flag to indicate support for it. A corresponding busy detect function, which polls the busy status bit, is then set to the .card_busy callback.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
9cc639a2 |
| 15-May-2013 |
Ulf Hansson <ulf.hansson@linaro.org> |
ARM: 7725/1: mmc: mmci: Cache MMCIDATACTRL register
Add a cache variable in the host struct that reflects the current data in the MMCIDATACTRL register. This patch will not introduce any functional
ARM: 7725/1: mmc: mmci: Cache MMCIDATACTRL register
Add a cache variable in the host struct that reflects the current data in the MMCIDATACTRL register. This patch will not introduce any functional change but instead provide an easy option to keep specific bits in the register between each data transfer.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
0f3ed7f7 |
| 15-May-2013 |
Ulf Hansson <ulf.hansson@linaro.org> |
ARM: 7724/1: mmc: mmci: Support signal voltage switch for UHS cards
Add .start_signal_voltage_switch callback to be able to support UHS cards. The voltage switch requires the optional vqmmc regulato
ARM: 7724/1: mmc: mmci: Support signal voltage switch for UHS cards
Add .start_signal_voltage_switch callback to be able to support UHS cards. The voltage switch requires the optional vqmmc regulator to exist since the actual voltage switch will be performed directly on it.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
7c0136ef |
| 14-May-2013 |
Ulf Hansson <ulf.hansson@linaro.org> |
ARM: 7721/1: mmc: mmci: Fixup regulator handling for vqmmc
We can not rely on regulator_is_enabled to decide whether to enable|disable the regulator. It would mean that the reference counter for it
ARM: 7721/1: mmc: mmci: Fixup regulator handling for vqmmc
We can not rely on regulator_is_enabled to decide whether to enable|disable the regulator. It would mean that the reference counter for it is not balanced properly.
Instead keep track of our internal state by using a new flag in the host struct, so we can take correct decisions.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|