1/* linux/arch/arm/plat-samsung/platformdata.c 2 * 3 * Copyright 2010 Ben Dooks <ben-linux <at> fluff.org> 4 * 5 * Helper for platform data setting 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as 9 * published by the Free Software Foundation. 10*/ 11 12#include <linux/kernel.h> 13#include <linux/string.h> 14#include <linux/platform_device.h> 15 16#include <plat/devs.h> 17 18void __init *s3c_set_platdata(void *pd, size_t pdsize, 19 struct platform_device *pdev) 20{ 21 void *npd; 22 23 if (!pd) { 24 /* too early to use dev_name(), may not be registered */ 25 printk(KERN_ERR "%s: no platform data supplied\n", pdev->name); 26 return NULL; 27 } 28 29 npd = kmemdup(pd, pdsize, GFP_KERNEL); 30 if (!npd) { 31 printk(KERN_ERR "%s: cannot clone platform data\n", pdev->name); 32 return NULL; 33 } 34 35 pdev->dev.platform_data = npd; 36 return npd; 37} 38