cregit-Linux how code gets into the kernel

Release 4.11 drivers/mmc/host/sdhci-pltfm.h

Directory: drivers/mmc/host
/*
 * Copyright 2010 MontaVista Software, LLC.
 *
 * Author: Anton Vorontsov <avorontsov@ru.mvista.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#ifndef _DRIVERS_MMC_SDHCI_PLTFM_H

#define _DRIVERS_MMC_SDHCI_PLTFM_H

#include <linux/clk.h>
#include <linux/platform_device.h>
#include "sdhci.h"


struct sdhci_pltfm_data {
	
const struct sdhci_ops *ops;
	
unsigned int quirks;
	
unsigned int quirks2;
};


struct sdhci_pltfm_host {
	
struct clk *clk;

	/* migrate from sdhci_of_host */
	
unsigned int clock;
	
u16 xfer_mode_shadow;

	
unsigned long private[0] ____cacheline_aligned;
};

#ifdef CONFIG_MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER
/*
 * These accessors are designed for big endian hosts doing I/O to
 * little endian controllers incorporating a 32-bit hardware byte swapper.
 */

static inline u32 sdhci_be32bs_readl(struct sdhci_host *host, int reg) { return in_be32(host->ioaddr + reg); }

Contributors

PersonTokensPropCommitsCommitProp
Shawn Guo25100.00%2100.00%
Total25100.00%2100.00%


static inline u16 sdhci_be32bs_readw(struct sdhci_host *host, int reg) { return in_be16(host->ioaddr + (reg ^ 0x2)); }

Contributors

PersonTokensPropCommitsCommitProp
Shawn Guo29100.00%2100.00%
Total29100.00%2100.00%


static inline u8 sdhci_be32bs_readb(struct sdhci_host *host, int reg) { return in_8(host->ioaddr + (reg ^ 0x3)); }

Contributors

PersonTokensPropCommitsCommitProp
Shawn Guo29100.00%2100.00%
Total29100.00%2100.00%


static inline void sdhci_be32bs_writel(struct sdhci_host *host, u32 val, int reg) { out_be32(host->ioaddr + reg, val); }

Contributors

PersonTokensPropCommitsCommitProp
Shawn Guo29100.00%2100.00%
Total29100.00%2100.00%


static inline void sdhci_be32bs_writew(struct sdhci_host *host, u16 val, int reg) { struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); int base = reg & ~0x3; int shift = (reg & 0x2) * 8; switch (reg) { case SDHCI_TRANSFER_MODE: /* * Postpone this write, we must do it together with a * command write that is down below. */ pltfm_host->xfer_mode_shadow = val; return; case SDHCI_COMMAND: sdhci_be32bs_writel(host, val << 16 | pltfm_host->xfer_mode_shadow, SDHCI_TRANSFER_MODE); return; } clrsetbits_be32(host->ioaddr + base, 0xffff << shift, val << shift); }

Contributors

PersonTokensPropCommitsCommitProp
Shawn Guo100100.00%2100.00%
Total100100.00%2100.00%


static inline void sdhci_be32bs_writeb(struct sdhci_host *host, u8 val, int reg) { int base = reg & ~0x3; int shift = (reg & 0x3) * 8; clrsetbits_be32(host->ioaddr + base , 0xff << shift, val << shift); }

Contributors

PersonTokensPropCommitsCommitProp
Shawn Guo54100.00%2100.00%
Total54100.00%2100.00%

#endif /* CONFIG_MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER */ extern void sdhci_get_of_property(struct platform_device *pdev); extern struct sdhci_host *sdhci_pltfm_init(struct platform_device *pdev, const struct sdhci_pltfm_data *pdata, size_t priv_size); extern void sdhci_pltfm_free(struct platform_device *pdev); extern int sdhci_pltfm_register(struct platform_device *pdev, const struct sdhci_pltfm_data *pdata, size_t priv_size); extern int sdhci_pltfm_unregister(struct platform_device *pdev); extern unsigned int sdhci_pltfm_clk_get_max_clock(struct sdhci_host *host);
static inline void *sdhci_pltfm_priv(struct sdhci_pltfm_host *host) { return host->private; }

Contributors

PersonTokensPropCommitsCommitProp
Christian Daudt18100.00%1100.00%
Total18100.00%1100.00%

extern const struct dev_pm_ops sdhci_pltfm_pmops; #endif /* _DRIVERS_MMC_SDHCI_PLTFM_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Shawn Guo35379.86%529.41%
Christian Daudt327.24%15.88%
Anton Vorontsov153.39%211.76%
Wolfram Sang153.39%211.76%
Lars-Peter Clausen143.17%317.65%
Al Cooper40.90%15.88%
Manuel Lauss40.90%15.88%
Mike Rapoport30.68%15.88%
Olof Johansson20.45%15.88%
Total442100.00%17100.00%
Directory: drivers/mmc/host
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.