Commit e052860d authored by Olof Johansson's avatar Olof Johansson

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

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

Drop more legacy platform data for omaps for v5.6 merge window

We can now probe devices with ti-sysc interconnect driver and dts
data, and can continue dropping the related platform data and custom
ti,hwmods dts property for various devices.

And related to that, we finally can remove the legacy sdma support in
favor of using the dmaengine driver only. I was planning to send the
sdma changes separately, but that would have produced a pile of
pointless merge conflicts, so I decided it's best to resolve it locally.
After all, the sdma series also ends up removing the related platform
data.

Note that this series is based on omap-for-v5.6/ti-sysc-dt-signed branch
as it depends for dts data being in place.

* tag 'omap-for-v5.6/ti-sysc-drop-pdata-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (56 commits)
  ARM: OMAP2+: Drop legacy platform data for sdma
  ARM: OMAP2+: Drop legacy init for sdma
  dmaengine: ti: omap-dma: Use cpu notifier to block idle for omap2
  dmaengine: ti: omap-dma: Allocate channels directly
  dmaengine: ti: omap-dma: Pass sdma auxdata to driver and use it
  dmaengine: ti: omap-dma: Configure global priority register directly
  ARM: OMAP5: hwmod-data: remove OMAP5 IOMMU hwmod data
  ARM: OMAP4: hwmod-data: remove OMAP4 IOMMU hwmod data
  ARM: OMAP2+: Drop legacy platform data for omap4 fdif
  ARM: OMAP2+: Drop legacy platform data for omap4 slimbus
  ARM: OMAP2+: Drop legacy platform data for omap5 kbd
  ARM: OMAP2+: Drop legacy platform data for omap4 kbd
  ARM: OMAP2+: Drop legacy platform data for dra7 smartreflex
  ARM: OMAP2+: Drop legacy platform data for omap4 smartreflex
  ARM: OMAP2+: Drop legacy platform data for omap4 hsi
  ARM: OMAP2+: Drop legacy platform data for am4 vpfe
  ARM: OMAP2+: Drop legacy platform data for dra7 ocp2scp
  ARM: OMAP2+: Drop legacy platform data for omap5 ocp2scp
  ARM: OMAP2+: Drop legacy platform data for omap4 ocp2scp
  ARM: OMAP2+: Drop legacy platform data for am4 ocp2scp
  ...

