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