Lines Matching +full:0 +full:x01ffc000

23 #define PCI_ACCESS_READ  0
27 #define MX6_DBI_ADDR 0x08ffc000
28 #define MX6_IO_ADDR 0x08000000
29 #define MX6_MEM_ADDR 0x08100000
30 #define MX6_ROOT_ADDR 0x08f00000
32 #define MX6_DBI_ADDR 0x01ffc000
33 #define MX6_IO_ADDR 0x01000000
34 #define MX6_MEM_ADDR 0x01100000
35 #define MX6_ROOT_ADDR 0x01f00000
37 #define MX6_DBI_SIZE 0x4000
38 #define MX6_IO_SIZE 0x100000
39 #define MX6_MEM_SIZE 0xe00000
40 #define MX6_ROOT_SIZE 0xfc000
43 #define PL_OFFSET 0x700
44 #define PCIE_PL_PFLR (PL_OFFSET + 0x08)
45 #define PCIE_PL_PFLR_LINK_STATE_MASK (0x3f << 16)
47 #define PCIE_PHY_DEBUG_R0 (PL_OFFSET + 0x28)
48 #define PCIE_PHY_DEBUG_R1 (PL_OFFSET + 0x2c)
52 #define PCIE_PHY_CTRL (PL_OFFSET + 0x114)
53 #define PCIE_PHY_CTRL_DATA_LOC 0
59 #define PCIE_PHY_STAT (PL_OFFSET + 0x110)
60 #define PCIE_PHY_STAT_DATA_LOC 0
64 #define PCIE_PHY_RX_ASIC_OUT 0x100D
66 #define PHY_RX_OVRD_IN_LO 0x1005
73 #define PCIE_ATU_VIEWPORT 0x900
74 #define PCIE_ATU_REGION_INBOUND (0x1 << 31)
75 #define PCIE_ATU_REGION_OUTBOUND (0x0 << 31)
76 #define PCIE_ATU_REGION_INDEX1 (0x1 << 0)
77 #define PCIE_ATU_REGION_INDEX0 (0x0 << 0)
78 #define PCIE_ATU_CR1 0x904
79 #define PCIE_ATU_TYPE_MEM (0x0 << 0)
80 #define PCIE_ATU_TYPE_IO (0x2 << 0)
81 #define PCIE_ATU_TYPE_CFG0 (0x4 << 0)
82 #define PCIE_ATU_TYPE_CFG1 (0x5 << 0)
83 #define PCIE_ATU_CR2 0x908
84 #define PCIE_ATU_ENABLE (0x1 << 31)
85 #define PCIE_ATU_BAR_MODE_ENABLE (0x1 << 30)
86 #define PCIE_ATU_LOWER_BASE 0x90C
87 #define PCIE_ATU_UPPER_BASE 0x910
88 #define PCIE_ATU_LIMIT 0x914
89 #define PCIE_ATU_LOWER_TARGET 0x918
90 #define PCIE_ATU_BUS(x) (((x) & 0xff) << 24)
91 #define PCIE_ATU_DEV(x) (((x) & 0x1f) << 19)
92 #define PCIE_ATU_FUNC(x) (((x) & 0x7) << 16)
93 #define PCIE_ATU_UPPER_TARGET 0x91C
102 u32 wait_counter = 0; in pcie_phy_poll_ack()
106 val = (val >> PCIE_PHY_STAT_ACK_LOC) & 0x1; in pcie_phy_poll_ack()
110 return 0; in pcie_phy_poll_ack()
126 val |= (0x1 << PCIE_PHY_CTRL_CAP_ADR_LOC); in pcie_phy_wait_ack()
136 ret = pcie_phy_poll_ack(dbi_base, 0); in pcie_phy_wait_ack()
140 return 0; in pcie_phy_wait_ack()
154 phy_ctl = 0x1 << PCIE_PHY_CTRL_RD_LOC; in pcie_phy_read()
162 *data = val & 0xffff; in pcie_phy_read()
165 writel(0x00, dbi_base + PCIE_PHY_CTRL); in pcie_phy_read()
167 ret = pcie_phy_poll_ack(dbi_base, 0); in pcie_phy_read()
171 return 0; in pcie_phy_read()
189 var |= (0x1 << PCIE_PHY_CTRL_CAP_DAT_LOC); in pcie_phy_write()
201 ret = pcie_phy_poll_ack(dbi_base, 0); in pcie_phy_write()
206 var = 0x1 << PCIE_PHY_CTRL_WR_LOC; in pcie_phy_write()
219 ret = pcie_phy_poll_ack(dbi_base, 0); in pcie_phy_write()
223 writel(0x0, dbi_base + PCIE_PHY_CTRL); in pcie_phy_write()
225 return 0; in pcie_phy_write()
243 * && (PHY/rx_valid==0) then pulse PHY/rx_reset. Transition in imx6_pcie_link_up()
247 ltssm = readl(MX6_DBI_ADDR + PCIE_PHY_DEBUG_R0) & 0x3F; in imx6_pcie_link_up()
249 if (rx_valid & 0x01) in imx6_pcie_link_up()
250 return 0; in imx6_pcie_link_up()
252 if (ltssm != 0x0d) in imx6_pcie_link_up()
253 return 0; in imx6_pcie_link_up()
267 return 0; in imx6_pcie_link_up()
282 * 0x0100_0000 --- 0x010F_FFFF 1MB IORESOURCE_IO in imx_pcie_regions_setup()
283 * 0x0110_0000 --- 0x01EF_FFFF 14MB IORESOURCE_MEM in imx_pcie_regions_setup()
284 * 0x01F0_0000 --- 0x01FF_FFFF 1MB Cfg + Registers in imx_pcie_regions_setup()
295 /* Region #0 is used for Outbound CFG space access. */ in imx_pcie_regions_setup()
296 writel(0, MX6_DBI_ADDR + PCIE_ATU_VIEWPORT); in imx_pcie_regions_setup()
299 writel(0, MX6_DBI_ADDR + PCIE_ATU_UPPER_BASE); in imx_pcie_regions_setup()
302 writel(0, MX6_DBI_ADDR + PCIE_ATU_LOWER_TARGET); in imx_pcie_regions_setup()
303 writel(0, MX6_DBI_ADDR + PCIE_ATU_UPPER_TARGET); in imx_pcie_regions_setup()
307 return 0; in imx_pcie_regions_setup()
317 /* Reconfigure Region #0 */ in get_bus_address()
318 writel(0, MX6_DBI_ADDR + PCIE_ATU_VIEWPORT); in get_bus_address()
325 if (PCI_BUS(d) == 0) { in get_bus_address()
332 va_address += (where & ~0x3); in get_bus_address()
339 if ((PCI_BUS(d) == 0) && (PCI_DEV(d) > 1)) in imx_pcie_addr_valid()
341 if ((PCI_BUS(d) == 1) && (PCI_DEV(d) > 0)) in imx_pcie_addr_valid()
343 return 0; in imx_pcie_addr_valid()
364 static const uint32_t data_abort_bounce_handler = 0xe25ef004; in imx_pcie_fix_dabt_handler()
385 *val = 0xffffffff; in imx_pcie_read_config()
386 return 0; in imx_pcie_read_config()
399 writel(0xffffffff, val); in imx_pcie_read_config()
403 return 0; in imx_pcie_read_config()
409 uint32_t va_address = 0; in imx_pcie_write_config()
427 return 0; in imx_pcie_write_config()
484 return 0; in imx6_pcie_assert_core_reset()
506 writel((0x0 << IOMUXC_GPR8_PCS_TX_DEEMPH_GEN1_OFFSET) | in imx6_pcie_init_phy()
507 (0x0 << IOMUXC_GPR8_PCS_TX_DEEMPH_GEN2_3P5DB_OFFSET) | in imx6_pcie_init_phy()
513 return 0; in imx6_pcie_init_phy()
520 gpio_direction_output(CONFIG_PCIE_IMX_POWER_GPIO, 0); in imx6_pcie_toggle_power()
526 return 0; in imx6_pcie_toggle_power()
561 gpio_direction_output(CONFIG_PCIE_IMX_PERST_GPIO, 0); in imx6_pcie_toggle_reset()
569 return 0; in imx6_pcie_toggle_reset()
602 return 0; in imx6_pcie_deassert_core_reset()
609 int count = 0; in imx_pcie_link_up()
619 * bus (0x01) when the RC boots. in imx_pcie_link_up()
621 * Force the PCIe RC subordinate to 0xff, otherwise no downstream in imx_pcie_link_up()
624 tmp = readl(MX6_DBI_ADDR + 0x18); in imx_pcie_link_up()
625 tmp |= (0xff << 16); in imx_pcie_link_up()
626 writel(tmp, MX6_DBI_ADDR + 0x18); in imx_pcie_link_up()
634 tmp = readl(MX6_DBI_ADDR + 0x7c); in imx_pcie_link_up()
635 tmp &= ~0xf; in imx_pcie_link_up()
636 tmp |= 0x1; in imx_pcie_link_up()
637 writel(tmp, MX6_DBI_ADDR + 0x7c); in imx_pcie_link_up()
649 debug("DEBUG_R0: 0x%08x, DEBUG_R1: 0x%08x\n", in imx_pcie_link_up()
656 return 0; in imx_pcie_link_up()
666 memset(&pcc, 0, sizeof(pcc)); in imx_pcie_init()
669 pci_set_region(&hose->regions[0], in imx_pcie_init()
681 0xefffffff, PCI_REGION_MEM | PCI_REGION_SYS_MEMORY); in imx_pcie_init()