xref: /openbmc/u-boot/arch/x86/include/asm/pch_common.h (revision e8f80a5a)
1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0 */
27e4a6ae6SSimon Glass /*
37e4a6ae6SSimon Glass  * Copyright (c) 2016 Google, Inc
47e4a6ae6SSimon Glass  */
57e4a6ae6SSimon Glass 
67e4a6ae6SSimon Glass #ifndef __asm_pch_common_h
77e4a6ae6SSimon Glass #define __asm_pch_common_h
87e4a6ae6SSimon Glass 
97e4a6ae6SSimon Glass /* Common Intel SATA registers */
107e4a6ae6SSimon Glass #define SATA_SIRI		0xa0 /* SATA Indexed Register Index */
117e4a6ae6SSimon Glass #define SATA_SIRD		0xa4 /* SATA Indexed Register Data */
127e4a6ae6SSimon Glass #define SATA_SP			0xd0 /* Scratchpad */
137e4a6ae6SSimon Glass 
147e4a6ae6SSimon Glass #define INTR_LN			0x3c
157e4a6ae6SSimon Glass #define IDE_TIM_PRI		0x40	/* IDE timings, primary */
167e4a6ae6SSimon Glass #define   IDE_DECODE_ENABLE	(1 << 15)
177e4a6ae6SSimon Glass #define   IDE_SITRE		(1 << 14)
187e4a6ae6SSimon Glass #define   IDE_ISP_5_CLOCKS	(0 << 12)
197e4a6ae6SSimon Glass #define   IDE_ISP_4_CLOCKS	(1 << 12)
207e4a6ae6SSimon Glass #define   IDE_ISP_3_CLOCKS	(2 << 12)
217e4a6ae6SSimon Glass #define   IDE_RCT_4_CLOCKS	(0 <<  8)
227e4a6ae6SSimon Glass #define   IDE_RCT_3_CLOCKS	(1 <<  8)
237e4a6ae6SSimon Glass #define   IDE_RCT_2_CLOCKS	(2 <<  8)
247e4a6ae6SSimon Glass #define   IDE_RCT_1_CLOCKS	(3 <<  8)
257e4a6ae6SSimon Glass #define   IDE_DTE1		(1 <<  7)
267e4a6ae6SSimon Glass #define   IDE_PPE1		(1 <<  6)
277e4a6ae6SSimon Glass #define   IDE_IE1		(1 <<  5)
287e4a6ae6SSimon Glass #define   IDE_TIME1		(1 <<  4)
297e4a6ae6SSimon Glass #define   IDE_DTE0		(1 <<  3)
307e4a6ae6SSimon Glass #define   IDE_PPE0		(1 <<  2)
317e4a6ae6SSimon Glass #define   IDE_IE0		(1 <<  1)
327e4a6ae6SSimon Glass #define   IDE_TIME0		(1 <<  0)
337e4a6ae6SSimon Glass #define IDE_TIM_SEC		0x42	/* IDE timings, secondary */
347e4a6ae6SSimon Glass 
357e4a6ae6SSimon Glass #define SERIRQ_CNTL		0x64
367e4a6ae6SSimon Glass 
377e4a6ae6SSimon Glass /**
387e4a6ae6SSimon Glass  * pch_common_sir_read() - Read from a SATA indexed register
397e4a6ae6SSimon Glass  *
407e4a6ae6SSimon Glass  * @dev:	SATA device
417e4a6ae6SSimon Glass  * @idx:	Register index to read
427e4a6ae6SSimon Glass  * @return value read from register
437e4a6ae6SSimon Glass  */
447e4a6ae6SSimon Glass u32 pch_common_sir_read(struct udevice *dev, int idx);
457e4a6ae6SSimon Glass 
467e4a6ae6SSimon Glass /**
477e4a6ae6SSimon Glass  * pch_common_sir_write() - Write to a SATA indexed register
487e4a6ae6SSimon Glass  *
497e4a6ae6SSimon Glass  * @dev:	SATA device
507e4a6ae6SSimon Glass  * @idx:	Register index to write
517e4a6ae6SSimon Glass  * @value:	Value to write
527e4a6ae6SSimon Glass  */
537e4a6ae6SSimon Glass void pch_common_sir_write(struct udevice *dev, int idx, u32 value);
547e4a6ae6SSimon Glass 
557e4a6ae6SSimon Glass #endif
56