diff options
author | Guodong Xu <guodong.xu@linaro.org> | 2015-02-13 06:51:40 +0800 |
---|---|---|
committer | Guodong Xu <guodong.xu@linaro.org> | 2015-02-15 19:01:58 +0800 |
commit | 0b986a3c7232fde393d1cd66368b784a67333f2c (patch) | |
tree | 9ddd0082375262d71d31e03a4e52d6c613ddc661 | |
parent | 0db9336ae10c335bafec56e44f06923379506ac5 (diff) |
dts: hikey: add device tree info for using TI WL1835 WIFI
Both non-removable and broken-cd are set for dwmmc_2. If only use 'non-removable',
no sdio card detection will happen. If only use 'broken-cd', following error message
will happen periodicly:
[ 601.103290] INFO: task kworker/u16:1:49 blocked for more than 120 seconds.
[ 601.110176] Tainted: G W 3.18.0+ #2
[ 601.115334] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 601.123165] kworker/u16:1 D ffffffc000085598 0 49 2 0x00000000
[ 601.130270] Workqueue: kmmcd mmc_rescan
[ 601.134127] Call trace:
[ 601.136580] [<ffffffc000085598>] __switch_to+0x74/0x8c
[ 601.141722] [<ffffffc000802ba8>] __schedule+0x2b8/0x744
[ 601.146965] [<ffffffc000803058>] schedule+0x24/0x74
[ 601.151852] [<ffffffc000805bc0>] schedule_timeout+0x1b0/0x24c
[ 601.157615] [<ffffffc000803d20>] wait_for_common+0x9c/0x144
[ 601.163193] [<ffffffc000803dd8>] wait_for_completion+0x10/0x1c
Message from sy[ 601.169304] [<ffffffc0006517c4>] mmc_wait_for_req_done+0x34/0xfc
slogd@linaro-dev[ 601.176701] [<ffffffc000651914>] mmc_wait_for_cmd+0x58/0x88
eloper at Jul 3[ 601.183658] [<ffffffc00065804c>] _mmc_select_card+0x44/0x54
18:55:31 ...
[ 601.190595] [<ffffffc000658204>] mmc_select_card+0x14/0x50
kernel:[ 601.1[ 601.197478] [<ffffffc00065aba8>] mmc_sdio_alive+0xc/0x18
34127] Call trac[ 601.204174] [<ffffffc000653ba0>] _mmc_detect_card_removed+0x60/0xf8
e:
[ 601.211805] [<ffffffc00065bd38>] mmc_sdio_detect+0x28/0xc4
[ 601.217732] [<ffffffc000653efc>] mmc_rescan+0x1c0/0x33c
[ 601.222964] [<ffffffc0000c6d9c>] process_one_work+0x13c/0x408
[ 601.228724] [<ffffffc0000c7814>] worker_thread+0x140/0x470
[ 601.234228] [<ffffffc0000cbed8>] kthread+0xd8/0xf0
Signed-off-by: Guodong Xu <guodong.xu@linaro.org>
-rw-r--r-- | arch/arm64/boot/dts/hi6220-hikey.dts | 49 | ||||
-rw-r--r-- | arch/arm64/boot/dts/hi6220.dtsi | 4 |
2 files changed, 49 insertions, 4 deletions
diff --git a/arch/arm64/boot/dts/hi6220-hikey.dts b/arch/arm64/boot/dts/hi6220-hikey.dts index 19656faf87d6..b139d96e5dcc 100644 --- a/arch/arm64/boot/dts/hi6220-hikey.dts +++ b/arch/arm64/boot/dts/hi6220-hikey.dts @@ -119,6 +119,55 @@ &SD_DATA3_cfg_idle>; }; + dwmmc_2: dwmmc2@f723f000 { + broken-cd; + non-removable; + /* WL_EN */ + vmmc-supply = <&wlan_en_reg>; + pinctrl-names = "default", "idle"; + pinctrl-0 = <&SDIO_CLK_cfg_func + &SDIO_CMD_cfg_func + &SDIO_DATA0_cfg_func + &SDIO_DATA1_cfg_func + &SDIO_DATA2_cfg_func + &SDIO_DATA3_cfg_func + &SDIO_CLK_pmx_func + &SDIO_CMD_pmx_func + &SDIO_DATA0_pmx_func + &SDIO_DATA1_pmx_func + &SDIO_DATA2_pmx_func + &SDIO_DATA3_pmx_func>; + pinctrl-1 = <&SDIO_CLK_cfg_idle + &SDIO_CMD_cfg_idle + &SDIO_DATA0_cfg_idle + &SDIO_DATA1_cfg_idle + &SDIO_DATA2_cfg_idle + &SDIO_DATA3_cfg_idle + &SDIO_CLK_pmx_idle + &SDIO_CMD_pmx_idle + &SDIO_DATA0_pmx_idle + &SDIO_DATA1_pmx_idle + &SDIO_DATA2_pmx_idle + &SDIO_DATA3_pmx_idle>; + }; + + wlcore { + compatible = "wlcore"; + /* + * FIXME: The following is complete CRAP since + * the vendor driver doesn't follow the gpio + * binding. Passing in a magic Linux gpio number + * here until we fix the vendor driver. + */ + + /* WL_IRQ, WL_HOST_WAKE_GPIO1_3 */ + gpio = <499>; + /* Use edge irqs for suspend/resume */ + platform-quirks = <1>; + /* WL12XX_REFCLOCK_38_XTAL */ + board-ref-clock = <4>; + }; + kim { compatible = "kim"; pinctrl-names = "default"; diff --git a/arch/arm64/boot/dts/hi6220.dtsi b/arch/arm64/boot/dts/hi6220.dtsi index f63a0c976aa9..b7d25df03969 100644 --- a/arch/arm64/boot/dts/hi6220.dtsi +++ b/arch/arm64/boot/dts/hi6220.dtsi @@ -1048,10 +1048,6 @@ #size-cells = <0x0>; clocks = <&clock_sys HI6220_MMC2_CIUCLK>, <&clock_sys HI6220_MMC2_CLK>; clock-names = "ciu", "biu"; - emmc-ldo-supply = <&ldo2>; - pinctrl-names = "default", "idle"; - pinctrl-0; - pinctrl-1; }; mtcmos { |