aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyder Lee <ryder.lee@mediatek.com>2018-02-13 22:27:34 -0500
committerMatthias Brugger <matthias.bgg@gmail.com>2018-03-18 21:39:48 -0400
commitc10a98c4f66bb5d727a6525fd3bb80b4005df123 (patch)
treea277af2751e67a4c285f2e2b5c4c75a0c36aaa48
parent58b369679e43187a147966253fc246081546232c (diff)
arm: dts: mt7623: add PCIe related nodes
This patch adds some device nodes for the PCIe function block and updates related pinmux. Moreover, we add interrupt-map properties in both parent and children as the chip only has one IRQ per slot that is connected to all INTx and get propagated through the bridges and it also represents the root ports own interrupts. Signed-off-by: Ryder Lee <ryder.lee@mediatek.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
-rw-r--r--arch/arm/boot/dts/mt7623.dtsi105
-rw-r--r--arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts30
2 files changed, 135 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/mt7623.dtsi b/arch/arm/boot/dts/mt7623.dtsi
index 56b019bb1022..ead9e1c1184a 100644
--- a/arch/arm/boot/dts/mt7623.dtsi
+++ b/arch/arm/boot/dts/mt7623.dtsi
@@ -679,6 +679,111 @@
679 #reset-cells = <1>; 679 #reset-cells = <1>;
680 }; 680 };
681 681
682 pcie: pcie@1a140000 {
683 compatible = "mediatek,mt7623-pcie";
684 device_type = "pci";
685 reg = <0 0x1a140000 0 0x1000>, /* PCIe shared registers */
686 <0 0x1a142000 0 0x1000>, /* Port0 registers */
687 <0 0x1a143000 0 0x1000>, /* Port1 registers */
688 <0 0x1a144000 0 0x1000>; /* Port2 registers */
689 reg-names = "subsys", "port0", "port1", "port2";
690 #address-cells = <3>;
691 #size-cells = <2>;
692 #interrupt-cells = <1>;
693 interrupt-map-mask = <0xf800 0 0 0>;
694 interrupt-map = <0x0000 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>,
695 <0x0800 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>,
696 <0x1000 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
697 clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
698 <&hifsys CLK_HIFSYS_PCIE0>,
699 <&hifsys CLK_HIFSYS_PCIE1>,
700 <&hifsys CLK_HIFSYS_PCIE2>;
701 clock-names = "free_ck", "sys_ck0", "sys_ck1", "sys_ck2";
702 resets = <&hifsys MT2701_HIFSYS_PCIE0_RST>,
703 <&hifsys MT2701_HIFSYS_PCIE1_RST>,
704 <&hifsys MT2701_HIFSYS_PCIE2_RST>;
705 reset-names = "pcie-rst0", "pcie-rst1", "pcie-rst2";
706 phys = <&pcie0_port PHY_TYPE_PCIE>,
707 <&pcie1_port PHY_TYPE_PCIE>,
708 <&u3port1 PHY_TYPE_PCIE>;
709 phy-names = "pcie-phy0", "pcie-phy1", "pcie-phy2";
710 power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
711 bus-range = <0x00 0xff>;
712 status = "disabled";
713 ranges = <0x81000000 0 0x1a160000 0 0x1a160000 0 0x00010000
714 0x83000000 0 0x60000000 0 0x60000000 0 0x10000000>;
715
716 pcie@0,0 {
717 reg = <0x0000 0 0 0 0>;
718 #address-cells = <3>;
719 #size-cells = <2>;
720 #interrupt-cells = <1>;
721 interrupt-map-mask = <0 0 0 0>;
722 interrupt-map = <0 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>;
723 ranges;
724 num-lanes = <1>;
725 status = "disabled";
726 };
727
728 pcie@1,0 {
729 reg = <0x0800 0 0 0 0>;
730 #address-cells = <3>;
731 #size-cells = <2>;
732 #interrupt-cells = <1>;
733 interrupt-map-mask = <0 0 0 0>;
734 interrupt-map = <0 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>;
735 ranges;
736 num-lanes = <1>;
737 status = "disabled";
738 };
739
740 pcie@2,0 {
741 reg = <0x1000 0 0 0 0>;
742 #address-cells = <3>;
743 #size-cells = <2>;
744 #interrupt-cells = <1>;
745 interrupt-map-mask = <0 0 0 0>;
746 interrupt-map = <0 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
747 ranges;
748 num-lanes = <1>;
749 status = "disabled";
750 };
751 };
752
753 pcie0_phy: pcie-phy@1a149000 {
754 compatible = "mediatek,generic-tphy-v1";
755 reg = <0 0x1a149000 0 0x0700>;
756 #address-cells = <2>;
757 #size-cells = <2>;
758 ranges;
759 status = "disabled";
760
761 pcie0_port: pcie-phy@1a149900 {
762 reg = <0 0x1a149900 0 0x0700>;
763 clocks = <&clk26m>;
764 clock-names = "ref";
765 #phy-cells = <1>;
766 status = "okay";
767 };
768 };
769
770 pcie1_phy: pcie-phy@1a14a000 {
771 compatible = "mediatek,generic-tphy-v1";
772 reg = <0 0x1a14a000 0 0x0700>;
773 #address-cells = <2>;
774 #size-cells = <2>;
775 ranges;
776 status = "disabled";
777
778 pcie1_port: pcie-phy@1a14a900 {
779 reg = <0 0x1a14a900 0 0x0700>;
780 clocks = <&clk26m>;
781 clock-names = "ref";
782 #phy-cells = <1>;
783 status = "okay";
784 };
785 };
786
682 usb1: usb@1a1c0000 { 787 usb1: usb@1a1c0000 {
683 compatible = "mediatek,mt7623-xhci", 788 compatible = "mediatek,mt7623-xhci",
684 "mediatek,mt8173-xhci"; 789 "mediatek,mt8173-xhci";
diff --git a/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts b/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
index 3e118efefb1f..bbf56f855e46 100644
--- a/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
+++ b/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
@@ -235,6 +235,28 @@
235 vqmmc-supply = <&reg_3p3v>; 235 vqmmc-supply = <&reg_3p3v>;
236}; 236};
237 237
238&pcie {
239 pinctrl-names = "default";
240 pinctrl-0 = <&pcie_default>;
241 status = "okay";
242
243 pcie@0,0 {
244 status = "okay";
245 };
246
247 pcie@1,0 {
248 status = "okay";
249 };
250};
251
252&pcie0_phy {
253 status = "okay";
254};
255
256&pcie1_phy {
257 status = "okay";
258};
259
238&pio { 260&pio {
239 cir_pins_a:cir@0 { 261 cir_pins_a:cir@0 {
240 pins-cir { 262 pins-cir {
@@ -402,6 +424,14 @@
402 }; 424 };
403 }; 425 };
404 426
427 pcie_default: pcie_pin_default {
428 pins_cmd_dat {
429 pinmux = <MT7623_PIN_208_AUD_EXT_CK1_FUNC_PCIE0_PERST_N>,
430 <MT7623_PIN_209_AUD_EXT_CK2_FUNC_PCIE1_PERST_N>;
431 bias-disable;
432 };
433 };
434
405 pwm_pins_a: pwm@0 { 435 pwm_pins_a: pwm@0 {
406 pins-pwm { 436 pins-pwm {
407 pinmux = <MT7623_PIN_203_PWM0_FUNC_PWM0>, 437 pinmux = <MT7623_PIN_203_PWM0_FUNC_PWM0>,