1 // SPDX-License-Identifier: GPL-2.0-or-later 1 2 /* 3 * Registration of Cobalt UART platform devic 4 * 5 * Copyright (C) 2007 Yoichi Yuasa <yuasa@li 6 */ 7 #include <linux/errno.h> 8 #include <linux/init.h> 9 #include <linux/ioport.h> 10 #include <linux/platform_device.h> 11 #include <linux/serial_8250.h> 12 13 #include <cobalt.h> 14 #include <irq.h> 15 16 static struct resource cobalt_uart_resource[] 17 { 18 .start = 0x1c800000, 19 .end = 0x1c800007, 20 .flags = IORESOURCE_MEM, 21 }, 22 { 23 .start = SERIAL_IRQ, 24 .end = SERIAL_IRQ, 25 .flags = IORESOURCE_IRQ, 26 }, 27 }; 28 29 static struct plat_serial8250_port cobalt_seri 30 { 31 .irq = SERIAL_IRQ, 32 .uartclk = 18432000, 33 .iotype = UPIO_MEM, 34 .flags = UPF_IOREMAP 35 .mapbase = 0x1c800000, 36 }, 37 {}, 38 }; 39 40 static __init int cobalt_uart_add(void) 41 { 42 struct platform_device *pdev; 43 int retval; 44 45 /* 46 * Cobalt Qube1 has no UART. 47 */ 48 if (cobalt_board_id == COBALT_BRD_ID_Q 49 return 0; 50 51 pdev = platform_device_alloc("serial82 52 if (!pdev) 53 return -ENOMEM; 54 55 pdev->id = PLAT8250_DEV_PLATFORM; 56 pdev->dev.platform_data = cobalt_seria 57 58 retval = platform_device_add_resources 59 if (retval) 60 goto err_free_device; 61 62 retval = platform_device_add(pdev); 63 if (retval) 64 goto err_free_device; 65 66 return 0; 67 68 err_free_device: 69 platform_device_put(pdev); 70 71 return retval; 72 } 73 device_initcall(cobalt_uart_add); 74
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.