Lines Matching +full:lpc +full:- +full:io +full:- +full:reg

1 // SPDX-License-Identifier: GPL-2.0-only
6 #include <linux/io.h>
9 #include "mcb-internal.h"
52 return -ENOMEM; in chameleon_parse_gdd()
54 reg1 = readl(&gdd->reg1); in chameleon_parse_gdd()
55 reg2 = readl(&gdd->reg2); in chameleon_parse_gdd()
56 offset = readl(&gdd->offset); in chameleon_parse_gdd()
57 size = readl(&gdd->size); in chameleon_parse_gdd()
59 mdev->id = GDD_DEV(reg1); in chameleon_parse_gdd()
60 mdev->rev = GDD_REV(reg1); in chameleon_parse_gdd()
61 mdev->var = GDD_VAR(reg1); in chameleon_parse_gdd()
62 mdev->bar = GDD_BAR(reg2); in chameleon_parse_gdd()
63 mdev->group = GDD_GRP(reg2); in chameleon_parse_gdd()
64 mdev->inst = GDD_INS(reg2); in chameleon_parse_gdd()
68 * device is IO mapped we just print a warning and go on with the in chameleon_parse_gdd()
71 if (mdev->bar > bar_count - 1) { in chameleon_parse_gdd()
72 pr_info("No BAR for 16z%03d\n", mdev->id); in chameleon_parse_gdd()
77 dev_mapbase = cb[mdev->bar].addr; in chameleon_parse_gdd()
79 pr_info("BAR not assigned for 16z%03d\n", mdev->id); in chameleon_parse_gdd()
85 pr_info("IO mapped Device (16z%03d) not yet supported\n", in chameleon_parse_gdd()
86 mdev->id); in chameleon_parse_gdd()
91 pr_debug("Found a 16z%03d\n", mdev->id); in chameleon_parse_gdd()
93 mdev->irq.start = GDD_IRQ(reg1); in chameleon_parse_gdd()
94 mdev->irq.end = GDD_IRQ(reg1); in chameleon_parse_gdd()
95 mdev->irq.flags = IORESOURCE_IRQ; in chameleon_parse_gdd()
97 mdev->mem.start = dev_mapbase + offset; in chameleon_parse_gdd()
99 mdev->mem.end = mdev->mem.start + size - 1; in chameleon_parse_gdd()
100 mdev->mem.flags = IORESOURCE_MEM; in chameleon_parse_gdd()
102 mdev->is_added = false; in chameleon_parse_gdd()
138 __le32 reg; in chameleon_get_bar() local
143 * to the PCI Bus (e.g. LPC) there is a bar in chameleon_get_bar()
150 reg = readl(*base); in chameleon_get_bar()
152 bar_count = BAR_CNT(reg); in chameleon_get_bar()
154 return -ENODEV; in chameleon_get_bar()
159 return -ENOMEM; in chameleon_get_bar()
166 return -ENOMEM; in chameleon_get_bar()
169 c->addr = mapbase; in chameleon_get_bar()
193 return -ENOMEM; in chameleon_parse_cells()
198 header->magic = le16_to_cpu(header->magic); in chameleon_parse_cells()
199 if (header->magic != CHAMELEONV2_MAGIC) { in chameleon_parse_cells()
201 header->magic); in chameleon_parse_cells()
202 ret = -ENODEV; in chameleon_parse_cells()
207 bus->revision = header->revision; in chameleon_parse_cells()
208 bus->model = header->model; in chameleon_parse_cells()
209 bus->minor = header->minor; in chameleon_parse_cells()
210 snprintf(bus->name, CHAMELEON_FILENAME_LEN + 1, "%s", in chameleon_parse_cells()
211 header->filename); in chameleon_parse_cells()
236 ret = -EINVAL; in chameleon_parse_cells()
243 num_cells = -EINVAL; in chameleon_parse_cells()