ARM: OMAP: fix MMC2 loopback clock handling
Subsystems (3)
PATCH 1/1 ARM: OMAP: fix MMC2 loopback clock handling
Currently MMC2 setup code can only enable loopback clock and relies on reset value for boards that need to have it disabled. This causes a problem with certain bootloaders that always enable that clock, resulting with unwanted bootloader dependencies.
Fix this by making it disable the clock if board data says so.
---
depends on "ARM: OMAP: fix erroneous mmc2 clock change on mmc3 setup"
http://marc.info/?l=linux-omap&m=132416866125291&w=2
arch/arm/mach-omap2/hsmmc.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-)
arch/arm/mach-omap2/hsmmc.c +5 -4
@@ -175,11 +175,12 @@ static void hsmmc2_select_input_clk_src(struct omap_mmc_platform_data *mmc) {u32 reg; -if (mmc->slots[0 ].internal_clock) { - reg =omap_ctrl_readl (control_devconf1_offset); + reg =omap_ctrl_readl (control_devconf1_offset); +if (mmc->slots[0 ].internal_clock) reg |=OMAP2_MMCSDIO2ADPCLKISEL ; -omap_ctrl_writel (reg, control_devconf1_offset); - } +else + reg &= ~OMAP2_MMCSDIO2ADPCLKISEL ; +omap_ctrl_writel (reg, control_devconf1_offset); } static void hsmmc2_before_set_reg(struct device *dev, int slot,
Signature · 1 line
1.7.0.4
PATCH 1/1 ARM: OMAP: fix MMC2 loopback clock handling
Quoted 8 lines · Grazvydas Ignotas
Currently MMC2 setup code can only enable loopback clock and relies on reset value for boards that need to have it disabled. This causes a problem with certain bootloaders that always enable that clock, resulting with unwanted bootloader dependencies.
Fix this by making it disable the clock if board data says so.
Signed-off-by Grazvydas Ignotas <[email protected]>
Quoted 28 lines
---
depends on "ARM: OMAP: fix erroneous mmc2 clock change on mmc3 setup"
http://marc.info/?l=linux-omap&m=132416866125291&w=2arch/arm/mach-omap2/hsmmc.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-)arch/arm/mach-omap2/hsmmc.c +5
-4@@ -175,11 +175,12 @@ static void hsmmc2_select_input_clk_src(struct omap_mmc_platform_data *mmc) {u32 reg; -if (mmc->slots[0 ].internal_clock) { - reg =omap_ctrl_readl (control_devconf1_offset); + reg =omap_ctrl_readl (control_devconf1_offset); +if (mmc->slots[0 ].internal_clock) reg |=OMAP2_MMCSDIO2ADPCLKISEL ; -omap_ctrl_writel (reg, control_devconf1_offset); - } +else + reg &= ~OMAP2_MMCSDIO2ADPCLKISEL ; +omap_ctrl_writel (reg, control_devconf1_offset); } static void hsmmc2_before_set_reg(struct device *dev, int slot,
Signature · 2 lines
Regards, Igor.
Tony Lindgren
maintainerPATCH 1/1 ARM: OMAP: fix MMC2 loopback clock handling
Quoted 11 lines · Igor Grinberg
Quoted 8 lines · Grazvydas Ignotas
Currently MMC2 setup code can only enable loopback clock and relies on reset value for boards that need to have it disabled. This causes a problem with certain bootloaders that always enable that clock, resulting with unwanted bootloader dependencies.
Fix this by making it disable the clock if board data says so.
Signed-off-by Grazvydas Ignotas <[email protected]>Acked-by Igor Grinberg <[email protected]>
Thanks applying into fixes.
Tony