Commit 8a6c3e88 authored by Olof Johansson's avatar Olof Johansson

Merge tag 'omap-for-v5.6/ti-sysc-dt-signed' of...

Merge tag 'omap-for-v5.6/ti-sysc-dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/dt

dts changes for omaps for ti-sysc driver for v5.6 merge window

Devicetree changes for omaps to configure more devices to probe with
ti-sysc interconnect target module:

- Configure am4 qspi

- Configure aes, des and sham accelerators for am3, 4 and dra7

- Configure iommus for omap4, 5 and dra7

- Add a generic compatible for sdma, and configure omap2 and 3 sdma

* tag 'omap-for-v5.6/ti-sysc-dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (24 commits)
  ARM: dts: omap5: convert IOMMUs to use ti-sysc
  ARM: dts: omap4: convert IOMMUs to use ti-sysc
  ARM: dts: dra74x: convert IOMMUs to use ti-sysc
  ARM: dts: dra7: convert IOMMUs to use ti-sysc
  ARM: dts: Configure interconnect target module for dra7 des
  ARM: dts: Configure interconnect target module for am4 des
  ARM: dts: Configure interconnect target module for dra7 aes
  ARM: dts: Configure interconnect target module for am4 aes
  ARM: dts: Configure interconnect target module for am3 aes
  ARM: dts: Configure interconnect target module for dra7 sham
  ARM: dts: Configure interconnect target module for am4 sham
  ARM: dts: Configure interconnect target module for am3 sham
  ARM: dts: Configure interconnect target module for am4 qspi
  ARM: dts: Configure interconnect target module for omap3 sdma
  ARM: dts: Configure interconnect target module for omap2 sdma
  ARM: dts: Add generic compatible for omap sdma instances
  bus: ti-sysc: Fix iterating over clocks
  ARM: OMAP2+: Fix ti_sysc_find_one_clockdomain to check for to_clk_hw_omap
  bus: ti-sysc: Fix missing reset delay handling
  ARM: dts: am437x-gp/epos-evm: fix panel compatible
  ...

