Lines Matching refs:mdev
28 static u32 men_lookup_uartclk(struct mcb_device *mdev) in men_lookup_uartclk() argument
33 dev_info(&mdev->dev, "%s on board %s\n", in men_lookup_uartclk()
34 dev_name(&mdev->dev), in men_lookup_uartclk()
35 mdev->bus->name); in men_lookup_uartclk()
36 if (strncmp(mdev->bus->name, "F075", 4) == 0) in men_lookup_uartclk()
38 else if (strncmp(mdev->bus->name, "F216", 4) == 0) in men_lookup_uartclk()
40 else if (strncmp(mdev->bus->name, "G215", 4) == 0) in men_lookup_uartclk()
42 else if (strncmp(mdev->bus->name, "F210", 4) == 0) in men_lookup_uartclk()
45 dev_info(&mdev->dev, in men_lookup_uartclk()
53 static unsigned int get_num_ports(struct mcb_device *mdev, in get_num_ports() argument
56 switch (mdev->id) { in get_num_ports()
64 dev_err(&mdev->dev, "no supported device!\n"); in get_num_ports()
69 static int serial_8250_men_mcb_probe(struct mcb_device *mdev, in serial_8250_men_mcb_probe() argument
78 mem = mcb_get_resource(mdev, IORESOURCE_MEM); in serial_8250_men_mcb_probe()
81 membase = devm_ioremap_resource(&mdev->dev, mem); in serial_8250_men_mcb_probe()
85 num_ports = get_num_ports(mdev, membase); in serial_8250_men_mcb_probe()
87 dev_dbg(&mdev->dev, "found a 16z%03u with %u ports\n", in serial_8250_men_mcb_probe()
88 mdev->id, num_ports); in serial_8250_men_mcb_probe()
91 dev_err(&mdev->dev, "unexpected number of ports: %u\n", in serial_8250_men_mcb_probe()
96 data = devm_kcalloc(&mdev->dev, num_ports, in serial_8250_men_mcb_probe()
102 mcb_set_drvdata(mdev, data); in serial_8250_men_mcb_probe()
105 data[i].uart.port.dev = mdev->dma_dev; in serial_8250_men_mcb_probe()
112 data[i].uart.port.uartclk = men_lookup_uartclk(mdev); in serial_8250_men_mcb_probe()
114 data[i].uart.port.irq = mcb_get_irq(mdev); in serial_8250_men_mcb_probe()
124 dev_err(&mdev->dev, "unable to register UART port\n"); in serial_8250_men_mcb_probe()
127 dev_info(&mdev->dev, "found MCB UART: ttyS%d\n", data[i].line); in serial_8250_men_mcb_probe()
133 static void serial_8250_men_mcb_remove(struct mcb_device *mdev) in serial_8250_men_mcb_remove() argument
136 struct serial_8250_men_mcb_data *data = mcb_get_drvdata(mdev); in serial_8250_men_mcb_remove()
141 num_ports = get_num_ports(mdev, data[0].uart.port.membase); in serial_8250_men_mcb_remove()
143 dev_err(&mdev->dev, "error retrieving number of ports!\n"); in serial_8250_men_mcb_remove()