162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Cobalt buttons platform device. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2007 Yoichi Yuasa <yuasa@linux-mips.org> 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include <linux/platform_device.h> 962306a36Sopenharmony_ci#include <linux/errno.h> 1062306a36Sopenharmony_ci#include <linux/init.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cistatic struct resource cobalt_buttons_resource __initdata = { 1362306a36Sopenharmony_ci .start = 0x1d000000, 1462306a36Sopenharmony_ci .end = 0x1d000003, 1562306a36Sopenharmony_ci .flags = IORESOURCE_MEM, 1662306a36Sopenharmony_ci}; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_cistatic __init int cobalt_add_buttons(void) 1962306a36Sopenharmony_ci{ 2062306a36Sopenharmony_ci struct platform_device *pd; 2162306a36Sopenharmony_ci int error; 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci pd = platform_device_alloc("Cobalt buttons", -1); 2462306a36Sopenharmony_ci if (!pd) 2562306a36Sopenharmony_ci return -ENOMEM; 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci error = platform_device_add_resources(pd, &cobalt_buttons_resource, 1); 2862306a36Sopenharmony_ci if (error) 2962306a36Sopenharmony_ci goto err_free_device; 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci error = platform_device_add(pd); 3262306a36Sopenharmony_ci if (error) 3362306a36Sopenharmony_ci goto err_free_device; 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci return 0; 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci err_free_device: 3862306a36Sopenharmony_ci platform_device_put(pd); 3962306a36Sopenharmony_ci return error; 4062306a36Sopenharmony_ci} 4162306a36Sopenharmony_cidevice_initcall(cobalt_add_buttons); 42