Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/drivers/mmc/host/sdhci-of-hlwd.c
15111 views
1
/*
2
* drivers/mmc/host/sdhci-of-hlwd.c
3
*
4
* Nintendo Wii Secure Digital Host Controller Interface.
5
* Copyright (C) 2009 The GameCube Linux Team
6
* Copyright (C) 2009 Albert Herranz
7
*
8
* Based on sdhci-of-esdhc.c
9
*
10
* Copyright (c) 2007 Freescale Semiconductor, Inc.
11
* Copyright (c) 2009 MontaVista Software, Inc.
12
*
13
* Authors: Xiaobo Xie <[email protected]>
14
* Anton Vorontsov <[email protected]>
15
*
16
* This program is free software; you can redistribute it and/or modify
17
* it under the terms of the GNU General Public License as published by
18
* the Free Software Foundation; either version 2 of the License, or (at
19
* your option) any later version.
20
*/
21
22
#include <linux/delay.h>
23
#include <linux/mmc/host.h>
24
#include "sdhci-of.h"
25
#include "sdhci.h"
26
27
/*
28
* Ops and quirks for the Nintendo Wii SDHCI controllers.
29
*/
30
31
/*
32
* We need a small delay after each write, or things go horribly wrong.
33
*/
34
#define SDHCI_HLWD_WRITE_DELAY 5 /* usecs */
35
36
static void sdhci_hlwd_writel(struct sdhci_host *host, u32 val, int reg)
37
{
38
sdhci_be32bs_writel(host, val, reg);
39
udelay(SDHCI_HLWD_WRITE_DELAY);
40
}
41
42
static void sdhci_hlwd_writew(struct sdhci_host *host, u16 val, int reg)
43
{
44
sdhci_be32bs_writew(host, val, reg);
45
udelay(SDHCI_HLWD_WRITE_DELAY);
46
}
47
48
static void sdhci_hlwd_writeb(struct sdhci_host *host, u8 val, int reg)
49
{
50
sdhci_be32bs_writeb(host, val, reg);
51
udelay(SDHCI_HLWD_WRITE_DELAY);
52
}
53
54
struct sdhci_of_data sdhci_hlwd = {
55
.quirks = SDHCI_QUIRK_32BIT_DMA_ADDR |
56
SDHCI_QUIRK_32BIT_DMA_SIZE,
57
.ops = {
58
.read_l = sdhci_be32bs_readl,
59
.read_w = sdhci_be32bs_readw,
60
.read_b = sdhci_be32bs_readb,
61
.write_l = sdhci_hlwd_writel,
62
.write_w = sdhci_hlwd_writew,
63
.write_b = sdhci_hlwd_writeb,
64
},
65
};
66
67