mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 03:58:17 +00:00 
			
		
		
		
	When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0+ */
 | |
| /*
 | |
|  * (C) Copyright 2016 Carlo Caione <carlo@caione.org>
 | |
|  */
 | |
| 
 | |
| #ifndef __SD_EMMC_H__
 | |
| #define __SD_EMMC_H__
 | |
| 
 | |
| #include <mmc.h>
 | |
| 
 | |
| #define SDIO_PORT_A			0
 | |
| #define SDIO_PORT_B			1
 | |
| #define SDIO_PORT_C			2
 | |
| 
 | |
| #define SD_EMMC_CLKSRC_24M		24000000	/* 24 MHz */
 | |
| #define SD_EMMC_CLKSRC_DIV2		1000000000	/* 1 GHz */
 | |
| 
 | |
| #define MESON_SD_EMMC_CLOCK		0x00
 | |
| #define   CLK_MAX_DIV			63
 | |
| #define   CLK_SRC_24M			(0 << 6)
 | |
| #define   CLK_SRC_DIV2			(1 << 6)
 | |
| #define   CLK_CO_PHASE_000		(0 << 8)
 | |
| #define   CLK_CO_PHASE_090		(1 << 8)
 | |
| #define   CLK_CO_PHASE_180		(2 << 8)
 | |
| #define   CLK_CO_PHASE_270		(3 << 8)
 | |
| #define   CLK_TX_PHASE_000		(0 << 10)
 | |
| #define   CLK_TX_PHASE_090		(1 << 10)
 | |
| #define   CLK_TX_PHASE_180		(2 << 10)
 | |
| #define   CLK_TX_PHASE_270		(3 << 10)
 | |
| #define   CLK_ALWAYS_ON			BIT(24)
 | |
| 
 | |
| #define MESON_SD_EMMC_CFG		0x44
 | |
| #define   CFG_BUS_WIDTH_MASK		GENMASK(1, 0)
 | |
| #define   CFG_BUS_WIDTH_1		0
 | |
| #define   CFG_BUS_WIDTH_4		1
 | |
| #define   CFG_BUS_WIDTH_8		2
 | |
| #define   CFG_BL_LEN_MASK		GENMASK(7, 4)
 | |
| #define   CFG_BL_LEN_SHIFT		4
 | |
| #define   CFG_BL_LEN_512		(9 << 4)
 | |
| #define   CFG_RESP_TIMEOUT_MASK		GENMASK(11, 8)
 | |
| #define   CFG_RESP_TIMEOUT_256		(8 << 8)
 | |
| #define   CFG_RC_CC_MASK		GENMASK(15, 12)
 | |
| #define   CFG_RC_CC_16			(4 << 12)
 | |
| #define   CFG_SDCLK_ALWAYS_ON		BIT(18)
 | |
| #define   CFG_AUTO_CLK			BIT(23)
 | |
| 
 | |
| #define MESON_SD_EMMC_STATUS		0x48
 | |
| #define   STATUS_MASK			GENMASK(15, 0)
 | |
| #define   STATUS_ERR_MASK		GENMASK(12, 0)
 | |
| #define   STATUS_RXD_ERR_MASK		GENMASK(7, 0)
 | |
| #define   STATUS_TXD_ERR		BIT(8)
 | |
| #define   STATUS_DESC_ERR		BIT(9)
 | |
| #define   STATUS_RESP_ERR		BIT(10)
 | |
| #define   STATUS_RESP_TIMEOUT		BIT(11)
 | |
| #define   STATUS_DESC_TIMEOUT		BIT(12)
 | |
| #define   STATUS_END_OF_CHAIN		BIT(13)
 | |
| 
 | |
| #define MESON_SD_EMMC_IRQ_EN		0x4c
 | |
| 
 | |
| #define MESON_SD_EMMC_CMD_CFG		0x50
 | |
| #define   CMD_CFG_LENGTH_MASK		GENMASK(8, 0)
 | |
| #define   CMD_CFG_BLOCK_MODE		BIT(9)
 | |
| #define   CMD_CFG_R1B			BIT(10)
 | |
| #define   CMD_CFG_END_OF_CHAIN		BIT(11)
 | |
| #define   CMD_CFG_TIMEOUT_4S		(12 << 12)
 | |
| #define   CMD_CFG_NO_RESP		BIT(16)
 | |
| #define   CMD_CFG_DATA_IO		BIT(18)
 | |
| #define   CMD_CFG_DATA_WR		BIT(19)
 | |
| #define   CMD_CFG_RESP_NOCRC		BIT(20)
 | |
| #define   CMD_CFG_RESP_128		BIT(21)
 | |
| #define   CMD_CFG_CMD_INDEX_SHIFT	24
 | |
| #define   CMD_CFG_OWNER			BIT(31)
 | |
| 
 | |
| #define MESON_SD_EMMC_CMD_ARG		0x54
 | |
| #define MESON_SD_EMMC_CMD_DAT		0x58
 | |
| #define MESON_SD_EMMC_CMD_RSP		0x5c
 | |
| #define MESON_SD_EMMC_CMD_RSP1		0x60
 | |
| #define MESON_SD_EMMC_CMD_RSP2		0x64
 | |
| #define MESON_SD_EMMC_CMD_RSP3		0x68
 | |
| 
 | |
| struct meson_mmc_platdata {
 | |
| 	struct mmc_config cfg;
 | |
| 	struct mmc mmc;
 | |
| 	void *regbase;
 | |
| 	void *w_buf;
 | |
| };
 | |
| 
 | |
| #endif
 |