Link: https://lore.kernel.org/r/pull-1578420398-290837@atomide.com-4Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 785ca50f 9fc85a71
...@@ -225,7 +225,6 @@ i2c0: i2c@0 { ...@@ -225,7 +225,6 @@ i2c0: i2c@0 {
target-module@d000 { /* 0x44e0d000, ap 20 38.0 */ target-module@d000 { /* 0x44e0d000, ap 20 38.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "adc_tsc";
reg = <0xd000 0x4>, reg = <0xd000 0x4>,
<0xd010 0x4>; <0xd010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1009,7 +1008,6 @@ i2c1: i2c@0 { ...@@ -1009,7 +1008,6 @@ i2c1: i2c@0 {
target-module@30000 { /* 0x48030000, ap 77 08.0 */ target-module@30000 { /* 0x48030000, ap 77 08.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "spi0";
reg = <0x30000 0x4>, reg = <0x30000 0x4>,
<0x30110 0x4>, <0x30110 0x4>,
<0x30114 0x4>; <0x30114 0x4>;
...@@ -1134,7 +1132,6 @@ timer2: timer@0 { ...@@ -1134,7 +1132,6 @@ timer2: timer@0 {
target-module@42000 { /* 0x48042000, ap 24 1c.0 */ target-module@42000 { /* 0x48042000, ap 24 1c.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer3";
reg = <0x42000 0x4>, reg = <0x42000 0x4>,
<0x42010 0x4>, <0x42010 0x4>,
<0x42014 0x4>; <0x42014 0x4>;
...@@ -1160,7 +1157,6 @@ timer3: timer@0 { ...@@ -1160,7 +1157,6 @@ timer3: timer@0 {
target-module@44000 { /* 0x48044000, ap 26 26.0 */ target-module@44000 { /* 0x48044000, ap 26 26.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer4";
reg = <0x44000 0x4>, reg = <0x44000 0x4>,
<0x44010 0x4>, <0x44010 0x4>,
<0x44014 0x4>; <0x44014 0x4>;
...@@ -1187,7 +1183,6 @@ timer4: timer@0 { ...@@ -1187,7 +1183,6 @@ timer4: timer@0 {
target-module@46000 { /* 0x48046000, ap 28 28.0 */ target-module@46000 { /* 0x48046000, ap 28 28.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer5";
reg = <0x46000 0x4>, reg = <0x46000 0x4>,
<0x46010 0x4>, <0x46010 0x4>,
<0x46014 0x4>; <0x46014 0x4>;
...@@ -1214,7 +1209,6 @@ timer5: timer@0 { ...@@ -1214,7 +1209,6 @@ timer5: timer@0 {
target-module@48000 { /* 0x48048000, ap 30 22.0 */ target-module@48000 { /* 0x48048000, ap 30 22.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer6";
reg = <0x48000 0x4>, reg = <0x48000 0x4>,
<0x48010 0x4>, <0x48010 0x4>,
<0x48014 0x4>; <0x48014 0x4>;
...@@ -1241,7 +1235,6 @@ timer6: timer@0 { ...@@ -1241,7 +1235,6 @@ timer6: timer@0 {
target-module@4a000 { /* 0x4804a000, ap 85 60.0 */ target-module@4a000 { /* 0x4804a000, ap 85 60.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer7";
reg = <0x4a000 0x4>, reg = <0x4a000 0x4>,
<0x4a010 0x4>, <0x4a010 0x4>,
<0x4a014 0x4>; <0x4a014 0x4>;
...@@ -1344,7 +1337,6 @@ mmc1: mmc@0 { ...@@ -1344,7 +1337,6 @@ mmc1: mmc@0 {
target-module@80000 { /* 0x48080000, ap 38 18.0 */ target-module@80000 { /* 0x48080000, ap 38 18.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "elm";
reg = <0x80000 0x4>, reg = <0x80000 0x4>,
<0x80010 0x4>, <0x80010 0x4>,
<0x80014 0x4>; <0x80014 0x4>;
...@@ -1412,7 +1404,6 @@ mbox_wkupm3: wkup_m3 { ...@@ -1412,7 +1404,6 @@ mbox_wkupm3: wkup_m3 {
target-module@ca000 { /* 0x480ca000, ap 91 40.0 */ target-module@ca000 { /* 0x480ca000, ap 91 40.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "spinlock";
reg = <0xca000 0x4>, reg = <0xca000 0x4>,
<0xca010 0x4>, <0xca010 0x4>,
<0xca014 0x4>; <0xca014 0x4>;
...@@ -1533,7 +1524,6 @@ i2c2: i2c@0 { ...@@ -1533,7 +1524,6 @@ i2c2: i2c@0 {
target-module@a0000 { /* 0x481a0000, ap 79 24.0 */ target-module@a0000 { /* 0x481a0000, ap 79 24.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "spi1";
reg = <0xa0000 0x4>, reg = <0xa0000 0x4>,
<0xa0110 0x4>, <0xa0110 0x4>,
<0xa0114 0x4>; <0xa0114 0x4>;
...@@ -1749,7 +1739,6 @@ target-module@cc000 { /* 0x481cc000, ap 60 46.0 */ ...@@ -1749,7 +1739,6 @@ target-module@cc000 { /* 0x481cc000, ap 60 46.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
reg = <0xcc020 0x4>; reg = <0xcc020 0x4>;
reg-names = "rev"; reg-names = "rev";
ti,hwmods = "d_can0";
/* Domains (P, C): per_pwrdm, l4ls_clkdm */ /* Domains (P, C): per_pwrdm, l4ls_clkdm */
clocks = <&l4ls_clkctrl AM3_L4LS_D_CAN0_CLKCTRL 0>, clocks = <&l4ls_clkctrl AM3_L4LS_D_CAN0_CLKCTRL 0>,
<&dcan0_fck>; <&dcan0_fck>;
...@@ -1773,7 +1762,6 @@ target-module@d0000 { /* 0x481d0000, ap 62 42.0 */ ...@@ -1773,7 +1762,6 @@ target-module@d0000 { /* 0x481d0000, ap 62 42.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
reg = <0xd0020 0x4>; reg = <0xd0020 0x4>;
reg-names = "rev"; reg-names = "rev";
ti,hwmods = "d_can1";
/* Domains (P, C): per_pwrdm, l4ls_clkdm */ /* Domains (P, C): per_pwrdm, l4ls_clkdm */
clocks = <&l4ls_clkctrl AM3_L4LS_D_CAN1_CLKCTRL 0>, clocks = <&l4ls_clkctrl AM3_L4LS_D_CAN1_CLKCTRL 0>,
<&dcan1_fck>; <&dcan1_fck>;
...@@ -1863,7 +1851,6 @@ segment@300000 { /* 0x48300000 */ ...@@ -1863,7 +1851,6 @@ segment@300000 { /* 0x48300000 */
target-module@0 { /* 0x48300000, ap 66 48.0 */ target-module@0 { /* 0x48300000, ap 66 48.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "epwmss0";
reg = <0x0 0x4>, reg = <0x0 0x4>,
<0x4 0x4>; <0x4 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1916,7 +1903,6 @@ ehrpwm0: pwm@200 { ...@@ -1916,7 +1903,6 @@ ehrpwm0: pwm@200 {
target-module@2000 { /* 0x48302000, ap 68 52.0 */ target-module@2000 { /* 0x48302000, ap 68 52.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "epwmss1";
reg = <0x2000 0x4>, reg = <0x2000 0x4>,
<0x2004 0x4>; <0x2004 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1969,7 +1955,6 @@ ehrpwm1: pwm@200 { ...@@ -1969,7 +1955,6 @@ ehrpwm1: pwm@200 {
target-module@4000 { /* 0x48304000, ap 70 44.0 */ target-module@4000 { /* 0x48304000, ap 70 44.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "epwmss2";
reg = <0x4000 0x4>, reg = <0x4000 0x4>,
<0x4004 0x4>; <0x4004 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -2022,7 +2007,6 @@ ehrpwm2: pwm@200 { ...@@ -2022,7 +2007,6 @@ ehrpwm2: pwm@200 {
target-module@e000 { /* 0x4830e000, ap 72 4a.0 */ target-module@e000 { /* 0x4830e000, ap 72 4a.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "lcdc";
reg = <0xe000 0x4>, reg = <0xe000 0x4>,
<0xe054 0x4>; <0xe054 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
......
...@@ -441,7 +441,6 @@ gpmc: gpmc@50000000 { ...@@ -441,7 +441,6 @@ gpmc: gpmc@50000000 {
sham_target: target-module@53100000 { sham_target: target-module@53100000 {
compatible = "ti,sysc-omap3-sham", "ti,sysc"; compatible = "ti,sysc-omap3-sham", "ti,sysc";
ti,hwmods = "sham";
reg = <0x53100100 0x4>, reg = <0x53100100 0x4>,
<0x53100110 0x4>, <0x53100110 0x4>,
<0x53100114 0x4>; <0x53100114 0x4>;
...@@ -470,7 +469,6 @@ sham: sham@0 { ...@@ -470,7 +469,6 @@ sham: sham@0 {
aes_target: target-module@53500000 { aes_target: target-module@53500000 {
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "aes";
reg = <0x53500080 0x4>, reg = <0x53500080 0x4>,
<0x53500084 0x4>, <0x53500084 0x4>,
<0x53500088 0x4>; <0x53500088 0x4>;
......
...@@ -258,7 +258,6 @@ mmc3: mmc@0 { ...@@ -258,7 +258,6 @@ mmc3: mmc@0 {
sham_target: target-module@53100000 { sham_target: target-module@53100000 {
compatible = "ti,sysc-omap3-sham", "ti,sysc"; compatible = "ti,sysc-omap3-sham", "ti,sysc";
ti,hwmods = "sham";
reg = <0x53100100 0x4>, reg = <0x53100100 0x4>,
<0x53100110 0x4>, <0x53100110 0x4>,
<0x53100114 0x4>; <0x53100114 0x4>;
...@@ -287,7 +286,6 @@ sham: sham@0 { ...@@ -287,7 +286,6 @@ sham: sham@0 {
aes_target: target-module@53501000 { aes_target: target-module@53501000 {
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "aes";
reg = <0x53501080 0x4>, reg = <0x53501080 0x4>,
<0x53501084 0x4>, <0x53501084 0x4>,
<0x53501088 0x4>; <0x53501088 0x4>;
...@@ -318,7 +316,6 @@ aes: aes@0 { ...@@ -318,7 +316,6 @@ aes: aes@0 {
des_target: target-module@53701000 { des_target: target-module@53701000 {
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "des";
reg = <0x53701030 0x4>, reg = <0x53701030 0x4>,
<0x53701034 0x4>, <0x53701034 0x4>,
<0x53701038 0x4>; <0x53701038 0x4>;
...@@ -369,7 +366,6 @@ gpmc: gpmc@50000000 { ...@@ -369,7 +366,6 @@ gpmc: gpmc@50000000 {
target-module@47900000 { target-module@47900000 {
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "qspi";
reg = <0x47900000 0x4>, reg = <0x47900000 0x4>,
<0x47900010 0x4>; <0x47900010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
......
...@@ -225,7 +225,6 @@ i2c0: i2c@0 { ...@@ -225,7 +225,6 @@ i2c0: i2c@0 {
target-module@d000 { /* 0x44e0d000, ap 20 38.0 */ target-module@d000 { /* 0x44e0d000, ap 20 38.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "adc_tsc";
reg = <0xd000 0x4>, reg = <0xd000 0x4>,
<0xd010 0x4>; <0xd010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -763,7 +762,6 @@ i2c1: i2c@0 { ...@@ -763,7 +762,6 @@ i2c1: i2c@0 {
target-module@30000 { /* 0x48030000, ap 65 08.0 */ target-module@30000 { /* 0x48030000, ap 65 08.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "spi0";
reg = <0x30000 0x4>, reg = <0x30000 0x4>,
<0x30110 0x4>, <0x30110 0x4>,
<0x30114 0x4>; <0x30114 0x4>;
...@@ -900,7 +898,6 @@ timer2: timer@0 { ...@@ -900,7 +898,6 @@ timer2: timer@0 {
target-module@42000 { /* 0x48042000, ap 20 24.0 */ target-module@42000 { /* 0x48042000, ap 20 24.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer3";
reg = <0x42000 0x4>, reg = <0x42000 0x4>,
<0x42010 0x4>, <0x42010 0x4>,
<0x42014 0x4>; <0x42014 0x4>;
...@@ -927,7 +924,6 @@ timer3: timer@0 { ...@@ -927,7 +924,6 @@ timer3: timer@0 {
target-module@44000 { /* 0x48044000, ap 22 26.0 */ target-module@44000 { /* 0x48044000, ap 22 26.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer4";
reg = <0x44000 0x4>, reg = <0x44000 0x4>,
<0x44010 0x4>, <0x44010 0x4>,
<0x44014 0x4>; <0x44014 0x4>;
...@@ -955,7 +951,6 @@ timer4: timer@0 { ...@@ -955,7 +951,6 @@ timer4: timer@0 {
target-module@46000 { /* 0x48046000, ap 24 28.0 */ target-module@46000 { /* 0x48046000, ap 24 28.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer5";
reg = <0x46000 0x4>, reg = <0x46000 0x4>,
<0x46010 0x4>, <0x46010 0x4>,
<0x46014 0x4>; <0x46014 0x4>;
...@@ -983,7 +978,6 @@ timer5: timer@0 { ...@@ -983,7 +978,6 @@ timer5: timer@0 {
target-module@48000 { /* 0x48048000, ap 26 1a.0 */ target-module@48000 { /* 0x48048000, ap 26 1a.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer6";
reg = <0x48000 0x4>, reg = <0x48000 0x4>,
<0x48010 0x4>, <0x48010 0x4>,
<0x48014 0x4>; <0x48014 0x4>;
...@@ -1011,7 +1005,6 @@ timer6: timer@0 { ...@@ -1011,7 +1005,6 @@ timer6: timer@0 {
target-module@4a000 { /* 0x4804a000, ap 71 48.0 */ target-module@4a000 { /* 0x4804a000, ap 71 48.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer7";
reg = <0x4a000 0x4>, reg = <0x4a000 0x4>,
<0x4a010 0x4>, <0x4a010 0x4>,
<0x4a014 0x4>; <0x4a014 0x4>;
...@@ -1107,7 +1100,6 @@ mmc1: mmc@0 { ...@@ -1107,7 +1100,6 @@ mmc1: mmc@0 {
target-module@80000 { /* 0x48080000, ap 32 18.0 */ target-module@80000 { /* 0x48080000, ap 32 18.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "elm";
reg = <0x80000 0x4>, reg = <0x80000 0x4>,
<0x80010 0x4>, <0x80010 0x4>,
<0x80014 0x4>; <0x80014 0x4>;
...@@ -1169,7 +1161,6 @@ mbox_wkupm3: wkup_m3 { ...@@ -1169,7 +1161,6 @@ mbox_wkupm3: wkup_m3 {
target-module@ca000 { /* 0x480ca000, ap 77 38.0 */ target-module@ca000 { /* 0x480ca000, ap 77 38.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "spinlock";
reg = <0xca000 0x4>, reg = <0xca000 0x4>,
<0xca010 0x4>, <0xca010 0x4>,
<0xca014 0x4>; <0xca014 0x4>;
...@@ -1282,7 +1273,6 @@ i2c2: i2c@0 { ...@@ -1282,7 +1273,6 @@ i2c2: i2c@0 {
target-module@a0000 { /* 0x481a0000, ap 67 2c.0 */ target-module@a0000 { /* 0x481a0000, ap 67 2c.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "spi1";
reg = <0xa0000 0x4>, reg = <0xa0000 0x4>,
<0xa0110 0x4>, <0xa0110 0x4>,
<0xa0114 0x4>; <0xa0114 0x4>;
...@@ -1313,7 +1303,6 @@ spi1: spi@0 { ...@@ -1313,7 +1303,6 @@ spi1: spi@0 {
target-module@a2000 { /* 0x481a2000, ap 69 2e.0 */ target-module@a2000 { /* 0x481a2000, ap 69 2e.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "spi2";
reg = <0xa2000 0x4>, reg = <0xa2000 0x4>,
<0xa2110 0x4>, <0xa2110 0x4>,
<0xa2114 0x4>; <0xa2114 0x4>;
...@@ -1344,7 +1333,6 @@ spi2: spi@0 { ...@@ -1344,7 +1333,6 @@ spi2: spi@0 {
target-module@a4000 { /* 0x481a4000, ap 92 62.0 */ target-module@a4000 { /* 0x481a4000, ap 92 62.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "spi3";
reg = <0xa4000 0x4>, reg = <0xa4000 0x4>,
<0xa4110 0x4>, <0xa4110 0x4>,
<0xa4114 0x4>; <0xa4114 0x4>;
...@@ -1527,7 +1515,6 @@ gpio3: gpio@0 { ...@@ -1527,7 +1515,6 @@ gpio3: gpio@0 {
target-module@c1000 { /* 0x481c1000, ap 94 68.0 */ target-module@c1000 { /* 0x481c1000, ap 94 68.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer8";
reg = <0xc1000 0x4>, reg = <0xc1000 0x4>,
<0xc1010 0x4>, <0xc1010 0x4>,
<0xc1014 0x4>; <0xc1014 0x4>;
...@@ -1556,7 +1543,6 @@ target-module@cc000 { /* 0x481cc000, ap 50 46.0 */ ...@@ -1556,7 +1543,6 @@ target-module@cc000 { /* 0x481cc000, ap 50 46.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
reg = <0xcc020 0x4>; reg = <0xcc020 0x4>;
reg-names = "rev"; reg-names = "rev";
ti,hwmods = "d_can0";
/* Domains (P, C): per_pwrdm, l4ls_clkdm */ /* Domains (P, C): per_pwrdm, l4ls_clkdm */
clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN0_CLKCTRL 0>; clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN0_CLKCTRL 0>;
clock-names = "fck"; clock-names = "fck";
...@@ -1577,7 +1563,6 @@ target-module@d0000 { /* 0x481d0000, ap 52 3a.0 */ ...@@ -1577,7 +1563,6 @@ target-module@d0000 { /* 0x481d0000, ap 52 3a.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
reg = <0xd0020 0x4>; reg = <0xd0020 0x4>;
reg-names = "rev"; reg-names = "rev";
ti,hwmods = "d_can1";
/* Domains (P, C): per_pwrdm, l4ls_clkdm */ /* Domains (P, C): per_pwrdm, l4ls_clkdm */
clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN1_CLKCTRL 0>; clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN1_CLKCTRL 0>;
clock-names = "fck"; clock-names = "fck";
...@@ -1695,7 +1680,6 @@ segment@300000 { /* 0x48300000 */ ...@@ -1695,7 +1680,6 @@ segment@300000 { /* 0x48300000 */
target-module@0 { /* 0x48300000, ap 56 40.0 */ target-module@0 { /* 0x48300000, ap 56 40.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "epwmss0";
reg = <0x0 0x4>, reg = <0x0 0x4>,
<0x4 0x4>; <0x4 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1748,7 +1732,6 @@ ehrpwm0: pwm@200 { ...@@ -1748,7 +1732,6 @@ ehrpwm0: pwm@200 {
target-module@2000 { /* 0x48302000, ap 58 4a.0 */ target-module@2000 { /* 0x48302000, ap 58 4a.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "epwmss1";
reg = <0x2000 0x4>, reg = <0x2000 0x4>,
<0x2004 0x4>; <0x2004 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1801,7 +1784,6 @@ ehrpwm1: pwm@200 { ...@@ -1801,7 +1784,6 @@ ehrpwm1: pwm@200 {
target-module@4000 { /* 0x48304000, ap 60 44.0 */ target-module@4000 { /* 0x48304000, ap 60 44.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "epwmss2";
reg = <0x4000 0x4>, reg = <0x4000 0x4>,
<0x4004 0x4>; <0x4004 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1854,7 +1836,6 @@ ehrpwm2: pwm@200 { ...@@ -1854,7 +1836,6 @@ ehrpwm2: pwm@200 {
target-module@6000 { /* 0x48306000, ap 96 58.0 */ target-module@6000 { /* 0x48306000, ap 96 58.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "epwmss3";
reg = <0x6000 0x4>, reg = <0x6000 0x4>,
<0x6004 0x4>; <0x6004 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1896,7 +1877,6 @@ ehrpwm3: pwm@200 { ...@@ -1896,7 +1877,6 @@ ehrpwm3: pwm@200 {
target-module@8000 { /* 0x48308000, ap 98 54.0 */ target-module@8000 { /* 0x48308000, ap 98 54.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "epwmss4";
reg = <0x8000 0x4>, reg = <0x8000 0x4>,
<0x8004 0x4>; <0x8004 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1938,7 +1918,6 @@ ehrpwm4: pwm@48308200 { ...@@ -1938,7 +1918,6 @@ ehrpwm4: pwm@48308200 {
target-module@a000 { /* 0x4830a000, ap 100 60.0 */ target-module@a000 { /* 0x4830a000, ap 100 60.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "epwmss5";
reg = <0xa000 0x4>, reg = <0xa000 0x4>,
<0xa004 0x4>; <0xa004 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -2086,7 +2065,6 @@ gpio5: gpio@0 { ...@@ -2086,7 +2065,6 @@ gpio5: gpio@0 {
target-module@26000 { /* 0x48326000, ap 86 66.0 */ target-module@26000 { /* 0x48326000, ap 86 66.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "vpfe0";
reg = <0x26000 0x4>, reg = <0x26000 0x4>,
<0x26104 0x4>; <0x26104 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -2113,7 +2091,6 @@ vpfe0: vpfe@0 { ...@@ -2113,7 +2091,6 @@ vpfe0: vpfe@0 {
target-module@28000 { /* 0x48328000, ap 75 0e.0 */ target-module@28000 { /* 0x48328000, ap 75 0e.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "vpfe1";
reg = <0x28000 0x4>, reg = <0x28000 0x4>,
<0x28104 0x4>; <0x28104 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -2162,7 +2139,6 @@ target-module@2a000 { /* 0x4832a000, ap 88 3c.0 */ ...@@ -2162,7 +2139,6 @@ target-module@2a000 { /* 0x4832a000, ap 88 3c.0 */
target-module@3d000 { /* 0x4833d000, ap 102 6e.0 */ target-module@3d000 { /* 0x4833d000, ap 102 6e.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer9";
reg = <0x3d000 0x4>, reg = <0x3d000 0x4>,
<0x3d010 0x4>, <0x3d010 0x4>,
<0x3d014 0x4>; <0x3d014 0x4>;
...@@ -2189,7 +2165,6 @@ timer9: timer@0 { ...@@ -2189,7 +2165,6 @@ timer9: timer@0 {
target-module@3f000 { /* 0x4833f000, ap 104 5c.0 */ target-module@3f000 { /* 0x4833f000, ap 104 5c.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer10";
reg = <0x3f000 0x4>, reg = <0x3f000 0x4>,
<0x3f010 0x4>, <0x3f010 0x4>,
<0x3f014 0x4>; <0x3f014 0x4>;
...@@ -2216,7 +2191,6 @@ timer10: timer@0 { ...@@ -2216,7 +2191,6 @@ timer10: timer@0 {
target-module@41000 { /* 0x48341000, ap 106 76.0 */ target-module@41000 { /* 0x48341000, ap 106 76.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer11";
reg = <0x41000 0x4>, reg = <0x41000 0x4>,
<0x41010 0x4>, <0x41010 0x4>,
<0x41014 0x4>; <0x41014 0x4>;
...@@ -2243,7 +2217,6 @@ timer11: timer@0 { ...@@ -2243,7 +2217,6 @@ timer11: timer@0 {
target-module@45000 { /* 0x48345000, ap 108 6a.0 */ target-module@45000 { /* 0x48345000, ap 108 6a.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "spi4";
reg = <0x45000 0x4>, reg = <0x45000 0x4>,
<0x45110 0x4>, <0x45110 0x4>,
<0x45114 0x4>; <0x45114 0x4>;
...@@ -2358,7 +2331,6 @@ usb1: usb@10000 { ...@@ -2358,7 +2331,6 @@ usb1: usb@10000 {
target-module@a8000 { /* 0x483a8000, ap 125 6c.0 */ target-module@a8000 { /* 0x483a8000, ap 125 6c.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "ocp2scp0";
reg = <0xa8000 0x4>; reg = <0xa8000 0x4>;
reg-names = "rev"; reg-names = "rev";
/* Domains (P, C): per_pwrdm, l4ls_clkdm */ /* Domains (P, C): per_pwrdm, l4ls_clkdm */
...@@ -2440,7 +2412,6 @@ usb2: usb@10000 { ...@@ -2440,7 +2412,6 @@ usb2: usb@10000 {
target-module@e8000 { /* 0x483e8000, ap 129 78.0 */ target-module@e8000 { /* 0x483e8000, ap 129 78.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "ocp2scp1";
reg = <0xe8000 0x4>; reg = <0xe8000 0x4>;
reg-names = "rev"; reg-names = "rev";
/* Domains (P, C): per_pwrdm, l4ls_clkdm */ /* Domains (P, C): per_pwrdm, l4ls_clkdm */
......
...@@ -186,7 +186,6 @@ cm_core_clockdomains: clockdomains { ...@@ -186,7 +186,6 @@ cm_core_clockdomains: clockdomains {
target-module@56000 { /* 0x4a056000, ap 9 02.0 */ target-module@56000 { /* 0x4a056000, ap 9 02.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "dma_system";
reg = <0x56000 0x4>, reg = <0x56000 0x4>,
<0x5602c 0x4>, <0x5602c 0x4>,
<0x56028 0x4>; <0x56028 0x4>;
...@@ -234,7 +233,6 @@ target-module@5e000 { /* 0x4a05e000, ap 11 1a.0 */ ...@@ -234,7 +233,6 @@ target-module@5e000 { /* 0x4a05e000, ap 11 1a.0 */
target-module@80000 { /* 0x4a080000, ap 13 20.0 */ target-module@80000 { /* 0x4a080000, ap 13 20.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "ocp2scp1";
reg = <0x80000 0x4>, reg = <0x80000 0x4>,
<0x80010 0x4>, <0x80010 0x4>,
<0x80014 0x4>; <0x80014 0x4>;
...@@ -302,7 +300,6 @@ usb3_phy1: phy@4400 { ...@@ -302,7 +300,6 @@ usb3_phy1: phy@4400 {
target-module@90000 { /* 0x4a090000, ap 59 42.0 */ target-module@90000 { /* 0x4a090000, ap 59 42.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "ocp2scp3";
reg = <0x90000 0x4>, reg = <0x90000 0x4>,
<0x90010 0x4>, <0x90010 0x4>,
<0x90014 0x4>; <0x90014 0x4>;
...@@ -394,7 +391,6 @@ target-module@a0000 { /* 0x4a0a0000, ap 15 40.0 */ ...@@ -394,7 +391,6 @@ target-module@a0000 { /* 0x4a0a0000, ap 15 40.0 */
target-module@d9000 { /* 0x4a0d9000, ap 17 72.0 */ target-module@d9000 { /* 0x4a0d9000, ap 17 72.0 */
compatible = "ti,sysc-omap4-sr", "ti,sysc"; compatible = "ti,sysc-omap4-sr", "ti,sysc";
ti,hwmods = "smartreflex_mpu";
reg = <0xd9038 0x4>; reg = <0xd9038 0x4>;
reg-names = "sysc"; reg-names = "sysc";
ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>; ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>;
...@@ -414,7 +410,6 @@ target-module@d9000 { /* 0x4a0d9000, ap 17 72.0 */ ...@@ -414,7 +410,6 @@ target-module@d9000 { /* 0x4a0d9000, ap 17 72.0 */
target-module@dd000 { /* 0x4a0dd000, ap 19 18.0 */ target-module@dd000 { /* 0x4a0dd000, ap 19 18.0 */
compatible = "ti,sysc-omap4-sr", "ti,sysc"; compatible = "ti,sysc-omap4-sr", "ti,sysc";
ti,hwmods = "smartreflex_core";
reg = <0xdd038 0x4>; reg = <0xdd038 0x4>;
reg-names = "sysc"; reg-names = "sysc";
ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>; ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>;
...@@ -471,7 +466,6 @@ mailbox1: mailbox@0 { ...@@ -471,7 +466,6 @@ mailbox1: mailbox@0 {
target-module@f6000 { /* 0x4a0f6000, ap 25 78.0 */ target-module@f6000 { /* 0x4a0f6000, ap 25 78.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "spinlock";
reg = <0xf6000 0x4>, reg = <0xf6000 0x4>,
<0xf6010 0x4>, <0xf6010 0x4>,
<0xf6014 0x4>; <0xf6014 0x4>;
...@@ -1233,7 +1227,6 @@ timer4: timer@0 { ...@@ -1233,7 +1227,6 @@ timer4: timer@0 {
target-module@3e000 { /* 0x4803e000, ap 11 56.0 */ target-module@3e000 { /* 0x4803e000, ap 11 56.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer9";
reg = <0x3e000 0x4>, reg = <0x3e000 0x4>,
<0x3e010 0x4>; <0x3e010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1748,7 +1741,6 @@ i2c2: i2c@0 { ...@@ -1748,7 +1741,6 @@ i2c2: i2c@0 {
target-module@78000 { /* 0x48078000, ap 39 0a.0 */ target-module@78000 { /* 0x48078000, ap 39 0a.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "elm";
reg = <0x78000 0x4>, reg = <0x78000 0x4>,
<0x78010 0x4>, <0x78010 0x4>,
<0x78014 0x4>; <0x78014 0x4>;
...@@ -1842,7 +1834,6 @@ i2c5: i2c@0 { ...@@ -1842,7 +1834,6 @@ i2c5: i2c@0 {
target-module@86000 { /* 0x48086000, ap 41 5e.0 */ target-module@86000 { /* 0x48086000, ap 41 5e.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer10";
reg = <0x86000 0x4>, reg = <0x86000 0x4>,
<0x86010 0x4>; <0x86010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1870,7 +1861,6 @@ timer10: timer@0 { ...@@ -1870,7 +1861,6 @@ timer10: timer@0 {
target-module@88000 { /* 0x48088000, ap 43 66.0 */ target-module@88000 { /* 0x48088000, ap 43 66.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer11";
reg = <0x88000 0x4>, reg = <0x88000 0x4>,
<0x88010 0x4>; <0x88010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -2046,7 +2036,6 @@ target-module@a4000 { /* 0x480a4000, ap 57 42.0 */ ...@@ -2046,7 +2036,6 @@ target-module@a4000 { /* 0x480a4000, ap 57 42.0 */
des_target: target-module@a5000 { /* 0x480a5000 */ des_target: target-module@a5000 { /* 0x480a5000 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "des";
reg = <0xa5030 0x4>, reg = <0xa5030 0x4>,
<0xa5034 0x4>, <0xa5034 0x4>,
<0xa5038 0x4>; <0xa5038 0x4>;
...@@ -2522,7 +2511,6 @@ atl: atl@0 { ...@@ -2522,7 +2511,6 @@ atl: atl@0 {
target-module@3e000 { /* 0x4843e000, ap 25 30.0 */ target-module@3e000 { /* 0x4843e000, ap 25 30.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "epwmss0";
reg = <0x3e000 0x4>, reg = <0x3e000 0x4>,
<0x3e004 0x4>; <0x3e004 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -2569,7 +2557,6 @@ ehrpwm0: pwm@200 { ...@@ -2569,7 +2557,6 @@ ehrpwm0: pwm@200 {
target-module@40000 { /* 0x48440000, ap 27 38.0 */ target-module@40000 { /* 0x48440000, ap 27 38.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "epwmss1";
reg = <0x40000 0x4>, reg = <0x40000 0x4>,
<0x40004 0x4>; <0x40004 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -2616,7 +2603,6 @@ ehrpwm1: pwm@200 { ...@@ -2616,7 +2603,6 @@ ehrpwm1: pwm@200 {
target-module@42000 { /* 0x48442000, ap 29 20.0 */ target-module@42000 { /* 0x48442000, ap 29 20.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "epwmss2";
reg = <0x42000 0x4>, reg = <0x42000 0x4>,
<0x42004 0x4>; <0x42004 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -3358,7 +3344,6 @@ target-module@1e000 { /* 0x4881e000, ap 93 2c.0 */ ...@@ -3358,7 +3344,6 @@ target-module@1e000 { /* 0x4881e000, ap 93 2c.0 */
target-module@20000 { /* 0x48820000, ap 5 08.0 */ target-module@20000 { /* 0x48820000, ap 5 08.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer5";
reg = <0x20000 0x4>, reg = <0x20000 0x4>,
<0x20010 0x4>; <0x20010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -3386,7 +3371,6 @@ timer5: timer@0 { ...@@ -3386,7 +3371,6 @@ timer5: timer@0 {
target-module@22000 { /* 0x48822000, ap 7 24.0 */ target-module@22000 { /* 0x48822000, ap 7 24.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer6";
reg = <0x22000 0x4>, reg = <0x22000 0x4>,
<0x22010 0x4>; <0x22010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -3414,7 +3398,6 @@ timer6: timer@0 { ...@@ -3414,7 +3398,6 @@ timer6: timer@0 {
target-module@24000 { /* 0x48824000, ap 9 26.0 */ target-module@24000 { /* 0x48824000, ap 9 26.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer7";
reg = <0x24000 0x4>, reg = <0x24000 0x4>,
<0x24010 0x4>; <0x24010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -3442,7 +3425,6 @@ timer7: timer@0 { ...@@ -3442,7 +3425,6 @@ timer7: timer@0 {
target-module@26000 { /* 0x48826000, ap 11 0c.0 */ target-module@26000 { /* 0x48826000, ap 11 0c.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer8";
reg = <0x26000 0x4>, reg = <0x26000 0x4>,
<0x26010 0x4>; <0x26010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -3470,7 +3452,6 @@ timer8: timer@0 { ...@@ -3470,7 +3452,6 @@ timer8: timer@0 {
target-module@28000 { /* 0x48828000, ap 13 16.0 */ target-module@28000 { /* 0x48828000, ap 13 16.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer13";
reg = <0x28000 0x4>, reg = <0x28000 0x4>,
<0x28010 0x4>; <0x28010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -3498,7 +3479,6 @@ timer13: timer@0 { ...@@ -3498,7 +3479,6 @@ timer13: timer@0 {
target-module@2a000 { /* 0x4882a000, ap 15 10.0 */ target-module@2a000 { /* 0x4882a000, ap 15 10.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer14";
reg = <0x2a000 0x4>, reg = <0x2a000 0x4>,
<0x2a010 0x4>; <0x2a010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -3526,7 +3506,6 @@ timer14: timer@0 { ...@@ -3526,7 +3506,6 @@ timer14: timer@0 {
target-module@2c000 { /* 0x4882c000, ap 17 02.0 */ target-module@2c000 { /* 0x4882c000, ap 17 02.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer15";
reg = <0x2c000 0x4>, reg = <0x2c000 0x4>,
<0x2c010 0x4>; <0x2c010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -3554,7 +3533,6 @@ timer15: timer@0 { ...@@ -3554,7 +3533,6 @@ timer15: timer@0 {
target-module@2e000 { /* 0x4882e000, ap 19 14.0 */ target-module@2e000 { /* 0x4882e000, ap 19 14.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer16";
reg = <0x2e000 0x4>, reg = <0x2e000 0x4>,
<0x2e010 0x4>; <0x2e010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -4454,7 +4432,6 @@ segment@20000 { /* 0x4ae20000 */ ...@@ -4454,7 +4432,6 @@ segment@20000 { /* 0x4ae20000 */
target-module@0 { /* 0x4ae20000, ap 19 08.0 */ target-module@0 { /* 0x4ae20000, ap 19 08.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer12";
reg = <0x0 0x4>, reg = <0x0 0x4>,
<0x10 0x4>; <0x10 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
......
...@@ -730,7 +730,6 @@ hdmi: encoder@58060000 { ...@@ -730,7 +730,6 @@ hdmi: encoder@58060000 {
aes1_target: target-module@4b500000 { aes1_target: target-module@4b500000 {
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "aes1";
reg = <0x4b500080 0x4>, reg = <0x4b500080 0x4>,
<0x4b500084 0x4>, <0x4b500084 0x4>,
<0x4b500088 0x4>; <0x4b500088 0x4>;
...@@ -762,7 +761,6 @@ aes1: aes@0 { ...@@ -762,7 +761,6 @@ aes1: aes@0 {
aes2_target: target-module@4b700000 { aes2_target: target-module@4b700000 {
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "aes2";
reg = <0x4b700080 0x4>, reg = <0x4b700080 0x4>,
<0x4b700084 0x4>, <0x4b700084 0x4>,
<0x4b700088 0x4>; <0x4b700088 0x4>;
...@@ -794,7 +792,6 @@ aes2: aes@0 { ...@@ -794,7 +792,6 @@ aes2: aes@0 {
sham_target: target-module@4b101000 { sham_target: target-module@4b101000 {
compatible = "ti,sysc-omap3-sham", "ti,sysc"; compatible = "ti,sysc-omap3-sham", "ti,sysc";
ti,hwmods = "sham";
reg = <0x4b101100 0x4>, reg = <0x4b101100 0x4>,
<0x4b101110 0x4>, <0x4b101110 0x4>,
<0x4b101114 0x4>; <0x4b101114 0x4>;
......
...@@ -82,7 +82,6 @@ intc: interrupt-controller@1 { ...@@ -82,7 +82,6 @@ intc: interrupt-controller@1 {
target-module@48056000 { target-module@48056000 {
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "dma";
reg = <0x48056000 0x4>, reg = <0x48056000 0x4>,
<0x4805602c 0x4>, <0x4805602c 0x4>,
<0x48056028 0x4>; <0x48056028 0x4>;
......
...@@ -208,7 +208,6 @@ intc: interrupt-controller@48200000 { ...@@ -208,7 +208,6 @@ intc: interrupt-controller@48200000 {
target-module@48056000 { target-module@48056000 {
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "dma";
reg = <0x48056000 0x4>, reg = <0x48056000 0x4>,
<0x4805602c 0x4>, <0x4805602c 0x4>,
<0x48056028 0x4>; <0x48056028 0x4>;
......
...@@ -219,7 +219,6 @@ target-module@2a000 { /* 0x4012a000, ap 10 0a.0 */ ...@@ -219,7 +219,6 @@ target-module@2a000 { /* 0x4012a000, ap 10 0a.0 */
target-module@2e000 { /* 0x4012e000, ap 12 0c.0 */ target-module@2e000 { /* 0x4012e000, ap 12 0c.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "dmic";
reg = <0x2e000 0x4>, reg = <0x2e000 0x4>,
<0x2e010 0x4>; <0x2e010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -279,7 +278,6 @@ wdt3: wdt@0 { ...@@ -279,7 +278,6 @@ wdt3: wdt@0 {
mcpdm_module: target-module@32000 { /* 0x40132000, ap 16 10.0 */ mcpdm_module: target-module@32000 { /* 0x40132000, ap 16 10.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "mcpdm";
reg = <0x32000 0x4>, reg = <0x32000 0x4>,
<0x32010 0x4>; <0x32010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -314,7 +312,6 @@ mcpdm: mcpdm@0 { ...@@ -314,7 +312,6 @@ mcpdm: mcpdm@0 {
target-module@38000 { /* 0x40138000, ap 18 12.0 */ target-module@38000 { /* 0x40138000, ap 18 12.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer5";
reg = <0x38000 0x4>, reg = <0x38000 0x4>,
<0x38010 0x4>; <0x38010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -345,7 +342,6 @@ timer5: timer@0 { ...@@ -345,7 +342,6 @@ timer5: timer@0 {
target-module@3a000 { /* 0x4013a000, ap 20 14.0 */ target-module@3a000 { /* 0x4013a000, ap 20 14.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer6";
reg = <0x3a000 0x4>, reg = <0x3a000 0x4>,
<0x3a010 0x4>; <0x3a010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -376,7 +372,6 @@ timer6: timer@0 { ...@@ -376,7 +372,6 @@ timer6: timer@0 {
target-module@3c000 { /* 0x4013c000, ap 22 16.0 */ target-module@3c000 { /* 0x4013c000, ap 22 16.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer7";
reg = <0x3c000 0x4>, reg = <0x3c000 0x4>,
<0x3c010 0x4>; <0x3c010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -407,7 +402,6 @@ timer7: timer@0 { ...@@ -407,7 +402,6 @@ timer7: timer@0 {
target-module@3e000 { /* 0x4013e000, ap 24 18.0 */ target-module@3e000 { /* 0x4013e000, ap 24 18.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer8";
reg = <0x3e000 0x4>, reg = <0x3e000 0x4>,
<0x3e010 0x4>; <0x3e010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -466,7 +460,6 @@ target-module@c0000 { /* 0x401c0000, ap 30 1e.0 */ ...@@ -466,7 +460,6 @@ target-module@c0000 { /* 0x401c0000, ap 30 1e.0 */
target-module@f1000 { /* 0x401f1000, ap 32 20.0 */ target-module@f1000 { /* 0x401f1000, ap 32 20.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "aess";
reg = <0xf1000 0x4>, reg = <0xf1000 0x4>,
<0xf1010 0x4>; <0xf1010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
......
...@@ -136,7 +136,6 @@ cm2_clockdomains: clockdomains { ...@@ -136,7 +136,6 @@ cm2_clockdomains: clockdomains {
target-module@56000 { /* 0x4a056000, ap 7 0a.0 */ target-module@56000 { /* 0x4a056000, ap 7 0a.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "dma_system";
reg = <0x56000 0x4>, reg = <0x56000 0x4>,
<0x5602c 0x4>, <0x5602c 0x4>,
<0x56028 0x4>; <0x56028 0x4>;
...@@ -174,7 +173,6 @@ sdma: dma-controller@0 { ...@@ -174,7 +173,6 @@ sdma: dma-controller@0 {
target-module@58000 { /* 0x4a058000, ap 10 0e.0 */ target-module@58000 { /* 0x4a058000, ap 10 0e.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "hsi";
reg = <0x58000 0x4>, reg = <0x58000 0x4>,
<0x58010 0x4>, <0x58010 0x4>,
<0x58014 0x4>; <0x58014 0x4>;
...@@ -425,7 +423,6 @@ usb_otg_hs: usb_otg_hs@0 { ...@@ -425,7 +423,6 @@ usb_otg_hs: usb_otg_hs@0 {
target-module@2d000 { /* 0x4a0ad000, ap 88 0c.0 */ target-module@2d000 { /* 0x4a0ad000, ap 88 0c.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "ocp2scp_usb_phy";
reg = <0x2d000 0x4>, reg = <0x2d000 0x4>,
<0x2d010 0x4>, <0x2d010 0x4>,
<0x2d014 0x4>; <0x2d014 0x4>;
...@@ -504,7 +501,6 @@ target-module@4d000 { /* 0x4a0cd000, ap 78 58.0 */ ...@@ -504,7 +501,6 @@ target-module@4d000 { /* 0x4a0cd000, ap 78 58.0 */
target-module@59000 { /* 0x4a0d9000, ap 13 1a.0 */ target-module@59000 { /* 0x4a0d9000, ap 13 1a.0 */
compatible = "ti,sysc-omap4-sr", "ti,sysc"; compatible = "ti,sysc-omap4-sr", "ti,sysc";
ti,hwmods = "smartreflex_mpu";
reg = <0x59038 0x4>; reg = <0x59038 0x4>;
reg-names = "sysc"; reg-names = "sysc";
ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>; ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>;
...@@ -528,7 +524,6 @@ smartreflex_mpu: smartreflex@0 { ...@@ -528,7 +524,6 @@ smartreflex_mpu: smartreflex@0 {
target-module@5b000 { /* 0x4a0db000, ap 15 08.0 */ target-module@5b000 { /* 0x4a0db000, ap 15 08.0 */
compatible = "ti,sysc-omap4-sr", "ti,sysc"; compatible = "ti,sysc-omap4-sr", "ti,sysc";
ti,hwmods = "smartreflex_iva";
reg = <0x5b038 0x4>; reg = <0x5b038 0x4>;
reg-names = "sysc"; reg-names = "sysc";
ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>; ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>;
...@@ -552,7 +547,6 @@ smartreflex_iva: smartreflex@0 { ...@@ -552,7 +547,6 @@ smartreflex_iva: smartreflex@0 {
target-module@5d000 { /* 0x4a0dd000, ap 17 22.0 */ target-module@5d000 { /* 0x4a0dd000, ap 17 22.0 */
compatible = "ti,sysc-omap4-sr", "ti,sysc"; compatible = "ti,sysc-omap4-sr", "ti,sysc";
ti,hwmods = "smartreflex_core";
reg = <0x5d038 0x4>; reg = <0x5d038 0x4>;
reg-names = "sysc"; reg-names = "sysc";
ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>; ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>;
...@@ -618,7 +612,6 @@ mbox_dsp: mbox_dsp { ...@@ -618,7 +612,6 @@ mbox_dsp: mbox_dsp {
target-module@76000 { /* 0x4a0f6000, ap 29 3a.0 */ target-module@76000 { /* 0x4a0f6000, ap 29 3a.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "spinlock";
reg = <0x76000 0x4>, reg = <0x76000 0x4>,
<0x76010 0x4>, <0x76010 0x4>,
<0x76014 0x4>; <0x76014 0x4>;
...@@ -726,7 +719,6 @@ target-module@8000 { /* 0x4a108000, ap 63 62.0 */ ...@@ -726,7 +719,6 @@ target-module@8000 { /* 0x4a108000, ap 63 62.0 */
target-module@a000 { /* 0x4a10a000, ap 65 50.0 */ target-module@a000 { /* 0x4a10a000, ap 65 50.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "fdif";
reg = <0xa000 0x4>, reg = <0xa000 0x4>,
<0xa010 0x4>; <0xa010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1182,7 +1174,6 @@ timer1: timer@0 { ...@@ -1182,7 +1174,6 @@ timer1: timer@0 {
target-module@c000 { /* 0x4a31c000, ap 11 20.0 */ target-module@c000 { /* 0x4a31c000, ap 11 20.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "kbd";
reg = <0xc000 0x4>, reg = <0xc000 0x4>,
<0xc010 0x4>, <0xc010 0x4>,
<0xc014 0x4>; <0xc014 0x4>;
...@@ -1427,7 +1418,6 @@ uart3: serial@0 { ...@@ -1427,7 +1418,6 @@ uart3: serial@0 {
target-module@32000 { /* 0x48032000, ap 5 02.0 */ target-module@32000 { /* 0x48032000, ap 5 02.0 */
compatible = "ti,sysc-omap2-timer", "ti,sysc"; compatible = "ti,sysc-omap2-timer", "ti,sysc";
ti,hwmods = "timer2";
reg = <0x32000 0x4>, reg = <0x32000 0x4>,
<0x32010 0x4>, <0x32010 0x4>,
<0x32014 0x4>; <0x32014 0x4>;
...@@ -1459,7 +1449,6 @@ timer2: timer@0 { ...@@ -1459,7 +1449,6 @@ timer2: timer@0 {
target-module@34000 { /* 0x48034000, ap 7 04.0 */ target-module@34000 { /* 0x48034000, ap 7 04.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer3";
reg = <0x34000 0x4>, reg = <0x34000 0x4>,
<0x34010 0x4>; <0x34010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1487,7 +1476,6 @@ timer3: timer@0 { ...@@ -1487,7 +1476,6 @@ timer3: timer@0 {
target-module@36000 { /* 0x48036000, ap 9 0e.0 */ target-module@36000 { /* 0x48036000, ap 9 0e.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer4";
reg = <0x36000 0x4>, reg = <0x36000 0x4>,
<0x36010 0x4>; <0x36010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1515,7 +1503,6 @@ timer4: timer@0 { ...@@ -1515,7 +1503,6 @@ timer4: timer@0 {
target-module@3e000 { /* 0x4803e000, ap 11 08.0 */ target-module@3e000 { /* 0x4803e000, ap 11 08.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer9";
reg = <0x3e000 0x4>, reg = <0x3e000 0x4>,
<0x3e010 0x4>; <0x3e010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1897,7 +1884,6 @@ i2c2: i2c@0 { ...@@ -1897,7 +1884,6 @@ i2c2: i2c@0 {
target-module@76000 { /* 0x48076000, ap 39 38.0 */ target-module@76000 { /* 0x48076000, ap 39 38.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "slimbus2";
reg = <0x76000 0x4>, reg = <0x76000 0x4>,
<0x76010 0x4>; <0x76010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1918,7 +1904,6 @@ target-module@76000 { /* 0x48076000, ap 39 38.0 */ ...@@ -1918,7 +1904,6 @@ target-module@76000 { /* 0x48076000, ap 39 38.0 */
target-module@78000 { /* 0x48078000, ap 41 1a.0 */ target-module@78000 { /* 0x48078000, ap 41 1a.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "elm";
reg = <0x78000 0x4>, reg = <0x78000 0x4>,
<0x78010 0x4>, <0x78010 0x4>,
<0x78014 0x4>; <0x78014 0x4>;
...@@ -1947,7 +1932,6 @@ elm: elm@0 { ...@@ -1947,7 +1932,6 @@ elm: elm@0 {
target-module@86000 { /* 0x48086000, ap 43 24.0 */ target-module@86000 { /* 0x48086000, ap 43 24.0 */
compatible = "ti,sysc-omap2-timer", "ti,sysc"; compatible = "ti,sysc-omap2-timer", "ti,sysc";
ti,hwmods = "timer10";
reg = <0x86000 0x4>, reg = <0x86000 0x4>,
<0x86010 0x4>, <0x86010 0x4>,
<0x86014 0x4>; <0x86014 0x4>;
...@@ -1980,7 +1964,6 @@ timer10: timer@0 { ...@@ -1980,7 +1964,6 @@ timer10: timer@0 {
target-module@88000 { /* 0x48088000, ap 45 2e.0 */ target-module@88000 { /* 0x48088000, ap 45 2e.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer11";
reg = <0x88000 0x4>, reg = <0x88000 0x4>,
<0x88010 0x4>; <0x88010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
......
...@@ -229,7 +229,6 @@ mmu_ipu: mmu@0 { ...@@ -229,7 +229,6 @@ mmu_ipu: mmu@0 {
target-module@4012c000 { target-module@4012c000 {
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "slimbus1";
reg = <0x4012c000 0x4>, reg = <0x4012c000 0x4>,
<0x4012c010 0x4>; <0x4012c010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
......
...@@ -203,7 +203,6 @@ target-module@2a000 { /* 0x4012a000, ap 10 0a.0 */ ...@@ -203,7 +203,6 @@ target-module@2a000 { /* 0x4012a000, ap 10 0a.0 */
target-module@2e000 { /* 0x4012e000, ap 12 0c.0 */ target-module@2e000 { /* 0x4012e000, ap 12 0c.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "dmic";
reg = <0x2e000 0x4>, reg = <0x2e000 0x4>,
<0x2e010 0x4>; <0x2e010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -244,7 +243,6 @@ target-module@30000 { /* 0x40130000, ap 14 0e.0 */ ...@@ -244,7 +243,6 @@ target-module@30000 { /* 0x40130000, ap 14 0e.0 */
mcpdm_module: target-module@32000 { /* 0x40132000, ap 16 10.0 */ mcpdm_module: target-module@32000 { /* 0x40132000, ap 16 10.0 */
compatible = "ti,sysc-omap4", "ti,sysc"; compatible = "ti,sysc-omap4", "ti,sysc";
ti,hwmods = "mcpdm";
reg = <0x32000 0x4>, reg = <0x32000 0x4>,
<0x32010 0x4>; <0x32010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -279,7 +277,6 @@ mcpdm: mcpdm@0 { ...@@ -279,7 +277,6 @@ mcpdm: mcpdm@0 {
target-module@38000 { /* 0x40138000, ap 18 12.0 */ target-module@38000 { /* 0x40138000, ap 18 12.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer5";
reg = <0x38000 0x4>, reg = <0x38000 0x4>,
<0x38010 0x4>; <0x38010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -311,7 +308,6 @@ timer5: timer@0 { ...@@ -311,7 +308,6 @@ timer5: timer@0 {
target-module@3a000 { /* 0x4013a000, ap 20 14.0 */ target-module@3a000 { /* 0x4013a000, ap 20 14.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer6";
reg = <0x3a000 0x4>, reg = <0x3a000 0x4>,
<0x3a010 0x4>; <0x3a010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -343,7 +339,6 @@ timer6: timer@0 { ...@@ -343,7 +339,6 @@ timer6: timer@0 {
target-module@3c000 { /* 0x4013c000, ap 22 16.0 */ target-module@3c000 { /* 0x4013c000, ap 22 16.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer7";
reg = <0x3c000 0x4>, reg = <0x3c000 0x4>,
<0x3c010 0x4>; <0x3c010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -374,7 +369,6 @@ timer7: timer@0 { ...@@ -374,7 +369,6 @@ timer7: timer@0 {
target-module@3e000 { /* 0x4013e000, ap 24 18.0 */ target-module@3e000 { /* 0x4013e000, ap 24 18.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer8";
reg = <0x3e000 0x4>, reg = <0x3e000 0x4>,
<0x3e010 0x4>; <0x3e010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
......
...@@ -213,7 +213,6 @@ dwc3: dwc3@10000 { ...@@ -213,7 +213,6 @@ dwc3: dwc3@10000 {
target-module@56000 { /* 0x4a056000, ap 7 02.0 */ target-module@56000 { /* 0x4a056000, ap 7 02.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "dma_system";
reg = <0x56000 0x4>, reg = <0x56000 0x4>,
<0x5602c 0x4>, <0x5602c 0x4>,
<0x56028 0x4>; <0x56028 0x4>;
...@@ -435,7 +434,6 @@ segment@80000 { /* 0x4a080000 */ ...@@ -435,7 +434,6 @@ segment@80000 { /* 0x4a080000 */
target-module@0 { /* 0x4a080000, ap 83 28.0 */ target-module@0 { /* 0x4a080000, ap 83 28.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "ocp2scp1";
reg = <0x0 0x4>, reg = <0x0 0x4>,
<0x10 0x4>, <0x10 0x4>,
<0x14 0x4>; <0x14 0x4>;
...@@ -493,7 +491,6 @@ usb3_phy: usb3phy@4400 { ...@@ -493,7 +491,6 @@ usb3_phy: usb3phy@4400 {
target-module@10000 { /* 0x4a090000, ap 89 36.0 */ target-module@10000 { /* 0x4a090000, ap 89 36.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "ocp2scp3";
reg = <0x10000 0x4>, reg = <0x10000 0x4>,
<0x10010 0x4>, <0x10010 0x4>,
<0x10014 0x4>; <0x10014 0x4>;
...@@ -632,7 +629,6 @@ mbox_dsp: mbox_dsp { ...@@ -632,7 +629,6 @@ mbox_dsp: mbox_dsp {
target-module@76000 { /* 0x4a0f6000, ap 27 0c.0 */ target-module@76000 { /* 0x4a0f6000, ap 27 0c.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "spinlock";
reg = <0x76000 0x4>, reg = <0x76000 0x4>,
<0x76010 0x4>, <0x76010 0x4>,
<0x76014 0x4>; <0x76014 0x4>;
...@@ -1066,7 +1062,6 @@ uart3: serial@0 { ...@@ -1066,7 +1062,6 @@ uart3: serial@0 {
target-module@32000 { /* 0x48032000, ap 5 3e.0 */ target-module@32000 { /* 0x48032000, ap 5 3e.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer2";
reg = <0x32000 0x4>, reg = <0x32000 0x4>,
<0x32010 0x4>; <0x32010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1094,7 +1089,6 @@ timer2: timer@0 { ...@@ -1094,7 +1089,6 @@ timer2: timer@0 {
target-module@34000 { /* 0x48034000, ap 7 46.0 */ target-module@34000 { /* 0x48034000, ap 7 46.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer3";
reg = <0x34000 0x4>, reg = <0x34000 0x4>,
<0x34010 0x4>; <0x34010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1122,7 +1116,6 @@ timer3: timer@0 { ...@@ -1122,7 +1116,6 @@ timer3: timer@0 {
target-module@36000 { /* 0x48036000, ap 9 4e.0 */ target-module@36000 { /* 0x48036000, ap 9 4e.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer4";
reg = <0x36000 0x4>, reg = <0x36000 0x4>,
<0x36010 0x4>; <0x36010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1150,7 +1143,6 @@ timer4: timer@0 { ...@@ -1150,7 +1143,6 @@ timer4: timer@0 {
target-module@3e000 { /* 0x4803e000, ap 11 56.0 */ target-module@3e000 { /* 0x4803e000, ap 11 56.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer9";
reg = <0x3e000 0x4>, reg = <0x3e000 0x4>,
<0x3e010 0x4>; <0x3e010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1718,7 +1710,6 @@ i2c5: i2c@0 { ...@@ -1718,7 +1710,6 @@ i2c5: i2c@0 {
target-module@86000 { /* 0x48086000, ap 41 5e.0 */ target-module@86000 { /* 0x48086000, ap 41 5e.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer10";
reg = <0x86000 0x4>, reg = <0x86000 0x4>,
<0x86010 0x4>; <0x86010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -1747,7 +1738,6 @@ timer10: timer@0 { ...@@ -1747,7 +1738,6 @@ timer10: timer@0 {
target-module@88000 { /* 0x48088000, ap 43 66.0 */ target-module@88000 { /* 0x48088000, ap 43 66.0 */
compatible = "ti,sysc-omap4-timer", "ti,sysc"; compatible = "ti,sysc-omap4-timer", "ti,sysc";
ti,hwmods = "timer11";
reg = <0x88000 0x4>, reg = <0x88000 0x4>,
<0x88010 0x4>; <0x88010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
...@@ -2363,7 +2353,6 @@ timer1: timer@0 { ...@@ -2363,7 +2353,6 @@ timer1: timer@0 {
target-module@c000 { /* 0x4ae1c000, ap 11 1c.0 */ target-module@c000 { /* 0x4ae1c000, ap 11 1c.0 */
compatible = "ti,sysc-omap2", "ti,sysc"; compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "kbd";
reg = <0xc000 0x4>, reg = <0xc000 0x4>,
<0xc010 0x4>; <0xc010 0x4>;
reg-names = "rev", "sysc"; reg-names = "rev", "sysc";
......
...@@ -345,9 +345,12 @@ static inline int dra7xx_pciess_reset(struct omap_hwmod *oh) ...@@ -345,9 +345,12 @@ static inline int dra7xx_pciess_reset(struct omap_hwmod *oh)
} }
#endif #endif
struct omap_system_dma_plat_info;
void pdata_quirks_init(const struct of_device_id *); void pdata_quirks_init(const struct of_device_id *);
void omap_auxdata_legacy_init(struct device *dev); void omap_auxdata_legacy_init(struct device *dev);
void omap_pcs_legacy_init(int irq, void (*rearm)(void)); void omap_pcs_legacy_init(int irq, void (*rearm)(void));
extern struct omap_system_dma_plat_info dma_plat_info;
struct omap_sdrc_params; struct omap_sdrc_params;
extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0, extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
......
...@@ -30,10 +30,6 @@ ...@@ -30,10 +30,6 @@
#include <linux/omap-dma.h> #include <linux/omap-dma.h>
#include "soc.h" #include "soc.h"
#include "omap_hwmod.h"
#include "omap_device.h"
static enum omap_reg_offsets dma_common_ch_end;
static const struct omap_dma_reg reg_map[] = { static const struct omap_dma_reg reg_map[] = {
[REVISION] = { 0x0000, 0x00, OMAP_DMA_REG_32BIT }, [REVISION] = { 0x0000, 0x00, OMAP_DMA_REG_32BIT },
...@@ -81,42 +77,6 @@ static const struct omap_dma_reg reg_map[] = { ...@@ -81,42 +77,6 @@ static const struct omap_dma_reg reg_map[] = {
[CCDN] = { 0x00d8, 0x60, OMAP_DMA_REG_32BIT }, [CCDN] = { 0x00d8, 0x60, OMAP_DMA_REG_32BIT },
}; };
static void __iomem *dma_base;
static inline void dma_write(u32 val, int reg, int lch)
{
void __iomem *addr = dma_base;
addr += reg_map[reg].offset;
addr += reg_map[reg].stride * lch;
writel_relaxed(val, addr);
}
static inline u32 dma_read(int reg, int lch)
{
void __iomem *addr = dma_base;
addr += reg_map[reg].offset;
addr += reg_map[reg].stride * lch;
return readl_relaxed(addr);
}
static void omap2_clear_dma(int lch)
{
int i;
for (i = CSDP; i <= dma_common_ch_end; i += 1)
dma_write(0, i, lch);
}
static void omap2_show_dma_caps(void)
{
u8 revision = dma_read(REVISION, 0) & 0xff;
printk(KERN_INFO "OMAP DMA hardware revision %d.%d\n",
revision >> 4, revision & 0xf);
}
static unsigned configure_dma_errata(void) static unsigned configure_dma_errata(void)
{ {
unsigned errata = 0; unsigned errata = 0;
...@@ -211,82 +171,35 @@ static const struct dma_slave_map omap24xx_sdma_dt_map[] = { ...@@ -211,82 +171,35 @@ static const struct dma_slave_map omap24xx_sdma_dt_map[] = {
{ "musb-hdrc.1.auto", "dmareq5", SDMA_FILTER_PARAM(64) }, /* OMAP2420 only */ { "musb-hdrc.1.auto", "dmareq5", SDMA_FILTER_PARAM(64) }, /* OMAP2420 only */
}; };
static struct omap_system_dma_plat_info dma_plat_info __initdata = { static struct omap_dma_dev_attr dma_attr = {
.reg_map = reg_map, .dev_caps = RESERVE_CHANNEL | DMA_LINKED_LCH | GLOBAL_PRIORITY |
.channel_stride = 0x60, IS_CSSA_32 | IS_CDSA_32,
.show_dma_caps = omap2_show_dma_caps, .lch_count = 32,
.clear_dma = omap2_clear_dma,
.dma_write = dma_write,
.dma_read = dma_read,
}; };
static struct platform_device_info omap_dma_dev_info __initdata = { struct omap_system_dma_plat_info dma_plat_info = {
.name = "omap-dma-engine", .reg_map = reg_map,
.id = -1, .channel_stride = 0x60,
.dma_mask = DMA_BIT_MASK(32), .dma_attr = &dma_attr,
}; };
/* One time initializations */ /* One time initializations */
static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) static int __init omap2_system_dma_init(void)
{ {
struct platform_device *pdev; dma_plat_info.errata = configure_dma_errata();
struct omap_system_dma_plat_info p;
struct omap_dma_dev_attr *d;
struct resource *mem;
char *name = "omap_dma_system";
p = dma_plat_info;
p.dma_attr = (struct omap_dma_dev_attr *)oh->dev_attr;
p.errata = configure_dma_errata();
if (soc_is_omap24xx()) { if (soc_is_omap24xx()) {
/* DMA slave map for drivers not yet converted to DT */ /* DMA slave map for drivers not yet converted to DT */
p.slave_map = omap24xx_sdma_dt_map; dma_plat_info.slave_map = omap24xx_sdma_dt_map;
p.slavecnt = ARRAY_SIZE(omap24xx_sdma_dt_map); dma_plat_info.slavecnt = ARRAY_SIZE(omap24xx_sdma_dt_map);
} }
pdev = omap_device_build(name, 0, oh, &p, sizeof(p)); if (!soc_is_omap242x())
if (IS_ERR(pdev)) { dma_attr.dev_caps |= IS_RW_PRIORITY;
pr_err("%s: Can't build omap_device for %s:%s.\n",
__func__, name, oh->name);
return PTR_ERR(pdev);
}
omap_dma_dev_info.res = pdev->resource;
omap_dma_dev_info.num_res = pdev->num_resources;
mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (soc_is_omap34xx() && (omap_type() != OMAP2_DEVICE_TYPE_GP))
if (!mem) { dma_attr.dev_caps |= HS_CHANNELS_RESERVED;
dev_err(&pdev->dev, "%s: no mem resource\n", __func__);
return -EINVAL;
}
dma_base = ioremap(mem->start, resource_size(mem));
if (!dma_base) {
dev_err(&pdev->dev, "%s: ioremap fail\n", __func__);
return -ENOMEM;
}
d = oh->dev_attr;
if (cpu_is_omap34xx() && (omap_type() != OMAP2_DEVICE_TYPE_GP))
d->dev_caps |= HS_CHANNELS_RESERVED;
if (platform_get_irq_byname(pdev, "0") < 0)
d->dev_caps |= DMA_ENGINE_HANDLE_IRQ;
/* Check the capabilities register for descriptor loading feature */
if (dma_read(CAPS_0, 0) & DMA_HAS_DESCRIPTOR_CAPS)
dma_common_ch_end = CCDN;
else
dma_common_ch_end = CCFN;
return 0; return 0;
} }
static int __init omap2_system_dma_init(void)
{
return omap_hwmod_for_each_by_class("dma",
omap2_system_dma_init_dev, NULL);
}
omap_arch_initcall(omap2_system_dma_init); omap_arch_initcall(omap2_system_dma_init);
...@@ -373,176 +373,6 @@ void omap_device_delete(struct omap_device *od) ...@@ -373,176 +373,6 @@ void omap_device_delete(struct omap_device *od)
kfree(od); kfree(od);
} }
/**
* omap_device_copy_resources - Add legacy IO and IRQ resources
* @oh: interconnect target module
* @pdev: platform device to copy resources to
*
* We still have legacy DMA and smartreflex needing resources.
* Let's populate what they need until we can eventually just
* remove this function. Note that there should be no need to
* call this from omap_device_build_from_dt(), nor should there
* be any need to call it for other devices.
*/
static int
omap_device_copy_resources(struct omap_hwmod *oh,
struct platform_device *pdev)
{
struct device_node *np, *child;
struct property *prop;
struct resource *res;
const char *name;
int error, irq = 0;
if (!oh || !oh->od || !oh->od->pdev)
return -EINVAL;
np = oh->od->pdev->dev.of_node;
if (!np) {
error = -ENODEV;
goto error;
}
res = kcalloc(2, sizeof(*res), GFP_KERNEL);
if (!res)
return -ENOMEM;
/* Do we have a dts range for the interconnect target module? */
error = omap_hwmod_parse_module_range(oh, np, res);
/* No ranges, rely on device reg entry */
if (error)
error = of_address_to_resource(np, 0, res);
if (error)
goto free;
/* SmartReflex needs first IO resource name to be "mpu" */
res[0].name = "mpu";
/*
* We may have a configured "ti,sysc" interconnect target with a
* dts child with the interrupt. If so use the first child's
* first interrupt for "ti-hwmods" legacy support.
*/
of_property_for_each_string(np, "compatible", prop, name)
if (!strncmp("ti,sysc-", name, 8))
break;
child = of_get_next_available_child(np, NULL);
if (name)
irq = irq_of_parse_and_map(child, 0);
if (!irq)
irq = irq_of_parse_and_map(np, 0);
if (!irq) {
error = -EINVAL;
goto free;
}
/* Legacy DMA code needs interrupt name to be "0" */
res[1].start = irq;
res[1].end = irq;
res[1].flags = IORESOURCE_IRQ;
res[1].name = "0";
error = platform_device_add_resources(pdev, res, 2);
free:
kfree(res);
error:
WARN(error, "%s: %s device %s failed: %i\n",
__func__, oh->name, dev_name(&pdev->dev),
error);
return error;
}
/**
* omap_device_build - build and register an omap_device with one omap_hwmod
* @pdev_name: name of the platform_device driver to use
* @pdev_id: this platform_device's connection ID
* @oh: ptr to the single omap_hwmod that backs this omap_device
* @pdata: platform_data ptr to associate with the platform_device
* @pdata_len: amount of memory pointed to by @pdata
*
* Convenience function for building and registering a single
* omap_device record, which in turn builds and registers a
* platform_device record. See omap_device_build_ss() for more
* information. Returns ERR_PTR(-EINVAL) if @oh is NULL; otherwise,
* passes along the return value of omap_device_build_ss().
*/
struct platform_device __init *omap_device_build(const char *pdev_name,
int pdev_id,
struct omap_hwmod *oh,
void *pdata, int pdata_len)
{
int ret = -ENOMEM;
struct platform_device *pdev;
struct omap_device *od;
if (!oh || !pdev_name)
return ERR_PTR(-EINVAL);
if (!pdata && pdata_len > 0)
return ERR_PTR(-EINVAL);
if (strncmp(oh->name, "smartreflex", 11) &&
strncmp(oh->name, "dma", 3)) {
pr_warn("%s need to update %s to probe with dt\na",
__func__, pdev_name);
ret = -ENODEV;
goto odbs_exit;
}
pdev = platform_device_alloc(pdev_name, pdev_id);
if (!pdev) {
ret = -ENOMEM;
goto odbs_exit;
}
/* Set the dev_name early to allow dev_xxx in omap_device_alloc */
if (pdev->id != -1)
dev_set_name(&pdev->dev, "%s.%d", pdev->name, pdev->id);
else
dev_set_name(&pdev->dev, "%s", pdev->name);
/*
* Must be called before omap_device_alloc() as oh->od
* only contains the currently registered omap_device
* and will get overwritten by omap_device_alloc().
*/
ret = omap_device_copy_resources(oh, pdev);
if (ret)
goto odbs_exit1;
od = omap_device_alloc(pdev, &oh, 1);
if (IS_ERR(od)) {
ret = PTR_ERR(od);
goto odbs_exit1;
}
ret = platform_device_add_data(pdev, pdata, pdata_len);
if (ret)
goto odbs_exit2;
ret = omap_device_register(pdev);
if (ret)
goto odbs_exit2;
return pdev;
odbs_exit2:
omap_device_delete(od);
odbs_exit1:
platform_device_put(pdev);
odbs_exit:
pr_err("omap_device: %s: build failed (%d)\n", pdev_name, ret);
return ERR_PTR(ret);
}
#ifdef CONFIG_PM #ifdef CONFIG_PM
static int _od_runtime_suspend(struct device *dev) static int _od_runtime_suspend(struct device *dev)
{ {
......
...@@ -68,10 +68,6 @@ int omap_device_idle(struct platform_device *pdev); ...@@ -68,10 +68,6 @@ int omap_device_idle(struct platform_device *pdev);
/* Core code interface */ /* Core code interface */
struct platform_device *omap_device_build(const char *pdev_name, int pdev_id,
struct omap_hwmod *oh, void *pdata,
int pdata_len);
struct omap_device *omap_device_alloc(struct platform_device *pdev, struct omap_device *omap_device_alloc(struct platform_device *pdev,
struct omap_hwmod **ohs, int oh_cnt); struct omap_hwmod **ohs, int oh_cnt);
void omap_device_delete(struct omap_device *od); void omap_device_delete(struct omap_device *od);
......
...@@ -1852,23 +1852,6 @@ static int _omap4_get_context_lost(struct omap_hwmod *oh) ...@@ -1852,23 +1852,6 @@ static int _omap4_get_context_lost(struct omap_hwmod *oh)
return oh->prcm.omap4.context_lost_counter; return oh->prcm.omap4.context_lost_counter;
} }
/**
* _enable_preprogram - Pre-program an IP block during the _enable() process
* @oh: struct omap_hwmod *
*
* Some IP blocks (such as AESS) require some additional programming
* after enable before they can enter idle. If a function pointer to
* do so is present in the hwmod data, then call it and pass along the
* return value; otherwise, return 0.
*/
static int _enable_preprogram(struct omap_hwmod *oh)
{
if (!oh->class->enable_preprogram)
return 0;
return oh->class->enable_preprogram(oh);
}
/** /**
* _enable - enable an omap_hwmod * _enable - enable an omap_hwmod
* @oh: struct omap_hwmod * * @oh: struct omap_hwmod *
...@@ -1952,7 +1935,6 @@ static int _enable(struct omap_hwmod *oh) ...@@ -1952,7 +1935,6 @@ static int _enable(struct omap_hwmod *oh)
_update_sysc_cache(oh); _update_sysc_cache(oh);
_enable_sysc(oh); _enable_sysc(oh);
} }
r = _enable_preprogram(oh);
} else { } else {
if (soc_ops.disable_module) if (soc_ops.disable_module)
soc_ops.disable_module(oh); soc_ops.disable_module(oh);
......
...@@ -501,7 +501,6 @@ struct omap_hwmod_omap4_prcm { ...@@ -501,7 +501,6 @@ struct omap_hwmod_omap4_prcm {
* @sysc: device SYSCONFIG/SYSSTATUS register data * @sysc: device SYSCONFIG/SYSSTATUS register data
* @pre_shutdown: ptr to fn to be executed immediately prior to device shutdown * @pre_shutdown: ptr to fn to be executed immediately prior to device shutdown
* @reset: ptr to fn to be executed in place of the standard hwmod reset fn * @reset: ptr to fn to be executed in place of the standard hwmod reset fn
* @enable_preprogram: ptr to fn to be executed during device enable
* @lock: ptr to fn to be executed to lock IP registers * @lock: ptr to fn to be executed to lock IP registers
* @unlock: ptr to fn to be executed to unlock IP registers * @unlock: ptr to fn to be executed to unlock IP registers
* *
...@@ -526,7 +525,6 @@ struct omap_hwmod_class { ...@@ -526,7 +525,6 @@ struct omap_hwmod_class {
struct omap_hwmod_class_sysconfig *sysc; struct omap_hwmod_class_sysconfig *sysc;
int (*pre_shutdown)(struct omap_hwmod *oh); int (*pre_shutdown)(struct omap_hwmod *oh);
int (*reset)(struct omap_hwmod *oh); int (*reset)(struct omap_hwmod *oh);
int (*enable_preprogram)(struct omap_hwmod *oh);
void (*lock)(struct omap_hwmod *oh); void (*lock)(struct omap_hwmod *oh);
void (*unlock)(struct omap_hwmod *oh); void (*unlock)(struct omap_hwmod *oh);
}; };
...@@ -662,7 +660,6 @@ const char *omap_hwmod_get_main_clk(struct omap_hwmod *oh); ...@@ -662,7 +660,6 @@ const char *omap_hwmod_get_main_clk(struct omap_hwmod *oh);
* *
*/ */
extern int omap_hwmod_aess_preprogram(struct omap_hwmod *oh);
void omap_hwmod_rtc_unlock(struct omap_hwmod *oh); void omap_hwmod_rtc_unlock(struct omap_hwmod *oh);
void omap_hwmod_rtc_lock(struct omap_hwmod *oh); void omap_hwmod_rtc_lock(struct omap_hwmod *oh);
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
*/ */
#include <linux/platform_data/i2c-omap.h> #include <linux/platform_data/i2c-omap.h>
#include <linux/omap-dma.h>
#include "omap_hwmod.h" #include "omap_hwmod.h"
#include "l3_2xxx.h" #include "l3_2xxx.h"
...@@ -126,21 +125,6 @@ static struct omap_hwmod omap2420_i2c2_hwmod = { ...@@ -126,21 +125,6 @@ static struct omap_hwmod omap2420_i2c2_hwmod = {
.flags = HWMOD_16BIT_REG, .flags = HWMOD_16BIT_REG,
}; };
/* dma attributes */
static struct omap_dma_dev_attr dma_dev_attr = {
.dev_caps = RESERVE_CHANNEL | DMA_LINKED_LCH | GLOBAL_PRIORITY |
IS_CSSA_32 | IS_CDSA_32,
.lch_count = 32,
};
static struct omap_hwmod omap2420_dma_system_hwmod = {
.name = "dma",
.class = &omap2xxx_dma_hwmod_class,
.main_clk = "core_l3_ck",
.dev_attr = &dma_dev_attr,
.flags = HWMOD_NO_IDLEST,
};
/* mailbox */ /* mailbox */
static struct omap_hwmod omap2420_mailbox_hwmod = { static struct omap_hwmod omap2420_mailbox_hwmod = {
.name = "mailbox", .name = "mailbox",
...@@ -328,22 +312,6 @@ static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio4 = { ...@@ -328,22 +312,6 @@ static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio4 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* dma_system -> L3 */
static struct omap_hwmod_ocp_if omap2420_dma_system__l3 = {
.master = &omap2420_dma_system_hwmod,
.slave = &omap2xxx_l3_main_hwmod,
.clk = "core_l3_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_core -> dma_system */
static struct omap_hwmod_ocp_if omap2420_l4_core__dma_system = {
.master = &omap2xxx_l4_core_hwmod,
.slave = &omap2420_dma_system_hwmod,
.clk = "sdma_ick",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_core -> mailbox */ /* l4_core -> mailbox */
static struct omap_hwmod_ocp_if omap2420_l4_core__mailbox = { static struct omap_hwmod_ocp_if omap2420_l4_core__mailbox = {
.master = &omap2xxx_l4_core_hwmod, .master = &omap2xxx_l4_core_hwmod,
...@@ -435,8 +403,6 @@ static struct omap_hwmod_ocp_if *omap2420_hwmod_ocp_ifs[] __initdata = { ...@@ -435,8 +403,6 @@ static struct omap_hwmod_ocp_if *omap2420_hwmod_ocp_ifs[] __initdata = {
&omap2420_l4_wkup__gpio2, &omap2420_l4_wkup__gpio2,
&omap2420_l4_wkup__gpio3, &omap2420_l4_wkup__gpio3,
&omap2420_l4_wkup__gpio4, &omap2420_l4_wkup__gpio4,
&omap2420_dma_system__l3,
&omap2420_l4_core__dma_system,
&omap2420_l4_core__mailbox, &omap2420_l4_core__mailbox,
&omap2420_l4_core__mcbsp1, &omap2420_l4_core__mcbsp1,
&omap2420_l4_core__mcbsp2, &omap2420_l4_core__mcbsp2,
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include <linux/platform_data/i2c-omap.h> #include <linux/platform_data/i2c-omap.h>
#include <linux/platform_data/hsmmc-omap.h> #include <linux/platform_data/hsmmc-omap.h>
#include <linux/omap-dma.h>
#include "omap_hwmod.h" #include "omap_hwmod.h"
#include "l3_2xxx.h" #include "l3_2xxx.h"
...@@ -121,21 +120,6 @@ static struct omap_hwmod omap2430_gpio5_hwmod = { ...@@ -121,21 +120,6 @@ static struct omap_hwmod omap2430_gpio5_hwmod = {
.class = &omap2xxx_gpio_hwmod_class, .class = &omap2xxx_gpio_hwmod_class,
}; };
/* dma attributes */
static struct omap_dma_dev_attr dma_dev_attr = {
.dev_caps = RESERVE_CHANNEL | DMA_LINKED_LCH | GLOBAL_PRIORITY |
IS_CSSA_32 | IS_CDSA_32 | IS_RW_PRIORITY,
.lch_count = 32,
};
static struct omap_hwmod omap2430_dma_system_hwmod = {
.name = "dma",
.class = &omap2xxx_dma_hwmod_class,
.main_clk = "core_l3_ck",
.dev_attr = &dma_dev_attr,
.flags = HWMOD_NO_IDLEST,
};
/* mailbox */ /* mailbox */
static struct omap_hwmod omap2430_mailbox_hwmod = { static struct omap_hwmod omap2430_mailbox_hwmod = {
.name = "mailbox", .name = "mailbox",
...@@ -508,22 +492,6 @@ static struct omap_hwmod_ocp_if omap2430_l4_core__gpio5 = { ...@@ -508,22 +492,6 @@ static struct omap_hwmod_ocp_if omap2430_l4_core__gpio5 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* dma_system -> L3 */
static struct omap_hwmod_ocp_if omap2430_dma_system__l3 = {
.master = &omap2430_dma_system_hwmod,
.slave = &omap2xxx_l3_main_hwmod,
.clk = "core_l3_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_core -> dma_system */
static struct omap_hwmod_ocp_if omap2430_l4_core__dma_system = {
.master = &omap2xxx_l4_core_hwmod,
.slave = &omap2430_dma_system_hwmod,
.clk = "sdma_ick",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_core -> mailbox */ /* l4_core -> mailbox */
static struct omap_hwmod_ocp_if omap2430_l4_core__mailbox = { static struct omap_hwmod_ocp_if omap2430_l4_core__mailbox = {
.master = &omap2xxx_l4_core_hwmod, .master = &omap2xxx_l4_core_hwmod,
...@@ -635,8 +603,6 @@ static struct omap_hwmod_ocp_if *omap2430_hwmod_ocp_ifs[] __initdata = { ...@@ -635,8 +603,6 @@ static struct omap_hwmod_ocp_if *omap2430_hwmod_ocp_ifs[] __initdata = {
&omap2430_l4_wkup__gpio3, &omap2430_l4_wkup__gpio3,
&omap2430_l4_wkup__gpio4, &omap2430_l4_wkup__gpio4,
&omap2430_l4_core__gpio5, &omap2430_l4_core__gpio5,
&omap2430_dma_system__l3,
&omap2430_l4_core__dma_system,
&omap2430_l4_core__mailbox, &omap2430_l4_core__mailbox,
&omap2430_l4_core__mcbsp1, &omap2430_l4_core__mcbsp1,
&omap2430_l4_core__mcbsp2, &omap2430_l4_core__mcbsp2,
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
*/ */
#include <linux/types.h> #include <linux/types.h>
#include <linux/omap-dma.h>
#include "omap_hwmod.h" #include "omap_hwmod.h"
#include "omap_hwmod_common_data.h" #include "omap_hwmod_common_data.h"
...@@ -95,23 +94,6 @@ struct omap_hwmod_class omap2xxx_gpio_hwmod_class = { ...@@ -95,23 +94,6 @@ struct omap_hwmod_class omap2xxx_gpio_hwmod_class = {
.sysc = &omap2xxx_gpio_sysc, .sysc = &omap2xxx_gpio_sysc,
}; };
/* system dma */
static struct omap_hwmod_class_sysconfig omap2xxx_dma_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x002c,
.syss_offs = 0x0028,
.sysc_flags = (SYSC_HAS_SOFTRESET | SYSC_HAS_MIDLEMODE |
SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_EMUFREE |
SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS),
.idlemodes = (MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
struct omap_hwmod_class omap2xxx_dma_hwmod_class = {
.name = "dma",
.sysc = &omap2xxx_dma_sysc,
};
/* /*
* 'mailbox' class * 'mailbox' class
* mailbox module allowing communication between the on-chip processors * mailbox module allowing communication between the on-chip processors
......
...@@ -28,29 +28,13 @@ extern struct omap_hwmod_ocp_if am33xx_pruss__l3_main; ...@@ -28,29 +28,13 @@ extern struct omap_hwmod_ocp_if am33xx_pruss__l3_main;
extern struct omap_hwmod_ocp_if am33xx_gfx__l3_main; extern struct omap_hwmod_ocp_if am33xx_gfx__l3_main;
extern struct omap_hwmod_ocp_if am33xx_l3_main__gfx; extern struct omap_hwmod_ocp_if am33xx_l3_main__gfx;
extern struct omap_hwmod_ocp_if am33xx_l4_wkup__rtc; extern struct omap_hwmod_ocp_if am33xx_l4_wkup__rtc;
extern struct omap_hwmod_ocp_if am33xx_l4_per__dcan0;
extern struct omap_hwmod_ocp_if am33xx_l4_per__dcan1;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__elm;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss0;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss1;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss2;
extern struct omap_hwmod_ocp_if am33xx_l3_s__gpmc; extern struct omap_hwmod_ocp_if am33xx_l3_s__gpmc;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__spinlock;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__mcspi0;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__mcspi1;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer2; extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer2;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer3;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer4;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer5;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer6;
extern struct omap_hwmod_ocp_if am33xx_l4_ls__timer7;
extern struct omap_hwmod_ocp_if am33xx_l3_main__tpcc; extern struct omap_hwmod_ocp_if am33xx_l3_main__tpcc;
extern struct omap_hwmod_ocp_if am33xx_l3_main__tptc0; extern struct omap_hwmod_ocp_if am33xx_l3_main__tptc0;
extern struct omap_hwmod_ocp_if am33xx_l3_main__tptc1; extern struct omap_hwmod_ocp_if am33xx_l3_main__tptc1;
extern struct omap_hwmod_ocp_if am33xx_l3_main__tptc2; extern struct omap_hwmod_ocp_if am33xx_l3_main__tptc2;
extern struct omap_hwmod_ocp_if am33xx_l3_main__ocmc; extern struct omap_hwmod_ocp_if am33xx_l3_main__ocmc;
extern struct omap_hwmod_ocp_if am33xx_l3_main__sha0;
extern struct omap_hwmod_ocp_if am33xx_l3_main__aes0;
extern struct omap_hwmod am33xx_l3_main_hwmod; extern struct omap_hwmod am33xx_l3_main_hwmod;
extern struct omap_hwmod am33xx_l3_s_hwmod; extern struct omap_hwmod am33xx_l3_s_hwmod;
...@@ -61,29 +45,13 @@ extern struct omap_hwmod am33xx_mpu_hwmod; ...@@ -61,29 +45,13 @@ extern struct omap_hwmod am33xx_mpu_hwmod;
extern struct omap_hwmod am33xx_pruss_hwmod; extern struct omap_hwmod am33xx_pruss_hwmod;
extern struct omap_hwmod am33xx_gfx_hwmod; extern struct omap_hwmod am33xx_gfx_hwmod;
extern struct omap_hwmod am33xx_prcm_hwmod; extern struct omap_hwmod am33xx_prcm_hwmod;
extern struct omap_hwmod am33xx_aes0_hwmod;
extern struct omap_hwmod am33xx_sha0_hwmod;
extern struct omap_hwmod am33xx_ocmcram_hwmod; extern struct omap_hwmod am33xx_ocmcram_hwmod;
extern struct omap_hwmod am33xx_smartreflex0_hwmod; extern struct omap_hwmod am33xx_smartreflex0_hwmod;
extern struct omap_hwmod am33xx_smartreflex1_hwmod; extern struct omap_hwmod am33xx_smartreflex1_hwmod;
extern struct omap_hwmod am33xx_dcan0_hwmod;
extern struct omap_hwmod am33xx_dcan1_hwmod;
extern struct omap_hwmod am33xx_elm_hwmod;
extern struct omap_hwmod am33xx_epwmss0_hwmod;
extern struct omap_hwmod am33xx_epwmss1_hwmod;
extern struct omap_hwmod am33xx_epwmss2_hwmod;
extern struct omap_hwmod am33xx_gpmc_hwmod; extern struct omap_hwmod am33xx_gpmc_hwmod;
extern struct omap_hwmod am33xx_rtc_hwmod; extern struct omap_hwmod am33xx_rtc_hwmod;
extern struct omap_hwmod am33xx_spi0_hwmod;
extern struct omap_hwmod am33xx_spi1_hwmod;
extern struct omap_hwmod am33xx_spinlock_hwmod;
extern struct omap_hwmod am33xx_timer1_hwmod; extern struct omap_hwmod am33xx_timer1_hwmod;
extern struct omap_hwmod am33xx_timer2_hwmod; extern struct omap_hwmod am33xx_timer2_hwmod;
extern struct omap_hwmod am33xx_timer3_hwmod;
extern struct omap_hwmod am33xx_timer4_hwmod;
extern struct omap_hwmod am33xx_timer5_hwmod;
extern struct omap_hwmod am33xx_timer6_hwmod;
extern struct omap_hwmod am33xx_timer7_hwmod;
extern struct omap_hwmod am33xx_tpcc_hwmod; extern struct omap_hwmod am33xx_tpcc_hwmod;
extern struct omap_hwmod am33xx_tptc0_hwmod; extern struct omap_hwmod am33xx_tptc0_hwmod;
extern struct omap_hwmod am33xx_tptc1_hwmod; extern struct omap_hwmod am33xx_tptc1_hwmod;
...@@ -94,7 +62,6 @@ extern struct omap_hwmod_class am33xx_l4_hwmod_class; ...@@ -94,7 +62,6 @@ extern struct omap_hwmod_class am33xx_l4_hwmod_class;
extern struct omap_hwmod_class am33xx_wkup_m3_hwmod_class; extern struct omap_hwmod_class am33xx_wkup_m3_hwmod_class;
extern struct omap_hwmod_class am33xx_control_hwmod_class; extern struct omap_hwmod_class am33xx_control_hwmod_class;
extern struct omap_hwmod_class am33xx_timer_hwmod_class; extern struct omap_hwmod_class am33xx_timer_hwmod_class;
extern struct omap_hwmod_class am33xx_epwmss_hwmod_class;
extern struct omap_hwmod_class am33xx_ehrpwm_hwmod_class; extern struct omap_hwmod_class am33xx_ehrpwm_hwmod_class;
extern struct omap_hwmod_class am33xx_spi_hwmod_class; extern struct omap_hwmod_class am33xx_spi_hwmod_class;
......
...@@ -106,50 +106,6 @@ struct omap_hwmod_ocp_if am33xx_l4_wkup__rtc = { ...@@ -106,50 +106,6 @@ struct omap_hwmod_ocp_if am33xx_l4_wkup__rtc = {
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
/* l4 per/ls -> DCAN0 */
struct omap_hwmod_ocp_if am33xx_l4_per__dcan0 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_dcan0_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4 per/ls -> DCAN1 */
struct omap_hwmod_ocp_if am33xx_l4_per__dcan1 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_dcan1_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
struct omap_hwmod_ocp_if am33xx_l4_ls__elm = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_elm_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss0 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_epwmss0_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss1 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_epwmss1_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss2 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_epwmss2_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
/* l3s cfg -> gpmc */ /* l3s cfg -> gpmc */
struct omap_hwmod_ocp_if am33xx_l3_s__gpmc = { struct omap_hwmod_ocp_if am33xx_l3_s__gpmc = {
.master = &am33xx_l3_s_hwmod, .master = &am33xx_l3_s_hwmod,
...@@ -158,30 +114,6 @@ struct omap_hwmod_ocp_if am33xx_l3_s__gpmc = { ...@@ -158,30 +114,6 @@ struct omap_hwmod_ocp_if am33xx_l3_s__gpmc = {
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
/* l4 ls -> spinlock */
struct omap_hwmod_ocp_if am33xx_l4_ls__spinlock = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_spinlock_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
/* l4 ls -> mcspi0 */
struct omap_hwmod_ocp_if am33xx_l4_ls__mcspi0 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_spi0_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
/* l4 ls -> mcspi1 */
struct omap_hwmod_ocp_if am33xx_l4_ls__mcspi1 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_spi1_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
/* l4 per -> timer2 */ /* l4 per -> timer2 */
struct omap_hwmod_ocp_if am33xx_l4_ls__timer2 = { struct omap_hwmod_ocp_if am33xx_l4_ls__timer2 = {
.master = &am33xx_l4_ls_hwmod, .master = &am33xx_l4_ls_hwmod,
...@@ -190,46 +122,6 @@ struct omap_hwmod_ocp_if am33xx_l4_ls__timer2 = { ...@@ -190,46 +122,6 @@ struct omap_hwmod_ocp_if am33xx_l4_ls__timer2 = {
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
/* l4 per -> timer3 */
struct omap_hwmod_ocp_if am33xx_l4_ls__timer3 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_timer3_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
/* l4 per -> timer4 */
struct omap_hwmod_ocp_if am33xx_l4_ls__timer4 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_timer4_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
/* l4 per -> timer5 */
struct omap_hwmod_ocp_if am33xx_l4_ls__timer5 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_timer5_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
/* l4 per -> timer6 */
struct omap_hwmod_ocp_if am33xx_l4_ls__timer6 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_timer6_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
/* l4 per -> timer7 */
struct omap_hwmod_ocp_if am33xx_l4_ls__timer7 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am33xx_timer7_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
/* l3 main -> tpcc */ /* l3 main -> tpcc */
struct omap_hwmod_ocp_if am33xx_l3_main__tpcc = { struct omap_hwmod_ocp_if am33xx_l3_main__tpcc = {
.master = &am33xx_l3_main_hwmod, .master = &am33xx_l3_main_hwmod,
...@@ -268,19 +160,3 @@ struct omap_hwmod_ocp_if am33xx_l3_main__ocmc = { ...@@ -268,19 +160,3 @@ struct omap_hwmod_ocp_if am33xx_l3_main__ocmc = {
.slave = &am33xx_ocmcram_hwmod, .slave = &am33xx_ocmcram_hwmod,
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l3 main -> sha0 HIB2 */
struct omap_hwmod_ocp_if am33xx_l3_main__sha0 = {
.master = &am33xx_l3_main_hwmod,
.slave = &am33xx_sha0_hwmod,
.clk = "sha0_fck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l3 main -> AES0 HIB2 */
struct omap_hwmod_ocp_if am33xx_l3_main__aes0 = {
.master = &am33xx_l3_main_hwmod,
.slave = &am33xx_aes0_hwmod,
.clk = "aes0_fck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
...@@ -213,57 +213,7 @@ struct omap_hwmod_class am33xx_emif_hwmod_class = { ...@@ -213,57 +213,7 @@ struct omap_hwmod_class am33xx_emif_hwmod_class = {
.sysc = &am33xx_emif_sysc, .sysc = &am33xx_emif_sysc,
}; };
/*
* 'aes0' class
*/
static struct omap_hwmod_class_sysconfig am33xx_aes0_sysc = {
.rev_offs = 0x80,
.sysc_offs = 0x84,
.syss_offs = 0x88,
.sysc_flags = SYSS_HAS_RESET_STATUS,
};
static struct omap_hwmod_class am33xx_aes0_hwmod_class = {
.name = "aes0",
.sysc = &am33xx_aes0_sysc,
};
struct omap_hwmod am33xx_aes0_hwmod = {
.name = "aes",
.class = &am33xx_aes0_hwmod_class,
.clkdm_name = "l3_clkdm",
.main_clk = "aes0_fck",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* sha0 HIB2 (the 'P' (public) device) */
static struct omap_hwmod_class_sysconfig am33xx_sha0_sysc = {
.rev_offs = 0x100,
.sysc_offs = 0x110,
.syss_offs = 0x114,
.sysc_flags = SYSS_HAS_RESET_STATUS,
};
static struct omap_hwmod_class am33xx_sha0_hwmod_class = {
.name = "sha0",
.sysc = &am33xx_sha0_sysc,
};
struct omap_hwmod am33xx_sha0_hwmod = {
.name = "sham",
.class = &am33xx_sha0_hwmod_class,
.clkdm_name = "l3_clkdm",
.main_clk = "l3_gclk",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* ocmcram */ /* ocmcram */
static struct omap_hwmod_class am33xx_ocmcram_hwmod_class = { static struct omap_hwmod_class am33xx_ocmcram_hwmod_class = {
...@@ -321,122 +271,6 @@ struct omap_hwmod_class am33xx_control_hwmod_class = { ...@@ -321,122 +271,6 @@ struct omap_hwmod_class am33xx_control_hwmod_class = {
.name = "control", .name = "control",
}; };
/*
* dcan class
*/
static struct omap_hwmod_class am33xx_dcan_hwmod_class = {
.name = "d_can",
};
/* dcan0 */
struct omap_hwmod am33xx_dcan0_hwmod = {
.name = "d_can0",
.class = &am33xx_dcan_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "dcan0_fck",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* dcan1 */
struct omap_hwmod am33xx_dcan1_hwmod = {
.name = "d_can1",
.class = &am33xx_dcan_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "dcan1_fck",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* elm */
static struct omap_hwmod_class_sysconfig am33xx_elm_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_SIDLEMODE |
SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE |
SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class am33xx_elm_hwmod_class = {
.name = "elm",
.sysc = &am33xx_elm_sysc,
};
struct omap_hwmod am33xx_elm_hwmod = {
.name = "elm",
.class = &am33xx_elm_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "l4ls_gclk",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* pwmss */
static struct omap_hwmod_class_sysconfig am33xx_epwmss_sysc = {
.rev_offs = 0x0,
.sysc_offs = 0x4,
.sysc_flags = (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type2,
};
struct omap_hwmod_class am33xx_epwmss_hwmod_class = {
.name = "epwmss",
.sysc = &am33xx_epwmss_sysc,
};
/* epwmss0 */
struct omap_hwmod am33xx_epwmss0_hwmod = {
.name = "epwmss0",
.class = &am33xx_epwmss_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "l4ls_gclk",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* epwmss1 */
struct omap_hwmod am33xx_epwmss1_hwmod = {
.name = "epwmss1",
.class = &am33xx_epwmss_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "l4ls_gclk",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* epwmss2 */
struct omap_hwmod am33xx_epwmss2_hwmod = {
.name = "epwmss2",
.class = &am33xx_epwmss_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "l4ls_gclk",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* gpmc */ /* gpmc */
static struct omap_hwmod_class_sysconfig gpmc_sysc = { static struct omap_hwmod_class_sysconfig gpmc_sysc = {
...@@ -501,83 +335,6 @@ struct omap_hwmod am33xx_rtc_hwmod = { ...@@ -501,83 +335,6 @@ struct omap_hwmod am33xx_rtc_hwmod = {
}, },
}; };
/* 'spi' class */
static struct omap_hwmod_class_sysconfig am33xx_mcspi_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0110,
.syss_offs = 0x0114,
.sysc_flags = (SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_SIDLEMODE |
SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE |
SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
struct omap_hwmod_class am33xx_spi_hwmod_class = {
.name = "mcspi",
.sysc = &am33xx_mcspi_sysc,
};
/* spi0 */
struct omap_hwmod am33xx_spi0_hwmod = {
.name = "spi0",
.class = &am33xx_spi_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "dpll_per_m2_div4_ck",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* spi1 */
struct omap_hwmod am33xx_spi1_hwmod = {
.name = "spi1",
.class = &am33xx_spi_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "dpll_per_m2_div4_ck",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/*
* 'spinlock' class
* spinlock provides hardware assistance for synchronizing the
* processes running on multiple processors
*/
static struct omap_hwmod_class_sysconfig am33xx_spinlock_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE |
SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class am33xx_spinlock_hwmod_class = {
.name = "spinlock",
.sysc = &am33xx_spinlock_sysc,
};
struct omap_hwmod am33xx_spinlock_hwmod = {
.name = "spinlock",
.class = &am33xx_spinlock_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "l4ls_gclk",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* 'timer 2-7' class */ /* 'timer 2-7' class */
static struct omap_hwmod_class_sysconfig am33xx_timer_sysc = { static struct omap_hwmod_class_sysconfig am33xx_timer_sysc = {
.rev_offs = 0x0000, .rev_offs = 0x0000,
...@@ -636,66 +393,6 @@ struct omap_hwmod am33xx_timer2_hwmod = { ...@@ -636,66 +393,6 @@ struct omap_hwmod am33xx_timer2_hwmod = {
}, },
}; };
struct omap_hwmod am33xx_timer3_hwmod = {
.name = "timer3",
.class = &am33xx_timer_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "timer3_fck",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
struct omap_hwmod am33xx_timer4_hwmod = {
.name = "timer4",
.class = &am33xx_timer_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "timer4_fck",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
struct omap_hwmod am33xx_timer5_hwmod = {
.name = "timer5",
.class = &am33xx_timer_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "timer5_fck",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
struct omap_hwmod am33xx_timer6_hwmod = {
.name = "timer6",
.class = &am33xx_timer_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "timer6_fck",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
struct omap_hwmod am33xx_timer7_hwmod = {
.name = "timer7",
.class = &am33xx_timer_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "timer7_fck",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* tpcc */ /* tpcc */
static struct omap_hwmod_class am33xx_tpcc_hwmod_class = { static struct omap_hwmod_class am33xx_tpcc_hwmod_class = {
.name = "tpcc", .name = "tpcc",
...@@ -772,21 +469,7 @@ struct omap_hwmod am33xx_tptc2_hwmod = { ...@@ -772,21 +469,7 @@ struct omap_hwmod am33xx_tptc2_hwmod = {
static void omap_hwmod_am33xx_clkctrl(void) static void omap_hwmod_am33xx_clkctrl(void)
{ {
CLKCTRL(am33xx_dcan0_hwmod, AM33XX_CM_PER_DCAN0_CLKCTRL_OFFSET);
CLKCTRL(am33xx_dcan1_hwmod, AM33XX_CM_PER_DCAN1_CLKCTRL_OFFSET);
CLKCTRL(am33xx_elm_hwmod, AM33XX_CM_PER_ELM_CLKCTRL_OFFSET);
CLKCTRL(am33xx_epwmss0_hwmod, AM33XX_CM_PER_EPWMSS0_CLKCTRL_OFFSET);
CLKCTRL(am33xx_epwmss1_hwmod, AM33XX_CM_PER_EPWMSS1_CLKCTRL_OFFSET);
CLKCTRL(am33xx_epwmss2_hwmod, AM33XX_CM_PER_EPWMSS2_CLKCTRL_OFFSET);
CLKCTRL(am33xx_spi0_hwmod, AM33XX_CM_PER_SPI0_CLKCTRL_OFFSET);
CLKCTRL(am33xx_spi1_hwmod, AM33XX_CM_PER_SPI1_CLKCTRL_OFFSET);
CLKCTRL(am33xx_spinlock_hwmod, AM33XX_CM_PER_SPINLOCK_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer2_hwmod, AM33XX_CM_PER_TIMER2_CLKCTRL_OFFSET); CLKCTRL(am33xx_timer2_hwmod, AM33XX_CM_PER_TIMER2_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer3_hwmod, AM33XX_CM_PER_TIMER3_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer4_hwmod, AM33XX_CM_PER_TIMER4_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer5_hwmod, AM33XX_CM_PER_TIMER5_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer6_hwmod, AM33XX_CM_PER_TIMER6_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer7_hwmod, AM33XX_CM_PER_TIMER7_CLKCTRL_OFFSET);
CLKCTRL(am33xx_smartreflex0_hwmod, CLKCTRL(am33xx_smartreflex0_hwmod,
AM33XX_CM_WKUP_SMARTREFLEX0_CLKCTRL_OFFSET); AM33XX_CM_WKUP_SMARTREFLEX0_CLKCTRL_OFFSET);
CLKCTRL(am33xx_smartreflex1_hwmod, CLKCTRL(am33xx_smartreflex1_hwmod,
...@@ -807,8 +490,6 @@ static void omap_hwmod_am33xx_clkctrl(void) ...@@ -807,8 +490,6 @@ static void omap_hwmod_am33xx_clkctrl(void)
CLKCTRL(am33xx_mpu_hwmod , AM33XX_CM_MPU_MPU_CLKCTRL_OFFSET); CLKCTRL(am33xx_mpu_hwmod , AM33XX_CM_MPU_MPU_CLKCTRL_OFFSET);
CLKCTRL(am33xx_l3_instr_hwmod , AM33XX_CM_PER_L3_INSTR_CLKCTRL_OFFSET); CLKCTRL(am33xx_l3_instr_hwmod , AM33XX_CM_PER_L3_INSTR_CLKCTRL_OFFSET);
CLKCTRL(am33xx_ocmcram_hwmod , AM33XX_CM_PER_OCMCRAM_CLKCTRL_OFFSET); CLKCTRL(am33xx_ocmcram_hwmod , AM33XX_CM_PER_OCMCRAM_CLKCTRL_OFFSET);
CLKCTRL(am33xx_sha0_hwmod , AM33XX_CM_PER_SHA0_CLKCTRL_OFFSET);
CLKCTRL(am33xx_aes0_hwmod , AM33XX_CM_PER_AES0_CLKCTRL_OFFSET);
} }
static void omap_hwmod_am33xx_rst(void) static void omap_hwmod_am33xx_rst(void)
...@@ -826,21 +507,7 @@ void omap_hwmod_am33xx_reg(void) ...@@ -826,21 +507,7 @@ void omap_hwmod_am33xx_reg(void)
static void omap_hwmod_am43xx_clkctrl(void) static void omap_hwmod_am43xx_clkctrl(void)
{ {
CLKCTRL(am33xx_dcan0_hwmod, AM43XX_CM_PER_DCAN0_CLKCTRL_OFFSET);
CLKCTRL(am33xx_dcan1_hwmod, AM43XX_CM_PER_DCAN1_CLKCTRL_OFFSET);
CLKCTRL(am33xx_elm_hwmod, AM43XX_CM_PER_ELM_CLKCTRL_OFFSET);
CLKCTRL(am33xx_epwmss0_hwmod, AM43XX_CM_PER_EPWMSS0_CLKCTRL_OFFSET);
CLKCTRL(am33xx_epwmss1_hwmod, AM43XX_CM_PER_EPWMSS1_CLKCTRL_OFFSET);
CLKCTRL(am33xx_epwmss2_hwmod, AM43XX_CM_PER_EPWMSS2_CLKCTRL_OFFSET);
CLKCTRL(am33xx_spi0_hwmod, AM43XX_CM_PER_SPI0_CLKCTRL_OFFSET);
CLKCTRL(am33xx_spi1_hwmod, AM43XX_CM_PER_SPI1_CLKCTRL_OFFSET);
CLKCTRL(am33xx_spinlock_hwmod, AM43XX_CM_PER_SPINLOCK_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer2_hwmod, AM43XX_CM_PER_TIMER2_CLKCTRL_OFFSET); CLKCTRL(am33xx_timer2_hwmod, AM43XX_CM_PER_TIMER2_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer3_hwmod, AM43XX_CM_PER_TIMER3_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer4_hwmod, AM43XX_CM_PER_TIMER4_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer5_hwmod, AM43XX_CM_PER_TIMER5_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer6_hwmod, AM43XX_CM_PER_TIMER6_CLKCTRL_OFFSET);
CLKCTRL(am33xx_timer7_hwmod, AM43XX_CM_PER_TIMER7_CLKCTRL_OFFSET);
CLKCTRL(am33xx_smartreflex0_hwmod, CLKCTRL(am33xx_smartreflex0_hwmod,
AM43XX_CM_WKUP_SMARTREFLEX0_CLKCTRL_OFFSET); AM43XX_CM_WKUP_SMARTREFLEX0_CLKCTRL_OFFSET);
CLKCTRL(am33xx_smartreflex1_hwmod, CLKCTRL(am33xx_smartreflex1_hwmod,
...@@ -860,8 +527,6 @@ static void omap_hwmod_am43xx_clkctrl(void) ...@@ -860,8 +527,6 @@ static void omap_hwmod_am43xx_clkctrl(void)
CLKCTRL(am33xx_mpu_hwmod , AM43XX_CM_MPU_MPU_CLKCTRL_OFFSET); CLKCTRL(am33xx_mpu_hwmod , AM43XX_CM_MPU_MPU_CLKCTRL_OFFSET);
CLKCTRL(am33xx_l3_instr_hwmod , AM43XX_CM_PER_L3_INSTR_CLKCTRL_OFFSET); CLKCTRL(am33xx_l3_instr_hwmod , AM43XX_CM_PER_L3_INSTR_CLKCTRL_OFFSET);
CLKCTRL(am33xx_ocmcram_hwmod , AM43XX_CM_PER_OCMCRAM_CLKCTRL_OFFSET); CLKCTRL(am33xx_ocmcram_hwmod , AM43XX_CM_PER_OCMCRAM_CLKCTRL_OFFSET);
CLKCTRL(am33xx_sha0_hwmod , AM43XX_CM_PER_SHA0_CLKCTRL_OFFSET);
CLKCTRL(am33xx_aes0_hwmod , AM43XX_CM_PER_AES0_CLKCTRL_OFFSET);
} }
static void omap_hwmod_am43xx_rst(void) static void omap_hwmod_am43xx_rst(void)
......
...@@ -81,36 +81,6 @@ static struct omap_hwmod am33xx_wkup_m3_hwmod = { ...@@ -81,36 +81,6 @@ static struct omap_hwmod am33xx_wkup_m3_hwmod = {
.rst_lines_cnt = ARRAY_SIZE(am33xx_wkup_m3_resets), .rst_lines_cnt = ARRAY_SIZE(am33xx_wkup_m3_resets),
}; };
/*
* 'adc/tsc' class
* TouchScreen Controller (Anolog-To-Digital Converter)
*/
static struct omap_hwmod_class_sysconfig am33xx_adc_tsc_sysc = {
.rev_offs = 0x00,
.sysc_offs = 0x10,
.sysc_flags = SYSC_HAS_SIDLEMODE,
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class am33xx_adc_tsc_hwmod_class = {
.name = "adc_tsc",
.sysc = &am33xx_adc_tsc_sysc,
};
static struct omap_hwmod am33xx_adc_tsc_hwmod = {
.name = "adc_tsc",
.class = &am33xx_adc_tsc_hwmod_class,
.clkdm_name = "l4_wkup_clkdm",
.main_clk = "adc_tsc_fck",
.prcm = {
.omap4 = {
.clkctrl_offs = AM33XX_CM_WKUP_ADC_TSC_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* /*
* Modules omap_hwmod structures * Modules omap_hwmod structures
...@@ -226,34 +196,6 @@ static struct omap_hwmod am33xx_control_hwmod = { ...@@ -226,34 +196,6 @@ static struct omap_hwmod am33xx_control_hwmod = {
}, },
}; };
/* lcdc */
static struct omap_hwmod_class_sysconfig lcdc_sysc = {
.rev_offs = 0x0,
.sysc_offs = 0x54,
.sysc_flags = SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE,
.idlemodes = SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART,
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class am33xx_lcdc_hwmod_class = {
.name = "lcdc",
.sysc = &lcdc_sysc,
};
static struct omap_hwmod am33xx_lcdc_hwmod = {
.name = "lcdc",
.class = &am33xx_lcdc_hwmod_class,
.clkdm_name = "lcdc_clkdm",
.flags = HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY,
.main_clk = "lcd_gclk",
.prcm = {
.omap4 = {
.clkctrl_offs = AM33XX_CM_PER_LCDC_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* /*
* Interfaces * Interfaces
...@@ -331,21 +273,6 @@ static struct omap_hwmod_ocp_if am33xx_l4_wkup__control = { ...@@ -331,21 +273,6 @@ static struct omap_hwmod_ocp_if am33xx_l4_wkup__control = {
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
/* L4 WKUP -> ADC_TSC */
static struct omap_hwmod_ocp_if am33xx_l4_wkup__adc_tsc = {
.master = &am33xx_l4_wkup_hwmod,
.slave = &am33xx_adc_tsc_hwmod,
.clk = "dpll_core_m4_div2_ck",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am33xx_l3_main__lcdc = {
.master = &am33xx_l3_main_hwmod,
.slave = &am33xx_lcdc_hwmod,
.clk = "dpll_core_m4_ck",
.user = OCP_USER_MPU,
};
/* l4 wkup -> timer1 */ /* l4 wkup -> timer1 */
static struct omap_hwmod_ocp_if am33xx_l4_wkup__timer1 = { static struct omap_hwmod_ocp_if am33xx_l4_wkup__timer1 = {
.master = &am33xx_l4_wkup_hwmod, .master = &am33xx_l4_wkup_hwmod,
...@@ -375,32 +302,14 @@ static struct omap_hwmod_ocp_if *am33xx_hwmod_ocp_ifs[] __initdata = { ...@@ -375,32 +302,14 @@ static struct omap_hwmod_ocp_if *am33xx_hwmod_ocp_ifs[] __initdata = {
&am33xx_l4_wkup__smartreflex1, &am33xx_l4_wkup__smartreflex1,
&am33xx_l4_wkup__timer1, &am33xx_l4_wkup__timer1,
&am33xx_l4_wkup__rtc, &am33xx_l4_wkup__rtc,
&am33xx_l4_wkup__adc_tsc,
&am33xx_l4_hs__pruss, &am33xx_l4_hs__pruss,
&am33xx_l4_per__dcan0,
&am33xx_l4_per__dcan1,
&am33xx_l4_ls__timer2, &am33xx_l4_ls__timer2,
&am33xx_l4_ls__timer3,
&am33xx_l4_ls__timer4,
&am33xx_l4_ls__timer5,
&am33xx_l4_ls__timer6,
&am33xx_l4_ls__timer7,
&am33xx_l3_main__tpcc, &am33xx_l3_main__tpcc,
&am33xx_l4_ls__spinlock,
&am33xx_l4_ls__elm,
&am33xx_l4_ls__epwmss0,
&am33xx_l4_ls__epwmss1,
&am33xx_l4_ls__epwmss2,
&am33xx_l3_s__gpmc, &am33xx_l3_s__gpmc,
&am33xx_l3_main__lcdc,
&am33xx_l4_ls__mcspi0,
&am33xx_l4_ls__mcspi1,
&am33xx_l3_main__tptc0, &am33xx_l3_main__tptc0,
&am33xx_l3_main__tptc1, &am33xx_l3_main__tptc1,
&am33xx_l3_main__tptc2, &am33xx_l3_main__tptc2,
&am33xx_l3_main__ocmc, &am33xx_l3_main__ocmc,
&am33xx_l3_main__sha0,
&am33xx_l3_main__aes0,
NULL, NULL,
}; };
......
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
#include <linux/power/smartreflex.h> #include <linux/power/smartreflex.h>
#include <linux/platform_data/hsmmc-omap.h> #include <linux/platform_data/hsmmc-omap.h>
#include <linux/omap-dma.h>
#include "l3_3xxx.h" #include "l3_3xxx.h"
#include "l4_3xxx.h" #include "l4_3xxx.h"
...@@ -833,47 +832,6 @@ static struct omap_hwmod omap3xxx_gpio6_hwmod = { ...@@ -833,47 +832,6 @@ static struct omap_hwmod omap3xxx_gpio6_hwmod = {
.class = &omap3xxx_gpio_hwmod_class, .class = &omap3xxx_gpio_hwmod_class,
}; };
/* dma attributes */
static struct omap_dma_dev_attr dma_dev_attr = {
.dev_caps = RESERVE_CHANNEL | DMA_LINKED_LCH | GLOBAL_PRIORITY |
IS_CSSA_32 | IS_CDSA_32 | IS_RW_PRIORITY,
.lch_count = 32,
};
static struct omap_hwmod_class_sysconfig omap3xxx_dma_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x002c,
.syss_offs = 0x0028,
.sysc_flags = (SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
SYSC_HAS_MIDLEMODE | SYSC_HAS_CLOCKACTIVITY |
SYSC_HAS_EMUFREE | SYSC_HAS_AUTOIDLE |
SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class omap3xxx_dma_hwmod_class = {
.name = "dma",
.sysc = &omap3xxx_dma_sysc,
};
/* dma_system */
static struct omap_hwmod omap3xxx_dma_system_hwmod = {
.name = "dma",
.class = &omap3xxx_dma_hwmod_class,
.main_clk = "core_l3_ick",
.prcm = {
.omap2 = {
.module_offs = CORE_MOD,
.idlest_reg_id = 1,
.idlest_idle_bit = OMAP3430_ST_SDMA_SHIFT,
},
},
.dev_attr = &dma_dev_attr,
.flags = HWMOD_NO_IDLEST,
};
/* /*
* 'mcbsp' class * 'mcbsp' class
* multi channel buffered serial port controller * multi channel buffered serial port controller
...@@ -2233,23 +2191,6 @@ static struct omap_hwmod_ocp_if omap3xxx_l4_per__gpio6 = { ...@@ -2233,23 +2191,6 @@ static struct omap_hwmod_ocp_if omap3xxx_l4_per__gpio6 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* dma_system -> L3 */
static struct omap_hwmod_ocp_if omap3xxx_dma_system__l3 = {
.master = &omap3xxx_dma_system_hwmod,
.slave = &omap3xxx_l3_main_hwmod,
.clk = "core_l3_ick",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_cfg -> dma_system */
static struct omap_hwmod_ocp_if omap3xxx_l4_core__dma_system = {
.master = &omap3xxx_l4_core_hwmod,
.slave = &omap3xxx_dma_system_hwmod,
.clk = "core_l4_ick",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_core -> mcbsp1 */ /* l4_core -> mcbsp1 */
static struct omap_hwmod_ocp_if omap3xxx_l4_core__mcbsp1 = { static struct omap_hwmod_ocp_if omap3xxx_l4_core__mcbsp1 = {
.master = &omap3xxx_l4_core_hwmod, .master = &omap3xxx_l4_core_hwmod,
...@@ -2628,8 +2569,6 @@ static struct omap_hwmod_ocp_if *omap3xxx_hwmod_ocp_ifs[] __initdata = { ...@@ -2628,8 +2569,6 @@ static struct omap_hwmod_ocp_if *omap3xxx_hwmod_ocp_ifs[] __initdata = {
&omap3xxx_l4_per__gpio4, &omap3xxx_l4_per__gpio4,
&omap3xxx_l4_per__gpio5, &omap3xxx_l4_per__gpio5,
&omap3xxx_l4_per__gpio6, &omap3xxx_l4_per__gpio6,
&omap3xxx_dma_system__l3,
&omap3xxx_l4_core__dma_system,
&omap3xxx_l4_core__mcbsp1, &omap3xxx_l4_core__mcbsp1,
&omap3xxx_l4_per__mcbsp2, &omap3xxx_l4_per__mcbsp2,
&omap3xxx_l4_per__mcbsp3, &omap3xxx_l4_per__mcbsp3,
......
...@@ -112,165 +112,6 @@ static struct omap_hwmod am43xx_synctimer_hwmod = { ...@@ -112,165 +112,6 @@ static struct omap_hwmod am43xx_synctimer_hwmod = {
}, },
}; };
static struct omap_hwmod am43xx_timer8_hwmod = {
.name = "timer8",
.class = &am33xx_timer_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "timer8_fck",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_TIMER8_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
static struct omap_hwmod am43xx_timer9_hwmod = {
.name = "timer9",
.class = &am33xx_timer_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "timer9_fck",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_TIMER9_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
static struct omap_hwmod am43xx_timer10_hwmod = {
.name = "timer10",
.class = &am33xx_timer_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "timer10_fck",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_TIMER10_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
static struct omap_hwmod am43xx_timer11_hwmod = {
.name = "timer11",
.class = &am33xx_timer_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "timer11_fck",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_TIMER11_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
static struct omap_hwmod am43xx_epwmss3_hwmod = {
.name = "epwmss3",
.class = &am33xx_epwmss_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "l4ls_gclk",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_EPWMSS3_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
static struct omap_hwmod am43xx_epwmss4_hwmod = {
.name = "epwmss4",
.class = &am33xx_epwmss_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "l4ls_gclk",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_EPWMSS4_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
static struct omap_hwmod am43xx_epwmss5_hwmod = {
.name = "epwmss5",
.class = &am33xx_epwmss_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "l4ls_gclk",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_EPWMSS5_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
static struct omap_hwmod am43xx_spi2_hwmod = {
.name = "spi2",
.class = &am33xx_spi_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "dpll_per_m2_div4_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_SPI2_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
static struct omap_hwmod am43xx_spi3_hwmod = {
.name = "spi3",
.class = &am33xx_spi_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "dpll_per_m2_div4_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_SPI3_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
static struct omap_hwmod am43xx_spi4_hwmod = {
.name = "spi4",
.class = &am33xx_spi_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "dpll_per_m2_div4_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_SPI4_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
static struct omap_hwmod_class am43xx_ocp2scp_hwmod_class = {
.name = "ocp2scp",
};
static struct omap_hwmod am43xx_ocp2scp0_hwmod = {
.name = "ocp2scp0",
.class = &am43xx_ocp2scp_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "l4ls_gclk",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_USBPHYOCP2SCP0_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
static struct omap_hwmod am43xx_ocp2scp1_hwmod = {
.name = "ocp2scp1",
.class = &am43xx_ocp2scp_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.main_clk = "l4ls_gclk",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_USBPHYOCP2SCP1_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
static struct omap_hwmod_class_sysconfig am43xx_usb_otg_ss_sysc = { static struct omap_hwmod_class_sysconfig am43xx_usb_otg_ss_sysc = {
.rev_offs = 0x0000, .rev_offs = 0x0000,
...@@ -315,89 +156,6 @@ static struct omap_hwmod am43xx_usb_otg_ss1_hwmod = { ...@@ -315,89 +156,6 @@ static struct omap_hwmod am43xx_usb_otg_ss1_hwmod = {
}, },
}; };
static struct omap_hwmod_class_sysconfig am43xx_qspi_sysc = {
.rev_offs = 0,
.sysc_offs = 0x0010,
.sysc_flags = SYSC_HAS_SIDLEMODE,
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class am43xx_qspi_hwmod_class = {
.name = "qspi",
.sysc = &am43xx_qspi_sysc,
};
static struct omap_hwmod am43xx_qspi_hwmod = {
.name = "qspi",
.class = &am43xx_qspi_hwmod_class,
.clkdm_name = "l3s_clkdm",
.main_clk = "l3s_gclk",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_QSPI_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/*
* 'adc/tsc' class
* TouchScreen Controller (Analog-To-Digital Converter)
*/
static struct omap_hwmod_class_sysconfig am43xx_adc_tsc_sysc = {
.rev_offs = 0x00,
.sysc_offs = 0x10,
.sysc_flags = SYSC_HAS_SIDLEMODE,
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class am43xx_adc_tsc_hwmod_class = {
.name = "adc_tsc",
.sysc = &am43xx_adc_tsc_sysc,
};
static struct omap_hwmod am43xx_adc_tsc_hwmod = {
.name = "adc_tsc",
.class = &am43xx_adc_tsc_hwmod_class,
.clkdm_name = "l3s_tsc_clkdm",
.main_clk = "adc_tsc_fck",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_WKUP_ADC_TSC_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
static struct omap_hwmod_class_sysconfig am43xx_des_sysc = {
.rev_offs = 0x30,
.sysc_offs = 0x34,
.syss_offs = 0x38,
.sysc_flags = SYSS_HAS_RESET_STATUS,
};
static struct omap_hwmod_class am43xx_des_hwmod_class = {
.name = "des",
.sysc = &am43xx_des_sysc,
};
static struct omap_hwmod am43xx_des_hwmod = {
.name = "des",
.class = &am43xx_des_hwmod_class,
.clkdm_name = "l3_clkdm",
.main_clk = "l3_gclk",
.prcm = {
.omap4 = {
.clkctrl_offs = AM43XX_CM_PER_DES_CLKCTRL_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* dss */ /* dss */
static struct omap_hwmod am43xx_dss_core_hwmod = { static struct omap_hwmod am43xx_dss_core_hwmod = {
...@@ -467,44 +225,6 @@ static struct omap_hwmod am43xx_dss_rfbi_hwmod = { ...@@ -467,44 +225,6 @@ static struct omap_hwmod am43xx_dss_rfbi_hwmod = {
}; };
static struct omap_hwmod_class_sysconfig am43xx_vpfe_sysc = {
.rev_offs = 0x0,
.sysc_offs = 0x104,
.sysc_flags = SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE,
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
MSTANDBY_FORCE | MSTANDBY_SMART | MSTANDBY_NO),
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class am43xx_vpfe_hwmod_class = {
.name = "vpfe",
.sysc = &am43xx_vpfe_sysc,
};
static struct omap_hwmod am43xx_vpfe0_hwmod = {
.name = "vpfe0",
.class = &am43xx_vpfe_hwmod_class,
.clkdm_name = "l3s_clkdm",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
.clkctrl_offs = AM43XX_CM_PER_VPFE0_CLKCTRL_OFFSET,
},
},
};
static struct omap_hwmod am43xx_vpfe1_hwmod = {
.name = "vpfe1",
.class = &am43xx_vpfe_hwmod_class,
.clkdm_name = "l3s_clkdm",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
.clkctrl_offs = AM43XX_CM_PER_VPFE1_CLKCTRL_OFFSET,
},
},
};
/* Interfaces */ /* Interfaces */
static struct omap_hwmod_ocp_if am43xx_l3_main__emif = { static struct omap_hwmod_ocp_if am43xx_l3_main__emif = {
.master = &am33xx_l3_main_hwmod, .master = &am33xx_l3_main_hwmod,
...@@ -562,13 +282,6 @@ static struct omap_hwmod_ocp_if am43xx_l4_wkup__control = { ...@@ -562,13 +282,6 @@ static struct omap_hwmod_ocp_if am43xx_l4_wkup__control = {
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
static struct omap_hwmod_ocp_if am43xx_l4_wkup__adc_tsc = {
.master = &am33xx_l4_wkup_hwmod,
.slave = &am43xx_adc_tsc_hwmod,
.clk = "dpll_core_m4_div2_ck",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am43xx_l4_wkup__timer1 = { static struct omap_hwmod_ocp_if am43xx_l4_wkup__timer1 = {
.master = &am33xx_l4_wkup_hwmod, .master = &am33xx_l4_wkup_hwmod,
.slave = &am33xx_timer1_hwmod, .slave = &am33xx_timer1_hwmod,
...@@ -583,90 +296,6 @@ static struct omap_hwmod_ocp_if am33xx_l4_wkup__synctimer = { ...@@ -583,90 +296,6 @@ static struct omap_hwmod_ocp_if am33xx_l4_wkup__synctimer = {
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
static struct omap_hwmod_ocp_if am43xx_l4_ls__timer8 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_timer8_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am43xx_l4_ls__timer9 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_timer9_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am43xx_l4_ls__timer10 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_timer10_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am43xx_l4_ls__timer11 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_timer11_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am43xx_l4_ls__epwmss3 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_epwmss3_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am43xx_l4_ls__epwmss4 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_epwmss4_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am43xx_l4_ls__epwmss5 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_epwmss5_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am43xx_l4_ls__mcspi2 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_spi2_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am43xx_l4_ls__mcspi3 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_spi3_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am43xx_l4_ls__mcspi4 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_spi4_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am43xx_l4_ls__ocp2scp0 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_ocp2scp0_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am43xx_l4_ls__ocp2scp1 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_ocp2scp1_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if am43xx_l3_s__usbotgss0 = { static struct omap_hwmod_ocp_if am43xx_l3_s__usbotgss0 = {
.master = &am33xx_l3_s_hwmod, .master = &am33xx_l3_s_hwmod,
.slave = &am43xx_usb_otg_ss0_hwmod, .slave = &am43xx_usb_otg_ss0_hwmod,
...@@ -681,13 +310,6 @@ static struct omap_hwmod_ocp_if am43xx_l3_s__usbotgss1 = { ...@@ -681,13 +310,6 @@ static struct omap_hwmod_ocp_if am43xx_l3_s__usbotgss1 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
static struct omap_hwmod_ocp_if am43xx_l3_s__qspi = {
.master = &am33xx_l3_s_hwmod,
.slave = &am43xx_qspi_hwmod,
.clk = "l3s_gclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
static struct omap_hwmod_ocp_if am43xx_dss__l3_main = { static struct omap_hwmod_ocp_if am43xx_dss__l3_main = {
.master = &am43xx_dss_core_hwmod, .master = &am43xx_dss_core_hwmod,
.slave = &am33xx_l3_main_hwmod, .slave = &am33xx_l3_main_hwmod,
...@@ -716,53 +338,8 @@ static struct omap_hwmod_ocp_if am43xx_l4_ls__dss_rfbi = { ...@@ -716,53 +338,8 @@ static struct omap_hwmod_ocp_if am43xx_l4_ls__dss_rfbi = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
static struct omap_hwmod_ocp_if am43xx_l3__vpfe0 = {
.master = &am43xx_vpfe0_hwmod,
.slave = &am33xx_l3_main_hwmod,
.clk = "l3_gclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
static struct omap_hwmod_ocp_if am43xx_l3__vpfe1 = {
.master = &am43xx_vpfe1_hwmod,
.slave = &am33xx_l3_main_hwmod,
.clk = "l3_gclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
static struct omap_hwmod_ocp_if am43xx_l4_ls__vpfe0 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_vpfe0_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
static struct omap_hwmod_ocp_if am43xx_l4_ls__vpfe1 = {
.master = &am33xx_l4_ls_hwmod,
.slave = &am43xx_vpfe1_hwmod,
.clk = "l4ls_gclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
static struct omap_hwmod_ocp_if am43xx_l3_main__des = {
.master = &am33xx_l3_main_hwmod,
.slave = &am43xx_des_hwmod,
.clk = "l3_gclk",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] __initdata = { static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] __initdata = {
&am33xx_l4_wkup__synctimer, &am33xx_l4_wkup__synctimer,
&am43xx_l4_ls__timer8,
&am43xx_l4_ls__timer9,
&am43xx_l4_ls__timer10,
&am43xx_l4_ls__timer11,
&am43xx_l4_ls__epwmss3,
&am43xx_l4_ls__epwmss4,
&am43xx_l4_ls__epwmss5,
&am43xx_l4_ls__mcspi2,
&am43xx_l4_ls__mcspi3,
&am43xx_l4_ls__mcspi4,
&am43xx_l3_main__pruss, &am43xx_l3_main__pruss,
&am33xx_mpu__l3_main, &am33xx_mpu__l3_main,
&am33xx_mpu__prcm, &am33xx_mpu__prcm,
...@@ -782,44 +359,19 @@ static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] __initdata = { ...@@ -782,44 +359,19 @@ static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] __initdata = {
&am43xx_l4_wkup__smartreflex0, &am43xx_l4_wkup__smartreflex0,
&am43xx_l4_wkup__smartreflex1, &am43xx_l4_wkup__smartreflex1,
&am43xx_l4_wkup__timer1, &am43xx_l4_wkup__timer1,
&am43xx_l4_wkup__adc_tsc,
&am43xx_l3_s__qspi,
&am33xx_l4_per__dcan0,
&am33xx_l4_per__dcan1,
&am33xx_l4_ls__timer2, &am33xx_l4_ls__timer2,
&am33xx_l4_ls__timer3,
&am33xx_l4_ls__timer4,
&am33xx_l4_ls__timer5,
&am33xx_l4_ls__timer6,
&am33xx_l4_ls__timer7,
&am33xx_l3_main__tpcc, &am33xx_l3_main__tpcc,
&am33xx_l4_ls__spinlock,
&am33xx_l4_ls__elm,
&am33xx_l4_ls__epwmss0,
&am33xx_l4_ls__epwmss1,
&am33xx_l4_ls__epwmss2,
&am33xx_l3_s__gpmc, &am33xx_l3_s__gpmc,
&am33xx_l4_ls__mcspi0,
&am33xx_l4_ls__mcspi1,
&am33xx_l3_main__tptc0, &am33xx_l3_main__tptc0,
&am33xx_l3_main__tptc1, &am33xx_l3_main__tptc1,
&am33xx_l3_main__tptc2, &am33xx_l3_main__tptc2,
&am33xx_l3_main__ocmc, &am33xx_l3_main__ocmc,
&am33xx_l3_main__sha0,
&am33xx_l3_main__aes0,
&am43xx_l3_main__des,
&am43xx_l4_ls__ocp2scp0,
&am43xx_l4_ls__ocp2scp1,
&am43xx_l3_s__usbotgss0, &am43xx_l3_s__usbotgss0,
&am43xx_l3_s__usbotgss1, &am43xx_l3_s__usbotgss1,
&am43xx_dss__l3_main, &am43xx_dss__l3_main,
&am43xx_l4_ls__dss, &am43xx_l4_ls__dss,
&am43xx_l4_ls__dss_dispc, &am43xx_l4_ls__dss_dispc,
&am43xx_l4_ls__dss_rfbi, &am43xx_l4_ls__dss_rfbi,
&am43xx_l3__vpfe0,
&am43xx_l3__vpfe1,
&am43xx_l4_ls__vpfe0,
&am43xx_l4_ls__vpfe1,
NULL, NULL,
}; };
......
...@@ -18,9 +18,6 @@ ...@@ -18,9 +18,6 @@
*/ */
#include <linux/io.h> #include <linux/io.h>
#include <linux/power/smartreflex.h>
#include <linux/omap-dma.h>
#include "omap_hwmod.h" #include "omap_hwmod.h"
#include "omap_hwmod_common_data.h" #include "omap_hwmod_common_data.h"
...@@ -32,9 +29,6 @@ ...@@ -32,9 +29,6 @@
/* Base offset for all OMAP4 interrupts external to MPUSS */ /* Base offset for all OMAP4 interrupts external to MPUSS */
#define OMAP44XX_IRQ_GIC_START 32 #define OMAP44XX_IRQ_GIC_START 32
/* Base offset for all OMAP4 dma requests */
#define OMAP44XX_DMA_REQ_START 1
/* /*
* IP blocks * IP blocks
*/ */
...@@ -237,43 +231,6 @@ static struct omap_hwmod omap44xx_ocp_wp_noc_hwmod = { ...@@ -237,43 +231,6 @@ static struct omap_hwmod omap44xx_ocp_wp_noc_hwmod = {
* usim * usim
*/ */
/*
* 'aess' class
* audio engine sub system
*/
static struct omap_hwmod_class_sysconfig omap44xx_aess_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.sysc_flags = (SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART |
MSTANDBY_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class omap44xx_aess_hwmod_class = {
.name = "aess",
.sysc = &omap44xx_aess_sysc,
.enable_preprogram = omap_hwmod_aess_preprogram,
};
/* aess */
static struct omap_hwmod omap44xx_aess_hwmod = {
.name = "aess",
.class = &omap44xx_aess_hwmod_class,
.clkdm_name = "abe_clkdm",
.main_clk = "aess_fclk",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM1_ABE_AESS_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_ABE_AESS_CONTEXT_OFFSET,
.lostcontext_mask = OMAP4430_LOSTCONTEXT_DFF_MASK,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* /*
* 'counter' class * 'counter' class
* 32-bit ordinary counter, clocked by the falling edge of the 32 khz clock * 32-bit ordinary counter, clocked by the falling edge of the 32 khz clock
...@@ -398,87 +355,6 @@ static struct omap_hwmod omap44xx_debugss_hwmod = { ...@@ -398,87 +355,6 @@ static struct omap_hwmod omap44xx_debugss_hwmod = {
}, },
}; };
/*
* 'dma' class
* dma controller for data exchange between memory to memory (i.e. internal or
* external memory) and gp peripherals to memory or memory to gp peripherals
*/
static struct omap_hwmod_class_sysconfig omap44xx_dma_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x002c,
.syss_offs = 0x0028,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
SYSC_HAS_EMUFREE | SYSC_HAS_MIDLEMODE |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class omap44xx_dma_hwmod_class = {
.name = "dma",
.sysc = &omap44xx_dma_sysc,
};
/* dma dev_attr */
static struct omap_dma_dev_attr dma_dev_attr = {
.dev_caps = RESERVE_CHANNEL | DMA_LINKED_LCH | GLOBAL_PRIORITY |
IS_CSSA_32 | IS_CDSA_32 | IS_RW_PRIORITY,
.lch_count = 32,
};
/* dma_system */
static struct omap_hwmod omap44xx_dma_system_hwmod = {
.name = "dma_system",
.class = &omap44xx_dma_hwmod_class,
.clkdm_name = "l3_dma_clkdm",
.main_clk = "l3_div_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_SDMA_SDMA_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_SDMA_SDMA_CONTEXT_OFFSET,
},
},
.dev_attr = &dma_dev_attr,
};
/*
* 'dmic' class
* digital microphone controller
*/
static struct omap_hwmod_class_sysconfig omap44xx_dmic_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.sysc_flags = (SYSC_HAS_EMUFREE | SYSC_HAS_RESET_STATUS |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class omap44xx_dmic_hwmod_class = {
.name = "dmic",
.sysc = &omap44xx_dmic_sysc,
};
/* dmic */
static struct omap_hwmod omap44xx_dmic_hwmod = {
.name = "dmic",
.class = &omap44xx_dmic_hwmod_class,
.clkdm_name = "abe_clkdm",
.main_clk = "func_dmic_abe_gfclk",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM1_ABE_DMIC_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_ABE_DMIC_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* /*
* 'dsp' class * 'dsp' class
* dsp sub-system * dsp sub-system
...@@ -804,39 +680,6 @@ static struct omap_hwmod omap44xx_sha0_hwmod = { ...@@ -804,39 +680,6 @@ static struct omap_hwmod omap44xx_sha0_hwmod = {
}, },
}; };
/*
* 'elm' class
* bch error location module
*/
static struct omap_hwmod_class_sysconfig omap44xx_elm_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class omap44xx_elm_hwmod_class = {
.name = "elm",
.sysc = &omap44xx_elm_sysc,
};
/* elm */
static struct omap_hwmod omap44xx_elm_hwmod = {
.name = "elm",
.class = &omap44xx_elm_hwmod_class,
.clkdm_name = "l4_per_clkdm",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_L4PER_ELM_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_L4PER_ELM_CONTEXT_OFFSET,
},
},
};
/* /*
* 'emif' class * 'emif' class
...@@ -981,50 +824,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__des = { ...@@ -981,50 +824,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__des = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/*
* 'fdif' class
* face detection hw accelerator module
*/
static struct omap_hwmod_class_sysconfig omap44xx_fdif_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
/*
* FDIF needs 100 OCP clk cycles delay after a softreset before
* accessing sysconfig again.
* The lowest frequency at the moment for L3 bus is 100 MHz, so
* 1usec delay is needed. Add an x2 margin to be safe (2 usecs).
*
* TODO: Indicate errata when available.
*/
.srst_udelay = 2,
.sysc_flags = (SYSC_HAS_MIDLEMODE | SYSC_HAS_RESET_STATUS |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class omap44xx_fdif_hwmod_class = {
.name = "fdif",
.sysc = &omap44xx_fdif_sysc,
};
/* fdif */
static struct omap_hwmod omap44xx_fdif_hwmod = {
.name = "fdif",
.class = &omap44xx_fdif_hwmod_class,
.clkdm_name = "iss_clkdm",
.main_clk = "fdif_fck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_CAM_FDIF_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_CAM_FDIF_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* /*
* 'gpmc' class * 'gpmc' class
* general purpose memory controller * general purpose memory controller
...@@ -1062,45 +861,6 @@ static struct omap_hwmod omap44xx_gpmc_hwmod = { ...@@ -1062,45 +861,6 @@ static struct omap_hwmod omap44xx_gpmc_hwmod = {
}; };
/*
* 'hsi' class
* mipi high-speed synchronous serial interface (multichannel and full-duplex
* serial if)
*/
static struct omap_hwmod_class_sysconfig omap44xx_hsi_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_EMUFREE |
SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE |
SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class omap44xx_hsi_hwmod_class = {
.name = "hsi",
.sysc = &omap44xx_hsi_sysc,
};
/* hsi */
static struct omap_hwmod omap44xx_hsi_hwmod = {
.name = "hsi",
.class = &omap44xx_hsi_hwmod_class,
.clkdm_name = "l3_init_clkdm",
.main_clk = "hsi_fck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_L3INIT_HSI_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_L3INIT_HSI_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/* /*
* 'ipu' class * 'ipu' class
* imaging processor unit * imaging processor unit
...@@ -1217,177 +977,6 @@ static struct omap_hwmod omap44xx_iva_hwmod = { ...@@ -1217,177 +977,6 @@ static struct omap_hwmod omap44xx_iva_hwmod = {
}, },
}; };
/*
* 'kbd' class
* keyboard controller
*/
static struct omap_hwmod_class_sysconfig omap44xx_kbd_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
SYSC_HAS_EMUFREE | SYSC_HAS_ENAWAKEUP |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class omap44xx_kbd_hwmod_class = {
.name = "kbd",
.sysc = &omap44xx_kbd_sysc,
};
/* kbd */
static struct omap_hwmod omap44xx_kbd_hwmod = {
.name = "kbd",
.class = &omap44xx_kbd_hwmod_class,
.clkdm_name = "l4_wkup_clkdm",
.main_clk = "sys_32k_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_WKUP_KEYBOARD_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_WKUP_KEYBOARD_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/*
* 'mcpdm' class
* multi channel pdm controller (proprietary interface with phoenix power
* ic)
*/
static struct omap_hwmod_class_sysconfig omap44xx_mcpdm_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.sysc_flags = (SYSC_HAS_EMUFREE | SYSC_HAS_RESET_STATUS |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class omap44xx_mcpdm_hwmod_class = {
.name = "mcpdm",
.sysc = &omap44xx_mcpdm_sysc,
};
/* mcpdm */
static struct omap_hwmod omap44xx_mcpdm_hwmod = {
.name = "mcpdm",
.class = &omap44xx_mcpdm_hwmod_class,
.clkdm_name = "abe_clkdm",
/*
* It's suspected that the McPDM requires an off-chip main
* functional clock, controlled via I2C. This IP block is
* currently reset very early during boot, before I2C is
* available, so it doesn't seem that we have any choice in
* the kernel other than to avoid resetting it.
*
* Also, McPDM needs to be configured to NO_IDLE mode when it
* is in used otherwise vital clocks will be gated which
* results 'slow motion' audio playback.
*/
.flags = HWMOD_EXT_OPT_MAIN_CLK | HWMOD_SWSUP_SIDLE,
.main_clk = "pad_clks_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM1_ABE_PDM_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_ABE_PDM_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/*
* 'mmu' class
* The memory management unit performs virtual to physical address translation
* for its requestors.
*/
static struct omap_hwmod_class_sysconfig mmu_sysc = {
.rev_offs = 0x000,
.sysc_offs = 0x010,
.syss_offs = 0x014,
.sysc_flags = (SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_SIDLEMODE |
SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class omap44xx_mmu_hwmod_class = {
.name = "mmu",
.sysc = &mmu_sysc,
};
/* mmu ipu */
static struct omap_hwmod omap44xx_mmu_ipu_hwmod;
static struct omap_hwmod_rst_info omap44xx_mmu_ipu_resets[] = {
{ .name = "mmu_cache", .rst_shift = 2 },
};
/* l3_main_2 -> mmu_ipu */
static struct omap_hwmod_ocp_if omap44xx_l3_main_2__mmu_ipu = {
.master = &omap44xx_l3_main_2_hwmod,
.slave = &omap44xx_mmu_ipu_hwmod,
.clk = "l3_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
static struct omap_hwmod omap44xx_mmu_ipu_hwmod = {
.name = "mmu_ipu",
.class = &omap44xx_mmu_hwmod_class,
.clkdm_name = "ducati_clkdm",
.rst_lines = omap44xx_mmu_ipu_resets,
.rst_lines_cnt = ARRAY_SIZE(omap44xx_mmu_ipu_resets),
.main_clk = "ducati_clk_mux_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_DUCATI_DUCATI_CLKCTRL_OFFSET,
.rstctrl_offs = OMAP4_RM_DUCATI_RSTCTRL_OFFSET,
.context_offs = OMAP4_RM_DUCATI_DUCATI_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/* mmu dsp */
static struct omap_hwmod omap44xx_mmu_dsp_hwmod;
static struct omap_hwmod_rst_info omap44xx_mmu_dsp_resets[] = {
{ .name = "mmu_cache", .rst_shift = 1 },
};
/* l4_cfg -> dsp */
static struct omap_hwmod_ocp_if omap44xx_l4_cfg__mmu_dsp = {
.master = &omap44xx_l4_cfg_hwmod,
.slave = &omap44xx_mmu_dsp_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
static struct omap_hwmod omap44xx_mmu_dsp_hwmod = {
.name = "mmu_dsp",
.class = &omap44xx_mmu_hwmod_class,
.clkdm_name = "tesla_clkdm",
.rst_lines = omap44xx_mmu_dsp_resets,
.rst_lines_cnt = ARRAY_SIZE(omap44xx_mmu_dsp_resets),
.main_clk = "dpll_iva_m4x2_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_TESLA_TESLA_CLKCTRL_OFFSET,
.rstctrl_offs = OMAP4_RM_TESLA_RSTCTRL_OFFSET,
.context_offs = OMAP4_RM_TESLA_TESLA_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/* /*
* 'mpu' class * 'mpu' class
* mpu sub-system * mpu sub-system
...@@ -1434,60 +1023,15 @@ static struct omap_hwmod omap44xx_ocmc_ram_hwmod = { ...@@ -1434,60 +1023,15 @@ static struct omap_hwmod omap44xx_ocmc_ram_hwmod = {
}, },
}; };
/* /*
* 'ocp2scp' class * 'prcm' class
* bridge to transform ocp interface protocol to scp (serial control port) * power and reset manager (part of the prcm infrastructure) + clock manager 2
* protocol * + clock manager 1 (in always on power domain) + local prm in mpu
*/ */
static struct omap_hwmod_class_sysconfig omap44xx_ocp2scp_sysc = { static struct omap_hwmod_class omap44xx_prcm_hwmod_class = {
.rev_offs = 0x0000, .name = "prcm",
.sysc_offs = 0x0010,
.syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE |
SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class omap44xx_ocp2scp_hwmod_class = {
.name = "ocp2scp",
.sysc = &omap44xx_ocp2scp_sysc,
};
/* ocp2scp_usb_phy */
static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = {
.name = "ocp2scp_usb_phy",
.class = &omap44xx_ocp2scp_hwmod_class,
.clkdm_name = "l3_init_clkdm",
/*
* ocp2scp_usb_phy_phy_48m is provided by the OMAP4 PRCM IP
* block as an "optional clock," and normally should never be
* specified as the main_clk for an OMAP IP block. However it
* turns out that this clock is actually the main clock for
* the ocp2scp_usb_phy IP block:
* http://lists.infradead.org/pipermail/linux-arm-kernel/2012-September/119943.html
* So listing ocp2scp_usb_phy_phy_48m as a main_clk here seems
* to be the best workaround.
*/
.main_clk = "ocp2scp_usb_phy_phy_48m",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_L3INIT_USBPHYOCP2SCP_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_L3INIT_USBPHYOCP2SCP_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/*
* 'prcm' class
* power and reset manager (part of the prcm infrastructure) + clock manager 2
* + clock manager 1 (in always on power domain) + local prm in mpu
*/
static struct omap_hwmod_class omap44xx_prcm_hwmod_class = {
.name = "prcm",
}; };
/* prcm_mpu */ /* prcm_mpu */
...@@ -1584,189 +1128,6 @@ static struct omap_hwmod omap44xx_sl2if_hwmod = { ...@@ -1584,189 +1128,6 @@ static struct omap_hwmod omap44xx_sl2if_hwmod = {
}, },
}; };
/*
* 'slimbus' class
* bidirectional, multi-drop, multi-channel two-line serial interface between
* the device and external components
*/
static struct omap_hwmod_class_sysconfig omap44xx_slimbus_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.sysc_flags = (SYSC_HAS_RESET_STATUS | SYSC_HAS_SIDLEMODE |
SYSC_HAS_SOFTRESET),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class omap44xx_slimbus_hwmod_class = {
.name = "slimbus",
.sysc = &omap44xx_slimbus_sysc,
};
/* slimbus1 */
static struct omap_hwmod_opt_clk slimbus1_opt_clks[] = {
{ .role = "fclk_1", .clk = "slimbus1_fclk_1" },
{ .role = "fclk_0", .clk = "slimbus1_fclk_0" },
{ .role = "fclk_2", .clk = "slimbus1_fclk_2" },
{ .role = "slimbus_clk", .clk = "slimbus1_slimbus_clk" },
};
static struct omap_hwmod omap44xx_slimbus1_hwmod = {
.name = "slimbus1",
.class = &omap44xx_slimbus_hwmod_class,
.clkdm_name = "abe_clkdm",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM1_ABE_SLIMBUS_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_ABE_SLIMBUS_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
.opt_clks = slimbus1_opt_clks,
.opt_clks_cnt = ARRAY_SIZE(slimbus1_opt_clks),
};
/* slimbus2 */
static struct omap_hwmod_opt_clk slimbus2_opt_clks[] = {
{ .role = "fclk_1", .clk = "slimbus2_fclk_1" },
{ .role = "fclk_0", .clk = "slimbus2_fclk_0" },
{ .role = "slimbus_clk", .clk = "slimbus2_slimbus_clk" },
};
static struct omap_hwmod omap44xx_slimbus2_hwmod = {
.name = "slimbus2",
.class = &omap44xx_slimbus_hwmod_class,
.clkdm_name = "l4_per_clkdm",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_L4PER_SLIMBUS2_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_L4PER_SLIMBUS2_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
.opt_clks = slimbus2_opt_clks,
.opt_clks_cnt = ARRAY_SIZE(slimbus2_opt_clks),
};
/*
* 'smartreflex' class
* smartreflex module (monitor silicon performance and outputs a measure of
* performance error)
*/
/* The IP is not compliant to type1 / type2 scheme */
static struct omap_hwmod_class_sysconfig omap44xx_smartreflex_sysc = {
.rev_offs = -ENODEV,
.sysc_offs = 0x0038,
.sysc_flags = (SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP),
.sysc_fields = &omap36xx_sr_sysc_fields,
};
static struct omap_hwmod_class omap44xx_smartreflex_hwmod_class = {
.name = "smartreflex",
.sysc = &omap44xx_smartreflex_sysc,
};
/* smartreflex_core */
static struct omap_smartreflex_dev_attr smartreflex_core_dev_attr = {
.sensor_voltdm_name = "core",
};
static struct omap_hwmod omap44xx_smartreflex_core_hwmod = {
.name = "smartreflex_core",
.class = &omap44xx_smartreflex_hwmod_class,
.clkdm_name = "l4_ao_clkdm",
.main_clk = "smartreflex_core_fck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_ALWON_SR_CORE_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_ALWON_SR_CORE_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
.dev_attr = &smartreflex_core_dev_attr,
};
/* smartreflex_iva */
static struct omap_smartreflex_dev_attr smartreflex_iva_dev_attr = {
.sensor_voltdm_name = "iva",
};
static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = {
.name = "smartreflex_iva",
.class = &omap44xx_smartreflex_hwmod_class,
.clkdm_name = "l4_ao_clkdm",
.main_clk = "smartreflex_iva_fck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_ALWON_SR_IVA_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_ALWON_SR_IVA_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
.dev_attr = &smartreflex_iva_dev_attr,
};
/* smartreflex_mpu */
static struct omap_smartreflex_dev_attr smartreflex_mpu_dev_attr = {
.sensor_voltdm_name = "mpu",
};
static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = {
.name = "smartreflex_mpu",
.class = &omap44xx_smartreflex_hwmod_class,
.clkdm_name = "l4_ao_clkdm",
.main_clk = "smartreflex_mpu_fck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_ALWON_SR_MPU_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_ALWON_SR_MPU_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
.dev_attr = &smartreflex_mpu_dev_attr,
};
/*
* 'spinlock' class
* spinlock provides hardware assistance for synchronizing the processes
* running on multiple processors
*/
static struct omap_hwmod_class_sysconfig omap44xx_spinlock_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE |
SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class omap44xx_spinlock_hwmod_class = {
.name = "spinlock",
.sysc = &omap44xx_spinlock_sysc,
};
/* spinlock */
static struct omap_hwmod omap44xx_spinlock_hwmod = {
.name = "spinlock",
.class = &omap44xx_spinlock_hwmod_class,
.clkdm_name = "l4_cfg_clkdm",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_L4CFG_HW_SEM_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_L4CFG_HW_SEM_CONTEXT_OFFSET,
},
},
};
/* /*
* 'timer' class * 'timer' class
* general purpose timer module with accurate 1ms tick * general purpose timer module with accurate 1ms tick
...@@ -1790,21 +1151,6 @@ static struct omap_hwmod_class omap44xx_timer_1ms_hwmod_class = { ...@@ -1790,21 +1151,6 @@ static struct omap_hwmod_class omap44xx_timer_1ms_hwmod_class = {
.sysc = &omap44xx_timer_1ms_sysc, .sysc = &omap44xx_timer_1ms_sysc,
}; };
static struct omap_hwmod_class_sysconfig omap44xx_timer_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.sysc_flags = (SYSC_HAS_EMUFREE | SYSC_HAS_RESET_STATUS |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class omap44xx_timer_hwmod_class = {
.name = "timer",
.sysc = &omap44xx_timer_sysc,
};
/* timer1 */ /* timer1 */
static struct omap_hwmod omap44xx_timer1_hwmod = { static struct omap_hwmod omap44xx_timer1_hwmod = {
.name = "timer1", .name = "timer1",
...@@ -1821,158 +1167,6 @@ static struct omap_hwmod omap44xx_timer1_hwmod = { ...@@ -1821,158 +1167,6 @@ static struct omap_hwmod omap44xx_timer1_hwmod = {
}, },
}; };
/* timer2 */
static struct omap_hwmod omap44xx_timer2_hwmod = {
.name = "timer2",
.class = &omap44xx_timer_1ms_hwmod_class,
.clkdm_name = "l4_per_clkdm",
.flags = HWMOD_SET_DEFAULT_CLOCKACT,
.main_clk = "cm2_dm2_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_L4PER_DMTIMER2_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_L4PER_DMTIMER2_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer3 */
static struct omap_hwmod omap44xx_timer3_hwmod = {
.name = "timer3",
.class = &omap44xx_timer_hwmod_class,
.clkdm_name = "l4_per_clkdm",
.main_clk = "cm2_dm3_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_L4PER_DMTIMER3_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_L4PER_DMTIMER3_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer4 */
static struct omap_hwmod omap44xx_timer4_hwmod = {
.name = "timer4",
.class = &omap44xx_timer_hwmod_class,
.clkdm_name = "l4_per_clkdm",
.main_clk = "cm2_dm4_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_L4PER_DMTIMER4_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_L4PER_DMTIMER4_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer5 */
static struct omap_hwmod omap44xx_timer5_hwmod = {
.name = "timer5",
.class = &omap44xx_timer_hwmod_class,
.clkdm_name = "abe_clkdm",
.main_clk = "timer5_sync_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM1_ABE_TIMER5_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_ABE_TIMER5_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer6 */
static struct omap_hwmod omap44xx_timer6_hwmod = {
.name = "timer6",
.class = &omap44xx_timer_hwmod_class,
.clkdm_name = "abe_clkdm",
.main_clk = "timer6_sync_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM1_ABE_TIMER6_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_ABE_TIMER6_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer7 */
static struct omap_hwmod omap44xx_timer7_hwmod = {
.name = "timer7",
.class = &omap44xx_timer_hwmod_class,
.clkdm_name = "abe_clkdm",
.main_clk = "timer7_sync_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM1_ABE_TIMER7_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_ABE_TIMER7_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer8 */
static struct omap_hwmod omap44xx_timer8_hwmod = {
.name = "timer8",
.class = &omap44xx_timer_hwmod_class,
.clkdm_name = "abe_clkdm",
.main_clk = "timer8_sync_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM1_ABE_TIMER8_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_ABE_TIMER8_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer9 */
static struct omap_hwmod omap44xx_timer9_hwmod = {
.name = "timer9",
.class = &omap44xx_timer_hwmod_class,
.clkdm_name = "l4_per_clkdm",
.main_clk = "cm2_dm9_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_L4PER_DMTIMER9_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_L4PER_DMTIMER9_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer10 */
static struct omap_hwmod omap44xx_timer10_hwmod = {
.name = "timer10",
.class = &omap44xx_timer_1ms_hwmod_class,
.clkdm_name = "l4_per_clkdm",
.flags = HWMOD_SET_DEFAULT_CLOCKACT,
.main_clk = "cm2_dm10_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_L4PER_DMTIMER10_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_L4PER_DMTIMER10_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer11 */
static struct omap_hwmod omap44xx_timer11_hwmod = {
.name = "timer11",
.class = &omap44xx_timer_hwmod_class,
.clkdm_name = "l4_per_clkdm",
.main_clk = "cm2_dm11_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP4_CM_L4PER_DMTIMER11_CLKCTRL_OFFSET,
.context_offs = OMAP4_RM_L4PER_DMTIMER11_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* /*
* 'usb_host_fs' class * 'usb_host_fs' class
* full-speed usb host controller * full-speed usb host controller
...@@ -2213,30 +1407,6 @@ static struct omap_hwmod_ocp_if omap44xx_debugss__l3_main_2 = { ...@@ -2213,30 +1407,6 @@ static struct omap_hwmod_ocp_if omap44xx_debugss__l3_main_2 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* dma_system -> l3_main_2 */
static struct omap_hwmod_ocp_if omap44xx_dma_system__l3_main_2 = {
.master = &omap44xx_dma_system_hwmod,
.slave = &omap44xx_l3_main_2_hwmod,
.clk = "l3_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* fdif -> l3_main_2 */
static struct omap_hwmod_ocp_if omap44xx_fdif__l3_main_2 = {
.master = &omap44xx_fdif_hwmod,
.slave = &omap44xx_l3_main_2_hwmod,
.clk = "l3_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* hsi -> l3_main_2 */
static struct omap_hwmod_ocp_if omap44xx_hsi__l3_main_2 = {
.master = &omap44xx_hsi_hwmod,
.slave = &omap44xx_l3_main_2_hwmod,
.clk = "l3_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* ipu -> l3_main_2 */ /* ipu -> l3_main_2 */
static struct omap_hwmod_ocp_if omap44xx_ipu__l3_main_2 = { static struct omap_hwmod_ocp_if omap44xx_ipu__l3_main_2 = {
.master = &omap44xx_ipu_hwmod, .master = &omap44xx_ipu_hwmod,
...@@ -2317,14 +1487,6 @@ static struct omap_hwmod_ocp_if omap44xx_l4_cfg__l3_main_3 = { ...@@ -2317,14 +1487,6 @@ static struct omap_hwmod_ocp_if omap44xx_l4_cfg__l3_main_3 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* aess -> l4_abe */
static struct omap_hwmod_ocp_if __maybe_unused omap44xx_aess__l4_abe = {
.master = &omap44xx_aess_hwmod,
.slave = &omap44xx_l4_abe_hwmod,
.clk = "ocp_abe_iclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* dsp -> l4_abe */ /* dsp -> l4_abe */
static struct omap_hwmod_ocp_if omap44xx_dsp__l4_abe = { static struct omap_hwmod_ocp_if omap44xx_dsp__l4_abe = {
.master = &omap44xx_dsp_hwmod, .master = &omap44xx_dsp_hwmod,
...@@ -2389,22 +1551,6 @@ static struct omap_hwmod_ocp_if omap44xx_l4_cfg__ocp_wp_noc = { ...@@ -2389,22 +1551,6 @@ static struct omap_hwmod_ocp_if omap44xx_l4_cfg__ocp_wp_noc = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_abe -> aess */
static struct omap_hwmod_ocp_if __maybe_unused omap44xx_l4_abe__aess = {
.master = &omap44xx_l4_abe_hwmod,
.slave = &omap44xx_aess_hwmod,
.clk = "ocp_abe_iclk",
.user = OCP_USER_MPU,
};
/* l4_abe -> aess (dma) */
static struct omap_hwmod_ocp_if __maybe_unused omap44xx_l4_abe__aess_dma = {
.master = &omap44xx_l4_abe_hwmod,
.slave = &omap44xx_aess_hwmod,
.clk = "ocp_abe_iclk",
.user = OCP_USER_SDMA,
};
/* l4_wkup -> counter_32k */ /* l4_wkup -> counter_32k */
static struct omap_hwmod_ocp_if omap44xx_l4_wkup__counter_32k = { static struct omap_hwmod_ocp_if omap44xx_l4_wkup__counter_32k = {
.master = &omap44xx_l4_wkup_hwmod, .master = &omap44xx_l4_wkup_hwmod,
...@@ -2453,22 +1599,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_instr__debugss = { ...@@ -2453,22 +1599,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_instr__debugss = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_cfg -> dma_system */
static struct omap_hwmod_ocp_if omap44xx_l4_cfg__dma_system = {
.master = &omap44xx_l4_cfg_hwmod,
.slave = &omap44xx_dma_system_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_abe -> dmic */
static struct omap_hwmod_ocp_if omap44xx_l4_abe__dmic = {
.master = &omap44xx_l4_abe_hwmod,
.slave = &omap44xx_dmic_hwmod,
.clk = "ocp_abe_iclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* dsp -> iva */ /* dsp -> iva */
static struct omap_hwmod_ocp_if omap44xx_dsp__iva = { static struct omap_hwmod_ocp_if omap44xx_dsp__iva = {
.master = &omap44xx_dsp_hwmod, .master = &omap44xx_dsp_hwmod,
...@@ -2613,22 +1743,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__sha0 = { ...@@ -2613,22 +1743,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__sha0 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_per -> elm */
static struct omap_hwmod_ocp_if omap44xx_l4_per__elm = {
.master = &omap44xx_l4_per_hwmod,
.slave = &omap44xx_elm_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_cfg -> fdif */
static struct omap_hwmod_ocp_if omap44xx_l4_cfg__fdif = {
.master = &omap44xx_l4_cfg_hwmod,
.slave = &omap44xx_fdif_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l3_main_2 -> gpmc */ /* l3_main_2 -> gpmc */
static struct omap_hwmod_ocp_if omap44xx_l3_main_2__gpmc = { static struct omap_hwmod_ocp_if omap44xx_l3_main_2__gpmc = {
.master = &omap44xx_l3_main_2_hwmod, .master = &omap44xx_l3_main_2_hwmod,
...@@ -2637,14 +1751,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__gpmc = { ...@@ -2637,14 +1751,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__gpmc = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_cfg -> hsi */
static struct omap_hwmod_ocp_if omap44xx_l4_cfg__hsi = {
.master = &omap44xx_l4_cfg_hwmod,
.slave = &omap44xx_hsi_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l3_main_2 -> ipu */ /* l3_main_2 -> ipu */
static struct omap_hwmod_ocp_if omap44xx_l3_main_2__ipu = { static struct omap_hwmod_ocp_if omap44xx_l3_main_2__ipu = {
.master = &omap44xx_l3_main_2_hwmod, .master = &omap44xx_l3_main_2_hwmod,
...@@ -2677,22 +1783,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__iva = { ...@@ -2677,22 +1783,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__iva = {
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
/* l4_wkup -> kbd */
static struct omap_hwmod_ocp_if omap44xx_l4_wkup__kbd = {
.master = &omap44xx_l4_wkup_hwmod,
.slave = &omap44xx_kbd_hwmod,
.clk = "l4_wkup_clk_mux_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_abe -> mcpdm */
static struct omap_hwmod_ocp_if omap44xx_l4_abe__mcpdm = {
.master = &omap44xx_l4_abe_hwmod,
.slave = &omap44xx_mcpdm_hwmod,
.clk = "ocp_abe_iclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l3_main_2 -> ocmc_ram */ /* l3_main_2 -> ocmc_ram */
static struct omap_hwmod_ocp_if omap44xx_l3_main_2__ocmc_ram = { static struct omap_hwmod_ocp_if omap44xx_l3_main_2__ocmc_ram = {
.master = &omap44xx_l3_main_2_hwmod, .master = &omap44xx_l3_main_2_hwmod,
...@@ -2701,14 +1791,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__ocmc_ram = { ...@@ -2701,14 +1791,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__ocmc_ram = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_cfg -> ocp2scp_usb_phy */
static struct omap_hwmod_ocp_if omap44xx_l4_cfg__ocp2scp_usb_phy = {
.master = &omap44xx_l4_cfg_hwmod,
.slave = &omap44xx_ocp2scp_usb_phy_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* mpu_private -> prcm_mpu */ /* mpu_private -> prcm_mpu */
static struct omap_hwmod_ocp_if omap44xx_mpu_private__prcm_mpu = { static struct omap_hwmod_ocp_if omap44xx_mpu_private__prcm_mpu = {
.master = &omap44xx_mpu_private_hwmod, .master = &omap44xx_mpu_private_hwmod,
...@@ -2757,62 +1839,6 @@ static struct omap_hwmod_ocp_if __maybe_unused omap44xx_l3_main_2__sl2if = { ...@@ -2757,62 +1839,6 @@ static struct omap_hwmod_ocp_if __maybe_unused omap44xx_l3_main_2__sl2if = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_abe -> slimbus1 */
static struct omap_hwmod_ocp_if omap44xx_l4_abe__slimbus1 = {
.master = &omap44xx_l4_abe_hwmod,
.slave = &omap44xx_slimbus1_hwmod,
.clk = "ocp_abe_iclk",
.user = OCP_USER_MPU,
};
/* l4_abe -> slimbus1 (dma) */
static struct omap_hwmod_ocp_if omap44xx_l4_abe__slimbus1_dma = {
.master = &omap44xx_l4_abe_hwmod,
.slave = &omap44xx_slimbus1_hwmod,
.clk = "ocp_abe_iclk",
.user = OCP_USER_SDMA,
};
/* l4_per -> slimbus2 */
static struct omap_hwmod_ocp_if omap44xx_l4_per__slimbus2 = {
.master = &omap44xx_l4_per_hwmod,
.slave = &omap44xx_slimbus2_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_cfg -> smartreflex_core */
static struct omap_hwmod_ocp_if omap44xx_l4_cfg__smartreflex_core = {
.master = &omap44xx_l4_cfg_hwmod,
.slave = &omap44xx_smartreflex_core_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_cfg -> smartreflex_iva */
static struct omap_hwmod_ocp_if omap44xx_l4_cfg__smartreflex_iva = {
.master = &omap44xx_l4_cfg_hwmod,
.slave = &omap44xx_smartreflex_iva_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_cfg -> smartreflex_mpu */
static struct omap_hwmod_ocp_if omap44xx_l4_cfg__smartreflex_mpu = {
.master = &omap44xx_l4_cfg_hwmod,
.slave = &omap44xx_smartreflex_mpu_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_cfg -> spinlock */
static struct omap_hwmod_ocp_if omap44xx_l4_cfg__spinlock = {
.master = &omap44xx_l4_cfg_hwmod,
.slave = &omap44xx_spinlock_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_wkup -> timer1 */ /* l4_wkup -> timer1 */
static struct omap_hwmod_ocp_if omap44xx_l4_wkup__timer1 = { static struct omap_hwmod_ocp_if omap44xx_l4_wkup__timer1 = {
.master = &omap44xx_l4_wkup_hwmod, .master = &omap44xx_l4_wkup_hwmod,
...@@ -2821,86 +1847,6 @@ static struct omap_hwmod_ocp_if omap44xx_l4_wkup__timer1 = { ...@@ -2821,86 +1847,6 @@ static struct omap_hwmod_ocp_if omap44xx_l4_wkup__timer1 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_per -> timer2 */
static struct omap_hwmod_ocp_if omap44xx_l4_per__timer2 = {
.master = &omap44xx_l4_per_hwmod,
.slave = &omap44xx_timer2_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per -> timer3 */
static struct omap_hwmod_ocp_if omap44xx_l4_per__timer3 = {
.master = &omap44xx_l4_per_hwmod,
.slave = &omap44xx_timer3_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per -> timer4 */
static struct omap_hwmod_ocp_if omap44xx_l4_per__timer4 = {
.master = &omap44xx_l4_per_hwmod,
.slave = &omap44xx_timer4_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_abe -> timer5 */
static struct omap_hwmod_ocp_if omap44xx_l4_abe__timer5 = {
.master = &omap44xx_l4_abe_hwmod,
.slave = &omap44xx_timer5_hwmod,
.clk = "ocp_abe_iclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_abe -> timer6 */
static struct omap_hwmod_ocp_if omap44xx_l4_abe__timer6 = {
.master = &omap44xx_l4_abe_hwmod,
.slave = &omap44xx_timer6_hwmod,
.clk = "ocp_abe_iclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_abe -> timer7 */
static struct omap_hwmod_ocp_if omap44xx_l4_abe__timer7 = {
.master = &omap44xx_l4_abe_hwmod,
.slave = &omap44xx_timer7_hwmod,
.clk = "ocp_abe_iclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_abe -> timer8 */
static struct omap_hwmod_ocp_if omap44xx_l4_abe__timer8 = {
.master = &omap44xx_l4_abe_hwmod,
.slave = &omap44xx_timer8_hwmod,
.clk = "ocp_abe_iclk",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per -> timer9 */
static struct omap_hwmod_ocp_if omap44xx_l4_per__timer9 = {
.master = &omap44xx_l4_per_hwmod,
.slave = &omap44xx_timer9_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per -> timer10 */
static struct omap_hwmod_ocp_if omap44xx_l4_per__timer10 = {
.master = &omap44xx_l4_per_hwmod,
.slave = &omap44xx_timer10_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per -> timer11 */
static struct omap_hwmod_ocp_if omap44xx_l4_per__timer11 = {
.master = &omap44xx_l4_per_hwmod,
.slave = &omap44xx_timer11_hwmod,
.clk = "l4_div_ck",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_cfg -> usb_host_fs */ /* l4_cfg -> usb_host_fs */
static struct omap_hwmod_ocp_if __maybe_unused omap44xx_l4_cfg__usb_host_fs = { static struct omap_hwmod_ocp_if __maybe_unused omap44xx_l4_cfg__usb_host_fs = {
.master = &omap44xx_l4_cfg_hwmod, .master = &omap44xx_l4_cfg_hwmod,
...@@ -2953,9 +1899,6 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { ...@@ -2953,9 +1899,6 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
&omap44xx_l4_cfg__l3_main_1, &omap44xx_l4_cfg__l3_main_1,
&omap44xx_mpu__l3_main_1, &omap44xx_mpu__l3_main_1,
&omap44xx_debugss__l3_main_2, &omap44xx_debugss__l3_main_2,
&omap44xx_dma_system__l3_main_2,
&omap44xx_fdif__l3_main_2,
&omap44xx_hsi__l3_main_2,
&omap44xx_ipu__l3_main_2, &omap44xx_ipu__l3_main_2,
&omap44xx_iss__l3_main_2, &omap44xx_iss__l3_main_2,
&omap44xx_iva__l3_main_2, &omap44xx_iva__l3_main_2,
...@@ -2966,7 +1909,6 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { ...@@ -2966,7 +1909,6 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
&omap44xx_l3_main_1__l3_main_3, &omap44xx_l3_main_1__l3_main_3,
&omap44xx_l3_main_2__l3_main_3, &omap44xx_l3_main_2__l3_main_3,
&omap44xx_l4_cfg__l3_main_3, &omap44xx_l4_cfg__l3_main_3,
&omap44xx_aess__l4_abe,
&omap44xx_dsp__l4_abe, &omap44xx_dsp__l4_abe,
&omap44xx_l3_main_1__l4_abe, &omap44xx_l3_main_1__l4_abe,
&omap44xx_mpu__l4_abe, &omap44xx_mpu__l4_abe,
...@@ -2975,16 +1917,12 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { ...@@ -2975,16 +1917,12 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
&omap44xx_l4_cfg__l4_wkup, &omap44xx_l4_cfg__l4_wkup,
&omap44xx_mpu__mpu_private, &omap44xx_mpu__mpu_private,
&omap44xx_l4_cfg__ocp_wp_noc, &omap44xx_l4_cfg__ocp_wp_noc,
&omap44xx_l4_abe__aess,
&omap44xx_l4_abe__aess_dma,
&omap44xx_l4_wkup__counter_32k, &omap44xx_l4_wkup__counter_32k,
&omap44xx_l4_cfg__ctrl_module_core, &omap44xx_l4_cfg__ctrl_module_core,
&omap44xx_l4_cfg__ctrl_module_pad_core, &omap44xx_l4_cfg__ctrl_module_pad_core,
&omap44xx_l4_wkup__ctrl_module_wkup, &omap44xx_l4_wkup__ctrl_module_wkup,
&omap44xx_l4_wkup__ctrl_module_pad_wkup, &omap44xx_l4_wkup__ctrl_module_pad_wkup,
&omap44xx_l3_instr__debugss, &omap44xx_l3_instr__debugss,
&omap44xx_l4_cfg__dma_system,
&omap44xx_l4_abe__dmic,
&omap44xx_dsp__iva, &omap44xx_dsp__iva,
/* &omap44xx_dsp__sl2if, */ /* &omap44xx_dsp__sl2if, */
&omap44xx_l4_cfg__dsp, &omap44xx_l4_cfg__dsp,
...@@ -3002,44 +1940,19 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { ...@@ -3002,44 +1940,19 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
&omap44xx_l4_per__dss_rfbi, &omap44xx_l4_per__dss_rfbi,
&omap44xx_l3_main_2__dss_venc, &omap44xx_l3_main_2__dss_venc,
&omap44xx_l4_per__dss_venc, &omap44xx_l4_per__dss_venc,
&omap44xx_l4_per__elm,
&omap44xx_l4_cfg__fdif,
&omap44xx_l3_main_2__gpmc, &omap44xx_l3_main_2__gpmc,
&omap44xx_l4_cfg__hsi,
&omap44xx_l3_main_2__ipu, &omap44xx_l3_main_2__ipu,
&omap44xx_l3_main_2__iss, &omap44xx_l3_main_2__iss,
/* &omap44xx_iva__sl2if, */ /* &omap44xx_iva__sl2if, */
&omap44xx_l3_main_2__iva, &omap44xx_l3_main_2__iva,
&omap44xx_l4_wkup__kbd,
&omap44xx_l4_abe__mcpdm,
&omap44xx_l3_main_2__mmu_ipu,
&omap44xx_l4_cfg__mmu_dsp,
&omap44xx_l3_main_2__ocmc_ram, &omap44xx_l3_main_2__ocmc_ram,
&omap44xx_l4_cfg__ocp2scp_usb_phy,
&omap44xx_mpu_private__prcm_mpu, &omap44xx_mpu_private__prcm_mpu,
&omap44xx_l4_wkup__cm_core_aon, &omap44xx_l4_wkup__cm_core_aon,
&omap44xx_l4_cfg__cm_core, &omap44xx_l4_cfg__cm_core,
&omap44xx_l4_wkup__prm, &omap44xx_l4_wkup__prm,
&omap44xx_l4_wkup__scrm, &omap44xx_l4_wkup__scrm,
/* &omap44xx_l3_main_2__sl2if, */ /* &omap44xx_l3_main_2__sl2if, */
&omap44xx_l4_abe__slimbus1,
&omap44xx_l4_abe__slimbus1_dma,
&omap44xx_l4_per__slimbus2,
&omap44xx_l4_cfg__smartreflex_core,
&omap44xx_l4_cfg__smartreflex_iva,
&omap44xx_l4_cfg__smartreflex_mpu,
&omap44xx_l4_cfg__spinlock,
&omap44xx_l4_wkup__timer1, &omap44xx_l4_wkup__timer1,
&omap44xx_l4_per__timer2,
&omap44xx_l4_per__timer3,
&omap44xx_l4_per__timer4,
&omap44xx_l4_abe__timer5,
&omap44xx_l4_abe__timer6,
&omap44xx_l4_abe__timer7,
&omap44xx_l4_abe__timer8,
&omap44xx_l4_per__timer9,
&omap44xx_l4_per__timer10,
&omap44xx_l4_per__timer11,
/* &omap44xx_l4_cfg__usb_host_fs, */ /* &omap44xx_l4_cfg__usb_host_fs, */
&omap44xx_l4_cfg__usb_host_hs, &omap44xx_l4_cfg__usb_host_hs,
&omap44xx_l4_cfg__usb_tll_hs, &omap44xx_l4_cfg__usb_tll_hs,
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/power/smartreflex.h> #include <linux/power/smartreflex.h>
#include <linux/omap-dma.h>
#include "omap_hwmod.h" #include "omap_hwmod.h"
#include "omap_hwmod_common_data.h" #include "omap_hwmod_common_data.h"
#include "cm1_54xx.h" #include "cm1_54xx.h"
...@@ -28,10 +26,6 @@ ...@@ -28,10 +26,6 @@
/* Base offset for all OMAP5 interrupts external to MPUSS */ /* Base offset for all OMAP5 interrupts external to MPUSS */
#define OMAP54XX_IRQ_GIC_START 32 #define OMAP54XX_IRQ_GIC_START 32
/* Base offset for all OMAP5 dma requests */
#define OMAP54XX_DMA_REQ_START 1
/* /*
* IP blocks * IP blocks
*/ */
...@@ -232,87 +226,6 @@ static struct omap_hwmod omap54xx_counter_32k_hwmod = { ...@@ -232,87 +226,6 @@ static struct omap_hwmod omap54xx_counter_32k_hwmod = {
}, },
}; };
/*
* 'dma' class
* dma controller for data exchange between memory to memory (i.e. internal or
* external memory) and gp peripherals to memory or memory to gp peripherals
*/
static struct omap_hwmod_class_sysconfig omap54xx_dma_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x002c,
.syss_offs = 0x0028,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
SYSC_HAS_EMUFREE | SYSC_HAS_MIDLEMODE |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class omap54xx_dma_hwmod_class = {
.name = "dma",
.sysc = &omap54xx_dma_sysc,
};
/* dma dev_attr */
static struct omap_dma_dev_attr dma_dev_attr = {
.dev_caps = RESERVE_CHANNEL | DMA_LINKED_LCH | GLOBAL_PRIORITY |
IS_CSSA_32 | IS_CDSA_32 | IS_RW_PRIORITY,
.lch_count = 32,
};
/* dma_system */
static struct omap_hwmod omap54xx_dma_system_hwmod = {
.name = "dma_system",
.class = &omap54xx_dma_hwmod_class,
.clkdm_name = "dma_clkdm",
.main_clk = "l3_iclk_div",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_DMA_DMA_SYSTEM_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_DMA_DMA_SYSTEM_CONTEXT_OFFSET,
},
},
.dev_attr = &dma_dev_attr,
};
/*
* 'dmic' class
* digital microphone controller
*/
static struct omap_hwmod_class_sysconfig omap54xx_dmic_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.sysc_flags = (SYSC_HAS_EMUFREE | SYSC_HAS_RESET_STATUS |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class omap54xx_dmic_hwmod_class = {
.name = "dmic",
.sysc = &omap54xx_dmic_sysc,
};
/* dmic */
static struct omap_hwmod omap54xx_dmic_hwmod = {
.name = "dmic",
.class = &omap54xx_dmic_hwmod_class,
.clkdm_name = "abe_clkdm",
.main_clk = "dmic_gfclk",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_ABE_DMIC_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_ABE_DMIC_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* /*
* 'dss' class * 'dss' class
* display sub-system * display sub-system
...@@ -593,155 +506,9 @@ static struct omap_hwmod omap54xx_emif2_hwmod = { ...@@ -593,155 +506,9 @@ static struct omap_hwmod omap54xx_emif2_hwmod = {
}, },
}; };
/*
* 'kbd' class
* keyboard controller
*/
static struct omap_hwmod_class_sysconfig omap54xx_kbd_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.sysc_flags = (SYSC_HAS_EMUFREE | SYSC_HAS_SIDLEMODE |
SYSC_HAS_SOFTRESET),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class omap54xx_kbd_hwmod_class = {
.name = "kbd",
.sysc = &omap54xx_kbd_sysc,
};
/* kbd */
static struct omap_hwmod omap54xx_kbd_hwmod = {
.name = "kbd",
.class = &omap54xx_kbd_hwmod_class,
.clkdm_name = "wkupaon_clkdm",
.main_clk = "sys_32k_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_WKUPAON_KBD_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_WKUPAON_KBD_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/*
* 'mcpdm' class
* multi channel pdm controller (proprietary interface with phoenix power
* ic)
*/
static struct omap_hwmod_class_sysconfig omap54xx_mcpdm_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.sysc_flags = (SYSC_HAS_EMUFREE | SYSC_HAS_RESET_STATUS |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class omap54xx_mcpdm_hwmod_class = {
.name = "mcpdm",
.sysc = &omap54xx_mcpdm_sysc,
};
/* mcpdm */
static struct omap_hwmod omap54xx_mcpdm_hwmod = {
.name = "mcpdm",
.class = &omap54xx_mcpdm_hwmod_class,
.clkdm_name = "abe_clkdm",
/*
* It's suspected that the McPDM requires an off-chip main
* functional clock, controlled via I2C. This IP block is
* currently reset very early during boot, before I2C is
* available, so it doesn't seem that we have any choice in
* the kernel other than to avoid resetting it. XXX This is
* really a hardware issue workaround: every IP block should
* be able to source its main functional clock from either
* on-chip or off-chip sources. McPDM seems to be the only
* current exception.
*/
.flags = HWMOD_EXT_OPT_MAIN_CLK | HWMOD_SWSUP_SIDLE,
.main_clk = "pad_clks_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_ABE_MCPDM_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_ABE_MCPDM_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/*
* 'mmu' class
* The memory management unit performs virtual to physical address translation
* for its requestors.
*/
static struct omap_hwmod_class_sysconfig omap54xx_mmu_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class omap54xx_mmu_hwmod_class = {
.name = "mmu",
.sysc = &omap54xx_mmu_sysc,
};
static struct omap_hwmod_rst_info omap54xx_mmu_dsp_resets[] = {
{ .name = "mmu_cache", .rst_shift = 1 },
};
static struct omap_hwmod omap54xx_mmu_dsp_hwmod = {
.name = "mmu_dsp",
.class = &omap54xx_mmu_hwmod_class,
.clkdm_name = "dsp_clkdm",
.rst_lines = omap54xx_mmu_dsp_resets,
.rst_lines_cnt = ARRAY_SIZE(omap54xx_mmu_dsp_resets),
.main_clk = "dpll_iva_h11x2_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_DSP_DSP_CLKCTRL_OFFSET,
.rstctrl_offs = OMAP54XX_RM_DSP_RSTCTRL_OFFSET,
.context_offs = OMAP54XX_RM_DSP_DSP_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/* mmu ipu */
static struct omap_hwmod_rst_info omap54xx_mmu_ipu_resets[] = {
{ .name = "mmu_cache", .rst_shift = 2 },
};
static struct omap_hwmod omap54xx_mmu_ipu_hwmod = {
.name = "mmu_ipu",
.class = &omap54xx_mmu_hwmod_class,
.clkdm_name = "ipu_clkdm",
.rst_lines = omap54xx_mmu_ipu_resets,
.rst_lines_cnt = ARRAY_SIZE(omap54xx_mmu_ipu_resets),
.main_clk = "dpll_core_h22x2_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_IPU_IPU_CLKCTRL_OFFSET,
.rstctrl_offs = OMAP54XX_RM_IPU_RSTCTRL_OFFSET,
.context_offs = OMAP54XX_RM_IPU_IPU_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/* /*
* 'mpu' class * 'mpu' class
* mpu sub-system * mpu sub-system
...@@ -766,76 +533,6 @@ static struct omap_hwmod omap54xx_mpu_hwmod = { ...@@ -766,76 +533,6 @@ static struct omap_hwmod omap54xx_mpu_hwmod = {
}, },
}; };
/*
* 'spinlock' class
* spinlock provides hardware assistance for synchronizing the processes
* running on multiple processors
*/
static struct omap_hwmod_class_sysconfig omap54xx_spinlock_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE |
SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class omap54xx_spinlock_hwmod_class = {
.name = "spinlock",
.sysc = &omap54xx_spinlock_sysc,
};
/* spinlock */
static struct omap_hwmod omap54xx_spinlock_hwmod = {
.name = "spinlock",
.class = &omap54xx_spinlock_hwmod_class,
.clkdm_name = "l4cfg_clkdm",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_L4CFG_SPINLOCK_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_L4CFG_SPINLOCK_CONTEXT_OFFSET,
},
},
};
/*
* 'ocp2scp' class
* bridge to transform ocp interface protocol to scp (serial control port)
* protocol
*/
static struct omap_hwmod_class_sysconfig omap54xx_ocp2scp_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE |
SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class omap54xx_ocp2scp_hwmod_class = {
.name = "ocp2scp",
.sysc = &omap54xx_ocp2scp_sysc,
};
/* ocp2scp1 */
static struct omap_hwmod omap54xx_ocp2scp1_hwmod = {
.name = "ocp2scp1",
.class = &omap54xx_ocp2scp_hwmod_class,
.clkdm_name = "l3init_clkdm",
.main_clk = "l4_root_clk_div",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_L3INIT_OCP2SCP1_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_L3INIT_OCP2SCP1_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/* /*
* 'timer' class * 'timer' class
...@@ -858,21 +555,6 @@ static struct omap_hwmod_class omap54xx_timer_1ms_hwmod_class = { ...@@ -858,21 +555,6 @@ static struct omap_hwmod_class omap54xx_timer_1ms_hwmod_class = {
.sysc = &omap54xx_timer_1ms_sysc, .sysc = &omap54xx_timer_1ms_sysc,
}; };
static struct omap_hwmod_class_sysconfig omap54xx_timer_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.sysc_flags = (SYSC_HAS_EMUFREE | SYSC_HAS_RESET_STATUS |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type2,
};
static struct omap_hwmod_class omap54xx_timer_hwmod_class = {
.name = "timer",
.sysc = &omap54xx_timer_sysc,
};
/* timer1 */ /* timer1 */
static struct omap_hwmod omap54xx_timer1_hwmod = { static struct omap_hwmod omap54xx_timer1_hwmod = {
.name = "timer1", .name = "timer1",
...@@ -889,158 +571,6 @@ static struct omap_hwmod omap54xx_timer1_hwmod = { ...@@ -889,158 +571,6 @@ static struct omap_hwmod omap54xx_timer1_hwmod = {
}, },
}; };
/* timer2 */
static struct omap_hwmod omap54xx_timer2_hwmod = {
.name = "timer2",
.class = &omap54xx_timer_1ms_hwmod_class,
.clkdm_name = "l4per_clkdm",
.main_clk = "timer2_gfclk_mux",
.flags = HWMOD_SET_DEFAULT_CLOCKACT,
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_L4PER_TIMER2_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_L4PER_TIMER2_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer3 */
static struct omap_hwmod omap54xx_timer3_hwmod = {
.name = "timer3",
.class = &omap54xx_timer_hwmod_class,
.clkdm_name = "l4per_clkdm",
.main_clk = "timer3_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_L4PER_TIMER3_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_L4PER_TIMER3_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer4 */
static struct omap_hwmod omap54xx_timer4_hwmod = {
.name = "timer4",
.class = &omap54xx_timer_hwmod_class,
.clkdm_name = "l4per_clkdm",
.main_clk = "timer4_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_L4PER_TIMER4_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_L4PER_TIMER4_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer5 */
static struct omap_hwmod omap54xx_timer5_hwmod = {
.name = "timer5",
.class = &omap54xx_timer_hwmod_class,
.clkdm_name = "abe_clkdm",
.main_clk = "timer5_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_ABE_TIMER5_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_ABE_TIMER5_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer6 */
static struct omap_hwmod omap54xx_timer6_hwmod = {
.name = "timer6",
.class = &omap54xx_timer_hwmod_class,
.clkdm_name = "abe_clkdm",
.main_clk = "timer6_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_ABE_TIMER6_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_ABE_TIMER6_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer7 */
static struct omap_hwmod omap54xx_timer7_hwmod = {
.name = "timer7",
.class = &omap54xx_timer_hwmod_class,
.clkdm_name = "abe_clkdm",
.main_clk = "timer7_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_ABE_TIMER7_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_ABE_TIMER7_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer8 */
static struct omap_hwmod omap54xx_timer8_hwmod = {
.name = "timer8",
.class = &omap54xx_timer_hwmod_class,
.clkdm_name = "abe_clkdm",
.main_clk = "timer8_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_ABE_TIMER8_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_ABE_TIMER8_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer9 */
static struct omap_hwmod omap54xx_timer9_hwmod = {
.name = "timer9",
.class = &omap54xx_timer_hwmod_class,
.clkdm_name = "l4per_clkdm",
.main_clk = "timer9_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_L4PER_TIMER9_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_L4PER_TIMER9_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer10 */
static struct omap_hwmod omap54xx_timer10_hwmod = {
.name = "timer10",
.class = &omap54xx_timer_1ms_hwmod_class,
.clkdm_name = "l4per_clkdm",
.main_clk = "timer10_gfclk_mux",
.flags = HWMOD_SET_DEFAULT_CLOCKACT,
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_L4PER_TIMER10_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_L4PER_TIMER10_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer11 */
static struct omap_hwmod omap54xx_timer11_hwmod = {
.name = "timer11",
.class = &omap54xx_timer_hwmod_class,
.clkdm_name = "l4per_clkdm",
.main_clk = "timer11_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_L4PER_TIMER11_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_L4PER_TIMER11_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* /*
* 'usb_host_hs' class * 'usb_host_hs' class
* high-speed multi-port usb host controller * high-speed multi-port usb host controller
...@@ -1193,35 +723,6 @@ static struct omap_hwmod omap54xx_usb_otg_ss_hwmod = { ...@@ -1193,35 +723,6 @@ static struct omap_hwmod omap54xx_usb_otg_ss_hwmod = {
.opt_clks_cnt = ARRAY_SIZE(usb_otg_ss_opt_clks), .opt_clks_cnt = ARRAY_SIZE(usb_otg_ss_opt_clks),
}; };
/*
* 'ocp2scp' class
* bridge to transform ocp interface protocol to scp (serial control port)
* protocol
*/
/* ocp2scp3 */
static struct omap_hwmod omap54xx_ocp2scp3_hwmod;
/* l4_cfg -> ocp2scp3 */
static struct omap_hwmod_ocp_if omap54xx_l4_cfg__ocp2scp3 = {
.master = &omap54xx_l4_cfg_hwmod,
.slave = &omap54xx_ocp2scp3_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
static struct omap_hwmod omap54xx_ocp2scp3_hwmod = {
.name = "ocp2scp3",
.class = &omap54xx_ocp2scp_hwmod_class,
.clkdm_name = "l3init_clkdm",
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_L3INIT_OCP2SCP3_CLKCTRL_OFFSET,
.context_offs = OMAP54XX_RM_L3INIT_OCP2SCP3_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/* /*
* 'sata' class * 'sata' class
* sata: serial ata interface gen2 compliant ( 1 rx/ 1 tx) * sata: serial ata interface gen2 compliant ( 1 rx/ 1 tx)
...@@ -1303,14 +804,6 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__l3_main_1 = { ...@@ -1303,14 +804,6 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__l3_main_1 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_cfg -> mmu_dsp */
static struct omap_hwmod_ocp_if omap54xx_l4_cfg__mmu_dsp = {
.master = &omap54xx_l4_cfg_hwmod,
.slave = &omap54xx_mmu_dsp_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* mpu -> l3_main_1 */ /* mpu -> l3_main_1 */
static struct omap_hwmod_ocp_if omap54xx_mpu__l3_main_1 = { static struct omap_hwmod_ocp_if omap54xx_mpu__l3_main_1 = {
.master = &omap54xx_mpu_hwmod, .master = &omap54xx_mpu_hwmod,
...@@ -1335,14 +828,6 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__l3_main_2 = { ...@@ -1335,14 +828,6 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__l3_main_2 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l3_main_2 -> mmu_ipu */
static struct omap_hwmod_ocp_if omap54xx_l3_main_2__mmu_ipu = {
.master = &omap54xx_l3_main_2_hwmod,
.slave = &omap54xx_mmu_ipu_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l3_main_1 -> l3_main_3 */ /* l3_main_1 -> l3_main_3 */
static struct omap_hwmod_ocp_if omap54xx_l3_main_1__l3_main_3 = { static struct omap_hwmod_ocp_if omap54xx_l3_main_1__l3_main_3 = {
.master = &omap54xx_l3_main_1_hwmod, .master = &omap54xx_l3_main_1_hwmod,
...@@ -1423,22 +908,6 @@ static struct omap_hwmod_ocp_if omap54xx_l4_wkup__counter_32k = { ...@@ -1423,22 +908,6 @@ static struct omap_hwmod_ocp_if omap54xx_l4_wkup__counter_32k = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_cfg -> dma_system */
static struct omap_hwmod_ocp_if omap54xx_l4_cfg__dma_system = {
.master = &omap54xx_l4_cfg_hwmod,
.slave = &omap54xx_dma_system_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_abe -> dmic */
static struct omap_hwmod_ocp_if omap54xx_l4_abe__dmic = {
.master = &omap54xx_l4_abe_hwmod,
.slave = &omap54xx_dmic_hwmod,
.clk = "abe_iclk",
.user = OCP_USER_MPU,
};
/* l3_main_2 -> dss */ /* l3_main_2 -> dss */
static struct omap_hwmod_ocp_if omap54xx_l3_main_2__dss = { static struct omap_hwmod_ocp_if omap54xx_l3_main_2__dss = {
.master = &omap54xx_l3_main_2_hwmod, .master = &omap54xx_l3_main_2_hwmod,
...@@ -1503,22 +972,6 @@ static struct omap_hwmod_ocp_if omap54xx_mpu__emif2 = { ...@@ -1503,22 +972,6 @@ static struct omap_hwmod_ocp_if omap54xx_mpu__emif2 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_wkup -> kbd */
static struct omap_hwmod_ocp_if omap54xx_l4_wkup__kbd = {
.master = &omap54xx_l4_wkup_hwmod,
.slave = &omap54xx_kbd_hwmod,
.clk = "wkupaon_iclk_mux",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_abe -> mcpdm */
static struct omap_hwmod_ocp_if omap54xx_l4_abe__mcpdm = {
.master = &omap54xx_l4_abe_hwmod,
.slave = &omap54xx_mcpdm_hwmod,
.clk = "abe_iclk",
.user = OCP_USER_MPU,
};
/* l4_cfg -> mpu */ /* l4_cfg -> mpu */
static struct omap_hwmod_ocp_if omap54xx_l4_cfg__mpu = { static struct omap_hwmod_ocp_if omap54xx_l4_cfg__mpu = {
.master = &omap54xx_l4_cfg_hwmod, .master = &omap54xx_l4_cfg_hwmod,
...@@ -1527,22 +980,6 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__mpu = { ...@@ -1527,22 +980,6 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__mpu = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_cfg -> spinlock */
static struct omap_hwmod_ocp_if omap54xx_l4_cfg__spinlock = {
.master = &omap54xx_l4_cfg_hwmod,
.slave = &omap54xx_spinlock_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_cfg -> ocp2scp1 */
static struct omap_hwmod_ocp_if omap54xx_l4_cfg__ocp2scp1 = {
.master = &omap54xx_l4_cfg_hwmod,
.slave = &omap54xx_ocp2scp1_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_wkup -> timer1 */ /* l4_wkup -> timer1 */
static struct omap_hwmod_ocp_if omap54xx_l4_wkup__timer1 = { static struct omap_hwmod_ocp_if omap54xx_l4_wkup__timer1 = {
.master = &omap54xx_l4_wkup_hwmod, .master = &omap54xx_l4_wkup_hwmod,
...@@ -1551,86 +988,6 @@ static struct omap_hwmod_ocp_if omap54xx_l4_wkup__timer1 = { ...@@ -1551,86 +988,6 @@ static struct omap_hwmod_ocp_if omap54xx_l4_wkup__timer1 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_per -> timer2 */
static struct omap_hwmod_ocp_if omap54xx_l4_per__timer2 = {
.master = &omap54xx_l4_per_hwmod,
.slave = &omap54xx_timer2_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per -> timer3 */
static struct omap_hwmod_ocp_if omap54xx_l4_per__timer3 = {
.master = &omap54xx_l4_per_hwmod,
.slave = &omap54xx_timer3_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per -> timer4 */
static struct omap_hwmod_ocp_if omap54xx_l4_per__timer4 = {
.master = &omap54xx_l4_per_hwmod,
.slave = &omap54xx_timer4_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_abe -> timer5 */
static struct omap_hwmod_ocp_if omap54xx_l4_abe__timer5 = {
.master = &omap54xx_l4_abe_hwmod,
.slave = &omap54xx_timer5_hwmod,
.clk = "abe_iclk",
.user = OCP_USER_MPU,
};
/* l4_abe -> timer6 */
static struct omap_hwmod_ocp_if omap54xx_l4_abe__timer6 = {
.master = &omap54xx_l4_abe_hwmod,
.slave = &omap54xx_timer6_hwmod,
.clk = "abe_iclk",
.user = OCP_USER_MPU,
};
/* l4_abe -> timer7 */
static struct omap_hwmod_ocp_if omap54xx_l4_abe__timer7 = {
.master = &omap54xx_l4_abe_hwmod,
.slave = &omap54xx_timer7_hwmod,
.clk = "abe_iclk",
.user = OCP_USER_MPU,
};
/* l4_abe -> timer8 */
static struct omap_hwmod_ocp_if omap54xx_l4_abe__timer8 = {
.master = &omap54xx_l4_abe_hwmod,
.slave = &omap54xx_timer8_hwmod,
.clk = "abe_iclk",
.user = OCP_USER_MPU,
};
/* l4_per -> timer9 */
static struct omap_hwmod_ocp_if omap54xx_l4_per__timer9 = {
.master = &omap54xx_l4_per_hwmod,
.slave = &omap54xx_timer9_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per -> timer10 */
static struct omap_hwmod_ocp_if omap54xx_l4_per__timer10 = {
.master = &omap54xx_l4_per_hwmod,
.slave = &omap54xx_timer10_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per -> timer11 */
static struct omap_hwmod_ocp_if omap54xx_l4_per__timer11 = {
.master = &omap54xx_l4_per_hwmod,
.slave = &omap54xx_timer11_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_cfg -> usb_host_hs */ /* l4_cfg -> usb_host_hs */
static struct omap_hwmod_ocp_if omap54xx_l4_cfg__usb_host_hs = { static struct omap_hwmod_ocp_if omap54xx_l4_cfg__usb_host_hs = {
.master = &omap54xx_l4_cfg_hwmod, .master = &omap54xx_l4_cfg_hwmod,
...@@ -1673,9 +1030,6 @@ static struct omap_hwmod_ocp_if *omap54xx_hwmod_ocp_ifs[] __initdata = { ...@@ -1673,9 +1030,6 @@ static struct omap_hwmod_ocp_if *omap54xx_hwmod_ocp_ifs[] __initdata = {
&omap54xx_l3_main_1__l4_wkup, &omap54xx_l3_main_1__l4_wkup,
&omap54xx_mpu__mpu_private, &omap54xx_mpu__mpu_private,
&omap54xx_l4_wkup__counter_32k, &omap54xx_l4_wkup__counter_32k,
&omap54xx_l4_cfg__dma_system,
&omap54xx_l4_abe__dmic,
&omap54xx_l4_cfg__mmu_dsp,
&omap54xx_l3_main_2__dss, &omap54xx_l3_main_2__dss,
&omap54xx_l3_main_2__dss_dispc, &omap54xx_l3_main_2__dss_dispc,
&omap54xx_l3_main_2__dss_dsi1_a, &omap54xx_l3_main_2__dss_dsi1_a,
...@@ -1684,27 +1038,11 @@ static struct omap_hwmod_ocp_if *omap54xx_hwmod_ocp_ifs[] __initdata = { ...@@ -1684,27 +1038,11 @@ static struct omap_hwmod_ocp_if *omap54xx_hwmod_ocp_ifs[] __initdata = {
&omap54xx_l3_main_2__dss_rfbi, &omap54xx_l3_main_2__dss_rfbi,
&omap54xx_mpu__emif1, &omap54xx_mpu__emif1,
&omap54xx_mpu__emif2, &omap54xx_mpu__emif2,
&omap54xx_l3_main_2__mmu_ipu,
&omap54xx_l4_wkup__kbd,
&omap54xx_l4_abe__mcpdm,
&omap54xx_l4_cfg__mpu, &omap54xx_l4_cfg__mpu,
&omap54xx_l4_cfg__spinlock,
&omap54xx_l4_cfg__ocp2scp1,
&omap54xx_l4_wkup__timer1, &omap54xx_l4_wkup__timer1,
&omap54xx_l4_per__timer2,
&omap54xx_l4_per__timer3,
&omap54xx_l4_per__timer4,
&omap54xx_l4_abe__timer5,
&omap54xx_l4_abe__timer6,
&omap54xx_l4_abe__timer7,
&omap54xx_l4_abe__timer8,
&omap54xx_l4_per__timer9,
&omap54xx_l4_per__timer10,
&omap54xx_l4_per__timer11,
&omap54xx_l4_cfg__usb_host_hs, &omap54xx_l4_cfg__usb_host_hs,
&omap54xx_l4_cfg__usb_tll_hs, &omap54xx_l4_cfg__usb_tll_hs,
&omap54xx_l4_cfg__usb_otg_ss, &omap54xx_l4_cfg__usb_otg_ss,
&omap54xx_l4_cfg__ocp2scp3,
&omap54xx_l4_cfg__sata, &omap54xx_l4_cfg__sata,
NULL, NULL,
}; };
......
...@@ -15,9 +15,6 @@ ...@@ -15,9 +15,6 @@
*/ */
#include <linux/io.h> #include <linux/io.h>
#include <linux/power/smartreflex.h>
#include <linux/omap-dma.h>
#include "omap_hwmod.h" #include "omap_hwmod.h"
#include "omap_hwmod_common_data.h" #include "omap_hwmod_common_data.h"
...@@ -29,10 +26,6 @@ ...@@ -29,10 +26,6 @@
/* Base offset for all DRA7XX interrupts external to MPUSS */ /* Base offset for all DRA7XX interrupts external to MPUSS */
#define DRA7XX_IRQ_GIC_START 32 #define DRA7XX_IRQ_GIC_START 32
/* Base offset for all DRA7XX dma requests */
#define DRA7XX_DMA_REQ_START 1
/* /*
* IP blocks * IP blocks
*/ */
...@@ -283,156 +276,6 @@ static struct omap_hwmod dra7xx_ctrl_module_wkup_hwmod = { ...@@ -283,156 +276,6 @@ static struct omap_hwmod dra7xx_ctrl_module_wkup_hwmod = {
}, },
}; };
/*
* 'dcan' class
*
*/
static struct omap_hwmod_class dra7xx_dcan_hwmod_class = {
.name = "dcan",
};
/* dcan1 */
static struct omap_hwmod dra7xx_dcan1_hwmod = {
.name = "dcan1",
.class = &dra7xx_dcan_hwmod_class,
.clkdm_name = "wkupaon_clkdm",
.main_clk = "dcan1_sys_clk_mux",
.flags = HWMOD_CLKDM_NOAUTO,
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_WKUPAON_DCAN1_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_WKUPAON_DCAN1_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* dcan2 */
static struct omap_hwmod dra7xx_dcan2_hwmod = {
.name = "dcan2",
.class = &dra7xx_dcan_hwmod_class,
.clkdm_name = "l4per2_clkdm",
.main_clk = "sys_clkin1",
.flags = HWMOD_CLKDM_NOAUTO,
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4PER2_DCAN2_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4PER2_DCAN2_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* pwmss */
static struct omap_hwmod_class_sysconfig dra7xx_epwmss_sysc = {
.rev_offs = 0x0,
.sysc_offs = 0x4,
.sysc_flags = SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
SYSC_HAS_RESET_STATUS,
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type2,
};
/*
* epwmss class
*/
static struct omap_hwmod_class dra7xx_epwmss_hwmod_class = {
.name = "epwmss",
.sysc = &dra7xx_epwmss_sysc,
};
/* epwmss0 */
static struct omap_hwmod dra7xx_epwmss0_hwmod = {
.name = "epwmss0",
.class = &dra7xx_epwmss_hwmod_class,
.clkdm_name = "l4per2_clkdm",
.main_clk = "l4_root_clk_div",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
.clkctrl_offs = DRA7XX_CM_L4PER2_PWMSS1_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4PER2_PWMSS1_CONTEXT_OFFSET,
},
},
};
/* epwmss1 */
static struct omap_hwmod dra7xx_epwmss1_hwmod = {
.name = "epwmss1",
.class = &dra7xx_epwmss_hwmod_class,
.clkdm_name = "l4per2_clkdm",
.main_clk = "l4_root_clk_div",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
.clkctrl_offs = DRA7XX_CM_L4PER2_PWMSS2_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4PER2_PWMSS2_CONTEXT_OFFSET,
},
},
};
/* epwmss2 */
static struct omap_hwmod dra7xx_epwmss2_hwmod = {
.name = "epwmss2",
.class = &dra7xx_epwmss_hwmod_class,
.clkdm_name = "l4per2_clkdm",
.main_clk = "l4_root_clk_div",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
.clkctrl_offs = DRA7XX_CM_L4PER2_PWMSS3_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4PER2_PWMSS3_CONTEXT_OFFSET,
},
},
};
/*
* 'dma' class
*
*/
static struct omap_hwmod_class_sysconfig dra7xx_dma_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x002c,
.syss_offs = 0x0028,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
SYSC_HAS_EMUFREE | SYSC_HAS_MIDLEMODE |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class dra7xx_dma_hwmod_class = {
.name = "dma",
.sysc = &dra7xx_dma_sysc,
};
/* dma dev_attr */
static struct omap_dma_dev_attr dma_dev_attr = {
.dev_caps = RESERVE_CHANNEL | DMA_LINKED_LCH | GLOBAL_PRIORITY |
IS_CSSA_32 | IS_CDSA_32 | IS_RW_PRIORITY,
.lch_count = 32,
};
/* dma_system */
static struct omap_hwmod dra7xx_dma_system_hwmod = {
.name = "dma_system",
.class = &dra7xx_dma_hwmod_class,
.clkdm_name = "dma_clkdm",
.main_clk = "l3_iclk_div",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_DMA_DMA_SYSTEM_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_DMA_DMA_SYSTEM_CONTEXT_OFFSET,
},
},
.dev_attr = &dma_dev_attr,
};
/* /*
* 'tpcc' class * 'tpcc' class
* *
...@@ -626,112 +469,9 @@ static struct omap_hwmod dra7xx_dss_hdmi_hwmod = { ...@@ -626,112 +469,9 @@ static struct omap_hwmod dra7xx_dss_hdmi_hwmod = {
.parent_hwmod = &dra7xx_dss_hwmod, .parent_hwmod = &dra7xx_dss_hwmod,
}; };
/* AES (the 'P' (public) device) */
static struct omap_hwmod_class_sysconfig dra7xx_aes_sysc = {
.rev_offs = 0x0080,
.sysc_offs = 0x0084,
.syss_offs = 0x0088,
.sysc_flags = SYSS_HAS_RESET_STATUS,
};
static struct omap_hwmod_class dra7xx_aes_hwmod_class = {
.name = "aes",
.sysc = &dra7xx_aes_sysc,
};
/* AES1 */
static struct omap_hwmod dra7xx_aes1_hwmod = {
.name = "aes1",
.class = &dra7xx_aes_hwmod_class,
.clkdm_name = "l4sec_clkdm",
.main_clk = "l3_iclk_div",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4SEC_AES1_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4SEC_AES1_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/* AES2 */
static struct omap_hwmod dra7xx_aes2_hwmod = {
.name = "aes2",
.class = &dra7xx_aes_hwmod_class,
.clkdm_name = "l4sec_clkdm",
.main_clk = "l3_iclk_div",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4SEC_AES2_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4SEC_AES2_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/* sha0 HIB2 (the 'P' (public) device) */
static struct omap_hwmod_class_sysconfig dra7xx_sha0_sysc = {
.rev_offs = 0x100,
.sysc_offs = 0x110,
.syss_offs = 0x114,
.sysc_flags = SYSS_HAS_RESET_STATUS,
};
static struct omap_hwmod_class dra7xx_sha0_hwmod_class = {
.name = "sham",
.sysc = &dra7xx_sha0_sysc,
};
static struct omap_hwmod dra7xx_sha0_hwmod = {
.name = "sham",
.class = &dra7xx_sha0_hwmod_class,
.clkdm_name = "l4sec_clkdm",
.main_clk = "l3_iclk_div",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4SEC_SHA2MD51_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4SEC_SHA2MD51_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/*
* 'elm' class
*
*/
static struct omap_hwmod_class_sysconfig dra7xx_elm_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class dra7xx_elm_hwmod_class = {
.name = "elm",
.sysc = &dra7xx_elm_sysc,
};
/* elm */
static struct omap_hwmod dra7xx_elm_hwmod = {
.name = "elm",
.class = &dra7xx_elm_hwmod_class,
.clkdm_name = "l4per_clkdm",
.main_clk = "l3_iclk_div",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4PER_ELM_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4PER_ELM_CONTEXT_OFFSET,
},
},
};
/* /*
* 'gpmc' class * 'gpmc' class
...@@ -797,55 +537,6 @@ static struct omap_hwmod dra7xx_mpu_hwmod = { ...@@ -797,55 +537,6 @@ static struct omap_hwmod dra7xx_mpu_hwmod = {
}, },
}; };
/*
* 'ocp2scp' class
*
*/
static struct omap_hwmod_class_sysconfig dra7xx_ocp2scp_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE |
SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class dra7xx_ocp2scp_hwmod_class = {
.name = "ocp2scp",
.sysc = &dra7xx_ocp2scp_sysc,
};
/* ocp2scp1 */
static struct omap_hwmod dra7xx_ocp2scp1_hwmod = {
.name = "ocp2scp1",
.class = &dra7xx_ocp2scp_hwmod_class,
.clkdm_name = "l3init_clkdm",
.main_clk = "l4_root_clk_div",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L3INIT_OCP2SCP1_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L3INIT_OCP2SCP1_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/* ocp2scp3 */
static struct omap_hwmod dra7xx_ocp2scp3_hwmod = {
.name = "ocp2scp3",
.class = &dra7xx_ocp2scp_hwmod_class,
.clkdm_name = "l3init_clkdm",
.main_clk = "l4_root_clk_div",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L3INIT_OCP2SCP3_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L3INIT_OCP2SCP3_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/* /*
* 'PCIE' class * 'PCIE' class
...@@ -1031,103 +722,6 @@ static struct omap_hwmod dra7xx_sata_hwmod = { ...@@ -1031,103 +722,6 @@ static struct omap_hwmod dra7xx_sata_hwmod = {
}, },
}; };
/*
* 'smartreflex' class
*
*/
/* The IP is not compliant to type1 / type2 scheme */
static struct omap_hwmod_class_sysconfig dra7xx_smartreflex_sysc = {
.rev_offs = -ENODEV,
.sysc_offs = 0x0038,
.sysc_flags = (SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP),
.sysc_fields = &omap36xx_sr_sysc_fields,
};
static struct omap_hwmod_class dra7xx_smartreflex_hwmod_class = {
.name = "smartreflex",
.sysc = &dra7xx_smartreflex_sysc,
};
/* smartreflex_core */
/* smartreflex_core dev_attr */
static struct omap_smartreflex_dev_attr smartreflex_core_dev_attr = {
.sensor_voltdm_name = "core",
};
static struct omap_hwmod dra7xx_smartreflex_core_hwmod = {
.name = "smartreflex_core",
.class = &dra7xx_smartreflex_hwmod_class,
.clkdm_name = "coreaon_clkdm",
.main_clk = "wkupaon_iclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_COREAON_SMARTREFLEX_CORE_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_COREAON_SMARTREFLEX_CORE_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
.dev_attr = &smartreflex_core_dev_attr,
};
/* smartreflex_mpu */
/* smartreflex_mpu dev_attr */
static struct omap_smartreflex_dev_attr smartreflex_mpu_dev_attr = {
.sensor_voltdm_name = "mpu",
};
static struct omap_hwmod dra7xx_smartreflex_mpu_hwmod = {
.name = "smartreflex_mpu",
.class = &dra7xx_smartreflex_hwmod_class,
.clkdm_name = "coreaon_clkdm",
.main_clk = "wkupaon_iclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_COREAON_SMARTREFLEX_MPU_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_COREAON_SMARTREFLEX_MPU_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
.dev_attr = &smartreflex_mpu_dev_attr,
};
/*
* 'spinlock' class
*
*/
static struct omap_hwmod_class_sysconfig dra7xx_spinlock_sysc = {
.rev_offs = 0x0000,
.sysc_offs = 0x0010,
.syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_ENAWAKEUP |
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1,
};
static struct omap_hwmod_class dra7xx_spinlock_hwmod_class = {
.name = "spinlock",
.sysc = &dra7xx_spinlock_sysc,
};
/* spinlock */
static struct omap_hwmod dra7xx_spinlock_hwmod = {
.name = "spinlock",
.class = &dra7xx_spinlock_hwmod_class,
.clkdm_name = "l4cfg_clkdm",
.main_clk = "l3_iclk_div",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4CFG_SPINLOCK_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4CFG_SPINLOCK_CONTEXT_OFFSET,
},
},
};
/* /*
* 'timer' class * 'timer' class
* *
...@@ -1225,213 +819,6 @@ static struct omap_hwmod dra7xx_timer4_hwmod = { ...@@ -1225,213 +819,6 @@ static struct omap_hwmod dra7xx_timer4_hwmod = {
}, },
}; };
/* timer5 */
static struct omap_hwmod dra7xx_timer5_hwmod = {
.name = "timer5",
.class = &dra7xx_timer_hwmod_class,
.clkdm_name = "ipu_clkdm",
.main_clk = "timer5_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_IPU_TIMER5_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_IPU_TIMER5_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer6 */
static struct omap_hwmod dra7xx_timer6_hwmod = {
.name = "timer6",
.class = &dra7xx_timer_hwmod_class,
.clkdm_name = "ipu_clkdm",
.main_clk = "timer6_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_IPU_TIMER6_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_IPU_TIMER6_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer7 */
static struct omap_hwmod dra7xx_timer7_hwmod = {
.name = "timer7",
.class = &dra7xx_timer_hwmod_class,
.clkdm_name = "ipu_clkdm",
.main_clk = "timer7_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_IPU_TIMER7_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_IPU_TIMER7_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer8 */
static struct omap_hwmod dra7xx_timer8_hwmod = {
.name = "timer8",
.class = &dra7xx_timer_hwmod_class,
.clkdm_name = "ipu_clkdm",
.main_clk = "timer8_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_IPU_TIMER8_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_IPU_TIMER8_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer9 */
static struct omap_hwmod dra7xx_timer9_hwmod = {
.name = "timer9",
.class = &dra7xx_timer_hwmod_class,
.clkdm_name = "l4per_clkdm",
.main_clk = "timer9_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4PER_TIMER9_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4PER_TIMER9_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer10 */
static struct omap_hwmod dra7xx_timer10_hwmod = {
.name = "timer10",
.class = &dra7xx_timer_1ms_hwmod_class,
.clkdm_name = "l4per_clkdm",
.main_clk = "timer10_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4PER_TIMER10_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4PER_TIMER10_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer11 */
static struct omap_hwmod dra7xx_timer11_hwmod = {
.name = "timer11",
.class = &dra7xx_timer_hwmod_class,
.clkdm_name = "l4per_clkdm",
.main_clk = "timer11_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4PER_TIMER11_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4PER_TIMER11_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer12 */
static struct omap_hwmod dra7xx_timer12_hwmod = {
.name = "timer12",
.class = &dra7xx_timer_hwmod_class,
.clkdm_name = "wkupaon_clkdm",
.main_clk = "secure_32k_clk_src_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_WKUPAON_TIMER12_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_WKUPAON_TIMER12_CONTEXT_OFFSET,
},
},
};
/* timer13 */
static struct omap_hwmod dra7xx_timer13_hwmod = {
.name = "timer13",
.class = &dra7xx_timer_hwmod_class,
.clkdm_name = "l4per3_clkdm",
.main_clk = "timer13_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4PER3_TIMER13_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4PER3_TIMER13_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer14 */
static struct omap_hwmod dra7xx_timer14_hwmod = {
.name = "timer14",
.class = &dra7xx_timer_hwmod_class,
.clkdm_name = "l4per3_clkdm",
.main_clk = "timer14_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4PER3_TIMER14_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4PER3_TIMER14_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer15 */
static struct omap_hwmod dra7xx_timer15_hwmod = {
.name = "timer15",
.class = &dra7xx_timer_hwmod_class,
.clkdm_name = "l4per3_clkdm",
.main_clk = "timer15_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4PER3_TIMER15_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4PER3_TIMER15_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* timer16 */
static struct omap_hwmod dra7xx_timer16_hwmod = {
.name = "timer16",
.class = &dra7xx_timer_hwmod_class,
.clkdm_name = "l4per3_clkdm",
.main_clk = "timer16_gfclk_mux",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4PER3_TIMER16_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4PER3_TIMER16_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL,
},
},
};
/* DES (the 'P' (public) device) */
static struct omap_hwmod_class_sysconfig dra7xx_des_sysc = {
.rev_offs = 0x0030,
.sysc_offs = 0x0034,
.syss_offs = 0x0038,
.sysc_flags = SYSS_HAS_RESET_STATUS,
};
static struct omap_hwmod_class dra7xx_des_hwmod_class = {
.name = "des",
.sysc = &dra7xx_des_sysc,
};
/* DES */
static struct omap_hwmod dra7xx_des_hwmod = {
.name = "des",
.class = &dra7xx_des_hwmod_class,
.clkdm_name = "l4sec_clkdm",
.main_clk = "l3_iclk_div",
.prcm = {
.omap4 = {
.clkctrl_offs = DRA7XX_CM_L4SEC_DES3DES_CLKCTRL_OFFSET,
.context_offs = DRA7XX_RM_L4SEC_DES3DES_CONTEXT_OFFSET,
.modulemode = MODULEMODE_HWCTRL,
},
},
};
/* /*
* 'usb_otg_ss' class * 'usb_otg_ss' class
* *
...@@ -1690,30 +1077,6 @@ static struct omap_hwmod_ocp_if dra7xx_l4_wkup__ctrl_module_wkup = { ...@@ -1690,30 +1077,6 @@ static struct omap_hwmod_ocp_if dra7xx_l4_wkup__ctrl_module_wkup = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_wkup -> dcan1 */
static struct omap_hwmod_ocp_if dra7xx_l4_wkup__dcan1 = {
.master = &dra7xx_l4_wkup_hwmod,
.slave = &dra7xx_dcan1_hwmod,
.clk = "wkupaon_iclk_mux",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per2 -> dcan2 */
static struct omap_hwmod_ocp_if dra7xx_l4_per2__dcan2 = {
.master = &dra7xx_l4_per2_hwmod,
.slave = &dra7xx_dcan2_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_cfg -> dma_system */
static struct omap_hwmod_ocp_if dra7xx_l4_cfg__dma_system = {
.master = &dra7xx_l4_cfg_hwmod,
.slave = &dra7xx_dma_system_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l3_main_1 -> tpcc */ /* l3_main_1 -> tpcc */
static struct omap_hwmod_ocp_if dra7xx_l3_main_1__tpcc = { static struct omap_hwmod_ocp_if dra7xx_l3_main_1__tpcc = {
.master = &dra7xx_l3_main_1_hwmod, .master = &dra7xx_l3_main_1_hwmod,
...@@ -1762,38 +1125,6 @@ static struct omap_hwmod_ocp_if dra7xx_l3_main_1__hdmi = { ...@@ -1762,38 +1125,6 @@ static struct omap_hwmod_ocp_if dra7xx_l3_main_1__hdmi = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l3_main_1 -> aes1 */
static struct omap_hwmod_ocp_if dra7xx_l3_main_1__aes1 = {
.master = &dra7xx_l3_main_1_hwmod,
.slave = &dra7xx_aes1_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l3_main_1 -> aes2 */
static struct omap_hwmod_ocp_if dra7xx_l3_main_1__aes2 = {
.master = &dra7xx_l3_main_1_hwmod,
.slave = &dra7xx_aes2_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l3_main_1 -> sha0 */
static struct omap_hwmod_ocp_if dra7xx_l3_main_1__sha0 = {
.master = &dra7xx_l3_main_1_hwmod,
.slave = &dra7xx_sha0_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per1 -> elm */
static struct omap_hwmod_ocp_if dra7xx_l4_per1__elm = {
.master = &dra7xx_l4_per1_hwmod,
.slave = &dra7xx_elm_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l3_main_1 -> gpmc */ /* l3_main_1 -> gpmc */
static struct omap_hwmod_ocp_if dra7xx_l3_main_1__gpmc = { static struct omap_hwmod_ocp_if dra7xx_l3_main_1__gpmc = {
.master = &dra7xx_l3_main_1_hwmod, .master = &dra7xx_l3_main_1_hwmod,
...@@ -1810,22 +1141,6 @@ static struct omap_hwmod_ocp_if dra7xx_l4_cfg__mpu = { ...@@ -1810,22 +1141,6 @@ static struct omap_hwmod_ocp_if dra7xx_l4_cfg__mpu = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_cfg -> ocp2scp1 */
static struct omap_hwmod_ocp_if dra7xx_l4_cfg__ocp2scp1 = {
.master = &dra7xx_l4_cfg_hwmod,
.slave = &dra7xx_ocp2scp1_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_cfg -> ocp2scp3 */
static struct omap_hwmod_ocp_if dra7xx_l4_cfg__ocp2scp3 = {
.master = &dra7xx_l4_cfg_hwmod,
.slave = &dra7xx_ocp2scp3_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l3_main_1 -> pciess1 */ /* l3_main_1 -> pciess1 */
static struct omap_hwmod_ocp_if dra7xx_l3_main_1__pciess1 = { static struct omap_hwmod_ocp_if dra7xx_l3_main_1__pciess1 = {
.master = &dra7xx_l3_main_1_hwmod, .master = &dra7xx_l3_main_1_hwmod,
...@@ -1882,30 +1197,6 @@ static struct omap_hwmod_ocp_if dra7xx_l4_cfg__sata = { ...@@ -1882,30 +1197,6 @@ static struct omap_hwmod_ocp_if dra7xx_l4_cfg__sata = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_cfg -> smartreflex_core */
static struct omap_hwmod_ocp_if dra7xx_l4_cfg__smartreflex_core = {
.master = &dra7xx_l4_cfg_hwmod,
.slave = &dra7xx_smartreflex_core_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_cfg -> smartreflex_mpu */
static struct omap_hwmod_ocp_if dra7xx_l4_cfg__smartreflex_mpu = {
.master = &dra7xx_l4_cfg_hwmod,
.slave = &dra7xx_smartreflex_mpu_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_cfg -> spinlock */
static struct omap_hwmod_ocp_if dra7xx_l4_cfg__spinlock = {
.master = &dra7xx_l4_cfg_hwmod,
.slave = &dra7xx_spinlock_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_wkup -> timer1 */ /* l4_wkup -> timer1 */
static struct omap_hwmod_ocp_if dra7xx_l4_wkup__timer1 = { static struct omap_hwmod_ocp_if dra7xx_l4_wkup__timer1 = {
.master = &dra7xx_l4_wkup_hwmod, .master = &dra7xx_l4_wkup_hwmod,
...@@ -1938,110 +1229,6 @@ static struct omap_hwmod_ocp_if dra7xx_l4_per1__timer4 = { ...@@ -1938,110 +1229,6 @@ static struct omap_hwmod_ocp_if dra7xx_l4_per1__timer4 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_per3 -> timer5 */
static struct omap_hwmod_ocp_if dra7xx_l4_per3__timer5 = {
.master = &dra7xx_l4_per3_hwmod,
.slave = &dra7xx_timer5_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per3 -> timer6 */
static struct omap_hwmod_ocp_if dra7xx_l4_per3__timer6 = {
.master = &dra7xx_l4_per3_hwmod,
.slave = &dra7xx_timer6_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per3 -> timer7 */
static struct omap_hwmod_ocp_if dra7xx_l4_per3__timer7 = {
.master = &dra7xx_l4_per3_hwmod,
.slave = &dra7xx_timer7_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per3 -> timer8 */
static struct omap_hwmod_ocp_if dra7xx_l4_per3__timer8 = {
.master = &dra7xx_l4_per3_hwmod,
.slave = &dra7xx_timer8_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per1 -> timer9 */
static struct omap_hwmod_ocp_if dra7xx_l4_per1__timer9 = {
.master = &dra7xx_l4_per1_hwmod,
.slave = &dra7xx_timer9_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per1 -> timer10 */
static struct omap_hwmod_ocp_if dra7xx_l4_per1__timer10 = {
.master = &dra7xx_l4_per1_hwmod,
.slave = &dra7xx_timer10_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per1 -> timer11 */
static struct omap_hwmod_ocp_if dra7xx_l4_per1__timer11 = {
.master = &dra7xx_l4_per1_hwmod,
.slave = &dra7xx_timer11_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_wkup -> timer12 */
static struct omap_hwmod_ocp_if dra7xx_l4_wkup__timer12 = {
.master = &dra7xx_l4_wkup_hwmod,
.slave = &dra7xx_timer12_hwmod,
.clk = "wkupaon_iclk_mux",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per3 -> timer13 */
static struct omap_hwmod_ocp_if dra7xx_l4_per3__timer13 = {
.master = &dra7xx_l4_per3_hwmod,
.slave = &dra7xx_timer13_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per3 -> timer14 */
static struct omap_hwmod_ocp_if dra7xx_l4_per3__timer14 = {
.master = &dra7xx_l4_per3_hwmod,
.slave = &dra7xx_timer14_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per3 -> timer15 */
static struct omap_hwmod_ocp_if dra7xx_l4_per3__timer15 = {
.master = &dra7xx_l4_per3_hwmod,
.slave = &dra7xx_timer15_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per3 -> timer16 */
static struct omap_hwmod_ocp_if dra7xx_l4_per3__timer16 = {
.master = &dra7xx_l4_per3_hwmod,
.slave = &dra7xx_timer16_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per1 -> des */
static struct omap_hwmod_ocp_if dra7xx_l4_per1__des = {
.master = &dra7xx_l4_per1_hwmod,
.slave = &dra7xx_des_hwmod,
.clk = "l3_iclk_div",
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
/* l4_per3 -> usb_otg_ss1 */ /* l4_per3 -> usb_otg_ss1 */
static struct omap_hwmod_ocp_if dra7xx_l4_per3__usb_otg_ss1 = { static struct omap_hwmod_ocp_if dra7xx_l4_per3__usb_otg_ss1 = {
.master = &dra7xx_l4_per3_hwmod, .master = &dra7xx_l4_per3_hwmod,
...@@ -2106,30 +1293,6 @@ static struct omap_hwmod_ocp_if dra7xx_l4_per2__vcp2 = { ...@@ -2106,30 +1293,6 @@ static struct omap_hwmod_ocp_if dra7xx_l4_per2__vcp2 = {
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
/* l4_per2 -> epwmss0 */
static struct omap_hwmod_ocp_if dra7xx_l4_per2__epwmss0 = {
.master = &dra7xx_l4_per2_hwmod,
.slave = &dra7xx_epwmss0_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU,
};
/* l4_per2 -> epwmss1 */
static struct omap_hwmod_ocp_if dra7xx_l4_per2__epwmss1 = {
.master = &dra7xx_l4_per2_hwmod,
.slave = &dra7xx_epwmss1_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU,
};
/* l4_per2 -> epwmss2 */
static struct omap_hwmod_ocp_if dra7xx_l4_per2__epwmss2 = {
.master = &dra7xx_l4_per2_hwmod,
.slave = &dra7xx_epwmss2_hwmod,
.clk = "l4_root_clk_div",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = { static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = {
&dra7xx_l3_main_1__dmm, &dra7xx_l3_main_1__dmm,
&dra7xx_l3_main_2__l3_instr, &dra7xx_l3_main_2__l3_instr,
...@@ -2146,48 +1309,24 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = { ...@@ -2146,48 +1309,24 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = {
&dra7xx_l3_main_1__bb2d, &dra7xx_l3_main_1__bb2d,
&dra7xx_l4_wkup__counter_32k, &dra7xx_l4_wkup__counter_32k,
&dra7xx_l4_wkup__ctrl_module_wkup, &dra7xx_l4_wkup__ctrl_module_wkup,
&dra7xx_l4_wkup__dcan1,
&dra7xx_l4_per2__dcan2,
&dra7xx_l4_cfg__dma_system,
&dra7xx_l3_main_1__tpcc, &dra7xx_l3_main_1__tpcc,
&dra7xx_l3_main_1__tptc0, &dra7xx_l3_main_1__tptc0,
&dra7xx_l3_main_1__tptc1, &dra7xx_l3_main_1__tptc1,
&dra7xx_l3_main_1__dss, &dra7xx_l3_main_1__dss,
&dra7xx_l3_main_1__dispc, &dra7xx_l3_main_1__dispc,
&dra7xx_l3_main_1__hdmi, &dra7xx_l3_main_1__hdmi,
&dra7xx_l3_main_1__aes1,
&dra7xx_l3_main_1__aes2,
&dra7xx_l3_main_1__sha0,
&dra7xx_l4_per1__elm,
&dra7xx_l3_main_1__gpmc, &dra7xx_l3_main_1__gpmc,
&dra7xx_l4_cfg__mpu, &dra7xx_l4_cfg__mpu,
&dra7xx_l4_cfg__ocp2scp1,
&dra7xx_l4_cfg__ocp2scp3,
&dra7xx_l3_main_1__pciess1, &dra7xx_l3_main_1__pciess1,
&dra7xx_l4_cfg__pciess1, &dra7xx_l4_cfg__pciess1,
&dra7xx_l3_main_1__pciess2, &dra7xx_l3_main_1__pciess2,
&dra7xx_l4_cfg__pciess2, &dra7xx_l4_cfg__pciess2,
&dra7xx_l3_main_1__qspi, &dra7xx_l3_main_1__qspi,
&dra7xx_l4_cfg__sata, &dra7xx_l4_cfg__sata,
&dra7xx_l4_cfg__smartreflex_core,
&dra7xx_l4_cfg__smartreflex_mpu,
&dra7xx_l4_cfg__spinlock,
&dra7xx_l4_wkup__timer1, &dra7xx_l4_wkup__timer1,
&dra7xx_l4_per1__timer2, &dra7xx_l4_per1__timer2,
&dra7xx_l4_per1__timer3, &dra7xx_l4_per1__timer3,
&dra7xx_l4_per1__timer4, &dra7xx_l4_per1__timer4,
&dra7xx_l4_per3__timer5,
&dra7xx_l4_per3__timer6,
&dra7xx_l4_per3__timer7,
&dra7xx_l4_per3__timer8,
&dra7xx_l4_per1__timer9,
&dra7xx_l4_per1__timer10,
&dra7xx_l4_per1__timer11,
&dra7xx_l4_per3__timer13,
&dra7xx_l4_per3__timer14,
&dra7xx_l4_per3__timer15,
&dra7xx_l4_per3__timer16,
&dra7xx_l4_per1__des,
&dra7xx_l4_per3__usb_otg_ss1, &dra7xx_l4_per3__usb_otg_ss1,
&dra7xx_l4_per3__usb_otg_ss2, &dra7xx_l4_per3__usb_otg_ss2,
&dra7xx_l4_per3__usb_otg_ss3, &dra7xx_l4_per3__usb_otg_ss3,
...@@ -2195,15 +1334,6 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = { ...@@ -2195,15 +1334,6 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = {
&dra7xx_l4_per2__vcp1, &dra7xx_l4_per2__vcp1,
&dra7xx_l3_main_1__vcp2, &dra7xx_l3_main_1__vcp2,
&dra7xx_l4_per2__vcp2, &dra7xx_l4_per2__vcp2,
&dra7xx_l4_per2__epwmss0,
&dra7xx_l4_per2__epwmss1,
&dra7xx_l4_per2__epwmss2,
NULL,
};
/* GP-only hwmod links */
static struct omap_hwmod_ocp_if *dra7xx_gp_hwmod_ocp_ifs[] __initdata = {
&dra7xx_l4_wkup__timer12,
NULL, NULL,
}; };
...@@ -2256,8 +1386,5 @@ int __init dra7xx_hwmod_init(void) ...@@ -2256,8 +1386,5 @@ int __init dra7xx_hwmod_init(void)
} }
} }
if (!ret && omap_type() == OMAP2_DEVICE_TYPE_GP)
ret = omap_hwmod_register_links(dra7xx_gp_hwmod_ocp_ifs);
return ret; return ret;
} }
...@@ -98,7 +98,6 @@ extern struct omap_hwmod_class omap2_hdq1w_class; ...@@ -98,7 +98,6 @@ extern struct omap_hwmod_class omap2_hdq1w_class;
extern struct omap_hwmod_class omap2xxx_timer_hwmod_class; extern struct omap_hwmod_class omap2xxx_timer_hwmod_class;
extern struct omap_hwmod_class omap2xxx_wd_timer_hwmod_class; extern struct omap_hwmod_class omap2xxx_wd_timer_hwmod_class;
extern struct omap_hwmod_class omap2xxx_gpio_hwmod_class; extern struct omap_hwmod_class omap2xxx_gpio_hwmod_class;
extern struct omap_hwmod_class omap2xxx_dma_hwmod_class;
extern struct omap_hwmod_class omap2xxx_mailbox_hwmod_class; extern struct omap_hwmod_class omap2xxx_mailbox_hwmod_class;
extern struct omap_hwmod_class omap2xxx_mcspi_class; extern struct omap_hwmod_class omap2xxx_mcspi_class;
......
...@@ -26,8 +26,6 @@ ...@@ -26,8 +26,6 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <sound/aess.h>
#include "omap_hwmod.h" #include "omap_hwmod.h"
#include "common.h" #include "common.h"
...@@ -40,28 +38,6 @@ ...@@ -40,28 +38,6 @@
#define OMAP_RTC_STATUS_BUSY BIT(0) #define OMAP_RTC_STATUS_BUSY BIT(0)
#define OMAP_RTC_MAX_READY_TIME 50 #define OMAP_RTC_MAX_READY_TIME 50
/**
* omap_hwmod_aess_preprogram - enable AESS internal autogating
* @oh: struct omap_hwmod *
*
* The AESS will not IdleAck to the PRCM until its internal autogating
* is enabled. Since internal autogating is disabled by default after
* AESS reset, we must enable autogating after the hwmod code resets
* the AESS. Returns 0.
*/
int omap_hwmod_aess_preprogram(struct omap_hwmod *oh)
{
void __iomem *va;
va = omap_hwmod_get_mpu_rt_va(oh);
if (!va)
return -EINVAL;
aess_enable_autogating(va);
return 0;
}
/** /**
* omap_rtc_wait_not_busy - Wait for the RTC BUSY flag * omap_rtc_wait_not_busy - Wait for the RTC BUSY flag
* @oh: struct omap_hwmod * * @oh: struct omap_hwmod *
......
...@@ -529,6 +529,7 @@ static struct of_dev_auxdata omap_auxdata_lookup[] = { ...@@ -529,6 +529,7 @@ static struct of_dev_auxdata omap_auxdata_lookup[] = {
OF_DEV_AUXDATA("ti,sysc", 0, NULL, &ti_sysc_pdata), OF_DEV_AUXDATA("ti,sysc", 0, NULL, &ti_sysc_pdata),
OF_DEV_AUXDATA("pinctrl-single", 0, NULL, &pcs_pdata), OF_DEV_AUXDATA("pinctrl-single", 0, NULL, &pcs_pdata),
OF_DEV_AUXDATA("ti,omap-prm-inst", 0, NULL, &ti_prm_pdata), OF_DEV_AUXDATA("ti,omap-prm-inst", 0, NULL, &ti_prm_pdata),
OF_DEV_AUXDATA("ti,omap-sdma", 0, NULL, &dma_plat_info),
{ /* sentinel */ }, { /* sentinel */ },
}; };
......
...@@ -83,8 +83,6 @@ static int omap2_enter_full_retention(void) ...@@ -83,8 +83,6 @@ static int omap2_enter_full_retention(void)
l = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0) | OMAP24XX_USBSTANDBYCTRL; l = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0) | OMAP24XX_USBSTANDBYCTRL;
omap_ctrl_writel(l, OMAP2_CONTROL_DEVCONF0); omap_ctrl_writel(l, OMAP2_CONTROL_DEVCONF0);
cpu_cluster_pm_enter();
/* One last check for pending IRQs to avoid extra latency due /* One last check for pending IRQs to avoid extra latency due
* to sleeping unnecessarily. */ * to sleeping unnecessarily. */
if (omap_irq_pending()) if (omap_irq_pending())
...@@ -96,8 +94,6 @@ static int omap2_enter_full_retention(void) ...@@ -96,8 +94,6 @@ static int omap2_enter_full_retention(void)
OMAP_SDRC_REGADDR(SDRC_POWER)); OMAP_SDRC_REGADDR(SDRC_POWER));
no_sleep: no_sleep:
cpu_cluster_pm_exit();
clk_enable(osc_ck); clk_enable(osc_ck);
/* clear CORE wake-up events */ /* clear CORE wake-up events */
...@@ -162,25 +158,27 @@ static int omap2_can_sleep(void) ...@@ -162,25 +158,27 @@ static int omap2_can_sleep(void)
return 0; return 0;
if (__clk_is_enabled(osc_ck)) if (__clk_is_enabled(osc_ck))
return 0; return 0;
if (omap_dma_running())
return 0;
return 1; return 1;
} }
static void omap2_pm_idle(void) static void omap2_pm_idle(void)
{ {
if (!omap2_can_sleep()) { int error;
if (omap_irq_pending()) if (omap_irq_pending())
return; return;
error = cpu_cluster_pm_enter();
if (error || !omap2_can_sleep()) {
omap2_enter_mpu_retention(); omap2_enter_mpu_retention();
return; goto out_cpu_cluster_pm;
} }
if (omap_irq_pending())
return;
omap2_enter_full_retention(); omap2_enter_full_retention();
out_cpu_cluster_pm:
cpu_cluster_pm_exit();
} }
static void __init prcm_setup_regs(void) static void __init prcm_setup_regs(void)
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/omap-dma.h>
#include <linux/omap-gpmc.h> #include <linux/omap-gpmc.h>
#include <trace/events/power.h> #include <trace/events/power.h>
...@@ -85,7 +84,6 @@ static void omap3_core_save_context(void) ...@@ -85,7 +84,6 @@ static void omap3_core_save_context(void)
omap3_gpmc_save_context(); omap3_gpmc_save_context();
/* Save the system control module context, padconf already save above*/ /* Save the system control module context, padconf already save above*/
omap3_control_save_context(); omap3_control_save_context();
omap_dma_global_context_save();
} }
static void omap3_core_restore_context(void) static void omap3_core_restore_context(void)
...@@ -96,7 +94,6 @@ static void omap3_core_restore_context(void) ...@@ -96,7 +94,6 @@ static void omap3_core_restore_context(void)
omap3_gpmc_restore_context(); omap3_gpmc_restore_context();
/* Restore the interrupt controller context */ /* Restore the interrupt controller context */
omap_intc_restore_context(); omap_intc_restore_context();
omap_dma_global_context_restore();
} }
/* /*
...@@ -547,9 +544,7 @@ int __init omap3_pm_init(void) ...@@ -547,9 +544,7 @@ int __init omap3_pm_init(void)
local_irq_disable(); local_irq_disable();
omap_dma_global_context_save();
omap3_save_secure_ram_context(); omap3_save_secure_ram_context();
omap_dma_global_context_restore();
local_irq_enable(); local_irq_enable();
} }
......
...@@ -65,18 +65,9 @@ enum { DMA_CHAIN_STARTED, DMA_CHAIN_NOTSTARTED }; ...@@ -65,18 +65,9 @@ enum { DMA_CHAIN_STARTED, DMA_CHAIN_NOTSTARTED };
static struct omap_system_dma_plat_info *p; static struct omap_system_dma_plat_info *p;
static struct omap_dma_dev_attr *d; static struct omap_dma_dev_attr *d;
static void omap_clear_dma(int lch); static void omap_clear_dma(int lch);
static int omap_dma_set_prio_lch(int lch, unsigned char read_prio,
unsigned char write_prio);
static int enable_1510_mode; static int enable_1510_mode;
static u32 errata; static u32 errata;
static struct omap_dma_global_context_registers {
u32 dma_irqenable_l0;
u32 dma_irqenable_l1;
u32 dma_ocp_sysconfig;
u32 dma_gcr;
} omap_dma_global_context;
struct dma_link_info { struct dma_link_info {
int *linked_dmach_q; int *linked_dmach_q;
int no_of_lchs_linked; int no_of_lchs_linked;
...@@ -90,42 +81,6 @@ struct dma_link_info { ...@@ -90,42 +81,6 @@ struct dma_link_info {
}; };
static struct dma_link_info *dma_linked_lch;
#ifndef CONFIG_ARCH_OMAP1
/* Chain handling macros */
#define OMAP_DMA_CHAIN_QINIT(chain_id) \
do { \
dma_linked_lch[chain_id].q_head = \
dma_linked_lch[chain_id].q_tail = \
dma_linked_lch[chain_id].q_count = 0; \
} while (0)
#define OMAP_DMA_CHAIN_QFULL(chain_id) \
(dma_linked_lch[chain_id].no_of_lchs_linked == \
dma_linked_lch[chain_id].q_count)
#define OMAP_DMA_CHAIN_QLAST(chain_id) \
do { \
((dma_linked_lch[chain_id].no_of_lchs_linked-1) == \
dma_linked_lch[chain_id].q_count) \
} while (0)
#define OMAP_DMA_CHAIN_QEMPTY(chain_id) \
(0 == dma_linked_lch[chain_id].q_count)
#define __OMAP_DMA_CHAIN_INCQ(end) \
((end) = ((end)+1) % dma_linked_lch[chain_id].no_of_lchs_linked)
#define OMAP_DMA_CHAIN_INCQHEAD(chain_id) \
do { \
__OMAP_DMA_CHAIN_INCQ(dma_linked_lch[chain_id].q_head); \
dma_linked_lch[chain_id].q_count--; \
} while (0)
#define OMAP_DMA_CHAIN_INCQTAIL(chain_id) \
do { \
__OMAP_DMA_CHAIN_INCQ(dma_linked_lch[chain_id].q_tail); \
dma_linked_lch[chain_id].q_count++; \
} while (0)
#endif
static int dma_lch_count; static int dma_lch_count;
static int dma_chan_count; static int dma_chan_count;
static int omap_dma_reserve_channels; static int omap_dma_reserve_channels;
...@@ -137,9 +92,6 @@ static inline void disable_lnk(int lch); ...@@ -137,9 +92,6 @@ static inline void disable_lnk(int lch);
static void omap_disable_channel_irq(int lch); static void omap_disable_channel_irq(int lch);
static inline void omap_enable_channel_irq(int lch); static inline void omap_enable_channel_irq(int lch);
#define REVISIT_24XX() printk(KERN_ERR "FIXME: no %s on 24xx\n", \
__func__);
#ifdef CONFIG_ARCH_OMAP15XX #ifdef CONFIG_ARCH_OMAP15XX
/* Returns 1 if the DMA module is in OMAP1510-compatible mode, 0 otherwise */ /* Returns 1 if the DMA module is in OMAP1510-compatible mode, 0 otherwise */
static int omap_dma_in_1510_mode(void) static int omap_dma_in_1510_mode(void)
...@@ -278,19 +230,6 @@ void omap_set_dma_transfer_params(int lch, int data_type, int elem_count, ...@@ -278,19 +230,6 @@ void omap_set_dma_transfer_params(int lch, int data_type, int elem_count,
} }
EXPORT_SYMBOL(omap_set_dma_transfer_params); EXPORT_SYMBOL(omap_set_dma_transfer_params);
void omap_set_dma_write_mode(int lch, enum omap_dma_write_mode mode)
{
if (dma_omap2plus()) {
u32 csdp;
csdp = p->dma_read(CSDP, lch);
csdp &= ~(0x3 << 16);
csdp |= (mode << 16);
p->dma_write(csdp, CSDP, lch);
}
}
EXPORT_SYMBOL(omap_set_dma_write_mode);
void omap_set_dma_channel_mode(int lch, enum omap_dma_channel_mode mode) void omap_set_dma_channel_mode(int lch, enum omap_dma_channel_mode mode)
{ {
if (dma_omap1() && !dma_omap15xx()) { if (dma_omap1() && !dma_omap15xx()) {
...@@ -332,25 +271,6 @@ void omap_set_dma_src_params(int lch, int src_port, int src_amode, ...@@ -332,25 +271,6 @@ void omap_set_dma_src_params(int lch, int src_port, int src_amode,
} }
EXPORT_SYMBOL(omap_set_dma_src_params); EXPORT_SYMBOL(omap_set_dma_src_params);
void omap_set_dma_params(int lch, struct omap_dma_channel_params *params)
{
omap_set_dma_transfer_params(lch, params->data_type,
params->elem_count, params->frame_count,
params->sync_mode, params->trigger,
params->src_or_dst_synch);
omap_set_dma_src_params(lch, params->src_port,
params->src_amode, params->src_start,
params->src_ei, params->src_fi);
omap_set_dma_dest_params(lch, params->dst_port,
params->dst_amode, params->dst_start,
params->dst_ei, params->dst_fi);
if (params->read_prio || params->write_prio)
omap_dma_set_prio_lch(lch, params->read_prio,
params->write_prio);
}
EXPORT_SYMBOL(omap_set_dma_params);
void omap_set_dma_src_data_pack(int lch, int enable) void omap_set_dma_src_data_pack(int lch, int enable)
{ {
u32 l; u32 l;
...@@ -507,12 +427,6 @@ static inline void omap_disable_channel_irq(int lch) ...@@ -507,12 +427,6 @@ static inline void omap_disable_channel_irq(int lch)
p->dma_write(OMAP2_DMA_CSR_CLEAR_MASK, CSR, lch); p->dma_write(OMAP2_DMA_CSR_CLEAR_MASK, CSR, lch);
} }
void omap_enable_dma_irq(int lch, u16 bits)
{
dma_chan[lch].enabled_irqs |= bits;
}
EXPORT_SYMBOL(omap_enable_dma_irq);
void omap_disable_dma_irq(int lch, u16 bits) void omap_disable_dma_irq(int lch, u16 bits)
{ {
dma_chan[lch].enabled_irqs &= ~bits; dma_chan[lch].enabled_irqs &= ~bits;
...@@ -532,12 +446,6 @@ static inline void enable_lnk(int lch) ...@@ -532,12 +446,6 @@ static inline void enable_lnk(int lch)
if (dma_chan[lch].next_lch != -1) if (dma_chan[lch].next_lch != -1)
l = dma_chan[lch].next_lch | (1 << 15); l = dma_chan[lch].next_lch | (1 << 15);
#ifndef CONFIG_ARCH_OMAP1
if (dma_omap2plus())
if (dma_chan[lch].next_linked_ch != -1)
l = dma_chan[lch].next_linked_ch | (1 << 15);
#endif
p->dma_write(l, CLNK_CTRL, lch); p->dma_write(l, CLNK_CTRL, lch);
} }
...@@ -564,42 +472,6 @@ static inline void disable_lnk(int lch) ...@@ -564,42 +472,6 @@ static inline void disable_lnk(int lch)
dma_chan[lch].flags &= ~OMAP_DMA_ACTIVE; dma_chan[lch].flags &= ~OMAP_DMA_ACTIVE;
} }
static inline void omap2_enable_irq_lch(int lch)
{
u32 val;
unsigned long flags;
if (dma_omap1())
return;
spin_lock_irqsave(&dma_chan_lock, flags);
/* clear IRQ STATUS */
p->dma_write(1 << lch, IRQSTATUS_L0, lch);
/* Enable interrupt */
val = p->dma_read(IRQENABLE_L0, lch);
val |= 1 << lch;
p->dma_write(val, IRQENABLE_L0, lch);
spin_unlock_irqrestore(&dma_chan_lock, flags);
}
static inline void omap2_disable_irq_lch(int lch)
{
u32 val;
unsigned long flags;
if (dma_omap1())
return;
spin_lock_irqsave(&dma_chan_lock, flags);
/* Disable interrupt */
val = p->dma_read(IRQENABLE_L0, lch);
val &= ~(1 << lch);
p->dma_write(val, IRQENABLE_L0, lch);
/* clear IRQ STATUS */
p->dma_write(1 << lch, IRQSTATUS_L0, lch);
spin_unlock_irqrestore(&dma_chan_lock, flags);
}
int omap_request_dma(int dev_id, const char *dev_name, int omap_request_dma(int dev_id, const char *dev_name,
void (*callback)(int lch, u16 ch_status, void *data), void (*callback)(int lch, u16 ch_status, void *data),
void *data, int *dma_ch_out) void *data, int *dma_ch_out)
...@@ -628,9 +500,6 @@ int omap_request_dma(int dev_id, const char *dev_name, ...@@ -628,9 +500,6 @@ int omap_request_dma(int dev_id, const char *dev_name,
if (p->clear_lch_regs) if (p->clear_lch_regs)
p->clear_lch_regs(free_ch); p->clear_lch_regs(free_ch);
if (dma_omap2plus())
omap_clear_dma(free_ch);
spin_unlock_irqrestore(&dma_chan_lock, flags); spin_unlock_irqrestore(&dma_chan_lock, flags);
chan->dev_name = dev_name; chan->dev_name = dev_name;
...@@ -638,20 +507,10 @@ int omap_request_dma(int dev_id, const char *dev_name, ...@@ -638,20 +507,10 @@ int omap_request_dma(int dev_id, const char *dev_name,
chan->data = data; chan->data = data;
chan->flags = 0; chan->flags = 0;
#ifndef CONFIG_ARCH_OMAP1
if (dma_omap2plus()) {
chan->chain_id = -1;
chan->next_linked_ch = -1;
}
#endif
chan->enabled_irqs = OMAP_DMA_DROP_IRQ | OMAP_DMA_BLOCK_IRQ; chan->enabled_irqs = OMAP_DMA_DROP_IRQ | OMAP_DMA_BLOCK_IRQ;
if (dma_omap1()) if (dma_omap1())
chan->enabled_irqs |= OMAP1_DMA_TOUT_IRQ; chan->enabled_irqs |= OMAP1_DMA_TOUT_IRQ;
else if (dma_omap2plus())
chan->enabled_irqs |= OMAP2_DMA_MISALIGNED_ERR_IRQ |
OMAP2_DMA_TRANS_ERR_IRQ;
if (dma_omap16xx()) { if (dma_omap16xx()) {
/* If the sync device is set, configure it dynamically. */ /* If the sync device is set, configure it dynamically. */
...@@ -668,11 +527,6 @@ int omap_request_dma(int dev_id, const char *dev_name, ...@@ -668,11 +527,6 @@ int omap_request_dma(int dev_id, const char *dev_name,
p->dma_write(dev_id, CCR, free_ch); p->dma_write(dev_id, CCR, free_ch);
} }
if (dma_omap2plus()) {
omap_enable_channel_irq(free_ch);
omap2_enable_irq_lch(free_ch);
}
*dma_ch_out = free_ch; *dma_ch_out = free_ch;
return 0; return 0;
...@@ -689,20 +543,12 @@ void omap_free_dma(int lch) ...@@ -689,20 +543,12 @@ void omap_free_dma(int lch)
return; return;
} }
/* Disable interrupt for logical channel */
if (dma_omap2plus())
omap2_disable_irq_lch(lch);
/* Disable all DMA interrupts for the channel. */ /* Disable all DMA interrupts for the channel. */
omap_disable_channel_irq(lch); omap_disable_channel_irq(lch);
/* Make sure the DMA transfer is stopped. */ /* Make sure the DMA transfer is stopped. */
p->dma_write(0, CCR, lch); p->dma_write(0, CCR, lch);
/* Clear registers */
if (dma_omap2plus())
omap_clear_dma(lch);
spin_lock_irqsave(&dma_chan_lock, flags); spin_lock_irqsave(&dma_chan_lock, flags);
dma_chan[lch].dev_id = -1; dma_chan[lch].dev_id = -1;
dma_chan[lch].next_lch = -1; dma_chan[lch].next_lch = -1;
...@@ -711,71 +557,6 @@ void omap_free_dma(int lch) ...@@ -711,71 +557,6 @@ void omap_free_dma(int lch)
} }
EXPORT_SYMBOL(omap_free_dma); EXPORT_SYMBOL(omap_free_dma);
/**
* @brief omap_dma_set_global_params : Set global priority settings for dma
*
* @param arb_rate
* @param max_fifo_depth
* @param tparams - Number of threads to reserve : DMA_THREAD_RESERVE_NORM
* DMA_THREAD_RESERVE_ONET
* DMA_THREAD_RESERVE_TWOT
* DMA_THREAD_RESERVE_THREET
*/
void
omap_dma_set_global_params(int arb_rate, int max_fifo_depth, int tparams)
{
u32 reg;
if (dma_omap1()) {
printk(KERN_ERR "FIXME: no %s on 15xx/16xx\n", __func__);
return;
}
if (max_fifo_depth == 0)
max_fifo_depth = 1;
if (arb_rate == 0)
arb_rate = 1;
reg = 0xff & max_fifo_depth;
reg |= (0x3 & tparams) << 12;
reg |= (arb_rate & 0xff) << 16;
p->dma_write(reg, GCR, 0);
}
EXPORT_SYMBOL(omap_dma_set_global_params);
/**
* @brief omap_dma_set_prio_lch : Set channel wise priority settings
*
* @param lch
* @param read_prio - Read priority
* @param write_prio - Write priority
* Both of the above can be set with one of the following values :
* DMA_CH_PRIO_HIGH/DMA_CH_PRIO_LOW
*/
static int
omap_dma_set_prio_lch(int lch, unsigned char read_prio,
unsigned char write_prio)
{
u32 l;
if (unlikely((lch < 0 || lch >= dma_lch_count))) {
printk(KERN_ERR "Invalid channel id\n");
return -EINVAL;
}
l = p->dma_read(CCR, lch);
l &= ~((1 << 6) | (1 << 26));
if (d->dev_caps & IS_RW_PRIORITY)
l |= ((read_prio & 0x1) << 6) | ((write_prio & 0x1) << 26);
else
l |= ((read_prio & 0x1) << 6);
p->dma_write(l, CCR, lch);
return 0;
}
/* /*
* Clears any DMA state so the DMA engine is ready to restart with new buffers * Clears any DMA state so the DMA engine is ready to restart with new buffers
* through omap_start_dma(). Any buffers in flight are discarded. * through omap_start_dma(). Any buffers in flight are discarded.
...@@ -926,29 +707,6 @@ EXPORT_SYMBOL(omap_stop_dma); ...@@ -926,29 +707,6 @@ EXPORT_SYMBOL(omap_stop_dma);
* Allows changing the DMA callback function or data. This may be needed if * Allows changing the DMA callback function or data. This may be needed if
* the driver shares a single DMA channel for multiple dma triggers. * the driver shares a single DMA channel for multiple dma triggers.
*/ */
int omap_set_dma_callback(int lch,
void (*callback)(int lch, u16 ch_status, void *data),
void *data)
{
unsigned long flags;
if (lch < 0)
return -ENODEV;
spin_lock_irqsave(&dma_chan_lock, flags);
if (dma_chan[lch].dev_id == -1) {
printk(KERN_ERR "DMA callback for not set for free channel\n");
spin_unlock_irqrestore(&dma_chan_lock, flags);
return -EINVAL;
}
dma_chan[lch].callback = callback;
dma_chan[lch].data = data;
spin_unlock_irqrestore(&dma_chan_lock, flags);
return 0;
}
EXPORT_SYMBOL(omap_set_dma_callback);
/* /*
* Returns current physical source address for the given DMA channel. * Returns current physical source address for the given DMA channel.
* If the channel is running the caller must disable interrupts prior calling * If the channel is running the caller must disable interrupts prior calling
...@@ -1048,34 +806,6 @@ int omap_dma_running(void) ...@@ -1048,34 +806,6 @@ int omap_dma_running(void)
return 0; return 0;
} }
/*
* lch_queue DMA will start right after lch_head one is finished.
* For this DMA link to start, you still need to start (see omap_start_dma)
* the first one. That will fire up the entire queue.
*/
void omap_dma_link_lch(int lch_head, int lch_queue)
{
if (omap_dma_in_1510_mode()) {
if (lch_head == lch_queue) {
p->dma_write(p->dma_read(CCR, lch_head) | (3 << 8),
CCR, lch_head);
return;
}
printk(KERN_ERR "DMA linking is not supported in 1510 mode\n");
BUG();
return;
}
if ((dma_chan[lch_head].dev_id == -1) ||
(dma_chan[lch_queue].dev_id == -1)) {
pr_err("omap_dma: trying to link non requested channels\n");
dump_stack();
}
dma_chan[lch_head].next_lch = lch_queue;
}
EXPORT_SYMBOL(omap_dma_link_lch);
/*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
#ifdef CONFIG_ARCH_OMAP1 #ifdef CONFIG_ARCH_OMAP1
...@@ -1136,145 +866,6 @@ static irqreturn_t omap1_dma_irq_handler(int irq, void *dev_id) ...@@ -1136,145 +866,6 @@ static irqreturn_t omap1_dma_irq_handler(int irq, void *dev_id)
#define omap1_dma_irq_handler NULL #define omap1_dma_irq_handler NULL
#endif #endif
#ifdef CONFIG_ARCH_OMAP2PLUS
static int omap2_dma_handle_ch(int ch)
{
u32 status = p->dma_read(CSR, ch);
if (!status) {
if (printk_ratelimit())
pr_warn("Spurious DMA IRQ for lch %d\n", ch);
p->dma_write(1 << ch, IRQSTATUS_L0, ch);
return 0;
}
if (unlikely(dma_chan[ch].dev_id == -1)) {
if (printk_ratelimit())
pr_warn("IRQ %04x for non-allocated DMA channel %d\n",
status, ch);
return 0;
}
if (unlikely(status & OMAP_DMA_DROP_IRQ))
pr_info("DMA synchronization event drop occurred with device %d\n",
dma_chan[ch].dev_id);
if (unlikely(status & OMAP2_DMA_TRANS_ERR_IRQ)) {
printk(KERN_INFO "DMA transaction error with device %d\n",
dma_chan[ch].dev_id);
if (IS_DMA_ERRATA(DMA_ERRATA_i378)) {
u32 ccr;
ccr = p->dma_read(CCR, ch);
ccr &= ~OMAP_DMA_CCR_EN;
p->dma_write(ccr, CCR, ch);
dma_chan[ch].flags &= ~OMAP_DMA_ACTIVE;
}
}
if (unlikely(status & OMAP2_DMA_SECURE_ERR_IRQ))
printk(KERN_INFO "DMA secure error with device %d\n",
dma_chan[ch].dev_id);
if (unlikely(status & OMAP2_DMA_MISALIGNED_ERR_IRQ))
printk(KERN_INFO "DMA misaligned error with device %d\n",
dma_chan[ch].dev_id);
p->dma_write(status, CSR, ch);
p->dma_write(1 << ch, IRQSTATUS_L0, ch);
/* read back the register to flush the write */
p->dma_read(IRQSTATUS_L0, ch);
/* If the ch is not chained then chain_id will be -1 */
if (dma_chan[ch].chain_id != -1) {
int chain_id = dma_chan[ch].chain_id;
dma_chan[ch].state = DMA_CH_NOTSTARTED;
if (p->dma_read(CLNK_CTRL, ch) & (1 << 15))
dma_chan[dma_chan[ch].next_linked_ch].state =
DMA_CH_STARTED;
if (dma_linked_lch[chain_id].chain_mode ==
OMAP_DMA_DYNAMIC_CHAIN)
disable_lnk(ch);
if (!OMAP_DMA_CHAIN_QEMPTY(chain_id))
OMAP_DMA_CHAIN_INCQHEAD(chain_id);
status = p->dma_read(CSR, ch);
p->dma_write(status, CSR, ch);
}
if (likely(dma_chan[ch].callback != NULL))
dma_chan[ch].callback(ch, status, dma_chan[ch].data);
return 0;
}
/* STATUS register count is from 1-32 while our is 0-31 */
static irqreturn_t omap2_dma_irq_handler(int irq, void *dev_id)
{
u32 val, enable_reg;
int i;
val = p->dma_read(IRQSTATUS_L0, 0);
if (val == 0) {
if (printk_ratelimit())
printk(KERN_WARNING "Spurious DMA IRQ\n");
return IRQ_HANDLED;
}
enable_reg = p->dma_read(IRQENABLE_L0, 0);
val &= enable_reg; /* Dispatch only relevant interrupts */
for (i = 0; i < dma_lch_count && val != 0; i++) {
if (val & 1)
omap2_dma_handle_ch(i);
val >>= 1;
}
return IRQ_HANDLED;
}
static struct irqaction omap24xx_dma_irq = {
.name = "DMA",
.handler = omap2_dma_irq_handler,
};
#else
static struct irqaction omap24xx_dma_irq;
#endif
/*----------------------------------------------------------------------------*/
/*
* Note that we are currently using only IRQENABLE_L0 and L1.
* As the DSP may be using IRQENABLE_L2 and L3, let's not
* touch those for now.
*/
void omap_dma_global_context_save(void)
{
omap_dma_global_context.dma_irqenable_l0 =
p->dma_read(IRQENABLE_L0, 0);
omap_dma_global_context.dma_irqenable_l1 =
p->dma_read(IRQENABLE_L1, 0);
omap_dma_global_context.dma_ocp_sysconfig =
p->dma_read(OCP_SYSCONFIG, 0);
omap_dma_global_context.dma_gcr = p->dma_read(GCR, 0);
}
void omap_dma_global_context_restore(void)
{
int ch;
p->dma_write(omap_dma_global_context.dma_gcr, GCR, 0);
p->dma_write(omap_dma_global_context.dma_ocp_sysconfig,
OCP_SYSCONFIG, 0);
p->dma_write(omap_dma_global_context.dma_irqenable_l0,
IRQENABLE_L0, 0);
p->dma_write(omap_dma_global_context.dma_irqenable_l1,
IRQENABLE_L1, 0);
if (IS_DMA_ERRATA(DMA_ROMCODE_BUG))
p->dma_write(0x3 , IRQSTATUS_L0, 0);
for (ch = 0; ch < dma_chan_count; ch++)
if (dma_chan[ch].dev_id != -1)
omap_clear_dma(ch);
}
struct omap_system_dma_plat_info *omap_get_plat_info(void) struct omap_system_dma_plat_info *omap_get_plat_info(void)
{ {
return p; return p;
...@@ -1286,7 +877,6 @@ static int omap_system_dma_probe(struct platform_device *pdev) ...@@ -1286,7 +877,6 @@ static int omap_system_dma_probe(struct platform_device *pdev)
int ch, ret = 0; int ch, ret = 0;
int dma_irq; int dma_irq;
char irq_name[4]; char irq_name[4];
int irq_rel;
p = pdev->dev.platform_data; p = pdev->dev.platform_data;
if (!p) { if (!p) {
...@@ -1312,21 +902,9 @@ static int omap_system_dma_probe(struct platform_device *pdev) ...@@ -1312,21 +902,9 @@ static int omap_system_dma_probe(struct platform_device *pdev)
if (!dma_chan) if (!dma_chan)
return -ENOMEM; return -ENOMEM;
if (dma_omap2plus()) {
dma_linked_lch = kcalloc(dma_lch_count,
sizeof(*dma_linked_lch),
GFP_KERNEL);
if (!dma_linked_lch) {
ret = -ENOMEM;
goto exit_dma_lch_fail;
}
}
spin_lock_init(&dma_chan_lock); spin_lock_init(&dma_chan_lock);
for (ch = 0; ch < dma_chan_count; ch++) { for (ch = 0; ch < dma_chan_count; ch++) {
omap_clear_dma(ch); omap_clear_dma(ch);
if (dma_omap2plus())
omap2_disable_irq_lch(ch);
dma_chan[ch].dev_id = -1; dma_chan[ch].dev_id = -1;
dma_chan[ch].next_lch = -1; dma_chan[ch].next_lch = -1;
...@@ -1359,26 +937,6 @@ static int omap_system_dma_probe(struct platform_device *pdev) ...@@ -1359,26 +937,6 @@ static int omap_system_dma_probe(struct platform_device *pdev)
} }
} }
if (d->dev_caps & IS_RW_PRIORITY)
omap_dma_set_global_params(DMA_DEFAULT_ARB_RATE,
DMA_DEFAULT_FIFO_DEPTH, 0);
if (dma_omap2plus() && !(d->dev_caps & DMA_ENGINE_HANDLE_IRQ)) {
strcpy(irq_name, "0");
dma_irq = platform_get_irq_byname(pdev, irq_name);
if (dma_irq < 0) {
dev_err(&pdev->dev, "failed: request IRQ %d", dma_irq);
ret = dma_irq;
goto exit_dma_lch_fail;
}
ret = setup_irq(dma_irq, &omap24xx_dma_irq);
if (ret) {
dev_err(&pdev->dev, "set_up failed for IRQ %d for DMA (error %d)\n",
dma_irq, ret);
goto exit_dma_lch_fail;
}
}
/* reserve dma channels 0 and 1 in high security devices on 34xx */ /* reserve dma channels 0 and 1 in high security devices on 34xx */
if (d->dev_caps & HS_CHANNELS_RESERVED) { if (d->dev_caps & HS_CHANNELS_RESERVED) {
pr_info("Reserving DMA channels 0 and 1 for HS ROM code\n"); pr_info("Reserving DMA channels 0 and 1 for HS ROM code\n");
...@@ -1389,34 +947,21 @@ static int omap_system_dma_probe(struct platform_device *pdev) ...@@ -1389,34 +947,21 @@ static int omap_system_dma_probe(struct platform_device *pdev)
return 0; return 0;
exit_dma_irq_fail: exit_dma_irq_fail:
dev_err(&pdev->dev, "unable to request IRQ %d for DMA (error %d)\n",
dma_irq, ret);
for (irq_rel = 0; irq_rel < ch; irq_rel++) {
dma_irq = platform_get_irq(pdev, irq_rel);
free_irq(dma_irq, (void *)(irq_rel + 1));
}
exit_dma_lch_fail:
return ret; return ret;
} }
static int omap_system_dma_remove(struct platform_device *pdev) static int omap_system_dma_remove(struct platform_device *pdev)
{ {
int dma_irq; int dma_irq, irq_rel = 0;
if (dma_omap2plus())
return 0;
if (dma_omap2plus()) {
char irq_name[4];
strcpy(irq_name, "0");
dma_irq = platform_get_irq_byname(pdev, irq_name);
if (dma_irq >= 0)
remove_irq(dma_irq, &omap24xx_dma_irq);
} else {
int irq_rel = 0;
for ( ; irq_rel < dma_chan_count; irq_rel++) { for ( ; irq_rel < dma_chan_count; irq_rel++) {
dma_irq = platform_get_irq(pdev, irq_rel); dma_irq = platform_get_irq(pdev, irq_rel);
free_irq(dma_irq, (void *)(irq_rel + 1)); free_irq(dma_irq, (void *)(irq_rel + 1));
} }
}
return 0; return 0;
} }
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
/* /*
* OMAP DMAengine support * OMAP DMAengine support
*/ */
#include <linux/cpu_pm.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/dmaengine.h> #include <linux/dmaengine.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
...@@ -23,12 +24,33 @@ ...@@ -23,12 +24,33 @@
#define OMAP_SDMA_REQUESTS 127 #define OMAP_SDMA_REQUESTS 127
#define OMAP_SDMA_CHANNELS 32 #define OMAP_SDMA_CHANNELS 32
struct omap_dma_config {
int lch_end;
unsigned int rw_priority:1;
unsigned int needs_busy_check:1;
unsigned int may_lose_context:1;
unsigned int needs_lch_clear:1;
};
struct omap_dma_context {
u32 irqenable_l0;
u32 irqenable_l1;
u32 ocp_sysconfig;
u32 gcr;
};
struct omap_dmadev { struct omap_dmadev {
struct dma_device ddev; struct dma_device ddev;
spinlock_t lock; spinlock_t lock;
void __iomem *base; void __iomem *base;
const struct omap_dma_reg *reg_map; const struct omap_dma_reg *reg_map;
struct omap_system_dma_plat_info *plat; struct omap_system_dma_plat_info *plat;
const struct omap_dma_config *cfg;
struct notifier_block nb;
struct omap_dma_context context;
int lch_count;
DECLARE_BITMAP(lch_bitmap, OMAP_SDMA_CHANNELS);
struct mutex lch_lock; /* for assigning logical channels */
bool legacy; bool legacy;
bool ll123_supported; bool ll123_supported;
struct dma_pool *desc_pool; struct dma_pool *desc_pool;
...@@ -376,6 +398,19 @@ static unsigned omap_dma_get_csr(struct omap_chan *c) ...@@ -376,6 +398,19 @@ static unsigned omap_dma_get_csr(struct omap_chan *c)
return val; return val;
} }
static void omap_dma_clear_lch(struct omap_dmadev *od, int lch)
{
struct omap_chan *c;
int i;
c = od->lch_map[lch];
if (!c)
return;
for (i = CSDP; i <= od->cfg->lch_end; i++)
omap_dma_chan_write(c, i, 0);
}
static void omap_dma_assign(struct omap_dmadev *od, struct omap_chan *c, static void omap_dma_assign(struct omap_dmadev *od, struct omap_chan *c,
unsigned lch) unsigned lch)
{ {
...@@ -633,6 +668,37 @@ static irqreturn_t omap_dma_irq(int irq, void *devid) ...@@ -633,6 +668,37 @@ static irqreturn_t omap_dma_irq(int irq, void *devid)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static int omap_dma_get_lch(struct omap_dmadev *od, int *lch)
{
int channel;
mutex_lock(&od->lch_lock);
channel = find_first_zero_bit(od->lch_bitmap, od->lch_count);
if (channel >= od->lch_count)
goto out_busy;
set_bit(channel, od->lch_bitmap);
mutex_unlock(&od->lch_lock);
omap_dma_clear_lch(od, channel);
*lch = channel;
return 0;
out_busy:
mutex_unlock(&od->lch_lock);
*lch = -EINVAL;
return -EBUSY;
}
static void omap_dma_put_lch(struct omap_dmadev *od, int lch)
{
omap_dma_clear_lch(od, lch);
mutex_lock(&od->lch_lock);
clear_bit(lch, od->lch_bitmap);
mutex_unlock(&od->lch_lock);
}
static int omap_dma_alloc_chan_resources(struct dma_chan *chan) static int omap_dma_alloc_chan_resources(struct dma_chan *chan)
{ {
struct omap_dmadev *od = to_omap_dma_dev(chan->device); struct omap_dmadev *od = to_omap_dma_dev(chan->device);
...@@ -644,8 +710,7 @@ static int omap_dma_alloc_chan_resources(struct dma_chan *chan) ...@@ -644,8 +710,7 @@ static int omap_dma_alloc_chan_resources(struct dma_chan *chan)
ret = omap_request_dma(c->dma_sig, "DMA engine", ret = omap_request_dma(c->dma_sig, "DMA engine",
omap_dma_callback, c, &c->dma_ch); omap_dma_callback, c, &c->dma_ch);
} else { } else {
ret = omap_request_dma(c->dma_sig, "DMA engine", NULL, NULL, ret = omap_dma_get_lch(od, &c->dma_ch);
&c->dma_ch);
} }
dev_dbg(dev, "allocating channel %u for %u\n", c->dma_ch, c->dma_sig); dev_dbg(dev, "allocating channel %u for %u\n", c->dma_ch, c->dma_sig);
...@@ -702,7 +767,11 @@ static void omap_dma_free_chan_resources(struct dma_chan *chan) ...@@ -702,7 +767,11 @@ static void omap_dma_free_chan_resources(struct dma_chan *chan)
c->channel_base = NULL; c->channel_base = NULL;
od->lch_map[c->dma_ch] = NULL; od->lch_map[c->dma_ch] = NULL;
vchan_free_chan_resources(&c->vc); vchan_free_chan_resources(&c->vc);
if (od->legacy)
omap_free_dma(c->dma_ch); omap_free_dma(c->dma_ch);
else
omap_dma_put_lch(od, c->dma_ch);
dev_dbg(od->ddev.dev, "freeing channel %u used for %u\n", c->dma_ch, dev_dbg(od->ddev.dev, "freeing channel %u used for %u\n", c->dma_ch,
c->dma_sig); c->dma_sig);
...@@ -1453,16 +1522,128 @@ static void omap_dma_free(struct omap_dmadev *od) ...@@ -1453,16 +1522,128 @@ static void omap_dma_free(struct omap_dmadev *od)
} }
} }
/* Currently only used for omap2. For omap1, also a check for lcd_dma is needed */
static int omap_dma_busy_notifier(struct notifier_block *nb,
unsigned long cmd, void *v)
{
struct omap_dmadev *od;
struct omap_chan *c;
int lch = -1;
od = container_of(nb, struct omap_dmadev, nb);
switch (cmd) {
case CPU_CLUSTER_PM_ENTER:
while (1) {
lch = find_next_bit(od->lch_bitmap, od->lch_count,
lch + 1);
if (lch >= od->lch_count)
break;
c = od->lch_map[lch];
if (!c)
continue;
if (omap_dma_chan_read(c, CCR) & CCR_ENABLE)
return NOTIFY_BAD;
}
break;
case CPU_CLUSTER_PM_ENTER_FAILED:
case CPU_CLUSTER_PM_EXIT:
break;
}
return NOTIFY_OK;
}
/*
* We are using IRQENABLE_L1, and legacy DMA code was using IRQENABLE_L0.
* As the DSP may be using IRQENABLE_L2 and L3, let's not touch those for
* now. Context save seems to be only currently needed on omap3.
*/
static void omap_dma_context_save(struct omap_dmadev *od)
{
od->context.irqenable_l0 = omap_dma_glbl_read(od, IRQENABLE_L0);
od->context.irqenable_l1 = omap_dma_glbl_read(od, IRQENABLE_L1);
od->context.ocp_sysconfig = omap_dma_glbl_read(od, OCP_SYSCONFIG);
od->context.gcr = omap_dma_glbl_read(od, GCR);
}
static void omap_dma_context_restore(struct omap_dmadev *od)
{
int i;
omap_dma_glbl_write(od, GCR, od->context.gcr);
omap_dma_glbl_write(od, OCP_SYSCONFIG, od->context.ocp_sysconfig);
omap_dma_glbl_write(od, IRQENABLE_L0, od->context.irqenable_l0);
omap_dma_glbl_write(od, IRQENABLE_L1, od->context.irqenable_l1);
/* Clear IRQSTATUS_L0 as legacy DMA code is no longer doing it */
if (od->plat->errata & DMA_ROMCODE_BUG)
omap_dma_glbl_write(od, IRQSTATUS_L0, 0);
/* Clear dma channels */
for (i = 0; i < od->lch_count; i++)
omap_dma_clear_lch(od, i);
}
/* Currently only used for omap3 */
static int omap_dma_context_notifier(struct notifier_block *nb,
unsigned long cmd, void *v)
{
struct omap_dmadev *od;
od = container_of(nb, struct omap_dmadev, nb);
switch (cmd) {
case CPU_CLUSTER_PM_ENTER:
omap_dma_context_save(od);
break;
case CPU_CLUSTER_PM_ENTER_FAILED:
case CPU_CLUSTER_PM_EXIT:
omap_dma_context_restore(od);
break;
}
return NOTIFY_OK;
}
static void omap_dma_init_gcr(struct omap_dmadev *od, int arb_rate,
int max_fifo_depth, int tparams)
{
u32 val;
/* Set only for omap2430 and later */
if (!od->cfg->rw_priority)
return;
if (max_fifo_depth == 0)
max_fifo_depth = 1;
if (arb_rate == 0)
arb_rate = 1;
val = 0xff & max_fifo_depth;
val |= (0x3 & tparams) << 12;
val |= (arb_rate & 0xff) << 16;
omap_dma_glbl_write(od, GCR, val);
}
#define OMAP_DMA_BUSWIDTHS (BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) | \ #define OMAP_DMA_BUSWIDTHS (BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) | \
BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) | \ BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) | \
BIT(DMA_SLAVE_BUSWIDTH_4_BYTES)) BIT(DMA_SLAVE_BUSWIDTH_4_BYTES))
/*
* No flags currently set for default configuration as omap1 is still
* using platform data.
*/
static const struct omap_dma_config default_cfg;
static int omap_dma_probe(struct platform_device *pdev) static int omap_dma_probe(struct platform_device *pdev)
{ {
const struct omap_dma_config *conf;
struct omap_dmadev *od; struct omap_dmadev *od;
struct resource *res; struct resource *res;
int rc, i, irq; int rc, i, irq;
u32 lch_count; u32 val;
od = devm_kzalloc(&pdev->dev, sizeof(*od), GFP_KERNEL); od = devm_kzalloc(&pdev->dev, sizeof(*od), GFP_KERNEL);
if (!od) if (!od)
...@@ -1473,9 +1654,19 @@ static int omap_dma_probe(struct platform_device *pdev) ...@@ -1473,9 +1654,19 @@ static int omap_dma_probe(struct platform_device *pdev)
if (IS_ERR(od->base)) if (IS_ERR(od->base))
return PTR_ERR(od->base); return PTR_ERR(od->base);
conf = of_device_get_match_data(&pdev->dev);
if (conf) {
od->cfg = conf;
od->plat = dev_get_platdata(&pdev->dev);
if (!od->plat)
dev_warn(&pdev->dev, "no sdma auxdata needed?\n");
} else {
od->cfg = &default_cfg;
od->plat = omap_get_plat_info(); od->plat = omap_get_plat_info();
if (!od->plat) if (!od->plat)
return -EPROBE_DEFER; return -EPROBE_DEFER;
}
od->reg_map = od->plat->reg_map; od->reg_map = od->plat->reg_map;
...@@ -1507,6 +1698,7 @@ static int omap_dma_probe(struct platform_device *pdev) ...@@ -1507,6 +1698,7 @@ static int omap_dma_probe(struct platform_device *pdev)
od->ddev.max_burst = SZ_16M - 1; /* CCEN: 24bit unsigned */ od->ddev.max_burst = SZ_16M - 1; /* CCEN: 24bit unsigned */
od->ddev.dev = &pdev->dev; od->ddev.dev = &pdev->dev;
INIT_LIST_HEAD(&od->ddev.channels); INIT_LIST_HEAD(&od->ddev.channels);
mutex_init(&od->lch_lock);
spin_lock_init(&od->lock); spin_lock_init(&od->lock);
spin_lock_init(&od->irq_lock); spin_lock_init(&od->irq_lock);
...@@ -1522,18 +1714,30 @@ static int omap_dma_probe(struct platform_device *pdev) ...@@ -1522,18 +1714,30 @@ static int omap_dma_probe(struct platform_device *pdev)
/* Number of available logical channels */ /* Number of available logical channels */
if (!pdev->dev.of_node) { if (!pdev->dev.of_node) {
lch_count = od->plat->dma_attr->lch_count; od->lch_count = od->plat->dma_attr->lch_count;
if (unlikely(!lch_count)) if (unlikely(!od->lch_count))
lch_count = OMAP_SDMA_CHANNELS; od->lch_count = OMAP_SDMA_CHANNELS;
} else if (of_property_read_u32(pdev->dev.of_node, "dma-channels", } else if (of_property_read_u32(pdev->dev.of_node, "dma-channels",
&lch_count)) { &od->lch_count)) {
dev_info(&pdev->dev, dev_info(&pdev->dev,
"Missing dma-channels property, using %u.\n", "Missing dma-channels property, using %u.\n",
OMAP_SDMA_CHANNELS); OMAP_SDMA_CHANNELS);
lch_count = OMAP_SDMA_CHANNELS; od->lch_count = OMAP_SDMA_CHANNELS;
}
/* Mask of allowed logical channels */
if (pdev->dev.of_node && !of_property_read_u32(pdev->dev.of_node,
"dma-channel-mask",
&val)) {
/* Tag channels not in mask as reserved */
val = ~val;
bitmap_from_arr32(od->lch_bitmap, &val, od->lch_count);
} }
if (od->plat->dma_attr->dev_caps & HS_CHANNELS_RESERVED)
bitmap_set(od->lch_bitmap, 0, 2);
od->lch_map = devm_kcalloc(&pdev->dev, lch_count, sizeof(*od->lch_map), od->lch_map = devm_kcalloc(&pdev->dev, od->lch_count,
sizeof(*od->lch_map),
GFP_KERNEL); GFP_KERNEL);
if (!od->lch_map) if (!od->lch_map)
return -ENOMEM; return -ENOMEM;
...@@ -1605,6 +1809,16 @@ static int omap_dma_probe(struct platform_device *pdev) ...@@ -1605,6 +1809,16 @@ static int omap_dma_probe(struct platform_device *pdev)
} }
} }
omap_dma_init_gcr(od, DMA_DEFAULT_ARB_RATE, DMA_DEFAULT_FIFO_DEPTH, 0);
if (od->cfg->needs_busy_check) {
od->nb.notifier_call = omap_dma_busy_notifier;
cpu_pm_register_notifier(&od->nb);
} else if (od->cfg->may_lose_context) {
od->nb.notifier_call = omap_dma_context_notifier;
cpu_pm_register_notifier(&od->nb);
}
dev_info(&pdev->dev, "OMAP DMA engine driver%s\n", dev_info(&pdev->dev, "OMAP DMA engine driver%s\n",
od->ll123_supported ? " (LinkedList1/2/3 supported)" : ""); od->ll123_supported ? " (LinkedList1/2/3 supported)" : "");
...@@ -1616,6 +1830,9 @@ static int omap_dma_remove(struct platform_device *pdev) ...@@ -1616,6 +1830,9 @@ static int omap_dma_remove(struct platform_device *pdev)
struct omap_dmadev *od = platform_get_drvdata(pdev); struct omap_dmadev *od = platform_get_drvdata(pdev);
int irq; int irq;
if (od->cfg->may_lose_context)
cpu_pm_unregister_notifier(&od->nb);
if (pdev->dev.of_node) if (pdev->dev.of_node)
of_dma_controller_free(pdev->dev.of_node); of_dma_controller_free(pdev->dev.of_node);
...@@ -1637,12 +1854,45 @@ static int omap_dma_remove(struct platform_device *pdev) ...@@ -1637,12 +1854,45 @@ static int omap_dma_remove(struct platform_device *pdev)
return 0; return 0;
} }
static const struct omap_dma_config omap2420_data = {
.lch_end = CCFN,
.rw_priority = true,
.needs_lch_clear = true,
.needs_busy_check = true,
};
static const struct omap_dma_config omap2430_data = {
.lch_end = CCFN,
.rw_priority = true,
.needs_lch_clear = true,
};
static const struct omap_dma_config omap3430_data = {
.lch_end = CCFN,
.rw_priority = true,
.needs_lch_clear = true,
.may_lose_context = true,
};
static const struct omap_dma_config omap3630_data = {
.lch_end = CCDN,
.rw_priority = true,
.needs_lch_clear = true,
.may_lose_context = true,
};
static const struct omap_dma_config omap4_data = {
.lch_end = CCDN,
.rw_priority = true,
.needs_lch_clear = true,
};
static const struct of_device_id omap_dma_match[] = { static const struct of_device_id omap_dma_match[] = {
{ .compatible = "ti,omap2420-sdma", }, { .compatible = "ti,omap2420-sdma", .data = &omap2420_data, },
{ .compatible = "ti,omap2430-sdma", }, { .compatible = "ti,omap2430-sdma", .data = &omap2430_data, },
{ .compatible = "ti,omap3430-sdma", }, { .compatible = "ti,omap3430-sdma", .data = &omap3430_data, },
{ .compatible = "ti,omap3630-sdma", }, { .compatible = "ti,omap3630-sdma", .data = &omap3630_data, },
{ .compatible = "ti,omap4430-sdma", }, { .compatible = "ti,omap4430-sdma", .data = &omap4_data, },
{}, {},
}; };
MODULE_DEVICE_TABLE(of, omap_dma_match); MODULE_DEVICE_TABLE(of, omap_dma_match);
......
...@@ -129,7 +129,6 @@ ...@@ -129,7 +129,6 @@
#define IS_WORD_16 BIT(0xd) #define IS_WORD_16 BIT(0xd)
#define ENABLE_16XX_MODE BIT(0xe) #define ENABLE_16XX_MODE BIT(0xe)
#define HS_CHANNELS_RESERVED BIT(0xf) #define HS_CHANNELS_RESERVED BIT(0xf)
#define DMA_ENGINE_HANDLE_IRQ BIT(0x10)
/* Defines for DMA Capabilities */ /* Defines for DMA Capabilities */
#define DMA_HAS_TRANSPARENT_CAPS (0x1 << 18) #define DMA_HAS_TRANSPARENT_CAPS (0x1 << 18)
...@@ -239,9 +238,6 @@ struct omap_dma_lch { ...@@ -239,9 +238,6 @@ struct omap_dma_lch {
void (*callback)(int lch, u16 ch_status, void *data); void (*callback)(int lch, u16 ch_status, void *data);
void *data; void *data;
long flags; long flags;
/* required for Dynamic chaining */
int prev_linked_ch;
int next_linked_ch;
int state; int state;
int chain_id; int chain_id;
int status; int status;
...@@ -303,7 +299,6 @@ extern void omap_set_dma_priority(int lch, int dst_port, int priority); ...@@ -303,7 +299,6 @@ extern void omap_set_dma_priority(int lch, int dst_port, int priority);
extern int omap_request_dma(int dev_id, const char *dev_name, extern int omap_request_dma(int dev_id, const char *dev_name,
void (*callback)(int lch, u16 ch_status, void *data), void (*callback)(int lch, u16 ch_status, void *data),
void *data, int *dma_ch); void *data, int *dma_ch);
extern void omap_enable_dma_irq(int ch, u16 irq_bits);
extern void omap_disable_dma_irq(int ch, u16 irq_bits); extern void omap_disable_dma_irq(int ch, u16 irq_bits);
extern void omap_free_dma(int ch); extern void omap_free_dma(int ch);
extern void omap_start_dma(int lch); extern void omap_start_dma(int lch);
...@@ -312,7 +307,6 @@ extern void omap_set_dma_transfer_params(int lch, int data_type, ...@@ -312,7 +307,6 @@ extern void omap_set_dma_transfer_params(int lch, int data_type,
int elem_count, int frame_count, int elem_count, int frame_count,
int sync_mode, int sync_mode,
int dma_trigger, int src_or_dst_synch); int dma_trigger, int src_or_dst_synch);
extern void omap_set_dma_write_mode(int lch, enum omap_dma_write_mode mode);
extern void omap_set_dma_channel_mode(int lch, enum omap_dma_channel_mode mode); extern void omap_set_dma_channel_mode(int lch, enum omap_dma_channel_mode mode);
extern void omap_set_dma_src_params(int lch, int src_port, int src_amode, extern void omap_set_dma_src_params(int lch, int src_port, int src_amode,
...@@ -329,22 +323,10 @@ extern void omap_set_dma_dest_data_pack(int lch, int enable); ...@@ -329,22 +323,10 @@ extern void omap_set_dma_dest_data_pack(int lch, int enable);
extern void omap_set_dma_dest_burst_mode(int lch, extern void omap_set_dma_dest_burst_mode(int lch,
enum omap_dma_burst_mode burst_mode); enum omap_dma_burst_mode burst_mode);
extern void omap_set_dma_params(int lch,
struct omap_dma_channel_params *params);
extern void omap_dma_link_lch(int lch_head, int lch_queue);
extern int omap_set_dma_callback(int lch,
void (*callback)(int lch, u16 ch_status, void *data),
void *data);
extern dma_addr_t omap_get_dma_src_pos(int lch); extern dma_addr_t omap_get_dma_src_pos(int lch);
extern dma_addr_t omap_get_dma_dst_pos(int lch); extern dma_addr_t omap_get_dma_dst_pos(int lch);
extern int omap_get_dma_active_status(int lch); extern int omap_get_dma_active_status(int lch);
extern int omap_dma_running(void); extern int omap_dma_running(void);
extern void omap_dma_set_global_params(int arb_rate, int max_fifo_depth,
int tparams);
void omap_dma_global_context_save(void);
void omap_dma_global_context_restore(void);
#if defined(CONFIG_ARCH_OMAP1) && IS_ENABLED(CONFIG_FB_OMAP) #if defined(CONFIG_ARCH_OMAP1) && IS_ENABLED(CONFIG_FB_OMAP)
#include <mach/lcd_dma.h> #include <mach/lcd_dma.h>
......
/*
* AESS IP block reset
*
* Copyright (C) 2012 Texas Instruments, Inc.
* Paul Walmsley
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation version 2.
*
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
* kind, whether express or implied; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*/
#ifndef __SOUND_AESS_H__
#define __SOUND_AESS_H__
#include <linux/kernel.h>
#include <linux/io.h>
/*
* AESS_AUTO_GATING_ENABLE_OFFSET: offset in bytes of the AESS IP
* block's AESS_AUTO_GATING_ENABLE__1 register from the IP block's
* base address
*/
#define AESS_AUTO_GATING_ENABLE_OFFSET 0x07c
/* Register bitfields in the AESS_AUTO_GATING_ENABLE__1 register */
#define AESS_AUTO_GATING_ENABLE_SHIFT 0
/**
* aess_enable_autogating - enable AESS internal autogating
* @oh: struct omap_hwmod *
*
* Enable internal autogating on the AESS. This allows the AESS to
* indicate that it is idle to the OMAP PRCM. Returns 0.
*/
static inline void aess_enable_autogating(void __iomem *base)
{
u32 v;
/* Set AESS_AUTO_GATING_ENABLE__1.ENABLE to allow idle entry */
v = 1 << AESS_AUTO_GATING_ENABLE_SHIFT;
writel(v, base + AESS_AUTO_GATING_ENABLE_OFFSET);
}
#endif /* __SOUND_AESS_H__ */
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