Link: https://lore.kernel.org/r/pull-1578420398-290837@atomide.com-3Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 3f9c6a6d d71b4823
...@@ -108,7 +108,7 @@ ethphy0: ethernet-phy@0 { ...@@ -108,7 +108,7 @@ ethphy0: ethernet-phy@0 {
&cpsw_emac0 { &cpsw_emac0 {
phy-handle = <&ethphy0>; phy-handle = <&ethphy0>;
phy-mode = "rgmii-txid"; phy-mode = "rgmii-id";
}; };
&i2c0 { &i2c0 {
......
...@@ -439,23 +439,64 @@ gpmc: gpmc@50000000 { ...@@ -439,23 +439,64 @@ gpmc: gpmc@50000000 {
status = "disabled"; status = "disabled";
}; };
sham: sham@53100000 { sham_target: target-module@53100000 {
compatible = "ti,omap4-sham"; compatible = "ti,sysc-omap3-sham", "ti,sysc";
ti,hwmods = "sham"; ti,hwmods = "sham";
reg = <0x53100000 0x200>; reg = <0x53100100 0x4>,
interrupts = <109>; <0x53100110 0x4>,
dmas = <&edma 36 0>; <0x53100114 0x4>;
dma-names = "rx"; reg-names = "rev", "sysc", "syss";
ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,syss-mask = <1>;
/* Domains (P, C): per_pwrdm, l3_clkdm */
clocks = <&l3_clkctrl AM3_L3_SHAM_CLKCTRL 0>;
clock-names = "fck";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x53100000 0x1000>;
sham: sham@0 {
compatible = "ti,omap4-sham";
reg = <0 0x200>;
interrupts = <109>;
dmas = <&edma 36 0>;
dma-names = "rx";
};
}; };
aes: aes@53500000 { aes_target: target-module@53500000 {
compatible = "ti,omap4-aes"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "aes"; ti,hwmods = "aes";
reg = <0x53500000 0xa0>; reg = <0x53500080 0x4>,
interrupts = <103>; <0x53500084 0x4>,
dmas = <&edma 6 0>, <0x53500088 0x4>;
<&edma 5 0>; reg-names = "rev", "sysc", "syss";
dma-names = "tx", "rx"; ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>,
<SYSC_IDLE_SMART_WKUP>;
ti,syss-mask = <1>;
/* Domains (P, C): per_pwrdm, l3_clkdm */
clocks = <&l3_clkctrl AM3_L3_AES_CLKCTRL 0>;
clock-names = "fck";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x53500000 0x1000>;
aes: aes@0 {
compatible = "ti,omap4-aes";
reg = <0 0xa0>;
interrupts = <103>;
dmas = <&edma 6 0>,
<&edma 5 0>;
dma-names = "tx", "rx";
};
}; };
}; };
}; };
......
...@@ -256,33 +256,95 @@ mmc3: mmc@0 { ...@@ -256,33 +256,95 @@ mmc3: mmc@0 {
}; };
}; };
sham: sham@53100000 { sham_target: target-module@53100000 {
compatible = "ti,omap5-sham"; compatible = "ti,sysc-omap3-sham", "ti,sysc";
ti,hwmods = "sham"; ti,hwmods = "sham";
reg = <0x53100000 0x300>; reg = <0x53100100 0x4>,
dmas = <&edma 36 0>; <0x53100110 0x4>,
dma-names = "rx"; <0x53100114 0x4>;
interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; reg-names = "rev", "sysc", "syss";
ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,syss-mask = <1>;
/* Domains (P, C): per_pwrdm, l3_clkdm */
clocks = <&l3_clkctrl AM4_L3_SHAM_CLKCTRL 0>;
clock-names = "fck";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x53100000 0x1000>;
sham: sham@0 {
compatible = "ti,omap5-sham";
reg = <0 0x300>;
dmas = <&edma 36 0>;
dma-names = "rx";
interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
};
}; };
aes: aes@53501000 { aes_target: target-module@53501000 {
compatible = "ti,omap4-aes"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "aes"; ti,hwmods = "aes";
reg = <0x53501000 0xa0>; reg = <0x53501080 0x4>,
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; <0x53501084 0x4>,
dmas = <&edma 6 0>, <0x53501088 0x4>;
<&edma 5 0>; reg-names = "rev", "sysc", "syss";
dma-names = "tx", "rx"; ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>,
<SYSC_IDLE_SMART_WKUP>;
ti,syss-mask = <1>;
/* Domains (P, C): per_pwrdm, l3_clkdm */
clocks = <&l3_clkctrl AM4_L3_AES_CLKCTRL 0>;
clock-names = "fck";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x53501000 0x1000>;
aes: aes@0 {
compatible = "ti,omap4-aes";
reg = <0 0xa0>;
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
dmas = <&edma 6 0>,
<&edma 5 0>;
dma-names = "tx", "rx";
};
}; };
des: des@53701000 { des_target: target-module@53701000 {
compatible = "ti,omap4-des"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "des"; ti,hwmods = "des";
reg = <0x53701000 0xa0>; reg = <0x53701030 0x4>,
interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>; <0x53701034 0x4>,
dmas = <&edma 34 0>, <0x53701038 0x4>;
<&edma 33 0>; reg-names = "rev", "sysc", "syss";
dma-names = "tx", "rx"; ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>,
<SYSC_IDLE_SMART_WKUP>;
ti,syss-mask = <1>;
/* Domains (P, C): per_pwrdm, l3_clkdm */
clocks = <&l3_clkctrl AM4_L3_DES_CLKCTRL 0>;
clock-names = "fck";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x53701000 0x1000>;
des: des@0 {
compatible = "ti,omap4-des";
reg = <0 0xa0>;
interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
dmas = <&edma 34 0>,
<&edma 33 0>;
dma-names = "tx", "rx";
};
}; };
gpmc: gpmc@50000000 { gpmc: gpmc@50000000 {
...@@ -305,17 +367,35 @@ gpmc: gpmc@50000000 { ...@@ -305,17 +367,35 @@ gpmc: gpmc@50000000 {
status = "disabled"; status = "disabled";
}; };
qspi: spi@47900000 { target-module@47900000 {
compatible = "ti,am4372-qspi"; compatible = "ti,sysc-omap4", "ti,sysc";
reg = <0x47900000 0x100>,
<0x30000000 0x4000000>;
reg-names = "qspi_base", "qspi_mmap";
#address-cells = <1>;
#size-cells = <0>;
ti,hwmods = "qspi"; ti,hwmods = "qspi";
interrupts = <0 138 0x4>; reg = <0x47900000 0x4>,
num-cs = <4>; <0x47900010 0x4>;
status = "disabled"; reg-names = "rev", "sysc";
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>,
<SYSC_IDLE_SMART_WKUP>;
clocks = <&l3s_clkctrl AM4_L3S_QSPI_CLKCTRL 0>;
clock-names = "fck";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x47900000 0x1000>,
<0x30000000 0x30000000 0x4000000>;
qspi: spi@0 {
compatible = "ti,am4372-qspi";
reg = <0 0x100>,
<0x30000000 0x4000000>;
reg-names = "qspi_base", "qspi_mmap";
clocks = <&dpll_per_m2_div4_ck>;
clock-names = "fck";
#address-cells = <1>;
#size-cells = <0>;
interrupts = <0 138 0x4>;
num-cs = <4>;
};
}; };
dss: dss@4832a000 { dss: dss@4832a000 {
......
...@@ -86,7 +86,7 @@ &gpio4 3 GPIO_ACTIVE_HIGH /* Bank4, pin3 */ ...@@ -86,7 +86,7 @@ &gpio4 3 GPIO_ACTIVE_HIGH /* Bank4, pin3 */
}; };
lcd0: display { lcd0: display {
compatible = "osddisplays,osd057T0559-34ts", "panel-dpi"; compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";
label = "lcd"; label = "lcd";
backlight = <&lcd_bl>; backlight = <&lcd_bl>;
......
...@@ -42,7 +42,7 @@ vbat: fixedregulator0 { ...@@ -42,7 +42,7 @@ vbat: fixedregulator0 {
}; };
lcd0: display { lcd0: display {
compatible = "osddisplays,osd057T0559-34ts", "panel-dpi"; compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";
label = "lcd"; label = "lcd";
backlight = <&lcd_bl>; backlight = <&lcd_bl>;
......
...@@ -212,7 +212,7 @@ SYSC_OMAP2_SOFTRESET | ...@@ -212,7 +212,7 @@ SYSC_OMAP2_SOFTRESET |
ranges = <0x0 0x56000 0x1000>; ranges = <0x0 0x56000 0x1000>;
sdma: dma-controller@0 { sdma: dma-controller@0 {
compatible = "ti,omap4430-sdma"; compatible = "ti,omap4430-sdma", "ti,omap-sdma";
reg = <0x0 0x1000>; reg = <0x0 0x1000>;
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
...@@ -2044,6 +2044,38 @@ target-module@a4000 { /* 0x480a4000, ap 57 42.0 */ ...@@ -2044,6 +2044,38 @@ target-module@a4000 { /* 0x480a4000, ap 57 42.0 */
<0x00001000 0x000a5000 0x00001000>; <0x00001000 0x000a5000 0x00001000>;
}; };
des_target: target-module@a5000 { /* 0x480a5000 */
compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "des";
reg = <0xa5030 0x4>,
<0xa5034 0x4>,
<0xa5038 0x4>;
reg-names = "rev", "sysc", "syss";
ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>,
<SYSC_IDLE_SMART_WKUP>;
ti,syss-mask = <1>;
/* Domains (P, C): l4per_pwrdm, l4sec_clkdm */
clocks = <&l4sec_clkctrl DRA7_L4SEC_DES_CLKCTRL 0>;
clock-names = "fck";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0xa5000 0x00001000>;
des: des@0 {
compatible = "ti,omap4-des";
reg = <0 0xa0>;
interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
dmas = <&sdma_xbar 117>, <&sdma_xbar 116>;
dma-names = "tx", "rx";
clocks = <&l3_iclk_div>;
clock-names = "fck";
};
};
target-module@a8000 { /* 0x480a8000, ap 59 1a.0 */ target-module@a8000 { /* 0x480a8000, ap 59 1a.0 */
compatible = "ti,sysc"; compatible = "ti,sysc";
status = "disabled"; status = "disabled";
......
...@@ -377,44 +377,120 @@ dmm@4e000000 { ...@@ -377,44 +377,120 @@ dmm@4e000000 {
ti,hwmods = "dmm"; ti,hwmods = "dmm";
}; };
mmu0_dsp1: mmu@40d01000 { target-module@40d01000 {
compatible = "ti,dra7-dsp-iommu"; compatible = "ti,sysc-omap2", "ti,sysc";
reg = <0x40d01000 0x100>; reg = <0x40d01000 0x4>,
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; <0x40d01010 0x4>,
ti,hwmods = "mmu0_dsp1"; <0x40d01014 0x4>;
#iommu-cells = <0>; reg-names = "rev", "sysc", "syss";
ti,syscon-mmuconfig = <&dsp1_system 0x0>; ti,sysc-sidle = <SYSC_IDLE_FORCE>,
status = "disabled"; <SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
clocks = <&dsp1_clkctrl DRA7_DSP1_MMU0_DSP1_CLKCTRL 0>;
clock-names = "fck";
resets = <&prm_dsp1 1>;
reset-names = "rstctrl";
ranges = <0x0 0x40d01000 0x1000>;
#size-cells = <1>;
#address-cells = <1>;
mmu0_dsp1: mmu@0 {
compatible = "ti,dra7-dsp-iommu";
reg = <0x0 0x100>;
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
#iommu-cells = <0>;
ti,syscon-mmuconfig = <&dsp1_system 0x0>;
};
}; };
mmu1_dsp1: mmu@40d02000 { target-module@40d02000 {
compatible = "ti,dra7-dsp-iommu"; compatible = "ti,sysc-omap2", "ti,sysc";
reg = <0x40d02000 0x100>; reg = <0x40d02000 0x4>,
interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; <0x40d02010 0x4>,
ti,hwmods = "mmu1_dsp1"; <0x40d02014 0x4>;
#iommu-cells = <0>; reg-names = "rev", "sysc", "syss";
ti,syscon-mmuconfig = <&dsp1_system 0x1>; ti,sysc-sidle = <SYSC_IDLE_FORCE>,
status = "disabled"; <SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
clocks = <&dsp1_clkctrl DRA7_DSP1_MMU0_DSP1_CLKCTRL 0>;
clock-names = "fck";
resets = <&prm_dsp1 1>;
reset-names = "rstctrl";
ranges = <0x0 0x40d02000 0x1000>;
#size-cells = <1>;
#address-cells = <1>;
mmu1_dsp1: mmu@0 {
compatible = "ti,dra7-dsp-iommu";
reg = <0x0 0x100>;
interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
#iommu-cells = <0>;
ti,syscon-mmuconfig = <&dsp1_system 0x1>;
};
}; };
mmu_ipu1: mmu@58882000 { target-module@58882000 {
compatible = "ti,dra7-iommu"; compatible = "ti,sysc-omap2", "ti,sysc";
reg = <0x58882000 0x100>; reg = <0x58882000 0x4>,
interrupts = <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>; <0x58882010 0x4>,
ti,hwmods = "mmu_ipu1"; <0x58882014 0x4>;
#iommu-cells = <0>; reg-names = "rev", "sysc", "syss";
ti,iommu-bus-err-back; ti,sysc-sidle = <SYSC_IDLE_FORCE>,
status = "disabled"; <SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
clocks = <&ipu1_clkctrl DRA7_IPU1_MMU_IPU1_CLKCTRL 0>;
clock-names = "fck";
resets = <&prm_ipu 2>;
reset-names = "rstctrl";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x58882000 0x100>;
mmu_ipu1: mmu@0 {
compatible = "ti,dra7-iommu";
reg = <0x0 0x100>;
interrupts = <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>;
#iommu-cells = <0>;
ti,iommu-bus-err-back;
};
}; };
mmu_ipu2: mmu@55082000 { target-module@55082000 {
compatible = "ti,dra7-iommu"; compatible = "ti,sysc-omap2", "ti,sysc";
reg = <0x55082000 0x100>; reg = <0x55082000 0x4>,
interrupts = <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>; <0x55082010 0x4>,
ti,hwmods = "mmu_ipu2"; <0x55082014 0x4>;
#iommu-cells = <0>; reg-names = "rev", "sysc", "syss";
ti,iommu-bus-err-back; ti,sysc-sidle = <SYSC_IDLE_FORCE>,
status = "disabled"; <SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
clocks = <&ipu2_clkctrl DRA7_IPU2_MMU_IPU2_CLKCTRL 0>;
clock-names = "fck";
resets = <&prm_core 2>;
reset-names = "rstctrl";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x55082000 0x100>;
mmu_ipu2: mmu@0 {
compatible = "ti,dra7-iommu";
reg = <0x0 0x100>;
interrupts = <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>;
#iommu-cells = <0>;
ti,iommu-bus-err-back;
};
}; };
abb_mpu: regulator-abb-mpu { abb_mpu: regulator-abb-mpu {
...@@ -652,48 +728,99 @@ hdmi: encoder@58060000 { ...@@ -652,48 +728,99 @@ hdmi: encoder@58060000 {
}; };
}; };
aes1: aes@4b500000 { aes1_target: target-module@4b500000 {
compatible = "ti,omap4-aes"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "aes1"; ti,hwmods = "aes1";
reg = <0x4b500000 0xa0>; reg = <0x4b500080 0x4>,
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; <0x4b500084 0x4>,
dmas = <&edma_xbar 111 0>, <&edma_xbar 110 0>; <0x4b500088 0x4>;
dma-names = "tx", "rx"; reg-names = "rev", "sysc", "syss";
clocks = <&l3_iclk_div>; ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>,
<SYSC_IDLE_SMART_WKUP>;
ti,syss-mask = <1>;
/* Domains (P, C): per_pwrdm, l4sec_clkdm */
clocks = <&l4sec_clkctrl DRA7_L4SEC_AES1_CLKCTRL 0>;
clock-names = "fck"; clock-names = "fck";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x4b500000 0x1000>;
aes1: aes@0 {
compatible = "ti,omap4-aes";
reg = <0 0xa0>;
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
dmas = <&edma_xbar 111 0>, <&edma_xbar 110 0>;
dma-names = "tx", "rx";
clocks = <&l3_iclk_div>;
clock-names = "fck";
};
}; };
aes2: aes@4b700000 { aes2_target: target-module@4b700000 {
compatible = "ti,omap4-aes"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "aes2"; ti,hwmods = "aes2";
reg = <0x4b700000 0xa0>; reg = <0x4b700080 0x4>,
interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; <0x4b700084 0x4>,
dmas = <&edma_xbar 114 0>, <&edma_xbar 113 0>; <0x4b700088 0x4>;
dma-names = "tx", "rx"; reg-names = "rev", "sysc", "syss";
clocks = <&l3_iclk_div>; ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
clock-names = "fck"; SYSC_OMAP2_AUTOIDLE)>;
}; ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
des: des@480a5000 { <SYSC_IDLE_SMART>,
compatible = "ti,omap4-des"; <SYSC_IDLE_SMART_WKUP>;
ti,hwmods = "des"; ti,syss-mask = <1>;
reg = <0x480a5000 0xa0>; /* Domains (P, C): per_pwrdm, l4sec_clkdm */
interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; clocks = <&l4sec_clkctrl DRA7_L4SEC_AES2_CLKCTRL 0>;
dmas = <&sdma_xbar 117>, <&sdma_xbar 116>;
dma-names = "tx", "rx";
clocks = <&l3_iclk_div>;
clock-names = "fck"; clock-names = "fck";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x4b700000 0x1000>;
aes2: aes@0 {
compatible = "ti,omap4-aes";
reg = <0 0xa0>;
interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
dmas = <&edma_xbar 114 0>, <&edma_xbar 113 0>;
dma-names = "tx", "rx";
clocks = <&l3_iclk_div>;
clock-names = "fck";
};
}; };
sham: sham@53100000 { sham_target: target-module@4b101000 {
compatible = "ti,omap5-sham"; compatible = "ti,sysc-omap3-sham", "ti,sysc";
ti,hwmods = "sham"; ti,hwmods = "sham";
reg = <0x4b101000 0x300>; reg = <0x4b101100 0x4>,
interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; <0x4b101110 0x4>,
dmas = <&edma_xbar 119 0>; <0x4b101114 0x4>;
dma-names = "rx"; reg-names = "rev", "sysc", "syss";
clocks = <&l3_iclk_div>; ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,syss-mask = <1>;
/* Domains (P, C): l4per_pwrdm, l4sec_clkdm */
clocks = <&l4sec_clkctrl DRA7_L4SEC_SHAM_CLKCTRL 0>;
clock-names = "fck"; clock-names = "fck";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x4b101000 0x1000>;
sham: sham@0 {
compatible = "ti,omap5-sham";
reg = <0 0x300>;
interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
dmas = <&edma_xbar 119 0>;
dma-names = "rx";
clocks = <&l3_iclk_div>;
clock-names = "fck";
};
}; };
opp_supply_mpu: opp-supply@4a003b20 { opp_supply_mpu: opp-supply@4a003b20 {
......
...@@ -66,24 +66,63 @@ usb4: usb@48950000 { ...@@ -66,24 +66,63 @@ usb4: usb@48950000 {
}; };
}; };
mmu0_dsp2: mmu@41501000 { target-module@41501000 {
compatible = "ti,dra7-dsp-iommu"; compatible = "ti,sysc-omap2", "ti,sysc";
reg = <0x41501000 0x100>; reg = <0x41501000 0x4>,
interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; <0x41501010 0x4>,
ti,hwmods = "mmu0_dsp2"; <0x41501014 0x4>;
#iommu-cells = <0>; reg-names = "rev", "sysc", "syss";
ti,syscon-mmuconfig = <&dsp2_system 0x0>; ti,sysc-sidle = <SYSC_IDLE_FORCE>,
status = "disabled"; <SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
clocks = <&dsp2_clkctrl DRA7_DSP2_MMU0_DSP2_CLKCTRL 0>;
clock-names = "fck";
resets = <&prm_dsp2 1>;
reset-names = "rstctrl";
ranges = <0x0 0x41501000 0x1000>;
#size-cells = <1>;
#address-cells = <1>;
mmu0_dsp2: mmu@0 {
compatible = "ti,dra7-dsp-iommu";
reg = <0x0 0x100>;
interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
#iommu-cells = <0>;
ti,syscon-mmuconfig = <&dsp2_system 0x0>;
};
}; };
mmu1_dsp2: mmu@41502000 { target-module@41502000 {
compatible = "ti,dra7-dsp-iommu"; compatible = "ti,sysc-omap2", "ti,sysc";
reg = <0x41502000 0x100>; reg = <0x41502000 0x4>,
interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; <0x41502010 0x4>,
ti,hwmods = "mmu1_dsp2"; <0x41502014 0x4>;
#iommu-cells = <0>; reg-names = "rev", "sysc", "syss";
ti,syscon-mmuconfig = <&dsp2_system 0x1>; ti,sysc-sidle = <SYSC_IDLE_FORCE>,
status = "disabled"; <SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
clocks = <&dsp2_clkctrl DRA7_DSP2_MMU0_DSP2_CLKCTRL 0>;
clock-names = "fck";
resets = <&prm_dsp2 1>;
reset-names = "rstctrl";
ranges = <0x0 0x41502000 0x1000>;
#size-cells = <1>;
#address-cells = <1>;
mmu1_dsp2: mmu@0 {
compatible = "ti,dra7-dsp-iommu";
reg = <0x0 0x100>;
interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
#iommu-cells = <0>;
ti,syscon-mmuconfig = <&dsp2_system 0x1>;
};
}; };
}; };
}; };
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
* kind, whether express or implied. * kind, whether express or implied.
*/ */
#include <dt-bindings/bus/ti-sysc.h>
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/pinctrl/omap.h> #include <dt-bindings/pinctrl/omap.h>
...@@ -79,17 +80,38 @@ intc: interrupt-controller@1 { ...@@ -79,17 +80,38 @@ intc: interrupt-controller@1 {
reg = <0x480FE000 0x1000>; reg = <0x480FE000 0x1000>;
}; };
sdma: dma-controller@48056000 { target-module@48056000 {
compatible = "ti,omap2430-sdma", "ti,omap2420-sdma"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "dma"; ti,hwmods = "dma";
reg = <0x48056000 0x1000>; reg = <0x48056000 0x4>,
interrupts = <12>, <0x4805602c 0x4>,
<13>, <0x48056028 0x4>;
<14>, reg-names = "rev", "sysc", "syss";
<15>; ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
#dma-cells = <1>; SYSC_OMAP2_EMUFREE |
dma-channels = <32>; SYSC_OMAP2_SOFTRESET |
dma-requests = <64>; SYSC_OMAP2_AUTOIDLE)>;
ti,sysc-midle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,syss-mask = <1>;
clocks = <&core_l3_ck>;
clock-names = "fck";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x48056000 0x1000>;
sdma: dma-controller@0 {
compatible = "ti,omap2420-sdma", "ti,omap-sdma";
reg = <0 0x1000>;
interrupts = <12>,
<13>,
<14>,
<15>;
#dma-cells = <1>;
dma-channels = <32>;
dma-requests = <64>;
};
}; };
i2c1: i2c@48070000 { i2c1: i2c@48070000 {
......
...@@ -309,6 +309,10 @@ wd_timer2: wdt@49016000 { ...@@ -309,6 +309,10 @@ wd_timer2: wdt@49016000 {
}; };
}; };
&sdma {
compatible = "ti,omap2430-sdma", "ti,omap-sdma";
};
&i2c1 { &i2c1 {
compatible = "ti,omap2430-i2c"; compatible = "ti,omap2430-i2c";
}; };
......
...@@ -482,6 +482,11 @@ &vintdig { ...@@ -482,6 +482,11 @@ &vintdig {
regulator-always-on; regulator-always-on;
}; };
/* First two dma channels are reserved on secure omap3 */
&sdma {
dma-channel-mask = <0xfffffffc>;
};
&twl { &twl {
twl_audio: audio { twl_audio: audio {
compatible = "ti,twl4030-audio"; compatible = "ti,twl4030-audio";
......
...@@ -206,17 +206,42 @@ intc: interrupt-controller@48200000 { ...@@ -206,17 +206,42 @@ intc: interrupt-controller@48200000 {
reg = <0x48200000 0x1000>; reg = <0x48200000 0x1000>;
}; };
sdma: dma-controller@48056000 { target-module@48056000 {
compatible = "ti,omap3630-sdma", "ti,omap3430-sdma"; compatible = "ti,sysc-omap2", "ti,sysc";
reg = <0x48056000 0x1000>;
interrupts = <12>,
<13>,
<14>,
<15>;
#dma-cells = <1>;
dma-channels = <32>;
dma-requests = <96>;
ti,hwmods = "dma"; ti,hwmods = "dma";
reg = <0x48056000 0x4>,
<0x4805602c 0x4>,
<0x48056028 0x4>;
reg-names = "rev", "sysc", "syss";
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
SYSC_OMAP2_EMUFREE |
SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
ti,sysc-midle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,syss-mask = <1>;
/* Domains (V, P, C): core, core_pwrdm, core_l3_clkdm */
clocks = <&core_l3_ick>;
clock-names = "ick";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x48056000 0x1000>;
sdma: dma-controller@0 {
compatible = "ti,omap3430-sdma", "ti,omap-sdma";
reg = <0x0 0x1000>;
interrupts = <12>,
<13>,
<14>,
<15>;
#dma-cells = <1>;
dma-channels = <32>;
dma-requests = <96>;
};
}; };
gpio1: gpio@48310000 { gpio1: gpio@48310000 {
......
...@@ -223,6 +223,10 @@ thermal_zones: thermal-zones { ...@@ -223,6 +223,10 @@ thermal_zones: thermal-zones {
}; };
}; };
&sdma {
compatible = "ti,omap3630-sdma", "ti,omap-sdma";
};
/* OMAP3630 needs dss_96m_fck for VENC */ /* OMAP3630 needs dss_96m_fck for VENC */
&venc { &venc {
clocks = <&dss_tv_fck>, <&dss_96m_fck>; clocks = <&dss_tv_fck>, <&dss_96m_fck>;
......
...@@ -160,7 +160,7 @@ SYSC_OMAP2_SOFTRESET | ...@@ -160,7 +160,7 @@ SYSC_OMAP2_SOFTRESET |
ranges = <0x0 0x56000 0x1000>; ranges = <0x0 0x56000 0x1000>;
sdma: dma-controller@0 { sdma: dma-controller@0 {
compatible = "ti,omap4430-sdma"; compatible = "ti,omap4430-sdma", "ti,omap-sdma";
reg = <0x0 0x1000>; reg = <0x0 0x1000>;
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
...@@ -321,7 +321,6 @@ usbhsehci: ehci@c00 { ...@@ -321,7 +321,6 @@ usbhsehci: ehci@c00 {
target-module@66000 { /* 0x4a066000, ap 25 26.0 */ target-module@66000 { /* 0x4a066000, ap 25 26.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "mmu_dsp";
reg = <0x66000 0x4>, reg = <0x66000 0x4>,
<0x66010 0x4>, <0x66010 0x4>,
<0x66014 0x4>; <0x66014 0x4>;
...@@ -335,12 +334,18 @@ SYSC_OMAP2_SOFTRESET | ...@@ -335,12 +334,18 @@ SYSC_OMAP2_SOFTRESET |
/* Domains (V, P, C): iva, tesla_pwrdm, tesla_clkdm */ /* Domains (V, P, C): iva, tesla_pwrdm, tesla_clkdm */
clocks = <&tesla_clkctrl OMAP4_DSP_CLKCTRL 0>; clocks = <&tesla_clkctrl OMAP4_DSP_CLKCTRL 0>;
clock-names = "fck"; clock-names = "fck";
resets = <&prm_tesla 1>;
reset-names = "rstctrl";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0x0 0x66000 0x1000>; ranges = <0x0 0x66000 0x1000>;
/* mmu_dsp cannot be moved before reset driver */ mmu_dsp: mmu@0 {
status = "disabled"; compatible = "ti,omap4-iommu";
reg = <0x0 0x100>;
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
#iommu-cells = <0>;
};
}; };
}; };
......
...@@ -173,14 +173,6 @@ gpmc: gpmc@50000000 { ...@@ -173,14 +173,6 @@ gpmc: gpmc@50000000 {
#gpio-cells = <2>; #gpio-cells = <2>;
}; };
mmu_dsp: mmu@4a066000 {
compatible = "ti,omap4-iommu";
reg = <0x4a066000 0x100>;
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
ti,hwmods = "mmu_dsp";
#iommu-cells = <0>;
};
target-module@52000000 { target-module@52000000 {
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "iss"; ti,hwmods = "iss";
...@@ -206,14 +198,35 @@ target-module@52000000 { ...@@ -206,14 +198,35 @@ target-module@52000000 {
/* No child device binding, driver in staging */ /* No child device binding, driver in staging */
}; };
mmu_ipu: mmu@55082000 { target-module@55082000 {
compatible = "ti,omap4-iommu"; compatible = "ti,sysc-omap2", "ti,sysc";
reg = <0x55082000 0x100>; reg = <0x55082000 0x4>,
interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; <0x55082010 0x4>,
ti,hwmods = "mmu_ipu"; <0x55082014 0x4>;
#iommu-cells = <0>; reg-names = "rev", "sysc", "syss";
ti,iommu-bus-err-back; ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
clocks = <&ducati_clkctrl OMAP4_IPU_CLKCTRL 0>;
clock-names = "fck";
resets = <&prm_core 2>;
reset-names = "rstctrl";
ranges = <0x0 0x55082000 0x100>;
#size-cells = <1>;
#address-cells = <1>;
mmu_ipu: mmu@0 {
compatible = "ti,omap4-iommu";
reg = <0x0 0x100>;
interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
#iommu-cells = <0>;
ti,iommu-bus-err-back;
};
}; };
target-module@4012c000 { target-module@4012c000 {
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "slimbus1"; ti,hwmods = "slimbus1";
......
...@@ -237,7 +237,7 @@ SYSC_OMAP2_SOFTRESET | ...@@ -237,7 +237,7 @@ SYSC_OMAP2_SOFTRESET |
ranges = <0x0 0x56000 0x1000>; ranges = <0x0 0x56000 0x1000>;
sdma: dma-controller@0 { sdma: dma-controller@0 {
compatible = "ti,omap4430-sdma"; compatible = "ti,omap4430-sdma", "ti,omap-sdma";
reg = <0x0 0x1000>; reg = <0x0 0x1000>;
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
...@@ -349,7 +349,6 @@ usbhsehci: ehci@c00 { ...@@ -349,7 +349,6 @@ usbhsehci: ehci@c00 {
target-module@66000 { /* 0x4a066000, ap 23 0a.0 */ target-module@66000 { /* 0x4a066000, ap 23 0a.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "mmu_dsp";
reg = <0x66000 0x4>, reg = <0x66000 0x4>,
<0x66010 0x4>, <0x66010 0x4>,
<0x66014 0x4>; <0x66014 0x4>;
...@@ -364,12 +363,18 @@ SYSC_OMAP2_SOFTRESET | ...@@ -364,12 +363,18 @@ SYSC_OMAP2_SOFTRESET |
/* Domains (V, P, C): mm, dsp_pwrdm, dsp_clkdm */ /* Domains (V, P, C): mm, dsp_pwrdm, dsp_clkdm */
clocks = <&dsp_clkctrl OMAP5_MMU_DSP_CLKCTRL 0>; clocks = <&dsp_clkctrl OMAP5_MMU_DSP_CLKCTRL 0>;
clock-names = "fck"; clock-names = "fck";
resets = <&prm_dsp 1>;
reset-names = "rstctrl";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0x0 0x66000 0x1000>; ranges = <0x0 0x66000 0x1000>;
/* mmu_dsp cannot be moved before reset driver */ mmu_dsp: mmu@0 {
status = "disabled"; compatible = "ti,omap4-iommu";
reg = <0x0 0x100>;
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
#iommu-cells = <0>;
};
}; };
target-module@70000 { /* 0x4a070000, ap 79 2e.0 */ target-module@70000 { /* 0x4a070000, ap 79 2e.0 */
......
...@@ -186,21 +186,33 @@ gpmc: gpmc@50000000 { ...@@ -186,21 +186,33 @@ gpmc: gpmc@50000000 {
#gpio-cells = <2>; #gpio-cells = <2>;
}; };
mmu_dsp: mmu@4a066000 { target-module@55082000 {
compatible = "ti,omap4-iommu"; compatible = "ti,sysc-omap2", "ti,sysc";
reg = <0x4a066000 0x100>; reg = <0x55082000 0x4>,
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; <0x55082010 0x4>,
ti,hwmods = "mmu_dsp"; <0x55082014 0x4>;
#iommu-cells = <0>; reg-names = "rev", "sysc", "syss";
}; ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
clocks = <&ipu_clkctrl OMAP5_MMU_IPU_CLKCTRL 0>;
clock-names = "fck";
resets = <&prm_core 2>;
reset-names = "rstctrl";
ranges = <0x0 0x55082000 0x100>;
#size-cells = <1>;
#address-cells = <1>;
mmu_ipu: mmu@55082000 { mmu_ipu: mmu@0 {
compatible = "ti,omap4-iommu"; compatible = "ti,omap4-iommu";
reg = <0x55082000 0x100>; reg = <0x0 0x100>;
interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
ti,hwmods = "mmu_ipu"; #iommu-cells = <0>;
#iommu-cells = <0>; ti,iommu-bus-err-back;
ti,iommu-bus-err-back; };
}; };
dmm@4e000000 { dmm@4e000000 {
......
...@@ -92,6 +92,7 @@ CONFIG_IP_PNP_BOOTP=y ...@@ -92,6 +92,7 @@ CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y CONFIG_IP_PNP_RARP=y
CONFIG_NETFILTER=y CONFIG_NETFILTER=y
CONFIG_PHONET=m CONFIG_PHONET=m
CONFIG_NET_SWITCHDEV=y
CONFIG_CAN=m CONFIG_CAN=m
CONFIG_CAN_C_CAN=m CONFIG_CAN_C_CAN=m
CONFIG_CAN_C_CAN_PLATFORM=m CONFIG_CAN_C_CAN_PLATFORM=m
...@@ -181,6 +182,7 @@ CONFIG_SMSC911X=y ...@@ -181,6 +182,7 @@ CONFIG_SMSC911X=y
# CONFIG_NET_VENDOR_STMICRO is not set # CONFIG_NET_VENDOR_STMICRO is not set
CONFIG_TI_DAVINCI_EMAC=y CONFIG_TI_DAVINCI_EMAC=y
CONFIG_TI_CPSW=y CONFIG_TI_CPSW=y
CONFIG_TI_CPSW_SWITCHDEV=y
CONFIG_TI_CPTS=y CONFIG_TI_CPTS=y
# CONFIG_NET_VENDOR_VIA is not set # CONFIG_NET_VENDOR_VIA is not set
# CONFIG_NET_VENDOR_WIZNET is not set # CONFIG_NET_VENDOR_WIZNET is not set
...@@ -554,6 +556,6 @@ CONFIG_DEBUG_INFO=y ...@@ -554,6 +556,6 @@ CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_SPLIT=y CONFIG_DEBUG_INFO_SPLIT=y
CONFIG_DEBUG_INFO_DWARF4=y CONFIG_DEBUG_INFO_DWARF4=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_FS=y
CONFIG_SCHEDSTATS=y CONFIG_SCHEDSTATS=y
# CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_BUGVERBOSE is not set
CONFIG_TI_CPSW_SWITCHDEV=y
...@@ -306,10 +306,14 @@ static void __init dra7x_evm_mmc_quirk(void) ...@@ -306,10 +306,14 @@ static void __init dra7x_evm_mmc_quirk(void)
static struct clockdomain *ti_sysc_find_one_clockdomain(struct clk *clk) static struct clockdomain *ti_sysc_find_one_clockdomain(struct clk *clk)
{ {
struct clk_hw *hw = __clk_get_hw(clk);
struct clockdomain *clkdm = NULL; struct clockdomain *clkdm = NULL;
struct clk_hw_omap *hwclk; struct clk_hw_omap *hwclk;
hwclk = to_clk_hw_omap(__clk_get_hw(clk)); hwclk = to_clk_hw_omap(hw);
if (!omap2_clk_is_hw_omap(hw))
return NULL;
if (hwclk && hwclk->clkdm_name) if (hwclk && hwclk->clkdm_name)
clkdm = clkdm_lookup(hwclk->clkdm_name); clkdm = clkdm_lookup(hwclk->clkdm_name);
......
...@@ -343,6 +343,12 @@ static int sysc_get_clocks(struct sysc *ddata) ...@@ -343,6 +343,12 @@ static int sysc_get_clocks(struct sysc *ddata)
return -EINVAL; return -EINVAL;
} }
/* Always add a slot for main clocks fck and ick even if unused */
if (!nr_fck)
ddata->nr_clocks++;
if (!nr_ick)
ddata->nr_clocks++;
ddata->clocks = devm_kcalloc(ddata->dev, ddata->clocks = devm_kcalloc(ddata->dev,
ddata->nr_clocks, sizeof(*ddata->clocks), ddata->nr_clocks, sizeof(*ddata->clocks),
GFP_KERNEL); GFP_KERNEL);
...@@ -421,7 +427,7 @@ static int sysc_enable_opt_clocks(struct sysc *ddata) ...@@ -421,7 +427,7 @@ static int sysc_enable_opt_clocks(struct sysc *ddata)
struct clk *clock; struct clk *clock;
int i, error; int i, error;
if (!ddata->clocks) if (!ddata->clocks || ddata->nr_clocks < SYSC_OPTFCK0 + 1)
return 0; return 0;
for (i = SYSC_OPTFCK0; i < SYSC_MAX_CLOCKS; i++) { for (i = SYSC_OPTFCK0; i < SYSC_MAX_CLOCKS; i++) {
...@@ -455,7 +461,7 @@ static void sysc_disable_opt_clocks(struct sysc *ddata) ...@@ -455,7 +461,7 @@ static void sysc_disable_opt_clocks(struct sysc *ddata)
struct clk *clock; struct clk *clock;
int i; int i;
if (!ddata->clocks) if (!ddata->clocks || ddata->nr_clocks < SYSC_OPTFCK0 + 1)
return; return;
for (i = SYSC_OPTFCK0; i < SYSC_MAX_CLOCKS; i++) { for (i = SYSC_OPTFCK0; i < SYSC_MAX_CLOCKS; i++) {
...@@ -981,7 +987,8 @@ static int sysc_disable_module(struct device *dev) ...@@ -981,7 +987,8 @@ static int sysc_disable_module(struct device *dev)
return ret; return ret;
} }
if (ddata->cfg.quirks & SYSC_QUIRK_SWSUP_MSTANDBY) if (ddata->cfg.quirks & (SYSC_QUIRK_SWSUP_MSTANDBY) ||
ddata->cfg.quirks & (SYSC_QUIRK_FORCE_MSTANDBY))
best_mode = SYSC_IDLE_FORCE; best_mode = SYSC_IDLE_FORCE;
reg &= ~(SYSC_IDLE_MASK << regbits->midle_shift); reg &= ~(SYSC_IDLE_MASK << regbits->midle_shift);
...@@ -1583,6 +1590,10 @@ static int sysc_reset(struct sysc *ddata) ...@@ -1583,6 +1590,10 @@ static int sysc_reset(struct sysc *ddata)
sysc_val |= sysc_mask; sysc_val |= sysc_mask;
sysc_write(ddata, sysc_offset, sysc_val); sysc_write(ddata, sysc_offset, sysc_val);
if (ddata->cfg.srst_udelay)
usleep_range(ddata->cfg.srst_udelay,
ddata->cfg.srst_udelay * 2);
if (ddata->clk_enable_quirk) if (ddata->clk_enable_quirk)
ddata->clk_enable_quirk(ddata); ddata->clk_enable_quirk(ddata);
......
...@@ -49,6 +49,7 @@ struct sysc_regbits { ...@@ -49,6 +49,7 @@ struct sysc_regbits {
s8 emufree_shift; s8 emufree_shift;
}; };
#define SYSC_QUIRK_FORCE_MSTANDBY BIT(20)
#define SYSC_MODULE_QUIRK_AESS BIT(19) #define SYSC_MODULE_QUIRK_AESS BIT(19)
#define SYSC_MODULE_QUIRK_SGX BIT(18) #define SYSC_MODULE_QUIRK_SGX BIT(18)
#define SYSC_MODULE_QUIRK_HDQ1W BIT(17) #define SYSC_MODULE_QUIRK_HDQ1W BIT(17)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment