From ead7a910c0d89404cdaafbf915473b93eaae6dc3 Mon Sep 17 00:00:00 2001 From: gwl Date: Wed, 19 Mar 2014 11:23:53 +0800 Subject: [PATCH] Wifi:Bt: add wifi & bt resources into rk3288 dts. --- arch/arm/boot/dts/rk3188-tb.dts | 2 +- arch/arm/boot/dts/rk3288-tb.dts | 35 ++++++++++++++++++- .../rockchip_wlan/rkwifi/bcmdhd/dhd_gpio.c | 5 +-- include/linux/rfkill-wlan.h | 1 + net/rfkill/rfkill-wlan.c | 29 +++++++++++++++ 5 files changed, 66 insertions(+), 6 deletions(-) diff --git a/arch/arm/boot/dts/rk3188-tb.dts b/arch/arm/boot/dts/rk3188-tb.dts index a9b5be87f7d3..50592699705f 100755 --- a/arch/arm/boot/dts/rk3188-tb.dts +++ b/arch/arm/boot/dts/rk3188-tb.dts @@ -182,7 +182,7 @@ supports-highspeed; supports-sdio; - cap-sdio-irq; + //cap-sdio-irq; status = "okay"; }; diff --git a/arch/arm/boot/dts/rk3288-tb.dts b/arch/arm/boot/dts/rk3288-tb.dts index 5a761dff88e8..da2b20bf991c 100755 --- a/arch/arm/boot/dts/rk3288-tb.dts +++ b/arch/arm/boot/dts/rk3288-tb.dts @@ -8,6 +8,39 @@ status = "okay"; }; + wireless-wlan { + compatible = "wlan-platdata"; + + wifi_chip_type = ""; + sdio_vref = <28000>; + + //power_ctrl_by_pmu; + pmu_regulator = "act_ldo3"; + pmu_enable_level = <1>; //1->HIGH, 0->LOW + + WIFI,poweren_gpio = <&gpio4 GPIO_D4 GPIO_ACTIVE_HIGH>; + WIFI,host_wake_irq = <&gpio4 GPIO_D6 GPIO_ACTIVE_HIGH>; + //WIFI,reset_gpio = <&gpio0 GPIO_A2 GPIO_ACTIVE_LOW>; + + status = "okay"; + }; + + wireless-bluetooth { + compatible = "bluetooth-platdata"; + + uart_rts_gpios = <&gpio4 GPIO_C3 GPIO_ACTIVE_LOW>; + pinctrl-names = "default","rts_gpio"; + pinctrl-0 = <&uart0_rts>; + pinctrl-1 = <&uart0_rts_gpio>; + + BT,power_gpio = <&gpio4 GPIO_D3 GPIO_ACTIVE_HIGH>; + BT,reset_gpio = <&gpio4 GPIO_D5 GPIO_ACTIVE_HIGH>; + BT,wake_gpio = <&gpio4 GPIO_D2 GPIO_ACTIVE_HIGH>; + BT,wake_host_irq = <&gpio4 GPIO_D7 GPIO_ACTIVE_LOW>; + + status = "okay"; + }; + backlight { compatible = "pwm-backlight"; pwms = <&pwm0 0 25000>; @@ -80,7 +113,7 @@ supports-highspeed; supports-sdio; - cap-sdio-irq; + //cap-sdio-irq; status = "diabled"; }; diff --git a/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_gpio.c b/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_gpio.c index 79103d69761c..e9c09604c26b 100644 --- a/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_gpio.c +++ b/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_gpio.c @@ -37,10 +37,7 @@ #ifdef CUSTOMER_OOB int bcm_wlan_get_oob_irq(void) { - int host_oob_irq = 0; - - - return host_oob_irq; + return rockchip_wifi_get_oob_irq(); } #endif diff --git a/include/linux/rfkill-wlan.h b/include/linux/rfkill-wlan.h index 7d80cee25d37..2c1849b28448 100755 --- a/include/linux/rfkill-wlan.h +++ b/include/linux/rfkill-wlan.h @@ -41,6 +41,7 @@ struct rksdmmc_gpio_wifi_moudle { void *rockchip_mem_prealloc(int section, unsigned long size); int rockchip_wifi_power(int on); int rockchip_wifi_set_carddetect(void); +int rockchip_wifi_get_oob_irq(void); int rockchip_wifi_reset(int on); int rockchip_wifi_mac_addr(unsigned char *buf); void *rockchip_wifi_country_code(char *ccode); diff --git a/net/rfkill/rfkill-wlan.c b/net/rfkill/rfkill-wlan.c index 49789bca1fe5..0b449fb9733b 100755 --- a/net/rfkill/rfkill-wlan.c +++ b/net/rfkill/rfkill-wlan.c @@ -275,6 +275,35 @@ int rockchip_wifi_set_carddetect(void) } EXPORT_SYMBOL(rockchip_wifi_set_carddetect); +/************************************************************************** + * + * Wifi Get Interrupt irq Func + * + *************************************************************************/ +int rockchip_wifi_get_oob_irq(void) +{ + struct rfkill_wlan_data *mrfkill = g_rfkill; + struct rksdmmc_gpio *wifi_int_irq; + + LOG("%s: Enter\n", __func__); + + if (mrfkill == NULL) { + LOG("%s: rfkill-wlan driver has not Successful initialized\n", __func__); + return -1; + } + + wifi_int_irq = &mrfkill->pdata->wifi_int_b; + if (gpio_is_valid(wifi_int_irq->io)) { + return gpio_to_irq(wifi_int_irq->io); + //return wifi_int_irq->io; + } else { + LOG("%s: wifi OOB pin isn't defined.\n", __func__); + } + + return -1; +} +EXPORT_SYMBOL(rockchip_wifi_get_oob_irq); + /************************************************************************** * * Wifi Reset Func -- 2.34.1