18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Cobalt buttons platform device. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2007 Yoichi Yuasa <yuasa@linux-mips.org> 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <linux/platform_device.h> 98c2ecf20Sopenharmony_ci#include <linux/errno.h> 108c2ecf20Sopenharmony_ci#include <linux/init.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cistatic struct resource cobalt_buttons_resource __initdata = { 138c2ecf20Sopenharmony_ci .start = 0x1d000000, 148c2ecf20Sopenharmony_ci .end = 0x1d000003, 158c2ecf20Sopenharmony_ci .flags = IORESOURCE_MEM, 168c2ecf20Sopenharmony_ci}; 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_cistatic __init int cobalt_add_buttons(void) 198c2ecf20Sopenharmony_ci{ 208c2ecf20Sopenharmony_ci struct platform_device *pd; 218c2ecf20Sopenharmony_ci int error; 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci pd = platform_device_alloc("Cobalt buttons", -1); 248c2ecf20Sopenharmony_ci if (!pd) 258c2ecf20Sopenharmony_ci return -ENOMEM; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci error = platform_device_add_resources(pd, &cobalt_buttons_resource, 1); 288c2ecf20Sopenharmony_ci if (error) 298c2ecf20Sopenharmony_ci goto err_free_device; 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci error = platform_device_add(pd); 328c2ecf20Sopenharmony_ci if (error) 338c2ecf20Sopenharmony_ci goto err_free_device; 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci return 0; 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci err_free_device: 388c2ecf20Sopenharmony_ci platform_device_put(pd); 398c2ecf20Sopenharmony_ci return error; 408c2ecf20Sopenharmony_ci} 418c2ecf20Sopenharmony_cidevice_initcall(cobalt_add_buttons); 42