1/* 2 * Copyright (C) 2010 Pengutronix 3 * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> 4 * 5 * This program is free software; you can redistribute it and/or modify it under 6 * the terms of the GNU General Public License version 2 as published by the 7 * Free Software Foundation. 8 */ 9#include "../hardware.h" 10#include "devices-common.h" 11 12#define imx_mxc_w1_data_entry_single(soc) \ 13 { \ 14 .iobase = soc ## _OWIRE_BASE_ADDR, \ 15 } 16 17#ifdef CONFIG_SOC_IMX21 18const struct imx_mxc_w1_data imx21_mxc_w1_data __initconst = 19 imx_mxc_w1_data_entry_single(MX21); 20#endif /* ifdef CONFIG_SOC_IMX21 */ 21 22#ifdef CONFIG_SOC_IMX27 23const struct imx_mxc_w1_data imx27_mxc_w1_data __initconst = 24 imx_mxc_w1_data_entry_single(MX27); 25#endif /* ifdef CONFIG_SOC_IMX27 */ 26 27#ifdef CONFIG_SOC_IMX31 28const struct imx_mxc_w1_data imx31_mxc_w1_data __initconst = 29 imx_mxc_w1_data_entry_single(MX31); 30#endif /* ifdef CONFIG_SOC_IMX31 */ 31 32#ifdef CONFIG_SOC_IMX35 33const struct imx_mxc_w1_data imx35_mxc_w1_data __initconst = 34 imx_mxc_w1_data_entry_single(MX35); 35#endif /* ifdef CONFIG_SOC_IMX35 */ 36 37struct platform_device *__init imx_add_mxc_w1( 38 const struct imx_mxc_w1_data *data) 39{ 40 struct resource res[] = { 41 { 42 .start = data->iobase, 43 .end = data->iobase + SZ_4K - 1, 44 .flags = IORESOURCE_MEM, 45 }, 46 }; 47 48 return imx_add_platform_device("mxc_w1", 0, 49 res, ARRAY_SIZE(res), NULL, 0); 50} 51