mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-03 07:38:10 +00:00
MIPS: DTS: CI20: Enable support for WiFi / Bluetooth
Wire the WiFi/Bluetooth chip properly in the Device Tree. - Provide it with the correct regulators and clocks; - Change the MMC I/O bus to 1.8V which seems to be enough; - Change the MMC I/O bus frequency to 25 MHz as 50 MHz causes errors; - Fix the Bluetooth powerdown GPIO being inverted and add reset GPIO; - Convert host-wakeup-gpios to IRQ. With these changes, the WiFi works properly with the latest firmware provided by linux-firmware. The Bluetooth does not work very well here, as I cannot get my wireless keyboard to pair; but it does detect it, and it does see the key presses when I type the pairing code. Signed-off-by: Paul Cercueil <paul@crapouillou.net> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
This commit is contained in:
parent
868b70b9e6
commit
c9f4b25272
1 changed files with 73 additions and 15 deletions
|
@ -97,10 +97,15 @@ ir: ir {
|
|||
gpios = <&gpe 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wlan0_power: fixedregulator-1 {
|
||||
bt_power: fixedregulator-1 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "wlan0_power";
|
||||
regulator-name = "bt_power";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-settling-time-us = <1400>;
|
||||
|
||||
vin-supply = <&vcc_50>;
|
||||
|
||||
gpio = <&gpb 19 0>;
|
||||
enable-active-high;
|
||||
|
@ -116,6 +121,40 @@ otg_power: fixedregulator-2 {
|
|||
gpio = <&gpf 15 0>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
wifi_power: fixedregulator-4 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "wifi_power";
|
||||
|
||||
/*
|
||||
* Technically it's 5V, the WiFi chip has its own internal
|
||||
* regulators; but the MMC/SD subsystem won't accept such a
|
||||
* value.
|
||||
*/
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-settling-time-us = <150000>;
|
||||
|
||||
vin-supply = <&bt_power>;
|
||||
};
|
||||
|
||||
vcc_33v: fixedregulator-5 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "vcc_33v";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
wifi_pwrseq: pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&gpf 7 GPIO_ACTIVE_LOW>;
|
||||
|
||||
clocks = <&rtc_dev>;
|
||||
clock-names = "ext_clock";
|
||||
};
|
||||
};
|
||||
|
||||
&ext {
|
||||
|
@ -161,24 +200,33 @@ &mmc0 {
|
|||
pinctrl-0 = <&pins_mmc0>;
|
||||
|
||||
cd-gpios = <&gpf 20 GPIO_ACTIVE_LOW>;
|
||||
vmmc-supply = <&vcc_33v>;
|
||||
vqmmc-supply = <&vcc_33v>;
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
status = "okay";
|
||||
|
||||
bus-width = <4>;
|
||||
max-frequency = <50000000>;
|
||||
max-frequency = <25000000>;
|
||||
mmc-pwrseq = <&wifi_pwrseq>;
|
||||
vmmc-supply = <&wifi_power>;
|
||||
vqmmc-supply = <&wifi_io>;
|
||||
non-removable;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pins_mmc1>;
|
||||
|
||||
brcmf: wifi@1 {
|
||||
/* reg = <4>;*/
|
||||
compatible = "brcm,bcm4330-fmac";
|
||||
vcc-supply = <&wlan0_power>;
|
||||
device-wakeup-gpios = <&gpd 9 GPIO_ACTIVE_HIGH>;
|
||||
shutdown-gpios = <&gpf 7 GPIO_ACTIVE_LOW>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
wifi@1 {
|
||||
compatible = "brcm,bcm4329-fmac";
|
||||
reg = <1>;
|
||||
|
||||
interrupt-parent = <&gpd>;
|
||||
interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
|
||||
interrupt-names = "host-wake";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -205,11 +253,20 @@ &uart2 {
|
|||
|
||||
bluetooth {
|
||||
compatible = "brcm,bcm4330-bt";
|
||||
reset-gpios = <&gpf 8 GPIO_ACTIVE_HIGH>;
|
||||
vcc-supply = <&wlan0_power>;
|
||||
|
||||
vbat-supply = <&bt_power>;
|
||||
vddio-supply = <&wifi_io>;
|
||||
|
||||
interrupt-parent = <&gpf>;
|
||||
interrupts = <6 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "host-wakeup";
|
||||
|
||||
clocks = <&rtc_dev>;
|
||||
clock-names = "lpo";
|
||||
|
||||
reset-gpios = <&gpf 8 GPIO_ACTIVE_LOW>;
|
||||
device-wakeup-gpios = <&gpf 5 GPIO_ACTIVE_HIGH>;
|
||||
host-wakeup-gpios = <&gpf 6 GPIO_ACTIVE_HIGH>;
|
||||
shutdown-gpios = <&gpf 4 GPIO_ACTIVE_LOW>;
|
||||
shutdown-gpios = <&gpf 4 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -270,8 +327,9 @@ vcc_25: LDO5 {
|
|||
regulator-always-on;
|
||||
};
|
||||
wifi_io: LDO6 {
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-settling-time-us = <150000>;
|
||||
inl-supply = <&vcc_33v>;
|
||||
};
|
||||
cim_io_28: LDO7 {
|
||||
|
|
Loading…
Reference in a new issue