The SATA indexed register write functions are common to several Intel PCHs. Move this into a common location. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>master
parent
f215287bd5
commit
7e4a6ae62c
@ -0,0 +1,25 @@ |
||||
/*
|
||||
* Copyright (c) 2016 Google, Inc |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0 |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
#include <dm.h> |
||||
#include <asm/pch_common.h> |
||||
|
||||
u32 pch_common_sir_read(struct udevice *dev, int idx) |
||||
{ |
||||
u32 data; |
||||
|
||||
dm_pci_write_config32(dev, SATA_SIRI, idx); |
||||
dm_pci_read_config32(dev, SATA_SIRD, &data); |
||||
|
||||
return data; |
||||
} |
||||
|
||||
void pch_common_sir_write(struct udevice *dev, int idx, u32 value) |
||||
{ |
||||
dm_pci_write_config32(dev, SATA_SIRI, idx); |
||||
dm_pci_write_config32(dev, SATA_SIRD, value); |
||||
} |
@ -0,0 +1,56 @@ |
||||
/*
|
||||
* Copyright (c) 2016 Google, Inc |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0 |
||||
*/ |
||||
|
||||
#ifndef __asm_pch_common_h |
||||
#define __asm_pch_common_h |
||||
|
||||
/* Common Intel SATA registers */ |
||||
#define SATA_SIRI 0xa0 /* SATA Indexed Register Index */ |
||||
#define SATA_SIRD 0xa4 /* SATA Indexed Register Data */ |
||||
#define SATA_SP 0xd0 /* Scratchpad */ |
||||
|
||||
#define INTR_LN 0x3c |
||||
#define IDE_TIM_PRI 0x40 /* IDE timings, primary */ |
||||
#define IDE_DECODE_ENABLE (1 << 15) |
||||
#define IDE_SITRE (1 << 14) |
||||
#define IDE_ISP_5_CLOCKS (0 << 12) |
||||
#define IDE_ISP_4_CLOCKS (1 << 12) |
||||
#define IDE_ISP_3_CLOCKS (2 << 12) |
||||
#define IDE_RCT_4_CLOCKS (0 << 8) |
||||
#define IDE_RCT_3_CLOCKS (1 << 8) |
||||
#define IDE_RCT_2_CLOCKS (2 << 8) |
||||
#define IDE_RCT_1_CLOCKS (3 << 8) |
||||
#define IDE_DTE1 (1 << 7) |
||||
#define IDE_PPE1 (1 << 6) |
||||
#define IDE_IE1 (1 << 5) |
||||
#define IDE_TIME1 (1 << 4) |
||||
#define IDE_DTE0 (1 << 3) |
||||
#define IDE_PPE0 (1 << 2) |
||||
#define IDE_IE0 (1 << 1) |
||||
#define IDE_TIME0 (1 << 0) |
||||
#define IDE_TIM_SEC 0x42 /* IDE timings, secondary */ |
||||
|
||||
#define SERIRQ_CNTL 0x64 |
||||
|
||||
/**
|
||||
* pch_common_sir_read() - Read from a SATA indexed register |
||||
* |
||||
* @dev: SATA device |
||||
* @idx: Register index to read |
||||
* @return value read from register |
||||
*/ |
||||
u32 pch_common_sir_read(struct udevice *dev, int idx); |
||||
|
||||
/**
|
||||
* pch_common_sir_write() - Write to a SATA indexed register |
||||
* |
||||
* @dev: SATA device |
||||
* @idx: Register index to write |
||||
* @value: Value to write |
||||
*/ |
||||
void pch_common_sir_write(struct udevice *dev, int idx, u32 value); |
||||
|
||||
#endif |
Loading…
Reference in new issue