xref: /openbmc/u-boot/arch/x86/include/asm/pch_common.h (revision 7e4a6ae6)
1*7e4a6ae6SSimon Glass /*
2*7e4a6ae6SSimon Glass  * Copyright (c) 2016 Google, Inc
3*7e4a6ae6SSimon Glass  *
4*7e4a6ae6SSimon Glass  * SPDX-License-Identifier:	GPL-2.0
5*7e4a6ae6SSimon Glass  */
6*7e4a6ae6SSimon Glass 
7*7e4a6ae6SSimon Glass #ifndef __asm_pch_common_h
8*7e4a6ae6SSimon Glass #define __asm_pch_common_h
9*7e4a6ae6SSimon Glass 
10*7e4a6ae6SSimon Glass /* Common Intel SATA registers */
11*7e4a6ae6SSimon Glass #define SATA_SIRI		0xa0 /* SATA Indexed Register Index */
12*7e4a6ae6SSimon Glass #define SATA_SIRD		0xa4 /* SATA Indexed Register Data */
13*7e4a6ae6SSimon Glass #define SATA_SP			0xd0 /* Scratchpad */
14*7e4a6ae6SSimon Glass 
15*7e4a6ae6SSimon Glass #define INTR_LN			0x3c
16*7e4a6ae6SSimon Glass #define IDE_TIM_PRI		0x40	/* IDE timings, primary */
17*7e4a6ae6SSimon Glass #define   IDE_DECODE_ENABLE	(1 << 15)
18*7e4a6ae6SSimon Glass #define   IDE_SITRE		(1 << 14)
19*7e4a6ae6SSimon Glass #define   IDE_ISP_5_CLOCKS	(0 << 12)
20*7e4a6ae6SSimon Glass #define   IDE_ISP_4_CLOCKS	(1 << 12)
21*7e4a6ae6SSimon Glass #define   IDE_ISP_3_CLOCKS	(2 << 12)
22*7e4a6ae6SSimon Glass #define   IDE_RCT_4_CLOCKS	(0 <<  8)
23*7e4a6ae6SSimon Glass #define   IDE_RCT_3_CLOCKS	(1 <<  8)
24*7e4a6ae6SSimon Glass #define   IDE_RCT_2_CLOCKS	(2 <<  8)
25*7e4a6ae6SSimon Glass #define   IDE_RCT_1_CLOCKS	(3 <<  8)
26*7e4a6ae6SSimon Glass #define   IDE_DTE1		(1 <<  7)
27*7e4a6ae6SSimon Glass #define   IDE_PPE1		(1 <<  6)
28*7e4a6ae6SSimon Glass #define   IDE_IE1		(1 <<  5)
29*7e4a6ae6SSimon Glass #define   IDE_TIME1		(1 <<  4)
30*7e4a6ae6SSimon Glass #define   IDE_DTE0		(1 <<  3)
31*7e4a6ae6SSimon Glass #define   IDE_PPE0		(1 <<  2)
32*7e4a6ae6SSimon Glass #define   IDE_IE0		(1 <<  1)
33*7e4a6ae6SSimon Glass #define   IDE_TIME0		(1 <<  0)
34*7e4a6ae6SSimon Glass #define IDE_TIM_SEC		0x42	/* IDE timings, secondary */
35*7e4a6ae6SSimon Glass 
36*7e4a6ae6SSimon Glass #define SERIRQ_CNTL		0x64
37*7e4a6ae6SSimon Glass 
38*7e4a6ae6SSimon Glass /**
39*7e4a6ae6SSimon Glass  * pch_common_sir_read() - Read from a SATA indexed register
40*7e4a6ae6SSimon Glass  *
41*7e4a6ae6SSimon Glass  * @dev:	SATA device
42*7e4a6ae6SSimon Glass  * @idx:	Register index to read
43*7e4a6ae6SSimon Glass  * @return value read from register
44*7e4a6ae6SSimon Glass  */
45*7e4a6ae6SSimon Glass u32 pch_common_sir_read(struct udevice *dev, int idx);
46*7e4a6ae6SSimon Glass 
47*7e4a6ae6SSimon Glass /**
48*7e4a6ae6SSimon Glass  * pch_common_sir_write() - Write to a SATA indexed register
49*7e4a6ae6SSimon Glass  *
50*7e4a6ae6SSimon Glass  * @dev:	SATA device
51*7e4a6ae6SSimon Glass  * @idx:	Register index to write
52*7e4a6ae6SSimon Glass  * @value:	Value to write
53*7e4a6ae6SSimon Glass  */
54*7e4a6ae6SSimon Glass void pch_common_sir_write(struct udevice *dev, int idx, u32 value);
55*7e4a6ae6SSimon Glass 
56*7e4a6ae6SSimon Glass #endif
57