mirror of https://gitee.com/openkylin/linux.git
Allwinner fixes for 4.15
First, one fix that adds proper regulator references for the EMAC external PHYs on A64 boards. The EMAC bindings were developed for 4.13, but reverted at the last minute. They were finalized and brought back for 4.15. However in the time between, regulator support for the A64 boards was merged. When EMAC device tree changes were reintroduced, this was not taken into account. Second, a patch that adds OF based modalias uevent for RSB slave devices. This has been missing since the introduction of RSB, and recently with PMIC regulator support introduced for the A64, has been seen affecting distributions, which have the all-important PMIC mfd drivers built as modules, which then don't get loaded. Other minor cleanups include final conversion of raw indices to CCU binding macros for sun[4567]i HDMI, cleanup of dummy regulators on the A64 SOPINE, a SD card detection polarity fix for the Orange Pi Zero Plus2, and adding a missing compatible for the PMIC on the TBS A711 tablet. -----BEGIN PGP SIGNATURE----- iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAlpDPAcOHHdlbnNAY3Np ZS5vcmcACgkQOJpUIZwPJDCj9xAA2Y0NblMi896otrTDEtskSXqoUfQeX+fqeOfX xBK9+1IrFJ+KiA5zC1Hs7wYMYG/AlvGBgpxpp+UnX1TPojIPydCLwmJuPrdaniJ7 O3OqiK5m0Dpp/tj4zdeJE3bDdFRg3QrCYIRljpHlKEXDAoBehWwIjwniw7jjcLyG 5V1hO11sGLclDhN14ezs3blsQDjtUEG4CA3YgIwgRTEFVzKfZ2GyHPUi1myE+ItM 5egZVPGCaiQPUf4HcB3rvX3xJNEaumQ1S1e/WZKnG5KEZfKqDkfqu1IRhnn8kIvo xmRdcSi1p7iHlBquHwwntsTB3cxr7xEu6kRlGBU4yTFTVpDJsMZntRdDQHQ50jMJ edRR4IqOVUETD7PQGIhK9qNq3UqiKDAvBJ99xhV2tvsJse+p2urbRCaCUwueRLKi GLha3Y0U3Na7+Q4ODpLwelEIkR+NcSxLfHjovEs3EecUFqEFxiIkc+7bdZq8mGJP UX31dDFHW6CjIEAVeHLLhBuU+01KPYXlwc4s1bEReu2/OBDE+KK0rOcrIpumxBp5 LjXW+s/sUVGZ5sbQ+3wr32/cEQf133O+AqN4S7vZ2p5AIrm6J2vzjRaxZvEFlfy6 NbxnW3Bkt0Pu70oe6KQh4FvSVXVL9XLB/5nKoCsOMxlKYmHinC+j+IHd7oDI1zv4 ScbIRN0= =FCgU -----END PGP SIGNATURE----- Merge tag 'sunxi-fixes-for-4.15' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into fixes Pull "Allwinner fixes for 4.15" from Chen-Yu Tsai: First, one fix that adds proper regulator references for the EMAC external PHYs on A64 boards. The EMAC bindings were developed for 4.13, but reverted at the last minute. They were finalized and brought back for 4.15. However in the time between, regulator support for the A64 boards was merged. When EMAC device tree changes were reintroduced, this was not taken into account. Second, a patch that adds OF based modalias uevent for RSB slave devices. This has been missing since the introduction of RSB, and recently with PMIC regulator support introduced for the A64, has been seen affecting distributions, which have the all-important PMIC mfd drivers built as modules, which then don't get loaded. Other minor cleanups include final conversion of raw indices to CCU binding macros for sun[4567]i HDMI, cleanup of dummy regulators on the A64 SOPINE, a SD card detection polarity fix for the Orange Pi Zero Plus2, and adding a missing compatible for the PMIC on the TBS A711 tablet. * tag 'sunxi-fixes-for-4.15' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: ARM: dts: sun8i: a711: Reinstate the PMIC compatible arm64: dts: orange-pi-zero-plus2: fix sdcard detect arm64: allwinner: a64-sopine: Fix to use dcdc1 regulator instead of vcc3v3 ARM: dts: sunxi: Convert to CCU index macros for HDMI controller sunxi-rsb: Include OF based modalias in device uevent arm64: allwinner: a64: add Ethernet PHY regulator for several boards
This commit is contained in:
commit
d84baa5a62
|
@ -502,8 +502,8 @@ hdmi: hdmi@1c16000 {
|
||||||
reg = <0x01c16000 0x1000>;
|
reg = <0x01c16000 0x1000>;
|
||||||
interrupts = <58>;
|
interrupts = <58>;
|
||||||
clocks = <&ccu CLK_AHB_HDMI0>, <&ccu CLK_HDMI>,
|
clocks = <&ccu CLK_AHB_HDMI0>, <&ccu CLK_HDMI>,
|
||||||
<&ccu 9>,
|
<&ccu CLK_PLL_VIDEO0_2X>,
|
||||||
<&ccu 18>;
|
<&ccu CLK_PLL_VIDEO1_2X>;
|
||||||
clock-names = "ahb", "mod", "pll-0", "pll-1";
|
clock-names = "ahb", "mod", "pll-0", "pll-1";
|
||||||
dmas = <&dma SUN4I_DMA_NORMAL 16>,
|
dmas = <&dma SUN4I_DMA_NORMAL 16>,
|
||||||
<&dma SUN4I_DMA_NORMAL 16>,
|
<&dma SUN4I_DMA_NORMAL 16>,
|
||||||
|
|
|
@ -82,8 +82,8 @@ hdmi: hdmi@1c16000 {
|
||||||
reg = <0x01c16000 0x1000>;
|
reg = <0x01c16000 0x1000>;
|
||||||
interrupts = <58>;
|
interrupts = <58>;
|
||||||
clocks = <&ccu CLK_AHB_HDMI>, <&ccu CLK_HDMI>,
|
clocks = <&ccu CLK_AHB_HDMI>, <&ccu CLK_HDMI>,
|
||||||
<&ccu 9>,
|
<&ccu CLK_PLL_VIDEO0_2X>,
|
||||||
<&ccu 16>;
|
<&ccu CLK_PLL_VIDEO1_2X>;
|
||||||
clock-names = "ahb", "mod", "pll-0", "pll-1";
|
clock-names = "ahb", "mod", "pll-0", "pll-1";
|
||||||
dmas = <&dma SUN4I_DMA_NORMAL 16>,
|
dmas = <&dma SUN4I_DMA_NORMAL 16>,
|
||||||
<&dma SUN4I_DMA_NORMAL 16>,
|
<&dma SUN4I_DMA_NORMAL 16>,
|
||||||
|
|
|
@ -429,8 +429,8 @@ hdmi: hdmi@1c16000 {
|
||||||
interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&ccu CLK_AHB1_HDMI>, <&ccu CLK_HDMI>,
|
clocks = <&ccu CLK_AHB1_HDMI>, <&ccu CLK_HDMI>,
|
||||||
<&ccu CLK_HDMI_DDC>,
|
<&ccu CLK_HDMI_DDC>,
|
||||||
<&ccu 7>,
|
<&ccu CLK_PLL_VIDEO0_2X>,
|
||||||
<&ccu 13>;
|
<&ccu CLK_PLL_VIDEO1_2X>;
|
||||||
clock-names = "ahb", "mod", "ddc", "pll-0", "pll-1";
|
clock-names = "ahb", "mod", "ddc", "pll-0", "pll-1";
|
||||||
resets = <&ccu RST_AHB1_HDMI>;
|
resets = <&ccu RST_AHB1_HDMI>;
|
||||||
reset-names = "ahb";
|
reset-names = "ahb";
|
||||||
|
|
|
@ -581,8 +581,8 @@ hdmi: hdmi@1c16000 {
|
||||||
reg = <0x01c16000 0x1000>;
|
reg = <0x01c16000 0x1000>;
|
||||||
interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&ccu CLK_AHB_HDMI0>, <&ccu CLK_HDMI>,
|
clocks = <&ccu CLK_AHB_HDMI0>, <&ccu CLK_HDMI>,
|
||||||
<&ccu 9>,
|
<&ccu CLK_PLL_VIDEO0_2X>,
|
||||||
<&ccu 18>;
|
<&ccu CLK_PLL_VIDEO1_2X>;
|
||||||
clock-names = "ahb", "mod", "pll-0", "pll-1";
|
clock-names = "ahb", "mod", "pll-0", "pll-1";
|
||||||
dmas = <&dma SUN4I_DMA_NORMAL 16>,
|
dmas = <&dma SUN4I_DMA_NORMAL 16>,
|
||||||
<&dma SUN4I_DMA_NORMAL 16>,
|
<&dma SUN4I_DMA_NORMAL 16>,
|
||||||
|
|
|
@ -146,6 +146,7 @@ &r_rsb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp81x: pmic@3a3 {
|
axp81x: pmic@3a3 {
|
||||||
|
compatible = "x-powers,axp813";
|
||||||
reg = <0x3a3>;
|
reg = <0x3a3>;
|
||||||
interrupt-parent = <&r_intc>;
|
interrupt-parent = <&r_intc>;
|
||||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
|
|
@ -75,6 +75,7 @@ &emac {
|
||||||
pinctrl-0 = <&rgmii_pins>;
|
pinctrl-0 = <&rgmii_pins>;
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
phy-handle = <&ext_rgmii_phy>;
|
phy-handle = <&ext_rgmii_phy>;
|
||||||
|
phy-supply = <®_dc1sw>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,7 @@ &emac {
|
||||||
pinctrl-0 = <&rmii_pins>;
|
pinctrl-0 = <&rmii_pins>;
|
||||||
phy-mode = "rmii";
|
phy-mode = "rmii";
|
||||||
phy-handle = <&ext_rmii_phy1>;
|
phy-handle = <&ext_rmii_phy1>;
|
||||||
|
phy-supply = <®_dc1sw>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -82,6 +82,7 @@ &emac {
|
||||||
pinctrl-0 = <&rgmii_pins>;
|
pinctrl-0 = <&rgmii_pins>;
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
phy-handle = <&ext_rgmii_phy>;
|
phy-handle = <&ext_rgmii_phy>;
|
||||||
|
phy-supply = <®_dc1sw>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -95,7 +96,7 @@ ext_rgmii_phy: ethernet-phy@1 {
|
||||||
&mmc2 {
|
&mmc2 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&mmc2_pins>;
|
pinctrl-0 = <&mmc2_pins>;
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_dcdc1>;
|
||||||
vqmmc-supply = <®_vcc1v8>;
|
vqmmc-supply = <®_vcc1v8>;
|
||||||
bus-width = <8>;
|
bus-width = <8>;
|
||||||
non-removable;
|
non-removable;
|
||||||
|
|
|
@ -45,19 +45,10 @@
|
||||||
|
|
||||||
#include "sun50i-a64.dtsi"
|
#include "sun50i-a64.dtsi"
|
||||||
|
|
||||||
/ {
|
|
||||||
reg_vcc3v3: vcc3v3 {
|
|
||||||
compatible = "regulator-fixed";
|
|
||||||
regulator-name = "vcc3v3";
|
|
||||||
regulator-min-microvolt = <3300000>;
|
|
||||||
regulator-max-microvolt = <3300000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&mmc0_pins>;
|
pinctrl-0 = <&mmc0_pins>;
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_dcdc1>;
|
||||||
non-removable;
|
non-removable;
|
||||||
disable-wp;
|
disable-wp;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
|
|
|
@ -71,7 +71,7 @@ &mmc0 {
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
|
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
|
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -178,6 +178,7 @@ static struct bus_type sunxi_rsb_bus = {
|
||||||
.match = sunxi_rsb_device_match,
|
.match = sunxi_rsb_device_match,
|
||||||
.probe = sunxi_rsb_device_probe,
|
.probe = sunxi_rsb_device_probe,
|
||||||
.remove = sunxi_rsb_device_remove,
|
.remove = sunxi_rsb_device_remove,
|
||||||
|
.uevent = of_device_uevent_modalias,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void sunxi_rsb_dev_release(struct device *dev)
|
static void sunxi_rsb_dev_release(struct device *dev)
|
||||||
|
|
Loading…
Reference in New Issue