5 #include <soc/pci_devs.h>
6 #include <soc/ramstage.h>
35 if (
config->ide_legacy_combined) {
64 reg16 |= (
config->sata_port_map ^ 0x3) << 8;
70 reg16 |=
config->sata_port_map;
82 reg32 =
read32(abar + 0x00);
89 reg32 =
read32(abar + 0x0c);
90 reg32 &= (
u32)(~0x3f);
91 reg32 |=
config->sata_port_map;
98 reg32 = (1 << 5) | (1 << 4) | (1 << 3);
102 reg32 =
read32(abar + 0x118);
103 reg32 &= ~((1 << 27) | (1 << 26) | (1 << 22) | (1 << 21) |
104 (1 << 19) | (1 << 18) | (1 << 1));
108 reg32 =
read32(abar + 0x198);
109 reg32 &= ~((1 << 27) | (1 << 26) | (1 << 22) | (1 << 21) |
110 (1 << 19) | (1 << 18) | (1 << 1));
118 reg8 =
read8(abar + 0x04);
120 write8(abar + 0x04, reg8);
131 reg32 &= ~(
config->sata_port_map << 24);
135 reg32 = (0x1 << 31) | (0x7 << 12);
151 reg16 |= (
config->sata_port_map ^ 0x3) << 8;
158 reg32 &= (
u32)(~0x1ff);
169 reg32 &= (
u32)~(0x1f80 | (1 << 6) | (1 << 5));
170 reg32 |= (1 << 29) | (1 << 25) | (1 << 23) | (1 << 22) |
171 (1 << 20) | (1 << 19) | (1 << 18) | (1 << 9) | (1 << 5);
191 reg8 |=
config->sata_port_map;
210 static const struct pci_driver baytrail_sata
__pci_driver = {
static void write8(void *addr, uint8_t val)
static void write32(void *addr, uint32_t val)
static uint32_t read32(const void *addr)
static uint8_t read8(const void *addr)
#define printk(level,...)
static DEVTREE_CONST void * config_of(const struct device *dev)
static __always_inline void pci_write_config32(const struct device *dev, u16 reg, u32 val)
static __always_inline u16 pci_read_config16(const struct device *dev, u16 reg)
static __always_inline u32 pci_read_config32(const struct device *dev, u16 reg)
static __always_inline u8 pci_read_config8(const struct device *dev, u16 reg)
static __always_inline void pci_write_config16(const struct device *dev, u16 reg, u16 val)
static __always_inline void pci_write_config8(const struct device *dev, u16 reg, u8 val)
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
#define PCI_BASE_ADDRESS_5
void pci_dev_enable_resources(struct device *dev)
void pci_dev_read_resources(struct device *dev)
void pci_dev_set_resources(struct device *dev)
struct pci_operations soc_pci_ops
void southcluster_enable_dev(struct device *dev)
static void sata_enable(struct device *dev)
static void sata_init(struct device *dev)
static struct device_operations sata_ops
static const struct pci_driver baytrail_sata __pci_driver
static const unsigned short pci_device_ids[]
static void sir_write(struct device *dev, int idx, u32 value)
void(* read_resources)(struct device *dev)