summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeomho Seo <beomho.seo@samsung.com>2014-05-15 03:41:55 (GMT)
committerBeomho Seo <beomho.seo@samsung.com>2014-05-15 03:41:55 (GMT)
commit45d31955828a12a83d415df59a32ce5f4e4ba647 (patch)
treeef28ec1275f920bf68e9d3bcaa946bdd587bd977
parent97d1a07837b00606d21e9e84a4f2f3ba5fc176bb (diff)
downloadlinux-3.10-devel/tizen.zip
linux-3.10-devel/tizen.tar.gz
linux-3.10-devel/tizen.tar.bz2
WORKAROUND: ARM: dts: add clock property on bt device nodedevel/tizenrefs/changes/82/21082/1
WORKAROUND: Temporary workaround for bluetooth enable. This patch add clock property on rfkill_bt device node. And then, add parse function in rfkill-gpio driver. Change-Id: I8928cf73284c5e56f8b5671cdb8485ac39b7f0e7 Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
-rw-r--r--arch/arm/boot/dts/exynos4412-trats2.dts2
-rw-r--r--net/rfkill/rfkill-gpio.c7
2 files changed, 6 insertions, 3 deletions
diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
index a995b2a..a45b8d2 100644
--- a/arch/arm/boot/dts/exynos4412-trats2.dts
+++ b/arch/arm/boot/dts/exynos4412-trats2.dts
@@ -428,6 +428,8 @@
wake-gpio = <&gpx3 1 0>;
host-wake-gpio = <&gpx2 6 0>;
reset-gpio = <0>;
+ clocks = <&max77686 2>;
+ clock-names = "32khz_pmic";
};
i2c_ak8975: i2c-gpio-0 {
diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c
index 9e746cb..68c34bc 100644
--- a/net/rfkill/rfkill-gpio.c
+++ b/net/rfkill/rfkill-gpio.c
@@ -44,6 +44,7 @@ struct bt_lpm_timer {
struct rfkill_gpio_data {
const char *name;
+ const char *clk_name;
enum rfkill_type type;
int reset_gpio;
int shutdown_gpio;
@@ -172,6 +173,7 @@ static int rfkill_gpio_dt_probe(struct device *dev,
rfkill->name = np->name;
of_property_read_string(np, "rfkill-name", &rfkill->name);
+ of_property_read_string(np, "clock-names", &rfkill->clk_name);
of_property_read_u32(np, "rfkill-type", &rfkill->type);
rfkill->shutdown_gpio = of_get_named_gpio(np, "shutdown-gpio", 0);
rfkill->wake_gpio = of_get_named_gpio(np, "wake-gpio", 0);
@@ -212,7 +214,6 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
{
struct rfkill_gpio_platform_data *pdata = pdev->dev.platform_data;
struct rfkill_gpio_data *rfkill;
- const char *clk_name = NULL;
int ret = 0;
int len = 0;
@@ -225,7 +226,7 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
if (ret)
return ret;
} else if (pdata) {
- clk_name = pdata->power_clk_name;
+ rfkill->clk_name = pdata->power_clk_name;
rfkill->name = pdata->name;
rfkill->type = pdata->type;
rfkill->reset_gpio = pdata->reset_gpio;
@@ -264,7 +265,7 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
snprintf(rfkill->reset_name, len + 6 , "%s_reset", rfkill->name);
snprintf(rfkill->shutdown_name, len + 9, "%s_shutdown", rfkill->name);
- rfkill->clk = devm_clk_get(&pdev->dev, clk_name);
+ rfkill->clk = devm_clk_get(&pdev->dev, rfkill->clk_name);
if (gpio_is_valid(rfkill->reset_gpio)) {
ret = devm_gpio_request_one(&pdev->dev, rfkill->reset_gpio,