Lines Matching refs:config

57 	struct spear_pcie_gadget_config config;  member
62 ssize_t (*show)(struct spear_pcie_gadget_config *config,
64 ssize_t (*store)(struct spear_pcie_gadget_config *config,
89 static void spear_dbi_read_reg(struct spear_pcie_gadget_config *config, in spear_dbi_read_reg() argument
92 struct pcie_app_reg __iomem *app_reg = config->va_app_base; in spear_dbi_read_reg()
98 va_address = (ulong)config->va_dbi_base + (where & ~0x3); in spear_dbi_read_reg()
111 static void spear_dbi_write_reg(struct spear_pcie_gadget_config *config, in spear_dbi_write_reg() argument
114 struct pcie_app_reg __iomem *app_reg = config->va_app_base; in spear_dbi_write_reg()
120 va_address = (ulong)config->va_dbi_base + (where & ~0x3); in spear_dbi_write_reg()
135 static int pci_find_own_next_cap_ttl(struct spear_pcie_gadget_config *config, in pci_find_own_next_cap_ttl() argument
141 spear_dbi_read_reg(config, pos, 1, &pos); in pci_find_own_next_cap_ttl()
145 spear_dbi_read_reg(config, pos + PCI_CAP_LIST_ID, 1, &id); in pci_find_own_next_cap_ttl()
155 static int pci_find_own_next_cap(struct spear_pcie_gadget_config *config, in pci_find_own_next_cap() argument
160 return pci_find_own_next_cap_ttl(config, pos, cap, &ttl); in pci_find_own_next_cap()
163 static int pci_find_own_cap_start(struct spear_pcie_gadget_config *config, in pci_find_own_cap_start() argument
168 spear_dbi_read_reg(config, PCI_STATUS, 2, &status); in pci_find_own_cap_start()
200 static int pci_find_own_capability(struct spear_pcie_gadget_config *config, in pci_find_own_capability() argument
206 spear_dbi_read_reg(config, PCI_HEADER_TYPE, 1, &hdr_type); in pci_find_own_capability()
208 pos = pci_find_own_cap_start(config, hdr_type); in pci_find_own_capability()
210 pos = pci_find_own_next_cap(config, pos, cap); in pci_find_own_capability()
266 struct spear_pcie_gadget_config *config = to_target(item) in pcie_gadget_int_type_store() local
271 spear_dbi_write_reg(config, PCI_INTERRUPT_LINE, 1, 1); in pcie_gadget_int_type_store()
274 vector = config->requested_msi; in pcie_gadget_int_type_store()
280 spear_dbi_write_reg(config, PCI_INTERRUPT_LINE, 1, 0); in pcie_gadget_int_type_store()
281 cap = pci_find_own_capability(config, PCI_CAP_ID_MSI); in pcie_gadget_int_type_store()
282 spear_dbi_read_reg(config, cap + PCI_MSI_FLAGS, 1, &flags); in pcie_gadget_int_type_store()
285 spear_dbi_write_reg(config, cap + PCI_MSI_FLAGS, 1, flags); in pcie_gadget_int_type_store()
289 strcpy(config->int_type, buf); in pcie_gadget_int_type_store()
296 struct spear_pcie_gadget_config *config = to_target(item) in pcie_gadget_no_of_msi_show() local
305 cap = pci_find_own_capability(config, PCI_CAP_ID_MSI); in pcie_gadget_no_of_msi_show()
306 spear_dbi_read_reg(config, cap + PCI_MSI_FLAGS, 1, &flags); in pcie_gadget_no_of_msi_show()
313 config->configured_msi = vector; in pcie_gadget_no_of_msi_show()
327 if (config->requested_msi > 32) in pcie_gadget_no_of_msi_store()
328 config->requested_msi = 32; in pcie_gadget_no_of_msi_store()
357 struct spear_pcie_gadget_config *config = to_target(item) in pcie_gadget_send_msi_store() local
358 struct pcie_app_reg __iomem *app_reg = config->va_app_base; in pcie_gadget_send_msi_store()
367 if (!config->configured_msi) in pcie_gadget_send_msi_store()
370 if (vector >= config->configured_msi) in pcie_gadget_send_msi_store()
447 struct spear_pcie_gadget_config *config = to_target(item) in pcie_gadget_bar0_size_store() local
478 config->bar0_size = size; in pcie_gadget_bar0_size_store()
479 spear_dbi_write_reg(config, PCIE_BAR0_MASK_REG, 4, size - 1); in pcie_gadget_bar0_size_store()
497 struct spear_pcie_gadget_config *config = to_target(item) in pcie_gadget_bar0_address_store() local
498 struct pcie_app_reg __iomem *app_reg = config->va_app_base; in pcie_gadget_bar0_address_store()
506 address &= ~(config->bar0_size - 1); in pcie_gadget_bar0_address_store()
507 if (config->va_bar0_address) in pcie_gadget_bar0_address_store()
508 iounmap(config->va_bar0_address); in pcie_gadget_bar0_address_store()
509 config->va_bar0_address = ioremap(address, config->bar0_size); in pcie_gadget_bar0_address_store()
510 if (!config->va_bar0_address) in pcie_gadget_bar0_address_store()
544 struct spear_pcie_gadget_config *config = to_target(item) in pcie_gadget_bar0_data_show() local
547 if (!config->va_bar0_address) in pcie_gadget_bar0_data_show()
550 data = readl((ulong)config->va_bar0_address + config->bar0_rw_offset); in pcie_gadget_bar0_data_show()
558 struct spear_pcie_gadget_config *config = to_target(item) in pcie_gadget_bar0_data_store() local
566 if (!config->va_bar0_address) in pcie_gadget_bar0_data_store()
569 writel(data, (ulong)config->va_bar0_address + config->bar0_rw_offset); in pcie_gadget_bar0_data_store()
606 static void spear13xx_pcie_device_init(struct spear_pcie_gadget_config *config) in spear13xx_pcie_device_init() argument
608 struct pcie_app_reg __iomem *app_reg = config->va_app_base; in spear13xx_pcie_device_init()
612 writel(config->base, &app_reg->in0_mem_addr_start); in spear13xx_pcie_device_init()
638 config->bar0_size = INBOUND_ADDR_MASK + 1; in spear13xx_pcie_device_init()
639 spear_dbi_write_reg(config, PCIE_BAR0_MASK_REG, 4, INBOUND_ADDR_MASK); in spear13xx_pcie_device_init()
640 spear_dbi_write_reg(config, PCI_BASE_ADDRESS_0, 4, 0xC); in spear13xx_pcie_device_init()
641 config->va_bar0_address = ioremap(SPEAR13XX_SYSRAM1_BASE, in spear13xx_pcie_device_init()
642 config->bar0_size); in spear13xx_pcie_device_init()
659 spear_dbi_write_reg(config, PCI_INTERRUPT_LINE, 1, 1); in spear13xx_pcie_device_init()
669 struct spear_pcie_gadget_config *config; in spear_pcie_gadget_probe() local
682 config = &target->config; in spear_pcie_gadget_probe()
686 config->va_app_base = devm_ioremap_resource(&pdev->dev, res0); in spear_pcie_gadget_probe()
687 if (IS_ERR(config->va_app_base)) { in spear_pcie_gadget_probe()
689 return PTR_ERR(config->va_app_base); in spear_pcie_gadget_probe()
694 config->base = (void __iomem *)res1->start; in spear_pcie_gadget_probe()
696 config->va_dbi_base = devm_ioremap_resource(&pdev->dev, res1); in spear_pcie_gadget_probe()
697 if (IS_ERR(config->va_dbi_base)) { in spear_pcie_gadget_probe()
699 return PTR_ERR(config->va_dbi_base); in spear_pcie_gadget_probe()
763 spear13xx_pcie_device_init(config); in spear_pcie_gadget_probe()