Heiner Kallweit
4c4fe4f0bb
mmc: meson-gx: use devm_clk_get_enabled() for core clock
...
Use devm_clk_get_enabled() to simplify the code.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/b316c6ba-a373-f1d2-27d2-9add5e25a9d2@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-17 11:50:46 +01:00
Yang Yingliang
71d04535e8
mmc: core: fix return value check in devm_mmc_alloc_host()
...
mmc_alloc_host() returns NULL pointer not PTR_ERR(), if it
fails, so replace the IS_ERR() check with NULL pointer check.
In commit 418f7c2de1 ("mmc: meson-gx: use devm_mmc_alloc_host"),
it checks NULL pointer not PTR_ERR, if devm_mmc_alloc_host() fails,
so make it to return NULL pointer to keep same with mmc_alloc_host(),
the drivers don't need to change the error handle when switch to
use devm_mmc_alloc_host().
Fixes: 80df83c2c5 ("mmc: core: add devm_mmc_alloc_host")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com >
Reviewed-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/20230217024333.4018279-1-yangyingliang@huawei.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-17 11:27:36 +01:00
Heiner Kallweit
f0c5b325dd
dt-bindings: mmc: meson-gx: fix interrupt binding
...
Reflect in the binding that the cd interrupt is optional,
and add a description of the interrupts.
Fixes: 09b31a6103 ("dt-bindings: mmc: meson-gx: support specifying cd interrupt")
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/c1437eb6-0c01-809f-422b-cb1109489355@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-17 11:25:51 +01:00
Heiner Kallweit
a543f7024e
mmc: meson-gx: support platform interrupt as card detect interrupt
...
Use a new mmc core feature and support specifying the card detect
gpio interrupt in device tree.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/2bb70611-5dea-1144-51bd-93c46b455392@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-15 13:46:10 +01:00
Heiner Kallweit
09b31a6103
dt-bindings: mmc: meson-gx: support specifying cd interrupt
...
Support passing a second interrupt as card detect interrupt.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/1c5996a5-491f-39d6-b120-bbef86473729@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-15 13:46:10 +01:00
Heiner Kallweit
88f94c782b
mmc: core: support setting card detect interrupt from drivers
...
On certain platforms like Amlogic Meson gpiod_to_irq() isn't supported
due to the design of gpio / interrupt controller. Therefore provide an
option for drivers to pass the card detect interrupt number
(retrieved e.g. from device tree) to mmc core.
Suggested-by refers to the mechanism to pass and store the interrupt.
Suggested-by: Ulf Hansson <ulf.hansson@linaro.org >
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/5777f38b-465f-ce48-a87f-5eb8b3c57b0a@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-15 13:46:09 +01:00
William Qiu
9e622229bb
mmc: starfive: Add sdio/emmc driver support
...
Add sdio/emmc driver support for StarFive JH7110 soc.
Tested-by: Conor Dooley <conor.dooley@microchip.com >
Signed-off-by: William Qiu <william.qiu@starfivetech.com >
Link: https://lore.kernel.org/r/20230215113249.47727-3-william.qiu@starfivetech.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-15 13:31:53 +01:00
William Qiu
28eb8b5c99
dt-bindings: mmc: Add StarFive MMC module
...
Add documentation to describe StarFive designware mobile storage
host controller driver.
Signed-off-by: William Qiu <william.qiu@starfivetech.com >
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/20230215113249.47727-2-william.qiu@starfivetech.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-15 13:28:34 +01:00
Konrad Dybcio
09e8f154fa
dt-bindings: mmc: sdhci-msm: Allow 1 icc path
...
Some SoCs (like msm8998) only have a SDHC<->DDR path. Allow this case.
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20230213205529.2104120-1-konrad.dybcio@linaro.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-15 13:24:03 +01:00
Lucas Tanure
f613feec70
dt-bindings: mmc: rockchip-dw-mshc: Add RK3588 compatible string
...
Add RK3588 compatible string for SD interface.
Co-developed-by: Shawn Lin <shawn.lin@rock-chips.com >
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com >
Signed-off-by: Lucas Tanure <lucas.tanure@collabora.com >
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Heiko Stuebner <heiko@sntech.de >
Link: https://lore.kernel.org/r/20230213152740.359055-1-lucas.tanure@collabora.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-15 13:24:03 +01:00
Ulf Hansson
51f5b30567
mmc: core: Align to common busy polling behaviour for mmc ioctls
...
Let's align to the common busy polling behaviour for mmc ioctls, by
updating the below two corresponding parts, that comes into play when using
an R1B response for a command.
*) A command with an R1B response should be prepared by calling
mmc_prepare_busy_cmd(), which make us respects the host's busy timeout
constraints.
**) When an R1B response is being used and the host also supports HW busy
detection, we should skip to poll for busy completion.
Suggested-by: Christian Loehle <cloehle@hyperstone.com >
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
Reviewed-by: Christian Loehle <cloehle@hyperstone.com >
Link: https://lore.kernel.org/r/20230213133707.27857-1-ulf.hansson@linaro.org
2023-02-15 13:24:03 +01:00
Kunihiko Hayashi
cb7f090171
dt-bindings: mmc: Add resets property to cadence SDHCI binding
...
Cadence SDHCI controller allows reset control support on UniPhier SoC.
Add resets property to cadence SDHCI binding.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com >
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/20230213045233.32470-1-hayashi.kunihiko@socionext.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-15 13:24:03 +01:00
Heiner Kallweit
91a3cba783
mmc: meson-gx: remove meson_mmc_get_cd
...
MMC core only checks whether return value of .get_cd() equals zero.
Therefore -ENOSYS and 1 are effectively the same and the function
can be removed.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/16502040-3beb-a3cc-b28d-28184fba0f10@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-15 13:24:03 +01:00
Sergei Antonov
16b492ce0a
mmc: moxart: set maximum request/block/segment sizes
...
Per datasheet: maximum block length is 2048 bytes,
data length field is in bits 0-23 of the Data Length Register.
Also for DMA mode we have to take into account rx/tx buffers' sizes.
In my tests this change doubles SD card I/O performance on big files.
Before the change Linux used default request size of 4 KB.
Signed-off-by: Sergei Antonov <saproj@gmail.com >
Link: https://lore.kernel.org/r/20230210143843.369943-1-saproj@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-15 13:24:03 +01:00
Ye Xingchen
08623d741e
mmc: sdhci-brcmstb: Use devm_platform_get_and_ioremap_resource()
...
Convert platform_get_resource(), devm_ioremap_resource() to a single
call to devm_platform_get_and_ioremap_resource(), as this is exactly
what this function does.
Signed-off-by: Ye Xingchen <ye.xingchen@zte.com.cn >
Link: https://lore.kernel.org/r/202302101628321403257@zte.com.cn
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-15 13:24:03 +01:00
Liming Sun
cfd4ea4815
mmc: sdhci-of-dwcmshc: add the missing device table IDs for acpi
...
This commit adds the missing MODULE_DEVICE_TABLE for acpi, or else
it won't be loaded automatically when compiled as a kernel module.
Reviewed-by: David Thompson <davthompson@nvidia.com >
Signed-off-by: Liming Sun <limings@nvidia.com >
Link: https://lore.kernel.org/r/f57ad0f8fdf663465bca74467c344dfa305a3199.1675305696.git.limings@nvidia.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-14 12:33:22 +01:00
Shawn Lin
b75a52b0dd
mmc: sdhci-of-dwcmshc: Update DLL and pre-change delay for rockchip platform
...
For Rockchip platform, DLL bypass bit and start bit need to be set if
DLL is not locked. And adjust pre-change delay to 0x3 for better signal
test result.
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com >
Link: https://lore.kernel.org/r/1675298118-64243-2-git-send-email-shawn.lin@rock-chips.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-14 00:34:57 +01:00
Paul Cercueil
152b5245e3
mmc: jz4740: Add support for vqmmc power supply
...
Support enabling / disabling the vqmmc power supply if it was provided
by the firmware.
Provide the .start_signal_voltage_switch callback to change the voltage
of the external vqmmc power supply.
Signed-off-by: Paul Cercueil <paul@crapouillou.net >
Link: https://lore.kernel.org/r/20230131210229.68129-2-paul@crapouillou.net
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-14 00:27:13 +01:00
Ulf Hansson
fe3e137c6d
mmc: Merge branch fixes into next
...
Merge the mmc fixes for v6.2-rc[n] into the next branch, to allow them to
get tested together with the new mmc changes that are targeted for v6.3.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-14 00:19:41 +01:00
Paul Cercueil
3f18c5046e
mmc: jz4740: Work around bug on JZ4760(B)
...
On JZ4760 and JZ4760B, SD cards fail to run if the maximum clock
rate is set to 50 MHz, even though the controller officially does
support it.
Until the actual bug is found and fixed, limit the maximum clock rate to
24 MHz.
Signed-off-by: Paul Cercueil <paul@crapouillou.net >
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20230131210229.68129-1-paul@crapouillou.net
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-14 00:14:05 +01:00
Yang Yingliang
cf4c9d2ac1
mmc: mmc_spi: fix error handling in mmc_spi_probe()
...
If mmc_add_host() fails, it doesn't need to call mmc_remove_host(),
or it will cause null-ptr-deref, because of deleting a not added
device in mmc_remove_host().
To fix this, goto label 'fail_glue_init', if mmc_add_host() fails,
and change the label 'fail_add_host' to 'fail_gpiod_request'.
Fixes: 15a0580ced ("mmc_spi host driver")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com >
Cc:stable@vger.kernel.org
Link: https://lore.kernel.org/r/20230131013835.3564011-1-yangyingliang@huawei.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-14 00:09:17 +01:00
Yang Yingliang
605d9fb955
mmc: sdio: fix possible resource leaks in some error paths
...
If sdio_add_func() or sdio_init_func() fails, sdio_remove_func() can
not release the resources, because the sdio function is not presented
in these two cases, it won't call of_node_put() or put_device().
To fix these leaks, make sdio_func_present() only control whether
device_del() needs to be called or not, then always call of_node_put()
and put_device().
In error case in sdio_init_func(), the reference of 'card->dev' is
not get, to avoid redundant put in sdio_free_func_cis(), move the
get_device() to sdio_alloc_func() and put_device() to sdio_release_func(),
it can keep the get/put function be balanced.
Without this patch, while doing fault inject test, it can get the
following leak reports, after this fix, the leak is gone.
unreferenced object 0xffff888112514000 (size 2048):
comm "kworker/3:2", pid 65, jiffies 4294741614 (age 124.774s)
hex dump (first 32 bytes):
00 e0 6f 12 81 88 ff ff 60 58 8d 06 81 88 ff ff ..o.....`X......
10 40 51 12 81 88 ff ff 10 40 51 12 81 88 ff ff .@Q......@Q.....
backtrace:
[<000000009e5931da>] kmalloc_trace+0x21/0x110
[<000000002f839ccb>] mmc_alloc_card+0x38/0xb0 [mmc_core]
[<0000000004adcbf6>] mmc_sdio_init_card+0xde/0x170 [mmc_core]
[<000000007538fea0>] mmc_attach_sdio+0xcb/0x1b0 [mmc_core]
[<00000000d4fdeba7>] mmc_rescan+0x54a/0x640 [mmc_core]
unreferenced object 0xffff888112511000 (size 2048):
comm "kworker/3:2", pid 65, jiffies 4294741623 (age 124.766s)
hex dump (first 32 bytes):
00 40 51 12 81 88 ff ff e0 58 8d 06 81 88 ff ff .@Q......X......
10 10 51 12 81 88 ff ff 10 10 51 12 81 88 ff ff ..Q.......Q.....
backtrace:
[<000000009e5931da>] kmalloc_trace+0x21/0x110
[<00000000fcbe706c>] sdio_alloc_func+0x35/0x100 [mmc_core]
[<00000000c68f4b50>] mmc_attach_sdio.cold.18+0xb1/0x395 [mmc_core]
[<00000000d4fdeba7>] mmc_rescan+0x54a/0x640 [mmc_core]
Fixes: 3d10a1ba0d ("sdio: fix reference counting in sdio_remove_func()")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com >
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20230130125808.3471254-1-yangyingliang@huawei.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-14 00:06:22 +01:00
Jonathan Neuschäfer
565e468424
dt-bindings: mmc: fsl-imx-esdhc: Improve grammar and fix a typo
...
This makes the text read a little better.
Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net >
Acked-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20230129130059.1322858-1-j.neuschaefer@gmx.net
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-14 00:01:30 +01:00
Heiner Kallweit
6ea6b95a7e
mmc: meson-gx: fix SDIO mode if cap_sdio_irq isn't set
...
Some SDIO WiFi modules stopped working after SDIO interrupt mode
was added if cap_sdio_irq isn't set in device tree. This patch was
confirmed to fix the issue.
Fixes: 066ecde6d8 ("mmc: meson-gx: add SDIO interrupt support")
Reported-by: Geraldo Nascimento <geraldogabriel@gmail.com >
Tested-by: Geraldo Nascimento <geraldogabriel@gmail.com >
Cc: stable@vger.kernel.org
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/816cba9f-ff92-31a2-60f0-aca542d1d13e@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-13 23:58:43 +01:00
Heiner Kallweit
418f7c2de1
mmc: meson-gx: use devm_mmc_alloc_host
...
Use new function devm_mmc_alloc_host() to simplify the code.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/728f159b-885f-c78a-1a3d-f55c245250e1@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-13 23:55:44 +01:00
Heiner Kallweit
80df83c2c5
mmc: core: add devm_mmc_alloc_host
...
Add a device-managed version of mmc_alloc_host().
The argument order is reversed compared to mmc_alloc_host() because
device-managed functions typically have the device argument first.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/6d8f9fdc-7c9e-8e4f-e6ef-5470b971c74e@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-13 23:55:43 +01:00
Linus Walleij
56f34e8ddc
memstick: core: Imply IOSCHED_BFQ
...
If we enable the memory stick block layer, use Kconfig to imply
the BFQ I/O scheduler.
As all memstick devices are single-queue, this is the scheduler that
users want so let's be helpful and make sure it gets
default-selected into a manual kernel configuration. It will still
need to be enabled at runtime (usually with udev scripts).
Cc: linux-block@vger.kernel.org
Cc: Paolo Valente <paolo.valente@linaro.org >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20230131085220.1038241-1-linus.walleij@linaro.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-02 16:02:06 +01:00
Linus Walleij
1444fed25b
mmc: core: Imply IOSCHED_BFQ
...
If we enable the MMC/SD block layer, use Kconfig to imply the BFQ
I/O scheduler.
As all MMC/SD devices are single-queue, this is the scheduler that
users want so let's be helpful and make sure it gets
default-selected into a manual kernel configuration. It will still
need to be enabled at runtime (usually with udev scripts).
Cc: linux-block@vger.kernel.org
Cc: Paolo Valente <paolo.valente@linaro.org >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20230131084742.1038135-1-linus.walleij@linaro.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-02-02 16:02:02 +01:00
Kunihiko Hayashi
2cda1de0cb
mmc: uniphier-sd: Add control to switch UHS speed
...
SD interface logic has the register to switch UHS speed.
The default is up to SDR25 and to support SDR50 or faster,
add uniphier_sd_speed_switch() function to switch the speed mode.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com >
Link: https://lore.kernel.org/r/20230125010201.28246-4-hayashi.kunihiko@socionext.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-27 11:55:50 +01:00
Kunihiko Hayashi
1c325ed9f9
mmc: uniphier-sd: Add control of UHS mode using SD interface logic
...
Transition of UHS mode needs to control the register in SD interface
logic. Add access to the register in the logic using the regmap from
"socionext,syscon-uhs-mode" property.
Define the start_signal_voltage_switch function only if UHS mode is
available.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com >
Link: https://lore.kernel.org/r/20230125010201.28246-3-hayashi.kunihiko@socionext.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-27 11:55:50 +01:00
Kunihiko Hayashi
388dcd9505
dt-bindings: mmc: uniphier-sd: Add socionext,syscon-uhs-mode property
...
UHS mode control is included in the interface logic represented
by syscon. To refer this, add new property "socionext,syscon-uhs-mode".
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com >
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/20230125010201.28246-2-hayashi.kunihiko@socionext.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-27 11:55:32 +01:00
Tobias Schramm
eca5bd666b
mmc: atmel-mci: fix race between stop command and start of next command
...
This commit fixes a race between completion of stop command and start of a
new command.
Previously the command ready interrupt was enabled before stop command
was written to the command register. This caused the command ready
interrupt to fire immediately since the CMDRDY flag is asserted constantly
while there is no command in progress.
Consequently the command state machine will immediately advance to the
next state when the tasklet function is executed again, no matter
actual completion state of the stop command.
Thus a new command can then be dispatched immediately, interrupting and
corrupting the stop command on the CMD line.
Fix that by dropping the command ready interrupt enable before calling
atmci_send_stop_cmd. atmci_send_stop_cmd does already enable the
command ready interrupt, no further writes to ATMCI_IER are necessary.
Signed-off-by: Tobias Schramm <t.schramm@manjaro.org >
Acked-by: Ludovic Desroches <ludovic.desroches@microchip.com >
Link: https://lore.kernel.org/r/20221230194315.809903-2-t.schramm@manjaro.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-27 11:35:17 +01:00
Kathiravan T
d5d4a2bc5f
dt-bindings: mmc: sdhci-msm: add IPQ5332 compatible
...
The IPQ5332 supports eMMC with an SDHCI controller. Add the appropriate
compatible to the documentation.
Signed-off-by: Kathiravan T <quic_kathirav@quicinc.com >
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/20230125104520.89684-9-quic_kathirav@quicinc.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-27 11:22:23 +01:00
devi priya
124a4c13a8
dt-bindings: mmc: sdhci-msm: Document the IPQ9574 compatible
...
Document the compatible for SDHCI on IPQ9574.
Signed-off-by: devi priya <quic_devipriy@quicinc.com >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20230124141541.8290-7-quic_devipriy@quicinc.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-27 11:15:22 +01:00
Neil Armstrong
b1d908e6c7
dt-bindings: mmc: convert amlogic,meson-gx.txt to dt-schema
...
Convert the Amlogic SD / eMMC controller for S905/GXBB family SoCs
to dt-schema.
Take in account the used variant with amlogic,meson-gx-mmc.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org >
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/20221117-b4-amlogic-bindings-convert-v3-6-e28dd31e3bed@linaro.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-24 13:33:55 +01:00
Krzysztof Kozlowski
bb065c6fe6
dt-bindings: mmc: correct pwrseq node names
...
Node names should be generic and should not contain underscores.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Acked-by: Rob Herring <robh@kernel.org >
Reviewed-by: Heiko Stuebner <heiko@sntech.de >
Link: https://lore.kernel.org/r/20230120085722.171965-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-24 13:31:28 +01:00
Krzysztof Kozlowski
1e52a7e679
dt-bindings: mmc: drop unneeded quotes
...
Cleanup by removing unneeded quotes from refs and redundant blank lines.
No functional impact except adjusting to preferred coding style.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com > # for Renesas controllers
Reviewed-by: Heiko Stuebner <heiko@sntech.de >
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org >
Acked-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20230120085722.171965-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-24 13:30:30 +01:00
Doug Brown
c6ecb0f849
dt-bindings: mmc: sdhci-pxa: add pxav1
...
Add a compatible for the pxav1 controller in the PXA168, along with
optional pinctrl properties to use for an errata workaround.
Signed-off-by: Doug Brown <doug@schmorgal.com >
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/20230116194401.20372-9-doug@schmorgal.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-24 11:56:41 +01:00
Doug Brown
f35ca22388
mmc: sdhci-pxav2: add optional pinctrl for SDIO IRQ workaround
...
The PXA168 errata recommends that the CMD signal should be detached from
the SD bus while performing the dummy CMD0 to restart the clock.
Implement this using pinctrl states.
Signed-off-by: Doug Brown <doug@schmorgal.com >
Acked-by: Adrian Hunter <adrian.hunter@intel.com >
Link: https://lore.kernel.org/r/20230116194401.20372-8-doug@schmorgal.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-24 11:56:41 +01:00
Doug Brown
24552ccb4f
mmc: sdhci-pxav2: add SDIO card IRQ workaround for PXA168 V1 controller
...
The PXA168 has a documented silicon bug that causes SDIO card IRQs to be
missed. Implement the first half of the suggested workaround, which
involves resetting the data port logic and issuing a dummy CMD0 to
restart the clock.
Signed-off-by: Doug Brown <doug@schmorgal.com >
Acked-by: Adrian Hunter <adrian.hunter@intel.com >
Link: https://lore.kernel.org/r/20230116194401.20372-7-doug@schmorgal.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-24 11:56:41 +01:00
Doug Brown
e41c48b4bc
mmc: sdhci-pxav2: add optional core clock
...
Add ability to have an optional core clock just like the pxav3 driver.
The PXA168 needs this because its SDHC controllers have separate core
and io clocks that both need to be enabled. This also correctly matches
the documented devicetree bindings for this driver.
Reported-by: kernel test robot <lkp@intel.com >
Reported-by: Dan Carpenter <error27@gmail.com >
Signed-off-by: Doug Brown <doug@schmorgal.com >
Acked-by: Adrian Hunter <adrian.hunter@intel.com >
Link: https://lore.kernel.org/r/20230116194401.20372-6-doug@schmorgal.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-24 11:56:41 +01:00
Doug Brown
c7c60bf628
mmc: sdhci-pxav2: change clock name to match DT bindings
...
The devicetree bindings for this driver specify that the two allowed
clock names are io and core. Change this driver to look for io, but
allow any name if it fails for backwards compatibility. Follow the same
pattern used in sdhci-pxav3, but add support for EPROBE_DEFER.
Get rid of an unnecessary pdev->dev while we're at it.
Signed-off-by: Doug Brown <doug@schmorgal.com >
Acked-by: Adrian Hunter <adrian.hunter@intel.com >
Link: https://lore.kernel.org/r/20230116194401.20372-5-doug@schmorgal.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-24 11:56:41 +01:00
Doug Brown
7f7a201ad1
mmc: sdhci-pxav2: add register workaround for PXA168 silicon bug
...
The PXA168 has a documented silicon bug that results in a data abort
exception when accessing the SDHCI_HOST_VERSION register on SDH2 and
SDH4 through a 16-bit read. Implement the workaround described in the
errata, which performs a 32-bit read from a lower address instead. This
is safe to use on all four SDH peripherals.
Signed-off-by: Doug Brown <doug@schmorgal.com >
Acked-by: Adrian Hunter <adrian.hunter@intel.com >
Link: https://lore.kernel.org/r/20230116194401.20372-4-doug@schmorgal.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-24 11:56:41 +01:00
Doug Brown
e764395080
mmc: sdhci-pxav2: enable CONFIG_MMC_SDHCI_IO_ACCESSORS
...
Enable CONFIG_MMC_SDHCI_IO_ACCESSORS for the pxav2 driver. The read_w
callback is needed for a silicon bug workaround in the PXA168.
Signed-off-by: Doug Brown <doug@schmorgal.com >
Acked-by: Adrian Hunter <adrian.hunter@intel.com >
Link: https://lore.kernel.org/r/20230116194401.20372-3-doug@schmorgal.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-24 11:56:40 +01:00
Doug Brown
dfe9746aed
mmc: sdhci-pxav2: add initial support for PXA168 V1 controller
...
Add a new compatible string for the version 1 controller used in the
PXA168, along with necessary quirks. Use a separate ops struct in
preparation for a silicon bug workaround only necessary on V1.
Signed-off-by: Doug Brown <doug@schmorgal.com >
Acked-by: Adrian Hunter <adrian.hunter@intel.com >
Link: https://lore.kernel.org/r/20230116194401.20372-2-doug@schmorgal.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-24 11:56:40 +01:00
Lukas Wunner
05f0430f92
mmc: pwrseq_sd8787: Allow being built-in irrespective of dependencies
...
pwrseq_sd8787 is forced to be built as a module if its dependencies are.
That's unnecessary, it's perfectly fine for it to be built-in even
though the wireless drivers that need it are modules.
Relax the depends definition in Kconfig accordingly.
Signed-off-by: Lukas Wunner <lukas@wunner.de >
Cc: Matt Ranostay <matt@ranostay.consulting >
Cc: Lubomir Rintel <lkundrak@v3.sk >
Cc: Claudiu Beznea <claudiu.beznea@microchip.com >
Link: https://lore.kernel.org/r/8bb3d7c3a36985e030ba40e853c57578de8fb303.1673866725.git.lukas@wunner.de
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-23 15:51:39 +01:00
Andreas Kemnade
671112068a
dt-bindings: mmc: fsl-imx-esdhc: Add some compatible fallbacks
...
Currently make dtbs_check shows lots of errors because imx*.dtsi does
not use single compatibles but combinations of them.
Add fallbacks for imx6sll/ull which are useful for U-Boot.
This will significantly reduce noise on make dtbs_check.
Signed-off-by: Andreas Kemnade <andreas@kemnade.info >
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/20230115195212.2530087-1-andreas@kemnade.info
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-23 15:51:39 +01:00
Geert Uytterhoeven
883e5ac6ee
dt-bindings: mmc: renesas,sdhi: Fix RZ/V2M clock description
...
The SD Card/MMC interface on the Renesas RZ/V2M SoC uses 4 clocks, like
on RZ/G2L SoCs.
The current description specifies 3 clocks, like on R-Car Gen3, which
will lead to "make dtbs_check" failures:
arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dtb: mmc@85000000: clocks: [[3, 1, 18], [3, 1, 20], [3, 1, 19], [3, 1, 17]] is too long
From schema: Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml
Fixes: c8dbdf2a1044951b ("dt-bindings: mmc: renesas,sdhi: Document RZ/V2M support")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Reviewed-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com >
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/054c9f4dbb0bb1525f780d1e85c724436465c20c.1673270716.git.geert+renesas@glider.be
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-23 15:51:39 +01:00
Liming Sun
95921151e0
mmc: sdhci-of-dwcmshc: enable host V4 support for BlueField-3 SoC
...
This commit enables SDHCI Host V4 support on Bluefield-3 SoC to be
consistent with the default setting in firmware(UEFI).
Reviewed-by: David Woods <davwoods@nvidia.com >
Signed-off-by: Liming Sun <limings@nvidia.com >
Acked-by: Adrian Hunter <adrian.hunter@intel.com >
Link: https://lore.kernel.org/r/990885f566c32ac8e6888ad6b434fb70d1a5d7af.1673460632.git.limings@nvidia.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-23 15:51:39 +01:00
Adrian Hunter
681b9596ed
mmc: sdhci: Remove SDHCI_QUIRK_MISSING_CAPS
...
Now that it is no longer used, remove SDHCI_QUIRK_MISSING_CAPS.
Note, from now on, __sdhci_read_caps() should be used to provide missing
capability flags.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com >
Link: https://lore.kernel.org/r/20230113110011.129835-7-adrian.hunter@intel.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org >
2023-01-23 15:51:38 +01:00