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