[meta-ti] [PATCH 2/8] linux-3.0: remove old beagleboard-specific 3.0 and 3.1rc kernel recipes

Cooper Jr., Franklin fcooper at ti.com
Mon Sep 30 07:32:02 PDT 2013


Acked-by: Franklin Cooper Jr. <fcooper at ti.com>

> -----Original Message-----
> From: meta-ti-bounces at yoctoproject.org [mailto:meta-ti-
> bounces at yoctoproject.org] On Behalf Of Denys Dmytriyenko
> Sent: Saturday, September 28, 2013 5:54 PM
> To: meta-ti at yoctoproject.org
> Subject: [meta-ti] [PATCH 2/8] linux-3.0: remove old beagleboard-specific 3.0
> and 3.1rc kernel recipes
> 
> From: Denys Dmytriyenko <denys at ti.com>
> 
> Beagleboard is supported by newer 3.2 and 3.3.7 kernel recipes.
> 
> Signed-off-by: Denys Dmytriyenko <denys at ti.com>
> ---
>  ...OMAP3-beagle-add-support-for-expansionboa.patch |  340 --
>  ...0002-HACK-OMAP3-beagle-switch-to-GPTIMER1.patch |   26 -
>  .../0003-OMAP3-beagle-HACK-add-in-1GHz-OPP.patch   |   31 -
>  .../linux/linux-3.0+3.1rc/beagleboard/defconfig    | 3517 -------------------
>  .../linux/linux-3.0+3.1rc/fixes/vout.patch         |   79 -
>  ...01-Enabling-Hwmon-driver-for-twl4030-madc.patch |   46 -
>  .../madc/0002-mfd-twl-core-enable-madc-clock.patch |   54 -
>  recipes-kernel/linux/linux-3.0+3.1rc/patch.sh      |   27 -
>  ...001-ARM-L2-Add-and-export-outer_clean_all.patch |   67 -
>  ...e-add-support-for-beagleboard-xM-revision.patch |  196 --
>  ...OMAP3-beagle-add-support-for-expansionboa.patch |  340 --
>  ...0003-HACK-OMAP3-beagle-switch-to-GPTIMER1.patch |   26 -
>  .../0004-OMAP3-beagle-HACK-add-in-1GHz-OPP.patch   |   31 -
>  ...5-omap3-Add-basic-support-for-720MHz-part.patch |  202 --
>  ...eagleboard-make-wilink-init-look-more-lik.patch |   32 -
>  ...Set-dto-to-max-value-of-14-to-avoid-SD-Ca.patch |   33 -
>  ...add-cpu-id-register-to-MAC-address-helper.patch |   89 -
>  ...BeagleBoard-Fix-up-random-or-missing-MAC-.patch |  156 -
>  ...eagleboard-fix-mmc-write-protect-pin-when.patch |   26 -
>  ...d-reinstate-usage-of-hi-speed-PLL-divider.patch |   29 -
>  .../linux/linux-3.0/beagleboard/defconfig          | 3604 --------------------
>  ...3630-PRM-add-ABB-PRM-register-definitions.patch |   93 -
>  ...P3-PM-VP-generalize-PRM-interrupt-helpers.patch |  263 --
>  ...P3-PRM-add-tranxdone-IRQ-handlers-for-ABB.patch |  202 --
>  ...P3-ABB-Adaptive-Body-Bias-structures-data.patch |  240 --
>  ...-OMAP3-OPP-add-ABB-data-to-voltage-tables.patch |  194 --
>  ...3-Voltage-add-ABB-data-to-voltage-domains.patch |   83 -
>  ...3-ABB-initialization-transition-functions.patch |  274 --
>  ...-OMAP3-Voltage-add-ABB-to-voltage-scaling.patch |  114 -
>  ...01-Enabling-Hwmon-driver-for-twl4030-madc.patch |   46 -
>  .../madc/0002-mfd-twl-core-enable-madc-clock.patch |   54 -
>  ...Undef-before-redefining-__attribute_const.patch |   31 -
>  ...llow-OPP-enumeration-to-continue-if-devic.patch |   43 -
>  ...nking-error-in-twl-common.c-for-OMAP2-3-4.patch |  129 -
>  recipes-kernel/linux/linux-3.0/patch.sh            |   29 -
>  ...-introduce-function-to-free-cpufreq-table.patch |   84 -
>  ...q-ensure-driver-initializes-after-cpufreq.patch |   28 -
>  ...PUfreq-ensure-policy-is-fully-initialized.patch |   32 -
>  .../0004-OMAP3-PM-CPUFreq-driver-for-OMAP3.patch   |  264 --
>  ...AP-PM-CPUFREQ-Fix-conditional-compilation.patch |   33 -
>  ...-cpufreq-fixup-after-new-OPP-layer-merged.patch |   34 -
>  ...q-Split-OMAP1-and-OMAP2PLUS-CPUfreq-drive.patch |  673 ----
>  ...cpufreq-Add-SMP-support-to-cater-OMAP4430.patch |  171 -
>  ...pufreq-Fix-typo-when-attempting-to-set-mp.patch |   30 -
>  ...P2-cpufreq-move-clk-name-decision-to-init.patch |   64 -
>  ...-cpufreq-deny-initialization-if-no-mpudev.patch |   64 -
>  ...012-OMAP2-cpufreq-dont-support-freq_table.patch |  129 -
>  ...3-OMAP2-cpufreq-only-supports-OPP-library.patch |   46 -
>  ...-OMAP2-cpufreq-put-clk-if-cpu_init-failed.patch |   61 -
>  .../0015-OMAP2-cpufreq-fix-freq_table-leak.patch   |   90 -
>  ...eq-Remove-superfluous-check-in-target-for.patch |   58 -
>  ...ufreq-notify-even-with-bad-boot-frequency.patch |   48 -
>  ...req-Enable-all-CPUs-in-shared-policy-mask.patch |   42 -
>  ...eq-update-lpj-with-reference-value-to-avo.patch |  121 -
>  ...egulator-supply-definitions-in-mach-omap2.patch | 1083 ------
>  ...style-supply.dev-assignments-common-in-hs.patch |  160 -
>  ...parate-init_irq-functions-to-avoid-cpu_is.patch |  802 -----
>  ...parate-timer-init-functions-to-avoid-cpu_.patch |  689 ----
>  ...05-omap-Move-dmtimer-defines-to-dmtimer.h.patch |  287 --
>  ...-subset-of-dmtimer-functions-into-inline-.patch |  323 --
>  ...7-omap2-Use-dmtimer-macros-for-clockevent.patch |  279 --
>  .../0008-omap2-Remove-gptimer_wakeup-for-now.patch |  177 -
>  ...OMAP3-SR-make-notify-independent-of-class.patch |   47 -
>  ...010-OMAP3-SR-disable-interrupt-by-default.patch |   36 -
>  ...1-OMAP3-SR-enable-disable-SR-only-on-need.patch |   40 -
>  .../0012-OMAP3-SR-fix-cosmetic-indentation.patch   |   48 -
>  ...ve-clocksource-and-timesource-and-initial.patch |  125 -
>  ...-omap2-Use-dmtimer-macros-for-clocksource.patch |  163 -
>  ...p2-Remove-omap2_gp_clockevent_set_gptimer.patch |  240 --
>  ...e-timer-gp.c-into-timer.c-to-combine-time.patch |  737 ----
>  .../0017-omap-cleanup-NAND-platform-data.patch     |  165 -
>  ...omap-board-omap3evm-Fix-compilation-error.patch |   40 -
>  .../0019-omap-mcbsp-Drop-SPI-mode-support.patch    |  311 --
>  ...map-mcbsp-Drop-in-driver-transfer-support.patch |  548 ---
>  .../voltdm/0021-omap2-fix-build-regression.patch   |   29 -
>  ...w-twl-common-for-common-TWL-configuration.patch |  200 --
>  ...common-twl6030-configuration-to-twl-commo.patch |  601 ----
>  ...ve-common-twl-configuration-to-twl-common.patch |  827 -----
>  ...common-regulator-configuration-to-twl-com.patch |  924 -----
>  ...mcbsp-Remove-rx_-tx_word_length-variables.patch |   45 -
>  .../0027-omap-mcbsp-Remove-port-number-enums.patch |   68 -
>  .../0028-OMAP-dmtimer-add-missing-include.patch    |   31 -
>  ...P2-hwmod-Fix-smart-standby-wakeup-support.patch |  130 -
>  ...4-hwmod-data-Add-MSTANDBY_SMART_WKUP-flag.patch |   61 -
>  ...-Enable-module-in-shutdown-to-access-sysc.patch |   37 -
>  ...-Do-not-write-the-enawakeup-bit-if-SYSC_H.patch |   65 -
>  ...wmod-Remove-_populate_mpu_rt_base-warning.patch |   33 -
>  ...4-OMAP2-hwmod-Fix-the-HW-reset-management.patch |   87 -
>  ...-OMAP-hwmod-Add-warnings-if-enable-failed.patch |   30 -
>  ...-Move-pr_debug-to-improve-the-readability.patch |   95 -
>  ...use-a-null-structure-record-to-terminate-.patch | 3529 -------------------
>  ...share-identical-omap_hwmod_addr_space-arr.patch | 1958 -----------
>  ...use-a-terminator-record-with-omap_hwmod_m.patch | 2904 ----------------
>  ...share-identical-omap_hwmod_mpu_irqs-array.patch | 1815 ----------
>  ...use-a-terminator-record-with-omap_hwmod_d.patch | 1382 --------
>  ...share-identical-omap_hwmod_dma_info-array.patch |  935 -----
>  ...share-identical-omap_hwmod_class-omap_hwm.patch | 1730 ----------
>  ...-data-Fix-L3-interconnect-data-order-and-.patch |  116 -
>  ...-OMAP4-hwmod-data-Remove-un-needed-parens.patch |   42 -
>  .../0046-OMAP4-hwmod-data-Fix-bad-alignement.patch |  218 --
>  ...-data-Align-interconnect-format-with-regu.patch |  154 -
>  ...48-OMAP4-clock-data-Add-sddiv-to-USB-DPLL.patch |   31 -
>  ...-data-Remove-usb_host_fs-clkdev-with-NULL.patch |   48 -
>  ...-data-Re-order-some-clock-nodes-and-struc.patch |  229 --
>  ...ck-data-Fix-max-mult-and-div-for-USB-DPLL.patch |  143 -
>  ...OMAP4-prcm-Fix-errors-in-few-defines-name.patch |  256 --
>  ...MAP4-prm-Remove-wrong-clockdomain-offsets.patch |   50 -
>  ...54-OMAP4-powerdomain-data-Fix-indentation.patch |  109 -
>  ...move-RESTORE-macros-to-avoid-access-from-.patch | 1523 ---------
>  ...6-OMAP4-prcm_mpu-Fix-indent-in-few-macros.patch |  111 -
>  ...domain-data-Fix-data-order-and-wrong-name.patch |  294 --
>  ...evice-replace-_find_by_pdev-with-to_omap_.patch |   84 -
>  ...OMAP-PM-remove-OMAP_PM_NONE-config-option.patch |   63 -
>  ...-data-Remove-McASP2-McASP3-and-MMC6-clock.patch |  178 -
>  ...MAP4-clock-data-Remove-UNIPRO-clock-nodes.patch |   99 -
>  ...62-OMAP4-hwmod-data-Modify-DSS-opt-clocks.patch |  153 -
>  ...itialise-sleep_switch-to-a-non-valid-valu.patch |   39 -
>  ...domain-data-Fix-core-mem-states-and-missi.patch |   68 -
>  ...-data-Keep-GPMC-clocks-always-enabled-and.patch |   45 -
>  ...domain-data-Remove-unsupported-MPU-powerd.patch |   44 -
>  ...AP4-hwmod-data-Change-DSS-main_clk-scheme.patch |  163 -
>  ...et-hwmod-flags-to-only-allow-16-bit-acces.patch |  133 -
>  ...ncrease-omap_i2c_dev_attr-flags-from-u8-t.patch |   46 -
>  ...AP2-Introduce-I2C-IP-versioning-constants.patch |   61 -
>  ...MAP2-create-omap-I2C-functionality-flags-.patch |   51 -
>  ...ag-all-OMAP2-hwmod-defintions-with-I2C-IP.patch |   77 -
>  ...dd-correct-functionality-flags-to-all-oma.patch |  146 -
>  ...d-fix-the-i2c-reset-timeout-during-bootup.patch |  286 --
>  ...evice-Create-clkdev-entry-for-hwmod-main_.patch |  437 ---
>  ...-data-Add-missing-divider-selection-for-a.patch |  292 --
>  ...AP4-hwmod-data-Add-clock-domain-attribute.patch |  724 ----
>  ...OMAP2-hwmod-Init-clkdm-field-at-boot-time.patch |   86 -
>  ...-Replace-CLKCTRL-absolute-address-with-of.patch |  976 ------
>  ...hwmod-Wait-the-idle-status-to-be-disabled.patch |  153 -
>  ...-Replace-RSTCTRL-absolute-address-with-of.patch |  459 ---
>  ...eplace-warm-reset-API-with-the-offset-bas.patch |  125 -
>  ...083-OMAP4-prm-Remove-deprecated-functions.patch |   81 -
>  ...wmod-data-Add-PRM-context-register-offset.patch |  630 ----
>  ...-data-Add-modulemode-entry-in-omap_hwmod-.patch |  503 ---
>  ...m-Add-two-new-APIs-for-modulemode-control.patch |   88 -
>  ...-Introduce-the-module-control-in-hwmod-co.patch |  129 -
>  ...omain-Remove-redundant-call-to-pwrdm_wait.patch |   30 -
>  ...domain-Add-2-APIs-to-control-clockdomain-.patch |  231 --
>  ...0090-OMAP2-clockdomain-add-clkdm_in_hwsup.patch |  141 -
>  ...P2-PM-idle-clkdms-only-if-already-in-idle.patch |   53 -
>  ...domain-Add-per-clkdm-lock-to-prevent-conc.patch |  264 --
>  ...-allow-per-SoC-clock-init-code-to-prevent.patch |  123 -
>  ...-Follow-the-recommended-PRCM-module-enabl.patch |  173 -
>  ...bugfs-node-to-show-the-summary-of-all-clo.patch |   84 -
>  ...hwmod-remove-unused-voltagedomain-pointer.patch |   30 -
>  ...ge-move-PRCM-mod-offets-into-VC-VP-struct.patch |  577 ----
>  ...ge-move-prm_irqst_reg-from-VP-into-voltag.patch |  203 --
>  ...ge-start-towards-a-new-voltagedomain-laye.patch |  986 ------
>  ...ltage-rename-mpu-voltagedomain-to-mpu_iva.patch |   82 -
>  ...MAP3-voltagedomain-data-add-wakeup-domain.patch |   37 -
>  ...oltage-add-scalable-flag-to-voltagedomain.patch |   93 -
>  ...domain-add-voltagedomain-to-struct-powerd.patch |   51 -
>  ...oltage-domains-and-connect-to-powerdomain.patch |  138 -
>  ...MAP3-powerdomain-data-add-voltage-domains.patch |  161 -
>  ...MAP4-powerdomain-data-add-voltage-domains.patch |  177 -
>  ...domain-add-voltage-domain-lookup-during-r.patch |   89 -
>  ...ge-keep-track-of-powerdomains-in-each-vol.patch |  200 --
>  ...ge-split-voltage-controller-VC-code-into-.patch |  666 ----
>  ...ge-move-VC-into-struct-voltagedomain-misc.patch |  544 ---
>  ...ge-enable-VC-bypass-scale-method-when-VC-.patch |   37 -
>  ...ge-split-out-voltage-processor-VP-code-in.patch |  874 -----
>  ...pport-PMICs-with-separate-voltage-and-com.patch |  109 -
>  ...RM-VP-functions-for-checking-clearing-VP-.patch |  375 --
>  ...place-transaction-done-check-clear-with-V.patch |  142 -
>  ...M-add-register-access-functions-for-VC-VP.patch |  119 -
>  ...ge-convert-to-PRM-register-access-functio.patch |  627 ----
>  ...C-cleanup-i2c-slave-address-configuration.patch |  145 -
>  ...eanup-PMIC-register-address-configuration.patch |  185 -
>  ...pass-use-fields-from-VC-struct-instead-of.patch |   42 -
>  ...-cleanup-voltage-setup-time-configuration.patch |  227 --
>  ...ve-on-onlp-ret-off-command-configuration-.patch |   83 -
>  ...AP3-VC-abstract-out-channel-configuration.patch |  267 --
>  ...ge-domain-move-PMIC-struct-from-vdd_info-.patch |  394 ---
>  ...ke-I2C-config-programmable-with-PMIC-spec.patch |  221 --
>  ...-handle-mutant-channel-config-for-OMAP4-M.patch |  168 -
>  ...e-last-nominal-voltage-setting-to-get-cur.patch |   31 -
>  ...eanup-move-VP-instance-into-voltdm-misc.-.patch |  643 ----
>  ...voltage-remove-unneeded-debugfs-interface.patch |  317 --
>  ...ruct-omap_vp_common-replace-shift-with-__.patch |  214 --
>  ...ve-SoC-specific-sys-clock-rate-retreival-.patch |  184 -
>  ...ve-timing-calculation-config-into-VP-init.patch |   94 -
>  ...eate-VP-helper-function-for-updating-erro.patch |  107 -
>  ...0134-OMAP3-VP-remove-omap_vp_runtime_data.patch |  170 -
>  ...ve-voltage-scale-function-pointer-into-st.patch |  134 -
>  ...6-OMAP-VP-Explicitly-mask-VPVOLTAGE-field.patch |   81 -
>  ...P3-VP-update_errorgain-return-error-if-VP.patch |   29 -
>  ...P3-VP-remove-unused-omap_vp_get_curr_volt.patch |   70 -
>  ...mbine-setting-init-voltage-into-common-fu.patch |  141 -
>  ...ge-rename-scale-and-reset-functions-using.patch |  141 -
>  ...ge-move-rename-curr_volt-from-vdd_info-in.patch |  106 -
>  ...AP3-voltdm-final-removal-of-omap_vdd_info.patch |  282 --
>  ...ge-rename-omap_voltage_get_nom_volt-voltd.patch |   91 -
>  ...ge-update-nominal-voltage-in-voltdm_scale.patch |   49 -
>  ...PM-TWL6030-fix-voltage-conversion-formula.patch |   85 -
>  ...AP4-PM-TWL6030-fix-uv-to-voltage-for-0x39.patch |   37 -
>  ...7-OMAP4-PM-TWL6030-address-0V-conversions.patch |   38 -
>  ...-OMAP4-PM-TWL6030-fix-ON-RET-OFF-voltages.patch |   71 -
>  .../0149-OMAP4-PM-TWL6030-add-cmd-register.patch   |   56 -
>  ...isplay-single-block-read-console-messages.patch |   28 -
>  ...-omap_device-activate-dectivate-latency-m.patch |   49 -
>  ...dd-bootarg-for-selecting-svideo-or-compos.patch |   75 -
>  ...iminate-noisey-uncorrectable-error-messag.patch |   28 -
>  .../sakoman/0005-video-add-timings-for-hd720.patch |   27 -
>  ...-smsc911x-return-ENODEV-if-device-is-not-.patch |   29 -
>  ...ut-touchscreen-ads7846-return-ENODEV-if-d.patch |   45 -
>  ...08-Revert-omap2_mcspi-Flush-posted-writes.patch |   27 -
>  ...-threaded-IRQ-remove-IRQ-enable-in-interr.patch |   57 -
>  ...0-rtc-twl-Fix-registration-vs.-init-order.patch |  122 -
>  ...Enable-audio-capture-by-default-for-twl40.patch |   27 -
>  ...odecs-twl4030-Turn-on-mic-bias-by-default.patch |   25 -
>  ...l4030-move-clock-input-selection-prior-to.patch |   39 -
>  ...l-add-support-for-backup-battery-recharge.patch |   57 -
>  ...001-ARM-L2-Add-and-export-outer_clean_all.patch |   67 -
>  ...ix-build-break-caused-by-update_mode-remo.patch |   44 -
>  ...-beagleboard-add-bbtoys-ulcd-lite-support.patch |  235 --
>  ...eagleboard-add-support-for-loopthrough-ex.patch |   61 -
>  ...add-initial-support-for-WS2801-controller.patch |  242 --
>  .../usb/0001-Fix-sprz319-erratum-2.1.patch         |  210 --
>  recipes-kernel/linux/linux_3.0.bb                  |  234 --
>  recipes-kernel/linux/linux_3.1.bb                  |   33 -
>  225 files changed, 60457 deletions(-)
>  delete mode 100644 recipes-kernel/linux/linux-3.0+3.1rc/beagle/0001-
> UNFINISHED-OMAP3-beagle-add-support-for-expansionboa.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0+3.1rc/beagle/0002-HACK-
> OMAP3-beagle-switch-to-GPTIMER1.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0+3.1rc/beagle/0003-
> OMAP3-beagle-HACK-add-in-1GHz-OPP.patch
>  delete mode 100644 recipes-kernel/linux/linux-
> 3.0+3.1rc/beagleboard/defconfig
>  delete mode 100644 recipes-kernel/linux/linux-3.0+3.1rc/fixes/vout.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0+3.1rc/madc/0001-
> Enabling-Hwmon-driver-for-twl4030-madc.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0+3.1rc/madc/0002-mfd-twl-
> core-enable-madc-clock.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0+3.1rc/patch.sh
>  delete mode 100644 recipes-kernel/linux/linux-3.0+3.1rc/sgx/0001-ARM-L2-
> Add-and-export-outer_clean_all.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/beagle/0001-OMAP3-
> beagle-add-support-for-beagleboard-xM-revision.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/beagle/0002-UNFINISHED-
> OMAP3-beagle-add-support-for-expansionboa.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/beagle/0003-HACK-
> OMAP3-beagle-switch-to-GPTIMER1.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/beagle/0004-OMAP3-
> beagle-HACK-add-in-1GHz-OPP.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/beagle/0005-omap3-Add-
> basic-support-for-720MHz-part.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/beagle/0006-ARM-OMAP2-
> beagleboard-make-wilink-init-look-more-lik.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/beagle/0007-
> omap_hsmmc-Set-dto-to-max-value-of-14-to-avoid-SD-Ca.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/beagle/0008-OMAP2-add-
> cpu-id-register-to-MAC-address-helper.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/beagle/0009-HACK-
> OMAP2-BeagleBoard-Fix-up-random-or-missing-MAC-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/beagle/0010-ARM-OMAP2-
> beagleboard-fix-mmc-write-protect-pin-when.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/beagle/0011-beagleboard-
> reinstate-usage-of-hi-speed-PLL-divider.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/beagleboard/defconfig
>  delete mode 100644 recipes-kernel/linux/linux-3.0/bias/0001-OMAP3630-
> PRM-add-ABB-PRM-register-definitions.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/bias/0002-OMAP3-PM-VP-
> generalize-PRM-interrupt-helpers.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/bias/0003-OMAP3-PRM-
> add-tranxdone-IRQ-handlers-for-ABB.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/bias/0004-OMAP3-ABB-
> Adaptive-Body-Bias-structures-data.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/bias/0005-OMAP3-OPP-
> add-ABB-data-to-voltage-tables.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/bias/0006-OMAP3-Voltage-
> add-ABB-data-to-voltage-domains.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/bias/0007-OMAP3-ABB-
> initialization-transition-functions.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/bias/0008-OMAP3-Voltage-
> add-ABB-to-voltage-scaling.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/madc/0001-Enabling-
> Hwmon-driver-for-twl4030-madc.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/madc/0002-mfd-twl-core-
> enable-madc-clock.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/misc/0001-compiler.h-
> Undef-before-redefining-__attribute_const.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/misc/0002-OMAP2-OPP-
> allow-OPP-enumeration-to-continue-if-devic.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/omap4/0001-OMAP-Fix-
> linking-error-in-twl-common.c-for-OMAP2-3-4.patch
>  delete mode 100755 recipes-kernel/linux/linux-3.0/patch.sh
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0001-PM-
> OPP-introduce-function-to-free-cpufreq-table.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0002-
> OMAP-CPUfreq-ensure-driver-initializes-after-cpufreq.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0003-
> OMAP-CPUfreq-ensure-policy-is-fully-initialized.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0004-
> OMAP3-PM-CPUFreq-driver-for-OMAP3.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0005-
> OMAP-PM-CPUFREQ-Fix-conditional-compilation.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0006-
> cpufreq-fixup-after-new-OPP-layer-merged.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0007-
> OMAP-cpufreq-Split-OMAP1-and-OMAP2PLUS-CPUfreq-drive.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0008-
> OMAP2PLUS-cpufreq-Add-SMP-support-to-cater-OMAP4430.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0009-
> OMAP2PLUS-cpufreq-Fix-typo-when-attempting-to-set-mp.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0010-
> OMAP2-cpufreq-move-clk-name-decision-to-init.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0011-
> OMAP2-cpufreq-deny-initialization-if-no-mpudev.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0012-
> OMAP2-cpufreq-dont-support-freq_table.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0013-
> OMAP2-cpufreq-only-supports-OPP-library.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0014-
> OMAP2-cpufreq-put-clk-if-cpu_init-failed.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0015-
> OMAP2-cpufreq-fix-freq_table-leak.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0016-
> OMAP2-CPUfreq-Remove-superfluous-check-in-target-for.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0017-
> OMAP2-cpufreq-notify-even-with-bad-boot-frequency.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0018-
> OMAP2-cpufreq-Enable-all-CPUs-in-shared-policy-mask.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0019-
> OMAP2-CPUfreq-update-lpj-with-reference-value-to-avo.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0001-
> cleanup-regulator-supply-definitions-in-mach-omap2.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0002-
> Remove-old-style-supply.dev-assignments-common-in-hs.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0003-
> omap-Use-separate-init_irq-functions-to-avoid-cpu_is.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0004-
> omap-Set-separate-timer-init-functions-to-avoid-cpu_.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0005-
> omap-Move-dmtimer-defines-to-dmtimer.h.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0006-
> omap-Make-a-subset-of-dmtimer-functions-into-inline-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0007-
> omap2-Use-dmtimer-macros-for-clockevent.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0008-
> omap2-Remove-gptimer_wakeup-for-now.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0009-
> OMAP3-SR-make-notify-independent-of-class.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0010-
> OMAP3-SR-disable-interrupt-by-default.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0011-
> OMAP3-SR-enable-disable-SR-only-on-need.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0012-
> OMAP3-SR-fix-cosmetic-indentation.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0013-
> omap2-Reserve-clocksource-and-timesource-and-initial.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0014-
> omap2-Use-dmtimer-macros-for-clocksource.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0015-
> omap2-Remove-omap2_gp_clockevent_set_gptimer.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0016-
> omap2-Rename-timer-gp.c-into-timer.c-to-combine-time.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0017-
> omap-cleanup-NAND-platform-data.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0018-
> omap-board-omap3evm-Fix-compilation-error.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0019-
> omap-mcbsp-Drop-SPI-mode-support.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0020-
> omap-mcbsp-Drop-in-driver-transfer-support.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0021-
> omap2-fix-build-regression.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0022-
> OMAP-New-twl-common-for-common-TWL-configuration.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0023-
> OMAP4-Move-common-twl6030-configuration-to-twl-commo.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0024-
> OMAP3-Move-common-twl-configuration-to-twl-common.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0025-
> OMAP3-Move-common-regulator-configuration-to-twl-com.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0026-
> omap-mcbsp-Remove-rx_-tx_word_length-variables.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0027-
> omap-mcbsp-Remove-port-number-enums.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0028-
> OMAP-dmtimer-add-missing-include.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0029-
> OMAP2-hwmod-Fix-smart-standby-wakeup-support.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0030-
> OMAP4-hwmod-data-Add-MSTANDBY_SMART_WKUP-flag.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0031-
> OMAP2-hwmod-Enable-module-in-shutdown-to-access-sysc.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0032-
> OMAP2-hwmod-Do-not-write-the-enawakeup-bit-if-SYSC_H.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0033-
> OMAP2-hwmod-Remove-_populate_mpu_rt_base-warning.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0034-
> OMAP2-hwmod-Fix-the-HW-reset-management.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0035-
> OMAP-hwmod-Add-warnings-if-enable-failed.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0036-
> OMAP-hwmod-Move-pr_debug-to-improve-the-readability.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0037-
> omap_hwmod-use-a-null-structure-record-to-terminate-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0038-
> omap_hwmod-share-identical-omap_hwmod_addr_space-arr.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0039-
> omap_hwmod-use-a-terminator-record-with-omap_hwmod_m.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0040-
> omap_hwmod-share-identical-omap_hwmod_mpu_irqs-array.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0041-
> omap_hwmod-use-a-terminator-record-with-omap_hwmod_d.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0042-
> omap_hwmod-share-identical-omap_hwmod_dma_info-array.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0043-
> omap_hwmod-share-identical-omap_hwmod_class-omap_hwm.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0044-
> OMAP4-hwmod-data-Fix-L3-interconnect-data-order-and-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0045-
> OMAP4-hwmod-data-Remove-un-needed-parens.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0046-
> OMAP4-hwmod-data-Fix-bad-alignement.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0047-
> OMAP4-hwmod-data-Align-interconnect-format-with-regu.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0048-
> OMAP4-clock-data-Add-sddiv-to-USB-DPLL.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0049-
> OMAP4-clock-data-Remove-usb_host_fs-clkdev-with-NULL.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0050-
> OMAP4-clock-data-Re-order-some-clock-nodes-and-struc.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0051-
> OMAP4-clock-data-Fix-max-mult-and-div-for-USB-DPLL.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0052-
> OMAP4-prcm-Fix-errors-in-few-defines-name.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0053-
> OMAP4-prm-Remove-wrong-clockdomain-offsets.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0054-
> OMAP4-powerdomain-data-Fix-indentation.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0055-
> OMAP4-cm-Remove-RESTORE-macros-to-avoid-access-from-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0056-
> OMAP4-prcm_mpu-Fix-indent-in-few-macros.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0057-
> OMAP4-clockdomain-data-Fix-data-order-and-wrong-name.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0058-
> OMAP-omap_device-replace-_find_by_pdev-with-to_omap_.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0059-
> OMAP-PM-remove-OMAP_PM_NONE-config-option.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0060-
> OMAP4-clock-data-Remove-McASP2-McASP3-and-MMC6-clock.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0061-
> OMAP4-clock-data-Remove-UNIPRO-clock-nodes.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0062-
> OMAP4-hwmod-data-Modify-DSS-opt-clocks.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0063-
> OMAP2-PM-Initialise-sleep_switch-to-a-non-valid-valu.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0064-
> OMAP4-powerdomain-data-Fix-core-mem-states-and-missi.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0065-
> OMAP4-clock-data-Keep-GPMC-clocks-always-enabled-and.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0066-
> OMAP4-powerdomain-data-Remove-unsupported-MPU-powerd.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0067-
> OMAP4-hwmod-data-Change-DSS-main_clk-scheme.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0068-I2C-
> OMAP2-Set-hwmod-flags-to-only-allow-16-bit-acces.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0069-I2C-
> OMAP2-increase-omap_i2c_dev_attr-flags-from-u8-t.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0070-I2C-
> OMAP2-Introduce-I2C-IP-versioning-constants.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0071-I2C-
> OMAP1-OMAP2-create-omap-I2C-functionality-flags-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0072-I2C-
> OMAP2-Tag-all-OMAP2-hwmod-defintions-with-I2C-IP.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0073-I2C-
> OMAP2-add-correct-functionality-flags-to-all-oma.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0074-
> OMAP-hwmod-fix-the-i2c-reset-timeout-during-bootup.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0075-
> OMAP-omap_device-Create-clkdev-entry-for-hwmod-main_.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0076-
> OMAP4-clock-data-Add-missing-divider-selection-for-a.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0077-
> OMAP4-hwmod-data-Add-clock-domain-attribute.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0078-
> OMAP2-hwmod-Init-clkdm-field-at-boot-time.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0079-
> OMAP4-hwmod-Replace-CLKCTRL-absolute-address-with-of.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0080-
> OMAP-hwmod-Wait-the-idle-status-to-be-disabled.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0081-
> OMAP4-hwmod-Replace-RSTCTRL-absolute-address-with-of.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0082-
> OMAP4-prm-Replace-warm-reset-API-with-the-offset-bas.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0083-
> OMAP4-prm-Remove-deprecated-functions.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0084-
> OMAP4-hwmod-data-Add-PRM-context-register-offset.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0085-
> OMAP4-hwmod-data-Add-modulemode-entry-in-omap_hwmod-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0086-
> OMAP4-cm-Add-two-new-APIs-for-modulemode-control.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0087-
> OMAP4-hwmod-Introduce-the-module-control-in-hwmod-co.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0088-
> OMAP-clockdomain-Remove-redundant-call-to-pwrdm_wait.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0089-
> OMAP2-clockdomain-Add-2-APIs-to-control-clockdomain-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0090-
> OMAP2-clockdomain-add-clkdm_in_hwsup.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0091-
> OMAP2-PM-idle-clkdms-only-if-already-in-idle.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0092-
> OMAP2-clockdomain-Add-per-clkdm-lock-to-prevent-conc.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0093-
> OMAP2-clock-allow-per-SoC-clock-init-code-to-prevent.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0094-
> OMAP2-hwmod-Follow-the-recommended-PRCM-module-enabl.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0095-
> OMAP-Add-debugfs-node-to-show-the-summary-of-all-clo.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0096-
> OMAP2-hwmod-remove-unused-voltagedomain-pointer.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0097-
> OMAP2-voltage-move-PRCM-mod-offets-into-VC-VP-struct.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0098-
> OMAP2-voltage-move-prm_irqst_reg-from-VP-into-voltag.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0099-
> OMAP2-voltage-start-towards-a-new-voltagedomain-laye.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0100-
> OMAP3-voltage-rename-mpu-voltagedomain-to-mpu_iva.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0101-
> OMAP3-voltagedomain-data-add-wakeup-domain.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0102-
> OMAP3-voltage-add-scalable-flag-to-voltagedomain.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0103-
> OMAP2-powerdomain-add-voltagedomain-to-struct-powerd.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0104-
> OMAP2-add-voltage-domains-and-connect-to-powerdomain.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0105-
> OMAP3-powerdomain-data-add-voltage-domains.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0106-
> OMAP4-powerdomain-data-add-voltage-domains.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0107-
> OMAP2-powerdomain-add-voltage-domain-lookup-during-r.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0108-
> OMAP2-voltage-keep-track-of-powerdomains-in-each-vol.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0109-
> OMAP2-voltage-split-voltage-controller-VC-code-into-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0110-
> OMAP2-voltage-move-VC-into-struct-voltagedomain-misc.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0111-
> OMAP2-voltage-enable-VC-bypass-scale-method-when-VC-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0112-
> OMAP2-voltage-split-out-voltage-processor-VP-code-in.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0113-
> OMAP2-VC-support-PMICs-with-separate-voltage-and-com.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0114-
> OMAP2-add-PRM-VP-functions-for-checking-clearing-VP-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0115-
> OMAP3-VP-replace-transaction-done-check-clear-with-V.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0116-
> OMAP2-PRM-add-register-access-functions-for-VC-VP.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0117-
> OMAP3-voltage-convert-to-PRM-register-access-functio.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0118-
> OMAP3-VC-cleanup-i2c-slave-address-configuration.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0119-
> OMAP3-VC-cleanup-PMIC-register-address-configuration.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0120-
> OMAP3-VC-bypass-use-fields-from-VC-struct-instead-of.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0121-
> OMAP3-VC-cleanup-voltage-setup-time-configuration.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0122-
> OMAP3-VC-move-on-onlp-ret-off-command-configuration-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0123-
> OMAP3-VC-abstract-out-channel-configuration.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0124-
> OMAP3-voltage-domain-move-PMIC-struct-from-vdd_info-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0125-
> OMAP3-VC-make-I2C-config-programmable-with-PMIC-spec.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0126-
> OMAP3-PM-VC-handle-mutant-channel-config-for-OMAP4-M.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0127-
> OMAP3-VC-use-last-nominal-voltage-setting-to-get-cur.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0128-
> OMAP3-VP-cleanup-move-VP-instance-into-voltdm-misc.-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0129-
> OMAP3-voltage-remove-unneeded-debugfs-interface.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0130-
> OMAP3-VP-struct-omap_vp_common-replace-shift-with-__.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0131-
> OMAP3-VP-move-SoC-specific-sys-clock-rate-retreival-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0132-
> OMAP3-VP-move-timing-calculation-config-into-VP-init.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0133-
> OMAP3-VP-create-VP-helper-function-for-updating-erro.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0134-
> OMAP3-VP-remove-omap_vp_runtime_data.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0135-
> OMAP3-VP-move-voltage-scale-function-pointer-into-st.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0136-
> OMAP-VP-Explicitly-mask-VPVOLTAGE-field.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0137-
> OMAP3-VP-update_errorgain-return-error-if-VP.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0138-
> OMAP3-VP-remove-unused-omap_vp_get_curr_volt.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0139-
> OMAP3-VP-combine-setting-init-voltage-into-common-fu.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0140-
> OMAP3-voltage-rename-scale-and-reset-functions-using.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0141-
> OMAP3-voltage-move-rename-curr_volt-from-vdd_info-in.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0142-
> OMAP3-voltdm-final-removal-of-omap_vdd_info.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0143-
> OMAP3-voltage-rename-omap_voltage_get_nom_volt-voltd.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0144-
> OMAP3-voltage-update-nominal-voltage-in-voltdm_scale.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0145-
> OMAP4-PM-TWL6030-fix-voltage-conversion-formula.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0146-
> OMAP4-PM-TWL6030-fix-uv-to-voltage-for-0x39.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0147-
> OMAP4-PM-TWL6030-address-0V-conversions.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0148-
> OMAP4-PM-TWL6030-fix-ON-RET-OFF-voltages.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0149-
> OMAP4-PM-TWL6030-add-cmd-register.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0001-mmc-don-
> t-display-single-block-read-console-messages.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0002-omap-
> Change-omap_device-activate-dectivate-latency-m.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0003-OMAP-
> DSS2-add-bootarg-for-selecting-svideo-or-compos.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0004-mtd-nand-
> Eliminate-noisey-uncorrectable-error-messag.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0005-video-add-
> timings-for-hd720.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0006-drivers-net-
> smsc911x-return-ENODEV-if-device-is-not-.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0007-drivers-
> input-touchscreen-ads7846-return-ENODEV-if-d.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0008-Revert-
> omap2_mcspi-Flush-posted-writes.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0009-rtc-twl-Use-
> threaded-IRQ-remove-IRQ-enable-in-interr.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0010-rtc-twl-Fix-
> registration-vs.-init-order.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0011-soc-codecs-
> Enable-audio-capture-by-default-for-twl40.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0012-soc-codecs-
> twl4030-Turn-on-mic-bias-by-default.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0013-omap-
> mmc-twl4030-move-clock-input-selection-prior-to.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sakoman/0014-rtc-twl-
> add-support-for-backup-battery-recharge.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/sgx/0001-ARM-L2-Add-
> and-export-outer_clean_all.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/ulcd/0001-OMAP_VOUT-
> Fix-build-break-caused-by-update_mode-remo.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/ulcd/0002-WIP-omap-
> beagleboard-add-bbtoys-ulcd-lite-support.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/ulcd/0003-ARM-OMAP2-
> beagleboard-add-support-for-loopthrough-ex.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/ulcd/0004-LEDS-add-initial-
> support-for-WS2801-controller.patch
>  delete mode 100644 recipes-kernel/linux/linux-3.0/usb/0001-Fix-sprz319-
> erratum-2.1.patch
>  delete mode 100644 recipes-kernel/linux/linux_3.0.bb
>  delete mode 100644 recipes-kernel/linux/linux_3.1.bb
> 
> diff --git a/recipes-kernel/linux/linux-3.0+3.1rc/beagle/0001-UNFINISHED-
> OMAP3-beagle-add-support-for-expansionboa.patch b/recipes-
> kernel/linux/linux-3.0+3.1rc/beagle/0001-UNFINISHED-OMAP3-beagle-add-
> support-for-expansionboa.patch
> deleted file mode 100644
> index 5d25cf0..0000000
> --- a/recipes-kernel/linux/linux-3.0+3.1rc/beagle/0001-UNFINISHED-OMAP3-
> beagle-add-support-for-expansionboa.patch
> +++ /dev/null
> @@ -1,340 +0,0 @@
> -From 3721255965a94417996df6f2402a288aa09cb5b2 Mon Sep 17 00:00:00
> 2001
> -From: Koen Kooi <koen at dominion.thruhere.net>
> -Date: Thu, 21 Jul 2011 14:29:42 +0200
> -Subject: [PATCH 1/3] UNFINISHED: OMAP3: beagle: add support for
> expansionboards
> -
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c |  266
> +++++++++++++++++++++++++++++++
> - 1 files changed, 266 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 32f5f89..f26a9a8 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -21,6 +21,7 @@
> - #include <linux/io.h>
> - #include <linux/leds.h>
> - #include <linux/gpio.h>
> -+#include <linux/irq.h>
> - #include <linux/input.h>
> - #include <linux/gpio_keys.h>
> - #include <linux/opp.h>
> -@@ -156,6 +157,167 @@ static void __init omap3_beagle_init_rev(void)
> - 	}
> - }
> -
> -+char expansionboard_name[16];
> -+
> -+#if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE)
> -+#include <linux/regulator/fixed.h>
> -+#include <linux/wl12xx.h>
> -+
> -+#define OMAP_BEAGLE_WLAN_EN_GPIO    (139)
> -+#define OMAP_BEAGLE_BT_EN_GPIO      (138)
> -+#define OMAP_BEAGLE_WLAN_IRQ_GPIO   (137)
> -+#define OMAP_BEAGLE_FM_EN_BT_WU     (136)
> -+
> -+struct wl12xx_platform_data omap_beagle_wlan_data __initdata = {
> -+	.irq = OMAP_GPIO_IRQ(OMAP_BEAGLE_WLAN_IRQ_GPIO),
> -+	.board_ref_clock = 2, /* 38.4 MHz */
> -+};
> -+
> -+static int gpios[] = {OMAP_BEAGLE_BT_EN_GPIO,
> OMAP_BEAGLE_FM_EN_BT_WU, -1};
> -+static struct platform_device wl12xx_device = {
> -+		.name		= "kim",
> -+		.id			= -1,
> -+		.dev.platform_data = &gpios,
> -+};
> -+
> -+static struct omap2_hsmmc_info mmcbbt[] = {
> -+ 	{
> -+ 		.mmc		= 1,
> -+ 		.caps		= MMC_CAP_4_BIT_DATA |
> MMC_CAP_8_BIT_DATA,
> -+ 		.gpio_wp	= 29,
> -+ 	},
> -+	{
> -+		.name		= "wl1271",
> -+		.mmc		= 2,
> -+		.caps		= MMC_CAP_4_BIT_DATA |
> MMC_CAP_POWER_OFF_CARD,
> -+		.gpio_wp	= -EINVAL,
> -+		.gpio_cd	= -EINVAL,
> -+		.ocr_mask	= MMC_VDD_165_195,
> -+		.nonremovable	= true,
> -+	},
> -+ 	{}	/* Terminator */
> -+ };
> -+
> -+static struct regulator_consumer_supply beagle_vmmc2_supply =
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1");
> -+
> -+static struct regulator_init_data beagle_vmmc2 = {
> -+	.constraints = {
> -+		.min_uV			= 1850000,
> -+		.max_uV			= 1850000,
> -+		.apply_uV		= true,
> -+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> -+					| REGULATOR_MODE_STANDBY,
> -+		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> -+					| REGULATOR_CHANGE_STATUS,
> -+	},
> -+	.num_consumer_supplies = 1,
> -+	.consumer_supplies = &beagle_vmmc2_supply,
> -+};
> -+
> -+static struct fixed_voltage_config beagle_vwlan = {
> -+	.supply_name = "vwl1271",
> -+	.microvolts = 1800000,  /* 1.8V */
> -+	.gpio = OMAP_BEAGLE_WLAN_EN_GPIO,
> -+	.startup_delay = 70000, /* 70ms */
> -+	.enable_high = 1,
> -+	.enabled_at_boot = 0,
> -+	.init_data = &beagle_vmmc2,
> -+};
> -+
> -+static struct platform_device omap_vwlan_device = {
> -+	.name           = "reg-fixed-voltage",
> -+	.id             = 1,
> -+	.dev = {
> -+		.platform_data = &beagle_vwlan,
> -+	},
> -+};
> -+#endif
> -+
> -+#if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
> -+
> -+#include <plat/mcspi.h>
> -+#include <linux/spi/spi.h>
> -+
> -+#define OMAP3BEAGLE_GPIO_ENC28J60_IRQ 157
> -+
> -+static struct omap2_mcspi_device_config enc28j60_spi_chip_info = {
> -+	.turbo_mode	= 0,
> -+	.single_channel	= 1,	/* 0: slave, 1: master */
> -+};
> -+
> -+static struct spi_board_info omap3beagle_zippy_spi_board_info[] __initdata
> = {
> -+	{
> -+		.modalias		= "enc28j60",
> -+		.bus_num		= 4,
> -+		.chip_select		= 0,
> -+		.max_speed_hz		= 20000000,
> -+		.controller_data	= &enc28j60_spi_chip_info,
> -+	},
> -+};
> -+
> -+static void __init omap3beagle_enc28j60_init(void)
> -+{
> -+	if ((gpio_request(OMAP3BEAGLE_GPIO_ENC28J60_IRQ,
> "ENC28J60_IRQ") == 0) &&
> -+	    (gpio_direction_input(OMAP3BEAGLE_GPIO_ENC28J60_IRQ) == 0)) {
> -+		gpio_export(OMAP3BEAGLE_GPIO_ENC28J60_IRQ, 0);
> -+		omap3beagle_zippy_spi_board_info[0].irq	=
> OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_ENC28J60_IRQ);
> -+		irq_set_irq_type(omap3beagle_zippy_spi_board_info[0].irq,
> IRQ_TYPE_EDGE_FALLING);
> -+	} else {
> -+		printk(KERN_ERR "could not obtain gpio for
> ENC28J60_IRQ\n");
> -+		return;
> -+	}
> -+
> -+	spi_register_board_info(omap3beagle_zippy_spi_board_info,
> -+			ARRAY_SIZE(omap3beagle_zippy_spi_board_info));
> -+}
> -+
> -+#else
> -+static inline void __init omap3beagle_enc28j60_init(void) { return; }
> -+#endif
> -+
> -+#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
> -+
> -+#include <plat/mcspi.h>
> -+#include <linux/spi/spi.h>
> -+
> -+#define OMAP3BEAGLE_GPIO_KS8851_IRQ 157
> -+
> -+static struct omap2_mcspi_device_config ks8851_spi_chip_info = {
> -+	.turbo_mode	= 0,
> -+	.single_channel	= 1,	/* 0: slave, 1: master */
> -+};
> -+
> -+static struct spi_board_info omap3beagle_zippy2_spi_board_info[]
> __initdata = {
> -+	{
> -+		.modalias		= "ks8851",
> -+		.bus_num		= 4,
> -+		.chip_select		= 0,
> -+		.max_speed_hz		= 36000000,
> -+		.controller_data	= &ks8851_spi_chip_info,
> -+	},
> -+};
> -+
> -+static void __init omap3beagle_ks8851_init(void)
> -+{
> -+	if ((gpio_request(OMAP3BEAGLE_GPIO_KS8851_IRQ, "KS8851_IRQ")
> == 0) &&
> -+	    (gpio_direction_input(OMAP3BEAGLE_GPIO_KS8851_IRQ) == 0)) {
> -+		gpio_export(OMAP3BEAGLE_GPIO_KS8851_IRQ, 0);
> -+		omap3beagle_zippy2_spi_board_info[0].irq	=
> OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_KS8851_IRQ);
> -+		irq_set_irq_type(omap3beagle_zippy2_spi_board_info[0].irq,
> IRQ_TYPE_EDGE_FALLING);
> -+	} else {
> -+		printk(KERN_ERR "could not obtain gpio for KS8851_IRQ\n");
> -+		return;
> -+	}
> -+
> -+	spi_register_board_info(omap3beagle_zippy2_spi_board_info,
> -+
> 	ARRAY_SIZE(omap3beagle_zippy2_spi_board_info));
> -+}
> -+
> -+#else
> -+static inline void __init omap3beagle_ks8851_init(void) { return; }
> -+#endif
> -+
> - static struct mtd_partition omap3beagle_nand_partitions[] = {
> - 	/* All the partition sizes are listed in terms of NAND block size */
> - 	{
> -@@ -254,6 +416,12 @@ static struct omap2_hsmmc_info mmc[] = {
> - 		.caps		= MMC_CAP_4_BIT_DATA |
> MMC_CAP_8_BIT_DATA,
> - 		.gpio_wp	= -EINVAL,
> - 	},
> -+	{
> -+		.mmc		= 2,
> -+		.caps       = MMC_CAP_4_BIT_DATA,
> -+		.transceiver	= true,
> -+		.ocr_mask	= 0x00100000,	/* 3.3V */
> -+	},
> - 	{}	/* Terminator */
> - };
> -
> -@@ -277,7 +445,15 @@ static int beagle_twl_gpio_setup(struct device *dev,
> - 	mmc[0].gpio_wp = beagle_config.mmc1_gpio_wp;
> - 	/* gpio + 0 is "mmc0_cd" (input/IRQ) */
> - 	mmc[0].gpio_cd = gpio + 0;
> -+#if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE)
> -+	if(!strcmp(expansionboard_name, "bbtoys-wifi")) {
> -+		omap2_hsmmc_init(mmcbbt);
> -+	} else {
> -+		omap2_hsmmc_init(mmc);
> -+	}
> -+#else
> - 	omap2_hsmmc_init(mmc);
> -+#endif
> -
> - 	/*
> - 	 * TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM
> active
> -@@ -375,6 +551,19 @@ static struct i2c_board_info __initdata
> beagle_i2c_eeprom[] = {
> -        },
> - };
> -
> -+#if defined(CONFIG_RTC_DRV_DS1307) || \
> -+	defined(CONFIG_RTC_DRV_DS1307_MODULE)
> -+
> -+static struct i2c_board_info __initdata beagle_i2c2_zippy[] = {
> -+	{
> -+		I2C_BOARD_INFO("eeprom", 0x50),
> -+		I2C_BOARD_INFO("ds1307", 0x68),
> -+	},
> -+};
> -+#else
> -+static struct i2c_board_info __initdata beagle_i2c2_zippy[] = {};
> -+#endif
> -+
> - static int __init omap3_beagle_i2c_init(void)
> - {
> - 	omap3_pmic_get_config(&beagle_twldata,
> -@@ -479,6 +668,15 @@ static struct omap_board_mux board_mux[]
> __initdata = {
> - };
> - #endif
> -
> -+static int __init expansionboard_setup(char *str)
> -+{
> -+	if (!str)
> -+		return -EINVAL;
> -+	strncpy(expansionboard_name, str, 16);
> -+	printk(KERN_INFO "Beagle expansionboard: %s\n",
> expansionboard_name);
> -+	return 0;
> -+}
> -+
> - static void __init beagle_opp_init(void)
> - {
> - 	int r = 0;
> -@@ -542,6 +740,72 @@ static void __init omap3_beagle_init(void)
> - 	/* REVISIT leave DVI powered down until it's needed ... */
> - 	gpio_request_one(170, GPIOF_OUT_INIT_HIGH, "DVI_nPD");
> -
> -+	if(!strcmp(expansionboard_name, "zippy"))
> -+	{
> -+		printk(KERN_INFO "Beagle expansionboard: initializing
> enc28j60\n");
> -+		omap3beagle_enc28j60_init();
> -+		printk(KERN_INFO "Beagle expansionboard: assigning GPIO
> 141 and 162 to MMC1\n");
> -+		mmc[1].gpio_wp = 141;
> -+		mmc[1].gpio_cd = 162;
> -+		printk(KERN_INFO "Beagle expansionboard: registering I2C2
> for zippy board\n");
> -+		omap_register_i2c_bus(2, 400,  beagle_i2c2_zippy,
> -+
> 	ARRAY_SIZE(beagle_i2c2_zippy));
> -+
> -+	}
> -+
> -+	if(!strcmp(expansionboard_name, "zippy2"))
> -+	{
> -+		printk(KERN_INFO "Beagle expansionboard: initializing
> ks_8851\n");
> -+		omap3beagle_ks8851_init();
> -+		printk(KERN_INFO "Beagle expansionboard: assigning GPIO
> 141 and 162 to MMC1\n");
> -+		mmc[1].gpio_wp = 141;
> -+		mmc[1].gpio_cd = 162;
> -+		printk(KERN_INFO "Beagle expansionboard: registering I2C2
> for zippy2 board\n");
> -+		omap_register_i2c_bus(2, 400,  beagle_i2c2_zippy,
> -+
> 	ARRAY_SIZE(beagle_i2c2_zippy));
> -+	}
> -+
> -+	if(!strcmp(expansionboard_name, "trainer"))
> -+	{
> -+		printk(KERN_INFO "Beagle expansionboard: exporting GPIOs
> 130-141,162 to userspace\n");
> -+		gpio_request(130, "sysfs");
> -+		gpio_export(130, 1);
> -+		gpio_request(131, "sysfs");
> -+		gpio_export(131, 1);
> -+		gpio_request(132, "sysfs");
> -+		gpio_export(132, 1);
> -+		gpio_request(133, "sysfs");
> -+		gpio_export(133, 1);
> -+		gpio_request(134, "sysfs");
> -+		gpio_export(134, 1);
> -+		gpio_request(135, "sysfs");
> -+		gpio_export(135, 1);
> -+		gpio_request(136, "sysfs");
> -+		gpio_export(136, 1);
> -+		gpio_request(137, "sysfs");
> -+		gpio_export(137, 1);
> -+		gpio_request(138, "sysfs");
> -+		gpio_export(138, 1);
> -+		gpio_request(139, "sysfs");
> -+		gpio_export(139, 1);
> -+		gpio_request(140, "sysfs");
> -+		gpio_export(140, 1);
> -+		gpio_request(141, "sysfs");
> -+		gpio_export(141, 1);
> -+		gpio_request(162, "sysfs");
> -+		gpio_export(162, 1);
> -+	}
> -+
> -+	if(!strcmp(expansionboard_name, "bbtoys-wifi"))
> -+	{
> -+		if (wl12xx_set_platform_data(&omap_beagle_wlan_data))
> -+			pr_err("error setting wl12xx data\n");
> -+		printk(KERN_INFO "Beagle expansionboard: registering wl12xx
> bt platform device\n");
> -+		platform_device_register(&wl12xx_device);
> -+		printk(KERN_INFO "Beagle expansionboard: registering wl12xx
> wifi platform device\n");
> -+		platform_device_register(&omap_vwlan_device);
> -+	}
> -+
> - 	usb_musb_init(NULL);
> - 	usbhs_init(&usbhs_bdata);
> - 	omap_nand_flash_init(NAND_BUSWIDTH_16,
> omap3beagle_nand_partitions,
> -@@ -558,6 +822,8 @@ static void __init omap3_beagle_init(void)
> - 	beagle_opp_init();
> - }
> -
> -+early_param("buddy", expansionboard_setup);
> -+
> - MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
> - 	/* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */
> - 	.boot_params	= 0x80000100,
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0+3.1rc/beagle/0002-HACK-OMAP3-
> beagle-switch-to-GPTIMER1.patch b/recipes-kernel/linux/linux-
> 3.0+3.1rc/beagle/0002-HACK-OMAP3-beagle-switch-to-GPTIMER1.patch
> deleted file mode 100644
> index ebc1456..0000000
> --- a/recipes-kernel/linux/linux-3.0+3.1rc/beagle/0002-HACK-OMAP3-beagle-
> switch-to-GPTIMER1.patch
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -From 6bdb8e890f8e5d11be3c4953d7d10f4a5f160cd4 Mon Sep 17 00:00:00
> 2001
> -From: Koen Kooi <koen at dominion.thruhere.net>
> -Date: Thu, 21 Jul 2011 12:59:20 +0200
> -Subject: [PATCH 2/3] HACK: OMAP3: beagle: switch to GPTIMER1
> -
> -Breaks with B3 and older due to clock noise
> -
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index f26a9a8..a04f5a0 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -832,5 +832,5 @@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle
> Board")
> - 	.init_early	= omap3_beagle_init_early,
> - 	.init_irq	= omap3_beagle_init_irq,
> - 	.init_machine	= omap3_beagle_init,
> --	.timer		= &omap3_secure_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0+3.1rc/beagle/0003-OMAP3-beagle-
> HACK-add-in-1GHz-OPP.patch b/recipes-kernel/linux/linux-
> 3.0+3.1rc/beagle/0003-OMAP3-beagle-HACK-add-in-1GHz-OPP.patch
> deleted file mode 100644
> index defd517..0000000
> --- a/recipes-kernel/linux/linux-3.0+3.1rc/beagle/0003-OMAP3-beagle-HACK-
> add-in-1GHz-OPP.patch
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -From 6667757c5f8a473b9cbbe5f6d64eee65a52aad54 Mon Sep 17 00:00:00
> 2001
> -From: Koen Kooi <koen at dominion.thruhere.net>
> -Date: Wed, 25 May 2011 08:57:40 +0200
> -Subject: [PATCH 3/3] OMAP3: beagle: HACK! add in 1GHz OPP
> -
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c |    2 ++
> - 1 files changed, 2 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index a04f5a0..5e1d9f9 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -701,11 +701,13 @@ static void __init beagle_opp_init(void)
> - 		/* Enable MPU 1GHz and lower opps */
> - 		dev = &mh->od->pdev.dev;
> - 		r = opp_enable(dev, 800000000);
> -+		r |= opp_enable(dev, 1000000000);
> - 		/* TODO: MPU 1GHz needs SR and ABB */
> -
> - 		/* Enable IVA 800MHz and lower opps */
> - 		dev = &dh->od->pdev.dev;
> - 		r |= opp_enable(dev, 660000000);
> -+		r |= opp_enable(dev, 800000000);
> - 		/* TODO: DSP 800MHz needs SR and ABB */
> - 		if (r) {
> - 			pr_err("%s: failed to enable higher opp %d\n",
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0+3.1rc/beagleboard/defconfig
> b/recipes-kernel/linux/linux-3.0+3.1rc/beagleboard/defconfig
> deleted file mode 100644
> index 1942725..0000000
> --- a/recipes-kernel/linux/linux-3.0+3.1rc/beagleboard/defconfig
> +++ /dev/null
> @@ -1,3517 +0,0 @@
> -#
> -# Automatically generated make config: don't edit
> -# Linux/arm 2.6.39 Kernel Configuration
> -# Sun Jun  5 11:03:19 2011
> -#
> -CONFIG_ARM=y
> -CONFIG_HAVE_PWM=y
> -CONFIG_SYS_SUPPORTS_APM_EMULATION=y
> -CONFIG_HAVE_SCHED_CLOCK=y
> -CONFIG_GENERIC_GPIO=y
> -# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
> -CONFIG_GENERIC_CLOCKEVENTS=y
> -CONFIG_KTIME_SCALAR=y
> -CONFIG_HAVE_PROC_CPU=y
> -CONFIG_STACKTRACE_SUPPORT=y
> -CONFIG_HAVE_LATENCYTOP_SUPPORT=y
> -CONFIG_LOCKDEP_SUPPORT=y
> -CONFIG_TRACE_IRQFLAGS_SUPPORT=y
> -CONFIG_HARDIRQS_SW_RESEND=y
> -CONFIG_GENERIC_IRQ_PROBE=y
> -CONFIG_RWSEM_GENERIC_SPINLOCK=y
> -CONFIG_ARCH_HAS_CPUFREQ=y
> -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
> -CONFIG_GENERIC_HWEIGHT=y
> -CONFIG_GENERIC_CALIBRATE_DELAY=y
> -CONFIG_NEED_DMA_MAP_STATE=y
> -CONFIG_VECTORS_BASE=0xffff0000
> -# CONFIG_ARM_PATCH_PHYS_VIRT is not set
> -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
> -CONFIG_CONSTRUCTORS=y
> -CONFIG_HAVE_IRQ_WORK=y
> -CONFIG_IRQ_WORK=y
> -
> -#
> -# General setup
> -#
> -CONFIG_EXPERIMENTAL=y
> -CONFIG_BROKEN_ON_SMP=y
> -CONFIG_INIT_ENV_ARG_LIMIT=32
> -CONFIG_CROSS_COMPILE=""
> -CONFIG_LOCALVERSION=""
> -# CONFIG_LOCALVERSION_AUTO is not set
> -CONFIG_HAVE_KERNEL_GZIP=y
> -CONFIG_HAVE_KERNEL_LZMA=y
> -CONFIG_HAVE_KERNEL_LZO=y
> -CONFIG_KERNEL_GZIP=y
> -# CONFIG_KERNEL_LZMA is not set
> -# CONFIG_KERNEL_LZO is not set
> -CONFIG_SWAP=y
> -CONFIG_SYSVIPC=y
> -CONFIG_SYSVIPC_SYSCTL=y
> -CONFIG_POSIX_MQUEUE=y
> -CONFIG_POSIX_MQUEUE_SYSCTL=y
> -CONFIG_BSD_PROCESS_ACCT=y
> -# CONFIG_BSD_PROCESS_ACCT_V3 is not set
> -CONFIG_FHANDLE=y
> -CONFIG_TASKSTATS=y
> -CONFIG_TASK_DELAY_ACCT=y
> -CONFIG_TASK_XACCT=y
> -CONFIG_TASK_IO_ACCOUNTING=y
> -# CONFIG_AUDIT is not set
> -CONFIG_HAVE_GENERIC_HARDIRQS=y
> -
> -#
> -# IRQ subsystem
> -#
> -CONFIG_GENERIC_HARDIRQS=y
> -CONFIG_HAVE_SPARSE_IRQ=y
> -CONFIG_GENERIC_IRQ_SHOW=y
> -# CONFIG_SPARSE_IRQ is not set
> -
> -#
> -# RCU Subsystem
> -#
> -CONFIG_TINY_RCU=y
> -# CONFIG_PREEMPT_RCU is not set
> -# CONFIG_RCU_TRACE is not set
> -# CONFIG_TREE_RCU_TRACE is not set
> -CONFIG_IKCONFIG=y
> -CONFIG_IKCONFIG_PROC=y
> -CONFIG_LOG_BUF_SHIFT=16
> -CONFIG_CGROUPS=y
> -# CONFIG_CGROUP_DEBUG is not set
> -CONFIG_CGROUP_NS=y
> -CONFIG_CGROUP_FREEZER=y
> -CONFIG_CGROUP_DEVICE=y
> -CONFIG_CPUSETS=y
> -CONFIG_PROC_PID_CPUSET=y
> -CONFIG_CGROUP_CPUACCT=y
> -CONFIG_RESOURCE_COUNTERS=y
> -CONFIG_CGROUP_MEM_RES_CTLR=y
> -CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
> -CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
> -CONFIG_CGROUP_PERF=y
> -CONFIG_CGROUP_SCHED=y
> -CONFIG_FAIR_GROUP_SCHED=y
> -CONFIG_RT_GROUP_SCHED=y
> -CONFIG_BLK_CGROUP=y
> -# CONFIG_DEBUG_BLK_CGROUP is not set
> -CONFIG_NAMESPACES=y
> -CONFIG_UTS_NS=y
> -CONFIG_IPC_NS=y
> -CONFIG_USER_NS=y
> -CONFIG_PID_NS=y
> -CONFIG_NET_NS=y
> -CONFIG_SCHED_AUTOGROUP=y
> -CONFIG_MM_OWNER=y
> -# CONFIG_SYSFS_DEPRECATED is not set
> -# CONFIG_RELAY is not set
> -CONFIG_BLK_DEV_INITRD=y
> -CONFIG_INITRAMFS_SOURCE=""
> -CONFIG_RD_GZIP=y
> -CONFIG_RD_BZIP2=y
> -CONFIG_RD_LZMA=y
> -CONFIG_RD_XZ=y
> -CONFIG_RD_LZO=y
> -CONFIG_CC_OPTIMIZE_FOR_SIZE=y
> -CONFIG_SYSCTL=y
> -CONFIG_ANON_INODES=y
> -CONFIG_EXPERT=y
> -CONFIG_UID16=y
> -# CONFIG_SYSCTL_SYSCALL is not set
> -CONFIG_KALLSYMS=y
> -# CONFIG_KALLSYMS_ALL is not set
> -# CONFIG_KALLSYMS_EXTRA_PASS is not set
> -CONFIG_HOTPLUG=y
> -CONFIG_PRINTK=y
> -CONFIG_BUG=y
> -CONFIG_ELF_CORE=y
> -CONFIG_BASE_FULL=y
> -CONFIG_FUTEX=y
> -CONFIG_EPOLL=y
> -CONFIG_SIGNALFD=y
> -CONFIG_TIMERFD=y
> -CONFIG_EVENTFD=y
> -CONFIG_SHMEM=y
> -CONFIG_AIO=y
> -CONFIG_EMBEDDED=y
> -CONFIG_HAVE_PERF_EVENTS=y
> -CONFIG_PERF_USE_VMALLOC=y
> -
> -#
> -# Kernel Performance Events And Counters
> -#
> -CONFIG_PERF_EVENTS=y
> -# CONFIG_PERF_COUNTERS is not set
> -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
> -CONFIG_VM_EVENT_COUNTERS=y
> -# CONFIG_COMPAT_BRK is not set
> -CONFIG_SLAB=y
> -# CONFIG_SLUB is not set
> -# CONFIG_SLOB is not set
> -CONFIG_PROFILING=y
> -CONFIG_OPROFILE=y
> -CONFIG_HAVE_OPROFILE=y
> -# CONFIG_KPROBES is not set
> -CONFIG_HAVE_KPROBES=y
> -CONFIG_HAVE_KRETPROBES=y
> -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
> -CONFIG_HAVE_CLK=y
> -CONFIG_HAVE_DMA_API_DEBUG=y
> -CONFIG_HAVE_HW_BREAKPOINT=y
> -
> -#
> -# GCOV-based kernel profiling
> -#
> -# CONFIG_GCOV_KERNEL is not set
> -CONFIG_HAVE_GENERIC_DMA_COHERENT=y
> -CONFIG_SLABINFO=y
> -CONFIG_RT_MUTEXES=y
> -CONFIG_BASE_SMALL=0
> -CONFIG_MODULES=y
> -CONFIG_MODULE_FORCE_LOAD=y
> -CONFIG_MODULE_UNLOAD=y
> -CONFIG_MODULE_FORCE_UNLOAD=y
> -CONFIG_MODVERSIONS=y
> -CONFIG_MODULE_SRCVERSION_ALL=y
> -CONFIG_BLOCK=y
> -CONFIG_LBDAF=y
> -CONFIG_BLK_DEV_BSG=y
> -CONFIG_BLK_DEV_INTEGRITY=y
> -CONFIG_BLK_DEV_THROTTLING=y
> -
> -#
> -# IO Schedulers
> -#
> -CONFIG_IOSCHED_NOOP=y
> -CONFIG_IOSCHED_DEADLINE=y
> -CONFIG_IOSCHED_CFQ=y
> -CONFIG_CFQ_GROUP_IOSCHED=y
> -# CONFIG_DEFAULT_DEADLINE is not set
> -CONFIG_DEFAULT_CFQ=y
> -# CONFIG_DEFAULT_NOOP is not set
> -CONFIG_DEFAULT_IOSCHED="cfq"
> -# CONFIG_INLINE_SPIN_TRYLOCK is not set
> -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
> -# CONFIG_INLINE_SPIN_LOCK is not set
> -# CONFIG_INLINE_SPIN_LOCK_BH is not set
> -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
> -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
> -CONFIG_INLINE_SPIN_UNLOCK=y
> -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
> -CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
> -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
> -# CONFIG_INLINE_READ_TRYLOCK is not set
> -# CONFIG_INLINE_READ_LOCK is not set
> -# CONFIG_INLINE_READ_LOCK_BH is not set
> -# CONFIG_INLINE_READ_LOCK_IRQ is not set
> -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
> -CONFIG_INLINE_READ_UNLOCK=y
> -# CONFIG_INLINE_READ_UNLOCK_BH is not set
> -CONFIG_INLINE_READ_UNLOCK_IRQ=y
> -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
> -# CONFIG_INLINE_WRITE_TRYLOCK is not set
> -# CONFIG_INLINE_WRITE_LOCK is not set
> -# CONFIG_INLINE_WRITE_LOCK_BH is not set
> -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
> -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
> -CONFIG_INLINE_WRITE_UNLOCK=y
> -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
> -CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
> -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
> -# CONFIG_MUTEX_SPIN_ON_OWNER is not set
> -CONFIG_FREEZER=y
> -
> -#
> -# System Type
> -#
> -CONFIG_MMU=y
> -# CONFIG_ARCH_INTEGRATOR is not set
> -# CONFIG_ARCH_REALVIEW is not set
> -# CONFIG_ARCH_VERSATILE is not set
> -# CONFIG_ARCH_VEXPRESS is not set
> -# CONFIG_ARCH_AT91 is not set
> -# CONFIG_ARCH_BCMRING is not set
> -# CONFIG_ARCH_CLPS711X is not set
> -# CONFIG_ARCH_CNS3XXX is not set
> -# CONFIG_ARCH_GEMINI is not set
> -# CONFIG_ARCH_EBSA110 is not set
> -# CONFIG_ARCH_EP93XX is not set
> -# CONFIG_ARCH_FOOTBRIDGE is not set
> -# CONFIG_ARCH_MXC is not set
> -# CONFIG_ARCH_MXS is not set
> -# CONFIG_ARCH_STMP3XXX is not set
> -# CONFIG_ARCH_NETX is not set
> -# CONFIG_ARCH_H720X is not set
> -# CONFIG_ARCH_IOP13XX is not set
> -# CONFIG_ARCH_IOP32X is not set
> -# CONFIG_ARCH_IOP33X is not set
> -# CONFIG_ARCH_IXP23XX is not set
> -# CONFIG_ARCH_IXP2000 is not set
> -# CONFIG_ARCH_IXP4XX is not set
> -# CONFIG_ARCH_DOVE is not set
> -# CONFIG_ARCH_KIRKWOOD is not set
> -# CONFIG_ARCH_LOKI is not set
> -# CONFIG_ARCH_LPC32XX is not set
> -# CONFIG_ARCH_MV78XX0 is not set
> -# CONFIG_ARCH_ORION5X is not set
> -# CONFIG_ARCH_MMP is not set
> -# CONFIG_ARCH_KS8695 is not set
> -# CONFIG_ARCH_NS9XXX is not set
> -# CONFIG_ARCH_W90X900 is not set
> -# CONFIG_ARCH_NUC93X is not set
> -# CONFIG_ARCH_TEGRA is not set
> -# CONFIG_ARCH_PNX4008 is not set
> -# CONFIG_ARCH_PXA is not set
> -# CONFIG_ARCH_MSM is not set
> -# CONFIG_ARCH_SHMOBILE is not set
> -# CONFIG_ARCH_RPC is not set
> -# CONFIG_ARCH_SA1100 is not set
> -# CONFIG_ARCH_S3C2410 is not set
> -# CONFIG_ARCH_S3C64XX is not set
> -# CONFIG_ARCH_S5P64X0 is not set
> -# CONFIG_ARCH_S5P6442 is not set
> -# CONFIG_ARCH_S5PC100 is not set
> -# CONFIG_ARCH_S5PV210 is not set
> -# CONFIG_ARCH_EXYNOS4 is not set
> -# CONFIG_ARCH_SHARK is not set
> -# CONFIG_ARCH_TCC_926 is not set
> -# CONFIG_ARCH_U300 is not set
> -# CONFIG_ARCH_U8500 is not set
> -# CONFIG_ARCH_NOMADIK is not set
> -# CONFIG_ARCH_DAVINCI is not set
> -CONFIG_ARCH_OMAP=y
> -# CONFIG_PLAT_SPEAR is not set
> -# CONFIG_ARCH_VT8500 is not set
> -# CONFIG_GPIO_PCA953X is not set
> -# CONFIG_KEYBOARD_GPIO_POLLED is not set
> -
> -#
> -# TI OMAP Common Features
> -#
> -CONFIG_ARCH_OMAP_OTG=y
> -# CONFIG_ARCH_OMAP1 is not set
> -CONFIG_ARCH_OMAP2PLUS=y
> -
> -#
> -# OMAP Feature Selections
> -#
> -CONFIG_OMAP_SMARTREFLEX=y
> -CONFIG_OMAP_SMARTREFLEX_CLASS3=y
> -CONFIG_OMAP_RESET_CLOCKS=y
> -# CONFIG_OMAP_MUX is not set
> -CONFIG_OMAP_MCBSP=y
> -CONFIG_OMAP_MBOX_FWK=m
> -CONFIG_OMAP_MBOX_KFIFO_SIZE=256
> -CONFIG_OMAP_IOMMU=y
> -CONFIG_OMAP_IOMMU_DEBUG=m
> -CONFIG_OMAP_32K_TIMER=y
> -# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
> -CONFIG_OMAP_32K_TIMER_HZ=128
> -CONFIG_OMAP_DM_TIMER=y
> -# CONFIG_OMAP_PM_NONE is not set
> -CONFIG_OMAP_PM_NOOP=y
> -
> -#
> -# TI OMAP2/3/4 Specific Features
> -#
> -CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
> -# CONFIG_ARCH_OMAP2 is not set
> -CONFIG_ARCH_OMAP3=y
> -CONFIG_ARCH_OMAP4=y
> -CONFIG_SOC_OMAP3430=y
> -# CONFIG_SOC_OMAPTI816X is not set
> -CONFIG_OMAP_PACKAGE_CBB=y
> -
> -#
> -# OMAP Board Type
> -#
> -CONFIG_MACH_OMAP3_BEAGLE=y
> -# CONFIG_MACH_DEVKIT8000 is not set
> -# CONFIG_MACH_OMAP_LDP is not set
> -# CONFIG_MACH_OMAP3530_LV_SOM is not set
> -# CONFIG_MACH_OMAP3_TORPEDO is not set
> -CONFIG_MACH_OVERO=y
> -CONFIG_MACH_OMAP3EVM=y
> -# CONFIG_MACH_OMAP3517EVM is not set
> -# CONFIG_MACH_CRANEBOARD is not set
> -# CONFIG_MACH_OMAP3_PANDORA is not set
> -CONFIG_MACH_OMAP3_TOUCHBOOK=y
> -# CONFIG_MACH_OMAP_3430SDP is not set
> -# CONFIG_MACH_NOKIA_RM680 is not set
> -# CONFIG_MACH_NOKIA_RX51 is not set
> -CONFIG_MACH_OMAP_ZOOM2=y
> -# CONFIG_MACH_OMAP_ZOOM3 is not set
> -# CONFIG_MACH_CM_T35 is not set
> -# CONFIG_MACH_CM_T3517 is not set
> -# CONFIG_MACH_IGEP0020 is not set
> -# CONFIG_MACH_IGEP0030 is not set
> -# CONFIG_MACH_SBC3530 is not set
> -# CONFIG_MACH_OMAP_3630SDP is not set
> -# CONFIG_OMAP3_EMU is not set
> -# CONFIG_OMAP3_SDRC_AC_TIMING is not set
> -
> -#
> -# System MMU
> -#
> -
> -#
> -# Processor Type
> -#
> -CONFIG_CPU_V7=y
> -CONFIG_CPU_32v6K=y
> -CONFIG_CPU_32v7=y
> -CONFIG_CPU_ABRT_EV7=y
> -CONFIG_CPU_PABRT_V7=y
> -CONFIG_CPU_CACHE_V7=y
> -CONFIG_CPU_CACHE_VIPT=y
> -CONFIG_CPU_COPY_V6=y
> -CONFIG_CPU_TLB_V7=y
> -CONFIG_CPU_HAS_ASID=y
> -CONFIG_CPU_CP15=y
> -CONFIG_CPU_CP15_MMU=y
> -
> -#
> -# Processor Features
> -#
> -CONFIG_ARM_THUMB=y
> -CONFIG_ARM_THUMBEE=y
> -# CONFIG_SWP_EMULATE is not set
> -# CONFIG_CPU_ICACHE_DISABLE is not set
> -# CONFIG_CPU_DCACHE_DISABLE is not set
> -# CONFIG_CPU_BPREDICT_DISABLE is not set
> -CONFIG_ARM_L1_CACHE_SHIFT_6=y
> -CONFIG_ARM_L1_CACHE_SHIFT=6
> -CONFIG_ARM_DMA_MEM_BUFFERABLE=y
> -CONFIG_ARM_ERRATA_430973=y
> -# CONFIG_ARM_ERRATA_458693 is not set
> -# CONFIG_ARM_ERRATA_460075 is not set
> -# CONFIG_ARM_ERRATA_743622 is not set
> -# CONFIG_ARM_ERRATA_754322 is not set
> -
> -#
> -# Bus support
> -#
> -# CONFIG_PCI_SYSCALL is not set
> -# CONFIG_ARCH_SUPPORTS_MSI is not set
> -# CONFIG_PCCARD is not set
> -
> -#
> -# Kernel Features
> -#
> -CONFIG_TICK_ONESHOT=y
> -CONFIG_NO_HZ=y
> -CONFIG_HIGH_RES_TIMERS=y
> -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
> -CONFIG_VMSPLIT_3G=y
> -# CONFIG_VMSPLIT_2G is not set
> -# CONFIG_VMSPLIT_1G is not set
> -CONFIG_PAGE_OFFSET=0xC0000000
> -# CONFIG_PREEMPT_NONE is not set
> -CONFIG_PREEMPT_VOLUNTARY=y
> -# CONFIG_PREEMPT is not set
> -CONFIG_HZ=128
> -# CONFIG_THUMB2_KERNEL is not set
> -CONFIG_AEABI=y
> -# CONFIG_OABI_COMPAT is not set
> -CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
> -# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
> -# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
> -# CONFIG_HIGHMEM is not set
> -CONFIG_SELECT_MEMORY_MODEL=y
> -CONFIG_FLATMEM_MANUAL=y
> -CONFIG_FLATMEM=y
> -CONFIG_FLAT_NODE_MEM_MAP=y
> -CONFIG_HAVE_MEMBLOCK=y
> -CONFIG_PAGEFLAGS_EXTENDED=y
> -CONFIG_SPLIT_PTLOCK_CPUS=4
> -CONFIG_COMPACTION=y
> -CONFIG_MIGRATION=y
> -# CONFIG_PHYS_ADDR_T_64BIT is not set
> -CONFIG_ZONE_DMA_FLAG=0
> -CONFIG_VIRT_TO_BUS=y
> -# CONFIG_KSM is not set
> -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
> -CONFIG_NEED_PER_CPU_KM=y
> -CONFIG_FORCE_MAX_ZONEORDER=11
> -CONFIG_LEDS=y
> -CONFIG_ALIGNMENT_TRAP=y
> -# CONFIG_UACCESS_WITH_MEMCPY is not set
> -# CONFIG_SECCOMP is not set
> -# CONFIG_CC_STACKPROTECTOR is not set
> -# CONFIG_DEPRECATED_PARAM_STRUCT is not set
> -
> -#
> -# Boot options
> -#
> -CONFIG_ZBOOT_ROM_TEXT=0x0
> -CONFIG_ZBOOT_ROM_BSS=0x0
> -CONFIG_CMDLINE=" debug "
> -# CONFIG_CMDLINE_FORCE is not set
> -# CONFIG_XIP_KERNEL is not set
> -CONFIG_KEXEC=y
> -CONFIG_ATAGS_PROC=y
> -# CONFIG_CRASH_DUMP is not set
> -CONFIG_AUTO_ZRELADDR=y
> -
> -#
> -# CPU Power Management
> -#
> -CONFIG_CPU_FREQ=y
> -CONFIG_CPU_FREQ_TABLE=y
> -# CONFIG_CPU_FREQ_DEBUG is not set
> -CONFIG_CPU_FREQ_STAT=y
> -CONFIG_CPU_FREQ_STAT_DETAILS=y
> -CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
> -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
> -# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
> -# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
> -# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
> -# CONFIG_CPU_FREQ_DEFAULT_GOV_HOTPLUG is not set
> -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
> -CONFIG_CPU_FREQ_GOV_POWERSAVE=y
> -CONFIG_CPU_FREQ_GOV_USERSPACE=y
> -CONFIG_CPU_FREQ_GOV_ONDEMAND=y
> -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
> -CONFIG_CPU_IDLE=y
> -CONFIG_CPU_IDLE_GOV_LADDER=y
> -CONFIG_CPU_IDLE_GOV_MENU=y
> -
> -#
> -# Floating point emulation
> -#
> -
> -#
> -# At least one emulation must be selected
> -#
> -CONFIG_VFP=y
> -CONFIG_VFPv3=y
> -CONFIG_NEON=y
> -
> -#
> -# Userspace binary formats
> -#
> -CONFIG_BINFMT_ELF=y
> -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
> -CONFIG_HAVE_AOUT=y
> -CONFIG_BINFMT_AOUT=m
> -CONFIG_BINFMT_MISC=y
> -
> -#
> -# Power management options
> -#
> -CONFIG_SUSPEND=y
> -CONFIG_SUSPEND_FREEZER=y
> -CONFIG_PM_SLEEP=y
> -CONFIG_PM_RUNTIME=y
> -CONFIG_PM=y
> -CONFIG_PM_DEBUG=y
> -# CONFIG_PM_VERBOSE is not set
> -# CONFIG_PM_ADVANCED_DEBUG is not set
> -# CONFIG_PM_TEST_SUSPEND is not set
> -CONFIG_CAN_PM_TRACE=y
> -# CONFIG_APM_EMULATION is not set
> -CONFIG_ARCH_HAS_OPP=y
> -CONFIG_PM_OPP=y
> -CONFIG_ARCH_SUSPEND_POSSIBLE=y
> -CONFIG_NET=y
> -
> -#
> -# Networking options
> -#
> -CONFIG_PACKET=y
> -CONFIG_UNIX=y
> -CONFIG_XFRM=y
> -# CONFIG_XFRM_USER is not set
> -# CONFIG_XFRM_SUB_POLICY is not set
> -# CONFIG_XFRM_MIGRATE is not set
> -# CONFIG_XFRM_STATISTICS is not set
> -CONFIG_XFRM_IPCOMP=m
> -CONFIG_NET_KEY=y
> -# CONFIG_NET_KEY_MIGRATE is not set
> -CONFIG_INET=y
> -# CONFIG_IP_MULTICAST is not set
> -# CONFIG_IP_ADVANCED_ROUTER is not set
> -CONFIG_IP_ROUTE_CLASSID=y
> -CONFIG_IP_PNP=y
> -CONFIG_IP_PNP_DHCP=y
> -CONFIG_IP_PNP_BOOTP=y
> -CONFIG_IP_PNP_RARP=y
> -CONFIG_NET_IPIP=m
> -CONFIG_NET_IPGRE_DEMUX=m
> -CONFIG_NET_IPGRE=m
> -# CONFIG_ARPD is not set
> -# CONFIG_SYN_COOKIES is not set
> -CONFIG_INET_AH=m
> -CONFIG_INET_ESP=m
> -CONFIG_INET_IPCOMP=m
> -CONFIG_INET_XFRM_TUNNEL=m
> -CONFIG_INET_TUNNEL=m
> -CONFIG_INET_XFRM_MODE_TRANSPORT=y
> -CONFIG_INET_XFRM_MODE_TUNNEL=y
> -CONFIG_INET_XFRM_MODE_BEET=y
> -CONFIG_INET_LRO=y
> -CONFIG_INET_DIAG=m
> -CONFIG_INET_TCP_DIAG=m
> -CONFIG_TCP_CONG_ADVANCED=y
> -CONFIG_TCP_CONG_BIC=m
> -CONFIG_TCP_CONG_CUBIC=y
> -CONFIG_TCP_CONG_WESTWOOD=m
> -CONFIG_TCP_CONG_HTCP=m
> -CONFIG_TCP_CONG_HSTCP=m
> -CONFIG_TCP_CONG_HYBLA=m
> -CONFIG_TCP_CONG_VEGAS=m
> -CONFIG_TCP_CONG_SCALABLE=m
> -CONFIG_TCP_CONG_LP=m
> -CONFIG_TCP_CONG_VENO=m
> -CONFIG_TCP_CONG_YEAH=m
> -CONFIG_TCP_CONG_ILLINOIS=m
> -CONFIG_DEFAULT_CUBIC=y
> -# CONFIG_DEFAULT_RENO is not set
> -CONFIG_DEFAULT_TCP_CONG="cubic"
> -# CONFIG_TCP_MD5SIG is not set
> -CONFIG_IPV6=m
> -# CONFIG_IPV6_PRIVACY is not set
> -# CONFIG_IPV6_ROUTER_PREF is not set
> -# CONFIG_IPV6_OPTIMISTIC_DAD is not set
> -CONFIG_INET6_AH=m
> -CONFIG_INET6_ESP=m
> -CONFIG_INET6_IPCOMP=m
> -CONFIG_IPV6_MIP6=m
> -CONFIG_INET6_XFRM_TUNNEL=m
> -CONFIG_INET6_TUNNEL=m
> -CONFIG_INET6_XFRM_MODE_TRANSPORT=m
> -CONFIG_INET6_XFRM_MODE_TUNNEL=m
> -CONFIG_INET6_XFRM_MODE_BEET=m
> -CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
> -CONFIG_IPV6_SIT=m
> -# CONFIG_IPV6_SIT_6RD is not set
> -CONFIG_IPV6_NDISC_NODETYPE=y
> -CONFIG_IPV6_TUNNEL=m
> -CONFIG_IPV6_MULTIPLE_TABLES=y
> -CONFIG_IPV6_SUBTREES=y
> -CONFIG_IPV6_MROUTE=y
> -CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
> -# CONFIG_IPV6_PIMSM_V2 is not set
> -# CONFIG_NETWORK_SECMARK is not set
> -CONFIG_NETWORK_PHY_TIMESTAMPING=y
> -CONFIG_NETFILTER=y
> -# CONFIG_NETFILTER_DEBUG is not set
> -CONFIG_NETFILTER_ADVANCED=y
> -CONFIG_BRIDGE_NETFILTER=y
> -
> -#
> -# Core Netfilter Configuration
> -#
> -CONFIG_NETFILTER_NETLINK=m
> -CONFIG_NETFILTER_NETLINK_QUEUE=m
> -CONFIG_NETFILTER_NETLINK_LOG=m
> -CONFIG_NF_CONNTRACK=m
> -CONFIG_NF_CONNTRACK_MARK=y
> -CONFIG_NF_CONNTRACK_ZONES=y
> -CONFIG_NF_CONNTRACK_EVENTS=y
> -CONFIG_NF_CONNTRACK_TIMESTAMP=y
> -CONFIG_NF_CT_PROTO_DCCP=m
> -CONFIG_NF_CT_PROTO_GRE=m
> -CONFIG_NF_CT_PROTO_SCTP=m
> -CONFIG_NF_CT_PROTO_UDPLITE=m
> -CONFIG_NF_CONNTRACK_AMANDA=m
> -CONFIG_NF_CONNTRACK_FTP=m
> -CONFIG_NF_CONNTRACK_H323=m
> -CONFIG_NF_CONNTRACK_IRC=m
> -CONFIG_NF_CONNTRACK_BROADCAST=m
> -CONFIG_NF_CONNTRACK_NETBIOS_NS=m
> -CONFIG_NF_CONNTRACK_SNMP=m
> -CONFIG_NF_CONNTRACK_PPTP=m
> -CONFIG_NF_CONNTRACK_SANE=m
> -CONFIG_NF_CONNTRACK_SIP=m
> -CONFIG_NF_CONNTRACK_TFTP=m
> -CONFIG_NF_CT_NETLINK=m
> -# CONFIG_NETFILTER_TPROXY is not set
> -CONFIG_NETFILTER_XTABLES=m
> -
> -#
> -# Xtables combined modules
> -#
> -CONFIG_NETFILTER_XT_MARK=m
> -CONFIG_NETFILTER_XT_CONNMARK=m
> -CONFIG_NETFILTER_XT_SET=m
> -
> -#
> -# Xtables targets
> -#
> -CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
> -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
> -CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
> -CONFIG_NETFILTER_XT_TARGET_CT=m
> -# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
> -CONFIG_NETFILTER_XT_TARGET_HL=m
> -CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
> -# CONFIG_NETFILTER_XT_TARGET_LED is not set
> -CONFIG_NETFILTER_XT_TARGET_MARK=m
> -CONFIG_NETFILTER_XT_TARGET_NFLOG=m
> -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
> -# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
> -CONFIG_NETFILTER_XT_TARGET_RATEEST=m
> -CONFIG_NETFILTER_XT_TARGET_TEE=m
> -# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
> -CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
> -# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
> -
> -#
> -# Xtables matches
> -#
> -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
> -# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
> -CONFIG_NETFILTER_XT_MATCH_COMMENT=m
> -CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
> -CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
> -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
> -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
> -CONFIG_NETFILTER_XT_MATCH_CPU=m
> -CONFIG_NETFILTER_XT_MATCH_DCCP=m
> -CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
> -CONFIG_NETFILTER_XT_MATCH_DSCP=m
> -CONFIG_NETFILTER_XT_MATCH_ESP=m
> -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
> -CONFIG_NETFILTER_XT_MATCH_HELPER=m
> -CONFIG_NETFILTER_XT_MATCH_HL=m
> -CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
> -CONFIG_NETFILTER_XT_MATCH_IPVS=m
> -CONFIG_NETFILTER_XT_MATCH_LENGTH=m
> -CONFIG_NETFILTER_XT_MATCH_LIMIT=m
> -CONFIG_NETFILTER_XT_MATCH_MAC=m
> -CONFIG_NETFILTER_XT_MATCH_MARK=m
> -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
> -# CONFIG_NETFILTER_XT_MATCH_OSF is not set
> -CONFIG_NETFILTER_XT_MATCH_OWNER=m
> -CONFIG_NETFILTER_XT_MATCH_POLICY=m
> -# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
> -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
> -CONFIG_NETFILTER_XT_MATCH_QUOTA=m
> -CONFIG_NETFILTER_XT_MATCH_RATEEST=m
> -CONFIG_NETFILTER_XT_MATCH_REALM=m
> -CONFIG_NETFILTER_XT_MATCH_RECENT=m
> -CONFIG_NETFILTER_XT_MATCH_SCTP=m
> -CONFIG_NETFILTER_XT_MATCH_STATE=m
> -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
> -CONFIG_NETFILTER_XT_MATCH_STRING=m
> -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
> -CONFIG_NETFILTER_XT_MATCH_TIME=m
> -CONFIG_NETFILTER_XT_MATCH_U32=m
> -CONFIG_IP_SET=m
> -CONFIG_IP_SET_MAX=256
> -# CONFIG_IP_SET_BITMAP_IP is not set
> -# CONFIG_IP_SET_BITMAP_IPMAC is not set
> -# CONFIG_IP_SET_BITMAP_PORT is not set
> -# CONFIG_IP_SET_HASH_IP is not set
> -# CONFIG_IP_SET_HASH_IPPORT is not set
> -# CONFIG_IP_SET_HASH_IPPORTIP is not set
> -# CONFIG_IP_SET_HASH_IPPORTNET is not set
> -# CONFIG_IP_SET_HASH_NET is not set
> -# CONFIG_IP_SET_HASH_NETPORT is not set
> -# CONFIG_IP_SET_LIST_SET is not set
> -CONFIG_IP_VS=m
> -CONFIG_IP_VS_IPV6=y
> -CONFIG_IP_VS_DEBUG=y
> -CONFIG_IP_VS_TAB_BITS=12
> -
> -#
> -# IPVS transport protocol load balancing support
> -#
> -CONFIG_IP_VS_PROTO_TCP=y
> -CONFIG_IP_VS_PROTO_UDP=y
> -CONFIG_IP_VS_PROTO_AH_ESP=y
> -CONFIG_IP_VS_PROTO_ESP=y
> -CONFIG_IP_VS_PROTO_AH=y
> -# CONFIG_IP_VS_PROTO_SCTP is not set
> -
> -#
> -# IPVS scheduler
> -#
> -CONFIG_IP_VS_RR=m
> -CONFIG_IP_VS_WRR=m
> -CONFIG_IP_VS_LC=m
> -CONFIG_IP_VS_WLC=m
> -CONFIG_IP_VS_LBLC=m
> -CONFIG_IP_VS_LBLCR=m
> -CONFIG_IP_VS_DH=m
> -CONFIG_IP_VS_SH=m
> -CONFIG_IP_VS_SED=m
> -CONFIG_IP_VS_NQ=m
> -
> -#
> -# IPVS application helper
> -#
> -CONFIG_IP_VS_FTP=m
> -CONFIG_IP_VS_NFCT=y
> -CONFIG_IP_VS_PE_SIP=m
> -
> -#
> -# IP: Netfilter Configuration
> -#
> -CONFIG_NF_DEFRAG_IPV4=m
> -CONFIG_NF_CONNTRACK_IPV4=m
> -CONFIG_NF_CONNTRACK_PROC_COMPAT=y
> -CONFIG_IP_NF_QUEUE=m
> -CONFIG_IP_NF_IPTABLES=m
> -CONFIG_IP_NF_MATCH_AH=m
> -CONFIG_IP_NF_MATCH_ECN=m
> -CONFIG_IP_NF_MATCH_TTL=m
> -CONFIG_IP_NF_FILTER=m
> -CONFIG_IP_NF_TARGET_REJECT=m
> -CONFIG_IP_NF_TARGET_LOG=m
> -CONFIG_IP_NF_TARGET_ULOG=m
> -CONFIG_NF_NAT=m
> -CONFIG_NF_NAT_NEEDED=y
> -CONFIG_IP_NF_TARGET_MASQUERADE=m
> -CONFIG_IP_NF_TARGET_NETMAP=m
> -CONFIG_IP_NF_TARGET_REDIRECT=m
> -CONFIG_NF_NAT_SNMP_BASIC=m
> -CONFIG_NF_NAT_PROTO_DCCP=m
> -CONFIG_NF_NAT_PROTO_GRE=m
> -CONFIG_NF_NAT_PROTO_UDPLITE=m
> -CONFIG_NF_NAT_PROTO_SCTP=m
> -CONFIG_NF_NAT_FTP=m
> -CONFIG_NF_NAT_IRC=m
> -CONFIG_NF_NAT_TFTP=m
> -CONFIG_NF_NAT_AMANDA=m
> -CONFIG_NF_NAT_PPTP=m
> -CONFIG_NF_NAT_H323=m
> -CONFIG_NF_NAT_SIP=m
> -CONFIG_IP_NF_MANGLE=m
> -CONFIG_IP_NF_TARGET_CLUSTERIP=m
> -CONFIG_IP_NF_TARGET_ECN=m
> -CONFIG_IP_NF_TARGET_TTL=m
> -CONFIG_IP_NF_RAW=m
> -CONFIG_IP_NF_ARPTABLES=m
> -CONFIG_IP_NF_ARPFILTER=m
> -CONFIG_IP_NF_ARP_MANGLE=m
> -
> -#
> -# IPv6: Netfilter Configuration
> -#
> -CONFIG_NF_DEFRAG_IPV6=m
> -CONFIG_NF_CONNTRACK_IPV6=m
> -CONFIG_IP6_NF_QUEUE=m
> -CONFIG_IP6_NF_IPTABLES=m
> -CONFIG_IP6_NF_MATCH_AH=m
> -CONFIG_IP6_NF_MATCH_EUI64=m
> -CONFIG_IP6_NF_MATCH_FRAG=m
> -CONFIG_IP6_NF_MATCH_OPTS=m
> -CONFIG_IP6_NF_MATCH_HL=m
> -CONFIG_IP6_NF_MATCH_IPV6HEADER=m
> -CONFIG_IP6_NF_MATCH_MH=m
> -CONFIG_IP6_NF_MATCH_RT=m
> -CONFIG_IP6_NF_TARGET_HL=m
> -CONFIG_IP6_NF_TARGET_LOG=m
> -CONFIG_IP6_NF_FILTER=m
> -CONFIG_IP6_NF_TARGET_REJECT=m
> -CONFIG_IP6_NF_MANGLE=m
> -CONFIG_IP6_NF_RAW=m
> -# CONFIG_BRIDGE_NF_EBTABLES is not set
> -CONFIG_IP_DCCP=m
> -CONFIG_INET_DCCP_DIAG=m
> -
> -#
> -# DCCP CCIDs Configuration (EXPERIMENTAL)
> -#
> -# CONFIG_IP_DCCP_CCID2_DEBUG is not set
> -CONFIG_IP_DCCP_CCID3=y
> -# CONFIG_IP_DCCP_CCID3_DEBUG is not set
> -CONFIG_IP_DCCP_TFRC_LIB=y
> -
> -#
> -# DCCP Kernel Hacking
> -#
> -# CONFIG_IP_DCCP_DEBUG is not set
> -CONFIG_IP_SCTP=m
> -# CONFIG_SCTP_DBG_MSG is not set
> -# CONFIG_SCTP_DBG_OBJCNT is not set
> -# CONFIG_SCTP_HMAC_NONE is not set
> -# CONFIG_SCTP_HMAC_SHA1 is not set
> -CONFIG_SCTP_HMAC_MD5=y
> -# CONFIG_RDS is not set
> -CONFIG_TIPC=m
> -# CONFIG_TIPC_ADVANCED is not set
> -# CONFIG_TIPC_DEBUG is not set
> -CONFIG_ATM=m
> -CONFIG_ATM_CLIP=m
> -# CONFIG_ATM_CLIP_NO_ICMP is not set
> -CONFIG_ATM_LANE=m
> -CONFIG_ATM_MPOA=m
> -CONFIG_ATM_BR2684=m
> -# CONFIG_ATM_BR2684_IPFILTER is not set
> -CONFIG_L2TP=m
> -CONFIG_L2TP_DEBUGFS=m
> -CONFIG_L2TP_V3=y
> -CONFIG_L2TP_IP=m
> -CONFIG_L2TP_ETH=m
> -CONFIG_STP=m
> -CONFIG_GARP=m
> -CONFIG_BRIDGE=m
> -CONFIG_BRIDGE_IGMP_SNOOPING=y
> -# CONFIG_NET_DSA is not set
> -CONFIG_VLAN_8021Q=m
> -CONFIG_VLAN_8021Q_GVRP=y
> -# CONFIG_DECNET is not set
> -CONFIG_LLC=m
> -# CONFIG_LLC2 is not set
> -# CONFIG_IPX is not set
> -# CONFIG_ATALK is not set
> -# CONFIG_X25 is not set
> -# CONFIG_LAPB is not set
> -# CONFIG_ECONET is not set
> -CONFIG_WAN_ROUTER=m
> -# CONFIG_PHONET is not set
> -# CONFIG_IEEE802154 is not set
> -CONFIG_NET_SCHED=y
> -
> -#
> -# Queueing/Scheduling
> -#
> -CONFIG_NET_SCH_CBQ=m
> -CONFIG_NET_SCH_HTB=m
> -CONFIG_NET_SCH_HFSC=m
> -CONFIG_NET_SCH_ATM=m
> -CONFIG_NET_SCH_PRIO=m
> -CONFIG_NET_SCH_MULTIQ=m
> -CONFIG_NET_SCH_RED=m
> -# CONFIG_NET_SCH_SFB is not set
> -CONFIG_NET_SCH_SFQ=m
> -CONFIG_NET_SCH_TEQL=m
> -CONFIG_NET_SCH_TBF=m
> -CONFIG_NET_SCH_GRED=m
> -CONFIG_NET_SCH_DSMARK=m
> -CONFIG_NET_SCH_NETEM=m
> -CONFIG_NET_SCH_DRR=m
> -CONFIG_NET_SCH_MQPRIO=m
> -CONFIG_NET_SCH_CHOKE=m
> -
> -#
> -# Classification
> -#
> -CONFIG_NET_CLS=y
> -CONFIG_NET_CLS_BASIC=m
> -CONFIG_NET_CLS_TCINDEX=m
> -CONFIG_NET_CLS_ROUTE4=m
> -CONFIG_NET_CLS_FW=m
> -CONFIG_NET_CLS_U32=m
> -CONFIG_CLS_U32_PERF=y
> -CONFIG_CLS_U32_MARK=y
> -CONFIG_NET_CLS_RSVP=m
> -CONFIG_NET_CLS_RSVP6=m
> -CONFIG_NET_CLS_FLOW=m
> -CONFIG_NET_CLS_CGROUP=m
> -# CONFIG_NET_EMATCH is not set
> -# CONFIG_NET_CLS_ACT is not set
> -CONFIG_NET_CLS_IND=y
> -CONFIG_NET_SCH_FIFO=y
> -# CONFIG_DCB is not set
> -CONFIG_DNS_RESOLVER=y
> -# CONFIG_BATMAN_ADV is not set
> -
> -#
> -# Network testing
> -#
> -# CONFIG_NET_PKTGEN is not set
> -# CONFIG_HAMRADIO is not set
> -CONFIG_CAN=m
> -CONFIG_CAN_RAW=m
> -CONFIG_CAN_BCM=m
> -
> -#
> -# CAN Device Drivers
> -#
> -CONFIG_CAN_VCAN=m
> -CONFIG_CAN_SLCAN=m
> -# CONFIG_CAN_DEV is not set
> -# CONFIG_CAN_DEBUG_DEVICES is not set
> -CONFIG_IRDA=m
> -
> -#
> -# IrDA protocols
> -#
> -CONFIG_IRLAN=m
> -CONFIG_IRNET=m
> -CONFIG_IRCOMM=m
> -CONFIG_IRDA_ULTRA=y
> -
> -#
> -# IrDA options
> -#
> -CONFIG_IRDA_CACHE_LAST_LSAP=y
> -CONFIG_IRDA_FAST_RR=y
> -CONFIG_IRDA_DEBUG=y
> -
> -#
> -# Infrared-port device drivers
> -#
> -
> -#
> -# SIR device drivers
> -#
> -CONFIG_IRTTY_SIR=m
> -
> -#
> -# Dongle support
> -#
> -CONFIG_DONGLE=y
> -CONFIG_ESI_DONGLE=m
> -CONFIG_ACTISYS_DONGLE=m
> -CONFIG_TEKRAM_DONGLE=m
> -CONFIG_TOIM3232_DONGLE=m
> -CONFIG_LITELINK_DONGLE=m
> -CONFIG_MA600_DONGLE=m
> -CONFIG_GIRBIL_DONGLE=m
> -CONFIG_MCP2120_DONGLE=m
> -CONFIG_OLD_BELKIN_DONGLE=m
> -# CONFIG_ACT200L_DONGLE is not set
> -CONFIG_KINGSUN_DONGLE=m
> -CONFIG_KSDAZZLE_DONGLE=m
> -CONFIG_KS959_DONGLE=m
> -
> -#
> -# FIR device drivers
> -#
> -CONFIG_USB_IRDA=m
> -CONFIG_SIGMATEL_FIR=m
> -CONFIG_MCS_FIR=m
> -CONFIG_BT=y
> -CONFIG_BT_L2CAP=y
> -CONFIG_BT_SCO=y
> -CONFIG_BT_RFCOMM=m
> -CONFIG_BT_RFCOMM_TTY=y
> -CONFIG_BT_BNEP=m
> -CONFIG_BT_BNEP_MC_FILTER=y
> -CONFIG_BT_BNEP_PROTO_FILTER=y
> -CONFIG_BT_HIDP=m
> -
> -#
> -# Bluetooth device drivers
> -#
> -CONFIG_BT_HCIBTUSB=y
> -CONFIG_BT_HCIBTSDIO=m
> -CONFIG_BT_HCIUART=y
> -CONFIG_BT_HCIUART_H4=y
> -CONFIG_BT_HCIUART_BCSP=y
> -CONFIG_BT_HCIUART_ATH3K=y
> -CONFIG_BT_HCIUART_LL=y
> -CONFIG_BT_HCIBCM203X=m
> -CONFIG_BT_HCIBPA10X=m
> -CONFIG_BT_HCIBFUSB=m
> -# CONFIG_BT_HCIVHCI is not set
> -CONFIG_BT_MRVL=m
> -# CONFIG_BT_MRVL_SDIO is not set
> -CONFIG_BT_ATH3K=m
> -CONFIG_BT_WILINK=m
> -CONFIG_AF_RXRPC=m
> -# CONFIG_AF_RXRPC_DEBUG is not set
> -# CONFIG_RXKAD is not set
> -CONFIG_FIB_RULES=y
> -CONFIG_WIRELESS=y
> -CONFIG_WIRELESS_EXT=y
> -CONFIG_WEXT_CORE=y
> -CONFIG_WEXT_PROC=y
> -CONFIG_WEXT_SPY=y
> -CONFIG_WEXT_PRIV=y
> -CONFIG_CFG80211=m
> -CONFIG_NL80211_TESTMODE=y
> -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
> -# CONFIG_CFG80211_REG_DEBUG is not set
> -CONFIG_CFG80211_DEFAULT_PS=y
> -# CONFIG_CFG80211_DEBUGFS is not set
> -# CONFIG_CFG80211_INTERNAL_REGDB is not set
> -CONFIG_CFG80211_WEXT=y
> -CONFIG_WIRELESS_EXT_SYSFS=y
> -CONFIG_LIB80211=y
> -CONFIG_LIB80211_CRYPT_WEP=m
> -CONFIG_LIB80211_CRYPT_CCMP=m
> -CONFIG_LIB80211_CRYPT_TKIP=m
> -# CONFIG_LIB80211_DEBUG is not set
> -CONFIG_MAC80211=m
> -CONFIG_MAC80211_HAS_RC=y
> -CONFIG_MAC80211_RC_PID=y
> -# CONFIG_MAC80211_RC_MINSTREL is not set
> -CONFIG_MAC80211_RC_DEFAULT_PID=y
> -CONFIG_MAC80211_RC_DEFAULT="pid"
> -# CONFIG_MAC80211_MESH is not set
> -CONFIG_MAC80211_LEDS=y
> -# CONFIG_MAC80211_DEBUGFS is not set
> -# CONFIG_MAC80211_DEBUG_MENU is not set
> -CONFIG_WIMAX=m
> -CONFIG_WIMAX_DEBUG_LEVEL=8
> -CONFIG_RFKILL=y
> -CONFIG_RFKILL_LEDS=y
> -CONFIG_RFKILL_INPUT=y
> -CONFIG_NET_9P=m
> -# CONFIG_NET_9P_DEBUG is not set
> -# CONFIG_CAIF is not set
> -CONFIG_CEPH_LIB=m
> -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
> -
> -#
> -# Device Drivers
> -#
> -
> -#
> -# Generic Driver Options
> -#
> -CONFIG_UEVENT_HELPER_PATH=""
> -CONFIG_DEVTMPFS=y
> -CONFIG_DEVTMPFS_MOUNT=y
> -CONFIG_STANDALONE=y
> -CONFIG_PREVENT_FIRMWARE_BUILD=y
> -CONFIG_FW_LOADER=y
> -CONFIG_FIRMWARE_IN_KERNEL=y
> -CONFIG_EXTRA_FIRMWARE=""
> -# CONFIG_DEBUG_DRIVER is not set
> -# CONFIG_DEBUG_DEVRES is not set
> -# CONFIG_SYS_HYPERVISOR is not set
> -# CONFIG_CONNECTOR is not set
> -CONFIG_MTD=y
> -# CONFIG_MTD_DEBUG is not set
> -# CONFIG_MTD_TESTS is not set
> -CONFIG_MTD_PARTITIONS=y
> -# CONFIG_MTD_REDBOOT_PARTS is not set
> -# CONFIG_MTD_CMDLINE_PARTS is not set
> -# CONFIG_MTD_AFS_PARTS is not set
> -# CONFIG_MTD_AR7_PARTS is not set
> -
> -#
> -# User Modules And Translation Layers
> -#
> -CONFIG_MTD_CHAR=y
> -CONFIG_MTD_BLKDEVS=y
> -CONFIG_MTD_BLOCK=y
> -# CONFIG_FTL is not set
> -# CONFIG_NFTL is not set
> -# CONFIG_INFTL is not set
> -# CONFIG_RFD_FTL is not set
> -# CONFIG_SSFDC is not set
> -CONFIG_SM_FTL=m
> -# CONFIG_MTD_OOPS is not set
> -CONFIG_MTD_SWAP=m
> -
> -#
> -# RAM/ROM/Flash chip drivers
> -#
> -# CONFIG_MTD_CFI is not set
> -# CONFIG_MTD_JEDECPROBE is not set
> -CONFIG_MTD_MAP_BANK_WIDTH_1=y
> -CONFIG_MTD_MAP_BANK_WIDTH_2=y
> -CONFIG_MTD_MAP_BANK_WIDTH_4=y
> -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
> -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
> -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
> -CONFIG_MTD_CFI_I1=y
> -CONFIG_MTD_CFI_I2=y
> -# CONFIG_MTD_CFI_I4 is not set
> -# CONFIG_MTD_CFI_I8 is not set
> -# CONFIG_MTD_RAM is not set
> -# CONFIG_MTD_ROM is not set
> -# CONFIG_MTD_ABSENT is not set
> -
> -#
> -# Mapping drivers for chip access
> -#
> -# CONFIG_MTD_COMPLEX_MAPPINGS is not set
> -# CONFIG_MTD_PLATRAM is not set
> -
> -#
> -# Self-contained MTD device drivers
> -#
> -# CONFIG_MTD_DATAFLASH is not set
> -# CONFIG_MTD_M25P80 is not set
> -# CONFIG_MTD_SST25L is not set
> -# CONFIG_MTD_SLRAM is not set
> -# CONFIG_MTD_PHRAM is not set
> -# CONFIG_MTD_MTDRAM is not set
> -# CONFIG_MTD_BLOCK2MTD is not set
> -
> -#
> -# Disk-On-Chip Device Drivers
> -#
> -# CONFIG_MTD_DOC2000 is not set
> -# CONFIG_MTD_DOC2001 is not set
> -# CONFIG_MTD_DOC2001PLUS is not set
> -CONFIG_MTD_NAND_ECC=y
> -# CONFIG_MTD_NAND_ECC_SMC is not set
> -CONFIG_MTD_NAND=y
> -# CONFIG_MTD_NAND_VERIFY_WRITE is not set
> -# CONFIG_MTD_NAND_ECC_BCH is not set
> -# CONFIG_MTD_SM_COMMON is not set
> -# CONFIG_MTD_NAND_MUSEUM_IDS is not set
> -# CONFIG_MTD_NAND_GPIO is not set
> -CONFIG_MTD_NAND_OMAP2=y
> -CONFIG_MTD_NAND_IDS=y
> -# CONFIG_MTD_NAND_DISKONCHIP is not set
> -# CONFIG_MTD_NAND_NANDSIM is not set
> -CONFIG_MTD_NAND_PLATFORM=y
> -# CONFIG_MTD_ALAUDA is not set
> -# CONFIG_MTD_ONENAND is not set
> -
> -#
> -# LPDDR flash memory drivers
> -#
> -# CONFIG_MTD_LPDDR is not set
> -CONFIG_MTD_UBI=y
> -CONFIG_MTD_UBI_WL_THRESHOLD=4096
> -CONFIG_MTD_UBI_BEB_RESERVE=1
> -# CONFIG_MTD_UBI_GLUEBI is not set
> -# CONFIG_MTD_UBI_DEBUG is not set
> -# CONFIG_PARPORT is not set
> -CONFIG_BLK_DEV=y
> -# CONFIG_BLK_DEV_COW_COMMON is not set
> -CONFIG_BLK_DEV_LOOP=y
> -CONFIG_BLK_DEV_CRYPTOLOOP=m
> -
> -#
> -# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
> -#
> -# CONFIG_BLK_DEV_NBD is not set
> -# CONFIG_BLK_DEV_UB is not set
> -CONFIG_BLK_DEV_RAM=y
> -CONFIG_BLK_DEV_RAM_COUNT=16
> -CONFIG_BLK_DEV_RAM_SIZE=16384
> -# CONFIG_BLK_DEV_XIP is not set
> -CONFIG_CDROM_PKTCDVD=m
> -CONFIG_CDROM_PKTCDVD_BUFFERS=8
> -# CONFIG_CDROM_PKTCDVD_WCACHE is not set
> -# CONFIG_ATA_OVER_ETH is not set
> -# CONFIG_MG_DISK is not set
> -# CONFIG_BLK_DEV_RBD is not set
> -# CONFIG_SENSORS_LIS3LV02D is not set
> -CONFIG_MISC_DEVICES=y
> -# CONFIG_AD525X_DPOT is not set
> -# CONFIG_ICS932S401 is not set
> -# CONFIG_ENCLOSURE_SERVICES is not set
> -# CONFIG_APDS9802ALS is not set
> -# CONFIG_ISL29003 is not set
> -# CONFIG_ISL29020 is not set
> -# CONFIG_SENSORS_TSL2550 is not set
> -CONFIG_SENSORS_BH1780=m
> -# CONFIG_SENSORS_BH1770 is not set
> -# CONFIG_SENSORS_APDS990X is not set
> -CONFIG_HMC6352=m
> -# CONFIG_DS1682 is not set
> -# CONFIG_TI_DAC7512 is not set
> -CONFIG_BMP085=m
> -# CONFIG_C2PORT is not set
> -
> -#
> -# EEPROM support
> -#
> -CONFIG_EEPROM_AT24=m
> -# CONFIG_EEPROM_AT25 is not set
> -# CONFIG_EEPROM_LEGACY is not set
> -# CONFIG_EEPROM_MAX6875 is not set
> -CONFIG_EEPROM_93CX6=y
> -CONFIG_IWMC3200TOP=m
> -# CONFIG_IWMC3200TOP_DEBUG is not set
> -# CONFIG_IWMC3200TOP_DEBUGFS is not set
> -
> -#
> -# Texas Instruments shared transport line discipline
> -#
> -CONFIG_TI_ST=m
> -# CONFIG_SENSORS_LIS3_SPI is not set
> -# CONFIG_SENSORS_LIS3_I2C is not set
> -CONFIG_HAVE_IDE=y
> -# CONFIG_IDE is not set
> -
> -#
> -# SCSI device support
> -#
> -CONFIG_SCSI_MOD=y
> -CONFIG_RAID_ATTRS=m
> -CONFIG_SCSI=y
> -CONFIG_SCSI_DMA=y
> -# CONFIG_SCSI_TGT is not set
> -# CONFIG_SCSI_NETLINK is not set
> -CONFIG_SCSI_PROC_FS=y
> -
> -#
> -# SCSI support type (disk, tape, CD-ROM)
> -#
> -CONFIG_BLK_DEV_SD=y
> -# CONFIG_CHR_DEV_ST is not set
> -# CONFIG_CHR_DEV_OSST is not set
> -CONFIG_BLK_DEV_SR=y
> -CONFIG_BLK_DEV_SR_VENDOR=y
> -CONFIG_CHR_DEV_SG=y
> -CONFIG_CHR_DEV_SCH=m
> -CONFIG_SCSI_MULTI_LUN=y
> -# CONFIG_SCSI_CONSTANTS is not set
> -# CONFIG_SCSI_LOGGING is not set
> -# CONFIG_SCSI_SCAN_ASYNC is not set
> -CONFIG_SCSI_WAIT_SCAN=m
> -
> -#
> -# SCSI Transports
> -#
> -# CONFIG_SCSI_SPI_ATTRS is not set
> -# CONFIG_SCSI_FC_ATTRS is not set
> -CONFIG_SCSI_ISCSI_ATTRS=m
> -# CONFIG_SCSI_SAS_ATTRS is not set
> -# CONFIG_SCSI_SAS_LIBSAS is not set
> -# CONFIG_SCSI_SRP_ATTRS is not set
> -CONFIG_SCSI_LOWLEVEL=y
> -CONFIG_ISCSI_TCP=m
> -CONFIG_ISCSI_BOOT_SYSFS=m
> -# CONFIG_LIBFC is not set
> -# CONFIG_LIBFCOE is not set
> -# CONFIG_SCSI_DEBUG is not set
> -# CONFIG_SCSI_DH is not set
> -# CONFIG_SCSI_OSD_INITIATOR is not set
> -# CONFIG_ATA is not set
> -CONFIG_MD=y
> -CONFIG_BLK_DEV_MD=m
> -CONFIG_MD_LINEAR=m
> -CONFIG_MD_RAID0=m
> -CONFIG_MD_RAID1=m
> -CONFIG_MD_RAID10=m
> -CONFIG_MD_RAID456=m
> -CONFIG_MD_MULTIPATH=m
> -CONFIG_MD_FAULTY=m
> -CONFIG_BLK_DEV_DM=m
> -# CONFIG_DM_DEBUG is not set
> -CONFIG_DM_CRYPT=m
> -CONFIG_DM_SNAPSHOT=m
> -CONFIG_DM_MIRROR=m
> -CONFIG_DM_RAID=m
> -# CONFIG_DM_LOG_USERSPACE is not set
> -CONFIG_DM_ZERO=m
> -CONFIG_DM_MULTIPATH=m
> -# CONFIG_DM_MULTIPATH_QL is not set
> -# CONFIG_DM_MULTIPATH_ST is not set
> -CONFIG_DM_DELAY=m
> -# CONFIG_DM_UEVENT is not set
> -CONFIG_DM_FLAKEY=m
> -CONFIG_TARGET_CORE=m
> -CONFIG_TCM_IBLOCK=m
> -CONFIG_TCM_FILEIO=m
> -CONFIG_TCM_PSCSI=m
> -CONFIG_LOOPBACK_TARGET=m
> -# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set
> -CONFIG_NETDEVICES=y
> -CONFIG_DUMMY=m
> -CONFIG_BONDING=m
> -CONFIG_MACVLAN=m
> -CONFIG_MACVTAP=m
> -CONFIG_EQUALIZER=m
> -CONFIG_TUN=m
> -CONFIG_VETH=m
> -CONFIG_MII=y
> -CONFIG_PHYLIB=y
> -
> -#
> -# MII PHY device drivers
> -#
> -# CONFIG_MARVELL_PHY is not set
> -# CONFIG_DAVICOM_PHY is not set
> -# CONFIG_QSEMI_PHY is not set
> -# CONFIG_LXT_PHY is not set
> -# CONFIG_CICADA_PHY is not set
> -# CONFIG_VITESSE_PHY is not set
> -# CONFIG_SMSC_PHY is not set
> -# CONFIG_BROADCOM_PHY is not set
> -CONFIG_BCM63XX_PHY=m
> -# CONFIG_ICPLUS_PHY is not set
> -# CONFIG_REALTEK_PHY is not set
> -# CONFIG_NATIONAL_PHY is not set
> -# CONFIG_STE10XP is not set
> -# CONFIG_LSI_ET1011C_PHY is not set
> -CONFIG_MICREL_PHY=m
> -# CONFIG_FIXED_PHY is not set
> -# CONFIG_MDIO_BITBANG is not set
> -CONFIG_NET_ETHERNET=y
> -# CONFIG_AX88796 is not set
> -CONFIG_SMC91X=y
> -# CONFIG_TI_DAVINCI_EMAC is not set
> -CONFIG_TI_DAVINCI_MDIO=m
> -CONFIG_TI_DAVINCI_CPDMA=m
> -# CONFIG_DM9000 is not set
> -CONFIG_ENC28J60=y
> -# CONFIG_ENC28J60_WRITEVERIFY is not set
> -# CONFIG_ETHOC is not set
> -CONFIG_SMC911X=y
> -CONFIG_SMSC911X=y
> -# CONFIG_SMSC911X_ARCH_HOOKS is not set
> -# CONFIG_DNET is not set
> -# CONFIG_IBM_NEW_EMAC_ZMII is not set
> -# CONFIG_IBM_NEW_EMAC_RGMII is not set
> -# CONFIG_IBM_NEW_EMAC_TAH is not set
> -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
> -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
> -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
> -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
> -# CONFIG_B44 is not set
> -CONFIG_KS8842=m
> -CONFIG_KS8851=y
> -# CONFIG_KS8851_MLL is not set
> -# CONFIG_FTMAC100 is not set
> -# CONFIG_NETDEV_1000 is not set
> -# CONFIG_NETDEV_10000 is not set
> -CONFIG_WLAN=y
> -# CONFIG_LIBERTAS_THINFIRM is not set
> -CONFIG_AT76C50X_USB=m
> -CONFIG_USB_ZD1201=m
> -CONFIG_USB_NET_RNDIS_WLAN=m
> -CONFIG_RTL8187=m
> -CONFIG_RTL8187_LEDS=y
> -# CONFIG_MAC80211_HWSIM is not set
> -# CONFIG_ATH_COMMON is not set
> -CONFIG_B43=m
> -# CONFIG_B43_SDIO is not set
> -CONFIG_B43_PIO=y
> -CONFIG_B43_PHY_N=y
> -CONFIG_B43_PHY_LP=y
> -CONFIG_B43_LEDS=y
> -CONFIG_B43_HWRNG=y
> -# CONFIG_B43_DEBUG is not set
> -# CONFIG_B43LEGACY is not set
> -CONFIG_HOSTAP=m
> -CONFIG_HOSTAP_FIRMWARE=y
> -CONFIG_HOSTAP_FIRMWARE_NVRAM=y
> -# CONFIG_IWM is not set
> -CONFIG_LIBERTAS=m
> -CONFIG_LIBERTAS_USB=m
> -# CONFIG_LIBERTAS_SDIO is not set
> -# CONFIG_LIBERTAS_SPI is not set
> -# CONFIG_LIBERTAS_DEBUG is not set
> -# CONFIG_LIBERTAS_MESH is not set
> -CONFIG_P54_COMMON=m
> -CONFIG_P54_USB=m
> -# CONFIG_P54_SPI is not set
> -CONFIG_P54_LEDS=y
> -CONFIG_RT2X00=m
> -CONFIG_RT2500USB=m
> -CONFIG_RT73USB=m
> -# CONFIG_RT2800USB is not set
> -CONFIG_RT2X00_LIB_USB=m
> -CONFIG_RT2X00_LIB=m
> -CONFIG_RT2X00_LIB_FIRMWARE=y
> -CONFIG_RT2X00_LIB_CRYPTO=y
> -CONFIG_RT2X00_LIB_LEDS=y
> -# CONFIG_RT2X00_DEBUG is not set
> -CONFIG_RTL8192CU=m
> -CONFIG_RTLWIFI=m
> -CONFIG_RTL8192C_COMMON=m
> -CONFIG_WL1251=m
> -CONFIG_WL1251_SPI=m
> -CONFIG_WL1251_SDIO=m
> -CONFIG_WL12XX_MENU=m
> -CONFIG_WL12XX=m
> -CONFIG_WL12XX_HT=y
> -CONFIG_WL12XX_SPI=m
> -CONFIG_WL12XX_SDIO=m
> -# CONFIG_WL12XX_SDIO_TEST is not set
> -CONFIG_WL12XX_PLATFORM_DATA=y
> -CONFIG_ZD1211RW=m
> -# CONFIG_ZD1211RW_DEBUG is not set
> -
> -#
> -# WiMAX Wireless Broadband devices
> -#
> -CONFIG_WIMAX_I2400M=m
> -CONFIG_WIMAX_I2400M_USB=m
> -CONFIG_WIMAX_I2400M_SDIO=m
> -CONFIG_WIMAX_IWMC3200_SDIO=y
> -CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
> -
> -#
> -# USB Network Adapters
> -#
> -CONFIG_USB_CATC=y
> -CONFIG_USB_KAWETH=y
> -CONFIG_USB_PEGASUS=y
> -CONFIG_USB_RTL8150=y
> -CONFIG_USB_USBNET=y
> -CONFIG_USB_NET_AX8817X=y
> -CONFIG_USB_NET_CDCETHER=y
> -# CONFIG_USB_NET_CDC_EEM is not set
> -CONFIG_USB_NET_CDC_NCM=m
> -CONFIG_USB_NET_DM9601=y
> -CONFIG_USB_NET_SMSC75XX=m
> -CONFIG_USB_NET_SMSC95XX=y
> -CONFIG_USB_NET_GL620A=y
> -CONFIG_USB_NET_NET1080=y
> -CONFIG_USB_NET_PLUSB=y
> -CONFIG_USB_NET_MCS7830=y
> -CONFIG_USB_NET_RNDIS_HOST=y
> -CONFIG_USB_NET_CDC_SUBSET=y
> -CONFIG_USB_ALI_M5632=y
> -CONFIG_USB_AN2720=y
> -CONFIG_USB_BELKIN=y
> -CONFIG_USB_ARMLINUX=y
> -CONFIG_USB_EPSON2888=y
> -CONFIG_USB_KC2190=y
> -CONFIG_USB_NET_ZAURUS=y
> -CONFIG_USB_NET_CX82310_ETH=m
> -CONFIG_USB_HSO=m
> -CONFIG_USB_NET_INT51X1=m
> -CONFIG_USB_IPHETH=m
> -CONFIG_USB_SIERRA_NET=m
> -CONFIG_USB_VL600=m
> -# CONFIG_WAN is not set
> -CONFIG_ATM_DRIVERS=y
> -# CONFIG_ATM_DUMMY is not set
> -# CONFIG_ATM_TCP is not set
> -
> -#
> -# CAIF transport drivers
> -#
> -CONFIG_PPP=m
> -CONFIG_PPP_MULTILINK=y
> -CONFIG_PPP_FILTER=y
> -CONFIG_PPP_ASYNC=m
> -CONFIG_PPP_SYNC_TTY=m
> -CONFIG_PPP_DEFLATE=m
> -CONFIG_PPP_BSDCOMP=m
> -CONFIG_PPP_MPPE=m
> -CONFIG_PPPOE=m
> -CONFIG_PPTP=m
> -# CONFIG_PPPOATM is not set
> -CONFIG_PPPOL2TP=m
> -# CONFIG_SLIP is not set
> -CONFIG_SLHC=m
> -CONFIG_NETCONSOLE=m
> -CONFIG_NETCONSOLE_DYNAMIC=y
> -CONFIG_NETPOLL=y
> -CONFIG_NETPOLL_TRAP=y
> -CONFIG_NET_POLL_CONTROLLER=y
> -# CONFIG_ISDN is not set
> -# CONFIG_PHONE is not set
> -
> -#
> -# Input device support
> -#
> -CONFIG_INPUT=y
> -CONFIG_INPUT_FF_MEMLESS=y
> -CONFIG_INPUT_POLLDEV=y
> -# CONFIG_INPUT_SPARSEKMAP is not set
> -
> -#
> -# Userland interfaces
> -#
> -CONFIG_INPUT_MOUSEDEV=y
> -CONFIG_INPUT_MOUSEDEV_PSAUX=y
> -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
> -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
> -# CONFIG_INPUT_JOYDEV is not set
> -CONFIG_INPUT_EVDEV=y
> -# CONFIG_INPUT_EVBUG is not set
> -
> -#
> -# Input Device Drivers
> -#
> -CONFIG_INPUT_KEYBOARD=y
> -# CONFIG_KEYBOARD_ADP5588 is not set
> -# CONFIG_KEYBOARD_ATKBD is not set
> -CONFIG_KEYBOARD_QT1070=m
> -CONFIG_KEYBOARD_QT2160=m
> -# CONFIG_KEYBOARD_LKKBD is not set
> -CONFIG_KEYBOARD_GPIO=y
> -# CONFIG_KEYBOARD_TCA6416 is not set
> -# CONFIG_KEYBOARD_MATRIX is not set
> -# CONFIG_KEYBOARD_LM8323 is not set
> -# CONFIG_KEYBOARD_MAX7359 is not set
> -CONFIG_KEYBOARD_MCS=m
> -# CONFIG_KEYBOARD_NEWTON is not set
> -# CONFIG_KEYBOARD_OPENCORES is not set
> -# CONFIG_KEYBOARD_STOWAWAY is not set
> -# CONFIG_KEYBOARD_SUNKBD is not set
> -# CONFIG_KEYBOARD_TWL4030 is not set
> -# CONFIG_KEYBOARD_XTKBD is not set
> -CONFIG_INPUT_MOUSE=y
> -CONFIG_MOUSE_PS2=y
> -CONFIG_MOUSE_PS2_ALPS=y
> -CONFIG_MOUSE_PS2_LOGIPS2PP=y
> -CONFIG_MOUSE_PS2_SYNAPTICS=y
> -CONFIG_MOUSE_PS2_TRACKPOINT=y
> -# CONFIG_MOUSE_PS2_ELANTECH is not set
> -# CONFIG_MOUSE_PS2_SENTELIC is not set
> -# CONFIG_MOUSE_PS2_TOUCHKIT is not set
> -# CONFIG_MOUSE_SERIAL is not set
> -# CONFIG_MOUSE_APPLETOUCH is not set
> -# CONFIG_MOUSE_BCM5974 is not set
> -# CONFIG_MOUSE_VSXXXAA is not set
> -# CONFIG_MOUSE_GPIO is not set
> -# CONFIG_MOUSE_SYNAPTICS_I2C is not set
> -# CONFIG_INPUT_JOYSTICK is not set
> -# CONFIG_INPUT_TABLET is not set
> -# CONFIG_INPUT_TOUCHSCREEN is not set
> -CONFIG_INPUT_MISC=y
> -CONFIG_INPUT_AD714X=m
> -CONFIG_INPUT_AD714X_I2C=m
> -CONFIG_INPUT_AD714X_SPI=m
> -# CONFIG_INPUT_ATI_REMOTE is not set
> -# CONFIG_INPUT_ATI_REMOTE2 is not set
> -# CONFIG_INPUT_KEYSPAN_REMOTE is not set
> -# CONFIG_INPUT_POWERMATE is not set
> -# CONFIG_INPUT_YEALINK is not set
> -# CONFIG_INPUT_CM109 is not set
> -CONFIG_INPUT_TWL4030_PWRBUTTON=y
> -CONFIG_INPUT_TWL4030_VIBRA=m
> -CONFIG_INPUT_UINPUT=y
> -CONFIG_INPUT_PCF8574=m
> -CONFIG_INPUT_PWM_BEEPER=m
> -# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
> -CONFIG_INPUT_ADXL34X=m
> -CONFIG_INPUT_ADXL34X_I2C=m
> -CONFIG_INPUT_ADXL34X_SPI=m
> -CONFIG_INPUT_CMA3000=m
> -CONFIG_INPUT_CMA3000_I2C=m
> -
> -#
> -# Hardware I/O ports
> -#
> -CONFIG_SERIO=y
> -CONFIG_SERIO_SERPORT=y
> -CONFIG_SERIO_LIBPS2=y
> -# CONFIG_SERIO_RAW is not set
> -# CONFIG_SERIO_ALTERA_PS2 is not set
> -# CONFIG_SERIO_PS2MULT is not set
> -# CONFIG_GAMEPORT is not set
> -
> -#
> -# Character devices
> -#
> -CONFIG_VT=y
> -CONFIG_CONSOLE_TRANSLATIONS=y
> -CONFIG_VT_CONSOLE=y
> -CONFIG_HW_CONSOLE=y
> -CONFIG_VT_HW_CONSOLE_BINDING=y
> -CONFIG_UNIX98_PTYS=y
> -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
> -# CONFIG_LEGACY_PTYS is not set
> -# CONFIG_SERIAL_NONSTANDARD is not set
> -CONFIG_N_GSM=m
> -CONFIG_DEVKMEM=y
> -
> -#
> -# Serial drivers
> -#
> -CONFIG_SERIAL_8250=y
> -CONFIG_SERIAL_8250_CONSOLE=y
> -CONFIG_SERIAL_8250_NR_UARTS=32
> -CONFIG_SERIAL_8250_RUNTIME_UARTS=4
> -CONFIG_SERIAL_8250_EXTENDED=y
> -CONFIG_SERIAL_8250_MANY_PORTS=y
> -CONFIG_SERIAL_8250_SHARE_IRQ=y
> -CONFIG_SERIAL_8250_DETECT_IRQ=y
> -CONFIG_SERIAL_8250_RSA=y
> -
> -#
> -# Non-8250 serial port support
> -#
> -# CONFIG_SERIAL_MAX3100 is not set
> -# CONFIG_SERIAL_MAX3107 is not set
> -CONFIG_SERIAL_CORE=y
> -CONFIG_SERIAL_CORE_CONSOLE=y
> -CONFIG_SERIAL_OMAP=y
> -CONFIG_SERIAL_OMAP_CONSOLE=y
> -# CONFIG_SERIAL_TIMBERDALE is not set
> -# CONFIG_SERIAL_ALTERA_JTAGUART is not set
> -# CONFIG_SERIAL_ALTERA_UART is not set
> -CONFIG_SERIAL_IFX6X60=m
> -CONFIG_TTY_PRINTK=y
> -# CONFIG_HVC_DCC is not set
> -# CONFIG_IPMI_HANDLER is not set
> -CONFIG_HW_RANDOM=y
> -# CONFIG_HW_RANDOM_TIMERIOMEM is not set
> -# CONFIG_R3964 is not set
> -# CONFIG_RAW_DRIVER is not set
> -# CONFIG_TCG_TPM is not set
> -# CONFIG_RAMOOPS is not set
> -CONFIG_I2C=y
> -CONFIG_I2C_BOARDINFO=y
> -CONFIG_I2C_COMPAT=y
> -CONFIG_I2C_CHARDEV=y
> -CONFIG_I2C_MUX=m
> -
> -#
> -# Multiplexer I2C Chip support
> -#
> -CONFIG_I2C_MUX_GPIO=m
> -# CONFIG_I2C_MUX_PCA9541 is not set
> -# CONFIG_I2C_MUX_PCA954x is not set
> -CONFIG_I2C_HELPER_AUTO=y
> -CONFIG_I2C_ALGOBIT=m
> -
> -#
> -# I2C Hardware Bus support
> -#
> -
> -#
> -# I2C system bus drivers (mostly embedded / system-on-chip)
> -#
> -# CONFIG_I2C_DESIGNWARE is not set
> -# CONFIG_I2C_GPIO is not set
> -# CONFIG_I2C_OCORES is not set
> -CONFIG_I2C_OMAP=y
> -# CONFIG_I2C_PCA_PLATFORM is not set
> -# CONFIG_I2C_PXA_PCI is not set
> -# CONFIG_I2C_SIMTEC is not set
> -# CONFIG_I2C_XILINX is not set
> -
> -#
> -# External I2C/SMBus adapter drivers
> -#
> -CONFIG_I2C_DIOLAN_U2C=m
> -# CONFIG_I2C_PARPORT_LIGHT is not set
> -# CONFIG_I2C_TAOS_EVM is not set
> -# CONFIG_I2C_TINY_USB is not set
> -
> -#
> -# Other I2C/SMBus bus drivers
> -#
> -# CONFIG_I2C_STUB is not set
> -# CONFIG_I2C_DEBUG_CORE is not set
> -# CONFIG_I2C_DEBUG_ALGO is not set
> -# CONFIG_I2C_DEBUG_BUS is not set
> -CONFIG_SPI=y
> -# CONFIG_SPI_DEBUG is not set
> -CONFIG_SPI_MASTER=y
> -
> -#
> -# SPI Master Controller Drivers
> -#
> -# CONFIG_SPI_ALTERA is not set
> -# CONFIG_SPI_BITBANG is not set
> -# CONFIG_SPI_GPIO is not set
> -# CONFIG_SPI_OC_TINY is not set
> -CONFIG_SPI_OMAP24XX=y
> -# CONFIG_SPI_PXA2XX_PCI is not set
> -# CONFIG_SPI_XILINX is not set
> -# CONFIG_SPI_DESIGNWARE is not set
> -
> -#
> -# SPI Protocol Masters
> -#
> -CONFIG_SPI_SPIDEV=y
> -# CONFIG_SPI_TLE62X0 is not set
> -
> -#
> -# PPS support
> -#
> -# CONFIG_PPS is not set
> -
> -#
> -# PPS generators support
> -#
> -CONFIG_ARCH_REQUIRE_GPIOLIB=y
> -CONFIG_GPIOLIB=y
> -# CONFIG_DEBUG_GPIO is not set
> -CONFIG_GPIO_SYSFS=y
> -CONFIG_GPIO_MAX730X=m
> -
> -#
> -# Memory mapped GPIO expanders:
> -#
> -# CONFIG_GPIO_BASIC_MMIO is not set
> -# CONFIG_GPIO_IT8761E is not set
> -
> -#
> -# I2C GPIO expanders:
> -#
> -CONFIG_GPIO_MAX7300=m
> -# CONFIG_GPIO_MAX732X is not set
> -# CONFIG_GPIO_PCF857X is not set
> -# CONFIG_GPIO_SX150X is not set
> -CONFIG_GPIO_TWL4030=y
> -CONFIG_GPIO_ADP5588=m
> -
> -#
> -# PCI GPIO expanders:
> -#
> -
> -#
> -# SPI GPIO expanders:
> -#
> -# CONFIG_GPIO_MAX7301 is not set
> -# CONFIG_GPIO_MCP23S08 is not set
> -# CONFIG_GPIO_MC33880 is not set
> -# CONFIG_GPIO_74X164 is not set
> -
> -#
> -# AC97 GPIO expanders:
> -#
> -
> -#
> -# MODULbus GPIO expanders:
> -#
> -# CONFIG_W1 is not set
> -CONFIG_POWER_SUPPLY=m
> -# CONFIG_POWER_SUPPLY_DEBUG is not set
> -# CONFIG_PDA_POWER is not set
> -CONFIG_TEST_POWER=m
> -# CONFIG_BATTERY_DS2782 is not set
> -# CONFIG_BATTERY_BQ20Z75 is not set
> -# CONFIG_BATTERY_BQ27x00 is not set
> -# CONFIG_BATTERY_MAX17040 is not set
> -CONFIG_BATTERY_MAX17042=m
> -CONFIG_CHARGER_ISP1704=m
> -CONFIG_CHARGER_TWL4030=m
> -CONFIG_CHARGER_GPIO=m
> -CONFIG_HWMON=y
> -# CONFIG_HWMON_VID is not set
> -# CONFIG_HWMON_DEBUG_CHIP is not set
> -
> -#
> -# Native drivers
> -#
> -# CONFIG_SENSORS_AD7414 is not set
> -# CONFIG_SENSORS_AD7418 is not set
> -# CONFIG_SENSORS_ADCXX is not set
> -# CONFIG_SENSORS_ADM1021 is not set
> -# CONFIG_SENSORS_ADM1025 is not set
> -# CONFIG_SENSORS_ADM1026 is not set
> -# CONFIG_SENSORS_ADM1029 is not set
> -# CONFIG_SENSORS_ADM1031 is not set
> -# CONFIG_SENSORS_ADM9240 is not set
> -CONFIG_SENSORS_ADT7411=m
> -# CONFIG_SENSORS_ADT7462 is not set
> -# CONFIG_SENSORS_ADT7470 is not set
> -# CONFIG_SENSORS_ADT7475 is not set
> -CONFIG_SENSORS_ASC7621=m
> -# CONFIG_SENSORS_ATXP1 is not set
> -CONFIG_SENSORS_DS620=m
> -# CONFIG_SENSORS_DS1621 is not set
> -# CONFIG_SENSORS_F71805F is not set
> -# CONFIG_SENSORS_F71882FG is not set
> -# CONFIG_SENSORS_F75375S is not set
> -# CONFIG_SENSORS_G760A is not set
> -# CONFIG_SENSORS_GL518SM is not set
> -# CONFIG_SENSORS_GL520SM is not set
> -CONFIG_SENSORS_GPIO_FAN=m
> -# CONFIG_SENSORS_IT87 is not set
> -CONFIG_SENSORS_JC42=m
> -# CONFIG_SENSORS_LINEAGE is not set
> -# CONFIG_SENSORS_LM63 is not set
> -# CONFIG_SENSORS_LM70 is not set
> -# CONFIG_SENSORS_LM73 is not set
> -# CONFIG_SENSORS_LM75 is not set
> -# CONFIG_SENSORS_LM77 is not set
> -# CONFIG_SENSORS_LM78 is not set
> -# CONFIG_SENSORS_LM80 is not set
> -# CONFIG_SENSORS_LM83 is not set
> -# CONFIG_SENSORS_LM85 is not set
> -# CONFIG_SENSORS_LM87 is not set
> -# CONFIG_SENSORS_LM90 is not set
> -# CONFIG_SENSORS_LM92 is not set
> -# CONFIG_SENSORS_LM93 is not set
> -# CONFIG_SENSORS_LTC4151 is not set
> -# CONFIG_SENSORS_LTC4215 is not set
> -# CONFIG_SENSORS_LTC4245 is not set
> -# CONFIG_SENSORS_LTC4261 is not set
> -# CONFIG_SENSORS_LM95241 is not set
> -# CONFIG_SENSORS_MAX1111 is not set
> -# CONFIG_SENSORS_MAX1619 is not set
> -# CONFIG_SENSORS_MAX6639 is not set
> -# CONFIG_SENSORS_MAX6650 is not set
> -# CONFIG_SENSORS_PC87360 is not set
> -# CONFIG_SENSORS_PC87427 is not set
> -# CONFIG_SENSORS_PCF8591 is not set
> -# CONFIG_PMBUS is not set
> -# CONFIG_SENSORS_SHT15 is not set
> -# CONFIG_SENSORS_SHT21 is not set
> -CONFIG_SENSORS_SMM665=m
> -# CONFIG_SENSORS_DME1737 is not set
> -CONFIG_SENSORS_EMC1403=m
> -CONFIG_SENSORS_EMC2103=m
> -# CONFIG_SENSORS_SMSC47M1 is not set
> -# CONFIG_SENSORS_SMSC47M192 is not set
> -# CONFIG_SENSORS_SMSC47B397 is not set
> -# CONFIG_SENSORS_SCH5627 is not set
> -# CONFIG_SENSORS_ADS1015 is not set
> -# CONFIG_SENSORS_ADS7828 is not set
> -CONFIG_SENSORS_ADS7871=m
> -CONFIG_SENSORS_AMC6821=m
> -# CONFIG_SENSORS_THMC50 is not set
> -CONFIG_SENSORS_TMP102=m
> -# CONFIG_SENSORS_TMP401 is not set
> -# CONFIG_SENSORS_TMP421 is not set
> -CONFIG_SENSORS_TWL4030_MADC=m
> -# CONFIG_SENSORS_VT1211 is not set
> -# CONFIG_SENSORS_W83781D is not set
> -# CONFIG_SENSORS_W83791D is not set
> -# CONFIG_SENSORS_W83792D is not set
> -# CONFIG_SENSORS_W83793 is not set
> -# CONFIG_SENSORS_W83795 is not set
> -# CONFIG_SENSORS_W83L785TS is not set
> -# CONFIG_SENSORS_W83L786NG is not set
> -# CONFIG_SENSORS_W83627HF is not set
> -# CONFIG_SENSORS_W83627EHF is not set
> -CONFIG_THERMAL=y
> -CONFIG_THERMAL_HWMON=y
> -CONFIG_WATCHDOG=y
> -CONFIG_WATCHDOG_NOWAYOUT=y
> -
> -#
> -# Watchdog Device Drivers
> -#
> -# CONFIG_SOFT_WATCHDOG is not set
> -CONFIG_OMAP_WATCHDOG=y
> -# CONFIG_TWL4030_WATCHDOG is not set
> -# CONFIG_MAX63XX_WATCHDOG is not set
> -
> -#
> -# USB-based Watchdog Cards
> -#
> -# CONFIG_USBPCWATCHDOG is not set
> -CONFIG_SSB_POSSIBLE=y
> -
> -#
> -# Sonics Silicon Backplane
> -#
> -CONFIG_SSB=y
> -CONFIG_SSB_BLOCKIO=y
> -CONFIG_SSB_SDIOHOST_POSSIBLE=y
> -# CONFIG_SSB_SDIOHOST is not set
> -# CONFIG_SSB_SILENT is not set
> -# CONFIG_SSB_DEBUG is not set
> -CONFIG_MFD_SUPPORT=y
> -CONFIG_MFD_CORE=y
> -# CONFIG_MFD_88PM860X is not set
> -# CONFIG_MFD_SM501 is not set
> -# CONFIG_MFD_ASIC3 is not set
> -# CONFIG_HTC_EGPIO is not set
> -# CONFIG_HTC_PASIC3 is not set
> -# CONFIG_HTC_I2CPLD is not set
> -CONFIG_TPS6105X=m
> -# CONFIG_TPS65010 is not set
> -CONFIG_TPS6507X=m
> -CONFIG_TWL4030_CORE=y
> -CONFIG_TWL4030_MADC=m
> -CONFIG_TWL4030_POWER=y
> -CONFIG_TWL4030_SCRIPT=y
> -CONFIG_TWL4030_CODEC=y
> -CONFIG_TWL4030_POWEROFF=y
> -CONFIG_TWL6030_PWM=m
> -# CONFIG_MFD_STMPE is not set
> -# CONFIG_MFD_TC3589X is not set
> -# CONFIG_MFD_TMIO is not set
> -# CONFIG_MFD_T7L66XB is not set
> -# CONFIG_MFD_TC6387XB is not set
> -# CONFIG_MFD_TC6393XB is not set
> -# CONFIG_PMIC_DA903X is not set
> -# CONFIG_PMIC_ADP5520 is not set
> -# CONFIG_MFD_MAX8925 is not set
> -# CONFIG_MFD_MAX8997 is not set
> -# CONFIG_MFD_MAX8998 is not set
> -# CONFIG_MFD_WM8400 is not set
> -# CONFIG_MFD_WM831X_I2C is not set
> -# CONFIG_MFD_WM831X_SPI is not set
> -# CONFIG_MFD_WM8350_I2C is not set
> -# CONFIG_MFD_WM8994 is not set
> -# CONFIG_MFD_PCF50633 is not set
> -# CONFIG_MFD_MC13XXX is not set
> -# CONFIG_ABX500_CORE is not set
> -# CONFIG_EZX_PCAP is not set
> -CONFIG_MFD_TPS6586X=y
> -CONFIG_MFD_WL1273_CORE=m
> -CONFIG_MFD_OMAP_USB_HOST=y
> -CONFIG_REGULATOR=y
> -# CONFIG_REGULATOR_DEBUG is not set
> -CONFIG_REGULATOR_DUMMY=y
> -CONFIG_REGULATOR_FIXED_VOLTAGE=y
> -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
> -# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
> -# CONFIG_REGULATOR_BQ24022 is not set
> -# CONFIG_REGULATOR_MAX1586 is not set
> -# CONFIG_REGULATOR_MAX8649 is not set
> -# CONFIG_REGULATOR_MAX8660 is not set
> -# CONFIG_REGULATOR_MAX8952 is not set
> -CONFIG_REGULATOR_TWL4030=y
> -# CONFIG_REGULATOR_LP3971 is not set
> -# CONFIG_REGULATOR_LP3972 is not set
> -CONFIG_REGULATOR_TPS6105X=m
> -# CONFIG_REGULATOR_TPS65023 is not set
> -# CONFIG_REGULATOR_TPS6507X is not set
> -# CONFIG_REGULATOR_ISL6271A is not set
> -# CONFIG_REGULATOR_AD5398 is not set
> -CONFIG_REGULATOR_TPS6586X=m
> -CONFIG_REGULATOR_TPS6524X=m
> -CONFIG_MEDIA_SUPPORT=y
> -
> -#
> -# Multimedia core support
> -#
> -CONFIG_MEDIA_CONTROLLER=y
> -CONFIG_VIDEO_DEV=y
> -CONFIG_VIDEO_V4L2_COMMON=y
> -CONFIG_VIDEO_V4L2_SUBDEV_API=y
> -CONFIG_DVB_CORE=m
> -CONFIG_VIDEO_MEDIA=m
> -
> -#
> -# Multimedia drivers
> -#
> -CONFIG_RC_CORE=m
> -CONFIG_LIRC=m
> -CONFIG_RC_MAP=m
> -CONFIG_IR_NEC_DECODER=m
> -CONFIG_IR_RC5_DECODER=m
> -CONFIG_IR_RC6_DECODER=m
> -CONFIG_IR_JVC_DECODER=m
> -CONFIG_IR_SONY_DECODER=m
> -CONFIG_IR_RC5_SZ_DECODER=m
> -CONFIG_IR_LIRC_CODEC=m
> -# CONFIG_IR_IMON is not set
> -# CONFIG_IR_MCEUSB is not set
> -# CONFIG_IR_STREAMZAP is not set
> -CONFIG_RC_LOOPBACK=m
> -CONFIG_MEDIA_ATTACH=y
> -CONFIG_MEDIA_TUNER=m
> -CONFIG_MEDIA_TUNER_CUSTOMISE=y
> -
> -#
> -# Customize TV tuners
> -#
> -CONFIG_MEDIA_TUNER_SIMPLE=m
> -CONFIG_MEDIA_TUNER_TDA8290=m
> -CONFIG_MEDIA_TUNER_TDA827X=m
> -CONFIG_MEDIA_TUNER_TDA18271=m
> -CONFIG_MEDIA_TUNER_TDA9887=m
> -CONFIG_MEDIA_TUNER_TEA5761=m
> -CONFIG_MEDIA_TUNER_TEA5767=m
> -CONFIG_MEDIA_TUNER_MT20XX=m
> -CONFIG_MEDIA_TUNER_MT2060=m
> -CONFIG_MEDIA_TUNER_MT2266=m
> -CONFIG_MEDIA_TUNER_MT2131=m
> -CONFIG_MEDIA_TUNER_QT1010=m
> -CONFIG_MEDIA_TUNER_XC2028=m
> -CONFIG_MEDIA_TUNER_XC5000=m
> -CONFIG_MEDIA_TUNER_MXL5005S=m
> -CONFIG_MEDIA_TUNER_MXL5007T=m
> -CONFIG_MEDIA_TUNER_MC44S803=m
> -CONFIG_MEDIA_TUNER_MAX2165=m
> -CONFIG_MEDIA_TUNER_TDA18218=m
> -CONFIG_VIDEO_V4L2=y
> -CONFIG_VIDEOBUF_GEN=y
> -CONFIG_VIDEOBUF_VMALLOC=m
> -CONFIG_VIDEOBUF_DMA_CONTIG=y
> -CONFIG_VIDEOBUF_DVB=m
> -CONFIG_VIDEO_TVEEPROM=m
> -CONFIG_VIDEO_TUNER=m
> -CONFIG_V4L2_MEM2MEM_DEV=m
> -CONFIG_VIDEOBUF2_CORE=m
> -CONFIG_VIDEOBUF2_MEMOPS=m
> -CONFIG_VIDEOBUF2_VMALLOC=m
> -CONFIG_VIDEO_CAPTURE_DRIVERS=y
> -# CONFIG_VIDEO_ADV_DEBUG is not set
> -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
> -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
> -CONFIG_VIDEO_IR_I2C=m
> -
> -#
> -# Encoders/decoders and other helper chips
> -#
> -
> -#
> -# Audio decoders
> -#
> -# CONFIG_VIDEO_TVAUDIO is not set
> -# CONFIG_VIDEO_TDA7432 is not set
> -# CONFIG_VIDEO_TDA9840 is not set
> -# CONFIG_VIDEO_TEA6415C is not set
> -# CONFIG_VIDEO_TEA6420 is not set
> -CONFIG_VIDEO_MSP3400=m
> -# CONFIG_VIDEO_CS5345 is not set
> -CONFIG_VIDEO_CS53L32A=m
> -# CONFIG_VIDEO_M52790 is not set
> -# CONFIG_VIDEO_TLV320AIC23B is not set
> -CONFIG_VIDEO_WM8775=m
> -# CONFIG_VIDEO_WM8739 is not set
> -# CONFIG_VIDEO_VP27SMPX is not set
> -
> -#
> -# RDS decoders
> -#
> -# CONFIG_VIDEO_SAA6588 is not set
> -
> -#
> -# Video decoders
> -#
> -CONFIG_VIDEO_ADV7180=m
> -# CONFIG_VIDEO_BT819 is not set
> -# CONFIG_VIDEO_BT856 is not set
> -# CONFIG_VIDEO_BT866 is not set
> -# CONFIG_VIDEO_KS0127 is not set
> -CONFIG_VIDEO_OV7670=m
> -CONFIG_VIDEO_MT9P031=y
> -CONFIG_VIDEO_MT9V011=m
> -CONFIG_VIDEO_MT9V032=y
> -# CONFIG_VIDEO_TCM825X is not set
> -# CONFIG_VIDEO_SAA7110 is not set
> -CONFIG_VIDEO_SAA711X=m
> -# CONFIG_VIDEO_SAA717X is not set
> -# CONFIG_VIDEO_SAA7191 is not set
> -CONFIG_VIDEO_TVP514X=m
> -CONFIG_VIDEO_TVP5150=m
> -CONFIG_VIDEO_TVP7002=m
> -# CONFIG_VIDEO_VPX3220 is not set
> -
> -#
> -# Video and audio decoders
> -#
> -CONFIG_VIDEO_CX25840=m
> -
> -#
> -# MPEG video encoders
> -#
> -CONFIG_VIDEO_CX2341X=m
> -
> -#
> -# Video encoders
> -#
> -# CONFIG_VIDEO_SAA7127 is not set
> -# CONFIG_VIDEO_SAA7185 is not set
> -# CONFIG_VIDEO_ADV7170 is not set
> -# CONFIG_VIDEO_ADV7175 is not set
> -# CONFIG_VIDEO_THS7303 is not set
> -# CONFIG_VIDEO_ADV7343 is not set
> -# CONFIG_VIDEO_AK881X is not set
> -
> -#
> -# Video improvement chips
> -#
> -# CONFIG_VIDEO_UPD64031A is not set
> -# CONFIG_VIDEO_UPD64083 is not set
> -CONFIG_VIDEO_VIVI=m
> -CONFIG_VIDEO_VPSS_SYSTEM=m
> -CONFIG_VIDEO_VPFE_CAPTURE=y
> -CONFIG_VIDEO_DM6446_CCDC=m
> -CONFIG_VIDEO_OMAP2_VOUT=y
> -# CONFIG_VIDEO_CPIA2 is not set
> -CONFIG_VIDEO_TIMBERDALE=m
> -# CONFIG_VIDEO_AU0828 is not set
> -CONFIG_VIDEO_SR030PC30=m
> -CONFIG_VIDEO_NOON010PC30=m
> -CONFIG_VIDEO_OMAP3=y
> -CONFIG_VIDEO_OMAP3_DEBUG=y
> -# CONFIG_SOC_CAMERA is not set
> -CONFIG_V4L_USB_DRIVERS=y
> -CONFIG_USB_VIDEO_CLASS=m
> -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
> -CONFIG_USB_GSPCA=m
> -CONFIG_USB_M5602=m
> -CONFIG_USB_STV06XX=m
> -# CONFIG_USB_GL860 is not set
> -CONFIG_USB_GSPCA_BENQ=m
> -CONFIG_USB_GSPCA_CONEX=m
> -CONFIG_USB_GSPCA_CPIA1=m
> -CONFIG_USB_GSPCA_ETOMS=m
> -CONFIG_USB_GSPCA_FINEPIX=m
> -# CONFIG_USB_GSPCA_JEILINJ is not set
> -CONFIG_USB_GSPCA_KONICA=m
> -CONFIG_USB_GSPCA_MARS=m
> -# CONFIG_USB_GSPCA_MR97310A is not set
> -CONFIG_USB_GSPCA_NW80X=m
> -CONFIG_USB_GSPCA_OV519=m
> -CONFIG_USB_GSPCA_OV534=m
> -CONFIG_USB_GSPCA_OV534_9=m
> -CONFIG_USB_GSPCA_PAC207=m
> -# CONFIG_USB_GSPCA_PAC7302 is not set
> -CONFIG_USB_GSPCA_PAC7311=m
> -CONFIG_USB_GSPCA_SN9C2028=m
> -# CONFIG_USB_GSPCA_SN9C20X is not set
> -CONFIG_USB_GSPCA_SONIXB=m
> -CONFIG_USB_GSPCA_SONIXJ=m
> -CONFIG_USB_GSPCA_SPCA500=m
> -CONFIG_USB_GSPCA_SPCA501=m
> -CONFIG_USB_GSPCA_SPCA505=m
> -CONFIG_USB_GSPCA_SPCA506=m
> -CONFIG_USB_GSPCA_SPCA508=m
> -CONFIG_USB_GSPCA_SPCA561=m
> -CONFIG_USB_GSPCA_SPCA1528=m
> -# CONFIG_USB_GSPCA_SQ905 is not set
> -# CONFIG_USB_GSPCA_SQ905C is not set
> -CONFIG_USB_GSPCA_SQ930X=m
> -CONFIG_USB_GSPCA_STK014=m
> -# CONFIG_USB_GSPCA_STV0680 is not set
> -CONFIG_USB_GSPCA_SUNPLUS=m
> -CONFIG_USB_GSPCA_T613=m
> -CONFIG_USB_GSPCA_TV8532=m
> -CONFIG_USB_GSPCA_VC032X=m
> -CONFIG_USB_GSPCA_VICAM=m
> -CONFIG_USB_GSPCA_XIRLINK_CIT=m
> -CONFIG_USB_GSPCA_ZC3XX=m
> -CONFIG_VIDEO_PVRUSB2=m
> -CONFIG_VIDEO_PVRUSB2_SYSFS=y
> -CONFIG_VIDEO_PVRUSB2_DVB=y
> -# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
> -CONFIG_VIDEO_HDPVR=m
> -CONFIG_VIDEO_EM28XX=m
> -CONFIG_VIDEO_EM28XX_ALSA=m
> -CONFIG_VIDEO_EM28XX_DVB=m
> -CONFIG_VIDEO_TLG2300=m
> -CONFIG_VIDEO_CX231XX=m
> -CONFIG_VIDEO_CX231XX_RC=y
> -# CONFIG_VIDEO_CX231XX_ALSA is not set
> -CONFIG_VIDEO_CX231XX_DVB=m
> -CONFIG_VIDEO_USBVISION=m
> -CONFIG_USB_ET61X251=m
> -CONFIG_USB_SN9C102=m
> -CONFIG_USB_PWC=m
> -# CONFIG_USB_PWC_DEBUG is not set
> -CONFIG_USB_PWC_INPUT_EVDEV=y
> -CONFIG_USB_ZR364XX=m
> -CONFIG_USB_STKWEBCAM=m
> -CONFIG_USB_S2255=m
> -CONFIG_V4L_MEM2MEM_DRIVERS=y
> -CONFIG_VIDEO_MEM2MEM_TESTDEV=m
> -CONFIG_RADIO_ADAPTERS=y
> -# CONFIG_I2C_SI4713 is not set
> -# CONFIG_RADIO_SI4713 is not set
> -# CONFIG_USB_DSBR is not set
> -# CONFIG_RADIO_SI470X is not set
> -# CONFIG_USB_MR800 is not set
> -# CONFIG_RADIO_TEA5764 is not set
> -CONFIG_RADIO_SAA7706H=m
> -# CONFIG_RADIO_TEF6862 is not set
> -CONFIG_RADIO_WL1273=m
> -
> -#
> -# Texas Instruments WL128x FM driver (ST based)
> -#
> -CONFIG_RADIO_WL128X=m
> -CONFIG_DVB_MAX_ADAPTERS=8
> -CONFIG_DVB_DYNAMIC_MINORS=y
> -CONFIG_DVB_CAPTURE_DRIVERS=y
> -# CONFIG_TTPCI_EEPROM is not set
> -
> -#
> -# Supported USB Adapters
> -#
> -CONFIG_DVB_USB=m
> -# CONFIG_DVB_USB_DEBUG is not set
> -CONFIG_DVB_USB_A800=m
> -CONFIG_DVB_USB_DIBUSB_MB=m
> -# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
> -CONFIG_DVB_USB_DIBUSB_MC=m
> -CONFIG_DVB_USB_DIB0700=m
> -CONFIG_DVB_USB_UMT_010=m
> -CONFIG_DVB_USB_CXUSB=m
> -CONFIG_DVB_USB_M920X=m
> -CONFIG_DVB_USB_GL861=m
> -CONFIG_DVB_USB_AU6610=m
> -CONFIG_DVB_USB_DIGITV=m
> -CONFIG_DVB_USB_VP7045=m
> -CONFIG_DVB_USB_VP702X=m
> -CONFIG_DVB_USB_GP8PSK=m
> -CONFIG_DVB_USB_NOVA_T_USB2=m
> -CONFIG_DVB_USB_TTUSB2=m
> -CONFIG_DVB_USB_DTT200U=m
> -CONFIG_DVB_USB_OPERA1=m
> -CONFIG_DVB_USB_AF9005=m
> -CONFIG_DVB_USB_AF9005_REMOTE=m
> -CONFIG_DVB_USB_DW2102=m
> -CONFIG_DVB_USB_CINERGY_T2=m
> -CONFIG_DVB_USB_ANYSEE=m
> -CONFIG_DVB_USB_DTV5100=m
> -CONFIG_DVB_USB_AF9015=m
> -# CONFIG_DVB_USB_CE6230 is not set
> -# CONFIG_DVB_USB_FRIIO is not set
> -# CONFIG_DVB_USB_EC168 is not set
> -CONFIG_DVB_USB_AZ6027=m
> -CONFIG_DVB_USB_LME2510=m
> -CONFIG_DVB_USB_TECHNISAT_USB2=m
> -# CONFIG_SMS_SIANO_MDTV is not set
> -
> -#
> -# Supported FlexCopII (B2C2) Adapters
> -#
> -CONFIG_DVB_B2C2_FLEXCOP=m
> -CONFIG_DVB_B2C2_FLEXCOP_USB=m
> -# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
> -
> -#
> -# Supported DVB Frontends
> -#
> -# CONFIG_DVB_FE_CUSTOMISE is not set
> -
> -#
> -# Multistandard (satellite) frontends
> -#
> -CONFIG_DVB_STB0899=m
> -CONFIG_DVB_STB6100=m
> -CONFIG_DVB_STV090x=m
> -CONFIG_DVB_STV6110x=m
> -
> -#
> -# DVB-S (satellite) frontends
> -#
> -CONFIG_DVB_CX24123=m
> -CONFIG_DVB_MT312=m
> -CONFIG_DVB_ZL10039=m
> -CONFIG_DVB_S5H1420=m
> -CONFIG_DVB_STV0288=m
> -CONFIG_DVB_STB6000=m
> -CONFIG_DVB_STV0299=m
> -CONFIG_DVB_STV6110=m
> -CONFIG_DVB_STV0900=m
> -CONFIG_DVB_TDA10086=m
> -CONFIG_DVB_TUNER_ITD1000=m
> -CONFIG_DVB_TUNER_CX24113=m
> -CONFIG_DVB_TDA826X=m
> -CONFIG_DVB_CX24116=m
> -CONFIG_DVB_SI21XX=m
> -CONFIG_DVB_DS3000=m
> -
> -#
> -# DVB-T (terrestrial) frontends
> -#
> -CONFIG_DVB_CX22702=m
> -CONFIG_DVB_TDA1004X=m
> -CONFIG_DVB_NXT6000=m
> -CONFIG_DVB_MT352=m
> -CONFIG_DVB_ZL10353=m
> -CONFIG_DVB_DIB3000MB=m
> -CONFIG_DVB_DIB3000MC=m
> -CONFIG_DVB_DIB7000M=m
> -CONFIG_DVB_DIB7000P=m
> -CONFIG_DVB_TDA10048=m
> -CONFIG_DVB_AF9013=m
> -
> -#
> -# DVB-C (cable) frontends
> -#
> -CONFIG_DVB_TDA10023=m
> -CONFIG_DVB_STV0297=m
> -
> -#
> -# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
> -#
> -CONFIG_DVB_NXT200X=m
> -CONFIG_DVB_BCM3510=m
> -CONFIG_DVB_LGDT330X=m
> -CONFIG_DVB_LGDT3305=m
> -CONFIG_DVB_S5H1409=m
> -CONFIG_DVB_S5H1411=m
> -
> -#
> -# ISDB-T (terrestrial) frontends
> -#
> -CONFIG_DVB_S921=m
> -CONFIG_DVB_DIB8000=m
> -CONFIG_DVB_MB86A20S=m
> -
> -#
> -# Digital terrestrial only tuners/PLL
> -#
> -CONFIG_DVB_PLL=m
> -CONFIG_DVB_TUNER_DIB0070=m
> -CONFIG_DVB_TUNER_DIB0090=m
> -
> -#
> -# SEC control devices for DVB-S
> -#
> -CONFIG_DVB_LNBP21=m
> -CONFIG_DVB_ISL6421=m
> -CONFIG_DVB_LGS8GXX=m
> -CONFIG_DVB_ATBM8830=m
> -CONFIG_DVB_IX2505V=m
> -
> -#
> -# Tools to develop new frontends
> -#
> -# CONFIG_DVB_DUMMY_FE is not set
> -
> -#
> -# Graphics support
> -#
> -CONFIG_DRM=m
> -# CONFIG_VGASTATE is not set
> -# CONFIG_VIDEO_OUTPUT_CONTROL is not set
> -CONFIG_FB=y
> -# CONFIG_FIRMWARE_EDID is not set
> -# CONFIG_FB_DDC is not set
> -# CONFIG_FB_BOOT_VESA_SUPPORT is not set
> -CONFIG_FB_CFB_FILLRECT=y
> -CONFIG_FB_CFB_COPYAREA=y
> -CONFIG_FB_CFB_IMAGEBLIT=y
> -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
> -CONFIG_FB_SYS_FILLRECT=m
> -CONFIG_FB_SYS_COPYAREA=m
> -CONFIG_FB_SYS_IMAGEBLIT=m
> -# CONFIG_FB_FOREIGN_ENDIAN is not set
> -CONFIG_FB_SYS_FOPS=m
> -# CONFIG_FB_WMT_GE_ROPS is not set
> -CONFIG_FB_DEFERRED_IO=y
> -# CONFIG_FB_SVGALIB is not set
> -# CONFIG_FB_MACMODES is not set
> -# CONFIG_FB_BACKLIGHT is not set
> -CONFIG_FB_MODE_HELPERS=y
> -# CONFIG_FB_TILEBLITTING is not set
> -
> -#
> -# Frame buffer hardware drivers
> -#
> -# CONFIG_FB_S1D13XXX is not set
> -# CONFIG_FB_TMIO is not set
> -CONFIG_FB_UDL=m
> -# CONFIG_FB_VIRTUAL is not set
> -# CONFIG_FB_METRONOME is not set
> -# CONFIG_FB_MB862XX is not set
> -# CONFIG_FB_BROADSHEET is not set
> -# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
> -CONFIG_OMAP2_VRAM=y
> -CONFIG_OMAP2_VRFB=y
> -CONFIG_OMAP2_DSS=y
> -CONFIG_OMAP2_VRAM_SIZE=14
> -CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
> -# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
> -CONFIG_OMAP2_DSS_DPI=y
> -# CONFIG_OMAP2_DSS_RFBI is not set
> -CONFIG_OMAP2_DSS_VENC=y
> -# CONFIG_OMAP2_DSS_SDI is not set
> -CONFIG_OMAP2_DSS_DSI=y
> -CONFIG_OMAP2_DSS_USE_DSI_PLL=y
> -# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
> -CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
> -CONFIG_FB_OMAP2=y
> -CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
> -CONFIG_FB_OMAP2_NUM_FBS=2
> -
> -#
> -# OMAP2/3 Display Device Drivers
> -#
> -CONFIG_PANEL_GENERIC_DPI=y
> -# CONFIG_PANEL_LGPHILIPS_LB035Q02 is not set
> -CONFIG_PANEL_SHARP_LS037V7DW01=y
> -CONFIG_PANEL_NEC_NL8048HL11_01B=y
> -# CONFIG_PANEL_TAAL is not set
> -CONFIG_PANEL_TPO_TD043MTEA1=m
> -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
> -CONFIG_BACKLIGHT_CLASS_DEVICE=y
> -
> -#
> -# Display device support
> -#
> -CONFIG_DISPLAY_SUPPORT=y
> -
> -#
> -# Display hardware drivers
> -#
> -
> -#
> -# Console display driver support
> -#
> -CONFIG_DUMMY_CONSOLE=y
> -CONFIG_FRAMEBUFFER_CONSOLE=y
> -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
> -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
> -# CONFIG_FONTS is not set
> -CONFIG_FONT_8x8=y
> -CONFIG_FONT_8x16=y
> -CONFIG_LOGO=y
> -# CONFIG_LOGO_LINUX_MONO is not set
> -# CONFIG_LOGO_LINUX_VGA16 is not set
> -CONFIG_LOGO_LINUX_CLUT224=y
> -CONFIG_SOUND=y
> -CONFIG_SOUND_OSS_CORE=y
> -CONFIG_SOUND_OSS_CORE_PRECLAIM=y
> -CONFIG_SND=y
> -CONFIG_SND_TIMER=y
> -CONFIG_SND_PCM=y
> -CONFIG_SND_HWDEP=y
> -CONFIG_SND_RAWMIDI=y
> -CONFIG_SND_JACK=y
> -CONFIG_SND_SEQUENCER=m
> -# CONFIG_SND_SEQ_DUMMY is not set
> -CONFIG_SND_OSSEMUL=y
> -CONFIG_SND_MIXER_OSS=y
> -CONFIG_SND_PCM_OSS=y
> -CONFIG_SND_PCM_OSS_PLUGINS=y
> -CONFIG_SND_SEQUENCER_OSS=y
> -CONFIG_SND_HRTIMER=m
> -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
> -CONFIG_SND_DYNAMIC_MINORS=y
> -CONFIG_SND_SUPPORT_OLD_API=y
> -CONFIG_SND_VERBOSE_PROCFS=y
> -# CONFIG_SND_VERBOSE_PRINTK is not set
> -# CONFIG_SND_DEBUG is not set
> -CONFIG_SND_RAWMIDI_SEQ=m
> -# CONFIG_SND_OPL3_LIB_SEQ is not set
> -# CONFIG_SND_OPL4_LIB_SEQ is not set
> -# CONFIG_SND_SBAWE_SEQ is not set
> -# CONFIG_SND_EMU10K1_SEQ is not set
> -CONFIG_SND_DRIVERS=y
> -# CONFIG_SND_DUMMY is not set
> -CONFIG_SND_ALOOP=m
> -# CONFIG_SND_VIRMIDI is not set
> -# CONFIG_SND_MTPAV is not set
> -# CONFIG_SND_SERIAL_U16550 is not set
> -# CONFIG_SND_MPU401 is not set
> -# CONFIG_SND_ARM is not set
> -CONFIG_SND_SPI=y
> -CONFIG_SND_USB=y
> -CONFIG_SND_USB_AUDIO=y
> -CONFIG_SND_USB_UA101=m
> -CONFIG_SND_USB_CAIAQ=m
> -CONFIG_SND_USB_CAIAQ_INPUT=y
> -CONFIG_SND_USB_6FIRE=m
> -CONFIG_SND_SOC=y
> -CONFIG_SND_SOC_CACHE_LZO=y
> -CONFIG_SND_OMAP_SOC=y
> -CONFIG_SND_OMAP_SOC_MCBSP=y
> -CONFIG_SND_OMAP_SOC_OVERO=y
> -CONFIG_SND_OMAP_SOC_OMAP3EVM=y
> -CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y
> -CONFIG_SND_OMAP_SOC_ZOOM2=y
> -CONFIG_SND_SOC_I2C_AND_SPI=y
> -# CONFIG_SND_SOC_ALL_CODECS is not set
> -CONFIG_SND_SOC_TWL4030=y
> -# CONFIG_SOUND_PRIME is not set
> -CONFIG_HID_SUPPORT=y
> -CONFIG_HID=y
> -# CONFIG_HIDRAW is not set
> -
> -#
> -# USB Input Devices
> -#
> -CONFIG_USB_HID=y
> -# CONFIG_HID_PID is not set
> -# CONFIG_USB_HIDDEV is not set
> -
> -#
> -# Special HID drivers
> -#
> -# CONFIG_HID_3M_PCT is not set
> -CONFIG_HID_A4TECH=y
> -CONFIG_HID_ACRUX=m
> -# CONFIG_HID_ACRUX_FF is not set
> -CONFIG_HID_APPLE=y
> -CONFIG_HID_BELKIN=y
> -# CONFIG_HID_CANDO is not set
> -CONFIG_HID_CHERRY=y
> -CONFIG_HID_CHICONY=y
> -# CONFIG_HID_PRODIKEYS is not set
> -CONFIG_HID_CYPRESS=y
> -# CONFIG_HID_DRAGONRISE is not set
> -CONFIG_HID_EMS_FF=m
> -# CONFIG_HID_ELECOM is not set
> -CONFIG_HID_EZKEY=y
> -CONFIG_HID_KEYTOUCH=m
> -# CONFIG_HID_KYE is not set
> -CONFIG_HID_UCLOGIC=m
> -CONFIG_HID_WALTOP=m
> -CONFIG_HID_GYRATION=y
> -# CONFIG_HID_TWINHAN is not set
> -# CONFIG_HID_KENSINGTON is not set
> -CONFIG_HID_LCPOWER=m
> -CONFIG_HID_LOGITECH=y
> -# CONFIG_LOGITECH_FF is not set
> -# CONFIG_LOGIRUMBLEPAD2_FF is not set
> -# CONFIG_LOGIG940_FF is not set
> -# CONFIG_LOGIWII_FF is not set
> -CONFIG_HID_MAGICMOUSE=m
> -CONFIG_HID_MICROSOFT=y
> -# CONFIG_HID_MOSART is not set
> -CONFIG_HID_MONTEREY=y
> -CONFIG_HID_MULTITOUCH=m
> -CONFIG_HID_NTRIG=y
> -# CONFIG_HID_ORTEK is not set
> -CONFIG_HID_PANTHERLORD=y
> -# CONFIG_PANTHERLORD_FF is not set
> -CONFIG_HID_PETALYNX=y
> -CONFIG_HID_PICOLCD=m
> -CONFIG_HID_PICOLCD_FB=y
> -CONFIG_HID_PICOLCD_BACKLIGHT=y
> -CONFIG_HID_PICOLCD_LEDS=y
> -CONFIG_HID_QUANTA=m
> -CONFIG_HID_ROCCAT=m
> -CONFIG_HID_ROCCAT_COMMON=m
> -CONFIG_HID_ROCCAT_ARVO=m
> -CONFIG_HID_ROCCAT_KONE=m
> -CONFIG_HID_ROCCAT_KONEPLUS=m
> -CONFIG_HID_ROCCAT_KOVAPLUS=m
> -# CONFIG_HID_ROCCAT_PYRA is not set
> -CONFIG_HID_SAMSUNG=y
> -CONFIG_HID_SONY=y
> -CONFIG_HID_STANTUM=m
> -CONFIG_HID_SUNPLUS=y
> -# CONFIG_HID_GREENASIA is not set
> -# CONFIG_HID_SMARTJOYPLUS is not set
> -CONFIG_HID_TOPSEED=y
> -# CONFIG_HID_THRUSTMASTER is not set
> -# CONFIG_HID_WACOM is not set
> -# CONFIG_HID_ZEROPLUS is not set
> -# CONFIG_HID_ZYDACRON is not set
> -CONFIG_USB_SUPPORT=y
> -CONFIG_USB_ARCH_HAS_HCD=y
> -CONFIG_USB_ARCH_HAS_OHCI=y
> -CONFIG_USB_ARCH_HAS_EHCI=y
> -CONFIG_USB=y
> -# CONFIG_USB_DEBUG is not set
> -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
> -
> -#
> -# Miscellaneous USB options
> -#
> -CONFIG_USB_DEVICEFS=y
> -CONFIG_USB_DEVICE_CLASS=y
> -# CONFIG_USB_DYNAMIC_MINORS is not set
> -CONFIG_USB_SUSPEND=y
> -CONFIG_USB_OTG=y
> -# CONFIG_USB_OTG_WHITELIST is not set
> -# CONFIG_USB_OTG_BLACKLIST_HUB is not set
> -CONFIG_USB_MON=y
> -# CONFIG_USB_WUSB is not set
> -# CONFIG_USB_WUSB_CBAF is not set
> -
> -#
> -# USB Host Controller Drivers
> -#
> -# CONFIG_USB_C67X00_HCD is not set
> -CONFIG_USB_EHCI_HCD=y
> -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
> -CONFIG_USB_EHCI_TT_NEWSCHED=y
> -CONFIG_USB_EHCI_HCD_OMAP=y
> -# CONFIG_USB_OXU210HP_HCD is not set
> -# CONFIG_USB_ISP116X_HCD is not set
> -# CONFIG_USB_ISP1760_HCD is not set
> -# CONFIG_USB_ISP1362_HCD is not set
> -# CONFIG_USB_OHCI_HCD is not set
> -# CONFIG_USB_U132_HCD is not set
> -# CONFIG_USB_SL811_HCD is not set
> -# CONFIG_USB_R8A66597_HCD is not set
> -# CONFIG_USB_HWA_HCD is not set
> -CONFIG_USB_MUSB_HDRC=y
> -# CONFIG_USB_MUSB_TUSB6010 is not set
> -CONFIG_USB_MUSB_OMAP2PLUS=y
> -# CONFIG_USB_MUSB_AM35X is not set
> -# CONFIG_USB_MUSB_HOST is not set
> -# CONFIG_USB_MUSB_PERIPHERAL is not set
> -CONFIG_USB_MUSB_OTG=y
> -CONFIG_USB_GADGET_MUSB_HDRC=y
> -CONFIG_USB_MUSB_HDRC_HCD=y
> -# CONFIG_MUSB_PIO_ONLY is not set
> -CONFIG_USB_INVENTRA_DMA=y
> -# CONFIG_USB_TI_CPPI_DMA is not set
> -# CONFIG_USB_MUSB_DEBUG is not set
> -
> -#
> -# USB Device Class drivers
> -#
> -CONFIG_USB_ACM=m
> -CONFIG_USB_PRINTER=m
> -CONFIG_USB_WDM=m
> -CONFIG_USB_TMC=m
> -
> -#
> -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
> -#
> -
> -#
> -# also be needed; see USB_STORAGE Help for more info
> -#
> -CONFIG_USB_STORAGE=y
> -# CONFIG_USB_STORAGE_DEBUG is not set
> -CONFIG_USB_STORAGE_REALTEK=m
> -# CONFIG_USB_STORAGE_DATAFAB is not set
> -# CONFIG_USB_STORAGE_FREECOM is not set
> -# CONFIG_USB_STORAGE_ISD200 is not set
> -# CONFIG_USB_STORAGE_USBAT is not set
> -# CONFIG_USB_STORAGE_SDDR09 is not set
> -# CONFIG_USB_STORAGE_SDDR55 is not set
> -# CONFIG_USB_STORAGE_JUMPSHOT is not set
> -# CONFIG_USB_STORAGE_ALAUDA is not set
> -# CONFIG_USB_STORAGE_ONETOUCH is not set
> -# CONFIG_USB_STORAGE_KARMA is not set
> -# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
> -CONFIG_USB_STORAGE_ENE_UB6250=m
> -CONFIG_USB_UAS=m
> -# CONFIG_USB_LIBUSUAL is not set
> -
> -#
> -# USB Imaging devices
> -#
> -# CONFIG_USB_MDC800 is not set
> -# CONFIG_USB_MICROTEK is not set
> -
> -#
> -# USB port drivers
> -#
> -CONFIG_USB_SERIAL=m
> -CONFIG_USB_EZUSB=y
> -CONFIG_USB_SERIAL_GENERIC=y
> -CONFIG_USB_SERIAL_AIRCABLE=m
> -CONFIG_USB_SERIAL_ARK3116=m
> -CONFIG_USB_SERIAL_BELKIN=m
> -CONFIG_USB_SERIAL_CH341=m
> -# CONFIG_USB_SERIAL_WHITEHEAT is not set
> -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
> -# CONFIG_USB_SERIAL_CP210X is not set
> -CONFIG_USB_SERIAL_CYPRESS_M8=m
> -CONFIG_USB_SERIAL_EMPEG=m
> -CONFIG_USB_SERIAL_FTDI_SIO=m
> -CONFIG_USB_SERIAL_FUNSOFT=m
> -CONFIG_USB_SERIAL_VISOR=m
> -CONFIG_USB_SERIAL_IPAQ=m
> -CONFIG_USB_SERIAL_IR=m
> -CONFIG_USB_SERIAL_EDGEPORT=m
> -CONFIG_USB_SERIAL_EDGEPORT_TI=m
> -CONFIG_USB_SERIAL_GARMIN=m
> -CONFIG_USB_SERIAL_IPW=m
> -CONFIG_USB_SERIAL_IUU=m
> -CONFIG_USB_SERIAL_KEYSPAN_PDA=m
> -CONFIG_USB_SERIAL_KEYSPAN=m
> -CONFIG_USB_SERIAL_KEYSPAN_MPR=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA28=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA19=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
> -CONFIG_USB_SERIAL_KLSI=m
> -CONFIG_USB_SERIAL_KOBIL_SCT=m
> -CONFIG_USB_SERIAL_MCT_U232=m
> -CONFIG_USB_SERIAL_MOS7720=m
> -CONFIG_USB_SERIAL_MOS7840=m
> -CONFIG_USB_SERIAL_MOTOROLA=m
> -CONFIG_USB_SERIAL_NAVMAN=m
> -CONFIG_USB_SERIAL_PL2303=m
> -CONFIG_USB_SERIAL_OTI6858=m
> -CONFIG_USB_SERIAL_QCAUX=m
> -# CONFIG_USB_SERIAL_QUALCOMM is not set
> -CONFIG_USB_SERIAL_SPCP8X5=m
> -CONFIG_USB_SERIAL_HP4X=m
> -CONFIG_USB_SERIAL_SAFE=m
> -# CONFIG_USB_SERIAL_SAFE_PADDED is not set
> -CONFIG_USB_SERIAL_SAMBA=m
> -CONFIG_USB_SERIAL_SIEMENS_MPI=m
> -CONFIG_USB_SERIAL_SIERRAWIRELESS=m
> -# CONFIG_USB_SERIAL_SYMBOL is not set
> -# CONFIG_USB_SERIAL_TI is not set
> -CONFIG_USB_SERIAL_CYBERJACK=m
> -# CONFIG_USB_SERIAL_XIRCOM is not set
> -# CONFIG_USB_SERIAL_OPTION is not set
> -CONFIG_USB_SERIAL_OMNINET=m
> -CONFIG_USB_SERIAL_OPTICON=m
> -CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
> -CONFIG_USB_SERIAL_ZIO=m
> -CONFIG_USB_SERIAL_SSU100=m
> -CONFIG_USB_SERIAL_DEBUG=m
> -
> -#
> -# USB Miscellaneous drivers
> -#
> -CONFIG_USB_EMI62=m
> -CONFIG_USB_EMI26=m
> -# CONFIG_USB_ADUTUX is not set
> -# CONFIG_USB_SEVSEG is not set
> -# CONFIG_USB_RIO500 is not set
> -CONFIG_USB_LEGOTOWER=m
> -CONFIG_USB_LCD=m
> -CONFIG_USB_LED=m
> -CONFIG_USB_CYPRESS_CY7C63=m
> -CONFIG_USB_CYTHERM=m
> -CONFIG_USB_IDMOUSE=m
> -CONFIG_USB_FTDI_ELAN=m
> -# CONFIG_USB_APPLEDISPLAY is not set
> -CONFIG_USB_SISUSBVGA=m
> -CONFIG_USB_SISUSBVGA_CON=y
> -CONFIG_USB_LD=m
> -CONFIG_USB_TRANCEVIBRATOR=m
> -# CONFIG_USB_IOWARRIOR is not set
> -CONFIG_USB_TEST=m
> -# CONFIG_USB_ISIGHTFW is not set
> -CONFIG_USB_YUREX=m
> -CONFIG_USB_ATM=m
> -CONFIG_USB_SPEEDTOUCH=m
> -CONFIG_USB_CXACRU=m
> -CONFIG_USB_UEAGLEATM=m
> -CONFIG_USB_XUSBATM=m
> -CONFIG_USB_GADGET=y
> -# CONFIG_USB_GADGET_DEBUG is not set
> -# CONFIG_USB_GADGET_DEBUG_FILES is not set
> -CONFIG_USB_GADGET_DEBUG_FS=y
> -CONFIG_USB_GADGET_VBUS_DRAW=480
> -CONFIG_USB_GADGET_SELECTED=y
> -# CONFIG_USB_GADGET_FUSB300 is not set
> -# CONFIG_USB_GADGET_OMAP is not set
> -# CONFIG_USB_GADGET_R8A66597 is not set
> -# CONFIG_USB_GADGET_PXA_U2O is not set
> -# CONFIG_USB_GADGET_M66592 is not set
> -# CONFIG_USB_GADGET_DUMMY_HCD is not set
> -CONFIG_USB_GADGET_DUALSPEED=y
> -# CONFIG_USB_ZERO is not set
> -# CONFIG_USB_AUDIO is not set
> -CONFIG_USB_ETH=m
> -CONFIG_USB_ETH_RNDIS=y
> -# CONFIG_USB_ETH_EEM is not set
> -CONFIG_USB_G_NCM=m
> -# CONFIG_USB_GADGETFS is not set
> -CONFIG_USB_FUNCTIONFS=m
> -# CONFIG_USB_FUNCTIONFS_ETH is not set
> -CONFIG_USB_FUNCTIONFS_RNDIS=y
> -# CONFIG_USB_FUNCTIONFS_GENERIC is not set
> -# CONFIG_USB_FILE_STORAGE is not set
> -# CONFIG_USB_MASS_STORAGE is not set
> -# CONFIG_USB_G_SERIAL is not set
> -# CONFIG_USB_MIDI_GADGET is not set
> -# CONFIG_USB_G_PRINTER is not set
> -# CONFIG_USB_CDC_COMPOSITE is not set
> -# CONFIG_USB_G_MULTI is not set
> -CONFIG_USB_G_HID=m
> -CONFIG_USB_G_DBGP=m
> -# CONFIG_USB_G_DBGP_PRINTK is not set
> -CONFIG_USB_G_DBGP_SERIAL=y
> -CONFIG_USB_G_WEBCAM=m
> -
> -#
> -# OTG and related infrastructure
> -#
> -CONFIG_USB_OTG_UTILS=y
> -CONFIG_USB_GPIO_VBUS=y
> -# CONFIG_ISP1301_OMAP is not set
> -# CONFIG_USB_ULPI is not set
> -CONFIG_TWL4030_USB=y
> -CONFIG_TWL6030_USB=m
> -CONFIG_NOP_USB_XCEIV=y
> -CONFIG_MMC=y
> -# CONFIG_MMC_DEBUG is not set
> -CONFIG_MMC_UNSAFE_RESUME=y
> -# CONFIG_MMC_CLKGATE is not set
> -
> -#
> -# MMC/SD/SDIO Card Drivers
> -#
> -CONFIG_MMC_BLOCK=y
> -CONFIG_MMC_BLOCK_MINORS=8
> -CONFIG_MMC_BLOCK_BOUNCE=y
> -CONFIG_SDIO_UART=y
> -# CONFIG_MMC_TEST is not set
> -
> -#
> -# MMC/SD/SDIO Host Controller Drivers
> -#
> -# CONFIG_MMC_SDHCI is not set
> -# CONFIG_MMC_OMAP is not set
> -CONFIG_MMC_OMAP_HS=y
> -CONFIG_MMC_SPI=m
> -# CONFIG_MMC_DW is not set
> -CONFIG_MMC_USHC=m
> -# CONFIG_MEMSTICK is not set
> -CONFIG_NEW_LEDS=y
> -CONFIG_LEDS_CLASS=y
> -
> -#
> -# LED drivers
> -#
> -# CONFIG_LEDS_LM3530 is not set
> -# CONFIG_LEDS_PCA9532 is not set
> -CONFIG_LEDS_GPIO=y
> -CONFIG_LEDS_GPIO_PLATFORM=y
> -# CONFIG_LEDS_LP3944 is not set
> -CONFIG_LEDS_LP5521=m
> -CONFIG_LEDS_LP5523=m
> -# CONFIG_LEDS_PCA955X is not set
> -# CONFIG_LEDS_DAC124S085 is not set
> -CONFIG_LEDS_PWM=m
> -CONFIG_LEDS_REGULATOR=m
> -# CONFIG_LEDS_BD2802 is not set
> -# CONFIG_LEDS_LT3593 is not set
> -CONFIG_LEDS_TRIGGERS=y
> -
> -#
> -# LED Triggers
> -#
> -CONFIG_LEDS_TRIGGER_TIMER=m
> -CONFIG_LEDS_TRIGGER_HEARTBEAT=y
> -CONFIG_LEDS_TRIGGER_BACKLIGHT=m
> -CONFIG_LEDS_TRIGGER_GPIO=m
> -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
> -
> -#
> -# iptables trigger is under Netfilter config (LED target)
> -#
> -CONFIG_NFC_DEVICES=y
> -CONFIG_PN544_NFC=m
> -# CONFIG_ACCESSIBILITY is not set
> -CONFIG_RTC_LIB=y
> -CONFIG_RTC_CLASS=y
> -CONFIG_RTC_HCTOSYS=y
> -CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
> -# CONFIG_RTC_DEBUG is not set
> -
> -#
> -# RTC interfaces
> -#
> -CONFIG_RTC_INTF_SYSFS=y
> -CONFIG_RTC_INTF_PROC=y
> -CONFIG_RTC_INTF_DEV=y
> -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
> -# CONFIG_RTC_DRV_TEST is not set
> -
> -#
> -# I2C RTC drivers
> -#
> -CONFIG_RTC_DRV_DS1307=y
> -# CONFIG_RTC_DRV_DS1374 is not set
> -# CONFIG_RTC_DRV_DS1672 is not set
> -# CONFIG_RTC_DRV_DS3232 is not set
> -# CONFIG_RTC_DRV_MAX6900 is not set
> -# CONFIG_RTC_DRV_RS5C372 is not set
> -# CONFIG_RTC_DRV_ISL1208 is not set
> -# CONFIG_RTC_DRV_ISL12022 is not set
> -# CONFIG_RTC_DRV_X1205 is not set
> -# CONFIG_RTC_DRV_PCF8563 is not set
> -# CONFIG_RTC_DRV_PCF8583 is not set
> -# CONFIG_RTC_DRV_M41T80 is not set
> -CONFIG_RTC_DRV_BQ32K=m
> -CONFIG_RTC_DRV_TWL4030=m
> -# CONFIG_RTC_DRV_S35390A is not set
> -# CONFIG_RTC_DRV_FM3130 is not set
> -# CONFIG_RTC_DRV_RX8581 is not set
> -# CONFIG_RTC_DRV_RX8025 is not set
> -
> -#
> -# SPI RTC drivers
> -#
> -# CONFIG_RTC_DRV_M41T94 is not set
> -# CONFIG_RTC_DRV_DS1305 is not set
> -# CONFIG_RTC_DRV_DS1390 is not set
> -# CONFIG_RTC_DRV_MAX6902 is not set
> -# CONFIG_RTC_DRV_R9701 is not set
> -# CONFIG_RTC_DRV_RS5C348 is not set
> -# CONFIG_RTC_DRV_DS3234 is not set
> -# CONFIG_RTC_DRV_PCF2123 is not set
> -
> -#
> -# Platform RTC drivers
> -#
> -# CONFIG_RTC_DRV_CMOS is not set
> -# CONFIG_RTC_DRV_DS1286 is not set
> -# CONFIG_RTC_DRV_DS1511 is not set
> -# CONFIG_RTC_DRV_DS1553 is not set
> -# CONFIG_RTC_DRV_DS1742 is not set
> -# CONFIG_RTC_DRV_STK17TA8 is not set
> -# CONFIG_RTC_DRV_M48T86 is not set
> -# CONFIG_RTC_DRV_M48T35 is not set
> -# CONFIG_RTC_DRV_M48T59 is not set
> -# CONFIG_RTC_DRV_MSM6242 is not set
> -# CONFIG_RTC_DRV_BQ4802 is not set
> -# CONFIG_RTC_DRV_RP5C01 is not set
> -# CONFIG_RTC_DRV_V3020 is not set
> -
> -#
> -# on-CPU RTC drivers
> -#
> -# CONFIG_DMADEVICES is not set
> -CONFIG_TIMB_DMA=m
> -CONFIG_DMA_ENGINE=y
> -# CONFIG_AUXDISPLAY is not set
> -CONFIG_UIO=m
> -CONFIG_UIO_PDRV=m
> -CONFIG_UIO_PDRV_GENIRQ=m
> -CONFIG_STAGING=y
> -# CONFIG_STAGING_EXCLUDE_BUILD is not set
> -# CONFIG_VIDEO_TM6000 is not set
> -# CONFIG_USB_IP_COMMON is not set
> -CONFIG_W35UND=m
> -CONFIG_PRISM2_USB=m
> -CONFIG_ECHO=m
> -CONFIG_BRCM80211=m
> -CONFIG_BRCMFMAC=y
> -# CONFIG_BRCMDBG is not set
> -CONFIG_RT2870=m
> -# CONFIG_COMEDI is not set
> -# CONFIG_ASUS_OLED is not set
> -CONFIG_R8712U=m
> -CONFIG_R8712_AP=y
> -# CONFIG_TRANZPORT is not set
> -# CONFIG_POHMELFS is not set
> -# CONFIG_LINE6_USB is not set
> -# CONFIG_USB_SERIAL_QUATECH2 is not set
> -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
> -# CONFIG_VT6656 is not set
> -# CONFIG_IIO is not set
> -CONFIG_XVMALLOC=y
> -CONFIG_ZRAM=m
> -# CONFIG_ZRAM_DEBUG is not set
> -# CONFIG_FB_SM7XX is not set
> -# CONFIG_LIRC_STAGING is not set
> -# CONFIG_EASYCAP is not set
> -# CONFIG_TIDSPBRIDGE is not set
> -# CONFIG_MACH_OMAP3_WESTBRIDGE_AST_PNAND_HAL is not set
> -CONFIG_MACH_NO_WESTBRIDGE=y
> -# CONFIG_ATH6K_LEGACY is not set
> -CONFIG_USB_ENESTORAGE=m
> -CONFIG_BCM_WIMAX=m
> -CONFIG_FT1000=m
> -CONFIG_FT1000_USB=m
> -
> -#
> -# Speakup console speech
> -#
> -# CONFIG_SPEAKUP is not set
> -CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
> -CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
> -
> -#
> -# Altera FPGA firmware download module
> -#
> -# CONFIG_ALTERA_STAPL is not set
> -CONFIG_CLKDEV_LOOKUP=y
> -
> -#
> -# File systems
> -#
> -CONFIG_EXT2_FS=y
> -CONFIG_EXT2_FS_XATTR=y
> -CONFIG_EXT2_FS_POSIX_ACL=y
> -CONFIG_EXT2_FS_SECURITY=y
> -# CONFIG_EXT2_FS_XIP is not set
> -CONFIG_EXT3_FS=y
> -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
> -CONFIG_EXT3_FS_XATTR=y
> -CONFIG_EXT3_FS_POSIX_ACL=y
> -# CONFIG_EXT3_FS_SECURITY is not set
> -CONFIG_EXT4_FS=y
> -CONFIG_EXT4_FS_XATTR=y
> -CONFIG_EXT4_FS_POSIX_ACL=y
> -CONFIG_EXT4_FS_SECURITY=y
> -# CONFIG_EXT4_DEBUG is not set
> -CONFIG_JBD=y
> -# CONFIG_JBD_DEBUG is not set
> -CONFIG_JBD2=y
> -# CONFIG_JBD2_DEBUG is not set
> -CONFIG_FS_MBCACHE=y
> -CONFIG_REISERFS_FS=m
> -# CONFIG_REISERFS_CHECK is not set
> -CONFIG_REISERFS_PROC_INFO=y
> -CONFIG_REISERFS_FS_XATTR=y
> -# CONFIG_REISERFS_FS_POSIX_ACL is not set
> -# CONFIG_REISERFS_FS_SECURITY is not set
> -CONFIG_JFS_FS=m
> -CONFIG_JFS_POSIX_ACL=y
> -# CONFIG_JFS_SECURITY is not set
> -# CONFIG_JFS_DEBUG is not set
> -CONFIG_JFS_STATISTICS=y
> -CONFIG_XFS_FS=m
> -CONFIG_XFS_QUOTA=y
> -CONFIG_XFS_POSIX_ACL=y
> -CONFIG_XFS_RT=y
> -# CONFIG_XFS_DEBUG is not set
> -CONFIG_GFS2_FS=m
> -CONFIG_GFS2_FS_LOCKING_DLM=y
> -CONFIG_OCFS2_FS=m
> -CONFIG_OCFS2_FS_O2CB=m
> -CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
> -CONFIG_OCFS2_FS_STATS=y
> -CONFIG_OCFS2_DEBUG_MASKLOG=y
> -# CONFIG_OCFS2_DEBUG_FS is not set
> -CONFIG_BTRFS_FS=m
> -CONFIG_BTRFS_FS_POSIX_ACL=y
> -CONFIG_NILFS2_FS=m
> -CONFIG_FS_POSIX_ACL=y
> -CONFIG_EXPORTFS=y
> -CONFIG_FILE_LOCKING=y
> -CONFIG_FSNOTIFY=y
> -CONFIG_DNOTIFY=y
> -CONFIG_INOTIFY_USER=y
> -CONFIG_FANOTIFY=y
> -CONFIG_QUOTA=y
> -# CONFIG_QUOTA_NETLINK_INTERFACE is not set
> -CONFIG_PRINT_QUOTA_WARNING=y
> -# CONFIG_QUOTA_DEBUG is not set
> -CONFIG_QUOTA_TREE=y
> -# CONFIG_QFMT_V1 is not set
> -CONFIG_QFMT_V2=y
> -CONFIG_QUOTACTL=y
> -CONFIG_AUTOFS4_FS=y
> -CONFIG_FUSE_FS=m
> -CONFIG_CUSE=m
> -CONFIG_GENERIC_ACL=y
> -
> -#
> -# Caches
> -#
> -CONFIG_FSCACHE=m
> -CONFIG_FSCACHE_STATS=y
> -CONFIG_FSCACHE_HISTOGRAM=y
> -# CONFIG_FSCACHE_DEBUG is not set
> -# CONFIG_FSCACHE_OBJECT_LIST is not set
> -CONFIG_CACHEFILES=m
> -# CONFIG_CACHEFILES_DEBUG is not set
> -CONFIG_CACHEFILES_HISTOGRAM=y
> -
> -#
> -# CD-ROM/DVD Filesystems
> -#
> -CONFIG_ISO9660_FS=m
> -CONFIG_JOLIET=y
> -CONFIG_ZISOFS=y
> -CONFIG_UDF_FS=m
> -CONFIG_UDF_NLS=y
> -
> -#
> -# DOS/FAT/NT Filesystems
> -#
> -CONFIG_FAT_FS=y
> -CONFIG_MSDOS_FS=y
> -CONFIG_VFAT_FS=y
> -CONFIG_FAT_DEFAULT_CODEPAGE=437
> -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
> -CONFIG_NTFS_FS=m
> -# CONFIG_NTFS_DEBUG is not set
> -# CONFIG_NTFS_RW is not set
> -
> -#
> -# Pseudo filesystems
> -#
> -CONFIG_PROC_FS=y
> -CONFIG_PROC_SYSCTL=y
> -CONFIG_PROC_PAGE_MONITOR=y
> -CONFIG_SYSFS=y
> -CONFIG_TMPFS=y
> -CONFIG_TMPFS_POSIX_ACL=y
> -# CONFIG_HUGETLB_PAGE is not set
> -CONFIG_CONFIGFS_FS=m
> -CONFIG_MISC_FILESYSTEMS=y
> -CONFIG_ADFS_FS=m
> -# CONFIG_ADFS_FS_RW is not set
> -CONFIG_AFFS_FS=m
> -# CONFIG_ECRYPT_FS is not set
> -CONFIG_UNION_FS=m
> -CONFIG_UNION_FS_XATTR=y
> -# CONFIG_UNION_FS_DEBUG is not set
> -CONFIG_HFS_FS=m
> -CONFIG_HFSPLUS_FS=m
> -CONFIG_BEFS_FS=m
> -# CONFIG_BEFS_DEBUG is not set
> -CONFIG_BFS_FS=m
> -CONFIG_EFS_FS=m
> -CONFIG_JFFS2_FS=y
> -CONFIG_JFFS2_FS_DEBUG=0
> -CONFIG_JFFS2_FS_WRITEBUFFER=y
> -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
> -CONFIG_JFFS2_SUMMARY=y
> -CONFIG_JFFS2_FS_XATTR=y
> -CONFIG_JFFS2_FS_POSIX_ACL=y
> -CONFIG_JFFS2_FS_SECURITY=y
> -CONFIG_JFFS2_COMPRESSION_OPTIONS=y
> -CONFIG_JFFS2_ZLIB=y
> -CONFIG_JFFS2_LZO=y
> -CONFIG_JFFS2_RTIME=y
> -CONFIG_JFFS2_RUBIN=y
> -# CONFIG_JFFS2_CMODE_NONE is not set
> -# CONFIG_JFFS2_CMODE_PRIORITY is not set
> -# CONFIG_JFFS2_CMODE_SIZE is not set
> -CONFIG_JFFS2_CMODE_FAVOURLZO=y
> -CONFIG_UBIFS_FS=y
> -CONFIG_UBIFS_FS_XATTR=y
> -CONFIG_UBIFS_FS_ADVANCED_COMPR=y
> -CONFIG_UBIFS_FS_LZO=y
> -CONFIG_UBIFS_FS_ZLIB=y
> -# CONFIG_UBIFS_FS_DEBUG is not set
> -CONFIG_LOGFS=m
> -CONFIG_CRAMFS=m
> -CONFIG_SQUASHFS=y
> -# CONFIG_SQUASHFS_XATTR is not set
> -CONFIG_SQUASHFS_LZO=y
> -CONFIG_SQUASHFS_XZ=y
> -# CONFIG_SQUASHFS_EMBEDDED is not set
> -CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
> -CONFIG_VXFS_FS=m
> -CONFIG_MINIX_FS=m
> -CONFIG_OMFS_FS=m
> -CONFIG_HPFS_FS=m
> -CONFIG_QNX4FS_FS=m
> -CONFIG_ROMFS_FS=m
> -CONFIG_ROMFS_BACKED_BY_BLOCK=y
> -# CONFIG_ROMFS_BACKED_BY_MTD is not set
> -# CONFIG_ROMFS_BACKED_BY_BOTH is not set
> -CONFIG_ROMFS_ON_BLOCK=y
> -CONFIG_PSTORE=y
> -CONFIG_SYSV_FS=m
> -CONFIG_UFS_FS=m
> -# CONFIG_UFS_FS_WRITE is not set
> -# CONFIG_UFS_DEBUG is not set
> -CONFIG_NETWORK_FILESYSTEMS=y
> -CONFIG_NFS_FS=y
> -CONFIG_NFS_V3=y
> -CONFIG_NFS_V3_ACL=y
> -CONFIG_NFS_V4=y
> -CONFIG_NFS_V4_1=y
> -CONFIG_PNFS_FILE_LAYOUT=y
> -CONFIG_ROOT_NFS=y
> -# CONFIG_NFS_USE_LEGACY_DNS is not set
> -CONFIG_NFS_USE_KERNEL_DNS=y
> -# CONFIG_NFS_USE_NEW_IDMAPPER is not set
> -CONFIG_NFSD=m
> -CONFIG_NFSD_DEPRECATED=y
> -CONFIG_NFSD_V2_ACL=y
> -CONFIG_NFSD_V3=y
> -CONFIG_NFSD_V3_ACL=y
> -CONFIG_NFSD_V4=y
> -CONFIG_LOCKD=y
> -CONFIG_LOCKD_V4=y
> -CONFIG_NFS_ACL_SUPPORT=y
> -CONFIG_NFS_COMMON=y
> -CONFIG_SUNRPC=y
> -CONFIG_SUNRPC_GSS=y
> -CONFIG_RPCSEC_GSS_KRB5=m
> -CONFIG_CEPH_FS=m
> -CONFIG_CIFS=m
> -CONFIG_CIFS_STATS=y
> -CONFIG_CIFS_STATS2=y
> -# CONFIG_CIFS_WEAK_PW_HASH is not set
> -# CONFIG_CIFS_UPCALL is not set
> -CONFIG_CIFS_XATTR=y
> -CONFIG_CIFS_POSIX=y
> -# CONFIG_CIFS_DEBUG2 is not set
> -CONFIG_CIFS_DFS_UPCALL=y
> -CONFIG_CIFS_FSCACHE=y
> -CONFIG_CIFS_ACL=y
> -CONFIG_CIFS_EXPERIMENTAL=y
> -CONFIG_NCP_FS=m
> -# CONFIG_NCPFS_PACKET_SIGNING is not set
> -# CONFIG_NCPFS_IOCTL_LOCKING is not set
> -# CONFIG_NCPFS_STRONG is not set
> -# CONFIG_NCPFS_NFS_NS is not set
> -# CONFIG_NCPFS_OS2_NS is not set
> -# CONFIG_NCPFS_SMALLDOS is not set
> -# CONFIG_NCPFS_NLS is not set
> -# CONFIG_NCPFS_EXTRAS is not set
> -CONFIG_CODA_FS=m
> -CONFIG_AFS_FS=m
> -# CONFIG_AFS_DEBUG is not set
> -# CONFIG_AFS_FSCACHE is not set
> -CONFIG_9P_FS=m
> -CONFIG_9P_FSCACHE=y
> -CONFIG_9P_FS_POSIX_ACL=y
> -
> -#
> -# Partition Types
> -#
> -CONFIG_PARTITION_ADVANCED=y
> -# CONFIG_ACORN_PARTITION is not set
> -# CONFIG_OSF_PARTITION is not set
> -# CONFIG_AMIGA_PARTITION is not set
> -# CONFIG_ATARI_PARTITION is not set
> -CONFIG_MAC_PARTITION=y
> -CONFIG_MSDOS_PARTITION=y
> -CONFIG_BSD_DISKLABEL=y
> -CONFIG_MINIX_SUBPARTITION=y
> -CONFIG_SOLARIS_X86_PARTITION=y
> -# CONFIG_UNIXWARE_DISKLABEL is not set
> -CONFIG_LDM_PARTITION=y
> -CONFIG_LDM_DEBUG=y
> -# CONFIG_SGI_PARTITION is not set
> -# CONFIG_ULTRIX_PARTITION is not set
> -# CONFIG_SUN_PARTITION is not set
> -# CONFIG_KARMA_PARTITION is not set
> -CONFIG_EFI_PARTITION=y
> -# CONFIG_SYSV68_PARTITION is not set
> -CONFIG_NLS=y
> -CONFIG_NLS_DEFAULT="iso8859-1"
> -CONFIG_NLS_CODEPAGE_437=y
> -CONFIG_NLS_CODEPAGE_737=m
> -CONFIG_NLS_CODEPAGE_775=m
> -CONFIG_NLS_CODEPAGE_850=m
> -CONFIG_NLS_CODEPAGE_852=m
> -CONFIG_NLS_CODEPAGE_855=m
> -CONFIG_NLS_CODEPAGE_857=m
> -CONFIG_NLS_CODEPAGE_860=m
> -CONFIG_NLS_CODEPAGE_861=m
> -CONFIG_NLS_CODEPAGE_862=m
> -CONFIG_NLS_CODEPAGE_863=m
> -CONFIG_NLS_CODEPAGE_864=m
> -CONFIG_NLS_CODEPAGE_865=m
> -CONFIG_NLS_CODEPAGE_866=m
> -CONFIG_NLS_CODEPAGE_869=m
> -CONFIG_NLS_CODEPAGE_936=m
> -CONFIG_NLS_CODEPAGE_950=m
> -CONFIG_NLS_CODEPAGE_932=m
> -CONFIG_NLS_CODEPAGE_949=m
> -CONFIG_NLS_CODEPAGE_874=m
> -CONFIG_NLS_ISO8859_8=m
> -CONFIG_NLS_CODEPAGE_1250=m
> -CONFIG_NLS_CODEPAGE_1251=m
> -CONFIG_NLS_ASCII=m
> -CONFIG_NLS_ISO8859_1=y
> -CONFIG_NLS_ISO8859_2=m
> -CONFIG_NLS_ISO8859_3=m
> -CONFIG_NLS_ISO8859_4=m
> -CONFIG_NLS_ISO8859_5=m
> -CONFIG_NLS_ISO8859_6=m
> -CONFIG_NLS_ISO8859_7=m
> -CONFIG_NLS_ISO8859_9=m
> -CONFIG_NLS_ISO8859_13=m
> -CONFIG_NLS_ISO8859_14=m
> -CONFIG_NLS_ISO8859_15=m
> -CONFIG_NLS_KOI8_R=m
> -CONFIG_NLS_KOI8_U=m
> -CONFIG_NLS_UTF8=y
> -CONFIG_DLM=m
> -# CONFIG_DLM_DEBUG is not set
> -
> -#
> -# Kernel hacking
> -#
> -CONFIG_PRINTK_TIME=y
> -CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
> -CONFIG_ENABLE_WARN_DEPRECATED=y
> -CONFIG_ENABLE_MUST_CHECK=y
> -CONFIG_FRAME_WARN=1024
> -CONFIG_MAGIC_SYSRQ=y
> -# CONFIG_STRIP_ASM_SYMS is not set
> -# CONFIG_UNUSED_SYMBOLS is not set
> -CONFIG_DEBUG_FS=y
> -# CONFIG_HEADERS_CHECK is not set
> -# CONFIG_DEBUG_SECTION_MISMATCH is not set
> -CONFIG_DEBUG_KERNEL=y
> -# CONFIG_DEBUG_SHIRQ is not set
> -# CONFIG_LOCKUP_DETECTOR is not set
> -# CONFIG_HARDLOCKUP_DETECTOR is not set
> -CONFIG_DETECT_HUNG_TASK=y
> -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
> -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
> -CONFIG_SCHED_DEBUG=y
> -CONFIG_SCHEDSTATS=y
> -CONFIG_TIMER_STATS=y
> -# CONFIG_DEBUG_OBJECTS is not set
> -# CONFIG_DEBUG_SLAB is not set
> -# CONFIG_DEBUG_KMEMLEAK is not set
> -# CONFIG_DEBUG_RT_MUTEXES is not set
> -# CONFIG_RT_MUTEX_TESTER is not set
> -# CONFIG_DEBUG_SPINLOCK is not set
> -CONFIG_DEBUG_MUTEXES=y
> -# CONFIG_DEBUG_LOCK_ALLOC is not set
> -# CONFIG_PROVE_LOCKING is not set
> -# CONFIG_SPARSE_RCU_POINTER is not set
> -# CONFIG_LOCK_STAT is not set
> -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
> -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
> -# CONFIG_DEBUG_KOBJECT is not set
> -# CONFIG_DEBUG_BUGVERBOSE is not set
> -# CONFIG_DEBUG_INFO is not set
> -# CONFIG_DEBUG_VM is not set
> -# CONFIG_DEBUG_WRITECOUNT is not set
> -# CONFIG_DEBUG_MEMORY_INIT is not set
> -# CONFIG_DEBUG_LIST is not set
> -# CONFIG_TEST_LIST_SORT is not set
> -# CONFIG_DEBUG_SG is not set
> -# CONFIG_DEBUG_NOTIFIERS is not set
> -# CONFIG_DEBUG_CREDENTIALS is not set
> -# CONFIG_BOOT_PRINTK_DELAY is not set
> -# CONFIG_RCU_TORTURE_TEST is not set
> -# CONFIG_BACKTRACE_SELF_TEST is not set
> -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
> -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
> -# CONFIG_LKDTM is not set
> -# CONFIG_FAULT_INJECTION is not set
> -# CONFIG_LATENCYTOP is not set
> -# CONFIG_SYSCTL_SYSCALL_CHECK is not set
> -# CONFIG_DEBUG_PAGEALLOC is not set
> -CONFIG_HAVE_FUNCTION_TRACER=y
> -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
> -CONFIG_HAVE_DYNAMIC_FTRACE=y
> -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
> -CONFIG_HAVE_C_RECORDMCOUNT=y
> -CONFIG_RING_BUFFER=y
> -CONFIG_RING_BUFFER_ALLOW_SWAP=y
> -CONFIG_TRACING_SUPPORT=y
> -CONFIG_FTRACE=y
> -# CONFIG_FUNCTION_TRACER is not set
> -# CONFIG_IRQSOFF_TRACER is not set
> -# CONFIG_SCHED_TRACER is not set
> -# CONFIG_ENABLE_DEFAULT_TRACERS is not set
> -CONFIG_BRANCH_PROFILE_NONE=y
> -# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
> -# CONFIG_PROFILE_ALL_BRANCHES is not set
> -# CONFIG_STACK_TRACER is not set
> -# CONFIG_BLK_DEV_IO_TRACE is not set
> -# CONFIG_RING_BUFFER_BENCHMARK is not set
> -# CONFIG_DYNAMIC_DEBUG is not set
> -# CONFIG_DMA_API_DEBUG is not set
> -# CONFIG_ATOMIC64_SELFTEST is not set
> -# CONFIG_ASYNC_RAID6_TEST is not set
> -# CONFIG_SAMPLES is not set
> -CONFIG_HAVE_ARCH_KGDB=y
> -# CONFIG_KGDB is not set
> -# CONFIG_TEST_KSTRTOX is not set
> -# CONFIG_STRICT_DEVMEM is not set
> -CONFIG_ARM_UNWIND=y
> -# CONFIG_DEBUG_USER is not set
> -# CONFIG_DEBUG_STACK_USAGE is not set
> -# CONFIG_DEBUG_LL is not set
> -# CONFIG_OC_ETM is not set
> -
> -#
> -# Security options
> -#
> -CONFIG_KEYS=y
> -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
> -# CONFIG_SECURITY_DMESG_RESTRICT is not set
> -# CONFIG_SECURITY is not set
> -# CONFIG_SECURITYFS is not set
> -CONFIG_DEFAULT_SECURITY_DAC=y
> -CONFIG_DEFAULT_SECURITY=""
> -CONFIG_XOR_BLOCKS=m
> -CONFIG_ASYNC_CORE=m
> -CONFIG_ASYNC_MEMCPY=m
> -CONFIG_ASYNC_XOR=m
> -CONFIG_ASYNC_PQ=m
> -CONFIG_ASYNC_RAID6_RECOV=m
> -CONFIG_CRYPTO=y
> -
> -#
> -# Crypto core or helper
> -#
> -CONFIG_CRYPTO_ALGAPI=y
> -CONFIG_CRYPTO_ALGAPI2=y
> -CONFIG_CRYPTO_AEAD=m
> -CONFIG_CRYPTO_AEAD2=y
> -CONFIG_CRYPTO_BLKCIPHER=y
> -CONFIG_CRYPTO_BLKCIPHER2=y
> -CONFIG_CRYPTO_HASH=y
> -CONFIG_CRYPTO_HASH2=y
> -CONFIG_CRYPTO_RNG=m
> -CONFIG_CRYPTO_RNG2=y
> -CONFIG_CRYPTO_PCOMP2=y
> -CONFIG_CRYPTO_MANAGER=y
> -CONFIG_CRYPTO_MANAGER2=y
> -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
> -CONFIG_CRYPTO_GF128MUL=m
> -CONFIG_CRYPTO_NULL=m
> -CONFIG_CRYPTO_WORKQUEUE=y
> -CONFIG_CRYPTO_CRYPTD=m
> -CONFIG_CRYPTO_AUTHENC=m
> -CONFIG_CRYPTO_TEST=m
> -
> -#
> -# Authenticated Encryption with Associated Data
> -#
> -CONFIG_CRYPTO_CCM=m
> -CONFIG_CRYPTO_GCM=m
> -CONFIG_CRYPTO_SEQIV=m
> -
> -#
> -# Block modes
> -#
> -CONFIG_CRYPTO_CBC=y
> -CONFIG_CRYPTO_CTR=m
> -CONFIG_CRYPTO_CTS=m
> -CONFIG_CRYPTO_ECB=y
> -CONFIG_CRYPTO_LRW=m
> -CONFIG_CRYPTO_PCBC=m
> -CONFIG_CRYPTO_XTS=m
> -
> -#
> -# Hash modes
> -#
> -CONFIG_CRYPTO_HMAC=m
> -CONFIG_CRYPTO_XCBC=m
> -# CONFIG_CRYPTO_VMAC is not set
> -
> -#
> -# Digest
> -#
> -CONFIG_CRYPTO_CRC32C=y
> -CONFIG_CRYPTO_GHASH=m
> -CONFIG_CRYPTO_MD4=m
> -CONFIG_CRYPTO_MD5=y
> -CONFIG_CRYPTO_MICHAEL_MIC=y
> -CONFIG_CRYPTO_RMD128=m
> -CONFIG_CRYPTO_RMD160=m
> -CONFIG_CRYPTO_RMD256=m
> -CONFIG_CRYPTO_RMD320=m
> -CONFIG_CRYPTO_SHA1=m
> -CONFIG_CRYPTO_SHA256=m
> -CONFIG_CRYPTO_SHA512=m
> -CONFIG_CRYPTO_TGR192=m
> -CONFIG_CRYPTO_WP512=m
> -
> -#
> -# Ciphers
> -#
> -CONFIG_CRYPTO_AES=y
> -CONFIG_CRYPTO_ANUBIS=m
> -CONFIG_CRYPTO_ARC4=y
> -CONFIG_CRYPTO_BLOWFISH=m
> -CONFIG_CRYPTO_CAMELLIA=m
> -CONFIG_CRYPTO_CAST5=m
> -CONFIG_CRYPTO_CAST6=m
> -CONFIG_CRYPTO_DES=y
> -CONFIG_CRYPTO_FCRYPT=m
> -CONFIG_CRYPTO_KHAZAD=m
> -CONFIG_CRYPTO_SALSA20=m
> -CONFIG_CRYPTO_SEED=m
> -CONFIG_CRYPTO_SERPENT=m
> -CONFIG_CRYPTO_TEA=m
> -CONFIG_CRYPTO_TWOFISH=m
> -CONFIG_CRYPTO_TWOFISH_COMMON=m
> -
> -#
> -# Compression
> -#
> -CONFIG_CRYPTO_DEFLATE=y
> -# CONFIG_CRYPTO_ZLIB is not set
> -CONFIG_CRYPTO_LZO=y
> -
> -#
> -# Random Number Generation
> -#
> -CONFIG_CRYPTO_ANSI_CPRNG=m
> -CONFIG_CRYPTO_USER_API=m
> -CONFIG_CRYPTO_USER_API_HASH=m
> -CONFIG_CRYPTO_USER_API_SKCIPHER=m
> -CONFIG_CRYPTO_HW=y
> -CONFIG_CRYPTO_DEV_OMAP_SHAM=m
> -CONFIG_CRYPTO_DEV_OMAP_AES=m
> -# CONFIG_BINARY_PRINTF is not set
> -
> -#
> -# Library routines
> -#
> -CONFIG_RAID6_PQ=m
> -CONFIG_BITREVERSE=y
> -CONFIG_GENERIC_FIND_LAST_BIT=y
> -CONFIG_CRC_CCITT=y
> -CONFIG_CRC16=y
> -CONFIG_CRC_T10DIF=y
> -CONFIG_CRC_ITU_T=y
> -CONFIG_CRC32=y
> -CONFIG_CRC7=y
> -CONFIG_LIBCRC32C=y
> -CONFIG_ZLIB_INFLATE=y
> -CONFIG_ZLIB_DEFLATE=y
> -CONFIG_LZO_COMPRESS=y
> -CONFIG_LZO_DECOMPRESS=y
> -CONFIG_XZ_DEC=y
> -CONFIG_XZ_DEC_X86=y
> -CONFIG_XZ_DEC_POWERPC=y
> -CONFIG_XZ_DEC_IA64=y
> -CONFIG_XZ_DEC_ARM=y
> -CONFIG_XZ_DEC_ARMTHUMB=y
> -CONFIG_XZ_DEC_SPARC=y
> -CONFIG_XZ_DEC_BCJ=y
> -CONFIG_XZ_DEC_TEST=m
> -CONFIG_DECOMPRESS_GZIP=y
> -CONFIG_DECOMPRESS_BZIP2=y
> -CONFIG_DECOMPRESS_LZMA=y
> -CONFIG_DECOMPRESS_XZ=y
> -CONFIG_DECOMPRESS_LZO=y
> -CONFIG_TEXTSEARCH=y
> -CONFIG_TEXTSEARCH_KMP=m
> -CONFIG_TEXTSEARCH_BM=m
> -CONFIG_TEXTSEARCH_FSM=m
> -CONFIG_BTREE=y
> -CONFIG_HAS_IOMEM=y
> -CONFIG_HAS_IOPORT=y
> -CONFIG_HAS_DMA=y
> -CONFIG_NLATTR=y
> -CONFIG_AVERAGE=y
> diff --git a/recipes-kernel/linux/linux-3.0+3.1rc/fixes/vout.patch b/recipes-
> kernel/linux/linux-3.0+3.1rc/fixes/vout.patch
> deleted file mode 100644
> index 5a14540..0000000
> --- a/recipes-kernel/linux/linux-3.0+3.1rc/fixes/vout.patch
> +++ /dev/null
> @@ -1,79 +0,0 @@
> -Delivered-To: koen at dominion.thruhere.net
> -Received: by 10.236.157.72 with SMTP id n48cs4581yhk;
> -        Fri, 5 Aug 2011 00:10:45 -0700 (PDT)
> -Received: by 10.147.146.12 with SMTP id
> y12mr1585882yan.12.1312528245335;
> -        Fri, 05 Aug 2011 00:10:45 -0700 (PDT)
> -Return-Path: <archit at ti.com>
> -Received: from bear.ext.ti.com (bear.ext.ti.com [192.94.94.41])
> -        by mx.google.com with ESMTPS id
> x20si3422127ani.205.2011.08.05.00.10.45
> -        (version=TLSv1/SSLv3 cipher=OTHER);
> -        Fri, 05 Aug 2011 00:10:45 -0700 (PDT)
> -Received-SPF: pass (google.com: domain of archit at ti.com designates
> 192.94.94.41 as permitted sender) client-ip=192.94.94.41;
> -Authentication-Results: mx.google.com; spf=pass (google.com: domain of
> archit at ti.com designates 192.94.94.41 as permitted sender)
> smtp.mail=archit at ti.com
> -Received: from dlep33.itg.ti.com ([157.170.170.112])
> -	by bear.ext.ti.com (8.13.7/8.13.7) with ESMTP id p757AiHb023389
> -	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256
> verify=NO);
> -	Fri, 5 Aug 2011 02:10:44 -0500
> -Received: from dlep26.itg.ti.com (smtp-le.itg.ti.com [157.170.170.27])
> -	by dlep33.itg.ti.com (8.13.7/8.13.8) with ESMTP id p757AiWp004418;
> -	Fri, 5 Aug 2011 02:10:44 -0500 (CDT)
> -Received: from dlee73.ent.ti.com (localhost [127.0.0.1])
> -	by dlep26.itg.ti.com (8.13.8/8.13.8) with ESMTP id p757AiBJ012377;
> -	Fri, 5 Aug 2011 02:10:44 -0500 (CDT)
> -Received: from dlelxv23.itg.ti.com (172.17.1.198) by DLEE73.ent.ti.com
> - (157.170.170.88) with Microsoft SMTP Server id 8.3.106.1; Fri, 5 Aug 2011
> - 02:10:44 -0500
> -Received: from legion.dal.design.ti.com (legion.dal.design.ti.com
> - [128.247.22.53])	by dlelxv23.itg.ti.com (8.13.8/8.13.8) with ESMTP id
> - p757Ai9V018852;	Fri, 5 Aug 2011 02:10:44 -0500
> -Received: from localhost (a0393947pc.apr.dhcp.ti.com [172.24.137.144])
> 	by
> - legion.dal.design.ti.com (8.11.7p1+Sun/8.11.7) with ESMTP id p757Aef10060;
> -	Fri, 5 Aug 2011 02:10:41 -0500 (CDT)
> -From: Archit Taneja <archit at ti.com>
> -To: <hvaibhav at ti.com>, <linux-media at vger.kernel.org>
> -CC: <koen at dominion.thruhere.net>, <tomi.valkeinen at ti.com>,
> -        <linux-omap at vger.kernel.org>, Archit Taneja <archit at ti.com>
> -Subject: [PATCH] [media] OMAP_VOUT: Fix build break caused by
> update_mode removal in DSS2
> -Date: Fri, 5 Aug 2011 12:49:21 +0530
> -Message-ID: <1312528761-18241-1-git-send-email-archit at ti.com>
> -X-Mailer: git-send-email 1.7.1
> -MIME-Version: 1.0
> -Content-Type: text/plain
> -
> -The DSS2 driver does not support the configuration of the update_mode of a
> -panel anymore. Remove the setting of update_mode done in
> omap_vout_probe().
> -Ignore configuration of TE since omap_vout driver doesn't support manual
> update
> -displays anyway.
> -
> -Signed-off-by: Archit Taneja <archit at ti.com>
> ----
> - drivers/media/video/omap/omap_vout.c |   13 -------------
> - 1 files changed, 0 insertions(+), 13 deletions(-)
> -
> -diff --git a/drivers/media/video/omap/omap_vout.c
> b/drivers/media/video/omap/omap_vout.c
> -index b5ef362..b3a5ecd 100644
> ---- a/drivers/media/video/omap/omap_vout.c
> -+++ b/drivers/media/video/omap/omap_vout.c
> -@@ -2194,19 +2194,6 @@ static int __init omap_vout_probe(struct
> platform_device *pdev)
> - 					"'%s' Display already enabled\n",
> - 					def_display->name);
> - 			}
> --			/* set the update mode */
> --			if (def_display->caps &
> --
> 	OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
> --				if (dssdrv->enable_te)
> --					dssdrv->enable_te(def_display, 0);
> --				if (dssdrv->set_update_mode)
> --					dssdrv-
> >set_update_mode(def_display,
> --
> 	OMAP_DSS_UPDATE_MANUAL);
> --			} else {
> --				if (dssdrv->set_update_mode)
> --					dssdrv-
> >set_update_mode(def_display,
> --
> 	OMAP_DSS_UPDATE_AUTO);
> --			}
> - 		}
> - 	}
> -
> ---
> -1.7.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0+3.1rc/madc/0001-Enabling-Hwmon-
> driver-for-twl4030-madc.patch b/recipes-kernel/linux/linux-
> 3.0+3.1rc/madc/0001-Enabling-Hwmon-driver-for-twl4030-madc.patch
> deleted file mode 100644
> index 38e96e3..0000000
> --- a/recipes-kernel/linux/linux-3.0+3.1rc/madc/0001-Enabling-Hwmon-driver-
> for-twl4030-madc.patch
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -From 428afa6e7a96419f6f17158a9ac38ab24d664997 Mon Sep 17 00:00:00
> 2001
> -From: Keerthy <j-keerthy at ti.com>
> -Date: Wed, 4 May 2011 01:14:50 +0530
> -Subject: [PATCH 1/2] Enabling Hwmon driver for twl4030-madc
> -
> -Signed-off-by: Keerthy <j-keerthy at ti.com>
> ----
> - drivers/mfd/twl-core.c |   15 +++++++++++++++
> - 1 files changed, 15 insertions(+), 0 deletions(-)
> -
> -diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
> -index a2eddc7..81fcf18 100644
> ---- a/drivers/mfd/twl-core.c
> -+++ b/drivers/mfd/twl-core.c
> -@@ -83,6 +83,13 @@
> - #define twl_has_madc()	false
> - #endif
> -
> -+#if defined(CONFIG_SENSORS_TWL4030_MADC) ||\
> -+	 defined(CONFIG_SENSORS_TWL4030_MADC_MODULE)
> -+#define twl_has_madc_hwmon()  true
> -+#else
> -+#define twl_has_madc_hwmon()  false
> -+#endif
> -+
> - #ifdef CONFIG_TWL4030_POWER
> - #define twl_has_power()        true
> - #else
> -@@ -669,6 +676,14 @@ add_children(struct twl4030_platform_data *pdata,
> unsigned long features)
> - 			return PTR_ERR(child);
> - 	}
> -
> -+if (twl_has_madc_hwmon()) {
> -+		child = add_child(2, "twl4030_madc_hwmon",
> -+				NULL, 0,
> -+				true, pdata->irq_base + MADC_INTR_OFFSET,
> 0);
> -+		if (IS_ERR(child))
> -+			return PTR_ERR(child);
> -+	}
> -+
> - 	if (twl_has_rtc()) {
> - 		/*
> - 		 * REVISIT platform_data here currently might expose the
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0+3.1rc/madc/0002-mfd-twl-core-
> enable-madc-clock.patch b/recipes-kernel/linux/linux-3.0+3.1rc/madc/0002-
> mfd-twl-core-enable-madc-clock.patch
> deleted file mode 100644
> index 7dc8e54..0000000
> --- a/recipes-kernel/linux/linux-3.0+3.1rc/madc/0002-mfd-twl-core-enable-
> madc-clock.patch
> +++ /dev/null
> @@ -1,54 +0,0 @@
> -From fbfdf09f148219d48ee35e830923ca75bbd0b91b Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <steve at sakoman.com>
> -Date: Sat, 23 Jan 2010 06:26:54 -0800
> -Subject: [PATCH 2/2] mfd: twl-core: enable madc clock
> -
> -Now that the madc driver has been merged it is also necessary to enable the
> clock to the madc block
> -
> -Signed-off-by: Steve Sakoman <steve at sakoman.com>
> ----
> - drivers/mfd/twl-core.c  |    8 ++++++++
> - include/linux/i2c/twl.h |    1 +
> - 2 files changed, 9 insertions(+), 0 deletions(-)
> -
> -diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
> -index 81fcf18..08aa64f 100644
> ---- a/drivers/mfd/twl-core.c
> -+++ b/drivers/mfd/twl-core.c
> -@@ -217,6 +217,11 @@
> -
> - /* Few power values */
> - #define R_CFG_BOOT			0x05
> -+#define R_GPBR1				0x0C
> -+
> -+/* MADC clock values for R_GPBR1 */
> -+#define MADC_HFCLK_EN			0x80
> -+#define DEFAULT_MADC_CLK_EN		0x10
> -
> - /* some fields in R_CFG_BOOT */
> - #define HFCLK_FREQ_19p2_MHZ		(1 << 0)
> -@@ -1151,6 +1156,9 @@ static void clocks_init(struct device *dev,
> -
> - 	e |= unprotect_pm_master();
> - 	/* effect->MADC+USB ck en */
> -+	if (twl_has_madc())
> -+		e |= twl_i2c_write_u8(TWL_MODULE_INTBR,
> -+				MADC_HFCLK_EN | DEFAULT_MADC_CLK_EN,
> R_GPBR1);
> - 	e |= twl_i2c_write_u8(TWL_MODULE_PM_MASTER, ctrl,
> R_CFG_BOOT);
> - 	e |= protect_pm_master();
> -
> -diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h
> -index 114c0f6..f060751 100644
> ---- a/include/linux/i2c/twl.h
> -+++ b/include/linux/i2c/twl.h
> -@@ -74,6 +74,7 @@
> -
> - #define TWL_MODULE_USB		TWL4030_MODULE_USB
> - #define TWL_MODULE_AUDIO_VOICE	TWL4030_MODULE_AUDIO_VOICE
> -+#define TWL_MODULE_INTBR	TWL4030_MODULE_INTBR
> - #define TWL_MODULE_PIH		TWL4030_MODULE_PIH
> - #define TWL_MODULE_MADC		TWL4030_MODULE_MADC
> - #define TWL_MODULE_MAIN_CHARGE
> 	TWL4030_MODULE_MAIN_CHARGE
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0+3.1rc/patch.sh b/recipes-
> kernel/linux/linux-3.0+3.1rc/patch.sh
> deleted file mode 100644
> index 50f146e..0000000
> --- a/recipes-kernel/linux/linux-3.0+3.1rc/patch.sh
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -#!/bin/bash
> -# (c) 2009 - 2011 Koen Kooi <koen at dominion.thruhere.net>
> -# This script will take a set of directories with patches and make a git tree out of
> it
> -# After all the patches are applied it will output a SRC_URI fragment you can
> copy/paste into a recipe
> -
> -TAG="mainline/master"
> -EXTRATAG="-3.1"
> -
> -git fetch mainline
> -git am --abort
> -git reset --hard ${TAG}
> -rm export -rf
> -
> -previous=${TAG}
> -PATCHSET="beagle madc sgx"
> -
> -# apply patches
> -for patchset in ${PATCHSET} ; do
> -	git am $patchset/* && git tag "${patchset}${EXTRATAG}" -f
> -done
> -
> -# export patches and output SRC_URI for them
> -for patchset in ${PATCHSET} ; do
> -	mkdir export/$patchset -p
> -	( cd export/$patchset && git format-patch
> ${previous}..${patchset}${EXTRATAG} >& /dev/null && for i in *.patch ; do echo
> "            file://${patchset}/$i \\" ; done )
> -	previous=${patchset}${EXTRATAG}
> -done
> diff --git a/recipes-kernel/linux/linux-3.0+3.1rc/sgx/0001-ARM-L2-Add-and-
> export-outer_clean_all.patch b/recipes-kernel/linux/linux-3.0+3.1rc/sgx/0001-
> ARM-L2-Add-and-export-outer_clean_all.patch
> deleted file mode 100644
> index 5d45229..0000000
> --- a/recipes-kernel/linux/linux-3.0+3.1rc/sgx/0001-ARM-L2-Add-and-export-
> outer_clean_all.patch
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -From 927d1d96b5c4d3439a301b73804ade67b8cdd81a Mon Sep 17
> 00:00:00 2001
> -From: Vikram Pandita <vikram.pandita at ti.com>
> -Date: Tue, 31 May 2011 09:24:58 +0100
> -Subject: [PATCH] ARM: L2: Add and export outer_clean_all
> -
> -The Errata 588369 and 539766 demands that clean all operation be done
> -as clean each way at a time
> -
> -This patch also raps the implementation under the CONFIG errata
> -macro so that for non-errata version silicon it can be disabled
> -
> -Signed-off-by: Vikram Pandita <vikram.pandita at ti.com>
> -Cc: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -Cc: Woodruff, Richard <r-woodruff2 at ti.com>
> ----
> - arch/arm/include/asm/outercache.h |    8 ++++++++
> - arch/arm/mm/cache-l2x0.c          |    1 +
> - 2 files changed, 9 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/include/asm/outercache.h
> b/arch/arm/include/asm/outercache.h
> -index d838743..fa8cbd8 100644
> ---- a/arch/arm/include/asm/outercache.h
> -+++ b/arch/arm/include/asm/outercache.h
> -@@ -28,6 +28,7 @@ struct outer_cache_fns {
> - 	void (*clean_range)(unsigned long, unsigned long);
> - 	void (*flush_range)(unsigned long, unsigned long);
> - 	void (*flush_all)(void);
> -+	void (*clean_all)(void);
> - 	void (*inv_all)(void);
> - 	void (*disable)(void);
> - #ifdef CONFIG_OUTER_CACHE_SYNC
> -@@ -61,6 +62,11 @@ static inline void outer_flush_all(void)
> - 	if (outer_cache.flush_all)
> - 		outer_cache.flush_all();
> - }
> -+static inline void outer_clean_all(void)
> -+{
> -+	if (outer_cache.clean_all)
> -+		outer_cache.clean_all();
> -+}
> -
> - static inline void outer_inv_all(void)
> - {
> -@@ -97,6 +103,8 @@ static inline void outer_sync(void)
> - #else
> - static inline void outer_sync(void)
> - { }
> -+static inline void outer_clean_all(void)
> -+{ }
> - #endif
> -
> - #endif	/* __ASM_OUTERCACHE_H */
> -diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
> -index 44c0867..10b79d6 100644
> ---- a/arch/arm/mm/cache-l2x0.c
> -+++ b/arch/arm/mm/cache-l2x0.c
> -@@ -346,6 +346,7 @@ void __init l2x0_init(void __iomem *base, __u32
> aux_val, __u32 aux_mask)
> - 	outer_cache.inv_all = l2x0_inv_all;
> - 	outer_cache.disable = l2x0_disable;
> - 	outer_cache.set_debug = l2x0_set_debug;
> -+	outer_cache.clean_all = l2x0_clean_all;
> -
> - 	printk(KERN_INFO "%s cache controller enabled\n", type);
> - 	printk(KERN_INFO "l2x0: %d ways, CACHE_ID 0x%08x, AUX_CTRL
> 0x%08x, Cache size: %d B\n",
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0/beagle/0001-OMAP3-beagle-add-
> support-for-beagleboard-xM-revision.patch b/recipes-kernel/linux/linux-
> 3.0/beagle/0001-OMAP3-beagle-add-support-for-beagleboard-xM-
> revision.patch
> deleted file mode 100644
> index d87aee1..0000000
> --- a/recipes-kernel/linux/linux-3.0/beagle/0001-OMAP3-beagle-add-support-
> for-beagleboard-xM-revision.patch
> +++ /dev/null
> @@ -1,196 +0,0 @@
> -From ba3e97075ad35eeaf35191c4e5c2b90de5d96209 Mon Sep 17 00:00:00
> 2001
> -From: Fernandes, Joel A <joelagnel at ti.com>
> -Date: Tue, 7 Jun 2011 15:54:45 -0500
> -Subject: [PATCH 01/10] OMAP3: beagle: add support for beagleboard xM
> revision C
> -
> -OMAP3: beagle: add support for beagleboard xM revision C
> -
> -The USB enable GPIO has been in beagleboard xM revision C.
> -The USER button has been moved since beagleboard xM.
> -Also, board specific initialization has been moved to beagle_config struct
> -and initialized in omap3_beagle_init_rev. Default values in struct are for xMC.
> -
> -Signed-off-by: Joel A Fernandes <joelagnel at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c |   78
> ++++++++++++++++++++-----------
> - 1 files changed, 51 insertions(+), 27 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 34f8411..32f5f89 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -60,7 +60,8 @@
> -  *	AXBX	= GPIO173, GPIO172, GPIO171: 1 1 1
> -  *	C1_3	= GPIO173, GPIO172, GPIO171: 1 1 0
> -  *	C4	= GPIO173, GPIO172, GPIO171: 1 0 1
> -- *	XM	= GPIO173, GPIO172, GPIO171: 0 0 0
> -+ *	XMA/XMB = GPIO173, GPIO172, GPIO171: 0 0 0
> -+ *	XMC = GPIO173, GPIO172, GPIO171: 0 1 0
> -  */
> - enum {
> - 	OMAP3BEAGLE_BOARD_UNKN = 0,
> -@@ -68,14 +69,26 @@ enum {
> - 	OMAP3BEAGLE_BOARD_C1_3,
> - 	OMAP3BEAGLE_BOARD_C4,
> - 	OMAP3BEAGLE_BOARD_XM,
> -+	OMAP3BEAGLE_BOARD_XMC,
> - };
> -
> - static u8 omap3_beagle_version;
> -
> --static u8 omap3_beagle_get_rev(void)
> --{
> --	return omap3_beagle_version;
> --}
> -+/*
> -+ * Board-specific configuration
> -+ * Defaults to BeagleBoard-xMC
> -+ */
> -+static struct {
> -+	int mmc1_gpio_wp;
> -+	int usb_pwr_level;
> -+	int reset_gpio;
> -+	int usr_button_gpio;
> -+} beagle_config = {
> -+	.mmc1_gpio_wp = -EINVAL,
> -+	.usb_pwr_level = GPIOF_OUT_INIT_LOW,
> -+	.reset_gpio = 129,
> -+	.usr_button_gpio = 4,
> -+};
> -
> - static struct gpio omap3_beagle_rev_gpios[] __initdata = {
> - 	{ 171, GPIOF_IN, "rev_id_0"    },
> -@@ -110,18 +123,32 @@ static void __init omap3_beagle_init_rev(void)
> - 	case 7:
> - 		printk(KERN_INFO "OMAP3 Beagle Rev: Ax/Bx\n");
> - 		omap3_beagle_version = OMAP3BEAGLE_BOARD_AXBX;
> -+		beagle_config.mmc1_gpio_wp = 29;
> -+		beagle_config.reset_gpio = 170;
> -+		beagle_config.usr_button_gpio = 7;
> - 		break;
> - 	case 6:
> - 		printk(KERN_INFO "OMAP3 Beagle Rev: C1/C2/C3\n");
> - 		omap3_beagle_version = OMAP3BEAGLE_BOARD_C1_3;
> -+		beagle_config.mmc1_gpio_wp = 23;
> -+		beagle_config.reset_gpio = 170;
> -+		beagle_config.usr_button_gpio = 7;
> - 		break;
> - 	case 5:
> - 		printk(KERN_INFO "OMAP3 Beagle Rev: C4\n");
> - 		omap3_beagle_version = OMAP3BEAGLE_BOARD_C4;
> -+		beagle_config.mmc1_gpio_wp = 23;
> -+		beagle_config.reset_gpio = 170;
> -+		beagle_config.usr_button_gpio = 7;
> - 		break;
> - 	case 0:
> --		printk(KERN_INFO "OMAP3 Beagle Rev: xM\n");
> -+		printk(KERN_INFO "OMAP3 Beagle Rev: xM Ax/Bx\n");
> - 		omap3_beagle_version = OMAP3BEAGLE_BOARD_XM;
> -+		beagle_config.usb_pwr_level = GPIOF_OUT_INIT_HIGH;
> -+		break;
> -+	case 2:
> -+		printk(KERN_INFO "OMAP3 Beagle Rev: xM C\n");
> -+		omap3_beagle_version = OMAP3BEAGLE_BOARD_XMC;
> - 		break;
> - 	default:
> - 		printk(KERN_INFO "OMAP3 Beagle Rev: unknown %hd\n",
> beagle_rev);
> -@@ -225,7 +252,7 @@ static struct omap2_hsmmc_info mmc[] = {
> - 	{
> - 		.mmc		= 1,
> - 		.caps		= MMC_CAP_4_BIT_DATA |
> MMC_CAP_8_BIT_DATA,
> --		.gpio_wp	= 29,
> -+		.gpio_wp	= -EINVAL,
> - 	},
> - 	{}	/* Terminator */
> - };
> -@@ -243,17 +270,11 @@ static struct gpio_led gpio_leds[];
> - static int beagle_twl_gpio_setup(struct device *dev,
> - 		unsigned gpio, unsigned ngpio)
> - {
> --	int r, usb_pwr_level;
> --
> --	if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) {
> --		mmc[0].gpio_wp = -EINVAL;
> --	} else if ((omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C1_3)
> ||
> --		(omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C4)) {
> --		omap_mux_init_gpio(23, OMAP_PIN_INPUT);
> --		mmc[0].gpio_wp = 23;
> --	} else {
> --		omap_mux_init_gpio(29, OMAP_PIN_INPUT);
> --	}
> -+	int r;
> -+
> -+	if (beagle_config.mmc1_gpio_wp != -EINVAL)
> -+		omap_mux_init_gpio(beagle_config.mmc1_gpio_wp,
> OMAP_PIN_INPUT);
> -+	mmc[0].gpio_wp = beagle_config.mmc1_gpio_wp;
> - 	/* gpio + 0 is "mmc0_cd" (input/IRQ) */
> - 	mmc[0].gpio_cd = gpio + 0;
> - 	omap2_hsmmc_init(mmc);
> -@@ -263,9 +284,8 @@ static int beagle_twl_gpio_setup(struct device *dev,
> - 	 * high / others active low)
> - 	 * DVI reset GPIO is different between beagle revisions
> - 	 */
> --	if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) {
> --		usb_pwr_level = GPIOF_OUT_INIT_HIGH;
> --		beagle_dvi_device.reset_gpio = 129;
> -+	/* Valid for all -xM revisions */
> -+	if (cpu_is_omap3630()) {
> - 		/*
> - 		 * gpio + 1 on Xm controls the TFP410's enable line (active low)
> - 		 * gpio + 2 control varies depending on the board rev as below:
> -@@ -283,8 +303,6 @@ static int beagle_twl_gpio_setup(struct device *dev,
> - 			pr_err("%s: unable to configure DVI_LDO_EN\n",
> - 				__func__);
> - 	} else {
> --		usb_pwr_level = GPIOF_OUT_INIT_LOW;
> --		beagle_dvi_device.reset_gpio = 170;
> - 		/*
> - 		 * REVISIT: need ehci-omap hooks for external VBUS
> - 		 * power switch and overcurrent detect
> -@@ -292,8 +310,10 @@ static int beagle_twl_gpio_setup(struct device *dev,
> - 		if (gpio_request_one(gpio + 1, GPIOF_IN, "EHCI_nOC"))
> - 			pr_err("%s: unable to configure EHCI_nOC\n",
> __func__);
> - 	}
> -+	beagle_dvi_device.reset_gpio = beagle_config.reset_gpio;
> -
> --	gpio_request_one(gpio + TWL4030_GPIO_MAX, usb_pwr_level,
> "nEN_USB_PWR");
> -+	gpio_request_one(gpio + TWL4030_GPIO_MAX,
> beagle_config.usb_pwr_level,
> -+			"nEN_USB_PWR");
> -
> - 	/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED)
> */
> - 	gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
> -@@ -404,7 +424,8 @@ static struct platform_device leds_gpio = {
> - static struct gpio_keys_button gpio_buttons[] = {
> - 	{
> - 		.code			= BTN_EXTRA,
> --		.gpio			= 7,
> -+		/* Dynamically assigned depending on board */
> -+		.gpio			= -EINVAL,
> - 		.desc			= "user",
> - 		.wakeup			= 1,
> - 	},
> -@@ -468,8 +489,8 @@ static void __init beagle_opp_init(void)
> - 		return;
> - 	}
> -
> --	/* Custom OPP enabled for XM */
> --	if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) {
> -+	/* Custom OPP enabled for all xM versions */
> -+	if (cpu_is_omap3630()) {
> - 		struct omap_hwmod *mh = omap_hwmod_lookup("mpu");
> - 		struct omap_hwmod *dh = omap_hwmod_lookup("iva");
> - 		struct device *dev;
> -@@ -509,6 +530,9 @@ static void __init omap3_beagle_init(void)
> - 	omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
> - 	omap3_beagle_init_rev();
> - 	omap3_beagle_i2c_init();
> -+
> -+	gpio_buttons[0].gpio = beagle_config.usr_button_gpio;
> -+
> - 	platform_add_devices(omap3_beagle_devices,
> - 			ARRAY_SIZE(omap3_beagle_devices));
> - 	omap_display_init(&beagle_dss_data);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/beagle/0002-UNFINISHED-OMAP3-
> beagle-add-support-for-expansionboa.patch b/recipes-kernel/linux/linux-
> 3.0/beagle/0002-UNFINISHED-OMAP3-beagle-add-support-for-
> expansionboa.patch
> deleted file mode 100644
> index 321aeae..0000000
> --- a/recipes-kernel/linux/linux-3.0/beagle/0002-UNFINISHED-OMAP3-beagle-
> add-support-for-expansionboa.patch
> +++ /dev/null
> @@ -1,340 +0,0 @@
> -From 73366785ad8400aa22ffc0822ecc701349477de9 Mon Sep 17 00:00:00
> 2001
> -From: Koen Kooi <koen at dominion.thruhere.net>
> -Date: Thu, 21 Jul 2011 14:29:42 +0200
> -Subject: [PATCH 02/10] UNFINISHED: OMAP3: beagle: add support for
> expansionboards
> -
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c |  266
> +++++++++++++++++++++++++++++++
> - 1 files changed, 266 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 32f5f89..f26a9a8 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -21,6 +21,7 @@
> - #include <linux/io.h>
> - #include <linux/leds.h>
> - #include <linux/gpio.h>
> -+#include <linux/irq.h>
> - #include <linux/input.h>
> - #include <linux/gpio_keys.h>
> - #include <linux/opp.h>
> -@@ -156,6 +157,167 @@ static void __init omap3_beagle_init_rev(void)
> - 	}
> - }
> -
> -+char expansionboard_name[16];
> -+
> -+#if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE)
> -+#include <linux/regulator/fixed.h>
> -+#include <linux/wl12xx.h>
> -+
> -+#define OMAP_BEAGLE_WLAN_EN_GPIO    (139)
> -+#define OMAP_BEAGLE_BT_EN_GPIO      (138)
> -+#define OMAP_BEAGLE_WLAN_IRQ_GPIO   (137)
> -+#define OMAP_BEAGLE_FM_EN_BT_WU     (136)
> -+
> -+struct wl12xx_platform_data omap_beagle_wlan_data __initdata = {
> -+	.irq = OMAP_GPIO_IRQ(OMAP_BEAGLE_WLAN_IRQ_GPIO),
> -+	.board_ref_clock = 2, /* 38.4 MHz */
> -+};
> -+
> -+static int gpios[] = {OMAP_BEAGLE_BT_EN_GPIO,
> OMAP_BEAGLE_FM_EN_BT_WU, -1};
> -+static struct platform_device wl12xx_device = {
> -+		.name		= "kim",
> -+		.id			= -1,
> -+		.dev.platform_data = &gpios,
> -+};
> -+
> -+static struct omap2_hsmmc_info mmcbbt[] = {
> -+ 	{
> -+ 		.mmc		= 1,
> -+ 		.caps		= MMC_CAP_4_BIT_DATA |
> MMC_CAP_8_BIT_DATA,
> -+ 		.gpio_wp	= 29,
> -+ 	},
> -+	{
> -+		.name		= "wl1271",
> -+		.mmc		= 2,
> -+		.caps		= MMC_CAP_4_BIT_DATA |
> MMC_CAP_POWER_OFF_CARD,
> -+		.gpio_wp	= -EINVAL,
> -+		.gpio_cd	= -EINVAL,
> -+		.ocr_mask	= MMC_VDD_165_195,
> -+		.nonremovable	= true,
> -+	},
> -+ 	{}	/* Terminator */
> -+ };
> -+
> -+static struct regulator_consumer_supply beagle_vmmc2_supply =
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1");
> -+
> -+static struct regulator_init_data beagle_vmmc2 = {
> -+	.constraints = {
> -+		.min_uV			= 1850000,
> -+		.max_uV			= 1850000,
> -+		.apply_uV		= true,
> -+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> -+					| REGULATOR_MODE_STANDBY,
> -+		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> -+					| REGULATOR_CHANGE_STATUS,
> -+	},
> -+	.num_consumer_supplies = 1,
> -+	.consumer_supplies = &beagle_vmmc2_supply,
> -+};
> -+
> -+static struct fixed_voltage_config beagle_vwlan = {
> -+	.supply_name = "vwl1271",
> -+	.microvolts = 1800000,  /* 1.8V */
> -+	.gpio = OMAP_BEAGLE_WLAN_EN_GPIO,
> -+	.startup_delay = 70000, /* 70ms */
> -+	.enable_high = 1,
> -+	.enabled_at_boot = 0,
> -+	.init_data = &beagle_vmmc2,
> -+};
> -+
> -+static struct platform_device omap_vwlan_device = {
> -+	.name           = "reg-fixed-voltage",
> -+	.id             = 1,
> -+	.dev = {
> -+		.platform_data = &beagle_vwlan,
> -+	},
> -+};
> -+#endif
> -+
> -+#if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
> -+
> -+#include <plat/mcspi.h>
> -+#include <linux/spi/spi.h>
> -+
> -+#define OMAP3BEAGLE_GPIO_ENC28J60_IRQ 157
> -+
> -+static struct omap2_mcspi_device_config enc28j60_spi_chip_info = {
> -+	.turbo_mode	= 0,
> -+	.single_channel	= 1,	/* 0: slave, 1: master */
> -+};
> -+
> -+static struct spi_board_info omap3beagle_zippy_spi_board_info[] __initdata
> = {
> -+	{
> -+		.modalias		= "enc28j60",
> -+		.bus_num		= 4,
> -+		.chip_select		= 0,
> -+		.max_speed_hz		= 20000000,
> -+		.controller_data	= &enc28j60_spi_chip_info,
> -+	},
> -+};
> -+
> -+static void __init omap3beagle_enc28j60_init(void)
> -+{
> -+	if ((gpio_request(OMAP3BEAGLE_GPIO_ENC28J60_IRQ,
> "ENC28J60_IRQ") == 0) &&
> -+	    (gpio_direction_input(OMAP3BEAGLE_GPIO_ENC28J60_IRQ) == 0)) {
> -+		gpio_export(OMAP3BEAGLE_GPIO_ENC28J60_IRQ, 0);
> -+		omap3beagle_zippy_spi_board_info[0].irq	=
> OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_ENC28J60_IRQ);
> -+		irq_set_irq_type(omap3beagle_zippy_spi_board_info[0].irq,
> IRQ_TYPE_EDGE_FALLING);
> -+	} else {
> -+		printk(KERN_ERR "could not obtain gpio for
> ENC28J60_IRQ\n");
> -+		return;
> -+	}
> -+
> -+	spi_register_board_info(omap3beagle_zippy_spi_board_info,
> -+			ARRAY_SIZE(omap3beagle_zippy_spi_board_info));
> -+}
> -+
> -+#else
> -+static inline void __init omap3beagle_enc28j60_init(void) { return; }
> -+#endif
> -+
> -+#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
> -+
> -+#include <plat/mcspi.h>
> -+#include <linux/spi/spi.h>
> -+
> -+#define OMAP3BEAGLE_GPIO_KS8851_IRQ 157
> -+
> -+static struct omap2_mcspi_device_config ks8851_spi_chip_info = {
> -+	.turbo_mode	= 0,
> -+	.single_channel	= 1,	/* 0: slave, 1: master */
> -+};
> -+
> -+static struct spi_board_info omap3beagle_zippy2_spi_board_info[]
> __initdata = {
> -+	{
> -+		.modalias		= "ks8851",
> -+		.bus_num		= 4,
> -+		.chip_select		= 0,
> -+		.max_speed_hz		= 36000000,
> -+		.controller_data	= &ks8851_spi_chip_info,
> -+	},
> -+};
> -+
> -+static void __init omap3beagle_ks8851_init(void)
> -+{
> -+	if ((gpio_request(OMAP3BEAGLE_GPIO_KS8851_IRQ, "KS8851_IRQ")
> == 0) &&
> -+	    (gpio_direction_input(OMAP3BEAGLE_GPIO_KS8851_IRQ) == 0)) {
> -+		gpio_export(OMAP3BEAGLE_GPIO_KS8851_IRQ, 0);
> -+		omap3beagle_zippy2_spi_board_info[0].irq	=
> OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_KS8851_IRQ);
> -+		irq_set_irq_type(omap3beagle_zippy2_spi_board_info[0].irq,
> IRQ_TYPE_EDGE_FALLING);
> -+	} else {
> -+		printk(KERN_ERR "could not obtain gpio for KS8851_IRQ\n");
> -+		return;
> -+	}
> -+
> -+	spi_register_board_info(omap3beagle_zippy2_spi_board_info,
> -+
> 	ARRAY_SIZE(omap3beagle_zippy2_spi_board_info));
> -+}
> -+
> -+#else
> -+static inline void __init omap3beagle_ks8851_init(void) { return; }
> -+#endif
> -+
> - static struct mtd_partition omap3beagle_nand_partitions[] = {
> - 	/* All the partition sizes are listed in terms of NAND block size */
> - 	{
> -@@ -254,6 +416,12 @@ static struct omap2_hsmmc_info mmc[] = {
> - 		.caps		= MMC_CAP_4_BIT_DATA |
> MMC_CAP_8_BIT_DATA,
> - 		.gpio_wp	= -EINVAL,
> - 	},
> -+	{
> -+		.mmc		= 2,
> -+		.caps       = MMC_CAP_4_BIT_DATA,
> -+		.transceiver	= true,
> -+		.ocr_mask	= 0x00100000,	/* 3.3V */
> -+	},
> - 	{}	/* Terminator */
> - };
> -
> -@@ -277,7 +445,15 @@ static int beagle_twl_gpio_setup(struct device *dev,
> - 	mmc[0].gpio_wp = beagle_config.mmc1_gpio_wp;
> - 	/* gpio + 0 is "mmc0_cd" (input/IRQ) */
> - 	mmc[0].gpio_cd = gpio + 0;
> -+#if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE)
> -+	if(!strcmp(expansionboard_name, "bbtoys-wifi")) {
> -+		omap2_hsmmc_init(mmcbbt);
> -+	} else {
> -+		omap2_hsmmc_init(mmc);
> -+	}
> -+#else
> - 	omap2_hsmmc_init(mmc);
> -+#endif
> -
> - 	/*
> - 	 * TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM
> active
> -@@ -375,6 +551,19 @@ static struct i2c_board_info __initdata
> beagle_i2c_eeprom[] = {
> -        },
> - };
> -
> -+#if defined(CONFIG_RTC_DRV_DS1307) || \
> -+	defined(CONFIG_RTC_DRV_DS1307_MODULE)
> -+
> -+static struct i2c_board_info __initdata beagle_i2c2_zippy[] = {
> -+	{
> -+		I2C_BOARD_INFO("eeprom", 0x50),
> -+		I2C_BOARD_INFO("ds1307", 0x68),
> -+	},
> -+};
> -+#else
> -+static struct i2c_board_info __initdata beagle_i2c2_zippy[] = {};
> -+#endif
> -+
> - static int __init omap3_beagle_i2c_init(void)
> - {
> - 	omap3_pmic_get_config(&beagle_twldata,
> -@@ -479,6 +668,15 @@ static struct omap_board_mux board_mux[]
> __initdata = {
> - };
> - #endif
> -
> -+static int __init expansionboard_setup(char *str)
> -+{
> -+	if (!str)
> -+		return -EINVAL;
> -+	strncpy(expansionboard_name, str, 16);
> -+	printk(KERN_INFO "Beagle expansionboard: %s\n",
> expansionboard_name);
> -+	return 0;
> -+}
> -+
> - static void __init beagle_opp_init(void)
> - {
> - 	int r = 0;
> -@@ -542,6 +740,72 @@ static void __init omap3_beagle_init(void)
> - 	/* REVISIT leave DVI powered down until it's needed ... */
> - 	gpio_request_one(170, GPIOF_OUT_INIT_HIGH, "DVI_nPD");
> -
> -+	if(!strcmp(expansionboard_name, "zippy"))
> -+	{
> -+		printk(KERN_INFO "Beagle expansionboard: initializing
> enc28j60\n");
> -+		omap3beagle_enc28j60_init();
> -+		printk(KERN_INFO "Beagle expansionboard: assigning GPIO
> 141 and 162 to MMC1\n");
> -+		mmc[1].gpio_wp = 141;
> -+		mmc[1].gpio_cd = 162;
> -+		printk(KERN_INFO "Beagle expansionboard: registering I2C2
> for zippy board\n");
> -+		omap_register_i2c_bus(2, 400,  beagle_i2c2_zippy,
> -+
> 	ARRAY_SIZE(beagle_i2c2_zippy));
> -+
> -+	}
> -+
> -+	if(!strcmp(expansionboard_name, "zippy2"))
> -+	{
> -+		printk(KERN_INFO "Beagle expansionboard: initializing
> ks_8851\n");
> -+		omap3beagle_ks8851_init();
> -+		printk(KERN_INFO "Beagle expansionboard: assigning GPIO
> 141 and 162 to MMC1\n");
> -+		mmc[1].gpio_wp = 141;
> -+		mmc[1].gpio_cd = 162;
> -+		printk(KERN_INFO "Beagle expansionboard: registering I2C2
> for zippy2 board\n");
> -+		omap_register_i2c_bus(2, 400,  beagle_i2c2_zippy,
> -+
> 	ARRAY_SIZE(beagle_i2c2_zippy));
> -+	}
> -+
> -+	if(!strcmp(expansionboard_name, "trainer"))
> -+	{
> -+		printk(KERN_INFO "Beagle expansionboard: exporting GPIOs
> 130-141,162 to userspace\n");
> -+		gpio_request(130, "sysfs");
> -+		gpio_export(130, 1);
> -+		gpio_request(131, "sysfs");
> -+		gpio_export(131, 1);
> -+		gpio_request(132, "sysfs");
> -+		gpio_export(132, 1);
> -+		gpio_request(133, "sysfs");
> -+		gpio_export(133, 1);
> -+		gpio_request(134, "sysfs");
> -+		gpio_export(134, 1);
> -+		gpio_request(135, "sysfs");
> -+		gpio_export(135, 1);
> -+		gpio_request(136, "sysfs");
> -+		gpio_export(136, 1);
> -+		gpio_request(137, "sysfs");
> -+		gpio_export(137, 1);
> -+		gpio_request(138, "sysfs");
> -+		gpio_export(138, 1);
> -+		gpio_request(139, "sysfs");
> -+		gpio_export(139, 1);
> -+		gpio_request(140, "sysfs");
> -+		gpio_export(140, 1);
> -+		gpio_request(141, "sysfs");
> -+		gpio_export(141, 1);
> -+		gpio_request(162, "sysfs");
> -+		gpio_export(162, 1);
> -+	}
> -+
> -+	if(!strcmp(expansionboard_name, "bbtoys-wifi"))
> -+	{
> -+		if (wl12xx_set_platform_data(&omap_beagle_wlan_data))
> -+			pr_err("error setting wl12xx data\n");
> -+		printk(KERN_INFO "Beagle expansionboard: registering wl12xx
> bt platform device\n");
> -+		platform_device_register(&wl12xx_device);
> -+		printk(KERN_INFO "Beagle expansionboard: registering wl12xx
> wifi platform device\n");
> -+		platform_device_register(&omap_vwlan_device);
> -+	}
> -+
> - 	usb_musb_init(NULL);
> - 	usbhs_init(&usbhs_bdata);
> - 	omap_nand_flash_init(NAND_BUSWIDTH_16,
> omap3beagle_nand_partitions,
> -@@ -558,6 +822,8 @@ static void __init omap3_beagle_init(void)
> - 	beagle_opp_init();
> - }
> -
> -+early_param("buddy", expansionboard_setup);
> -+
> - MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
> - 	/* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */
> - 	.boot_params	= 0x80000100,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/beagle/0003-HACK-OMAP3-beagle-
> switch-to-GPTIMER1.patch b/recipes-kernel/linux/linux-3.0/beagle/0003-HACK-
> OMAP3-beagle-switch-to-GPTIMER1.patch
> deleted file mode 100644
> index 8a758ef..0000000
> --- a/recipes-kernel/linux/linux-3.0/beagle/0003-HACK-OMAP3-beagle-switch-
> to-GPTIMER1.patch
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -From a7e1724833070f01b82381f40b084fd33e46836d Mon Sep 17 00:00:00
> 2001
> -From: Koen Kooi <koen at dominion.thruhere.net>
> -Date: Thu, 21 Jul 2011 12:59:20 +0200
> -Subject: [PATCH 03/10] HACK: OMAP3: beagle: switch to GPTIMER1
> -
> -Breaks with B3 and older due to clock noise
> -
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index f26a9a8..a04f5a0 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -832,5 +832,5 @@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle
> Board")
> - 	.init_early	= omap3_beagle_init_early,
> - 	.init_irq	= omap3_beagle_init_irq,
> - 	.init_machine	= omap3_beagle_init,
> --	.timer		= &omap3_secure_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/beagle/0004-OMAP3-beagle-HACK-
> add-in-1GHz-OPP.patch b/recipes-kernel/linux/linux-3.0/beagle/0004-OMAP3-
> beagle-HACK-add-in-1GHz-OPP.patch
> deleted file mode 100644
> index aaa3dce..0000000
> --- a/recipes-kernel/linux/linux-3.0/beagle/0004-OMAP3-beagle-HACK-add-in-
> 1GHz-OPP.patch
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -From 6ebc5081aba3428762e4e055a154fdda9ebe442e Mon Sep 17 00:00:00
> 2001
> -From: Koen Kooi <koen at dominion.thruhere.net>
> -Date: Wed, 25 May 2011 08:57:40 +0200
> -Subject: [PATCH 04/10] OMAP3: beagle: HACK! add in 1GHz OPP
> -
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c |    2 ++
> - 1 files changed, 2 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index a04f5a0..5e1d9f9 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -701,11 +701,13 @@ static void __init beagle_opp_init(void)
> - 		/* Enable MPU 1GHz and lower opps */
> - 		dev = &mh->od->pdev.dev;
> - 		r = opp_enable(dev, 800000000);
> -+		r |= opp_enable(dev, 1000000000);
> - 		/* TODO: MPU 1GHz needs SR and ABB */
> -
> - 		/* Enable IVA 800MHz and lower opps */
> - 		dev = &dh->od->pdev.dev;
> - 		r |= opp_enable(dev, 660000000);
> -+		r |= opp_enable(dev, 800000000);
> - 		/* TODO: DSP 800MHz needs SR and ABB */
> - 		if (r) {
> - 			pr_err("%s: failed to enable higher opp %d\n",
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/beagle/0005-omap3-Add-basic-
> support-for-720MHz-part.patch b/recipes-kernel/linux/linux-3.0/beagle/0005-
> omap3-Add-basic-support-for-720MHz-part.patch
> deleted file mode 100644
> index 6930b6d..0000000
> --- a/recipes-kernel/linux/linux-3.0/beagle/0005-omap3-Add-basic-support-for-
> 720MHz-part.patch
> +++ /dev/null
> @@ -1,202 +0,0 @@
> -From f0a23fe6d3c8fc9bbb60a962114b64b923ca4515 Mon Sep 17 00:00:00
> 2001
> -From: Sanjeev Premi <premi at ti.com>
> -Date: Tue, 18 Jan 2011 13:19:55 +0530
> -Subject: [PATCH 05/10] omap3: Add basic support for 720MHz part
> -
> -This patch adds support for new speed enhanced parts with ARM
> -and IVA running at 720MHz and 520MHz respectively. These parts
> -can be probed at run-time by reading PRODID.SKUID[3:0] at
> -0x4830A20C [1].
> -
> -This patch specifically does following:
> - * Detect devices capable of 720MHz.
> - * Add new OPP
> - * Ensure that OPP is conditionally enabled.
> - * Check for presence of IVA before attempting to enable
> -   the corresponding OPP.
> -
> -  [1] http://focus.ti.com/lit/ug/spruff1d/spruff1d.pdf
> -
> -Signed-off-by: Sanjeev Premi <premi at ti.com>
> ----
> - arch/arm/mach-omap2/control.h         |    7 ++++
> - arch/arm/mach-omap2/id.c              |   10 +++++
> - arch/arm/mach-omap2/opp3xxx_data.c    |   63
> ++++++++++++++++++++++++++++++++-
> - arch/arm/plat-omap/include/plat/cpu.h |    2 +
> - 4 files changed, 81 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/control.h b/arch/arm/mach-
> omap2/control.h
> -index a016c8b..69d0b9c 100644
> ---- a/arch/arm/mach-omap2/control.h
> -+++ b/arch/arm/mach-omap2/control.h
> -@@ -371,6 +371,13 @@
> - #define		FEAT_NEON		0
> - #define		FEAT_NEON_NONE		1
> -
> -+/*
> -+ * Product ID register
> -+ */
> -+#define OMAP3_PRODID			0x020C
> -+
> -+#define OMAP3_SKUID_MASK		0x0f
> -+#define		OMAP3_SKUID_720MHZ	0x08
> -
> - #ifndef __ASSEMBLY__
> - #ifdef CONFIG_ARCH_OMAP2PLUS
> -diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
> -index 2537090..b6ed78a 100644
> ---- a/arch/arm/mach-omap2/id.c
> -+++ b/arch/arm/mach-omap2/id.c
> -@@ -210,6 +210,15 @@ static void __init omap3_check_features(void)
> - 	 * TODO: Get additional info (where applicable)
> - 	 *       e.g. Size of L2 cache.
> - 	 */
> -+
> -+	/*
> -+	 * Does it support 720MHz?
> -+	 */
> -+	status = (OMAP3_SKUID_MASK & read_tap_reg(OMAP3_PRODID));
> -+
> -+	if (status & OMAP3_SKUID_720MHZ) {
> -+		omap3_features |= OMAP3_HAS_720MHZ;
> -+	}
> - }
> -
> - static void __init ti816x_check_features(void)
> -@@ -490,6 +499,7 @@ static void __init omap3_cpuinfo(void)
> - 	OMAP3_SHOW_FEATURE(neon);
> - 	OMAP3_SHOW_FEATURE(isp);
> - 	OMAP3_SHOW_FEATURE(192mhz_clk);
> -+	OMAP3_SHOW_FEATURE(720mhz);
> -
> - 	printk(")\n");
> - }
> -diff --git a/arch/arm/mach-omap2/opp3xxx_data.c b/arch/arm/mach-
> omap2/opp3xxx_data.c
> -index d95f3f9..44fbc84 100644
> ---- a/arch/arm/mach-omap2/opp3xxx_data.c
> -+++ b/arch/arm/mach-omap2/opp3xxx_data.c
> -@@ -18,8 +18,10 @@
> -  * GNU General Public License for more details.
> -  */
> - #include <linux/module.h>
> -+#include <linux/opp.h>
> -
> - #include <plat/cpu.h>
> -+#include <plat/omap_device.h>
> -
> - #include "control.h"
> - #include "omap_opp_data.h"
> -@@ -98,6 +100,8 @@ static struct omap_opp_def __initdata
> omap34xx_opp_def_list[] = {
> - 	OPP_INITIALIZER("mpu", true, 550000000,
> OMAP3430_VDD_MPU_OPP4_UV),
> - 	/* MPU OPP5 */
> - 	OPP_INITIALIZER("mpu", true, 600000000,
> OMAP3430_VDD_MPU_OPP5_UV),
> -+	/* MPU OPP6 */
> -+	OPP_INITIALIZER("mpu", false, 720000000, 1350000),
> -
> - 	/*
> - 	 * L3 OPP1 - 41.5 MHz is disabled because: The voltage for that OPP is
> -@@ -123,6 +127,8 @@ static struct omap_opp_def __initdata
> omap34xx_opp_def_list[] = {
> - 	OPP_INITIALIZER("iva", true, 400000000,
> OMAP3430_VDD_MPU_OPP4_UV),
> - 	/* DSP OPP5 */
> - 	OPP_INITIALIZER("iva", true, 430000000,
> OMAP3430_VDD_MPU_OPP5_UV),
> -+	/* DSP OPP6 */
> -+	OPP_INITIALIZER("iva", false, 520000000, 1350000),
> - };
> -
> - static struct omap_opp_def __initdata omap36xx_opp_def_list[] = {
> -@@ -150,6 +156,57 @@ static struct omap_opp_def __initdata
> omap36xx_opp_def_list[] = {
> - 	OPP_INITIALIZER("iva", false, 800000000,
> OMAP3630_VDD_MPU_OPP1G_UV),
> - };
> -
> -+
> -+/**
> -+ * omap3_opp_enable_720Mhz() - Enable the OPP corresponding to 720MHz
> -+ *
> -+ * This function would be executed only if the silicon is capable of
> -+ * running at the 720MHz.
> -+ */
> -+static int __init omap3_opp_enable_720Mhz(void)
> -+{
> -+	int r = -ENODEV;
> -+	struct omap_hwmod *oh_mpu = omap_hwmod_lookup("mpu");
> -+	struct omap_hwmod *oh_iva;
> -+	struct platform_device *pdev;
> -+
> -+	if (!oh_mpu || !oh_mpu->od) {
> -+		goto err;
> -+	} else {
> -+		pdev = &oh_mpu->od->pdev;
> -+
> -+		r = opp_enable(&pdev->dev, 720000000);
> -+		if (r < 0) {
> -+			dev_err(&pdev->dev,
> -+				"opp_enable() failed for mpu at 720MHz");
> -+			goto err;
> -+		}
> -+	}
> -+
> -+	if (omap3_has_iva()) {
> -+		oh_iva = omap_hwmod_lookup("iva");
> -+
> -+		if (!oh_iva || !oh_iva->od) {
> -+			r = -ENODEV;
> -+			goto err;
> -+		} else {
> -+			pdev = &oh_iva->od->pdev;
> -+
> -+			r = opp_enable(&pdev->dev, 520000000);
> -+			if (r < 0) {
> -+				dev_err(&pdev->dev,
> -+					"opp_enable() failed for
> iva at 520MHz");
> -+				goto err;
> -+			}
> -+		}
> -+	}
> -+
> -+	dev_info(&pdev->dev, "Enabled OPP corresponding to 720MHz\n");
> -+
> -+err:
> -+	return r;
> -+}
> -+
> - /**
> -  * omap3_opp_init() - initialize omap3 opp table
> -  */
> -@@ -163,10 +220,14 @@ int __init omap3_opp_init(void)
> - 	if (cpu_is_omap3630())
> - 		r = omap_init_opp_table(omap36xx_opp_def_list,
> - 			ARRAY_SIZE(omap36xx_opp_def_list));
> --	else
> -+	else {
> - 		r = omap_init_opp_table(omap34xx_opp_def_list,
> - 			ARRAY_SIZE(omap34xx_opp_def_list));
> -
> -+		if (omap3_has_720mhz())
> -+			r = omap3_opp_enable_720Mhz();
> -+	}
> -+
> - 	return r;
> - }
> - device_initcall(omap3_opp_init);
> -diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-
> omap/include/plat/cpu.h
> -index 8198bb6..5204c1e 100644
> ---- a/arch/arm/plat-omap/include/plat/cpu.h
> -+++ b/arch/arm/plat-omap/include/plat/cpu.h
> -@@ -478,6 +478,7 @@ extern u32 omap3_features;
> - #define OMAP3_HAS_192MHZ_CLK		BIT(5)
> - #define OMAP3_HAS_IO_WAKEUP		BIT(6)
> - #define OMAP3_HAS_SDRC			BIT(7)
> -+#define OMAP3_HAS_720MHZ		BIT(8)
> -
> - #define OMAP3_HAS_FEATURE(feat,flag)			\
> - static inline unsigned int omap3_has_ ##feat(void)	\
> -@@ -493,5 +494,6 @@ OMAP3_HAS_FEATURE(isp, ISP)
> - OMAP3_HAS_FEATURE(192mhz_clk, 192MHZ_CLK)
> - OMAP3_HAS_FEATURE(io_wakeup, IO_WAKEUP)
> - OMAP3_HAS_FEATURE(sdrc, SDRC)
> -+OMAP3_HAS_FEATURE(720mhz, 720MHZ)
> -
> - #endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/beagle/0006-ARM-OMAP2-
> beagleboard-make-wilink-init-look-more-lik.patch b/recipes-kernel/linux/linux-
> 3.0/beagle/0006-ARM-OMAP2-beagleboard-make-wilink-init-look-more-
> lik.patch
> deleted file mode 100644
> index b63f9f7..0000000
> --- a/recipes-kernel/linux/linux-3.0/beagle/0006-ARM-OMAP2-beagleboard-
> make-wilink-init-look-more-lik.patch
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -From d9242a243b61059cacde8ce1241b84fc787c57d1 Mon Sep 17 00:00:00
> 2001
> -From: Koen Kooi <koen at dominion.thruhere.net>
> -Date: Thu, 20 Oct 2011 11:14:08 +0200
> -Subject: [PATCH 06/10] ARM: OMAP2+: beagleboard: make wilink init look
> more like pandaboard
> -
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c |    8 +-------
> - 1 files changed, 1 insertions(+), 7 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 5e1d9f9..13fffb0 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -203,13 +203,7 @@ static struct regulator_consumer_supply
> beagle_vmmc2_supply =
> -
> - static struct regulator_init_data beagle_vmmc2 = {
> - 	.constraints = {
> --		.min_uV			= 1850000,
> --		.max_uV			= 1850000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> -+		.valid_ops_mask = REGULATOR_CHANGE_STATUS,
> - 	},
> - 	.num_consumer_supplies = 1,
> - 	.consumer_supplies = &beagle_vmmc2_supply,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/beagle/0007-omap_hsmmc-Set-dto-
> to-max-value-of-14-to-avoid-SD-Ca.patch b/recipes-kernel/linux/linux-
> 3.0/beagle/0007-omap_hsmmc-Set-dto-to-max-value-of-14-to-avoid-SD-
> Ca.patch
> deleted file mode 100644
> index e79f513..0000000
> --- a/recipes-kernel/linux/linux-3.0/beagle/0007-omap_hsmmc-Set-dto-to-max-
> value-of-14-to-avoid-SD-Ca.patch
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -From 47be8c9046c22715ce646091dd9e98fa87fc86e1 Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <steve at sakoman.com>
> -Date: Mon, 18 Jul 2011 23:13:41 -0500
> -Subject: [PATCH 07/10] omap_hsmmc: Set dto to max value of 14 to avoid SD
> Card timeouts
> -
> -This fixes MMC errors due to timeouts on certain SD Cards following
> suggestions
> -to set dto to 14 by Jason Kridner and Steven Kipisz
> -
> -Details of the issue:
> -http://talk.maemo.org/showthread.php?p=1000707#post1000707
> -
> -This fix was originally proposed by Sukumar Ghoral of TI.
> ----
> - drivers/mmc/host/omap_hsmmc.c |    3 +++
> - 1 files changed, 3 insertions(+), 0 deletions(-)
> -
> -diff --git a/drivers/mmc/host/omap_hsmmc.c
> b/drivers/mmc/host/omap_hsmmc.c
> -index dedf3da..a8a60d4 100644
> ---- a/drivers/mmc/host/omap_hsmmc.c
> -+++ b/drivers/mmc/host/omap_hsmmc.c
> -@@ -1441,6 +1441,9 @@ static void set_data_timeout(struct
> omap_hsmmc_host *host,
> - 			dto = 14;
> - 	}
> -
> -+	/* Set dto to max value of 14 to avoid SD Card timeouts */
> -+	dto = 14;
> -+
> - 	reg &= ~DTO_MASK;
> - 	reg |= dto << DTO_SHIFT;
> - 	OMAP_HSMMC_WRITE(host->base, SYSCTL, reg);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/beagle/0008-OMAP2-add-cpu-id-
> register-to-MAC-address-helper.patch b/recipes-kernel/linux/linux-
> 3.0/beagle/0008-OMAP2-add-cpu-id-register-to-MAC-address-helper.patch
> deleted file mode 100644
> index b864c19..0000000
> --- a/recipes-kernel/linux/linux-3.0/beagle/0008-OMAP2-add-cpu-id-register-
> to-MAC-address-helper.patch
> +++ /dev/null
> @@ -1,89 +0,0 @@
> -From 2a9282daf94e8b9a1c8dc6fdf5b97461eb15348d Mon Sep 17 00:00:00
> 2001
> -From: Andy Green <andy at warmcat.com>
> -Date: Thu, 24 Mar 2011 21:27:29 +0000
> -Subject: [PATCH 08/10] OMAP2+: add cpu id register to MAC address helper
> -
> -Introduce a generic helper function that can set a MAC address using
> -data from the OMAP unique CPU ID register.
> -
> -For comparison purposes this produces a MAC address of
> -
> -  2e:40:70:f0:12:06
> -
> -for the ethernet device on my Panda.
> -
> -Note that this patch requires the fix patch for CPU ID register
> -indexes previously posted to linux-omap, otherwise the CPU ID is
> -misread on Panda by the existing function to do it.  This patch
> -is already on linux-omap.
> -
> -"OMAP2+:Common CPU DIE ID reading code reads wrong registers for
> OMAP4430"
> -http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-
> 2.6.git;a=commit;h=b235e007831dbf57710e59cd4a120e2f374eecb9
> -
> -Signed-off-by: Andy Green <andy.green at linaro.org>
> ----
> - arch/arm/mach-omap2/id.c              |   39
> +++++++++++++++++++++++++++++++++
> - arch/arm/mach-omap2/include/mach/id.h |    1 +
> - 2 files changed, 40 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
> -index b6ed78a..de993f1 100644
> ---- a/arch/arm/mach-omap2/id.c
> -+++ b/arch/arm/mach-omap2/id.c
> -@@ -567,3 +567,42 @@ void __init omap2_set_globals_tap(struct
> omap_globals *omap2_globals)
> - 	else
> - 		tap_prod_id = 0x0208;
> - }
> -+
> -+/*
> -+ * this uses the unique per-cpu info from the cpu fuses set at factory to
> -+ * generate a 6-byte MAC address.  Two bits in the generated code are used
> -+ * to elaborate the generated address into four, so it can be used on multiple
> -+ * network interfaces.
> -+ */
> -+
> -+void omap2_die_id_to_ethernet_mac(u8 *mac, int subtype)
> -+{
> -+	struct omap_die_id odi;
> -+	u32 tap = read_tap_reg(OMAP_TAP_IDCODE);
> -+
> -+	omap_get_die_id(&odi);
> -+
> -+	mac[0] = odi.id_2;
> -+	mac[1] = odi.id_2 >> 8;
> -+	mac[2] = odi.id_1;
> -+	mac[3] = odi.id_1 >> 8;
> -+	mac[4] = odi.id_1 >> 16;
> -+	mac[5] = odi.id_1 >> 24;
> -+
> -+	/* XOR other chip-specific data with ID */
> -+
> -+	tap ^= odi.id_3;
> -+
> -+	mac[0] ^= tap;
> -+	mac[1] ^= tap >> 8;
> -+	mac[2] ^= tap >> 16;
> -+	mac[3] ^= tap >> 24;
> -+
> -+	/* allow four MACs from this same basic data */
> -+
> -+	mac[1] = (mac[1] & ~0xc0) | ((subtype & 3) << 6);
> -+
> -+	/* mark it as not multicast and outside official 80211 MAC namespace
> */
> -+
> -+	mac[0] = (mac[0] & ~1) | 2;
> -+}
> -diff --git a/arch/arm/mach-omap2/include/mach/id.h b/arch/arm/mach-
> omap2/include/mach/id.h
> -index 02ed3aa..373313a 100644
> ---- a/arch/arm/mach-omap2/include/mach/id.h
> -+++ b/arch/arm/mach-omap2/include/mach/id.h
> -@@ -18,5 +18,6 @@ struct omap_die_id {
> - };
> -
> - void omap_get_die_id(struct omap_die_id *odi);
> -+void omap2_die_id_to_ethernet_mac(u8 *mac, int subtype);
> -
> - #endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/beagle/0009-HACK-OMAP2-
> BeagleBoard-Fix-up-random-or-missing-MAC-.patch b/recipes-
> kernel/linux/linux-3.0/beagle/0009-HACK-OMAP2-BeagleBoard-Fix-up-random-
> or-missing-MAC-.patch
> deleted file mode 100644
> index 3da12c7..0000000
> --- a/recipes-kernel/linux/linux-3.0/beagle/0009-HACK-OMAP2-BeagleBoard-
> Fix-up-random-or-missing-MAC-.patch
> +++ /dev/null
> @@ -1,156 +0,0 @@
> -From d0212d089b62cd7ebcd53104717180482e35ec1a Mon Sep 17 00:00:00
> 2001
> -From: Jason Kridner <jdk at ti.com>
> -Date: Thu, 15 Sep 2011 18:23:02 -0400
> -Subject: [PATCH 09/10] HACK: OMAP2+: BeagleBoard: Fix up random or
> missing MAC addresses for eth0 and wlan0
> -
> -This was borrowed from the Panda implementation at
> http://patches.linaro.org/777/
> -
> -This patch registers a network device notifier callback to set the mac
> -addresses for the onboard network assets of the BeagleBoard correctly, despite
> the
> -drivers involved have used a random or all-zeros MAC address.
> -
> -The technique was suggested by Alan Cox on lkml.
> -
> -It works by device path so it corrects the MAC addresses even if the
> -drivers are in modules loaded in an order that changes their interface
> -name from usual (eg, the onboard module might be "wlan1" if there is a
> -USB wireless stick plugged in and its module is inserted first.)
> -
> -Cc: Andy Green <andy at warmcat.com>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c |   90
> +++++++++++++++++++++++++++++++
> - 1 files changed, 90 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 13fffb0..5ffe185 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -33,6 +33,8 @@
> -
> - #include <linux/regulator/machine.h>
> - #include <linux/i2c/twl.h>
> -+#include <linux/netdevice.h>
> -+#include <linux/if_ether.h>
> -
> - #include <mach/hardware.h>
> - #include <asm/mach-types.h>
> -@@ -42,6 +44,7 @@
> -
> - #include <plat/board.h>
> - #include <plat/common.h>
> -+#include <mach/id.h>
> - #include <video/omapdss.h>
> - #include <video/omap-panel-generic-dpi.h>
> - #include <plat/gpmc.h>
> -@@ -91,6 +94,90 @@ static struct {
> - 	.usr_button_gpio = 4,
> - };
> -
> -+/*
> -+ * This device path represents the onboard USB <-> Ethernet bridge
> -+ * on the BeagleBoard-xM which needs a random or all-zeros
> -+ * mac address replaced with a per-cpu stable generated one
> -+ */
> -+
> -+static const char * const xm_fixup_mac_device_paths[] = {
> -+	"usb1/1-2/1-2.1/1-2.1:1.0",
> -+};
> -+
> -+static int beagle_device_path_need_mac(struct device *dev)
> -+{
> -+	const char **try = (const char **) xm_fixup_mac_device_paths;
> -+	const char *path;
> -+	int count = ARRAY_SIZE(xm_fixup_mac_device_paths);
> -+	const char *p;
> -+	int len;
> -+	struct device *devn;
> -+
> -+	while (count--) {
> -+
> -+		p = *try + strlen(*try);
> -+		devn = dev;
> -+
> -+		while (devn) {
> -+
> -+			path = dev_name(devn);
> -+			len = strlen(path);
> -+
> -+			if ((p - *try) < len) {
> -+				devn = NULL;
> -+				continue;
> -+			}
> -+
> -+			p -= len;
> -+
> -+			if (strncmp(path, p, len)) {
> -+				devn = NULL;
> -+				continue;
> -+			}
> -+
> -+			devn = devn->parent;
> -+			if (p == *try)
> -+				return count;
> -+
> -+			if (devn != NULL && (p - *try) < 2)
> -+				devn = NULL;
> -+
> -+			p--;
> -+			if (devn != NULL && *p != '/')
> -+				devn = NULL;
> -+		}
> -+
> -+		try++;
> -+	}
> -+
> -+	return -ENOENT;
> -+}
> -+
> -+static int omap_beagle_netdev_event(struct notifier_block *this,
> -+						 unsigned long event, void
> *ptr)
> -+{
> -+	struct net_device *dev = ptr;
> -+	struct sockaddr sa;
> -+	int n;
> -+
> -+	if (event != NETDEV_REGISTER)
> -+		return NOTIFY_DONE;
> -+
> -+	n = beagle_device_path_need_mac(dev->dev.parent);
> -+	if (n >= 0) {
> -+		sa.sa_family = dev->type;
> -+		omap2_die_id_to_ethernet_mac(sa.sa_data, n);
> -+		dev->netdev_ops->ndo_set_mac_address(dev, &sa);
> -+	}
> -+
> -+	return NOTIFY_DONE;
> -+}
> -+
> -+static struct notifier_block omap_beagle_netdev_notifier = {
> -+	.notifier_call = omap_beagle_netdev_event,
> -+	.priority = 1,
> -+};
> -+
> - static struct gpio omap3_beagle_rev_gpios[] __initdata = {
> - 	{ 171, GPIOF_IN, "rev_id_0"    },
> - 	{ 172, GPIOF_IN, "rev_id_1" },
> -@@ -146,14 +233,17 @@ static void __init omap3_beagle_init_rev(void)
> - 		printk(KERN_INFO "OMAP3 Beagle Rev: xM Ax/Bx\n");
> - 		omap3_beagle_version = OMAP3BEAGLE_BOARD_XM;
> - 		beagle_config.usb_pwr_level = GPIOF_OUT_INIT_HIGH;
> -+		register_netdevice_notifier(&omap_beagle_netdev_notifier);
> - 		break;
> - 	case 2:
> - 		printk(KERN_INFO "OMAP3 Beagle Rev: xM C\n");
> - 		omap3_beagle_version = OMAP3BEAGLE_BOARD_XMC;
> -+		register_netdevice_notifier(&omap_beagle_netdev_notifier);
> - 		break;
> - 	default:
> - 		printk(KERN_INFO "OMAP3 Beagle Rev: unknown %hd\n",
> beagle_rev);
> - 		omap3_beagle_version = OMAP3BEAGLE_BOARD_UNKN;
> -+		register_netdevice_notifier(&omap_beagle_netdev_notifier);
> - 	}
> - }
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/beagle/0010-ARM-OMAP2-
> beagleboard-fix-mmc-write-protect-pin-when.patch b/recipes-
> kernel/linux/linux-3.0/beagle/0010-ARM-OMAP2-beagleboard-fix-mmc-write-
> protect-pin-when.patch
> deleted file mode 100644
> index bcb7e4f..0000000
> --- a/recipes-kernel/linux/linux-3.0/beagle/0010-ARM-OMAP2-beagleboard-fix-
> mmc-write-protect-pin-when.patch
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -From 713c5b4ce910dacdd75e9616b0f989d643008536 Mon Sep 17 00:00:00
> 2001
> -From: Koen Kooi <koen at dominion.thruhere.net>
> -Date: Wed, 19 Oct 2011 12:44:14 +0200
> -Subject: [PATCH 10/10] ARM: OMAP2+: beagleboard: fix mmc write protect
> pin when using the wilink expansion board
> -
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 5ffe185..0124060 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -274,7 +274,7 @@ static struct omap2_hsmmc_info mmcbbt[] = {
> -  	{
> -  		.mmc		= 1,
> -  		.caps		= MMC_CAP_4_BIT_DATA |
> MMC_CAP_8_BIT_DATA,
> -- 		.gpio_wp	= 29,
> -+ 		.gpio_wp	= -EINVAL,
> -  	},
> - 	{
> - 		.name		= "wl1271",
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/beagle/0011-beagleboard-reinstate-
> usage-of-hi-speed-PLL-divider.patch b/recipes-kernel/linux/linux-
> 3.0/beagle/0011-beagleboard-reinstate-usage-of-hi-speed-PLL-divider.patch
> deleted file mode 100644
> index 4d2a978..0000000
> --- a/recipes-kernel/linux/linux-3.0/beagle/0011-beagleboard-reinstate-usage-
> of-hi-speed-PLL-divider.patch
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -From a2139a0efb9472a649465a1080799c73470fd201 Mon Sep 17 00:00:00
> 2001
> -From: Koen Kooi <koen at dominion.thruhere.net>
> -Date: Wed, 25 Jan 2012 15:48:36 +0100
> -Subject: [PATCH] beagleboard: reinstate usage of hi-speed PLL divider
> -
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c |    5 +++++
> - 1 files changed, 5 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 016d0985..c4c7a99 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -467,6 +467,11 @@ static struct omap_dss_device beagle_dvi_device = {
> - 	.driver_name = "generic_dpi_panel",
> - 	.data = &dvi_panel,
> - 	.phy.dpi.data_lines = 24,
> -+	.clocks = {
> -+		.dispc = {
> -+			.dispc_fclk_src =
> OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC,
> -+		},
> -+	},
> - 	.reset_gpio = -EINVAL,
> - };
> -
> ---
> -1.7.7.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/beagleboard/defconfig b/recipes-
> kernel/linux/linux-3.0/beagleboard/defconfig
> deleted file mode 100644
> index 5be7772..0000000
> --- a/recipes-kernel/linux/linux-3.0/beagleboard/defconfig
> +++ /dev/null
> @@ -1,3604 +0,0 @@
> -#
> -# Automatically generated make config: don't edit
> -# Linux/arm 3.0.22 Kernel Configuration
> -#
> -CONFIG_ARM=y
> -CONFIG_HAVE_PWM=y
> -CONFIG_SYS_SUPPORTS_APM_EMULATION=y
> -CONFIG_HAVE_SCHED_CLOCK=y
> -CONFIG_GENERIC_GPIO=y
> -# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
> -CONFIG_GENERIC_CLOCKEVENTS=y
> -CONFIG_KTIME_SCALAR=y
> -CONFIG_HAVE_PROC_CPU=y
> -CONFIG_STACKTRACE_SUPPORT=y
> -CONFIG_HAVE_LATENCYTOP_SUPPORT=y
> -CONFIG_LOCKDEP_SUPPORT=y
> -CONFIG_TRACE_IRQFLAGS_SUPPORT=y
> -CONFIG_HARDIRQS_SW_RESEND=y
> -CONFIG_GENERIC_IRQ_PROBE=y
> -CONFIG_RWSEM_GENERIC_SPINLOCK=y
> -CONFIG_ARCH_HAS_CPUFREQ=y
> -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
> -CONFIG_GENERIC_HWEIGHT=y
> -CONFIG_GENERIC_CALIBRATE_DELAY=y
> -CONFIG_NEED_DMA_MAP_STATE=y
> -CONFIG_VECTORS_BASE=0xffff0000
> -# CONFIG_ARM_PATCH_PHYS_VIRT is not set
> -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
> -CONFIG_HAVE_IRQ_WORK=y
> -CONFIG_IRQ_WORK=y
> -
> -#
> -# General setup
> -#
> -CONFIG_EXPERIMENTAL=y
> -CONFIG_BROKEN_ON_SMP=y
> -CONFIG_INIT_ENV_ARG_LIMIT=32
> -CONFIG_CROSS_COMPILE=""
> -CONFIG_LOCALVERSION=""
> -# CONFIG_LOCALVERSION_AUTO is not set
> -CONFIG_HAVE_KERNEL_GZIP=y
> -CONFIG_HAVE_KERNEL_LZMA=y
> -CONFIG_HAVE_KERNEL_LZO=y
> -CONFIG_KERNEL_GZIP=y
> -# CONFIG_KERNEL_LZMA is not set
> -# CONFIG_KERNEL_LZO is not set
> -CONFIG_DEFAULT_HOSTNAME="beagleboard"
> -CONFIG_SWAP=y
> -CONFIG_SYSVIPC=y
> -CONFIG_SYSVIPC_SYSCTL=y
> -CONFIG_POSIX_MQUEUE=y
> -CONFIG_POSIX_MQUEUE_SYSCTL=y
> -CONFIG_BSD_PROCESS_ACCT=y
> -# CONFIG_BSD_PROCESS_ACCT_V3 is not set
> -CONFIG_FHANDLE=y
> -CONFIG_TASKSTATS=y
> -CONFIG_TASK_DELAY_ACCT=y
> -CONFIG_TASK_XACCT=y
> -CONFIG_TASK_IO_ACCOUNTING=y
> -# CONFIG_AUDIT is not set
> -CONFIG_HAVE_GENERIC_HARDIRQS=y
> -
> -#
> -# IRQ subsystem
> -#
> -CONFIG_GENERIC_HARDIRQS=y
> -CONFIG_HAVE_SPARSE_IRQ=y
> -CONFIG_GENERIC_IRQ_SHOW=y
> -CONFIG_GENERIC_IRQ_CHIP=y
> -# CONFIG_SPARSE_IRQ is not set
> -
> -#
> -# RCU Subsystem
> -#
> -CONFIG_TINY_RCU=y
> -# CONFIG_PREEMPT_RCU is not set
> -# CONFIG_RCU_TRACE is not set
> -# CONFIG_TREE_RCU_TRACE is not set
> -CONFIG_IKCONFIG=y
> -CONFIG_IKCONFIG_PROC=y
> -CONFIG_LOG_BUF_SHIFT=16
> -CONFIG_CGROUPS=y
> -# CONFIG_CGROUP_DEBUG is not set
> -CONFIG_CGROUP_FREEZER=y
> -CONFIG_CGROUP_DEVICE=y
> -CONFIG_CPUSETS=y
> -CONFIG_PROC_PID_CPUSET=y
> -CONFIG_CGROUP_CPUACCT=y
> -CONFIG_RESOURCE_COUNTERS=y
> -CONFIG_CGROUP_MEM_RES_CTLR=y
> -CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
> -CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
> -CONFIG_CGROUP_PERF=y
> -CONFIG_CGROUP_SCHED=y
> -CONFIG_FAIR_GROUP_SCHED=y
> -CONFIG_RT_GROUP_SCHED=y
> -CONFIG_BLK_CGROUP=y
> -# CONFIG_DEBUG_BLK_CGROUP is not set
> -CONFIG_NAMESPACES=y
> -CONFIG_UTS_NS=y
> -CONFIG_IPC_NS=y
> -CONFIG_USER_NS=y
> -CONFIG_PID_NS=y
> -CONFIG_NET_NS=y
> -CONFIG_SCHED_AUTOGROUP=y
> -CONFIG_MM_OWNER=y
> -# CONFIG_SYSFS_DEPRECATED is not set
> -# CONFIG_RELAY is not set
> -CONFIG_BLK_DEV_INITRD=y
> -CONFIG_INITRAMFS_SOURCE=""
> -CONFIG_RD_GZIP=y
> -CONFIG_RD_BZIP2=y
> -CONFIG_RD_LZMA=y
> -CONFIG_RD_XZ=y
> -CONFIG_RD_LZO=y
> -CONFIG_CC_OPTIMIZE_FOR_SIZE=y
> -CONFIG_SYSCTL=y
> -CONFIG_ANON_INODES=y
> -CONFIG_EXPERT=y
> -CONFIG_UID16=y
> -# CONFIG_SYSCTL_SYSCALL is not set
> -CONFIG_KALLSYMS=y
> -# CONFIG_KALLSYMS_ALL is not set
> -CONFIG_HOTPLUG=y
> -CONFIG_PRINTK=y
> -CONFIG_BUG=y
> -CONFIG_ELF_CORE=y
> -CONFIG_BASE_FULL=y
> -CONFIG_FUTEX=y
> -CONFIG_EPOLL=y
> -CONFIG_SIGNALFD=y
> -CONFIG_TIMERFD=y
> -CONFIG_EVENTFD=y
> -CONFIG_SHMEM=y
> -CONFIG_AIO=y
> -CONFIG_EMBEDDED=y
> -CONFIG_HAVE_PERF_EVENTS=y
> -CONFIG_PERF_USE_VMALLOC=y
> -
> -#
> -# Kernel Performance Events And Counters
> -#
> -CONFIG_PERF_EVENTS=y
> -# CONFIG_PERF_COUNTERS is not set
> -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
> -CONFIG_VM_EVENT_COUNTERS=y
> -# CONFIG_COMPAT_BRK is not set
> -CONFIG_SLAB=y
> -# CONFIG_SLUB is not set
> -# CONFIG_SLOB is not set
> -CONFIG_PROFILING=y
> -CONFIG_OPROFILE=m
> -CONFIG_HAVE_OPROFILE=y
> -# CONFIG_KPROBES is not set
> -CONFIG_HAVE_KPROBES=y
> -CONFIG_HAVE_KRETPROBES=y
> -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
> -CONFIG_HAVE_CLK=y
> -CONFIG_HAVE_DMA_API_DEBUG=y
> -CONFIG_HAVE_HW_BREAKPOINT=y
> -
> -#
> -# GCOV-based kernel profiling
> -#
> -# CONFIG_GCOV_KERNEL is not set
> -CONFIG_HAVE_GENERIC_DMA_COHERENT=y
> -CONFIG_SLABINFO=y
> -CONFIG_RT_MUTEXES=y
> -CONFIG_BASE_SMALL=0
> -CONFIG_MODULES=y
> -CONFIG_MODULE_FORCE_LOAD=y
> -CONFIG_MODULE_UNLOAD=y
> -CONFIG_MODULE_FORCE_UNLOAD=y
> -CONFIG_MODVERSIONS=y
> -CONFIG_MODULE_SRCVERSION_ALL=y
> -CONFIG_BLOCK=y
> -CONFIG_LBDAF=y
> -CONFIG_BLK_DEV_BSG=y
> -CONFIG_BLK_DEV_INTEGRITY=y
> -CONFIG_BLK_DEV_THROTTLING=y
> -
> -#
> -# IO Schedulers
> -#
> -CONFIG_IOSCHED_NOOP=y
> -CONFIG_IOSCHED_DEADLINE=y
> -CONFIG_IOSCHED_CFQ=y
> -CONFIG_CFQ_GROUP_IOSCHED=y
> -# CONFIG_DEFAULT_DEADLINE is not set
> -CONFIG_DEFAULT_CFQ=y
> -# CONFIG_DEFAULT_NOOP is not set
> -CONFIG_DEFAULT_IOSCHED="cfq"
> -# CONFIG_INLINE_SPIN_TRYLOCK is not set
> -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
> -# CONFIG_INLINE_SPIN_LOCK is not set
> -# CONFIG_INLINE_SPIN_LOCK_BH is not set
> -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
> -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
> -CONFIG_INLINE_SPIN_UNLOCK=y
> -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
> -CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
> -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
> -# CONFIG_INLINE_READ_TRYLOCK is not set
> -# CONFIG_INLINE_READ_LOCK is not set
> -# CONFIG_INLINE_READ_LOCK_BH is not set
> -# CONFIG_INLINE_READ_LOCK_IRQ is not set
> -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
> -CONFIG_INLINE_READ_UNLOCK=y
> -# CONFIG_INLINE_READ_UNLOCK_BH is not set
> -CONFIG_INLINE_READ_UNLOCK_IRQ=y
> -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
> -# CONFIG_INLINE_WRITE_TRYLOCK is not set
> -# CONFIG_INLINE_WRITE_LOCK is not set
> -# CONFIG_INLINE_WRITE_LOCK_BH is not set
> -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
> -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
> -CONFIG_INLINE_WRITE_UNLOCK=y
> -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
> -CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
> -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
> -# CONFIG_MUTEX_SPIN_ON_OWNER is not set
> -CONFIG_FREEZER=y
> -
> -#
> -# System Type
> -#
> -CONFIG_MMU=y
> -# CONFIG_ARCH_INTEGRATOR is not set
> -# CONFIG_ARCH_REALVIEW is not set
> -# CONFIG_ARCH_VERSATILE is not set
> -# CONFIG_ARCH_VEXPRESS is not set
> -# CONFIG_ARCH_AT91 is not set
> -# CONFIG_ARCH_BCMRING is not set
> -# CONFIG_ARCH_CLPS711X is not set
> -# CONFIG_ARCH_CNS3XXX is not set
> -# CONFIG_ARCH_GEMINI is not set
> -# CONFIG_ARCH_EBSA110 is not set
> -# CONFIG_ARCH_EP93XX is not set
> -# CONFIG_ARCH_FOOTBRIDGE is not set
> -# CONFIG_ARCH_MXC is not set
> -# CONFIG_ARCH_MXS is not set
> -# CONFIG_ARCH_NETX is not set
> -# CONFIG_ARCH_H720X is not set
> -# CONFIG_ARCH_IOP13XX is not set
> -# CONFIG_ARCH_IOP32X is not set
> -# CONFIG_ARCH_IOP33X is not set
> -# CONFIG_ARCH_IXP23XX is not set
> -# CONFIG_ARCH_IXP2000 is not set
> -# CONFIG_ARCH_IXP4XX is not set
> -# CONFIG_ARCH_DOVE is not set
> -# CONFIG_ARCH_KIRKWOOD is not set
> -# CONFIG_ARCH_LOKI is not set
> -# CONFIG_ARCH_LPC32XX is not set
> -# CONFIG_ARCH_MV78XX0 is not set
> -# CONFIG_ARCH_ORION5X is not set
> -# CONFIG_ARCH_MMP is not set
> -# CONFIG_ARCH_KS8695 is not set
> -# CONFIG_ARCH_W90X900 is not set
> -# CONFIG_ARCH_NUC93X is not set
> -# CONFIG_ARCH_TEGRA is not set
> -# CONFIG_ARCH_PNX4008 is not set
> -# CONFIG_ARCH_PXA is not set
> -# CONFIG_ARCH_MSM is not set
> -# CONFIG_ARCH_SHMOBILE is not set
> -# CONFIG_ARCH_RPC is not set
> -# CONFIG_ARCH_SA1100 is not set
> -# CONFIG_ARCH_S3C2410 is not set
> -# CONFIG_ARCH_S3C64XX is not set
> -# CONFIG_ARCH_S5P64X0 is not set
> -# CONFIG_ARCH_S5PC100 is not set
> -# CONFIG_ARCH_S5PV210 is not set
> -# CONFIG_ARCH_EXYNOS4 is not set
> -# CONFIG_ARCH_SHARK is not set
> -# CONFIG_ARCH_TCC_926 is not set
> -# CONFIG_ARCH_U300 is not set
> -# CONFIG_ARCH_U8500 is not set
> -# CONFIG_ARCH_NOMADIK is not set
> -# CONFIG_ARCH_DAVINCI is not set
> -CONFIG_ARCH_OMAP=y
> -# CONFIG_PLAT_SPEAR is not set
> -# CONFIG_ARCH_VT8500 is not set
> -# CONFIG_GPIO_PCA953X is not set
> -# CONFIG_KEYBOARD_GPIO_POLLED is not set
> -
> -#
> -# TI OMAP Common Features
> -#
> -CONFIG_ARCH_OMAP_OTG=y
> -# CONFIG_ARCH_OMAP1 is not set
> -CONFIG_ARCH_OMAP2PLUS=y
> -
> -#
> -# OMAP Feature Selections
> -#
> -CONFIG_OMAP_SMARTREFLEX=y
> -CONFIG_OMAP_SMARTREFLEX_CLASS3=y
> -CONFIG_OMAP_RESET_CLOCKS=y
> -CONFIG_OMAP_MUX=y
> -CONFIG_OMAP_MUX_DEBUG=y
> -CONFIG_OMAP_MUX_WARNINGS=y
> -CONFIG_OMAP_MCBSP=y
> -CONFIG_OMAP_MBOX_FWK=m
> -CONFIG_OMAP_MBOX_KFIFO_SIZE=256
> -CONFIG_OMAP_IOMMU=y
> -CONFIG_OMAP_IOMMU_DEBUG=m
> -CONFIG_OMAP_32K_TIMER=y
> -# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
> -CONFIG_OMAP_32K_TIMER_HZ=128
> -CONFIG_OMAP_DM_TIMER=y
> -CONFIG_OMAP_PM_NOOP=y
> -
> -#
> -# TI OMAP2/3/4 Specific Features
> -#
> -CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
> -# CONFIG_ARCH_OMAP2 is not set
> -CONFIG_ARCH_OMAP3=y
> -# CONFIG_ARCH_OMAP4 is not set
> -CONFIG_SOC_OMAP3430=y
> -# CONFIG_SOC_OMAPTI816X is not set
> -CONFIG_OMAP_PACKAGE_CBB=y
> -
> -#
> -# OMAP Board Type
> -#
> -CONFIG_MACH_OMAP3_BEAGLE=y
> -# CONFIG_MACH_DEVKIT8000 is not set
> -# CONFIG_MACH_OMAP_LDP is not set
> -# CONFIG_MACH_OMAP3530_LV_SOM is not set
> -# CONFIG_MACH_OMAP3_TORPEDO is not set
> -CONFIG_MACH_OVERO=y
> -CONFIG_MACH_OMAP3EVM=y
> -# CONFIG_MACH_OMAP3517EVM is not set
> -# CONFIG_MACH_CRANEBOARD is not set
> -# CONFIG_MACH_OMAP3_PANDORA is not set
> -CONFIG_MACH_OMAP3_TOUCHBOOK=y
> -# CONFIG_MACH_OMAP_3430SDP is not set
> -# CONFIG_MACH_NOKIA_RM680 is not set
> -# CONFIG_MACH_NOKIA_RX51 is not set
> -CONFIG_MACH_OMAP_ZOOM2=y
> -# CONFIG_MACH_OMAP_ZOOM3 is not set
> -# CONFIG_MACH_CM_T35 is not set
> -# CONFIG_MACH_CM_T3517 is not set
> -# CONFIG_MACH_IGEP0020 is not set
> -# CONFIG_MACH_IGEP0030 is not set
> -# CONFIG_MACH_SBC3530 is not set
> -# CONFIG_MACH_OMAP_3630SDP is not set
> -# CONFIG_OMAP3_EMU is not set
> -# CONFIG_OMAP3_SDRC_AC_TIMING is not set
> -
> -#
> -# System MMU
> -#
> -
> -#
> -# Processor Type
> -#
> -CONFIG_CPU_V7=y
> -CONFIG_CPU_32v6K=y
> -CONFIG_CPU_32v7=y
> -CONFIG_CPU_ABRT_EV7=y
> -CONFIG_CPU_PABRT_V7=y
> -CONFIG_CPU_CACHE_V7=y
> -CONFIG_CPU_CACHE_VIPT=y
> -CONFIG_CPU_COPY_V6=y
> -CONFIG_CPU_TLB_V7=y
> -CONFIG_CPU_HAS_ASID=y
> -CONFIG_CPU_CP15=y
> -CONFIG_CPU_CP15_MMU=y
> -
> -#
> -# Processor Features
> -#
> -CONFIG_ARM_THUMB=y
> -CONFIG_ARM_THUMBEE=y
> -# CONFIG_SWP_EMULATE is not set
> -# CONFIG_CPU_ICACHE_DISABLE is not set
> -# CONFIG_CPU_DCACHE_DISABLE is not set
> -# CONFIG_CPU_BPREDICT_DISABLE is not set
> -CONFIG_ARM_L1_CACHE_SHIFT_6=y
> -CONFIG_ARM_L1_CACHE_SHIFT=6
> -CONFIG_ARM_DMA_MEM_BUFFERABLE=y
> -CONFIG_ARM_ERRATA_430973=y
> -# CONFIG_ARM_ERRATA_458693 is not set
> -# CONFIG_ARM_ERRATA_460075 is not set
> -# CONFIG_ARM_ERRATA_743622 is not set
> -# CONFIG_ARM_ERRATA_754322 is not set
> -
> -#
> -# Bus support
> -#
> -# CONFIG_PCI_SYSCALL is not set
> -# CONFIG_ARCH_SUPPORTS_MSI is not set
> -# CONFIG_PCCARD is not set
> -
> -#
> -# Kernel Features
> -#
> -CONFIG_TICK_ONESHOT=y
> -CONFIG_NO_HZ=y
> -CONFIG_HIGH_RES_TIMERS=y
> -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
> -CONFIG_VMSPLIT_3G=y
> -# CONFIG_VMSPLIT_2G is not set
> -# CONFIG_VMSPLIT_1G is not set
> -CONFIG_PAGE_OFFSET=0xC0000000
> -CONFIG_PREEMPT_NONE=y
> -# CONFIG_PREEMPT_VOLUNTARY is not set
> -# CONFIG_PREEMPT is not set
> -CONFIG_HZ=128
> -# CONFIG_THUMB2_KERNEL is not set
> -CONFIG_AEABI=y
> -# CONFIG_OABI_COMPAT is not set
> -CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
> -# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
> -# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
> -CONFIG_HAVE_ARCH_PFN_VALID=y
> -# CONFIG_HIGHMEM is not set
> -CONFIG_SELECT_MEMORY_MODEL=y
> -CONFIG_FLATMEM_MANUAL=y
> -CONFIG_FLATMEM=y
> -CONFIG_FLAT_NODE_MEM_MAP=y
> -CONFIG_HAVE_MEMBLOCK=y
> -CONFIG_PAGEFLAGS_EXTENDED=y
> -CONFIG_SPLIT_PTLOCK_CPUS=4
> -CONFIG_COMPACTION=y
> -CONFIG_MIGRATION=y
> -# CONFIG_PHYS_ADDR_T_64BIT is not set
> -CONFIG_ZONE_DMA_FLAG=0
> -CONFIG_VIRT_TO_BUS=y
> -# CONFIG_KSM is not set
> -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
> -CONFIG_NEED_PER_CPU_KM=y
> -# CONFIG_CLEANCACHE is not set
> -CONFIG_FORCE_MAX_ZONEORDER=11
> -CONFIG_LEDS=y
> -CONFIG_ALIGNMENT_TRAP=y
> -# CONFIG_UACCESS_WITH_MEMCPY is not set
> -# CONFIG_SECCOMP is not set
> -# CONFIG_CC_STACKPROTECTOR is not set
> -# CONFIG_DEPRECATED_PARAM_STRUCT is not set
> -
> -#
> -# Boot options
> -#
> -# CONFIG_USE_OF is not set
> -CONFIG_ZBOOT_ROM_TEXT=0x0
> -CONFIG_ZBOOT_ROM_BSS=0x0
> -CONFIG_CMDLINE=" debug "
> -CONFIG_CMDLINE_FROM_BOOTLOADER=y
> -# CONFIG_CMDLINE_EXTEND is not set
> -# CONFIG_CMDLINE_FORCE is not set
> -# CONFIG_XIP_KERNEL is not set
> -CONFIG_KEXEC=y
> -CONFIG_ATAGS_PROC=y
> -# CONFIG_CRASH_DUMP is not set
> -CONFIG_AUTO_ZRELADDR=y
> -
> -#
> -# CPU Power Management
> -#
> -
> -#
> -# CPU Frequency scaling
> -#
> -CONFIG_CPU_FREQ=y
> -CONFIG_CPU_FREQ_TABLE=y
> -CONFIG_CPU_FREQ_STAT=y
> -CONFIG_CPU_FREQ_STAT_DETAILS=y
> -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
> -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
> -CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
> -# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
> -# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
> -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
> -CONFIG_CPU_FREQ_GOV_POWERSAVE=y
> -CONFIG_CPU_FREQ_GOV_USERSPACE=y
> -CONFIG_CPU_FREQ_GOV_ONDEMAND=y
> -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
> -CONFIG_CPU_IDLE=y
> -CONFIG_CPU_IDLE_GOV_LADDER=y
> -CONFIG_CPU_IDLE_GOV_MENU=y
> -
> -#
> -# Floating point emulation
> -#
> -
> -#
> -# At least one emulation must be selected
> -#
> -CONFIG_VFP=y
> -CONFIG_VFPv3=y
> -CONFIG_NEON=y
> -
> -#
> -# Userspace binary formats
> -#
> -CONFIG_BINFMT_ELF=y
> -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
> -CONFIG_HAVE_AOUT=y
> -CONFIG_BINFMT_AOUT=m
> -CONFIG_BINFMT_MISC=y
> -
> -#
> -# Power management options
> -#
> -CONFIG_SUSPEND=y
> -CONFIG_SUSPEND_FREEZER=y
> -CONFIG_PM_SLEEP=y
> -CONFIG_PM_RUNTIME=y
> -CONFIG_PM=y
> -CONFIG_PM_DEBUG=y
> -# CONFIG_PM_ADVANCED_DEBUG is not set
> -# CONFIG_PM_TEST_SUSPEND is not set
> -CONFIG_CAN_PM_TRACE=y
> -# CONFIG_APM_EMULATION is not set
> -CONFIG_ARCH_HAS_OPP=y
> -CONFIG_PM_OPP=y
> -CONFIG_PM_RUNTIME_CLK=y
> -CONFIG_ARCH_SUSPEND_POSSIBLE=y
> -CONFIG_NET=y
> -
> -#
> -# Networking options
> -#
> -CONFIG_PACKET=y
> -CONFIG_UNIX=y
> -CONFIG_XFRM=y
> -# CONFIG_XFRM_USER is not set
> -# CONFIG_XFRM_SUB_POLICY is not set
> -# CONFIG_XFRM_MIGRATE is not set
> -# CONFIG_XFRM_STATISTICS is not set
> -CONFIG_XFRM_IPCOMP=m
> -CONFIG_NET_KEY=y
> -# CONFIG_NET_KEY_MIGRATE is not set
> -CONFIG_INET=y
> -# CONFIG_IP_MULTICAST is not set
> -# CONFIG_IP_ADVANCED_ROUTER is not set
> -CONFIG_IP_ROUTE_CLASSID=y
> -CONFIG_IP_PNP=y
> -CONFIG_IP_PNP_DHCP=y
> -CONFIG_IP_PNP_BOOTP=y
> -CONFIG_IP_PNP_RARP=y
> -CONFIG_NET_IPIP=m
> -CONFIG_NET_IPGRE_DEMUX=m
> -CONFIG_NET_IPGRE=m
> -# CONFIG_ARPD is not set
> -# CONFIG_SYN_COOKIES is not set
> -CONFIG_INET_AH=m
> -CONFIG_INET_ESP=m
> -CONFIG_INET_IPCOMP=m
> -CONFIG_INET_XFRM_TUNNEL=m
> -CONFIG_INET_TUNNEL=m
> -CONFIG_INET_XFRM_MODE_TRANSPORT=y
> -CONFIG_INET_XFRM_MODE_TUNNEL=y
> -CONFIG_INET_XFRM_MODE_BEET=y
> -CONFIG_INET_LRO=y
> -CONFIG_INET_DIAG=m
> -CONFIG_INET_TCP_DIAG=m
> -CONFIG_TCP_CONG_ADVANCED=y
> -CONFIG_TCP_CONG_BIC=m
> -CONFIG_TCP_CONG_CUBIC=y
> -CONFIG_TCP_CONG_WESTWOOD=m
> -CONFIG_TCP_CONG_HTCP=m
> -CONFIG_TCP_CONG_HSTCP=m
> -CONFIG_TCP_CONG_HYBLA=m
> -CONFIG_TCP_CONG_VEGAS=m
> -CONFIG_TCP_CONG_SCALABLE=m
> -CONFIG_TCP_CONG_LP=m
> -CONFIG_TCP_CONG_VENO=m
> -CONFIG_TCP_CONG_YEAH=m
> -CONFIG_TCP_CONG_ILLINOIS=m
> -CONFIG_DEFAULT_CUBIC=y
> -# CONFIG_DEFAULT_RENO is not set
> -CONFIG_DEFAULT_TCP_CONG="cubic"
> -# CONFIG_TCP_MD5SIG is not set
> -CONFIG_IPV6=m
> -# CONFIG_IPV6_PRIVACY is not set
> -# CONFIG_IPV6_ROUTER_PREF is not set
> -# CONFIG_IPV6_OPTIMISTIC_DAD is not set
> -CONFIG_INET6_AH=m
> -CONFIG_INET6_ESP=m
> -CONFIG_INET6_IPCOMP=m
> -CONFIG_IPV6_MIP6=m
> -CONFIG_INET6_XFRM_TUNNEL=m
> -CONFIG_INET6_TUNNEL=m
> -CONFIG_INET6_XFRM_MODE_TRANSPORT=m
> -CONFIG_INET6_XFRM_MODE_TUNNEL=m
> -CONFIG_INET6_XFRM_MODE_BEET=m
> -CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
> -CONFIG_IPV6_SIT=m
> -# CONFIG_IPV6_SIT_6RD is not set
> -CONFIG_IPV6_NDISC_NODETYPE=y
> -CONFIG_IPV6_TUNNEL=m
> -CONFIG_IPV6_MULTIPLE_TABLES=y
> -CONFIG_IPV6_SUBTREES=y
> -CONFIG_IPV6_MROUTE=y
> -CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
> -# CONFIG_IPV6_PIMSM_V2 is not set
> -# CONFIG_NETWORK_SECMARK is not set
> -CONFIG_NETWORK_PHY_TIMESTAMPING=y
> -CONFIG_NETFILTER=y
> -# CONFIG_NETFILTER_DEBUG is not set
> -CONFIG_NETFILTER_ADVANCED=y
> -CONFIG_BRIDGE_NETFILTER=y
> -
> -#
> -# Core Netfilter Configuration
> -#
> -CONFIG_NETFILTER_NETLINK=m
> -CONFIG_NETFILTER_NETLINK_QUEUE=m
> -CONFIG_NETFILTER_NETLINK_LOG=m
> -CONFIG_NF_CONNTRACK=m
> -CONFIG_NF_CONNTRACK_MARK=y
> -CONFIG_NF_CONNTRACK_ZONES=y
> -CONFIG_NF_CONNTRACK_EVENTS=y
> -CONFIG_NF_CONNTRACK_TIMESTAMP=y
> -CONFIG_NF_CT_PROTO_DCCP=m
> -CONFIG_NF_CT_PROTO_GRE=m
> -CONFIG_NF_CT_PROTO_SCTP=m
> -CONFIG_NF_CT_PROTO_UDPLITE=m
> -CONFIG_NF_CONNTRACK_AMANDA=m
> -CONFIG_NF_CONNTRACK_FTP=m
> -CONFIG_NF_CONNTRACK_H323=m
> -CONFIG_NF_CONNTRACK_IRC=m
> -CONFIG_NF_CONNTRACK_BROADCAST=m
> -CONFIG_NF_CONNTRACK_NETBIOS_NS=m
> -CONFIG_NF_CONNTRACK_SNMP=m
> -CONFIG_NF_CONNTRACK_PPTP=m
> -CONFIG_NF_CONNTRACK_SANE=m
> -CONFIG_NF_CONNTRACK_SIP=m
> -CONFIG_NF_CONNTRACK_TFTP=m
> -CONFIG_NF_CT_NETLINK=m
> -# CONFIG_NETFILTER_TPROXY is not set
> -CONFIG_NETFILTER_XTABLES=m
> -
> -#
> -# Xtables combined modules
> -#
> -CONFIG_NETFILTER_XT_MARK=m
> -CONFIG_NETFILTER_XT_CONNMARK=m
> -CONFIG_NETFILTER_XT_SET=m
> -
> -#
> -# Xtables targets
> -#
> -CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
> -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
> -CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
> -CONFIG_NETFILTER_XT_TARGET_CT=m
> -# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
> -CONFIG_NETFILTER_XT_TARGET_HL=m
> -CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
> -# CONFIG_NETFILTER_XT_TARGET_LED is not set
> -CONFIG_NETFILTER_XT_TARGET_MARK=m
> -CONFIG_NETFILTER_XT_TARGET_NFLOG=m
> -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
> -# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
> -CONFIG_NETFILTER_XT_TARGET_RATEEST=m
> -CONFIG_NETFILTER_XT_TARGET_TEE=m
> -# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
> -CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
> -# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
> -
> -#
> -# Xtables matches
> -#
> -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
> -# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
> -CONFIG_NETFILTER_XT_MATCH_COMMENT=m
> -CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
> -CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
> -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
> -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
> -CONFIG_NETFILTER_XT_MATCH_CPU=m
> -CONFIG_NETFILTER_XT_MATCH_DCCP=m
> -CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
> -CONFIG_NETFILTER_XT_MATCH_DSCP=m
> -CONFIG_NETFILTER_XT_MATCH_ESP=m
> -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
> -CONFIG_NETFILTER_XT_MATCH_HELPER=m
> -CONFIG_NETFILTER_XT_MATCH_HL=m
> -CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
> -CONFIG_NETFILTER_XT_MATCH_IPVS=m
> -CONFIG_NETFILTER_XT_MATCH_LENGTH=m
> -CONFIG_NETFILTER_XT_MATCH_LIMIT=m
> -CONFIG_NETFILTER_XT_MATCH_MAC=m
> -CONFIG_NETFILTER_XT_MATCH_MARK=m
> -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
> -# CONFIG_NETFILTER_XT_MATCH_OSF is not set
> -CONFIG_NETFILTER_XT_MATCH_OWNER=m
> -CONFIG_NETFILTER_XT_MATCH_POLICY=m
> -# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
> -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
> -CONFIG_NETFILTER_XT_MATCH_QUOTA=m
> -CONFIG_NETFILTER_XT_MATCH_RATEEST=m
> -CONFIG_NETFILTER_XT_MATCH_REALM=m
> -CONFIG_NETFILTER_XT_MATCH_RECENT=m
> -CONFIG_NETFILTER_XT_MATCH_SCTP=m
> -CONFIG_NETFILTER_XT_MATCH_STATE=m
> -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
> -CONFIG_NETFILTER_XT_MATCH_STRING=m
> -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
> -CONFIG_NETFILTER_XT_MATCH_TIME=m
> -CONFIG_NETFILTER_XT_MATCH_U32=m
> -CONFIG_IP_SET=m
> -CONFIG_IP_SET_MAX=256
> -# CONFIG_IP_SET_BITMAP_IP is not set
> -# CONFIG_IP_SET_BITMAP_IPMAC is not set
> -# CONFIG_IP_SET_BITMAP_PORT is not set
> -# CONFIG_IP_SET_HASH_IP is not set
> -# CONFIG_IP_SET_HASH_IPPORT is not set
> -# CONFIG_IP_SET_HASH_IPPORTIP is not set
> -# CONFIG_IP_SET_HASH_IPPORTNET is not set
> -# CONFIG_IP_SET_HASH_NET is not set
> -# CONFIG_IP_SET_HASH_NETPORT is not set
> -# CONFIG_IP_SET_LIST_SET is not set
> -CONFIG_IP_VS=m
> -CONFIG_IP_VS_IPV6=y
> -CONFIG_IP_VS_DEBUG=y
> -CONFIG_IP_VS_TAB_BITS=12
> -
> -#
> -# IPVS transport protocol load balancing support
> -#
> -CONFIG_IP_VS_PROTO_TCP=y
> -CONFIG_IP_VS_PROTO_UDP=y
> -CONFIG_IP_VS_PROTO_AH_ESP=y
> -CONFIG_IP_VS_PROTO_ESP=y
> -CONFIG_IP_VS_PROTO_AH=y
> -# CONFIG_IP_VS_PROTO_SCTP is not set
> -
> -#
> -# IPVS scheduler
> -#
> -CONFIG_IP_VS_RR=m
> -CONFIG_IP_VS_WRR=m
> -CONFIG_IP_VS_LC=m
> -CONFIG_IP_VS_WLC=m
> -CONFIG_IP_VS_LBLC=m
> -CONFIG_IP_VS_LBLCR=m
> -CONFIG_IP_VS_DH=m
> -CONFIG_IP_VS_SH=m
> -CONFIG_IP_VS_SED=m
> -CONFIG_IP_VS_NQ=m
> -
> -#
> -# IPVS application helper
> -#
> -CONFIG_IP_VS_FTP=m
> -CONFIG_IP_VS_NFCT=y
> -CONFIG_IP_VS_PE_SIP=m
> -
> -#
> -# IP: Netfilter Configuration
> -#
> -CONFIG_NF_DEFRAG_IPV4=m
> -CONFIG_NF_CONNTRACK_IPV4=m
> -CONFIG_NF_CONNTRACK_PROC_COMPAT=y
> -CONFIG_IP_NF_QUEUE=m
> -CONFIG_IP_NF_IPTABLES=m
> -CONFIG_IP_NF_MATCH_AH=m
> -CONFIG_IP_NF_MATCH_ECN=m
> -CONFIG_IP_NF_MATCH_TTL=m
> -CONFIG_IP_NF_FILTER=m
> -CONFIG_IP_NF_TARGET_REJECT=m
> -CONFIG_IP_NF_TARGET_LOG=m
> -CONFIG_IP_NF_TARGET_ULOG=m
> -CONFIG_NF_NAT=m
> -CONFIG_NF_NAT_NEEDED=y
> -CONFIG_IP_NF_TARGET_MASQUERADE=m
> -CONFIG_IP_NF_TARGET_NETMAP=m
> -CONFIG_IP_NF_TARGET_REDIRECT=m
> -CONFIG_NF_NAT_SNMP_BASIC=m
> -CONFIG_NF_NAT_PROTO_DCCP=m
> -CONFIG_NF_NAT_PROTO_GRE=m
> -CONFIG_NF_NAT_PROTO_UDPLITE=m
> -CONFIG_NF_NAT_PROTO_SCTP=m
> -CONFIG_NF_NAT_FTP=m
> -CONFIG_NF_NAT_IRC=m
> -CONFIG_NF_NAT_TFTP=m
> -CONFIG_NF_NAT_AMANDA=m
> -CONFIG_NF_NAT_PPTP=m
> -CONFIG_NF_NAT_H323=m
> -CONFIG_NF_NAT_SIP=m
> -CONFIG_IP_NF_MANGLE=m
> -CONFIG_IP_NF_TARGET_CLUSTERIP=m
> -CONFIG_IP_NF_TARGET_ECN=m
> -CONFIG_IP_NF_TARGET_TTL=m
> -CONFIG_IP_NF_RAW=m
> -CONFIG_IP_NF_ARPTABLES=m
> -CONFIG_IP_NF_ARPFILTER=m
> -CONFIG_IP_NF_ARP_MANGLE=m
> -
> -#
> -# IPv6: Netfilter Configuration
> -#
> -CONFIG_NF_DEFRAG_IPV6=m
> -CONFIG_NF_CONNTRACK_IPV6=m
> -CONFIG_IP6_NF_QUEUE=m
> -CONFIG_IP6_NF_IPTABLES=m
> -CONFIG_IP6_NF_MATCH_AH=m
> -CONFIG_IP6_NF_MATCH_EUI64=m
> -CONFIG_IP6_NF_MATCH_FRAG=m
> -CONFIG_IP6_NF_MATCH_OPTS=m
> -CONFIG_IP6_NF_MATCH_HL=m
> -CONFIG_IP6_NF_MATCH_IPV6HEADER=m
> -CONFIG_IP6_NF_MATCH_MH=m
> -CONFIG_IP6_NF_MATCH_RT=m
> -CONFIG_IP6_NF_TARGET_HL=m
> -CONFIG_IP6_NF_TARGET_LOG=m
> -CONFIG_IP6_NF_FILTER=m
> -CONFIG_IP6_NF_TARGET_REJECT=m
> -CONFIG_IP6_NF_MANGLE=m
> -CONFIG_IP6_NF_RAW=m
> -# CONFIG_BRIDGE_NF_EBTABLES is not set
> -CONFIG_IP_DCCP=m
> -CONFIG_INET_DCCP_DIAG=m
> -
> -#
> -# DCCP CCIDs Configuration (EXPERIMENTAL)
> -#
> -# CONFIG_IP_DCCP_CCID2_DEBUG is not set
> -CONFIG_IP_DCCP_CCID3=y
> -# CONFIG_IP_DCCP_CCID3_DEBUG is not set
> -CONFIG_IP_DCCP_TFRC_LIB=y
> -
> -#
> -# DCCP Kernel Hacking
> -#
> -# CONFIG_IP_DCCP_DEBUG is not set
> -CONFIG_IP_SCTP=m
> -# CONFIG_SCTP_DBG_MSG is not set
> -# CONFIG_SCTP_DBG_OBJCNT is not set
> -# CONFIG_SCTP_HMAC_NONE is not set
> -# CONFIG_SCTP_HMAC_SHA1 is not set
> -CONFIG_SCTP_HMAC_MD5=y
> -# CONFIG_RDS is not set
> -CONFIG_TIPC=m
> -# CONFIG_TIPC_ADVANCED is not set
> -# CONFIG_TIPC_DEBUG is not set
> -CONFIG_ATM=m
> -CONFIG_ATM_CLIP=m
> -# CONFIG_ATM_CLIP_NO_ICMP is not set
> -CONFIG_ATM_LANE=m
> -CONFIG_ATM_MPOA=m
> -CONFIG_ATM_BR2684=m
> -# CONFIG_ATM_BR2684_IPFILTER is not set
> -CONFIG_L2TP=m
> -CONFIG_L2TP_DEBUGFS=m
> -CONFIG_L2TP_V3=y
> -CONFIG_L2TP_IP=m
> -CONFIG_L2TP_ETH=m
> -CONFIG_STP=m
> -CONFIG_GARP=m
> -CONFIG_BRIDGE=m
> -CONFIG_BRIDGE_IGMP_SNOOPING=y
> -# CONFIG_NET_DSA is not set
> -CONFIG_VLAN_8021Q=m
> -CONFIG_VLAN_8021Q_GVRP=y
> -# CONFIG_DECNET is not set
> -CONFIG_LLC=m
> -# CONFIG_LLC2 is not set
> -# CONFIG_IPX is not set
> -# CONFIG_ATALK is not set
> -# CONFIG_X25 is not set
> -# CONFIG_LAPB is not set
> -# CONFIG_ECONET is not set
> -CONFIG_WAN_ROUTER=m
> -# CONFIG_PHONET is not set
> -# CONFIG_IEEE802154 is not set
> -CONFIG_NET_SCHED=y
> -
> -#
> -# Queueing/Scheduling
> -#
> -CONFIG_NET_SCH_CBQ=m
> -CONFIG_NET_SCH_HTB=m
> -CONFIG_NET_SCH_HFSC=m
> -CONFIG_NET_SCH_ATM=m
> -CONFIG_NET_SCH_PRIO=m
> -CONFIG_NET_SCH_MULTIQ=m
> -CONFIG_NET_SCH_RED=m
> -# CONFIG_NET_SCH_SFB is not set
> -CONFIG_NET_SCH_SFQ=m
> -CONFIG_NET_SCH_TEQL=m
> -CONFIG_NET_SCH_TBF=m
> -CONFIG_NET_SCH_GRED=m
> -CONFIG_NET_SCH_DSMARK=m
> -CONFIG_NET_SCH_NETEM=m
> -CONFIG_NET_SCH_DRR=m
> -CONFIG_NET_SCH_MQPRIO=m
> -CONFIG_NET_SCH_CHOKE=m
> -# CONFIG_NET_SCH_QFQ is not set
> -
> -#
> -# Classification
> -#
> -CONFIG_NET_CLS=y
> -CONFIG_NET_CLS_BASIC=m
> -CONFIG_NET_CLS_TCINDEX=m
> -CONFIG_NET_CLS_ROUTE4=m
> -CONFIG_NET_CLS_FW=m
> -CONFIG_NET_CLS_U32=m
> -CONFIG_CLS_U32_PERF=y
> -CONFIG_CLS_U32_MARK=y
> -CONFIG_NET_CLS_RSVP=m
> -CONFIG_NET_CLS_RSVP6=m
> -CONFIG_NET_CLS_FLOW=m
> -CONFIG_NET_CLS_CGROUP=m
> -# CONFIG_NET_EMATCH is not set
> -# CONFIG_NET_CLS_ACT is not set
> -CONFIG_NET_CLS_IND=y
> -CONFIG_NET_SCH_FIFO=y
> -# CONFIG_DCB is not set
> -CONFIG_DNS_RESOLVER=y
> -# CONFIG_BATMAN_ADV is not set
> -
> -#
> -# Network testing
> -#
> -# CONFIG_NET_PKTGEN is not set
> -# CONFIG_HAMRADIO is not set
> -CONFIG_CAN=m
> -CONFIG_CAN_RAW=m
> -CONFIG_CAN_BCM=m
> -
> -#
> -# CAN Device Drivers
> -#
> -CONFIG_CAN_VCAN=m
> -CONFIG_CAN_SLCAN=m
> -# CONFIG_CAN_DEV is not set
> -# CONFIG_CAN_DEBUG_DEVICES is not set
> -CONFIG_IRDA=m
> -
> -#
> -# IrDA protocols
> -#
> -CONFIG_IRLAN=m
> -CONFIG_IRNET=m
> -CONFIG_IRCOMM=m
> -CONFIG_IRDA_ULTRA=y
> -
> -#
> -# IrDA options
> -#
> -CONFIG_IRDA_CACHE_LAST_LSAP=y
> -CONFIG_IRDA_FAST_RR=y
> -CONFIG_IRDA_DEBUG=y
> -
> -#
> -# Infrared-port device drivers
> -#
> -
> -#
> -# SIR device drivers
> -#
> -CONFIG_IRTTY_SIR=m
> -
> -#
> -# Dongle support
> -#
> -CONFIG_DONGLE=y
> -CONFIG_ESI_DONGLE=m
> -CONFIG_ACTISYS_DONGLE=m
> -CONFIG_TEKRAM_DONGLE=m
> -CONFIG_TOIM3232_DONGLE=m
> -CONFIG_LITELINK_DONGLE=m
> -CONFIG_MA600_DONGLE=m
> -CONFIG_GIRBIL_DONGLE=m
> -CONFIG_MCP2120_DONGLE=m
> -CONFIG_OLD_BELKIN_DONGLE=m
> -# CONFIG_ACT200L_DONGLE is not set
> -CONFIG_KINGSUN_DONGLE=m
> -CONFIG_KSDAZZLE_DONGLE=m
> -CONFIG_KS959_DONGLE=m
> -
> -#
> -# FIR device drivers
> -#
> -CONFIG_USB_IRDA=m
> -CONFIG_SIGMATEL_FIR=m
> -CONFIG_MCS_FIR=m
> -CONFIG_BT=y
> -CONFIG_BT_L2CAP=y
> -CONFIG_BT_SCO=y
> -CONFIG_BT_RFCOMM=m
> -CONFIG_BT_RFCOMM_TTY=y
> -CONFIG_BT_BNEP=m
> -CONFIG_BT_BNEP_MC_FILTER=y
> -CONFIG_BT_BNEP_PROTO_FILTER=y
> -CONFIG_BT_HIDP=m
> -
> -#
> -# Bluetooth device drivers
> -#
> -CONFIG_BT_HCIBTUSB=y
> -CONFIG_BT_HCIBTSDIO=m
> -CONFIG_BT_HCIUART=y
> -CONFIG_BT_HCIUART_H4=y
> -CONFIG_BT_HCIUART_BCSP=y
> -CONFIG_BT_HCIUART_ATH3K=y
> -CONFIG_BT_HCIUART_LL=y
> -CONFIG_BT_HCIBCM203X=m
> -CONFIG_BT_HCIBPA10X=m
> -CONFIG_BT_HCIBFUSB=m
> -# CONFIG_BT_HCIVHCI is not set
> -CONFIG_BT_MRVL=m
> -# CONFIG_BT_MRVL_SDIO is not set
> -CONFIG_BT_ATH3K=m
> -CONFIG_BT_WILINK=m
> -CONFIG_AF_RXRPC=m
> -# CONFIG_AF_RXRPC_DEBUG is not set
> -# CONFIG_RXKAD is not set
> -CONFIG_FIB_RULES=y
> -CONFIG_WIRELESS=y
> -CONFIG_WIRELESS_EXT=y
> -CONFIG_WEXT_CORE=y
> -CONFIG_WEXT_PROC=y
> -CONFIG_WEXT_SPY=y
> -CONFIG_WEXT_PRIV=y
> -CONFIG_CFG80211=m
> -CONFIG_NL80211_TESTMODE=y
> -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
> -# CONFIG_CFG80211_REG_DEBUG is not set
> -CONFIG_CFG80211_DEFAULT_PS=y
> -# CONFIG_CFG80211_DEBUGFS is not set
> -# CONFIG_CFG80211_INTERNAL_REGDB is not set
> -CONFIG_CFG80211_WEXT=y
> -CONFIG_WIRELESS_EXT_SYSFS=y
> -CONFIG_LIB80211=y
> -CONFIG_LIB80211_CRYPT_WEP=m
> -CONFIG_LIB80211_CRYPT_CCMP=m
> -CONFIG_LIB80211_CRYPT_TKIP=m
> -# CONFIG_LIB80211_DEBUG is not set
> -CONFIG_MAC80211=m
> -CONFIG_MAC80211_HAS_RC=y
> -CONFIG_MAC80211_RC_PID=y
> -# CONFIG_MAC80211_RC_MINSTREL is not set
> -CONFIG_MAC80211_RC_DEFAULT_PID=y
> -CONFIG_MAC80211_RC_DEFAULT="pid"
> -# CONFIG_MAC80211_MESH is not set
> -CONFIG_MAC80211_LEDS=y
> -# CONFIG_MAC80211_DEBUGFS is not set
> -# CONFIG_MAC80211_DEBUG_MENU is not set
> -CONFIG_WIMAX=m
> -CONFIG_WIMAX_DEBUG_LEVEL=8
> -CONFIG_RFKILL=y
> -CONFIG_RFKILL_LEDS=y
> -CONFIG_RFKILL_INPUT=y
> -# CONFIG_RFKILL_REGULATOR is not set
> -# CONFIG_RFKILL_GPIO is not set
> -CONFIG_NET_9P=m
> -# CONFIG_NET_9P_DEBUG is not set
> -# CONFIG_CAIF is not set
> -CONFIG_CEPH_LIB=m
> -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
> -
> -#
> -# Device Drivers
> -#
> -
> -#
> -# Generic Driver Options
> -#
> -CONFIG_UEVENT_HELPER_PATH=""
> -CONFIG_DEVTMPFS=y
> -CONFIG_DEVTMPFS_MOUNT=y
> -CONFIG_STANDALONE=y
> -CONFIG_PREVENT_FIRMWARE_BUILD=y
> -CONFIG_FW_LOADER=y
> -CONFIG_FIRMWARE_IN_KERNEL=y
> -CONFIG_EXTRA_FIRMWARE=""
> -# CONFIG_DEBUG_DRIVER is not set
> -# CONFIG_DEBUG_DEVRES is not set
> -# CONFIG_SYS_HYPERVISOR is not set
> -# CONFIG_CONNECTOR is not set
> -CONFIG_MTD=y
> -# CONFIG_MTD_DEBUG is not set
> -# CONFIG_MTD_TESTS is not set
> -# CONFIG_MTD_REDBOOT_PARTS is not set
> -# CONFIG_MTD_CMDLINE_PARTS is not set
> -# CONFIG_MTD_AFS_PARTS is not set
> -# CONFIG_MTD_AR7_PARTS is not set
> -
> -#
> -# User Modules And Translation Layers
> -#
> -CONFIG_MTD_CHAR=y
> -CONFIG_MTD_BLKDEVS=y
> -CONFIG_MTD_BLOCK=y
> -# CONFIG_FTL is not set
> -# CONFIG_NFTL is not set
> -# CONFIG_INFTL is not set
> -# CONFIG_RFD_FTL is not set
> -# CONFIG_SSFDC is not set
> -CONFIG_SM_FTL=m
> -# CONFIG_MTD_OOPS is not set
> -CONFIG_MTD_SWAP=m
> -
> -#
> -# RAM/ROM/Flash chip drivers
> -#
> -# CONFIG_MTD_CFI is not set
> -# CONFIG_MTD_JEDECPROBE is not set
> -CONFIG_MTD_MAP_BANK_WIDTH_1=y
> -CONFIG_MTD_MAP_BANK_WIDTH_2=y
> -CONFIG_MTD_MAP_BANK_WIDTH_4=y
> -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
> -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
> -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
> -CONFIG_MTD_CFI_I1=y
> -CONFIG_MTD_CFI_I2=y
> -# CONFIG_MTD_CFI_I4 is not set
> -# CONFIG_MTD_CFI_I8 is not set
> -# CONFIG_MTD_RAM is not set
> -# CONFIG_MTD_ROM is not set
> -# CONFIG_MTD_ABSENT is not set
> -
> -#
> -# Mapping drivers for chip access
> -#
> -# CONFIG_MTD_COMPLEX_MAPPINGS is not set
> -# CONFIG_MTD_PLATRAM is not set
> -
> -#
> -# Self-contained MTD device drivers
> -#
> -# CONFIG_MTD_DATAFLASH is not set
> -# CONFIG_MTD_M25P80 is not set
> -# CONFIG_MTD_SST25L is not set
> -# CONFIG_MTD_SLRAM is not set
> -# CONFIG_MTD_PHRAM is not set
> -# CONFIG_MTD_MTDRAM is not set
> -# CONFIG_MTD_BLOCK2MTD is not set
> -
> -#
> -# Disk-On-Chip Device Drivers
> -#
> -# CONFIG_MTD_DOC2000 is not set
> -# CONFIG_MTD_DOC2001 is not set
> -# CONFIG_MTD_DOC2001PLUS is not set
> -CONFIG_MTD_NAND_ECC=y
> -# CONFIG_MTD_NAND_ECC_SMC is not set
> -CONFIG_MTD_NAND=y
> -# CONFIG_MTD_NAND_VERIFY_WRITE is not set
> -# CONFIG_MTD_NAND_ECC_BCH is not set
> -# CONFIG_MTD_SM_COMMON is not set
> -# CONFIG_MTD_NAND_MUSEUM_IDS is not set
> -# CONFIG_MTD_NAND_GPIO is not set
> -CONFIG_MTD_NAND_OMAP2=y
> -CONFIG_MTD_NAND_IDS=y
> -# CONFIG_MTD_NAND_DISKONCHIP is not set
> -# CONFIG_MTD_NAND_NANDSIM is not set
> -CONFIG_MTD_NAND_PLATFORM=y
> -# CONFIG_MTD_ALAUDA is not set
> -# CONFIG_MTD_ONENAND is not set
> -
> -#
> -# LPDDR flash memory drivers
> -#
> -# CONFIG_MTD_LPDDR is not set
> -CONFIG_MTD_UBI=y
> -CONFIG_MTD_UBI_WL_THRESHOLD=4096
> -CONFIG_MTD_UBI_BEB_RESERVE=1
> -# CONFIG_MTD_UBI_GLUEBI is not set
> -# CONFIG_MTD_UBI_DEBUG is not set
> -# CONFIG_PARPORT is not set
> -CONFIG_BLK_DEV=y
> -# CONFIG_BLK_DEV_COW_COMMON is not set
> -CONFIG_BLK_DEV_LOOP=y
> -CONFIG_BLK_DEV_CRYPTOLOOP=m
> -
> -#
> -# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
> -#
> -# CONFIG_BLK_DEV_NBD is not set
> -# CONFIG_BLK_DEV_UB is not set
> -CONFIG_BLK_DEV_RAM=y
> -CONFIG_BLK_DEV_RAM_COUNT=16
> -CONFIG_BLK_DEV_RAM_SIZE=16384
> -# CONFIG_BLK_DEV_XIP is not set
> -CONFIG_CDROM_PKTCDVD=m
> -CONFIG_CDROM_PKTCDVD_BUFFERS=8
> -# CONFIG_CDROM_PKTCDVD_WCACHE is not set
> -# CONFIG_ATA_OVER_ETH is not set
> -# CONFIG_MG_DISK is not set
> -# CONFIG_BLK_DEV_RBD is not set
> -# CONFIG_SENSORS_LIS3LV02D is not set
> -CONFIG_MISC_DEVICES=y
> -# CONFIG_AD525X_DPOT is not set
> -# CONFIG_INTEL_MID_PTI is not set
> -# CONFIG_ICS932S401 is not set
> -# CONFIG_ENCLOSURE_SERVICES is not set
> -# CONFIG_APDS9802ALS is not set
> -# CONFIG_ISL29003 is not set
> -# CONFIG_ISL29020 is not set
> -# CONFIG_SENSORS_TSL2550 is not set
> -CONFIG_SENSORS_BH1780=m
> -# CONFIG_SENSORS_BH1770 is not set
> -# CONFIG_SENSORS_APDS990X is not set
> -CONFIG_HMC6352=m
> -# CONFIG_DS1682 is not set
> -# CONFIG_TI_DAC7512 is not set
> -CONFIG_BMP085=m
> -# CONFIG_C2PORT is not set
> -
> -#
> -# EEPROM support
> -#
> -CONFIG_EEPROM_AT24=m
> -# CONFIG_EEPROM_AT25 is not set
> -# CONFIG_EEPROM_LEGACY is not set
> -# CONFIG_EEPROM_MAX6875 is not set
> -CONFIG_EEPROM_93CX6=y
> -CONFIG_IWMC3200TOP=m
> -# CONFIG_IWMC3200TOP_DEBUG is not set
> -# CONFIG_IWMC3200TOP_DEBUGFS is not set
> -
> -#
> -# Texas Instruments shared transport line discipline
> -#
> -CONFIG_TI_ST=m
> -# CONFIG_SENSORS_LIS3_SPI is not set
> -# CONFIG_SENSORS_LIS3_I2C is not set
> -CONFIG_HAVE_IDE=y
> -# CONFIG_IDE is not set
> -
> -#
> -# SCSI device support
> -#
> -CONFIG_SCSI_MOD=y
> -CONFIG_RAID_ATTRS=m
> -CONFIG_SCSI=y
> -CONFIG_SCSI_DMA=y
> -# CONFIG_SCSI_TGT is not set
> -# CONFIG_SCSI_NETLINK is not set
> -CONFIG_SCSI_PROC_FS=y
> -
> -#
> -# SCSI support type (disk, tape, CD-ROM)
> -#
> -CONFIG_BLK_DEV_SD=y
> -# CONFIG_CHR_DEV_ST is not set
> -# CONFIG_CHR_DEV_OSST is not set
> -CONFIG_BLK_DEV_SR=y
> -CONFIG_BLK_DEV_SR_VENDOR=y
> -CONFIG_CHR_DEV_SG=y
> -CONFIG_CHR_DEV_SCH=m
> -CONFIG_SCSI_MULTI_LUN=y
> -# CONFIG_SCSI_CONSTANTS is not set
> -# CONFIG_SCSI_LOGGING is not set
> -# CONFIG_SCSI_SCAN_ASYNC is not set
> -CONFIG_SCSI_WAIT_SCAN=m
> -
> -#
> -# SCSI Transports
> -#
> -# CONFIG_SCSI_SPI_ATTRS is not set
> -# CONFIG_SCSI_FC_ATTRS is not set
> -CONFIG_SCSI_ISCSI_ATTRS=m
> -# CONFIG_SCSI_SAS_ATTRS is not set
> -# CONFIG_SCSI_SAS_LIBSAS is not set
> -# CONFIG_SCSI_SRP_ATTRS is not set
> -CONFIG_SCSI_LOWLEVEL=y
> -CONFIG_ISCSI_TCP=m
> -CONFIG_ISCSI_BOOT_SYSFS=m
> -# CONFIG_LIBFC is not set
> -# CONFIG_LIBFCOE is not set
> -# CONFIG_SCSI_DEBUG is not set
> -# CONFIG_SCSI_DH is not set
> -# CONFIG_SCSI_OSD_INITIATOR is not set
> -# CONFIG_ATA is not set
> -CONFIG_MD=y
> -CONFIG_BLK_DEV_MD=m
> -CONFIG_MD_LINEAR=m
> -CONFIG_MD_RAID0=m
> -CONFIG_MD_RAID1=m
> -CONFIG_MD_RAID10=m
> -CONFIG_MD_RAID456=m
> -CONFIG_MD_MULTIPATH=m
> -CONFIG_MD_FAULTY=m
> -CONFIG_BLK_DEV_DM=m
> -# CONFIG_DM_DEBUG is not set
> -CONFIG_DM_CRYPT=m
> -CONFIG_DM_SNAPSHOT=m
> -CONFIG_DM_MIRROR=m
> -CONFIG_DM_RAID=m
> -# CONFIG_DM_LOG_USERSPACE is not set
> -CONFIG_DM_ZERO=m
> -CONFIG_DM_MULTIPATH=m
> -# CONFIG_DM_MULTIPATH_QL is not set
> -# CONFIG_DM_MULTIPATH_ST is not set
> -CONFIG_DM_DELAY=m
> -# CONFIG_DM_UEVENT is not set
> -CONFIG_DM_FLAKEY=m
> -CONFIG_TARGET_CORE=m
> -CONFIG_TCM_IBLOCK=m
> -CONFIG_TCM_FILEIO=m
> -CONFIG_TCM_PSCSI=m
> -CONFIG_LOOPBACK_TARGET=m
> -# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set
> -CONFIG_NETDEVICES=y
> -CONFIG_DUMMY=m
> -CONFIG_BONDING=m
> -CONFIG_MACVLAN=m
> -CONFIG_MACVTAP=m
> -CONFIG_EQUALIZER=m
> -CONFIG_TUN=m
> -CONFIG_VETH=m
> -CONFIG_MII=y
> -CONFIG_PHYLIB=y
> -
> -#
> -# MII PHY device drivers
> -#
> -# CONFIG_MARVELL_PHY is not set
> -# CONFIG_DAVICOM_PHY is not set
> -# CONFIG_QSEMI_PHY is not set
> -# CONFIG_LXT_PHY is not set
> -# CONFIG_CICADA_PHY is not set
> -# CONFIG_VITESSE_PHY is not set
> -# CONFIG_SMSC_PHY is not set
> -# CONFIG_BROADCOM_PHY is not set
> -# CONFIG_ICPLUS_PHY is not set
> -# CONFIG_REALTEK_PHY is not set
> -# CONFIG_NATIONAL_PHY is not set
> -# CONFIG_STE10XP is not set
> -# CONFIG_LSI_ET1011C_PHY is not set
> -CONFIG_MICREL_PHY=m
> -# CONFIG_FIXED_PHY is not set
> -# CONFIG_MDIO_BITBANG is not set
> -CONFIG_NET_ETHERNET=y
> -# CONFIG_AX88796 is not set
> -CONFIG_SMC91X=y
> -# CONFIG_TI_DAVINCI_EMAC is not set
> -CONFIG_TI_DAVINCI_MDIO=m
> -CONFIG_TI_DAVINCI_CPDMA=m
> -# CONFIG_DM9000 is not set
> -CONFIG_ENC28J60=y
> -# CONFIG_ENC28J60_WRITEVERIFY is not set
> -# CONFIG_ETHOC is not set
> -CONFIG_SMC911X=y
> -CONFIG_SMSC911X=y
> -# CONFIG_SMSC911X_ARCH_HOOKS is not set
> -# CONFIG_DNET is not set
> -# CONFIG_IBM_NEW_EMAC_ZMII is not set
> -# CONFIG_IBM_NEW_EMAC_RGMII is not set
> -# CONFIG_IBM_NEW_EMAC_TAH is not set
> -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
> -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
> -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
> -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
> -# CONFIG_B44 is not set
> -CONFIG_KS8851=y
> -# CONFIG_KS8851_MLL is not set
> -# CONFIG_FTMAC100 is not set
> -# CONFIG_NETDEV_1000 is not set
> -# CONFIG_NETDEV_10000 is not set
> -CONFIG_WLAN=y
> -# CONFIG_LIBERTAS_THINFIRM is not set
> -CONFIG_AT76C50X_USB=m
> -CONFIG_USB_ZD1201=m
> -CONFIG_USB_NET_RNDIS_WLAN=m
> -CONFIG_RTL8187=m
> -CONFIG_RTL8187_LEDS=y
> -# CONFIG_MAC80211_HWSIM is not set
> -CONFIG_ATH_COMMON=m
> -# CONFIG_ATH_DEBUG is not set
> -# CONFIG_ATH9K is not set
> -# CONFIG_ATH9K_HTC is not set
> -CONFIG_CARL9170=m
> -CONFIG_CARL9170_LEDS=y
> -CONFIG_CARL9170_WPC=y
> -CONFIG_B43=m
> -CONFIG_B43_SDIO=y
> -CONFIG_B43_PIO=y
> -CONFIG_B43_PHY_N=y
> -CONFIG_B43_PHY_LP=y
> -CONFIG_B43_LEDS=y
> -CONFIG_B43_HWRNG=y
> -# CONFIG_B43_DEBUG is not set
> -# CONFIG_B43LEGACY is not set
> -CONFIG_HOSTAP=m
> -CONFIG_HOSTAP_FIRMWARE=y
> -CONFIG_HOSTAP_FIRMWARE_NVRAM=y
> -# CONFIG_IWM is not set
> -CONFIG_LIBERTAS=m
> -CONFIG_LIBERTAS_USB=m
> -CONFIG_LIBERTAS_SDIO=m
> -# CONFIG_LIBERTAS_SPI is not set
> -# CONFIG_LIBERTAS_DEBUG is not set
> -# CONFIG_LIBERTAS_MESH is not set
> -CONFIG_P54_COMMON=m
> -CONFIG_P54_USB=m
> -# CONFIG_P54_SPI is not set
> -CONFIG_P54_LEDS=y
> -CONFIG_RT2X00=m
> -CONFIG_RT2500USB=m
> -CONFIG_RT73USB=m
> -CONFIG_RT2800USB=m
> -CONFIG_RT2800USB_RT33XX=y
> -CONFIG_RT2800USB_RT35XX=y
> -CONFIG_RT2800USB_RT53XX=y
> -CONFIG_RT2800USB_UNKNOWN=y
> -CONFIG_RT2800_LIB=m
> -CONFIG_RT2X00_LIB_USB=m
> -CONFIG_RT2X00_LIB=m
> -CONFIG_RT2X00_LIB_FIRMWARE=y
> -CONFIG_RT2X00_LIB_CRYPTO=y
> -CONFIG_RT2X00_LIB_LEDS=y
> -# CONFIG_RT2X00_DEBUG is not set
> -CONFIG_RTL8192SE=m
> -CONFIG_RTL8192CU=m
> -CONFIG_RTLWIFI=m
> -CONFIG_RTL8192C_COMMON=m
> -CONFIG_WL1251=m
> -CONFIG_WL1251_SPI=m
> -CONFIG_WL1251_SDIO=m
> -CONFIG_WL12XX_MENU=m
> -CONFIG_WL12XX=m
> -CONFIG_WL12XX_HT=y
> -CONFIG_WL12XX_SPI=m
> -CONFIG_WL12XX_SDIO=m
> -# CONFIG_WL12XX_SDIO_TEST is not set
> -CONFIG_WL12XX_PLATFORM_DATA=y
> -CONFIG_ZD1211RW=m
> -# CONFIG_ZD1211RW_DEBUG is not set
> -# CONFIG_MWIFIEX is not set
> -
> -#
> -# WiMAX Wireless Broadband devices
> -#
> -CONFIG_WIMAX_I2400M=m
> -CONFIG_WIMAX_I2400M_USB=m
> -CONFIG_WIMAX_I2400M_SDIO=m
> -CONFIG_WIMAX_IWMC3200_SDIO=y
> -CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
> -
> -#
> -# USB Network Adapters
> -#
> -CONFIG_USB_CATC=y
> -CONFIG_USB_KAWETH=y
> -CONFIG_USB_PEGASUS=y
> -CONFIG_USB_RTL8150=y
> -CONFIG_USB_USBNET=y
> -CONFIG_USB_NET_AX8817X=y
> -CONFIG_USB_NET_CDCETHER=y
> -# CONFIG_USB_NET_CDC_EEM is not set
> -CONFIG_USB_NET_CDC_NCM=m
> -CONFIG_USB_NET_DM9601=y
> -CONFIG_USB_NET_SMSC75XX=m
> -CONFIG_USB_NET_SMSC95XX=y
> -CONFIG_USB_NET_GL620A=y
> -CONFIG_USB_NET_NET1080=y
> -CONFIG_USB_NET_PLUSB=y
> -CONFIG_USB_NET_MCS7830=y
> -CONFIG_USB_NET_RNDIS_HOST=y
> -CONFIG_USB_NET_CDC_SUBSET=y
> -CONFIG_USB_ALI_M5632=y
> -CONFIG_USB_AN2720=y
> -CONFIG_USB_BELKIN=y
> -CONFIG_USB_ARMLINUX=y
> -CONFIG_USB_EPSON2888=y
> -CONFIG_USB_KC2190=y
> -CONFIG_USB_NET_ZAURUS=y
> -CONFIG_USB_NET_CX82310_ETH=m
> -# CONFIG_USB_NET_KALMIA is not set
> -CONFIG_USB_HSO=m
> -CONFIG_USB_NET_INT51X1=m
> -CONFIG_USB_IPHETH=m
> -CONFIG_USB_SIERRA_NET=m
> -CONFIG_USB_VL600=m
> -# CONFIG_WAN is not set
> -CONFIG_ATM_DRIVERS=y
> -# CONFIG_ATM_DUMMY is not set
> -# CONFIG_ATM_TCP is not set
> -
> -#
> -# CAIF transport drivers
> -#
> -CONFIG_PPP=m
> -CONFIG_PPP_MULTILINK=y
> -CONFIG_PPP_FILTER=y
> -CONFIG_PPP_ASYNC=m
> -CONFIG_PPP_SYNC_TTY=m
> -CONFIG_PPP_DEFLATE=m
> -CONFIG_PPP_BSDCOMP=m
> -CONFIG_PPP_MPPE=m
> -CONFIG_PPPOE=m
> -CONFIG_PPTP=m
> -# CONFIG_PPPOATM is not set
> -CONFIG_PPPOL2TP=m
> -# CONFIG_SLIP is not set
> -CONFIG_SLHC=m
> -CONFIG_NETCONSOLE=m
> -CONFIG_NETCONSOLE_DYNAMIC=y
> -CONFIG_NETPOLL=y
> -CONFIG_NETPOLL_TRAP=y
> -CONFIG_NET_POLL_CONTROLLER=y
> -# CONFIG_ISDN is not set
> -# CONFIG_PHONE is not set
> -
> -#
> -# Input device support
> -#
> -CONFIG_INPUT=y
> -CONFIG_INPUT_FF_MEMLESS=y
> -CONFIG_INPUT_POLLDEV=y
> -# CONFIG_INPUT_SPARSEKMAP is not set
> -
> -#
> -# Userland interfaces
> -#
> -CONFIG_INPUT_MOUSEDEV=y
> -CONFIG_INPUT_MOUSEDEV_PSAUX=y
> -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
> -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
> -# CONFIG_INPUT_JOYDEV is not set
> -CONFIG_INPUT_EVDEV=y
> -# CONFIG_INPUT_EVBUG is not set
> -
> -#
> -# Input Device Drivers
> -#
> -CONFIG_INPUT_KEYBOARD=y
> -# CONFIG_KEYBOARD_ADP5588 is not set
> -# CONFIG_KEYBOARD_ADP5589 is not set
> -# CONFIG_KEYBOARD_ATKBD is not set
> -CONFIG_KEYBOARD_QT1070=m
> -CONFIG_KEYBOARD_QT2160=m
> -# CONFIG_KEYBOARD_LKKBD is not set
> -CONFIG_KEYBOARD_GPIO=y
> -# CONFIG_KEYBOARD_TCA6416 is not set
> -# CONFIG_KEYBOARD_MATRIX is not set
> -# CONFIG_KEYBOARD_LM8323 is not set
> -# CONFIG_KEYBOARD_MAX7359 is not set
> -CONFIG_KEYBOARD_MCS=m
> -# CONFIG_KEYBOARD_MPR121 is not set
> -# CONFIG_KEYBOARD_NEWTON is not set
> -# CONFIG_KEYBOARD_OPENCORES is not set
> -# CONFIG_KEYBOARD_STOWAWAY is not set
> -# CONFIG_KEYBOARD_SUNKBD is not set
> -# CONFIG_KEYBOARD_TWL4030 is not set
> -# CONFIG_KEYBOARD_XTKBD is not set
> -CONFIG_INPUT_MOUSE=y
> -CONFIG_MOUSE_PS2=y
> -CONFIG_MOUSE_PS2_ALPS=y
> -CONFIG_MOUSE_PS2_LOGIPS2PP=y
> -CONFIG_MOUSE_PS2_SYNAPTICS=y
> -CONFIG_MOUSE_PS2_TRACKPOINT=y
> -# CONFIG_MOUSE_PS2_ELANTECH is not set
> -# CONFIG_MOUSE_PS2_SENTELIC is not set
> -# CONFIG_MOUSE_PS2_TOUCHKIT is not set
> -# CONFIG_MOUSE_SERIAL is not set
> -# CONFIG_MOUSE_APPLETOUCH is not set
> -# CONFIG_MOUSE_BCM5974 is not set
> -# CONFIG_MOUSE_VSXXXAA is not set
> -# CONFIG_MOUSE_GPIO is not set
> -# CONFIG_MOUSE_SYNAPTICS_I2C is not set
> -# CONFIG_INPUT_JOYSTICK is not set
> -# CONFIG_INPUT_TABLET is not set
> -CONFIG_INPUT_TOUCHSCREEN=y
> -# CONFIG_TOUCHSCREEN_ADS7846 is not set
> -# CONFIG_TOUCHSCREEN_AD7877 is not set
> -# CONFIG_TOUCHSCREEN_AD7879 is not set
> -# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
> -# CONFIG_TOUCHSCREEN_BU21013 is not set
> -# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
> -# CONFIG_TOUCHSCREEN_DYNAPRO is not set
> -# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
> -# CONFIG_TOUCHSCREEN_EETI is not set
> -# CONFIG_TOUCHSCREEN_FUJITSU is not set
> -# CONFIG_TOUCHSCREEN_GUNZE is not set
> -# CONFIG_TOUCHSCREEN_ELO is not set
> -# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
> -# CONFIG_TOUCHSCREEN_MAX11801 is not set
> -# CONFIG_TOUCHSCREEN_MCS5000 is not set
> -# CONFIG_TOUCHSCREEN_MTOUCH is not set
> -# CONFIG_TOUCHSCREEN_INEXIO is not set
> -# CONFIG_TOUCHSCREEN_MK712 is not set
> -# CONFIG_TOUCHSCREEN_PENMOUNT is not set
> -# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
> -# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
> -# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
> -# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
> -# CONFIG_TOUCHSCREEN_TSC2005 is not set
> -CONFIG_TOUCHSCREEN_TSC2007=y
> -# CONFIG_TOUCHSCREEN_W90X900 is not set
> -# CONFIG_TOUCHSCREEN_ST1232 is not set
> -# CONFIG_TOUCHSCREEN_TPS6507X is not set
> -CONFIG_INPUT_MISC=y
> -CONFIG_INPUT_AD714X=m
> -CONFIG_INPUT_AD714X_I2C=m
> -CONFIG_INPUT_AD714X_SPI=m
> -# CONFIG_INPUT_ATI_REMOTE is not set
> -# CONFIG_INPUT_ATI_REMOTE2 is not set
> -# CONFIG_INPUT_KEYSPAN_REMOTE is not set
> -# CONFIG_INPUT_POWERMATE is not set
> -# CONFIG_INPUT_YEALINK is not set
> -# CONFIG_INPUT_CM109 is not set
> -CONFIG_INPUT_TWL4030_PWRBUTTON=y
> -CONFIG_INPUT_TWL4030_VIBRA=m
> -CONFIG_INPUT_UINPUT=y
> -CONFIG_INPUT_PCF8574=m
> -CONFIG_INPUT_PWM_BEEPER=m
> -# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
> -CONFIG_INPUT_ADXL34X=m
> -CONFIG_INPUT_ADXL34X_I2C=m
> -CONFIG_INPUT_ADXL34X_SPI=m
> -CONFIG_INPUT_CMA3000=m
> -CONFIG_INPUT_CMA3000_I2C=m
> -
> -#
> -# Hardware I/O ports
> -#
> -CONFIG_SERIO=y
> -CONFIG_SERIO_SERPORT=y
> -CONFIG_SERIO_LIBPS2=y
> -# CONFIG_SERIO_RAW is not set
> -# CONFIG_SERIO_ALTERA_PS2 is not set
> -# CONFIG_SERIO_PS2MULT is not set
> -# CONFIG_GAMEPORT is not set
> -
> -#
> -# Character devices
> -#
> -CONFIG_VT=y
> -CONFIG_CONSOLE_TRANSLATIONS=y
> -CONFIG_VT_CONSOLE=y
> -CONFIG_HW_CONSOLE=y
> -CONFIG_VT_HW_CONSOLE_BINDING=y
> -CONFIG_UNIX98_PTYS=y
> -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
> -# CONFIG_LEGACY_PTYS is not set
> -# CONFIG_SERIAL_NONSTANDARD is not set
> -CONFIG_N_GSM=m
> -# CONFIG_TRACE_SINK is not set
> -CONFIG_DEVKMEM=y
> -
> -#
> -# Serial drivers
> -#
> -CONFIG_SERIAL_8250=y
> -CONFIG_SERIAL_8250_CONSOLE=y
> -CONFIG_SERIAL_8250_NR_UARTS=32
> -CONFIG_SERIAL_8250_RUNTIME_UARTS=4
> -CONFIG_SERIAL_8250_EXTENDED=y
> -CONFIG_SERIAL_8250_MANY_PORTS=y
> -CONFIG_SERIAL_8250_SHARE_IRQ=y
> -CONFIG_SERIAL_8250_DETECT_IRQ=y
> -CONFIG_SERIAL_8250_RSA=y
> -
> -#
> -# Non-8250 serial port support
> -#
> -# CONFIG_SERIAL_MAX3100 is not set
> -# CONFIG_SERIAL_MAX3107 is not set
> -CONFIG_SERIAL_CORE=y
> -CONFIG_SERIAL_CORE_CONSOLE=y
> -CONFIG_SERIAL_OMAP=y
> -CONFIG_SERIAL_OMAP_CONSOLE=y
> -# CONFIG_SERIAL_TIMBERDALE is not set
> -# CONFIG_SERIAL_ALTERA_JTAGUART is not set
> -# CONFIG_SERIAL_ALTERA_UART is not set
> -CONFIG_SERIAL_IFX6X60=m
> -# CONFIG_SERIAL_XILINX_PS_UART is not set
> -CONFIG_TTY_PRINTK=y
> -# CONFIG_HVC_DCC is not set
> -# CONFIG_IPMI_HANDLER is not set
> -CONFIG_HW_RANDOM=y
> -# CONFIG_HW_RANDOM_TIMERIOMEM is not set
> -# CONFIG_R3964 is not set
> -# CONFIG_RAW_DRIVER is not set
> -# CONFIG_TCG_TPM is not set
> -# CONFIG_RAMOOPS is not set
> -CONFIG_I2C=y
> -CONFIG_I2C_BOARDINFO=y
> -CONFIG_I2C_COMPAT=y
> -CONFIG_I2C_CHARDEV=y
> -CONFIG_I2C_MUX=m
> -
> -#
> -# Multiplexer I2C Chip support
> -#
> -CONFIG_I2C_MUX_GPIO=m
> -# CONFIG_I2C_MUX_PCA9541 is not set
> -# CONFIG_I2C_MUX_PCA954x is not set
> -CONFIG_I2C_HELPER_AUTO=y
> -CONFIG_I2C_ALGOBIT=m
> -
> -#
> -# I2C Hardware Bus support
> -#
> -
> -#
> -# I2C system bus drivers (mostly embedded / system-on-chip)
> -#
> -# CONFIG_I2C_DESIGNWARE is not set
> -# CONFIG_I2C_GPIO is not set
> -# CONFIG_I2C_OCORES is not set
> -CONFIG_I2C_OMAP=y
> -# CONFIG_I2C_PCA_PLATFORM is not set
> -# CONFIG_I2C_PXA_PCI is not set
> -# CONFIG_I2C_SIMTEC is not set
> -# CONFIG_I2C_XILINX is not set
> -
> -#
> -# External I2C/SMBus adapter drivers
> -#
> -CONFIG_I2C_DIOLAN_U2C=m
> -# CONFIG_I2C_PARPORT_LIGHT is not set
> -# CONFIG_I2C_TAOS_EVM is not set
> -# CONFIG_I2C_TINY_USB is not set
> -
> -#
> -# Other I2C/SMBus bus drivers
> -#
> -# CONFIG_I2C_STUB is not set
> -# CONFIG_I2C_DEBUG_CORE is not set
> -# CONFIG_I2C_DEBUG_ALGO is not set
> -# CONFIG_I2C_DEBUG_BUS is not set
> -CONFIG_SPI=y
> -# CONFIG_SPI_DEBUG is not set
> -CONFIG_SPI_MASTER=y
> -
> -#
> -# SPI Master Controller Drivers
> -#
> -# CONFIG_SPI_ALTERA is not set
> -# CONFIG_SPI_BITBANG is not set
> -# CONFIG_SPI_GPIO is not set
> -# CONFIG_SPI_OC_TINY is not set
> -CONFIG_SPI_OMAP24XX=y
> -# CONFIG_SPI_PXA2XX_PCI is not set
> -# CONFIG_SPI_XILINX is not set
> -# CONFIG_SPI_DESIGNWARE is not set
> -
> -#
> -# SPI Protocol Masters
> -#
> -CONFIG_SPI_SPIDEV=y
> -# CONFIG_SPI_TLE62X0 is not set
> -
> -#
> -# PPS support
> -#
> -# CONFIG_PPS is not set
> -
> -#
> -# PPS generators support
> -#
> -
> -#
> -# PTP clock support
> -#
> -
> -#
> -# Enable Device Drivers -> PPS to see the PTP clock options.
> -#
> -CONFIG_ARCH_REQUIRE_GPIOLIB=y
> -CONFIG_GPIOLIB=y
> -# CONFIG_DEBUG_GPIO is not set
> -CONFIG_GPIO_SYSFS=y
> -CONFIG_GPIO_MAX730X=m
> -
> -#
> -# Memory mapped GPIO drivers:
> -#
> -# CONFIG_GPIO_BASIC_MMIO is not set
> -# CONFIG_GPIO_IT8761E is not set
> -
> -#
> -# I2C GPIO expanders:
> -#
> -CONFIG_GPIO_MAX7300=m
> -# CONFIG_GPIO_MAX732X is not set
> -# CONFIG_GPIO_PCF857X is not set
> -# CONFIG_GPIO_SX150X is not set
> -CONFIG_GPIO_TWL4030=y
> -CONFIG_GPIO_ADP5588=m
> -
> -#
> -# PCI GPIO expanders:
> -#
> -
> -#
> -# SPI GPIO expanders:
> -#
> -# CONFIG_GPIO_MAX7301 is not set
> -# CONFIG_GPIO_MCP23S08 is not set
> -# CONFIG_GPIO_MC33880 is not set
> -# CONFIG_GPIO_74X164 is not set
> -
> -#
> -# AC97 GPIO expanders:
> -#
> -
> -#
> -# MODULbus GPIO expanders:
> -#
> -# CONFIG_W1 is not set
> -CONFIG_POWER_SUPPLY=m
> -# CONFIG_POWER_SUPPLY_DEBUG is not set
> -# CONFIG_PDA_POWER is not set
> -CONFIG_TEST_POWER=m
> -# CONFIG_BATTERY_DS2780 is not set
> -# CONFIG_BATTERY_DS2782 is not set
> -# CONFIG_BATTERY_BQ20Z75 is not set
> -# CONFIG_BATTERY_BQ27x00 is not set
> -# CONFIG_BATTERY_MAX17040 is not set
> -CONFIG_BATTERY_MAX17042=m
> -CONFIG_CHARGER_ISP1704=m
> -# CONFIG_CHARGER_MAX8903 is not set
> -CONFIG_CHARGER_TWL4030=m
> -CONFIG_CHARGER_GPIO=m
> -CONFIG_HWMON=y
> -# CONFIG_HWMON_VID is not set
> -# CONFIG_HWMON_DEBUG_CHIP is not set
> -
> -#
> -# Native drivers
> -#
> -# CONFIG_SENSORS_AD7414 is not set
> -# CONFIG_SENSORS_AD7418 is not set
> -# CONFIG_SENSORS_ADCXX is not set
> -# CONFIG_SENSORS_ADM1021 is not set
> -# CONFIG_SENSORS_ADM1025 is not set
> -# CONFIG_SENSORS_ADM1026 is not set
> -# CONFIG_SENSORS_ADM1029 is not set
> -# CONFIG_SENSORS_ADM1031 is not set
> -# CONFIG_SENSORS_ADM9240 is not set
> -CONFIG_SENSORS_ADT7411=m
> -# CONFIG_SENSORS_ADT7462 is not set
> -# CONFIG_SENSORS_ADT7470 is not set
> -# CONFIG_SENSORS_ADT7475 is not set
> -CONFIG_SENSORS_ASC7621=m
> -# CONFIG_SENSORS_ATXP1 is not set
> -CONFIG_SENSORS_DS620=m
> -# CONFIG_SENSORS_DS1621 is not set
> -# CONFIG_SENSORS_F71805F is not set
> -# CONFIG_SENSORS_F71882FG is not set
> -# CONFIG_SENSORS_F75375S is not set
> -# CONFIG_SENSORS_G760A is not set
> -# CONFIG_SENSORS_GL518SM is not set
> -# CONFIG_SENSORS_GL520SM is not set
> -CONFIG_SENSORS_GPIO_FAN=m
> -# CONFIG_SENSORS_IT87 is not set
> -CONFIG_SENSORS_JC42=m
> -# CONFIG_SENSORS_LINEAGE is not set
> -# CONFIG_SENSORS_LM63 is not set
> -# CONFIG_SENSORS_LM70 is not set
> -# CONFIG_SENSORS_LM73 is not set
> -# CONFIG_SENSORS_LM75 is not set
> -# CONFIG_SENSORS_LM77 is not set
> -# CONFIG_SENSORS_LM78 is not set
> -# CONFIG_SENSORS_LM80 is not set
> -# CONFIG_SENSORS_LM83 is not set
> -# CONFIG_SENSORS_LM85 is not set
> -# CONFIG_SENSORS_LM87 is not set
> -# CONFIG_SENSORS_LM90 is not set
> -# CONFIG_SENSORS_LM92 is not set
> -# CONFIG_SENSORS_LM93 is not set
> -# CONFIG_SENSORS_LTC4151 is not set
> -# CONFIG_SENSORS_LTC4215 is not set
> -# CONFIG_SENSORS_LTC4245 is not set
> -# CONFIG_SENSORS_LTC4261 is not set
> -# CONFIG_SENSORS_LM95241 is not set
> -# CONFIG_SENSORS_MAX1111 is not set
> -# CONFIG_SENSORS_MAX16065 is not set
> -# CONFIG_SENSORS_MAX1619 is not set
> -# CONFIG_SENSORS_MAX6639 is not set
> -# CONFIG_SENSORS_MAX6642 is not set
> -# CONFIG_SENSORS_MAX6650 is not set
> -# CONFIG_SENSORS_PC87360 is not set
> -# CONFIG_SENSORS_PC87427 is not set
> -# CONFIG_SENSORS_PCF8591 is not set
> -# CONFIG_PMBUS is not set
> -# CONFIG_SENSORS_SHT15 is not set
> -# CONFIG_SENSORS_SHT21 is not set
> -CONFIG_SENSORS_SMM665=m
> -# CONFIG_SENSORS_DME1737 is not set
> -CONFIG_SENSORS_EMC1403=m
> -CONFIG_SENSORS_EMC2103=m
> -# CONFIG_SENSORS_EMC6W201 is not set
> -# CONFIG_SENSORS_SMSC47M1 is not set
> -# CONFIG_SENSORS_SMSC47M192 is not set
> -# CONFIG_SENSORS_SMSC47B397 is not set
> -# CONFIG_SENSORS_SCH5627 is not set
> -# CONFIG_SENSORS_ADS1015 is not set
> -# CONFIG_SENSORS_ADS7828 is not set
> -CONFIG_SENSORS_ADS7871=m
> -CONFIG_SENSORS_AMC6821=m
> -# CONFIG_SENSORS_THMC50 is not set
> -CONFIG_SENSORS_TMP102=m
> -# CONFIG_SENSORS_TMP401 is not set
> -# CONFIG_SENSORS_TMP421 is not set
> -CONFIG_SENSORS_TWL4030_MADC=m
> -# CONFIG_SENSORS_VT1211 is not set
> -# CONFIG_SENSORS_W83781D is not set
> -# CONFIG_SENSORS_W83791D is not set
> -# CONFIG_SENSORS_W83792D is not set
> -# CONFIG_SENSORS_W83793 is not set
> -# CONFIG_SENSORS_W83795 is not set
> -# CONFIG_SENSORS_W83L785TS is not set
> -# CONFIG_SENSORS_W83L786NG is not set
> -# CONFIG_SENSORS_W83627HF is not set
> -# CONFIG_SENSORS_W83627EHF is not set
> -CONFIG_THERMAL=y
> -CONFIG_THERMAL_HWMON=y
> -CONFIG_WATCHDOG=y
> -CONFIG_WATCHDOG_NOWAYOUT=y
> -
> -#
> -# Watchdog Device Drivers
> -#
> -# CONFIG_SOFT_WATCHDOG is not set
> -CONFIG_OMAP_WATCHDOG=y
> -# CONFIG_TWL4030_WATCHDOG is not set
> -# CONFIG_MAX63XX_WATCHDOG is not set
> -
> -#
> -# USB-based Watchdog Cards
> -#
> -# CONFIG_USBPCWATCHDOG is not set
> -CONFIG_SSB_POSSIBLE=y
> -
> -#
> -# Sonics Silicon Backplane
> -#
> -CONFIG_SSB=y
> -CONFIG_SSB_BLOCKIO=y
> -CONFIG_SSB_SDIOHOST_POSSIBLE=y
> -CONFIG_SSB_SDIOHOST=y
> -# CONFIG_SSB_SILENT is not set
> -# CONFIG_SSB_DEBUG is not set
> -CONFIG_BCMA_POSSIBLE=y
> -
> -#
> -# Broadcom specific AMBA
> -#
> -# CONFIG_BCMA is not set
> -CONFIG_MFD_SUPPORT=y
> -CONFIG_MFD_CORE=y
> -# CONFIG_MFD_88PM860X is not set
> -# CONFIG_MFD_SM501 is not set
> -# CONFIG_MFD_ASIC3 is not set
> -# CONFIG_HTC_EGPIO is not set
> -# CONFIG_HTC_PASIC3 is not set
> -# CONFIG_HTC_I2CPLD is not set
> -CONFIG_TPS6105X=m
> -# CONFIG_TPS65010 is not set
> -CONFIG_TPS6507X=m
> -CONFIG_MFD_TPS6586X=y
> -CONFIG_TWL4030_CORE=y
> -CONFIG_TWL4030_MADC=m
> -CONFIG_TWL4030_POWER=y
> -CONFIG_TWL4030_CODEC=y
> -CONFIG_TWL6030_PWM=m
> -# CONFIG_MFD_STMPE is not set
> -# CONFIG_MFD_TC3589X is not set
> -# CONFIG_MFD_TMIO is not set
> -# CONFIG_MFD_T7L66XB is not set
> -# CONFIG_MFD_TC6387XB is not set
> -# CONFIG_MFD_TC6393XB is not set
> -# CONFIG_PMIC_DA903X is not set
> -# CONFIG_PMIC_ADP5520 is not set
> -# CONFIG_MFD_MAX8925 is not set
> -# CONFIG_MFD_MAX8997 is not set
> -# CONFIG_MFD_MAX8998 is not set
> -# CONFIG_MFD_WM8400 is not set
> -# CONFIG_MFD_WM831X_I2C is not set
> -# CONFIG_MFD_WM831X_SPI is not set
> -# CONFIG_MFD_WM8350_I2C is not set
> -# CONFIG_MFD_WM8994 is not set
> -# CONFIG_MFD_PCF50633 is not set
> -# CONFIG_MFD_MC13XXX is not set
> -# CONFIG_ABX500_CORE is not set
> -# CONFIG_EZX_PCAP is not set
> -CONFIG_MFD_WL1273_CORE=m
> -CONFIG_MFD_OMAP_USB_HOST=y
> -# CONFIG_MFD_TPS65910 is not set
> -CONFIG_REGULATOR=y
> -# CONFIG_REGULATOR_DEBUG is not set
> -CONFIG_REGULATOR_DUMMY=y
> -CONFIG_REGULATOR_FIXED_VOLTAGE=y
> -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
> -# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
> -# CONFIG_REGULATOR_BQ24022 is not set
> -# CONFIG_REGULATOR_MAX1586 is not set
> -# CONFIG_REGULATOR_MAX8649 is not set
> -# CONFIG_REGULATOR_MAX8660 is not set
> -# CONFIG_REGULATOR_MAX8952 is not set
> -CONFIG_REGULATOR_TWL4030=y
> -# CONFIG_REGULATOR_LP3971 is not set
> -# CONFIG_REGULATOR_LP3972 is not set
> -CONFIG_REGULATOR_TPS6105X=m
> -# CONFIG_REGULATOR_TPS65023 is not set
> -# CONFIG_REGULATOR_TPS6507X is not set
> -# CONFIG_REGULATOR_ISL6271A is not set
> -# CONFIG_REGULATOR_AD5398 is not set
> -CONFIG_REGULATOR_TPS6586X=m
> -CONFIG_REGULATOR_TPS6524X=m
> -CONFIG_MEDIA_SUPPORT=y
> -
> -#
> -# Multimedia core support
> -#
> -CONFIG_MEDIA_CONTROLLER=y
> -CONFIG_VIDEO_DEV=y
> -CONFIG_VIDEO_V4L2_COMMON=y
> -CONFIG_VIDEO_V4L2_SUBDEV_API=y
> -CONFIG_DVB_CORE=m
> -CONFIG_VIDEO_MEDIA=m
> -
> -#
> -# Multimedia drivers
> -#
> -CONFIG_RC_CORE=m
> -CONFIG_LIRC=m
> -CONFIG_RC_MAP=m
> -CONFIG_IR_NEC_DECODER=m
> -CONFIG_IR_RC5_DECODER=m
> -CONFIG_IR_RC6_DECODER=m
> -CONFIG_IR_JVC_DECODER=m
> -CONFIG_IR_SONY_DECODER=m
> -CONFIG_IR_RC5_SZ_DECODER=m
> -CONFIG_IR_LIRC_CODEC=m
> -# CONFIG_IR_IMON is not set
> -# CONFIG_IR_MCEUSB is not set
> -# CONFIG_IR_REDRAT3 is not set
> -# CONFIG_IR_STREAMZAP is not set
> -CONFIG_RC_LOOPBACK=m
> -CONFIG_MEDIA_ATTACH=y
> -CONFIG_MEDIA_TUNER=m
> -CONFIG_MEDIA_TUNER_CUSTOMISE=y
> -
> -#
> -# Customize TV tuners
> -#
> -CONFIG_MEDIA_TUNER_SIMPLE=m
> -CONFIG_MEDIA_TUNER_TDA8290=m
> -CONFIG_MEDIA_TUNER_TDA827X=m
> -CONFIG_MEDIA_TUNER_TDA18271=m
> -CONFIG_MEDIA_TUNER_TDA9887=m
> -CONFIG_MEDIA_TUNER_TEA5761=m
> -CONFIG_MEDIA_TUNER_TEA5767=m
> -CONFIG_MEDIA_TUNER_MT20XX=m
> -CONFIG_MEDIA_TUNER_MT2060=m
> -CONFIG_MEDIA_TUNER_MT2266=m
> -CONFIG_MEDIA_TUNER_MT2131=m
> -CONFIG_MEDIA_TUNER_QT1010=m
> -CONFIG_MEDIA_TUNER_XC2028=m
> -CONFIG_MEDIA_TUNER_XC5000=m
> -CONFIG_MEDIA_TUNER_MXL5005S=m
> -CONFIG_MEDIA_TUNER_MXL5007T=m
> -CONFIG_MEDIA_TUNER_MC44S803=m
> -CONFIG_MEDIA_TUNER_MAX2165=m
> -CONFIG_MEDIA_TUNER_TDA18218=m
> -CONFIG_MEDIA_TUNER_TDA18212=m
> -CONFIG_VIDEO_V4L2=y
> -CONFIG_VIDEOBUF_GEN=y
> -CONFIG_VIDEOBUF_VMALLOC=m
> -CONFIG_VIDEOBUF_DMA_CONTIG=y
> -CONFIG_VIDEOBUF_DVB=m
> -CONFIG_VIDEO_TVEEPROM=m
> -CONFIG_VIDEO_TUNER=m
> -CONFIG_V4L2_MEM2MEM_DEV=m
> -CONFIG_VIDEOBUF2_CORE=m
> -CONFIG_VIDEOBUF2_MEMOPS=m
> -CONFIG_VIDEOBUF2_VMALLOC=m
> -CONFIG_VIDEO_CAPTURE_DRIVERS=y
> -# CONFIG_VIDEO_ADV_DEBUG is not set
> -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
> -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
> -CONFIG_VIDEO_IR_I2C=m
> -
> -#
> -# Encoders, decoders, sensors and other helper chips
> -#
> -
> -#
> -# Audio decoders, processors and mixers
> -#
> -# CONFIG_VIDEO_TVAUDIO is not set
> -# CONFIG_VIDEO_TDA7432 is not set
> -# CONFIG_VIDEO_TDA9840 is not set
> -# CONFIG_VIDEO_TEA6415C is not set
> -# CONFIG_VIDEO_TEA6420 is not set
> -CONFIG_VIDEO_MSP3400=m
> -# CONFIG_VIDEO_CS5345 is not set
> -CONFIG_VIDEO_CS53L32A=m
> -# CONFIG_VIDEO_TLV320AIC23B is not set
> -CONFIG_VIDEO_WM8775=m
> -# CONFIG_VIDEO_WM8739 is not set
> -# CONFIG_VIDEO_VP27SMPX is not set
> -
> -#
> -# RDS decoders
> -#
> -# CONFIG_VIDEO_SAA6588 is not set
> -
> -#
> -# Video decoders
> -#
> -CONFIG_VIDEO_ADV7180=m
> -# CONFIG_VIDEO_BT819 is not set
> -# CONFIG_VIDEO_BT856 is not set
> -# CONFIG_VIDEO_BT866 is not set
> -# CONFIG_VIDEO_KS0127 is not set
> -# CONFIG_VIDEO_SAA7110 is not set
> -CONFIG_VIDEO_SAA711X=m
> -# CONFIG_VIDEO_SAA7191 is not set
> -CONFIG_VIDEO_TVP514X=m
> -CONFIG_VIDEO_TVP5150=m
> -CONFIG_VIDEO_TVP7002=m
> -# CONFIG_VIDEO_VPX3220 is not set
> -
> -#
> -# Video and audio decoders
> -#
> -# CONFIG_VIDEO_SAA717X is not set
> -CONFIG_VIDEO_CX25840=m
> -
> -#
> -# MPEG video encoders
> -#
> -CONFIG_VIDEO_CX2341X=m
> -
> -#
> -# Video encoders
> -#
> -# CONFIG_VIDEO_SAA7127 is not set
> -# CONFIG_VIDEO_SAA7185 is not set
> -# CONFIG_VIDEO_ADV7170 is not set
> -# CONFIG_VIDEO_ADV7175 is not set
> -# CONFIG_VIDEO_ADV7343 is not set
> -# CONFIG_VIDEO_AK881X is not set
> -
> -#
> -# Camera sensor devices
> -#
> -CONFIG_VIDEO_OV7670=m
> -CONFIG_VIDEO_MT9V011=m
> -CONFIG_VIDEO_MT9V032=y
> -# CONFIG_VIDEO_TCM825X is not set
> -
> -#
> -# Video improvement chips
> -#
> -# CONFIG_VIDEO_UPD64031A is not set
> -# CONFIG_VIDEO_UPD64083 is not set
> -
> -#
> -# Miscelaneous helper chips
> -#
> -# CONFIG_VIDEO_THS7303 is not set
> -# CONFIG_VIDEO_M52790 is not set
> -CONFIG_VIDEO_VIVI=m
> -CONFIG_VIDEO_VPSS_SYSTEM=m
> -CONFIG_VIDEO_VPFE_CAPTURE=y
> -CONFIG_VIDEO_DM6446_CCDC=m
> -CONFIG_VIDEO_OMAP2_VOUT=y
> -# CONFIG_VIDEO_CPIA2 is not set
> -# CONFIG_VIDEO_AU0828 is not set
> -CONFIG_VIDEO_SR030PC30=m
> -CONFIG_VIDEO_NOON010PC30=m
> -# CONFIG_VIDEO_M5MOLS is not set
> -CONFIG_VIDEO_OMAP3=y
> -CONFIG_VIDEO_OMAP3_DEBUG=y
> -# CONFIG_SOC_CAMERA is not set
> -CONFIG_V4L_USB_DRIVERS=y
> -CONFIG_USB_VIDEO_CLASS=m
> -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
> -CONFIG_USB_GSPCA=m
> -CONFIG_USB_M5602=m
> -CONFIG_USB_STV06XX=m
> -# CONFIG_USB_GL860 is not set
> -CONFIG_USB_GSPCA_BENQ=m
> -CONFIG_USB_GSPCA_CONEX=m
> -CONFIG_USB_GSPCA_CPIA1=m
> -CONFIG_USB_GSPCA_ETOMS=m
> -CONFIG_USB_GSPCA_FINEPIX=m
> -# CONFIG_USB_GSPCA_JEILINJ is not set
> -# CONFIG_USB_GSPCA_KINECT is not set
> -CONFIG_USB_GSPCA_KONICA=m
> -CONFIG_USB_GSPCA_MARS=m
> -# CONFIG_USB_GSPCA_MR97310A is not set
> -CONFIG_USB_GSPCA_NW80X=m
> -CONFIG_USB_GSPCA_OV519=m
> -CONFIG_USB_GSPCA_OV534=m
> -CONFIG_USB_GSPCA_OV534_9=m
> -CONFIG_USB_GSPCA_PAC207=m
> -# CONFIG_USB_GSPCA_PAC7302 is not set
> -CONFIG_USB_GSPCA_PAC7311=m
> -CONFIG_USB_GSPCA_SN9C2028=m
> -# CONFIG_USB_GSPCA_SN9C20X is not set
> -CONFIG_USB_GSPCA_SONIXB=m
> -CONFIG_USB_GSPCA_SONIXJ=m
> -CONFIG_USB_GSPCA_SPCA500=m
> -CONFIG_USB_GSPCA_SPCA501=m
> -CONFIG_USB_GSPCA_SPCA505=m
> -CONFIG_USB_GSPCA_SPCA506=m
> -CONFIG_USB_GSPCA_SPCA508=m
> -CONFIG_USB_GSPCA_SPCA561=m
> -CONFIG_USB_GSPCA_SPCA1528=m
> -# CONFIG_USB_GSPCA_SQ905 is not set
> -# CONFIG_USB_GSPCA_SQ905C is not set
> -CONFIG_USB_GSPCA_SQ930X=m
> -CONFIG_USB_GSPCA_STK014=m
> -# CONFIG_USB_GSPCA_STV0680 is not set
> -CONFIG_USB_GSPCA_SUNPLUS=m
> -CONFIG_USB_GSPCA_T613=m
> -CONFIG_USB_GSPCA_TV8532=m
> -CONFIG_USB_GSPCA_VC032X=m
> -CONFIG_USB_GSPCA_VICAM=m
> -CONFIG_USB_GSPCA_XIRLINK_CIT=m
> -CONFIG_USB_GSPCA_ZC3XX=m
> -CONFIG_VIDEO_PVRUSB2=m
> -CONFIG_VIDEO_PVRUSB2_SYSFS=y
> -CONFIG_VIDEO_PVRUSB2_DVB=y
> -# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
> -CONFIG_VIDEO_HDPVR=m
> -CONFIG_VIDEO_EM28XX=m
> -CONFIG_VIDEO_EM28XX_ALSA=m
> -CONFIG_VIDEO_EM28XX_DVB=m
> -CONFIG_VIDEO_TLG2300=m
> -CONFIG_VIDEO_CX231XX=m
> -CONFIG_VIDEO_CX231XX_RC=y
> -# CONFIG_VIDEO_CX231XX_ALSA is not set
> -CONFIG_VIDEO_CX231XX_DVB=m
> -CONFIG_VIDEO_USBVISION=m
> -CONFIG_USB_ET61X251=m
> -CONFIG_USB_SN9C102=m
> -CONFIG_USB_PWC=m
> -# CONFIG_USB_PWC_DEBUG is not set
> -CONFIG_USB_PWC_INPUT_EVDEV=y
> -CONFIG_USB_ZR364XX=m
> -CONFIG_USB_STKWEBCAM=m
> -CONFIG_USB_S2255=m
> -CONFIG_V4L_MEM2MEM_DRIVERS=y
> -CONFIG_VIDEO_MEM2MEM_TESTDEV=m
> -CONFIG_RADIO_ADAPTERS=y
> -# CONFIG_I2C_SI4713 is not set
> -# CONFIG_RADIO_SI4713 is not set
> -# CONFIG_USB_DSBR is not set
> -# CONFIG_RADIO_SI470X is not set
> -# CONFIG_USB_MR800 is not set
> -# CONFIG_RADIO_TEA5764 is not set
> -CONFIG_RADIO_SAA7706H=m
> -# CONFIG_RADIO_TEF6862 is not set
> -CONFIG_RADIO_WL1273=m
> -
> -#
> -# Texas Instruments WL128x FM driver (ST based)
> -#
> -CONFIG_RADIO_WL128X=m
> -CONFIG_DVB_MAX_ADAPTERS=8
> -CONFIG_DVB_DYNAMIC_MINORS=y
> -CONFIG_DVB_CAPTURE_DRIVERS=y
> -# CONFIG_TTPCI_EEPROM is not set
> -
> -#
> -# Supported USB Adapters
> -#
> -CONFIG_DVB_USB=m
> -# CONFIG_DVB_USB_DEBUG is not set
> -CONFIG_DVB_USB_A800=m
> -CONFIG_DVB_USB_DIBUSB_MB=m
> -# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
> -CONFIG_DVB_USB_DIBUSB_MC=m
> -CONFIG_DVB_USB_DIB0700=m
> -CONFIG_DVB_USB_UMT_010=m
> -CONFIG_DVB_USB_CXUSB=m
> -CONFIG_DVB_USB_M920X=m
> -CONFIG_DVB_USB_GL861=m
> -CONFIG_DVB_USB_AU6610=m
> -CONFIG_DVB_USB_DIGITV=m
> -CONFIG_DVB_USB_VP7045=m
> -CONFIG_DVB_USB_VP702X=m
> -CONFIG_DVB_USB_GP8PSK=m
> -CONFIG_DVB_USB_NOVA_T_USB2=m
> -CONFIG_DVB_USB_TTUSB2=m
> -CONFIG_DVB_USB_DTT200U=m
> -CONFIG_DVB_USB_OPERA1=m
> -CONFIG_DVB_USB_AF9005=m
> -CONFIG_DVB_USB_AF9005_REMOTE=m
> -CONFIG_DVB_USB_DW2102=m
> -CONFIG_DVB_USB_CINERGY_T2=m
> -CONFIG_DVB_USB_ANYSEE=m
> -CONFIG_DVB_USB_DTV5100=m
> -CONFIG_DVB_USB_AF9015=m
> -# CONFIG_DVB_USB_CE6230 is not set
> -# CONFIG_DVB_USB_FRIIO is not set
> -# CONFIG_DVB_USB_EC168 is not set
> -CONFIG_DVB_USB_AZ6027=m
> -CONFIG_DVB_USB_LME2510=m
> -CONFIG_DVB_USB_TECHNISAT_USB2=m
> -# CONFIG_SMS_SIANO_MDTV is not set
> -
> -#
> -# Supported FlexCopII (B2C2) Adapters
> -#
> -CONFIG_DVB_B2C2_FLEXCOP=m
> -CONFIG_DVB_B2C2_FLEXCOP_USB=m
> -# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
> -
> -#
> -# Supported DVB Frontends
> -#
> -# CONFIG_DVB_FE_CUSTOMISE is not set
> -
> -#
> -# Multistandard (satellite) frontends
> -#
> -CONFIG_DVB_STB0899=m
> -CONFIG_DVB_STB6100=m
> -CONFIG_DVB_STV090x=m
> -CONFIG_DVB_STV6110x=m
> -
> -#
> -# DVB-S (satellite) frontends
> -#
> -CONFIG_DVB_CX24123=m
> -CONFIG_DVB_MT312=m
> -CONFIG_DVB_ZL10039=m
> -CONFIG_DVB_S5H1420=m
> -CONFIG_DVB_STV0288=m
> -CONFIG_DVB_STB6000=m
> -CONFIG_DVB_STV0299=m
> -CONFIG_DVB_STV6110=m
> -CONFIG_DVB_STV0900=m
> -CONFIG_DVB_TDA10086=m
> -CONFIG_DVB_TUNER_ITD1000=m
> -CONFIG_DVB_TUNER_CX24113=m
> -CONFIG_DVB_TDA826X=m
> -CONFIG_DVB_CX24116=m
> -CONFIG_DVB_SI21XX=m
> -CONFIG_DVB_DS3000=m
> -
> -#
> -# DVB-T (terrestrial) frontends
> -#
> -CONFIG_DVB_CX22702=m
> -CONFIG_DVB_DRXD=m
> -CONFIG_DVB_TDA1004X=m
> -CONFIG_DVB_NXT6000=m
> -CONFIG_DVB_MT352=m
> -CONFIG_DVB_ZL10353=m
> -CONFIG_DVB_DIB3000MB=m
> -CONFIG_DVB_DIB3000MC=m
> -CONFIG_DVB_DIB7000M=m
> -CONFIG_DVB_DIB7000P=m
> -CONFIG_DVB_TDA10048=m
> -CONFIG_DVB_AF9013=m
> -CONFIG_DVB_CXD2820R=m
> -
> -#
> -# DVB-C (cable) frontends
> -#
> -CONFIG_DVB_TDA10023=m
> -CONFIG_DVB_STV0297=m
> -
> -#
> -# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
> -#
> -CONFIG_DVB_NXT200X=m
> -CONFIG_DVB_BCM3510=m
> -CONFIG_DVB_LGDT330X=m
> -CONFIG_DVB_LGDT3305=m
> -CONFIG_DVB_S5H1409=m
> -CONFIG_DVB_S5H1411=m
> -
> -#
> -# ISDB-T (terrestrial) frontends
> -#
> -CONFIG_DVB_S921=m
> -CONFIG_DVB_DIB8000=m
> -CONFIG_DVB_MB86A20S=m
> -
> -#
> -# Digital terrestrial only tuners/PLL
> -#
> -CONFIG_DVB_PLL=m
> -CONFIG_DVB_TUNER_DIB0070=m
> -CONFIG_DVB_TUNER_DIB0090=m
> -
> -#
> -# SEC control devices for DVB-S
> -#
> -CONFIG_DVB_LNBP21=m
> -CONFIG_DVB_ISL6421=m
> -CONFIG_DVB_ISL6423=m
> -CONFIG_DVB_LGS8GXX=m
> -CONFIG_DVB_ATBM8830=m
> -CONFIG_DVB_IX2505V=m
> -
> -#
> -# Tools to develop new frontends
> -#
> -# CONFIG_DVB_DUMMY_FE is not set
> -
> -#
> -# Graphics support
> -#
> -CONFIG_DRM=m
> -# CONFIG_VGASTATE is not set
> -# CONFIG_VIDEO_OUTPUT_CONTROL is not set
> -CONFIG_FB=y
> -# CONFIG_FIRMWARE_EDID is not set
> -# CONFIG_FB_DDC is not set
> -# CONFIG_FB_BOOT_VESA_SUPPORT is not set
> -CONFIG_FB_CFB_FILLRECT=y
> -CONFIG_FB_CFB_COPYAREA=y
> -CONFIG_FB_CFB_IMAGEBLIT=y
> -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
> -CONFIG_FB_SYS_FILLRECT=m
> -CONFIG_FB_SYS_COPYAREA=m
> -CONFIG_FB_SYS_IMAGEBLIT=m
> -# CONFIG_FB_FOREIGN_ENDIAN is not set
> -CONFIG_FB_SYS_FOPS=m
> -# CONFIG_FB_WMT_GE_ROPS is not set
> -CONFIG_FB_DEFERRED_IO=y
> -# CONFIG_FB_SVGALIB is not set
> -# CONFIG_FB_MACMODES is not set
> -# CONFIG_FB_BACKLIGHT is not set
> -CONFIG_FB_MODE_HELPERS=y
> -# CONFIG_FB_TILEBLITTING is not set
> -
> -#
> -# Frame buffer hardware drivers
> -#
> -# CONFIG_FB_S1D13XXX is not set
> -# CONFIG_FB_TMIO is not set
> -CONFIG_FB_UDL=m
> -# CONFIG_FB_VIRTUAL is not set
> -# CONFIG_FB_METRONOME is not set
> -# CONFIG_FB_BROADSHEET is not set
> -# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
> -CONFIG_OMAP2_VRAM=y
> -CONFIG_OMAP2_VRFB=y
> -CONFIG_OMAP2_DSS=y
> -CONFIG_OMAP2_VRAM_SIZE=14
> -CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
> -# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
> -CONFIG_OMAP2_DSS_DPI=y
> -# CONFIG_OMAP2_DSS_RFBI is not set
> -CONFIG_OMAP2_DSS_VENC=y
> -# CONFIG_OMAP2_DSS_SDI is not set
> -CONFIG_OMAP2_DSS_DSI=y
> -# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
> -CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
> -CONFIG_OMAP2_DSS_SLEEP_BEFORE_RESET=y
> -CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y
> -CONFIG_FB_OMAP2=y
> -CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
> -CONFIG_FB_OMAP2_NUM_FBS=2
> -
> -#
> -# OMAP2/3 Display Device Drivers
> -#
> -CONFIG_PANEL_GENERIC_DPI=y
> -# CONFIG_PANEL_LGPHILIPS_LB035Q02 is not set
> -CONFIG_PANEL_SHARP_LS037V7DW01=y
> -CONFIG_PANEL_NEC_NL8048HL11_01B=y
> -# CONFIG_PANEL_TAAL is not set
> -CONFIG_PANEL_TPO_TD043MTEA1=m
> -CONFIG_BACKLIGHT_LCD_SUPPORT=y
> -CONFIG_LCD_CLASS_DEVICE=y
> -# CONFIG_LCD_L4F00242T03 is not set
> -# CONFIG_LCD_LMS283GF05 is not set
> -# CONFIG_LCD_LTV350QV is not set
> -# CONFIG_LCD_TDO24M is not set
> -# CONFIG_LCD_VGG2432A4 is not set
> -# CONFIG_LCD_PLATFORM is not set
> -# CONFIG_LCD_S6E63M0 is not set
> -# CONFIG_LCD_LD9040 is not set
> -CONFIG_BACKLIGHT_CLASS_DEVICE=y
> -CONFIG_BACKLIGHT_GENERIC=y
> -# CONFIG_BACKLIGHT_PWM is not set
> -# CONFIG_BACKLIGHT_ADP8860 is not set
> -# CONFIG_BACKLIGHT_ADP8870 is not set
> -
> -#
> -# Display device support
> -#
> -CONFIG_DISPLAY_SUPPORT=y
> -
> -#
> -# Display hardware drivers
> -#
> -
> -#
> -# Console display driver support
> -#
> -CONFIG_DUMMY_CONSOLE=y
> -CONFIG_FRAMEBUFFER_CONSOLE=y
> -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
> -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
> -# CONFIG_FONTS is not set
> -CONFIG_FONT_8x8=y
> -CONFIG_FONT_8x16=y
> -CONFIG_LOGO=y
> -# CONFIG_LOGO_LINUX_MONO is not set
> -# CONFIG_LOGO_LINUX_VGA16 is not set
> -CONFIG_LOGO_LINUX_CLUT224=y
> -CONFIG_SOUND=y
> -CONFIG_SOUND_OSS_CORE=y
> -CONFIG_SOUND_OSS_CORE_PRECLAIM=y
> -CONFIG_SND=y
> -CONFIG_SND_TIMER=y
> -CONFIG_SND_PCM=y
> -CONFIG_SND_HWDEP=y
> -CONFIG_SND_RAWMIDI=y
> -CONFIG_SND_JACK=y
> -CONFIG_SND_SEQUENCER=m
> -# CONFIG_SND_SEQ_DUMMY is not set
> -CONFIG_SND_OSSEMUL=y
> -CONFIG_SND_MIXER_OSS=y
> -CONFIG_SND_PCM_OSS=y
> -CONFIG_SND_PCM_OSS_PLUGINS=y
> -CONFIG_SND_SEQUENCER_OSS=y
> -CONFIG_SND_HRTIMER=m
> -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
> -CONFIG_SND_DYNAMIC_MINORS=y
> -CONFIG_SND_SUPPORT_OLD_API=y
> -CONFIG_SND_VERBOSE_PROCFS=y
> -# CONFIG_SND_VERBOSE_PRINTK is not set
> -# CONFIG_SND_DEBUG is not set
> -CONFIG_SND_RAWMIDI_SEQ=m
> -# CONFIG_SND_OPL3_LIB_SEQ is not set
> -# CONFIG_SND_OPL4_LIB_SEQ is not set
> -# CONFIG_SND_SBAWE_SEQ is not set
> -# CONFIG_SND_EMU10K1_SEQ is not set
> -CONFIG_SND_DRIVERS=y
> -# CONFIG_SND_DUMMY is not set
> -CONFIG_SND_ALOOP=m
> -# CONFIG_SND_VIRMIDI is not set
> -# CONFIG_SND_MTPAV is not set
> -# CONFIG_SND_SERIAL_U16550 is not set
> -# CONFIG_SND_MPU401 is not set
> -# CONFIG_SND_ARM is not set
> -CONFIG_SND_SPI=y
> -CONFIG_SND_USB=y
> -CONFIG_SND_USB_AUDIO=y
> -CONFIG_SND_USB_UA101=m
> -CONFIG_SND_USB_CAIAQ=m
> -CONFIG_SND_USB_CAIAQ_INPUT=y
> -CONFIG_SND_USB_6FIRE=m
> -CONFIG_SND_SOC=y
> -CONFIG_SND_SOC_CACHE_LZO=y
> -CONFIG_SND_OMAP_SOC=y
> -CONFIG_SND_OMAP_SOC_MCBSP=y
> -CONFIG_SND_OMAP_SOC_OVERO=y
> -CONFIG_SND_OMAP_SOC_OMAP3EVM=y
> -CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y
> -CONFIG_SND_OMAP_SOC_ZOOM2=y
> -CONFIG_SND_SOC_I2C_AND_SPI=y
> -# CONFIG_SND_SOC_ALL_CODECS is not set
> -CONFIG_SND_SOC_TWL4030=y
> -# CONFIG_SOUND_PRIME is not set
> -CONFIG_HID_SUPPORT=y
> -CONFIG_HID=y
> -# CONFIG_HIDRAW is not set
> -
> -#
> -# USB Input Devices
> -#
> -CONFIG_USB_HID=y
> -# CONFIG_HID_PID is not set
> -# CONFIG_USB_HIDDEV is not set
> -
> -#
> -# Special HID drivers
> -#
> -CONFIG_HID_A4TECH=y
> -CONFIG_HID_ACRUX=m
> -# CONFIG_HID_ACRUX_FF is not set
> -CONFIG_HID_APPLE=y
> -CONFIG_HID_BELKIN=y
> -CONFIG_HID_CHERRY=y
> -CONFIG_HID_CHICONY=y
> -# CONFIG_HID_PRODIKEYS is not set
> -CONFIG_HID_CYPRESS=y
> -# CONFIG_HID_DRAGONRISE is not set
> -CONFIG_HID_EMS_FF=m
> -# CONFIG_HID_ELECOM is not set
> -CONFIG_HID_EZKEY=y
> -CONFIG_HID_KEYTOUCH=m
> -# CONFIG_HID_KYE is not set
> -CONFIG_HID_UCLOGIC=m
> -CONFIG_HID_WALTOP=m
> -CONFIG_HID_GYRATION=y
> -# CONFIG_HID_TWINHAN is not set
> -# CONFIG_HID_KENSINGTON is not set
> -CONFIG_HID_LCPOWER=m
> -CONFIG_HID_LOGITECH=y
> -# CONFIG_LOGITECH_FF is not set
> -# CONFIG_LOGIRUMBLEPAD2_FF is not set
> -# CONFIG_LOGIG940_FF is not set
> -# CONFIG_LOGIWII_FF is not set
> -CONFIG_HID_MAGICMOUSE=m
> -CONFIG_HID_MICROSOFT=y
> -CONFIG_HID_MONTEREY=y
> -CONFIG_HID_MULTITOUCH=m
> -CONFIG_HID_NTRIG=y
> -# CONFIG_HID_ORTEK is not set
> -CONFIG_HID_PANTHERLORD=y
> -# CONFIG_PANTHERLORD_FF is not set
> -CONFIG_HID_PETALYNX=y
> -CONFIG_HID_PICOLCD=m
> -CONFIG_HID_PICOLCD_FB=y
> -CONFIG_HID_PICOLCD_BACKLIGHT=y
> -# CONFIG_HID_PICOLCD_LCD is not set
> -CONFIG_HID_PICOLCD_LEDS=y
> -CONFIG_HID_QUANTA=m
> -CONFIG_HID_ROCCAT=m
> -CONFIG_HID_ROCCAT_COMMON=m
> -CONFIG_HID_ROCCAT_ARVO=m
> -CONFIG_HID_ROCCAT_KONE=m
> -CONFIG_HID_ROCCAT_KONEPLUS=m
> -CONFIG_HID_ROCCAT_KOVAPLUS=m
> -# CONFIG_HID_ROCCAT_PYRA is not set
> -CONFIG_HID_SAMSUNG=y
> -CONFIG_HID_SONY=y
> -CONFIG_HID_SUNPLUS=y
> -# CONFIG_HID_GREENASIA is not set
> -# CONFIG_HID_SMARTJOYPLUS is not set
> -CONFIG_HID_TOPSEED=y
> -# CONFIG_HID_THRUSTMASTER is not set
> -# CONFIG_HID_WACOM is not set
> -# CONFIG_HID_ZEROPLUS is not set
> -# CONFIG_HID_ZYDACRON is not set
> -CONFIG_USB_SUPPORT=y
> -CONFIG_USB_ARCH_HAS_HCD=y
> -CONFIG_USB_ARCH_HAS_OHCI=y
> -CONFIG_USB_ARCH_HAS_EHCI=y
> -CONFIG_USB=y
> -# CONFIG_USB_DEBUG is not set
> -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
> -
> -#
> -# Miscellaneous USB options
> -#
> -CONFIG_USB_DEVICEFS=y
> -CONFIG_USB_DEVICE_CLASS=y
> -# CONFIG_USB_DYNAMIC_MINORS is not set
> -CONFIG_USB_SUSPEND=y
> -CONFIG_USB_OTG=y
> -# CONFIG_USB_OTG_WHITELIST is not set
> -# CONFIG_USB_OTG_BLACKLIST_HUB is not set
> -CONFIG_USB_MON=y
> -# CONFIG_USB_WUSB is not set
> -# CONFIG_USB_WUSB_CBAF is not set
> -
> -#
> -# USB Host Controller Drivers
> -#
> -# CONFIG_USB_C67X00_HCD is not set
> -CONFIG_USB_EHCI_HCD=y
> -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
> -CONFIG_USB_EHCI_TT_NEWSCHED=y
> -CONFIG_USB_EHCI_HCD_OMAP=y
> -# CONFIG_USB_OXU210HP_HCD is not set
> -# CONFIG_USB_ISP116X_HCD is not set
> -# CONFIG_USB_ISP1760_HCD is not set
> -# CONFIG_USB_ISP1362_HCD is not set
> -# CONFIG_USB_OHCI_HCD is not set
> -# CONFIG_USB_U132_HCD is not set
> -# CONFIG_USB_SL811_HCD is not set
> -# CONFIG_USB_R8A66597_HCD is not set
> -# CONFIG_USB_HWA_HCD is not set
> -CONFIG_USB_MUSB_HDRC=y
> -# CONFIG_USB_MUSB_TUSB6010 is not set
> -CONFIG_USB_MUSB_OMAP2PLUS=y
> -# CONFIG_USB_MUSB_AM35X is not set
> -# CONFIG_USB_MUSB_HOST is not set
> -# CONFIG_USB_MUSB_PERIPHERAL is not set
> -CONFIG_USB_MUSB_OTG=y
> -CONFIG_USB_GADGET_MUSB_HDRC=y
> -CONFIG_USB_MUSB_HDRC_HCD=y
> -# CONFIG_MUSB_PIO_ONLY is not set
> -# CONFIG_USB_UX500_DMA is not set
> -CONFIG_USB_INVENTRA_DMA=y
> -# CONFIG_USB_TI_CPPI_DMA is not set
> -
> -#
> -# USB Device Class drivers
> -#
> -CONFIG_USB_ACM=m
> -CONFIG_USB_PRINTER=m
> -CONFIG_USB_WDM=m
> -CONFIG_USB_TMC=m
> -
> -#
> -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
> -#
> -
> -#
> -# also be needed; see USB_STORAGE Help for more info
> -#
> -CONFIG_USB_STORAGE=y
> -# CONFIG_USB_STORAGE_DEBUG is not set
> -CONFIG_USB_STORAGE_REALTEK=m
> -# CONFIG_USB_STORAGE_DATAFAB is not set
> -# CONFIG_USB_STORAGE_FREECOM is not set
> -# CONFIG_USB_STORAGE_ISD200 is not set
> -# CONFIG_USB_STORAGE_USBAT is not set
> -# CONFIG_USB_STORAGE_SDDR09 is not set
> -# CONFIG_USB_STORAGE_SDDR55 is not set
> -# CONFIG_USB_STORAGE_JUMPSHOT is not set
> -# CONFIG_USB_STORAGE_ALAUDA is not set
> -# CONFIG_USB_STORAGE_ONETOUCH is not set
> -# CONFIG_USB_STORAGE_KARMA is not set
> -# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
> -CONFIG_USB_STORAGE_ENE_UB6250=m
> -CONFIG_USB_UAS=m
> -# CONFIG_USB_LIBUSUAL is not set
> -
> -#
> -# USB Imaging devices
> -#
> -# CONFIG_USB_MDC800 is not set
> -# CONFIG_USB_MICROTEK is not set
> -
> -#
> -# USB port drivers
> -#
> -CONFIG_USB_SERIAL=m
> -CONFIG_USB_EZUSB=y
> -CONFIG_USB_SERIAL_GENERIC=y
> -CONFIG_USB_SERIAL_AIRCABLE=m
> -CONFIG_USB_SERIAL_ARK3116=m
> -CONFIG_USB_SERIAL_BELKIN=m
> -CONFIG_USB_SERIAL_CH341=m
> -# CONFIG_USB_SERIAL_WHITEHEAT is not set
> -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
> -# CONFIG_USB_SERIAL_CP210X is not set
> -CONFIG_USB_SERIAL_CYPRESS_M8=m
> -CONFIG_USB_SERIAL_EMPEG=m
> -CONFIG_USB_SERIAL_FTDI_SIO=m
> -CONFIG_USB_SERIAL_FUNSOFT=m
> -CONFIG_USB_SERIAL_VISOR=m
> -CONFIG_USB_SERIAL_IPAQ=m
> -CONFIG_USB_SERIAL_IR=m
> -CONFIG_USB_SERIAL_EDGEPORT=m
> -CONFIG_USB_SERIAL_EDGEPORT_TI=m
> -CONFIG_USB_SERIAL_GARMIN=m
> -CONFIG_USB_SERIAL_IPW=m
> -CONFIG_USB_SERIAL_IUU=m
> -CONFIG_USB_SERIAL_KEYSPAN_PDA=m
> -CONFIG_USB_SERIAL_KEYSPAN=m
> -CONFIG_USB_SERIAL_KEYSPAN_MPR=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA28=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA19=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
> -CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
> -CONFIG_USB_SERIAL_KLSI=m
> -CONFIG_USB_SERIAL_KOBIL_SCT=m
> -CONFIG_USB_SERIAL_MCT_U232=m
> -CONFIG_USB_SERIAL_MOS7720=m
> -CONFIG_USB_SERIAL_MOS7840=m
> -CONFIG_USB_SERIAL_MOTOROLA=m
> -CONFIG_USB_SERIAL_NAVMAN=m
> -CONFIG_USB_SERIAL_PL2303=m
> -CONFIG_USB_SERIAL_OTI6858=m
> -CONFIG_USB_SERIAL_QCAUX=m
> -# CONFIG_USB_SERIAL_QUALCOMM is not set
> -CONFIG_USB_SERIAL_SPCP8X5=m
> -CONFIG_USB_SERIAL_HP4X=m
> -CONFIG_USB_SERIAL_SAFE=m
> -# CONFIG_USB_SERIAL_SAFE_PADDED is not set
> -CONFIG_USB_SERIAL_SIEMENS_MPI=m
> -CONFIG_USB_SERIAL_SIERRAWIRELESS=m
> -# CONFIG_USB_SERIAL_SYMBOL is not set
> -# CONFIG_USB_SERIAL_TI is not set
> -CONFIG_USB_SERIAL_CYBERJACK=m
> -# CONFIG_USB_SERIAL_XIRCOM is not set
> -CONFIG_USB_SERIAL_WWAN=m
> -CONFIG_USB_SERIAL_OPTION=m
> -CONFIG_USB_SERIAL_OMNINET=m
> -CONFIG_USB_SERIAL_OPTICON=m
> -CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
> -CONFIG_USB_SERIAL_ZIO=m
> -CONFIG_USB_SERIAL_SSU100=m
> -CONFIG_USB_SERIAL_DEBUG=m
> -
> -#
> -# USB Miscellaneous drivers
> -#
> -CONFIG_USB_EMI62=m
> -CONFIG_USB_EMI26=m
> -# CONFIG_USB_ADUTUX is not set
> -# CONFIG_USB_SEVSEG is not set
> -# CONFIG_USB_RIO500 is not set
> -CONFIG_USB_LEGOTOWER=m
> -CONFIG_USB_LCD=m
> -CONFIG_USB_LED=m
> -CONFIG_USB_CYPRESS_CY7C63=m
> -CONFIG_USB_CYTHERM=m
> -CONFIG_USB_IDMOUSE=m
> -CONFIG_USB_FTDI_ELAN=m
> -# CONFIG_USB_APPLEDISPLAY is not set
> -CONFIG_USB_SISUSBVGA=m
> -CONFIG_USB_SISUSBVGA_CON=y
> -CONFIG_USB_LD=m
> -CONFIG_USB_TRANCEVIBRATOR=m
> -# CONFIG_USB_IOWARRIOR is not set
> -CONFIG_USB_TEST=m
> -# CONFIG_USB_ISIGHTFW is not set
> -CONFIG_USB_YUREX=m
> -CONFIG_USB_ATM=m
> -CONFIG_USB_SPEEDTOUCH=m
> -CONFIG_USB_CXACRU=m
> -CONFIG_USB_UEAGLEATM=m
> -CONFIG_USB_XUSBATM=m
> -CONFIG_USB_GADGET=y
> -# CONFIG_USB_GADGET_DEBUG is not set
> -# CONFIG_USB_GADGET_DEBUG_FILES is not set
> -CONFIG_USB_GADGET_DEBUG_FS=y
> -CONFIG_USB_GADGET_VBUS_DRAW=480
> -CONFIG_USB_GADGET_SELECTED=y
> -# CONFIG_USB_GADGET_FUSB300 is not set
> -# CONFIG_USB_GADGET_OMAP is not set
> -# CONFIG_USB_GADGET_R8A66597 is not set
> -# CONFIG_USB_GADGET_PXA_U2O is not set
> -# CONFIG_USB_GADGET_M66592 is not set
> -# CONFIG_USB_GADGET_DUMMY_HCD is not set
> -CONFIG_USB_GADGET_DUALSPEED=y
> -# CONFIG_USB_ZERO is not set
> -# CONFIG_USB_AUDIO is not set
> -CONFIG_USB_ETH=m
> -CONFIG_USB_ETH_RNDIS=y
> -# CONFIG_USB_ETH_EEM is not set
> -CONFIG_USB_G_NCM=m
> -# CONFIG_USB_GADGETFS is not set
> -CONFIG_USB_FUNCTIONFS=m
> -# CONFIG_USB_FUNCTIONFS_ETH is not set
> -CONFIG_USB_FUNCTIONFS_RNDIS=y
> -# CONFIG_USB_FUNCTIONFS_GENERIC is not set
> -CONFIG_USB_FILE_STORAGE=m
> -# CONFIG_USB_FILE_STORAGE_TEST is not set
> -CONFIG_USB_MASS_STORAGE=m
> -# CONFIG_USB_G_SERIAL is not set
> -# CONFIG_USB_MIDI_GADGET is not set
> -# CONFIG_USB_G_PRINTER is not set
> -CONFIG_USB_CDC_COMPOSITE=m
> -# CONFIG_USB_G_MULTI is not set
> -CONFIG_USB_G_HID=m
> -CONFIG_USB_G_DBGP=m
> -# CONFIG_USB_G_DBGP_PRINTK is not set
> -CONFIG_USB_G_DBGP_SERIAL=y
> -CONFIG_USB_G_WEBCAM=m
> -
> -#
> -# OTG and related infrastructure
> -#
> -CONFIG_USB_OTG_UTILS=y
> -CONFIG_USB_GPIO_VBUS=y
> -# CONFIG_ISP1301_OMAP is not set
> -# CONFIG_USB_ULPI is not set
> -CONFIG_TWL4030_USB=y
> -CONFIG_TWL6030_USB=y
> -CONFIG_NOP_USB_XCEIV=y
> -CONFIG_MMC=y
> -# CONFIG_MMC_DEBUG is not set
> -CONFIG_MMC_UNSAFE_RESUME=y
> -# CONFIG_MMC_CLKGATE is not set
> -
> -#
> -# MMC/SD/SDIO Card Drivers
> -#
> -CONFIG_MMC_BLOCK=y
> -CONFIG_MMC_BLOCK_MINORS=8
> -CONFIG_MMC_BLOCK_BOUNCE=y
> -CONFIG_SDIO_UART=y
> -# CONFIG_MMC_TEST is not set
> -
> -#
> -# MMC/SD/SDIO Host Controller Drivers
> -#
> -# CONFIG_MMC_SDHCI is not set
> -# CONFIG_MMC_OMAP is not set
> -CONFIG_MMC_OMAP_HS=y
> -CONFIG_MMC_SPI=m
> -# CONFIG_MMC_DW is not set
> -# CONFIG_MMC_VUB300 is not set
> -CONFIG_MMC_USHC=m
> -# CONFIG_MEMSTICK is not set
> -CONFIG_NEW_LEDS=y
> -CONFIG_LEDS_CLASS=y
> -
> -#
> -# LED drivers
> -#
> -# CONFIG_LEDS_LM3530 is not set
> -# CONFIG_LEDS_PCA9532 is not set
> -CONFIG_LEDS_GPIO=y
> -CONFIG_LEDS_GPIO_PLATFORM=y
> -# CONFIG_LEDS_LP3944 is not set
> -CONFIG_LEDS_LP5521=m
> -CONFIG_LEDS_LP5523=m
> -# CONFIG_LEDS_PCA955X is not set
> -# CONFIG_LEDS_DAC124S085 is not set
> -CONFIG_LEDS_PWM=m
> -CONFIG_LEDS_REGULATOR=m
> -# CONFIG_LEDS_BD2802 is not set
> -CONFIG_LEDS_WS2801=y
> -# CONFIG_LEDS_LT3593 is not set
> -CONFIG_LEDS_TRIGGERS=y
> -
> -#
> -# LED Triggers
> -#
> -CONFIG_LEDS_TRIGGER_TIMER=m
> -CONFIG_LEDS_TRIGGER_HEARTBEAT=y
> -CONFIG_LEDS_TRIGGER_BACKLIGHT=m
> -CONFIG_LEDS_TRIGGER_GPIO=m
> -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
> -
> -#
> -# iptables trigger is under Netfilter config (LED target)
> -#
> -CONFIG_NFC_DEVICES=y
> -CONFIG_PN544_NFC=m
> -# CONFIG_ACCESSIBILITY is not set
> -CONFIG_RTC_LIB=y
> -CONFIG_RTC_CLASS=y
> -CONFIG_RTC_HCTOSYS=y
> -CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
> -# CONFIG_RTC_DEBUG is not set
> -
> -#
> -# RTC interfaces
> -#
> -CONFIG_RTC_INTF_SYSFS=y
> -CONFIG_RTC_INTF_PROC=y
> -CONFIG_RTC_INTF_DEV=y
> -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
> -# CONFIG_RTC_DRV_TEST is not set
> -
> -#
> -# I2C RTC drivers
> -#
> -CONFIG_RTC_DRV_DS1307=y
> -# CONFIG_RTC_DRV_DS1374 is not set
> -# CONFIG_RTC_DRV_DS1672 is not set
> -# CONFIG_RTC_DRV_DS3232 is not set
> -# CONFIG_RTC_DRV_MAX6900 is not set
> -# CONFIG_RTC_DRV_RS5C372 is not set
> -# CONFIG_RTC_DRV_ISL1208 is not set
> -# CONFIG_RTC_DRV_ISL12022 is not set
> -# CONFIG_RTC_DRV_X1205 is not set
> -# CONFIG_RTC_DRV_PCF8563 is not set
> -# CONFIG_RTC_DRV_PCF8583 is not set
> -# CONFIG_RTC_DRV_M41T80 is not set
> -CONFIG_RTC_DRV_BQ32K=m
> -CONFIG_RTC_DRV_TWL4030=m
> -# CONFIG_RTC_DRV_S35390A is not set
> -# CONFIG_RTC_DRV_FM3130 is not set
> -# CONFIG_RTC_DRV_RX8581 is not set
> -# CONFIG_RTC_DRV_RX8025 is not set
> -# CONFIG_RTC_DRV_EM3027 is not set
> -# CONFIG_RTC_DRV_RV3029C2 is not set
> -
> -#
> -# SPI RTC drivers
> -#
> -# CONFIG_RTC_DRV_M41T93 is not set
> -# CONFIG_RTC_DRV_M41T94 is not set
> -# CONFIG_RTC_DRV_DS1305 is not set
> -# CONFIG_RTC_DRV_DS1390 is not set
> -# CONFIG_RTC_DRV_MAX6902 is not set
> -# CONFIG_RTC_DRV_R9701 is not set
> -# CONFIG_RTC_DRV_RS5C348 is not set
> -# CONFIG_RTC_DRV_DS3234 is not set
> -# CONFIG_RTC_DRV_PCF2123 is not set
> -
> -#
> -# Platform RTC drivers
> -#
> -# CONFIG_RTC_DRV_CMOS is not set
> -# CONFIG_RTC_DRV_DS1286 is not set
> -# CONFIG_RTC_DRV_DS1511 is not set
> -# CONFIG_RTC_DRV_DS1553 is not set
> -# CONFIG_RTC_DRV_DS1742 is not set
> -# CONFIG_RTC_DRV_STK17TA8 is not set
> -# CONFIG_RTC_DRV_M48T86 is not set
> -# CONFIG_RTC_DRV_M48T35 is not set
> -# CONFIG_RTC_DRV_M48T59 is not set
> -# CONFIG_RTC_DRV_MSM6242 is not set
> -# CONFIG_RTC_DRV_BQ4802 is not set
> -# CONFIG_RTC_DRV_RP5C01 is not set
> -# CONFIG_RTC_DRV_V3020 is not set
> -
> -#
> -# on-CPU RTC drivers
> -#
> -# CONFIG_DMADEVICES is not set
> -# CONFIG_AUXDISPLAY is not set
> -CONFIG_UIO=m
> -CONFIG_UIO_PDRV=m
> -CONFIG_UIO_PDRV_GENIRQ=m
> -CONFIG_STAGING=y
> -# CONFIG_VIDEO_TM6000 is not set
> -# CONFIG_USBIP_CORE is not set
> -CONFIG_W35UND=m
> -CONFIG_PRISM2_USB=m
> -CONFIG_ECHO=m
> -# CONFIG_BRCMUTIL is not set
> -# CONFIG_ASUS_OLED is not set
> -CONFIG_R8712U=m
> -CONFIG_R8712_AP=y
> -# CONFIG_TRANZPORT is not set
> -# CONFIG_POHMELFS is not set
> -# CONFIG_LINE6_USB is not set
> -# CONFIG_USB_SERIAL_QUATECH2 is not set
> -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
> -# CONFIG_VT6656 is not set
> -# CONFIG_IIO is not set
> -CONFIG_XVMALLOC=y
> -CONFIG_ZRAM=m
> -# CONFIG_ZRAM_DEBUG is not set
> -# CONFIG_FB_SM7XX is not set
> -# CONFIG_LIRC_STAGING is not set
> -# CONFIG_EASYCAP is not set
> -# CONFIG_TIDSPBRIDGE is not set
> -# CONFIG_MACH_OMAP3_WESTBRIDGE_AST_PNAND_HAL is not set
> -CONFIG_MACH_NO_WESTBRIDGE=y
> -# CONFIG_ATH6K_LEGACY is not set
> -CONFIG_USB_ENESTORAGE=m
> -CONFIG_BCM_WIMAX=m
> -CONFIG_FT1000=m
> -CONFIG_FT1000_USB=m
> -
> -#
> -# Speakup console speech
> -#
> -# CONFIG_SPEAKUP is not set
> -CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
> -CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
> -
> -#
> -# Altera FPGA firmware download module
> -#
> -# CONFIG_ALTERA_STAPL is not set
> -CONFIG_CLKDEV_LOOKUP=y
> -
> -#
> -# File systems
> -#
> -CONFIG_EXT2_FS=y
> -CONFIG_EXT2_FS_XATTR=y
> -CONFIG_EXT2_FS_POSIX_ACL=y
> -CONFIG_EXT2_FS_SECURITY=y
> -# CONFIG_EXT2_FS_XIP is not set
> -CONFIG_EXT3_FS=y
> -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
> -CONFIG_EXT3_FS_XATTR=y
> -CONFIG_EXT3_FS_POSIX_ACL=y
> -# CONFIG_EXT3_FS_SECURITY is not set
> -CONFIG_EXT4_FS=y
> -CONFIG_EXT4_FS_XATTR=y
> -CONFIG_EXT4_FS_POSIX_ACL=y
> -CONFIG_EXT4_FS_SECURITY=y
> -# CONFIG_EXT4_DEBUG is not set
> -CONFIG_JBD=y
> -# CONFIG_JBD_DEBUG is not set
> -CONFIG_JBD2=y
> -# CONFIG_JBD2_DEBUG is not set
> -CONFIG_FS_MBCACHE=y
> -CONFIG_REISERFS_FS=m
> -# CONFIG_REISERFS_CHECK is not set
> -CONFIG_REISERFS_PROC_INFO=y
> -CONFIG_REISERFS_FS_XATTR=y
> -# CONFIG_REISERFS_FS_POSIX_ACL is not set
> -# CONFIG_REISERFS_FS_SECURITY is not set
> -CONFIG_JFS_FS=m
> -CONFIG_JFS_POSIX_ACL=y
> -# CONFIG_JFS_SECURITY is not set
> -# CONFIG_JFS_DEBUG is not set
> -CONFIG_JFS_STATISTICS=y
> -CONFIG_XFS_FS=m
> -CONFIG_XFS_QUOTA=y
> -CONFIG_XFS_POSIX_ACL=y
> -CONFIG_XFS_RT=y
> -# CONFIG_XFS_DEBUG is not set
> -CONFIG_GFS2_FS=m
> -CONFIG_GFS2_FS_LOCKING_DLM=y
> -CONFIG_OCFS2_FS=m
> -CONFIG_OCFS2_FS_O2CB=m
> -CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
> -CONFIG_OCFS2_FS_STATS=y
> -CONFIG_OCFS2_DEBUG_MASKLOG=y
> -# CONFIG_OCFS2_DEBUG_FS is not set
> -CONFIG_BTRFS_FS=m
> -CONFIG_BTRFS_FS_POSIX_ACL=y
> -CONFIG_NILFS2_FS=m
> -CONFIG_FS_POSIX_ACL=y
> -CONFIG_EXPORTFS=y
> -CONFIG_FILE_LOCKING=y
> -CONFIG_FSNOTIFY=y
> -CONFIG_DNOTIFY=y
> -CONFIG_INOTIFY_USER=y
> -CONFIG_FANOTIFY=y
> -CONFIG_QUOTA=y
> -# CONFIG_QUOTA_NETLINK_INTERFACE is not set
> -CONFIG_PRINT_QUOTA_WARNING=y
> -# CONFIG_QUOTA_DEBUG is not set
> -CONFIG_QUOTA_TREE=y
> -# CONFIG_QFMT_V1 is not set
> -CONFIG_QFMT_V2=y
> -CONFIG_QUOTACTL=y
> -CONFIG_AUTOFS4_FS=y
> -CONFIG_FUSE_FS=m
> -CONFIG_CUSE=m
> -CONFIG_GENERIC_ACL=y
> -
> -#
> -# Caches
> -#
> -CONFIG_FSCACHE=m
> -CONFIG_FSCACHE_STATS=y
> -CONFIG_FSCACHE_HISTOGRAM=y
> -# CONFIG_FSCACHE_DEBUG is not set
> -# CONFIG_FSCACHE_OBJECT_LIST is not set
> -CONFIG_CACHEFILES=m
> -# CONFIG_CACHEFILES_DEBUG is not set
> -CONFIG_CACHEFILES_HISTOGRAM=y
> -
> -#
> -# CD-ROM/DVD Filesystems
> -#
> -CONFIG_ISO9660_FS=m
> -CONFIG_JOLIET=y
> -CONFIG_ZISOFS=y
> -CONFIG_UDF_FS=m
> -CONFIG_UDF_NLS=y
> -
> -#
> -# DOS/FAT/NT Filesystems
> -#
> -CONFIG_FAT_FS=y
> -CONFIG_MSDOS_FS=y
> -CONFIG_VFAT_FS=y
> -CONFIG_FAT_DEFAULT_CODEPAGE=437
> -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
> -CONFIG_NTFS_FS=m
> -# CONFIG_NTFS_DEBUG is not set
> -# CONFIG_NTFS_RW is not set
> -
> -#
> -# Pseudo filesystems
> -#
> -CONFIG_PROC_FS=y
> -CONFIG_PROC_SYSCTL=y
> -CONFIG_PROC_PAGE_MONITOR=y
> -CONFIG_SYSFS=y
> -CONFIG_TMPFS=y
> -CONFIG_TMPFS_POSIX_ACL=y
> -CONFIG_TMPFS_XATTR=y
> -# CONFIG_HUGETLB_PAGE is not set
> -CONFIG_CONFIGFS_FS=m
> -CONFIG_MISC_FILESYSTEMS=y
> -CONFIG_ADFS_FS=m
> -# CONFIG_ADFS_FS_RW is not set
> -CONFIG_AFFS_FS=m
> -# CONFIG_ECRYPT_FS is not set
> -CONFIG_HFS_FS=m
> -CONFIG_HFSPLUS_FS=m
> -CONFIG_BEFS_FS=m
> -# CONFIG_BEFS_DEBUG is not set
> -CONFIG_BFS_FS=m
> -CONFIG_EFS_FS=m
> -CONFIG_JFFS2_FS=y
> -CONFIG_JFFS2_FS_DEBUG=0
> -CONFIG_JFFS2_FS_WRITEBUFFER=y
> -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
> -CONFIG_JFFS2_SUMMARY=y
> -CONFIG_JFFS2_FS_XATTR=y
> -CONFIG_JFFS2_FS_POSIX_ACL=y
> -CONFIG_JFFS2_FS_SECURITY=y
> -CONFIG_JFFS2_COMPRESSION_OPTIONS=y
> -CONFIG_JFFS2_ZLIB=y
> -CONFIG_JFFS2_LZO=y
> -CONFIG_JFFS2_RTIME=y
> -CONFIG_JFFS2_RUBIN=y
> -# CONFIG_JFFS2_CMODE_NONE is not set
> -# CONFIG_JFFS2_CMODE_PRIORITY is not set
> -# CONFIG_JFFS2_CMODE_SIZE is not set
> -CONFIG_JFFS2_CMODE_FAVOURLZO=y
> -CONFIG_UBIFS_FS=y
> -CONFIG_UBIFS_FS_XATTR=y
> -CONFIG_UBIFS_FS_ADVANCED_COMPR=y
> -CONFIG_UBIFS_FS_LZO=y
> -CONFIG_UBIFS_FS_ZLIB=y
> -# CONFIG_UBIFS_FS_DEBUG is not set
> -CONFIG_LOGFS=m
> -CONFIG_CRAMFS=m
> -CONFIG_SQUASHFS=y
> -# CONFIG_SQUASHFS_XATTR is not set
> -CONFIG_SQUASHFS_LZO=y
> -CONFIG_SQUASHFS_XZ=y
> -# CONFIG_SQUASHFS_EMBEDDED is not set
> -CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
> -CONFIG_VXFS_FS=m
> -CONFIG_MINIX_FS=m
> -CONFIG_OMFS_FS=m
> -CONFIG_HPFS_FS=m
> -CONFIG_QNX4FS_FS=m
> -CONFIG_ROMFS_FS=m
> -CONFIG_ROMFS_BACKED_BY_BLOCK=y
> -# CONFIG_ROMFS_BACKED_BY_MTD is not set
> -# CONFIG_ROMFS_BACKED_BY_BOTH is not set
> -CONFIG_ROMFS_ON_BLOCK=y
> -CONFIG_PSTORE=y
> -CONFIG_SYSV_FS=m
> -CONFIG_UFS_FS=m
> -# CONFIG_UFS_FS_WRITE is not set
> -# CONFIG_UFS_DEBUG is not set
> -CONFIG_NETWORK_FILESYSTEMS=y
> -CONFIG_NFS_FS=y
> -CONFIG_NFS_V3=y
> -CONFIG_NFS_V3_ACL=y
> -CONFIG_NFS_V4=y
> -CONFIG_NFS_V4_1=y
> -CONFIG_PNFS_FILE_LAYOUT=y
> -CONFIG_ROOT_NFS=y
> -# CONFIG_NFS_USE_LEGACY_DNS is not set
> -CONFIG_NFS_USE_KERNEL_DNS=y
> -# CONFIG_NFS_USE_NEW_IDMAPPER is not set
> -CONFIG_NFSD=m
> -CONFIG_NFSD_DEPRECATED=y
> -CONFIG_NFSD_V2_ACL=y
> -CONFIG_NFSD_V3=y
> -CONFIG_NFSD_V3_ACL=y
> -CONFIG_NFSD_V4=y
> -CONFIG_LOCKD=y
> -CONFIG_LOCKD_V4=y
> -CONFIG_NFS_ACL_SUPPORT=y
> -CONFIG_NFS_COMMON=y
> -CONFIG_SUNRPC=y
> -CONFIG_SUNRPC_GSS=y
> -CONFIG_RPCSEC_GSS_KRB5=m
> -CONFIG_CEPH_FS=m
> -CONFIG_CIFS=m
> -CONFIG_CIFS_STATS=y
> -CONFIG_CIFS_STATS2=y
> -# CONFIG_CIFS_WEAK_PW_HASH is not set
> -# CONFIG_CIFS_UPCALL is not set
> -CONFIG_CIFS_XATTR=y
> -CONFIG_CIFS_POSIX=y
> -# CONFIG_CIFS_DEBUG2 is not set
> -CONFIG_CIFS_DFS_UPCALL=y
> -CONFIG_CIFS_FSCACHE=y
> -CONFIG_CIFS_ACL=y
> -CONFIG_NCP_FS=m
> -# CONFIG_NCPFS_PACKET_SIGNING is not set
> -# CONFIG_NCPFS_IOCTL_LOCKING is not set
> -# CONFIG_NCPFS_STRONG is not set
> -# CONFIG_NCPFS_NFS_NS is not set
> -# CONFIG_NCPFS_OS2_NS is not set
> -# CONFIG_NCPFS_SMALLDOS is not set
> -# CONFIG_NCPFS_NLS is not set
> -# CONFIG_NCPFS_EXTRAS is not set
> -CONFIG_CODA_FS=m
> -CONFIG_AFS_FS=m
> -# CONFIG_AFS_DEBUG is not set
> -# CONFIG_AFS_FSCACHE is not set
> -CONFIG_9P_FS=m
> -CONFIG_9P_FSCACHE=y
> -CONFIG_9P_FS_POSIX_ACL=y
> -
> -#
> -# Partition Types
> -#
> -CONFIG_PARTITION_ADVANCED=y
> -# CONFIG_ACORN_PARTITION is not set
> -# CONFIG_OSF_PARTITION is not set
> -# CONFIG_AMIGA_PARTITION is not set
> -# CONFIG_ATARI_PARTITION is not set
> -CONFIG_MAC_PARTITION=y
> -CONFIG_MSDOS_PARTITION=y
> -CONFIG_BSD_DISKLABEL=y
> -CONFIG_MINIX_SUBPARTITION=y
> -CONFIG_SOLARIS_X86_PARTITION=y
> -# CONFIG_UNIXWARE_DISKLABEL is not set
> -CONFIG_LDM_PARTITION=y
> -CONFIG_LDM_DEBUG=y
> -# CONFIG_SGI_PARTITION is not set
> -# CONFIG_ULTRIX_PARTITION is not set
> -# CONFIG_SUN_PARTITION is not set
> -# CONFIG_KARMA_PARTITION is not set
> -CONFIG_EFI_PARTITION=y
> -# CONFIG_SYSV68_PARTITION is not set
> -CONFIG_NLS=y
> -CONFIG_NLS_DEFAULT="iso8859-1"
> -CONFIG_NLS_CODEPAGE_437=y
> -CONFIG_NLS_CODEPAGE_737=m
> -CONFIG_NLS_CODEPAGE_775=m
> -CONFIG_NLS_CODEPAGE_850=m
> -CONFIG_NLS_CODEPAGE_852=m
> -CONFIG_NLS_CODEPAGE_855=m
> -CONFIG_NLS_CODEPAGE_857=m
> -CONFIG_NLS_CODEPAGE_860=m
> -CONFIG_NLS_CODEPAGE_861=m
> -CONFIG_NLS_CODEPAGE_862=m
> -CONFIG_NLS_CODEPAGE_863=m
> -CONFIG_NLS_CODEPAGE_864=m
> -CONFIG_NLS_CODEPAGE_865=m
> -CONFIG_NLS_CODEPAGE_866=m
> -CONFIG_NLS_CODEPAGE_869=m
> -CONFIG_NLS_CODEPAGE_936=m
> -CONFIG_NLS_CODEPAGE_950=m
> -CONFIG_NLS_CODEPAGE_932=m
> -CONFIG_NLS_CODEPAGE_949=m
> -CONFIG_NLS_CODEPAGE_874=m
> -CONFIG_NLS_ISO8859_8=m
> -CONFIG_NLS_CODEPAGE_1250=m
> -CONFIG_NLS_CODEPAGE_1251=m
> -CONFIG_NLS_ASCII=m
> -CONFIG_NLS_ISO8859_1=y
> -CONFIG_NLS_ISO8859_2=m
> -CONFIG_NLS_ISO8859_3=m
> -CONFIG_NLS_ISO8859_4=m
> -CONFIG_NLS_ISO8859_5=m
> -CONFIG_NLS_ISO8859_6=m
> -CONFIG_NLS_ISO8859_7=m
> -CONFIG_NLS_ISO8859_9=m
> -CONFIG_NLS_ISO8859_13=m
> -CONFIG_NLS_ISO8859_14=m
> -CONFIG_NLS_ISO8859_15=m
> -CONFIG_NLS_KOI8_R=m
> -CONFIG_NLS_KOI8_U=m
> -CONFIG_NLS_UTF8=y
> -CONFIG_DLM=m
> -# CONFIG_DLM_DEBUG is not set
> -
> -#
> -# Kernel hacking
> -#
> -CONFIG_PRINTK_TIME=y
> -CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
> -CONFIG_ENABLE_WARN_DEPRECATED=y
> -CONFIG_ENABLE_MUST_CHECK=y
> -CONFIG_FRAME_WARN=1024
> -CONFIG_MAGIC_SYSRQ=y
> -# CONFIG_STRIP_ASM_SYMS is not set
> -# CONFIG_UNUSED_SYMBOLS is not set
> -CONFIG_DEBUG_FS=y
> -# CONFIG_HEADERS_CHECK is not set
> -# CONFIG_DEBUG_SECTION_MISMATCH is not set
> -CONFIG_DEBUG_KERNEL=y
> -# CONFIG_DEBUG_SHIRQ is not set
> -# CONFIG_LOCKUP_DETECTOR is not set
> -# CONFIG_HARDLOCKUP_DETECTOR is not set
> -CONFIG_DETECT_HUNG_TASK=y
> -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
> -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
> -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
> -CONFIG_SCHED_DEBUG=y
> -CONFIG_SCHEDSTATS=y
> -CONFIG_TIMER_STATS=y
> -# CONFIG_DEBUG_OBJECTS is not set
> -# CONFIG_DEBUG_SLAB is not set
> -# CONFIG_DEBUG_KMEMLEAK is not set
> -# CONFIG_DEBUG_RT_MUTEXES is not set
> -# CONFIG_RT_MUTEX_TESTER is not set
> -# CONFIG_DEBUG_SPINLOCK is not set
> -CONFIG_DEBUG_MUTEXES=y
> -# CONFIG_DEBUG_LOCK_ALLOC is not set
> -# CONFIG_PROVE_LOCKING is not set
> -# CONFIG_SPARSE_RCU_POINTER is not set
> -# CONFIG_LOCK_STAT is not set
> -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
> -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
> -# CONFIG_DEBUG_STACK_USAGE is not set
> -# CONFIG_DEBUG_KOBJECT is not set
> -# CONFIG_DEBUG_BUGVERBOSE is not set
> -# CONFIG_DEBUG_INFO is not set
> -# CONFIG_DEBUG_VM is not set
> -# CONFIG_DEBUG_WRITECOUNT is not set
> -# CONFIG_DEBUG_MEMORY_INIT is not set
> -# CONFIG_DEBUG_LIST is not set
> -# CONFIG_TEST_LIST_SORT is not set
> -# CONFIG_DEBUG_SG is not set
> -# CONFIG_DEBUG_NOTIFIERS is not set
> -# CONFIG_DEBUG_CREDENTIALS is not set
> -# CONFIG_BOOT_PRINTK_DELAY is not set
> -# CONFIG_RCU_TORTURE_TEST is not set
> -# CONFIG_BACKTRACE_SELF_TEST is not set
> -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
> -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
> -# CONFIG_LKDTM is not set
> -# CONFIG_FAULT_INJECTION is not set
> -# CONFIG_LATENCYTOP is not set
> -# CONFIG_SYSCTL_SYSCALL_CHECK is not set
> -# CONFIG_DEBUG_PAGEALLOC is not set
> -CONFIG_HAVE_FUNCTION_TRACER=y
> -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
> -CONFIG_HAVE_DYNAMIC_FTRACE=y
> -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
> -CONFIG_HAVE_C_RECORDMCOUNT=y
> -CONFIG_RING_BUFFER=y
> -CONFIG_RING_BUFFER_ALLOW_SWAP=y
> -CONFIG_TRACING_SUPPORT=y
> -CONFIG_FTRACE=y
> -# CONFIG_FUNCTION_TRACER is not set
> -# CONFIG_IRQSOFF_TRACER is not set
> -# CONFIG_SCHED_TRACER is not set
> -# CONFIG_ENABLE_DEFAULT_TRACERS is not set
> -CONFIG_BRANCH_PROFILE_NONE=y
> -# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
> -# CONFIG_PROFILE_ALL_BRANCHES is not set
> -# CONFIG_STACK_TRACER is not set
> -# CONFIG_BLK_DEV_IO_TRACE is not set
> -# CONFIG_RING_BUFFER_BENCHMARK is not set
> -# CONFIG_DYNAMIC_DEBUG is not set
> -# CONFIG_DMA_API_DEBUG is not set
> -# CONFIG_ATOMIC64_SELFTEST is not set
> -# CONFIG_ASYNC_RAID6_TEST is not set
> -# CONFIG_SAMPLES is not set
> -CONFIG_HAVE_ARCH_KGDB=y
> -# CONFIG_KGDB is not set
> -# CONFIG_TEST_KSTRTOX is not set
> -# CONFIG_STRICT_DEVMEM is not set
> -CONFIG_ARM_UNWIND=y
> -# CONFIG_DEBUG_USER is not set
> -# CONFIG_DEBUG_LL is not set
> -# CONFIG_OC_ETM is not set
> -
> -#
> -# Security options
> -#
> -CONFIG_KEYS=y
> -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
> -# CONFIG_SECURITY_DMESG_RESTRICT is not set
> -# CONFIG_SECURITY is not set
> -# CONFIG_SECURITYFS is not set
> -CONFIG_DEFAULT_SECURITY_DAC=y
> -CONFIG_DEFAULT_SECURITY=""
> -CONFIG_XOR_BLOCKS=m
> -CONFIG_ASYNC_CORE=m
> -CONFIG_ASYNC_MEMCPY=m
> -CONFIG_ASYNC_XOR=m
> -CONFIG_ASYNC_PQ=m
> -CONFIG_ASYNC_RAID6_RECOV=m
> -CONFIG_CRYPTO=y
> -
> -#
> -# Crypto core or helper
> -#
> -CONFIG_CRYPTO_ALGAPI=y
> -CONFIG_CRYPTO_ALGAPI2=y
> -CONFIG_CRYPTO_AEAD=m
> -CONFIG_CRYPTO_AEAD2=y
> -CONFIG_CRYPTO_BLKCIPHER=y
> -CONFIG_CRYPTO_BLKCIPHER2=y
> -CONFIG_CRYPTO_HASH=y
> -CONFIG_CRYPTO_HASH2=y
> -CONFIG_CRYPTO_RNG=m
> -CONFIG_CRYPTO_RNG2=y
> -CONFIG_CRYPTO_PCOMP2=y
> -CONFIG_CRYPTO_MANAGER=y
> -CONFIG_CRYPTO_MANAGER2=y
> -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
> -CONFIG_CRYPTO_GF128MUL=m
> -CONFIG_CRYPTO_NULL=m
> -CONFIG_CRYPTO_WORKQUEUE=y
> -CONFIG_CRYPTO_CRYPTD=m
> -CONFIG_CRYPTO_AUTHENC=m
> -CONFIG_CRYPTO_TEST=m
> -
> -#
> -# Authenticated Encryption with Associated Data
> -#
> -CONFIG_CRYPTO_CCM=m
> -CONFIG_CRYPTO_GCM=m
> -CONFIG_CRYPTO_SEQIV=m
> -
> -#
> -# Block modes
> -#
> -CONFIG_CRYPTO_CBC=y
> -CONFIG_CRYPTO_CTR=m
> -CONFIG_CRYPTO_CTS=m
> -CONFIG_CRYPTO_ECB=y
> -CONFIG_CRYPTO_LRW=m
> -CONFIG_CRYPTO_PCBC=m
> -CONFIG_CRYPTO_XTS=m
> -
> -#
> -# Hash modes
> -#
> -CONFIG_CRYPTO_HMAC=m
> -CONFIG_CRYPTO_XCBC=m
> -# CONFIG_CRYPTO_VMAC is not set
> -
> -#
> -# Digest
> -#
> -CONFIG_CRYPTO_CRC32C=y
> -CONFIG_CRYPTO_GHASH=m
> -CONFIG_CRYPTO_MD4=m
> -CONFIG_CRYPTO_MD5=y
> -CONFIG_CRYPTO_MICHAEL_MIC=y
> -CONFIG_CRYPTO_RMD128=m
> -CONFIG_CRYPTO_RMD160=m
> -CONFIG_CRYPTO_RMD256=m
> -CONFIG_CRYPTO_RMD320=m
> -CONFIG_CRYPTO_SHA1=m
> -CONFIG_CRYPTO_SHA256=m
> -CONFIG_CRYPTO_SHA512=m
> -CONFIG_CRYPTO_TGR192=m
> -CONFIG_CRYPTO_WP512=m
> -
> -#
> -# Ciphers
> -#
> -CONFIG_CRYPTO_AES=y
> -CONFIG_CRYPTO_ANUBIS=m
> -CONFIG_CRYPTO_ARC4=y
> -CONFIG_CRYPTO_BLOWFISH=m
> -CONFIG_CRYPTO_CAMELLIA=m
> -CONFIG_CRYPTO_CAST5=m
> -CONFIG_CRYPTO_CAST6=m
> -CONFIG_CRYPTO_DES=y
> -CONFIG_CRYPTO_FCRYPT=m
> -CONFIG_CRYPTO_KHAZAD=m
> -CONFIG_CRYPTO_SALSA20=m
> -CONFIG_CRYPTO_SEED=m
> -CONFIG_CRYPTO_SERPENT=m
> -CONFIG_CRYPTO_TEA=m
> -CONFIG_CRYPTO_TWOFISH=m
> -CONFIG_CRYPTO_TWOFISH_COMMON=m
> -
> -#
> -# Compression
> -#
> -CONFIG_CRYPTO_DEFLATE=y
> -# CONFIG_CRYPTO_ZLIB is not set
> -CONFIG_CRYPTO_LZO=y
> -
> -#
> -# Random Number Generation
> -#
> -CONFIG_CRYPTO_ANSI_CPRNG=m
> -CONFIG_CRYPTO_USER_API=m
> -CONFIG_CRYPTO_USER_API_HASH=m
> -CONFIG_CRYPTO_USER_API_SKCIPHER=m
> -CONFIG_CRYPTO_HW=y
> -CONFIG_CRYPTO_DEV_OMAP_SHAM=m
> -CONFIG_CRYPTO_DEV_OMAP_AES=m
> -# CONFIG_BINARY_PRINTF is not set
> -
> -#
> -# Library routines
> -#
> -CONFIG_RAID6_PQ=m
> -CONFIG_BITREVERSE=y
> -CONFIG_CRC_CCITT=y
> -CONFIG_CRC16=y
> -CONFIG_CRC_T10DIF=y
> -CONFIG_CRC_ITU_T=y
> -CONFIG_CRC32=y
> -CONFIG_CRC7=y
> -CONFIG_LIBCRC32C=y
> -CONFIG_ZLIB_INFLATE=y
> -CONFIG_ZLIB_DEFLATE=y
> -CONFIG_LZO_COMPRESS=y
> -CONFIG_LZO_DECOMPRESS=y
> -CONFIG_XZ_DEC=y
> -CONFIG_XZ_DEC_X86=y
> -CONFIG_XZ_DEC_POWERPC=y
> -CONFIG_XZ_DEC_IA64=y
> -CONFIG_XZ_DEC_ARM=y
> -CONFIG_XZ_DEC_ARMTHUMB=y
> -CONFIG_XZ_DEC_SPARC=y
> -CONFIG_XZ_DEC_BCJ=y
> -CONFIG_XZ_DEC_TEST=m
> -CONFIG_DECOMPRESS_GZIP=y
> -CONFIG_DECOMPRESS_BZIP2=y
> -CONFIG_DECOMPRESS_LZMA=y
> -CONFIG_DECOMPRESS_XZ=y
> -CONFIG_DECOMPRESS_LZO=y
> -CONFIG_TEXTSEARCH=y
> -CONFIG_TEXTSEARCH_KMP=m
> -CONFIG_TEXTSEARCH_BM=m
> -CONFIG_TEXTSEARCH_FSM=m
> -CONFIG_BTREE=y
> -CONFIG_HAS_IOMEM=y
> -CONFIG_HAS_IOPORT=y
> -CONFIG_HAS_DMA=y
> -CONFIG_NLATTR=y
> -CONFIG_AVERAGE=y
> diff --git a/recipes-kernel/linux/linux-3.0/bias/0001-OMAP3630-PRM-add-ABB-
> PRM-register-definitions.patch b/recipes-kernel/linux/linux-3.0/bias/0001-
> OMAP3630-PRM-add-ABB-PRM-register-definitions.patch
> deleted file mode 100644
> index 8dd595a..0000000
> --- a/recipes-kernel/linux/linux-3.0/bias/0001-OMAP3630-PRM-add-ABB-PRM-
> register-definitions.patch
> +++ /dev/null
> @@ -1,93 +0,0 @@
> -From 2deaccf427c0fa1e87ed764877c03c2b1ba9b913 Mon Sep 17 00:00:00
> 2001
> -From: Mike Turquette <mturquette at ti.com>
> -Date: Wed, 29 Jun 2011 17:25:53 -0700
> -Subject: [PATCH 1/8] OMAP3630: PRM: add ABB PRM register definitions
> -
> -OMAP3630 supports an Adaptive Body-Bias ldo as well as some MPU interrupts
> -related to voltage control that are not present on OMAP34XX.  This patch
> -adds the offsets, register addresses, bitfield shifts and masks to support
> -this feature.
> -
> -Signed-off-by: Mike Turquette <mturquette at ti.com>
> ----
> - arch/arm/mach-omap2/prm-regbits-34xx.h |   34
> ++++++++++++++++++++++++++++++++
> - arch/arm/mach-omap2/prm2xxx_3xxx.h     |    4 +++
> - 2 files changed, 38 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/prm-regbits-34xx.h b/arch/arm/mach-
> omap2/prm-regbits-34xx.h
> -index 64c087a..0309ff6 100644
> ---- a/arch/arm/mach-omap2/prm-regbits-34xx.h
> -+++ b/arch/arm/mach-omap2/prm-regbits-34xx.h
> -@@ -216,6 +216,12 @@
> - /* PRM_SYSCONFIG specific bits */
> -
> - /* PRM_IRQSTATUS_MPU specific bits */
> -+#define OMAP3630_VC_BYPASS_ACK_ST_SHIFT			28
> -+#define OMAP3630_VC_BYPASS_ACK_ST_MASK			(1 <<
> 28)
> -+#define OMAP3630_VC_VP1_ACK_ST_SHIFT			27
> -+#define OMAP3630_VC_VP1_ACK_ST_MASK			(1 << 27)
> -+#define OMAP3630_ABB_LDO_TRANXDONE_ST_SHIFT		26
> -+#define OMAP3630_ABB_LDO_TRANXDONE_ST_MASK		(1 <<
> 26)
> - #define OMAP3430ES2_SND_PERIPH_DPLL_ST_SHIFT		25
> - #define OMAP3430ES2_SND_PERIPH_DPLL_ST_MASK		(1 << 25)
> - #define OMAP3430_VC_TIMEOUTERR_ST_MASK			(1 <<
> 24)
> -@@ -248,6 +254,12 @@
> - #define OMAP3430_FS_USB_WKUP_ST_MASK			(1 << 1)
> -
> - /* PRM_IRQENABLE_MPU specific bits */
> -+#define OMAP3630_VC_BYPASS_ACK_EN_SHIFT
> 	28
> -+#define OMAP3630_VC_BYPASS_ACK_EN_MASK
> 	(1 << 28)
> -+#define OMAP3630_VC_VP1_ACK_EN_SHIFT				27
> -+#define OMAP3630_VC_VP1_ACK_EN_MASK				(1 <<
> 27)
> -+#define OMAP3630_ABB_LDO_TRANXDONE_EN_SHIFT
> 	26
> -+#define OMAP3630_ABB_LDO_TRANXDONE_EN_MASK
> 	(1 << 26)
> - #define OMAP3430ES2_SND_PERIPH_DPLL_RECAL_EN_SHIFT		25
> - #define OMAP3430ES2_SND_PERIPH_DPLL_RECAL_EN_MASK		(1 <<
> 25)
> - #define OMAP3430_VC_TIMEOUTERR_EN_MASK
> 	(1 << 24)
> -@@ -587,6 +599,28 @@
> -
> - /* PRM_VP2_STATUS specific bits */
> -
> -+/* PRM_LDO_ABB_SETUP specific bits */
> -+#define OMAP3630_SR2_IN_TRANSITION_SHIFT		6
> -+#define OMAP3630_SR2_IN_TRANSITION_MASK			(1 <<
> 6)
> -+#define OMAP3630_SR2_STATUS_SHIFT			3
> -+#define OMAP3630_SR2_STATUS_MASK			(3 << 3)
> -+#define OMAP3630_OPP_CHANGE_SHIFT			2
> -+#define OMAP3630_OPP_CHANGE_MASK			(1 << 2)
> -+#define OMAP3630_OPP_SEL_SHIFT				0
> -+#define OMAP3630_OPP_SEL_MASK				(3 << 0)
> -+
> -+/* PRM_LDO_ABB_CTRL specific bits */
> -+#define OMAP3630_SR2_WTCNT_VALUE_SHIFT			8
> -+#define OMAP3630_SR2_WTCNT_VALUE_MASK			(0xff
> << 8)
> -+#define OMAP3630_SLEEP_RBB_SEL_SHIFT			3
> -+#define OMAP3630_SLEEP_RBB_SEL_MASK			(1 << 3)
> -+#define OMAP3630_ACTIVE_FBB_SEL_SHIFT			2
> -+#define OMAP3630_ACTIVE_FBB_SEL_MASK			(1 << 2)
> -+#define OMAP3630_ACTIVE_RBB_SEL_SHIFT			1
> -+#define OMAP3630_ACTIVE_RBB_SEL_MASK			(1 << 1)
> -+#define OMAP3630_SR2EN_SHIFT				0
> -+#define OMAP3630_SR2EN_MASK				(1 << 0)
> -+
> - /* RM_RSTST_NEON specific bits */
> -
> - /* PM_WKDEP_NEON specific bits */
> -diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.h b/arch/arm/mach-
> omap2/prm2xxx_3xxx.h
> -index cef533d..408d1c7 100644
> ---- a/arch/arm/mach-omap2/prm2xxx_3xxx.h
> -+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.h
> -@@ -167,6 +167,10 @@
> - #define OMAP3430_PRM_VP2_VOLTAGE
> 	OMAP34XX_PRM_REGADDR(OMAP3430_GR_MOD, 0x00e0)
> - #define OMAP3_PRM_VP2_STATUS_OFFSET	0x00e4
> - #define OMAP3430_PRM_VP2_STATUS
> 	OMAP34XX_PRM_REGADDR(OMAP3430_GR_MOD, 0x00e4)
> -+#define OMAP3_PRM_LDO_ABB_SETUP_OFFSET	0x00f0
> -+#define OMAP3630_PRM_LDO_ABB_SETUP
> 	OMAP34XX_PRM_REGADDR(OMAP3430_GR_MOD, 0x00f0)
> -+#define OMAP3_PRM_LDO_ABB_CTRL_OFFSET	0x00f4
> -+#define OMAP3630_PRM_LDO_ABB_CTRL
> 	OMAP34XX_PRM_REGADDR(OMAP3430_GR_MOD, 0x00f4)
> -
> - #define OMAP3_PRM_CLKSEL_OFFSET	0x0040
> - #define OMAP3430_PRM_CLKSEL
> 	OMAP34XX_PRM_REGADDR(OMAP3430_CCR_MOD, 0x0040)
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0/bias/0002-OMAP3-PM-VP-generalize-
> PRM-interrupt-helpers.patch b/recipes-kernel/linux/linux-3.0/bias/0002-
> OMAP3-PM-VP-generalize-PRM-interrupt-helpers.patch
> deleted file mode 100644
> index 8ac6433..0000000
> --- a/recipes-kernel/linux/linux-3.0/bias/0002-OMAP3-PM-VP-generalize-PRM-
> interrupt-helpers.patch
> +++ /dev/null
> @@ -1,263 +0,0 @@
> -From 11401a7b96f5cd53362cd54238a58a5a54a00246 Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Wed, 29 Jun 2011 17:25:54 -0700
> -Subject: [PATCH 2/8] OMAP3+: PM: VP: generalize PRM interrupt helpers
> -
> -We have multiple interrupt status hidden in the PRM interrupt status
> -reg. Make this handling generic to allow us to pull out LDO status such
> -as those for ABB from it using the same data structure and indexing. We
> -hence rename accordingly.
> -
> -We also fix a trivial warning as the variable does not need exporting:
> -arch/arm/mach-omap2/prm2xxx_3xxx.c:172:22: warning: symbol
> -'omap3_prm_irqs' was not declared. Should it be static?
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Mike Turquette <mturquette at ti.com>
> ----
> - arch/arm/mach-omap2/prm2xxx_3xxx.c |   22 +++++++++++-----------
> - arch/arm/mach-omap2/prm2xxx_3xxx.h |    7 +++++--
> - arch/arm/mach-omap2/prm44xx.c      |   28 ++++++++++++++--------------
> - arch/arm/mach-omap2/prm44xx.h      |    7 +++++--
> - arch/arm/mach-omap2/vp.h           |    9 ---------
> - arch/arm/mach-omap2/vp3xxx_data.c  |    4 ++--
> - arch/arm/mach-omap2/vp44xx_data.c  |    6 +++---
> - 7 files changed, 40 insertions(+), 43 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.c b/arch/arm/mach-
> omap2/prm2xxx_3xxx.c
> -index 3b83763..8a20242 100644
> ---- a/arch/arm/mach-omap2/prm2xxx_3xxx.c
> -+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.c
> -@@ -162,39 +162,39 @@ int omap2_prm_deassert_hardreset(s16
> prm_mod, u8 rst_shift, u8 st_shift)
> - /* PRM VP */
> -
> - /*
> -- * struct omap3_vp - OMAP3 VP register access description.
> -+ * struct omap3_prm_irq - OMAP3 PRM IRQ register access description.
> -  * @tranxdone_status: VP_TRANXDONE_ST bitmask in PRM_IRQSTATUS_MPU
> reg
> -  */
> --struct omap3_vp {
> -+struct omap3_prm_irq {
> - 	u32 tranxdone_status;
> - };
> -
> --struct omap3_vp omap3_vp[] = {
> --	[OMAP3_VP_VDD_MPU_ID] = {
> -+static struct omap3_prm_irq omap3_prm_irqs[] = {
> -+	[OMAP3_PRM_IRQ_VDD_MPU_ID] = {
> - 		.tranxdone_status = OMAP3430_VP1_TRANXDONE_ST_MASK,
> - 	},
> --	[OMAP3_VP_VDD_CORE_ID] = {
> -+	[OMAP3_PRM_IRQ_VDD_CORE_ID] = {
> - 		.tranxdone_status = OMAP3430_VP2_TRANXDONE_ST_MASK,
> - 	},
> - };
> -
> - #define MAX_VP_ID ARRAY_SIZE(omap3_vp);
> -
> --u32 omap3_prm_vp_check_txdone(u8 vp_id)
> -+u32 omap3_prm_vp_check_txdone(u8 irq_id)
> - {
> --	struct omap3_vp *vp = &omap3_vp[vp_id];
> -+	struct omap3_prm_irq *irq = &omap3_prm_irqs[irq_id];
> - 	u32 irqstatus;
> -
> - 	irqstatus = omap2_prm_read_mod_reg(OCP_MOD,
> -
> OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
> --	return irqstatus & vp->tranxdone_status;
> -+	return irqstatus & irq->tranxdone_status;
> - }
> -
> --void omap3_prm_vp_clear_txdone(u8 vp_id)
> -+void omap3_prm_vp_clear_txdone(u8 irq_id)
> - {
> --	struct omap3_vp *vp = &omap3_vp[vp_id];
> -+	struct omap3_prm_irq *irq = &omap3_prm_irqs[irq_id];
> -
> --	omap2_prm_write_mod_reg(vp->tranxdone_status,
> -+	omap2_prm_write_mod_reg(irq->tranxdone_status,
> - 				OCP_MOD,
> OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
> - }
> -
> -diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.h b/arch/arm/mach-
> omap2/prm2xxx_3xxx.h
> -index 408d1c7..d90b23f 100644
> ---- a/arch/arm/mach-omap2/prm2xxx_3xxx.h
> -+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.h
> -@@ -307,9 +307,12 @@ extern int omap2_prm_is_hardreset_asserted(s16
> prm_mod, u8 shift);
> - extern int omap2_prm_assert_hardreset(s16 prm_mod, u8 shift);
> - extern int omap2_prm_deassert_hardreset(s16 prm_mod, u8 rst_shift, u8
> st_shift);
> -
> -+#define OMAP3_PRM_IRQ_VDD_MPU_ID	0
> -+#define OMAP3_PRM_IRQ_VDD_CORE_ID	1
> - /* OMAP3-specific VP functions */
> --u32 omap3_prm_vp_check_txdone(u8 vp_id);
> --void omap3_prm_vp_clear_txdone(u8 vp_id);
> -+u32 omap3_prm_vp_check_txdone(u8 irq_id);
> -+void omap3_prm_vp_clear_txdone(u8 irq_id);
> -+
> -
> - /*
> -  * OMAP3 access functions for voltage controller (VC) and
> -diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-
> omap2/prm44xx.c
> -index 495a31a..b77d331 100644
> ---- a/arch/arm/mach-omap2/prm44xx.c
> -+++ b/arch/arm/mach-omap2/prm44xx.c
> -@@ -57,49 +57,49 @@ u32 omap4_prm_rmw_inst_reg_bits(u32 mask, u32
> bits, s16 inst, s16 reg)
> - /* PRM VP */
> -
> - /*
> -- * struct omap4_vp - OMAP4 VP register access description.
> -+ * struct omap4_prm_irq - OMAP4 VP register access description.
> -  * @irqstatus_mpu: offset to IRQSTATUS_MPU register for VP
> -  * @tranxdone_status: VP_TRANXDONE_ST bitmask in PRM_IRQSTATUS_MPU
> reg
> -  */
> --struct omap4_vp {
> -+struct omap4_prm_irq {
> - 	u32 irqstatus_mpu;
> - 	u32 tranxdone_status;
> - };
> -
> --static struct omap4_vp omap4_vp[] = {
> --	[OMAP4_VP_VDD_MPU_ID] = {
> -+static struct omap4_prm_irq omap4_prm_irqs[] = {
> -+	[OMAP4_PRM_IRQ_VDD_MPU_ID] = {
> - 		.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_2_OFFSET,
> - 		.tranxdone_status =
> OMAP4430_VP_MPU_TRANXDONE_ST_MASK,
> - 	},
> --	[OMAP4_VP_VDD_IVA_ID] = {
> -+	[OMAP4_PRM_IRQ_VDD_IVA_ID] = {
> - 		.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> - 		.tranxdone_status =
> OMAP4430_VP_IVA_TRANXDONE_ST_MASK,
> - 	},
> --	[OMAP4_VP_VDD_CORE_ID] = {
> -+	[OMAP4_PRM_IRQ_VDD_CORE_ID] = {
> - 		.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> - 		.tranxdone_status =
> OMAP4430_VP_CORE_TRANXDONE_ST_MASK,
> - 	},
> - };
> -
> --u32 omap4_prm_vp_check_txdone(u8 vp_id)
> -+u32 omap4_prm_vp_check_txdone(u8 irq_id)
> - {
> --	struct omap4_vp *vp = &omap4_vp[vp_id];
> -+	struct omap4_prm_irq *irq = &omap4_prm_irqs[irq_id];
> - 	u32 irqstatus;
> -
> - 	irqstatus =
> omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
> -
> 	OMAP4430_PRM_OCP_SOCKET_INST,
> --						vp->irqstatus_mpu);
> --	return irqstatus & vp->tranxdone_status;
> -+						irq->irqstatus_mpu);
> -+	return irqstatus & irq->tranxdone_status;
> - }
> -
> --void omap4_prm_vp_clear_txdone(u8 vp_id)
> -+void omap4_prm_vp_clear_txdone(u8 irq_id)
> - {
> --	struct omap4_vp *vp = &omap4_vp[vp_id];
> -+	struct omap4_prm_irq *irq = &omap4_prm_irqs[irq_id];
> -
> --	omap4_prminst_write_inst_reg(vp->tranxdone_status,
> -+	omap4_prminst_write_inst_reg(irq->tranxdone_status,
> - 				     OMAP4430_PRM_PARTITION,
> - 				     OMAP4430_PRM_OCP_SOCKET_INST,
> --				     vp->irqstatus_mpu);
> -+				     irq->irqstatus_mpu);
> - };
> -
> - u32 omap4_prm_vcvp_read(u8 offset)
> -diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-
> omap2/prm44xx.h
> -index 3d66ccd..858ee53 100644
> ---- a/arch/arm/mach-omap2/prm44xx.h
> -+++ b/arch/arm/mach-omap2/prm44xx.h
> -@@ -751,9 +751,12 @@ extern u32 omap4_prm_read_inst_reg(s16 inst, u16
> idx);
> - extern void omap4_prm_write_inst_reg(u32 val, s16 inst, u16 idx);
> - extern u32 omap4_prm_rmw_inst_reg_bits(u32 mask, u32 bits, s16 inst, s16
> idx);
> -
> -+#define OMAP4_PRM_IRQ_VDD_CORE_ID	0
> -+#define OMAP4_PRM_IRQ_VDD_IVA_ID	1
> -+#define OMAP4_PRM_IRQ_VDD_MPU_ID	2
> - /* OMAP4-specific VP functions */
> --u32 omap4_prm_vp_check_txdone(u8 vp_id);
> --void omap4_prm_vp_clear_txdone(u8 vp_id);
> -+u32 omap4_prm_vp_check_txdone(u8 irq_id);
> -+void omap4_prm_vp_clear_txdone(u8 irq_id);
> -
> - /*
> -  * OMAP4 access functions for voltage controller (VC) and
> -diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
> -index d9bc4f1..ee31e2f 100644
> ---- a/arch/arm/mach-omap2/vp.h
> -+++ b/arch/arm/mach-omap2/vp.h
> -@@ -21,15 +21,6 @@
> -
> - struct voltagedomain;
> -
> --/*
> -- * Voltage Processor (VP) identifiers
> -- */
> --#define OMAP3_VP_VDD_MPU_ID 0
> --#define OMAP3_VP_VDD_CORE_ID 1
> --#define OMAP4_VP_VDD_CORE_ID 0
> --#define OMAP4_VP_VDD_IVA_ID 1
> --#define OMAP4_VP_VDD_MPU_ID 2
> --
> - /* XXX document */
> - #define VP_IDLE_TIMEOUT		200
> - #define VP_TRANXDONE_TIMEOUT	300
> -diff --git a/arch/arm/mach-omap2/vp3xxx_data.c b/arch/arm/mach-
> omap2/vp3xxx_data.c
> -index 260c554..7bd8181 100644
> ---- a/arch/arm/mach-omap2/vp3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vp3xxx_data.c
> -@@ -57,7 +57,7 @@ static const struct omap_vp_common
> omap3_vp_common = {
> - };
> -
> - struct omap_vp_instance omap3_vp_mpu = {
> --	.id = OMAP3_VP_VDD_MPU_ID,
> -+	.id = OMAP3_PRM_IRQ_VDD_MPU_ID,
> - 	.common = &omap3_vp_common,
> - 	.vpconfig = OMAP3_PRM_VP1_CONFIG_OFFSET,
> - 	.vstepmin = OMAP3_PRM_VP1_VSTEPMIN_OFFSET,
> -@@ -68,7 +68,7 @@ struct omap_vp_instance omap3_vp_mpu = {
> - };
> -
> - struct omap_vp_instance omap3_vp_core = {
> --	.id = OMAP3_VP_VDD_CORE_ID,
> -+	.id = OMAP3_PRM_IRQ_VDD_CORE_ID,
> - 	.common = &omap3_vp_common,
> - 	.vpconfig = OMAP3_PRM_VP2_CONFIG_OFFSET,
> - 	.vstepmin = OMAP3_PRM_VP2_VSTEPMIN_OFFSET,
> -diff --git a/arch/arm/mach-omap2/vp44xx_data.c b/arch/arm/mach-
> omap2/vp44xx_data.c
> -index b4e7704..6de8ed6 100644
> ---- a/arch/arm/mach-omap2/vp44xx_data.c
> -+++ b/arch/arm/mach-omap2/vp44xx_data.c
> -@@ -56,7 +56,7 @@ static const struct omap_vp_common
> omap4_vp_common = {
> - };
> -
> - struct omap_vp_instance omap4_vp_mpu = {
> --	.id = OMAP4_VP_VDD_MPU_ID,
> -+	.id = OMAP4_PRM_IRQ_VDD_MPU_ID,
> - 	.common = &omap4_vp_common,
> - 	.vpconfig = OMAP4_PRM_VP_MPU_CONFIG_OFFSET,
> - 	.vstepmin = OMAP4_PRM_VP_MPU_VSTEPMIN_OFFSET,
> -@@ -67,7 +67,7 @@ struct omap_vp_instance omap4_vp_mpu = {
> - };
> -
> - struct omap_vp_instance omap4_vp_iva = {
> --	.id = OMAP4_VP_VDD_IVA_ID,
> -+	.id = OMAP4_PRM_IRQ_VDD_IVA_ID,
> - 	.common = &omap4_vp_common,
> - 	.vpconfig = OMAP4_PRM_VP_IVA_CONFIG_OFFSET,
> - 	.vstepmin = OMAP4_PRM_VP_IVA_VSTEPMIN_OFFSET,
> -@@ -78,7 +78,7 @@ struct omap_vp_instance omap4_vp_iva = {
> - };
> -
> - struct omap_vp_instance omap4_vp_core = {
> --	.id = OMAP4_VP_VDD_CORE_ID,
> -+	.id = OMAP4_PRM_IRQ_VDD_CORE_ID,
> - 	.common = &omap4_vp_common,
> - 	.vpconfig = OMAP4_PRM_VP_CORE_CONFIG_OFFSET,
> - 	.vstepmin = OMAP4_PRM_VP_CORE_VSTEPMIN_OFFSET,
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0/bias/0003-OMAP3-PRM-add-
> tranxdone-IRQ-handlers-for-ABB.patch b/recipes-kernel/linux/linux-
> 3.0/bias/0003-OMAP3-PRM-add-tranxdone-IRQ-handlers-for-ABB.patch
> deleted file mode 100644
> index 3213861..0000000
> --- a/recipes-kernel/linux/linux-3.0/bias/0003-OMAP3-PRM-add-tranxdone-
> IRQ-handlers-for-ABB.patch
> +++ /dev/null
> @@ -1,202 +0,0 @@
> -From da35165116eabf6149d558b426549784c93af164 Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Wed, 29 Jun 2011 17:25:55 -0700
> -Subject: [PATCH 3/8] OMAP3+: PRM: add tranxdone IRQ handlers for ABB
> -
> -OMAP3 and more recent platforms support a PRM interrupt to the MPU for
> -Adapative Body-Bias ldo transitions.
> -
> -Add helpers to the OMAP3 & OMAP4 PRM code to check the status of the
> -interrupt and also to clear it.  These will be called from the ABB code
> -as part of the greater voltage scaling sequence.
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Mike Turquette <mturquette at ti.com>
> ----
> - arch/arm/mach-omap2/prm2xxx_3xxx.c |   35
> ++++++++++++++++++++++++++-----
> - arch/arm/mach-omap2/prm2xxx_3xxx.h |    3 ++
> - arch/arm/mach-omap2/prm44xx.c      |   40
> +++++++++++++++++++++++++++++------
> - arch/arm/mach-omap2/prm44xx.h      |    3 ++
> - 4 files changed, 68 insertions(+), 13 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.c b/arch/arm/mach-
> omap2/prm2xxx_3xxx.c
> -index 8a20242..49e9719 100644
> ---- a/arch/arm/mach-omap2/prm2xxx_3xxx.c
> -+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.c
> -@@ -163,18 +163,23 @@ int omap2_prm_deassert_hardreset(s16
> prm_mod, u8 rst_shift, u8 st_shift)
> -
> - /*
> -  * struct omap3_prm_irq - OMAP3 PRM IRQ register access description.
> -- * @tranxdone_status: VP_TRANXDONE_ST bitmask in
> PRM_IRQSTATUS_MPU reg
> -+ * @vp_tranxdone_status: VP_TRANXDONE_ST bitmask in
> PRM_IRQSTATUS_MPU reg
> -+ * @abb_tranxdone_status: ABB_TRANXDONE_ST bitmask in
> PRM_IRQSTATUS_MPU reg
> -+ *			  (ONLY for OMAP3630)
> -  */
> - struct omap3_prm_irq {
> --	u32 tranxdone_status;
> -+	u32 vp_tranxdone_status;
> -+	u32 abb_tranxdone_status;
> - };
> -
> - static struct omap3_prm_irq omap3_prm_irqs[] = {
> - 	[OMAP3_PRM_IRQ_VDD_MPU_ID] = {
> --		.tranxdone_status = OMAP3430_VP1_TRANXDONE_ST_MASK,
> -+		.vp_tranxdone_status =
> OMAP3430_VP1_TRANXDONE_ST_MASK,
> -+		.abb_tranxdone_status =
> OMAP3630_ABB_LDO_TRANXDONE_ST_MASK,
> - 	},
> - 	[OMAP3_PRM_IRQ_VDD_CORE_ID] = {
> --		.tranxdone_status = OMAP3430_VP2_TRANXDONE_ST_MASK,
> -+		.vp_tranxdone_status =
> OMAP3430_VP2_TRANXDONE_ST_MASK,
> -+		/* no abb for core */
> - 	},
> - };
> -
> -@@ -187,14 +192,32 @@ u32 omap3_prm_vp_check_txdone(u8 irq_id)
> -
> - 	irqstatus = omap2_prm_read_mod_reg(OCP_MOD,
> -
> OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
> --	return irqstatus & irq->tranxdone_status;
> -+	return irqstatus & irq->vp_tranxdone_status;
> - }
> -
> - void omap3_prm_vp_clear_txdone(u8 irq_id)
> - {
> - 	struct omap3_prm_irq *irq = &omap3_prm_irqs[irq_id];
> -
> --	omap2_prm_write_mod_reg(irq->tranxdone_status,
> -+	omap2_prm_write_mod_reg(irq->vp_tranxdone_status,
> -+				OCP_MOD,
> OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
> -+}
> -+
> -+u32 omap36xx_prm_abb_check_txdone(u8 irq_id)
> -+{
> -+	struct omap3_prm_irq *irq = &omap3_prm_irqs[irq_id];
> -+	u32 irqstatus;
> -+
> -+	irqstatus = omap2_prm_read_mod_reg(OCP_MOD,
> -+
> OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
> -+	return irqstatus & irq->abb_tranxdone_status;
> -+}
> -+
> -+void omap36xx_prm_abb_clear_txdone(u8 irq_id)
> -+{
> -+	struct omap3_prm_irq *irq = &omap3_prm_irqs[irq_id];
> -+
> -+	omap2_prm_write_mod_reg(irq->abb_tranxdone_status,
> - 				OCP_MOD,
> OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
> - }
> -
> -diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.h b/arch/arm/mach-
> omap2/prm2xxx_3xxx.h
> -index d90b23f..08d5f1e 100644
> ---- a/arch/arm/mach-omap2/prm2xxx_3xxx.h
> -+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.h
> -@@ -313,6 +313,9 @@ extern int omap2_prm_deassert_hardreset(s16
> prm_mod, u8 rst_shift, u8 st_shift);
> - u32 omap3_prm_vp_check_txdone(u8 irq_id);
> - void omap3_prm_vp_clear_txdone(u8 irq_id);
> -
> -+/* OMAP36xx-specific ABB functions */
> -+u32 omap36xx_prm_abb_check_txdone(u8 irq_id);
> -+void omap36xx_prm_abb_clear_txdone(u8 irq_id);
> -
> - /*
> -  * OMAP3 access functions for voltage controller (VC) and
> -diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-
> omap2/prm44xx.c
> -index b77d331..dd3776c 100644
> ---- a/arch/arm/mach-omap2/prm44xx.c
> -+++ b/arch/arm/mach-omap2/prm44xx.c
> -@@ -59,25 +59,30 @@ u32 omap4_prm_rmw_inst_reg_bits(u32 mask, u32
> bits, s16 inst, s16 reg)
> - /*
> -  * struct omap4_prm_irq - OMAP4 VP register access description.
> -  * @irqstatus_mpu: offset to IRQSTATUS_MPU register for VP
> -- * @tranxdone_status: VP_TRANXDONE_ST bitmask in
> PRM_IRQSTATUS_MPU reg
> -+ * @vp_tranxdone_status: VP_TRANXDONE_ST bitmask in
> PRM_IRQSTATUS_MPU reg
> -+ * @abb_tranxdone_status: ABB_TRANXDONE_ST bitmask in
> PRM_IRQSTATUS_MPU reg
> -  */
> - struct omap4_prm_irq {
> - 	u32 irqstatus_mpu;
> --	u32 tranxdone_status;
> -+	u32 vp_tranxdone_status;
> -+	u32 abb_tranxdone_status;
> - };
> -
> - static struct omap4_prm_irq omap4_prm_irqs[] = {
> - 	[OMAP4_PRM_IRQ_VDD_MPU_ID] = {
> - 		.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_2_OFFSET,
> --		.tranxdone_status =
> OMAP4430_VP_MPU_TRANXDONE_ST_MASK,
> -+		.vp_tranxdone_status =
> OMAP4430_VP_MPU_TRANXDONE_ST_MASK,
> -+		.abb_tranxdone_status =
> OMAP4430_ABB_MPU_DONE_ST_MASK
> - 	},
> - 	[OMAP4_PRM_IRQ_VDD_IVA_ID] = {
> - 		.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> --		.tranxdone_status =
> OMAP4430_VP_IVA_TRANXDONE_ST_MASK,
> -+		.vp_tranxdone_status =
> OMAP4430_VP_IVA_TRANXDONE_ST_MASK,
> -+		.abb_tranxdone_status =
> OMAP4430_ABB_IVA_DONE_ST_MASK,
> - 	},
> - 	[OMAP4_PRM_IRQ_VDD_CORE_ID] = {
> - 		.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> --		.tranxdone_status =
> OMAP4430_VP_CORE_TRANXDONE_ST_MASK,
> -+		.vp_tranxdone_status =
> OMAP4430_VP_CORE_TRANXDONE_ST_MASK,
> -+		/* Core has no ABB */
> - 	},
> - };
> -
> -@@ -89,19 +94,40 @@ u32 omap4_prm_vp_check_txdone(u8 irq_id)
> - 	irqstatus =
> omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
> -
> 	OMAP4430_PRM_OCP_SOCKET_INST,
> - 						irq->irqstatus_mpu);
> --	return irqstatus & irq->tranxdone_status;
> -+	return irqstatus & irq->vp_tranxdone_status;
> - }
> -
> - void omap4_prm_vp_clear_txdone(u8 irq_id)
> - {
> - 	struct omap4_prm_irq *irq = &omap4_prm_irqs[irq_id];
> -
> --	omap4_prminst_write_inst_reg(irq->tranxdone_status,
> -+	omap4_prminst_write_inst_reg(irq->vp_tranxdone_status,
> - 				     OMAP4430_PRM_PARTITION,
> - 				     OMAP4430_PRM_OCP_SOCKET_INST,
> - 				     irq->irqstatus_mpu);
> - };
> -
> -+u32 omap4_prm_abb_check_txdone(u8 irq_id)
> -+{
> -+	struct omap4_prm_irq *irq = &omap4_prm_irqs[irq_id];
> -+	u32 irqstatus;
> -+
> -+	irqstatus =
> omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
> -+
> 	OMAP4430_PRM_OCP_SOCKET_INST,
> -+						irq->irqstatus_mpu);
> -+	return irqstatus & irq->abb_tranxdone_status;
> -+}
> -+
> -+void omap4_prm_abb_clear_txdone(u8 irq_id)
> -+{
> -+	struct omap4_prm_irq *irq = &omap4_prm_irqs[irq_id];
> -+
> -+	omap4_prminst_write_inst_reg(irq->abb_tranxdone_status,
> -+				     OMAP4430_PRM_PARTITION,
> -+				     OMAP4430_PRM_OCP_SOCKET_INST,
> -+				     irq->irqstatus_mpu);
> -+}
> -+
> - u32 omap4_prm_vcvp_read(u8 offset)
> - {
> - 	return omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
> -diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-
> omap2/prm44xx.h
> -index 858ee53..8ce3207 100644
> ---- a/arch/arm/mach-omap2/prm44xx.h
> -+++ b/arch/arm/mach-omap2/prm44xx.h
> -@@ -757,6 +757,9 @@ extern u32 omap4_prm_rmw_inst_reg_bits(u32
> mask, u32 bits, s16 inst, s16 idx);
> - /* OMAP4-specific VP functions */
> - u32 omap4_prm_vp_check_txdone(u8 irq_id);
> - void omap4_prm_vp_clear_txdone(u8 irq_id);
> -+/* OMAP4-specific ABB functions */
> -+u32 omap4_prm_abb_check_txdone(u8 irq_id);
> -+void omap4_prm_abb_clear_txdone(u8 irq_id);
> -
> - /*
> -  * OMAP4 access functions for voltage controller (VC) and
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0/bias/0004-OMAP3-ABB-Adaptive-
> Body-Bias-structures-data.patch b/recipes-kernel/linux/linux-3.0/bias/0004-
> OMAP3-ABB-Adaptive-Body-Bias-structures-data.patch
> deleted file mode 100644
> index 8d86ccf..0000000
> --- a/recipes-kernel/linux/linux-3.0/bias/0004-OMAP3-ABB-Adaptive-Body-Bias-
> structures-data.patch
> +++ /dev/null
> @@ -1,240 +0,0 @@
> -From a0a304bd0a2255bc661933ef23b3a0860fbee69d Mon Sep 17 00:00:00
> 2001
> -From: Mike Turquette <mturquette at ti.com>
> -Date: Wed, 29 Jun 2011 17:25:56 -0700
> -Subject: [PATCH 4/8] OMAP3+: ABB: Adaptive Body-Bias structures & data
> -
> -Due to voltage domain trimming and silicon characterstics some silicon
> -may experience instability when operating at a high voltage.  To
> -compensate for this an Adaptive Body-Bias ldo exists.  First featured in
> -OMAP3630, the purpose of this ldo is to provide a voltage boost to PMOS
> -backgates when a voltage domain is operating at a high OPP.  In this
> -mode the ldo is said to be in Forward Body-Bias.  At OPPs within a
> -nominal voltage range the ABB ldo is bypassed.
> -
> -This patch introduces the data structures needed to represent the ABB
> -ldo's in the voltage layer, and populates the appropriate data for 3630
> -and OMAP4.  Not all voltage domains have an ABB ldo, and OMAP34xx does
> -not have it at all; in such cases the voltage data will be marked with
> -OMAP_ABB_NO_LDO.
> -
> -Signed-off-by: Mike Turquette <mturquette at ti.com>
> ----
> - arch/arm/mach-omap2/Makefile       |    5 +-
> - arch/arm/mach-omap2/abb.h          |   85
> ++++++++++++++++++++++++++++++++++++
> - arch/arm/mach-omap2/abb36xx_data.c |   38 ++++++++++++++++
> - arch/arm/mach-omap2/abb44xx_data.c |   44 ++++++++++++++++++
> - 4 files changed, 170 insertions(+), 2 deletions(-)
> - create mode 100644 arch/arm/mach-omap2/abb.h
> - create mode 100644 arch/arm/mach-omap2/abb36xx_data.c
> - create mode 100644 arch/arm/mach-omap2/abb44xx_data.c
> -
> -diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-
> omap2/Makefile
> -index 7927dd6..5bc306c 100644
> ---- a/arch/arm/mach-omap2/Makefile
> -+++ b/arch/arm/mach-omap2/Makefile
> -@@ -82,14 +82,15 @@ endif
> - # PRCM
> - obj-$(CONFIG_ARCH_OMAP2)		+= prcm.o cm2xxx_3xxx.o
> prm2xxx_3xxx.o
> - obj-$(CONFIG_ARCH_OMAP3)		+= prcm.o cm2xxx_3xxx.o
> prm2xxx_3xxx.o \
> --					   vc3xxx_data.o vp3xxx_data.o
> -+					   vc3xxx_data.o vp3xxx_data.o \
> -+					   abb36xx_data.o
> - # XXX The presence of cm2xxx_3xxx.o on the line below is temporary and
> - # will be removed once the OMAP4 part of the codebase is converted to
> - # use OMAP4-specific PRCM functions.
> - obj-$(CONFIG_ARCH_OMAP4)		+= prcm.o cm2xxx_3xxx.o
> cminst44xx.o \
> - 					   cm44xx.o prcm_mpu44xx.o \
> - 					   prminst44xx.o vc44xx_data.o \
> --					   vp44xx_data.o
> -+					   vp44xx_data.o abb44xx_data.o
> -
> - # OMAP voltage domains
> - ifeq ($(CONFIG_PM),y)
> -diff --git a/arch/arm/mach-omap2/abb.h b/arch/arm/mach-omap2/abb.h
> -new file mode 100644
> -index 0000000..74f2044
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/abb.h
> -@@ -0,0 +1,85 @@
> -+/*
> -+ * OMAP Adaptive Body-Bias structure and macro definitions
> -+ *
> -+ * Copyright (C) 2011 Texas Instruments, Inc.
> -+ * Mike Turquette <mturquette at ti.com>
> -+ *
> -+ * This program is free software; you can redistribute it and/or modify
> -+ * it under the terms of the GNU General Public License version 2 as
> -+ * published by the Free Software Foundation.
> -+ */
> -+
> -+#ifndef __ARCH_ARM_MACH_OMAP2_ABB_H
> -+#define __ARCH_ARM_MACH_OMAP2_ABB_H
> -+
> -+#include <linux/kernel.h>
> -+
> -+#include "voltage.h"
> -+
> -+/* NOMINAL_OPP bypasses the ABB ldo, FAST_OPP sets it to Forward Body-
> Bias */
> -+#define OMAP_ABB_NOMINAL_OPP	0
> -+#define OMAP_ABB_FAST_OPP	1
> -+#define OMAP_ABB_NO_LDO		~0
> -+
> -+/* Time for the ABB ldo to settle after transition (in micro-seconds) */
> -+#define ABB_TRANXDONE_TIMEOUT	50
> -+
> -+/*
> -+ * struct omap_abb_ops - per-OMAP operations needed for ABB transition
> -+ *
> -+ * @check_tranxdone: return status of ldo transition from PRM_IRQSTATUS
> -+ * @clear_tranxdone: clear ABB transition status bit from PRM_IRQSTATUS
> -+ */
> -+struct omap_abb_ops {
> -+	u32 (*check_tranxdone)(u8 irq_id);
> -+	void (*clear_tranxdone)(u8 irq_id);
> -+};
> -+
> -+/*
> -+ * struct omap_abb_common - ABB data common to an OMAP family
> -+ *
> -+ * @opp_sel_mask: CTRL reg uses this to program next state of ldo
> -+ * @opp_change_mask: CTRL reg uses this to initiate ldo state change
> -+ * @sr2_wtcnt_value_mask: SETUP reg uses this to program ldo settling time
> -+ * @sr2en_mask: SETUP reg uses this to enable/disable ldo
> -+ * @active_fbb_sel_mask: SETUP reg uses this to enable/disable FBB
> operation
> -+ * @settling_time: number of micro-seconds it takes for ldo to transition
> -+ * @clock_cycles: settling_time is counted in multiples of clock cycles
> -+ * @ops: pointer to common ops for manipulating PRM_IRQSTATUS bits
> -+ */
> -+struct omap_abb_common {
> -+	u32 opp_sel_mask;
> -+	u32 opp_change_mask;
> -+	u32 sr2_wtcnt_value_mask;
> -+	u32 sr2en_mask;
> -+	u32 active_fbb_sel_mask;
> -+	unsigned long settling_time;
> -+	unsigned long clock_cycles;
> -+	const struct omap_abb_ops *ops;
> -+};
> -+
> -+/*
> -+ * struct omap_abb_instance - data for each instance of ABB ldo
> -+ *
> -+ * @setup_offs: PRM register offset for initial configuration of ABB ldo
> -+ * @ctrl_offs: PRM register offset for active programming of ABB ldo
> -+ * @prm_irq_id: IRQ handle used to resolve IRQSTATUS offset & masks
> -+ * @enabled: track whether ABB ldo is enabled or disabled
> -+ * @common: pointer to common data for all ABB ldo's
> -+ * @_opp_sel: internally track last programmed state of ABB ldo.  DO NOT
> USE
> -+ */
> -+struct omap_abb_instance {
> -+	u8 setup_offs;
> -+	u8 ctrl_offs;
> -+	u8 prm_irq_id;
> -+	bool enabled;
> -+	const struct omap_abb_common *common;
> -+	u8 _opp_sel;
> -+};
> -+
> -+extern struct omap_abb_instance omap36xx_abb_mpu;
> -+
> -+extern struct omap_abb_instance omap4_abb_mpu;
> -+extern struct omap_abb_instance omap4_abb_iva;
> -+
> -+#endif
> -diff --git a/arch/arm/mach-omap2/abb36xx_data.c b/arch/arm/mach-
> omap2/abb36xx_data.c
> -new file mode 100644
> -index 0000000..0bcfd66
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/abb36xx_data.c
> -@@ -0,0 +1,38 @@
> -+/*
> -+ * OMAP36xx Adaptive Body-Bias (ABB) data
> -+ *
> -+ * Copyright (C) 2011 Texas Instruments, Inc.
> -+ * Mike Turquette <mturquette at ti.com>
> -+ *
> -+ * This program is free software; you can redistribute it and/or modify
> -+ * it under the terms of the GNU General Public License version 2 as
> -+ * published by the Free Software Foundation.
> -+ */
> -+
> -+#include "abb.h"
> -+#include "prm2xxx_3xxx.h"
> -+#include "prm-regbits-34xx.h"
> -+
> -+static const struct omap_abb_ops omap36xx_abb_ops = {
> -+	.check_tranxdone   = &omap36xx_prm_abb_check_txdone,
> -+	.clear_tranxdone   = &omap36xx_prm_abb_clear_txdone,
> -+};
> -+
> -+static const struct omap_abb_common omap36xx_abb_common = {
> -+	.opp_sel_mask		= OMAP3630_OPP_SEL_MASK,
> -+	.opp_change_mask	= OMAP3630_OPP_CHANGE_MASK,
> -+	.sr2en_mask		= OMAP3630_SR2EN_MASK,
> -+	.active_fbb_sel_mask	= OMAP3630_ACTIVE_FBB_SEL_MASK,
> -+	.sr2_wtcnt_value_mask	= OMAP3630_SR2_WTCNT_VALUE_MASK,
> -+	.settling_time		= 30,
> -+	.clock_cycles		= 8,
> -+	.ops			= &omap36xx_abb_ops,
> -+};
> -+
> -+/* SETUP & CTRL registers swapped names in OMAP4; thus 36xx looks strange
> */
> -+struct omap_abb_instance omap36xx_abb_mpu = {
> -+	.setup_offs		= OMAP3_PRM_LDO_ABB_CTRL_OFFSET,
> -+	.ctrl_offs		= OMAP3_PRM_LDO_ABB_SETUP_OFFSET,
> -+	.prm_irq_id		= OMAP3_PRM_IRQ_VDD_MPU_ID,
> -+	.common			= &omap36xx_abb_common,
> -+};
> -diff --git a/arch/arm/mach-omap2/abb44xx_data.c b/arch/arm/mach-
> omap2/abb44xx_data.c
> -new file mode 100644
> -index 0000000..a7cf855
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/abb44xx_data.c
> -@@ -0,0 +1,44 @@
> -+/*
> -+ * OMAP44xx Adaptive Body-Bias (ABB) data
> -+ *
> -+ * Copyright (C) 2011 Texas Instruments, Inc.
> -+ * Mike Turquette <mturquette at ti.com>
> -+ *
> -+ * This program is free software; you can redistribute it and/or modify
> -+ * it under the terms of the GNU General Public License version 2 as
> -+ * published by the Free Software Foundation.
> -+ */
> -+
> -+#include "abb.h"
> -+#include "prm44xx.h"
> -+#include "prm-regbits-44xx.h"
> -+
> -+static const struct omap_abb_ops omap4_abb_ops = {
> -+	.check_tranxdone   = &omap4_prm_abb_check_txdone,
> -+	.clear_tranxdone   = &omap4_prm_abb_clear_txdone,
> -+};
> -+
> -+static const struct omap_abb_common omap4_abb_common = {
> -+	.opp_sel_mask		= OMAP4430_OPP_SEL_MASK,
> -+	.opp_change_mask	= OMAP4430_OPP_CHANGE_MASK,
> -+	.sr2en_mask		= OMAP4430_SR2EN_MASK,
> -+	.active_fbb_sel_mask	= OMAP4430_ACTIVE_FBB_SEL_MASK,
> -+	.sr2_wtcnt_value_mask	= OMAP4430_SR2_WTCNT_VALUE_MASK,
> -+	.settling_time		= 50,
> -+	.clock_cycles		= 16,
> -+	.ops			= &omap4_abb_ops,
> -+};
> -+
> -+struct omap_abb_instance omap4_abb_mpu = {
> -+	.setup_offs		=
> OMAP4_PRM_LDO_ABB_MPU_SETUP_OFFSET,
> -+	.ctrl_offs		=
> OMAP4_PRM_LDO_ABB_MPU_CTRL_OFFSET,
> -+	.prm_irq_id		= OMAP4_PRM_IRQ_VDD_MPU_ID,
> -+	.common			= &omap4_abb_common,
> -+};
> -+
> -+struct omap_abb_instance omap4_abb_iva = {
> -+	.setup_offs		=
> OMAP4_PRM_LDO_ABB_IVA_SETUP_OFFSET,
> -+	.ctrl_offs		=
> OMAP4_PRM_LDO_ABB_IVA_CTRL_OFFSET,
> -+	.prm_irq_id		= OMAP4_PRM_IRQ_VDD_IVA_ID,
> -+	.common			= &omap4_abb_common,
> -+};
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0/bias/0005-OMAP3-OPP-add-ABB-
> data-to-voltage-tables.patch b/recipes-kernel/linux/linux-3.0/bias/0005-
> OMAP3-OPP-add-ABB-data-to-voltage-tables.patch
> deleted file mode 100644
> index eb959ff..0000000
> --- a/recipes-kernel/linux/linux-3.0/bias/0005-OMAP3-OPP-add-ABB-data-to-
> voltage-tables.patch
> +++ /dev/null
> @@ -1,194 +0,0 @@
> -From 8d85fedcb9866f5041e2c63b54d3eff7fd88cf18 Mon Sep 17 00:00:00
> 2001
> -From: Mike Turquette <mturquette at ti.com>
> -Date: Wed, 29 Jun 2011 17:25:57 -0700
> -Subject: [PATCH 5/8] OMAP3+: OPP: add ABB data to voltage tables
> -
> -The operating mode of the Adaptive Body-Bias ldo maps directly to the
> -voltage of its voltage domain.  The two modes supported are bypass and
> -Forward Body-Bias (FBB).
> -
> -This patch models this relationship by adding an opp_sel paramter to
> -struct omap_volt_data and populates this type in the 3630 and 4430
> -voltage tables.
> -
> -NOMINAL_OPP causes the ABB ldo to be in bypass at that specific voltage.
> -FAST_OPP causes the ldo to operate in Forward Body-Bias mode.
> -
> -Not all voltage domains have an ABB ldo and 3430 doesn't have one at
> -all.  In such cases voltages are marked with OMAP_ABB_NO_LDO.
> -
> -Signed-off-by: Mike Turquette <mturquette at ti.com>
> ----
> - arch/arm/mach-omap2/omap_opp_data.h |    5 ++-
> - arch/arm/mach-omap2/opp3xxx_data.c  |   37 ++++++++++++++++++----------
> -------
> - arch/arm/mach-omap2/opp4xxx_data.c  |   25 ++++++++++++-----------
> - arch/arm/mach-omap2/voltage.h       |    1 +
> - 4 files changed, 36 insertions(+), 32 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_opp_data.h b/arch/arm/mach-
> omap2/omap_opp_data.h
> -index c784c12..5dd4dea 100644
> ---- a/arch/arm/mach-omap2/omap_opp_data.h
> -+++ b/arch/arm/mach-omap2/omap_opp_data.h
> -@@ -71,12 +71,13 @@ struct omap_opp_def {
> -  * Initialization wrapper used to define SmartReflex process data
> -  * XXX Is this needed?  Just use C99 initializers in data files?
> -  */
> --#define VOLT_DATA_DEFINE(_v_nom, _efuse_offs, _errminlimit, _errgain)  \
> -+#define VOLT_DATA_DEFINE(_v_nom, _efuse_offs, _errminlimit, _errgain,
> _opp_sel) \
> - {								       \
> - 	.volt_nominal	= _v_nom,				       \
> - 	.sr_efuse_offs	= _efuse_offs,				       \
> - 	.sr_errminlimit = _errminlimit,				       \
> --	.vp_errgain	= _errgain				       \
> -+	.vp_errgain	= _errgain,				       \
> -+	.opp_sel	= _opp_sel				       \
> - }
> -
> - /* Use this to initialize the default table */
> -diff --git a/arch/arm/mach-omap2/opp3xxx_data.c b/arch/arm/mach-
> omap2/opp3xxx_data.c
> -index d95f3f9..12fc2da 100644
> ---- a/arch/arm/mach-omap2/opp3xxx_data.c
> -+++ b/arch/arm/mach-omap2/opp3xxx_data.c
> -@@ -24,6 +24,7 @@
> - #include "control.h"
> - #include "omap_opp_data.h"
> - #include "pm.h"
> -+#include "abb.h"
> -
> - /* 34xx */
> -
> -@@ -36,12 +37,12 @@
> - #define OMAP3430_VDD_MPU_OPP5_UV		1350000
> -
> - struct omap_volt_data omap34xx_vddmpu_volt_data[] = {
> --	VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP1_UV,
> OMAP343X_CONTROL_FUSE_OPP1_VDD1, 0xf4, 0x0c),
> --	VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP2_UV,
> OMAP343X_CONTROL_FUSE_OPP2_VDD1, 0xf4, 0x0c),
> --	VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP3_UV,
> OMAP343X_CONTROL_FUSE_OPP3_VDD1, 0xf9, 0x18),
> --	VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP4_UV,
> OMAP343X_CONTROL_FUSE_OPP4_VDD1, 0xf9, 0x18),
> --	VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP5_UV,
> OMAP343X_CONTROL_FUSE_OPP5_VDD1, 0xf9, 0x18),
> --	VOLT_DATA_DEFINE(0, 0, 0, 0),
> -+	VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP1_UV,
> OMAP343X_CONTROL_FUSE_OPP1_VDD1, 0xf4, 0x0c, OMAP_ABB_NO_LDO),
> -+	VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP2_UV,
> OMAP343X_CONTROL_FUSE_OPP2_VDD1, 0xf4, 0x0c, OMAP_ABB_NO_LDO),
> -+	VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP3_UV,
> OMAP343X_CONTROL_FUSE_OPP3_VDD1, 0xf9, 0x18, OMAP_ABB_NO_LDO),
> -+	VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP4_UV,
> OMAP343X_CONTROL_FUSE_OPP4_VDD1, 0xf9, 0x18, OMAP_ABB_NO_LDO),
> -+	VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP5_UV,
> OMAP343X_CONTROL_FUSE_OPP5_VDD1, 0xf9, 0x18, OMAP_ABB_NO_LDO),
> -+	VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
> - };
> -
> - /* VDD2 */
> -@@ -51,10 +52,10 @@ struct omap_volt_data
> omap34xx_vddmpu_volt_data[] = {
> - #define OMAP3430_VDD_CORE_OPP3_UV		1150000
> -
> - struct omap_volt_data omap34xx_vddcore_volt_data[] = {
> --	VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP1_UV,
> OMAP343X_CONTROL_FUSE_OPP1_VDD2, 0xf4, 0x0c),
> --	VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP2_UV,
> OMAP343X_CONTROL_FUSE_OPP2_VDD2, 0xf4, 0x0c),
> --	VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP3_UV,
> OMAP343X_CONTROL_FUSE_OPP3_VDD2, 0xf9, 0x18),
> --	VOLT_DATA_DEFINE(0, 0, 0, 0),
> -+	VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP1_UV,
> OMAP343X_CONTROL_FUSE_OPP1_VDD2, 0xf4, 0x0c, OMAP_ABB_NO_LDO),
> -+	VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP2_UV,
> OMAP343X_CONTROL_FUSE_OPP2_VDD2, 0xf4, 0x0c, OMAP_ABB_NO_LDO),
> -+	VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP3_UV,
> OMAP343X_CONTROL_FUSE_OPP3_VDD2, 0xf9, 0x18, OMAP_ABB_NO_LDO),
> -+	VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
> - };
> -
> - /* 36xx */
> -@@ -67,11 +68,11 @@ struct omap_volt_data
> omap34xx_vddcore_volt_data[] = {
> - #define OMAP3630_VDD_MPU_OPP1G_UV		1375000
> -
> - struct omap_volt_data omap36xx_vddmpu_volt_data[] = {
> --	VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP50_UV,
> OMAP3630_CONTROL_FUSE_OPP50_VDD1, 0xf4, 0x0c),
> --	VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP100_UV,
> OMAP3630_CONTROL_FUSE_OPP100_VDD1, 0xf9, 0x16),
> --	VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP120_UV,
> OMAP3630_CONTROL_FUSE_OPP120_VDD1, 0xfa, 0x23),
> --	VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP1G_UV,
> OMAP3630_CONTROL_FUSE_OPP1G_VDD1, 0xfa, 0x27),
> --	VOLT_DATA_DEFINE(0, 0, 0, 0),
> -+	VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP50_UV,
> OMAP3630_CONTROL_FUSE_OPP50_VDD1, 0xf4, 0x0c,
> OMAP_ABB_NOMINAL_OPP),
> -+	VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP100_UV,
> OMAP3630_CONTROL_FUSE_OPP100_VDD1, 0xf9, 0x16,
> OMAP_ABB_NOMINAL_OPP),
> -+	VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP120_UV,
> OMAP3630_CONTROL_FUSE_OPP120_VDD1, 0xfa, 0x23,
> OMAP_ABB_NOMINAL_OPP),
> -+	VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP1G_UV,
> OMAP3630_CONTROL_FUSE_OPP1G_VDD1, 0xfa, 0x27,
> OMAP_ABB_FAST_OPP),
> -+	VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
> - };
> -
> - /* VDD2 */
> -@@ -80,9 +81,9 @@ struct omap_volt_data omap36xx_vddmpu_volt_data[]
> = {
> - #define OMAP3630_VDD_CORE_OPP100_UV		1200000
> -
> - struct omap_volt_data omap36xx_vddcore_volt_data[] = {
> --	VOLT_DATA_DEFINE(OMAP3630_VDD_CORE_OPP50_UV,
> OMAP3630_CONTROL_FUSE_OPP50_VDD2, 0xf4, 0x0c),
> --	VOLT_DATA_DEFINE(OMAP3630_VDD_CORE_OPP100_UV,
> OMAP3630_CONTROL_FUSE_OPP100_VDD2, 0xf9, 0x16),
> --	VOLT_DATA_DEFINE(0, 0, 0, 0),
> -+	VOLT_DATA_DEFINE(OMAP3630_VDD_CORE_OPP50_UV,
> OMAP3630_CONTROL_FUSE_OPP50_VDD2, 0xf4, 0x0c,
> OMAP_ABB_NO_LDO),
> -+	VOLT_DATA_DEFINE(OMAP3630_VDD_CORE_OPP100_UV,
> OMAP3630_CONTROL_FUSE_OPP100_VDD2, 0xf9, 0x16,
> OMAP_ABB_NO_LDO),
> -+	VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
> - };
> -
> - /* OPP data */
> -diff --git a/arch/arm/mach-omap2/opp4xxx_data.c b/arch/arm/mach-
> omap2/opp4xxx_data.c
> -index 2293ba2..efdbf91 100644
> ---- a/arch/arm/mach-omap2/opp4xxx_data.c
> -+++ b/arch/arm/mach-omap2/opp4xxx_data.c
> -@@ -25,6 +25,7 @@
> - #include "control.h"
> - #include "omap_opp_data.h"
> - #include "pm.h"
> -+#include "abb.h"
> -
> - /*
> -  * Structures containing OMAP4430 voltage supported and various
> -@@ -37,11 +38,11 @@
> - #define OMAP4430_VDD_MPU_OPPNITRO_UV		1375000
> -
> - struct omap_volt_data omap44xx_vdd_mpu_volt_data[] = {
> --	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP50_UV,
> OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c),
> --	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP100_UV,
> OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16),
> --	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPTURBO_UV,
> OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23),
> --	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPNITRO_UV,
> OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27),
> --	VOLT_DATA_DEFINE(0, 0, 0, 0),
> -+	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP50_UV,
> OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c,
> OMAP_ABB_NOMINAL_OPP),
> -+	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP100_UV,
> OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16,
> OMAP_ABB_NOMINAL_OPP),
> -+	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPTURBO_UV,
> OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23,
> OMAP_ABB_NOMINAL_OPP),
> -+	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPNITRO_UV,
> OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27,
> OMAP_ABB_FAST_OPP),
> -+	VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
> - };
> -
> - #define OMAP4430_VDD_IVA_OPP50_UV		1013000
> -@@ -49,19 +50,19 @@ struct omap_volt_data
> omap44xx_vdd_mpu_volt_data[] = {
> - #define OMAP4430_VDD_IVA_OPPTURBO_UV		1300000
> -
> - struct omap_volt_data omap44xx_vdd_iva_volt_data[] = {
> --	VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP50_UV,
> OMAP44XX_CONTROL_FUSE_IVA_OPP50, 0xf4, 0x0c),
> --	VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP100_UV,
> OMAP44XX_CONTROL_FUSE_IVA_OPP100, 0xf9, 0x16),
> --	VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPPTURBO_UV,
> OMAP44XX_CONTROL_FUSE_IVA_OPPTURBO, 0xfa, 0x23),
> --	VOLT_DATA_DEFINE(0, 0, 0, 0),
> -+	VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP50_UV,
> OMAP44XX_CONTROL_FUSE_IVA_OPP50, 0xf4, 0x0c,
> OMAP_ABB_NOMINAL_OPP),
> -+	VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP100_UV,
> OMAP44XX_CONTROL_FUSE_IVA_OPP100, 0xf9, 0x16,
> OMAP_ABB_NOMINAL_OPP),
> -+	VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPPTURBO_UV,
> OMAP44XX_CONTROL_FUSE_IVA_OPPTURBO, 0xfa, 0x23,
> OMAP_ABB_NOMINAL_OPP),
> -+	VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
> - };
> -
> - #define OMAP4430_VDD_CORE_OPP50_UV		1025000
> - #define OMAP4430_VDD_CORE_OPP100_UV		1200000
> -
> - struct omap_volt_data omap44xx_vdd_core_volt_data[] = {
> --	VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP50_UV,
> OMAP44XX_CONTROL_FUSE_CORE_OPP50, 0xf4, 0x0c),
> --	VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP100_UV,
> OMAP44XX_CONTROL_FUSE_CORE_OPP100, 0xf9, 0x16),
> --	VOLT_DATA_DEFINE(0, 0, 0, 0),
> -+	VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP50_UV,
> OMAP44XX_CONTROL_FUSE_CORE_OPP50, 0xf4, 0x0c,
> OMAP_ABB_NO_LDO),
> -+	VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP100_UV,
> OMAP44XX_CONTROL_FUSE_CORE_OPP100, 0xf9, 0x16,
> OMAP_ABB_NO_LDO),
> -+	VOLT_DATA_DEFINE(0, 0, 0, 0, 0),
> - };
> -
> -
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index b4c6259..2aa6c43 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -105,6 +105,7 @@ struct omap_volt_data {
> - 	u32	sr_efuse_offs;
> - 	u8	sr_errminlimit;
> - 	u8	vp_errgain;
> -+	u32	opp_sel;
> - };
> -
> - /**
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0/bias/0006-OMAP3-Voltage-add-ABB-
> data-to-voltage-domains.patch b/recipes-kernel/linux/linux-3.0/bias/0006-
> OMAP3-Voltage-add-ABB-data-to-voltage-domains.patch
> deleted file mode 100644
> index 3850fea..0000000
> --- a/recipes-kernel/linux/linux-3.0/bias/0006-OMAP3-Voltage-add-ABB-data-
> to-voltage-domains.patch
> +++ /dev/null
> @@ -1,83 +0,0 @@
> -From 4a0f2caa6d49e185eac84e361ee4b40783ffeb16 Mon Sep 17 00:00:00
> 2001
> -From: Mike Turquette <mturquette at ti.com>
> -Date: Thu, 21 Jul 2011 12:31:50 +0200
> -Subject: [PATCH 6/8] OMAP3+: Voltage: add ABB data to voltage domains
> -
> -Starting with OMAP36xx, some voltage domains have an ABB ldo meant to
> -insure stability when that voltage domain is operating at a high OPP.
> -
> -This patch adds struct omap_abb_instance to struct voltagedomain and
> -populates the data for those voltage domains that have an ABB ldo on
> -both 36xx and 44xx silicon.
> -
> -Signed-off-by: Mike Turquette <mturquette at ti.com>
> ----
> - arch/arm/mach-omap2/voltage.h                 |    1 +
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |    3 +++
> - arch/arm/mach-omap2/voltagedomains44xx_data.c |    3 +++
> - 3 files changed, 7 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 2aa6c43..4fe35d7 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -69,6 +69,7 @@ struct voltagedomain {
> - 	struct omap_vc_channel *vc;
> - 	const struct omap_vfsm_instance *vfsm;
> - 	struct omap_vp_instance *vp;
> -+	struct omap_abb_instance *abb;
> - 	struct omap_voltdm_pmic *pmic;
> -
> - 	/* VC/VP register access functions: SoC specific */
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index b0d0ae1..cdcfbdf 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -26,6 +26,7 @@
> - #include "voltage.h"
> - #include "vc.h"
> - #include "vp.h"
> -+#include "abb.h"
> -
> - /*
> -  * VDD data
> -@@ -90,6 +91,8 @@ void __init omap3xxx_voltagedomains_init(void)
> - 	if (cpu_is_omap3630()) {
> - 		omap3_voltdm_mpu.volt_data =
> omap36xx_vddmpu_volt_data;
> - 		omap3_voltdm_core.volt_data =
> omap36xx_vddcore_volt_data;
> -+
> -+		omap3_voltdm_mpu.abb = &omap36xx_abb_mpu;
> - 	} else {
> - 		omap3_voltdm_mpu.volt_data =
> omap34xx_vddmpu_volt_data;
> - 		omap3_voltdm_core.volt_data =
> omap34xx_vddcore_volt_data;
> -diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -index c4584e9..11e2458 100644
> ---- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -@@ -31,6 +31,7 @@
> - #include "omap_opp_data.h"
> - #include "vc.h"
> - #include "vp.h"
> -+#include "abb.h"
> -
> - static const struct omap_vfsm_instance omap4_vdd_mpu_vfsm = {
> - 	.voltsetup_reg = OMAP4_PRM_VOLTSETUP_MPU_RET_SLEEP_OFFSET,
> -@@ -53,6 +54,7 @@ static struct voltagedomain omap4_voltdm_mpu = {
> - 	.vc = &omap4_vc_mpu,
> - 	.vfsm = &omap4_vdd_mpu_vfsm,
> - 	.vp = &omap4_vp_mpu,
> -+	.abb = &omap4_abb_mpu,
> - };
> -
> - static struct voltagedomain omap4_voltdm_iva = {
> -@@ -64,6 +66,7 @@ static struct voltagedomain omap4_voltdm_iva = {
> - 	.vc = &omap4_vc_iva,
> - 	.vfsm = &omap4_vdd_iva_vfsm,
> - 	.vp = &omap4_vp_iva,
> -+	.abb = &omap4_abb_iva,
> - };
> -
> - static struct voltagedomain omap4_voltdm_core = {
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0/bias/0007-OMAP3-ABB-initialization-
> transition-functions.patch b/recipes-kernel/linux/linux-3.0/bias/0007-OMAP3-
> ABB-initialization-transition-functions.patch
> deleted file mode 100644
> index 88858cf..0000000
> --- a/recipes-kernel/linux/linux-3.0/bias/0007-OMAP3-ABB-initialization-
> transition-functions.patch
> +++ /dev/null
> @@ -1,274 +0,0 @@
> -From 35fc68e090a4f4241c7b3488fd24e82b3f839994 Mon Sep 17 00:00:00
> 2001
> -From: Mike Turquette <mturquette at ti.com>
> -Date: Wed, 29 Jun 2011 17:25:59 -0700
> -Subject: [PATCH 7/8] OMAP3+: ABB: initialization & transition functions
> -
> -The Adaptive Body-Bias ldo can be set to bypass or Forward Body-Bias
> -after voltage scaling is performed.
> -
> -This patch implements the Adaptive Body-Bias ldo initialization routine
> -and the transition sequence which is needed after a vc_bypass or
> -vp_forceupdate sequence completes.
> -
> -Signed-off-by: Mike Turquette <mturquette at ti.com>
> ----
> - arch/arm/mach-omap2/Makefile |    2 +-
> - arch/arm/mach-omap2/abb.c    |  218
> ++++++++++++++++++++++++++++++++++++++++++
> - arch/arm/mach-omap2/abb.h    |    5 +
> - 3 files changed, 224 insertions(+), 1 deletions(-)
> - create mode 100644 arch/arm/mach-omap2/abb.c
> -
> -diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-
> omap2/Makefile
> -index 5bc306c..d0dd488 100644
> ---- a/arch/arm/mach-omap2/Makefile
> -+++ b/arch/arm/mach-omap2/Makefile
> -@@ -94,7 +94,7 @@ obj-$(CONFIG_ARCH_OMAP4)		+= prcm.o
> cm2xxx_3xxx.o cminst44xx.o \
> -
> - # OMAP voltage domains
> - ifeq ($(CONFIG_PM),y)
> --voltagedomain-common			:= voltage.o vc.o vp.o
> -+voltagedomain-common			:= voltage.o vc.o vp.o abb.o
> - obj-$(CONFIG_ARCH_OMAP2)		+= $(voltagedomain-common) \
> - 					   voltagedomains2xxx_data.o
> - obj-$(CONFIG_ARCH_OMAP3)		+= $(voltagedomain-common) \
> -diff --git a/arch/arm/mach-omap2/abb.c b/arch/arm/mach-omap2/abb.c
> -new file mode 100644
> -index 0000000..4d42b67
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/abb.c
> -@@ -0,0 +1,218 @@
> -+/*
> -+ * OMAP Adaptive Body-Bias core
> -+ *
> -+ * Copyright (C) 2011 Texas Instruments, Inc.
> -+ * Mike Turquette <mturquette at ti.com>
> -+ *
> -+ * This program is free software; you can redistribute it and/or modify
> -+ * it under the terms of the GNU General Public License version 2 as
> -+ * published by the Free Software Foundation.
> -+ */
> -+
> -+#include <linux/init.h>
> -+#include <linux/delay.h>
> -+
> -+#include "abb.h"
> -+#include "voltage.h"
> -+
> -+/*
> -+ * omap_abb_set_opp - program ABB ldo based on new voltage
> -+ *
> -+ * @voltdm - pointer to voltage domain that just finished scaling voltage
> -+ *
> -+ * Look up the ABB ldo state for the new voltage that voltdm just finished
> -+ * transitioning to and compare it to current ldo state.  If a change is needed
> -+ * then clear appropriate PRM_IRQSTATUS bit, transition ldo and then clear
> -+ * PRM_IRQSTATUS bit again.  Returns 0 on success, -EERROR otherwise.
> -+ */
> -+int omap_abb_set_opp(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_abb_instance *abb = voltdm->abb;
> -+	struct omap_volt_data *volt_data;
> -+	int ret, timeout;
> -+	u8 opp_sel;
> -+
> -+	/* fetch the ABB ldo OPP_SEL value for the new voltage */
> -+	volt_data = omap_voltage_get_voltdata(voltdm, voltdm-
> >nominal_volt);
> -+
> -+	if (IS_ERR_OR_NULL(volt_data))
> -+		return -EINVAL;
> -+
> -+	opp_sel = volt_data->opp_sel;
> -+
> -+	/* bail early if no transition is necessary */
> -+	if (opp_sel == abb->_opp_sel)
> -+		return 0;
> -+
> -+	/* clear interrupt status */
> -+	timeout = 0;
> -+	while (timeout++ < ABB_TRANXDONE_TIMEOUT) {
> -+		abb->common->ops->clear_tranxdone(abb->prm_irq_id);
> -+
> -+		ret = abb->common->ops->check_tranxdone(abb-
> >prm_irq_id);
> -+		if (!ret)
> -+			break;
> -+
> -+		udelay(1);
> -+	}
> -+
> -+	if (timeout>= ABB_TRANXDONE_TIMEOUT) {
> -+		pr_warning("%s: vdd_%s ABB TRANXDONE timeout\n",
> -+				__func__, voltdm->name);
> -+		return -ETIMEDOUT;
> -+	}
> -+
> -+	/* program next state of ABB ldo */
> -+	voltdm->rmw(abb->common->opp_sel_mask,
> -+			opp_sel << __ffs(abb->common->opp_sel_mask),
> -+			abb->ctrl_offs);
> -+
> -+	/* initiate ABB ldo change */
> -+	voltdm->rmw(abb->common->opp_change_mask,
> -+			abb->common->opp_change_mask,
> -+			abb->ctrl_offs);
> -+
> -+	/* clear interrupt status */
> -+	timeout = 0;
> -+	while (timeout++ < ABB_TRANXDONE_TIMEOUT) {
> -+		abb->common->ops->clear_tranxdone(abb->prm_irq_id);
> -+
> -+		ret = abb->common->ops->check_tranxdone(abb-
> >prm_irq_id);
> -+		if (!ret)
> -+			break;
> -+
> -+		udelay(1);
> -+	}
> -+
> -+	if (timeout>= ABB_TRANXDONE_TIMEOUT) {
> -+		pr_warning("%s: vdd_%s ABB TRANXDONE timeout\n",
> -+				__func__, voltdm->name);
> -+		return -ETIMEDOUT;
> -+	}
> -+
> -+	/* track internal state */
> -+	abb->_opp_sel = opp_sel;
> -+
> -+	return 0;
> -+}
> -+
> -+/*
> -+ * omap_abb_enable - enable ABB ldo on a particular voltage domain
> -+ *
> -+ * @voltdm - pointer to particular voltage domain
> -+ */
> -+void omap_abb_enable(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_abb_instance *abb = voltdm->abb;
> -+
> -+	if (abb->enabled)
> -+		return;
> -+
> -+	abb->enabled = true;
> -+
> -+	voltdm->rmw(abb->common->sr2en_mask, abb->common-
> >sr2en_mask,
> -+			abb->setup_offs);
> -+}
> -+
> -+/*
> -+ * omap_abb_disable - disable ABB ldo on a particular voltage domain
> -+ *
> -+ * @voltdm - pointer to particular voltage domain
> -+ *
> -+ * Included for completeness.  Not currently used but will be needed in the
> -+ * future if ABB is converted to a loadable module.
> -+ */
> -+void omap_abb_disable(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_abb_instance *abb = voltdm->abb;
> -+
> -+	if (!abb->enabled)
> -+		return;
> -+
> -+	abb->enabled = false;
> -+
> -+	voltdm->rmw(abb->common->sr2en_mask,
> -+			(0 << __ffs(abb->common->sr2en_mask)),
> -+			abb->setup_offs);
> -+}
> -+
> -+/*
> -+ * omap_abb_init - Initialize an ABB ldo instance
> -+ *
> -+ * @voltdm: voltage domain upon which ABB ldo resides
> -+ *
> -+ * Initializes an individual ABB ldo for Forward Body-Bias.  FBB is used to
> -+ * insure stability at higher voltages.  Note that some older OMAP chips have a
> -+ * Reverse Body-Bias mode meant to save power at low voltage, but that
> mode is
> -+ * unsupported and phased out on newer chips.
> -+ */
> -+void __init omap_abb_init(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_abb_instance *abb = voltdm->abb;
> -+	u32 sys_clk_rate;
> -+	u32 sr2_wt_cnt_val;
> -+	u32 clock_cycles;
> -+	u32 settling_time;
> -+	u32 val;
> -+
> -+	if(IS_ERR_OR_NULL(abb))
> -+		return;
> -+
> -+	/*
> -+	 * SR2_WTCNT_VALUE is the settling time for the ABB ldo after a
> -+	 * transition and must be programmed with the correct time at boot.
> -+	 * The value programmed into the register is the number of SYS_CLK
> -+	 * clock cycles that match a given wall time profiled for the ldo.
> -+	 * This value depends on:
> -+	 * 	settling time of ldo in micro-seconds (varies per OMAP family)
> -+	 * 	# of clock cycles per SYS_CLK period (varies per OMAP family)
> -+	 * 	the SYS_CLK frequency in MHz (varies per board)
> -+	 * The formula is:
> -+	 *
> -+	 *                      ldo settling time (in micro-seconds)
> -+	 * SR2_WTCNT_VALUE = ------------------------------------------
> -+	 *                   (# system clock cycles) * (sys_clk period)
> -+	 *
> -+	 * Put another way:
> -+	 *
> -+	 * SR2_WTCNT_VALUE = settling time / (# SYS_CLK cycles / SYS_CLK
> rate))
> -+	 *
> -+	 * To avoid dividing by zero multiply both "# clock cycles" and
> -+	 * "settling time" by 10 such that the final result is the one we want.
> -+	 */
> -+
> -+	/* convert SYS_CLK rate to MHz & prevent divide by zero */
> -+	sys_clk_rate = DIV_ROUND_CLOSEST(voltdm->sys_clk.rate, 1000000);
> -+	clock_cycles = abb->common->clock_cycles * 10;
> -+	settling_time = abb->common->settling_time * 10;
> -+
> -+	/* calculate cycle rate */
> -+	clock_cycles = DIV_ROUND_CLOSEST(clock_cycles, sys_clk_rate);
> -+
> -+	/* calulate SR2_WTCNT_VALUE */
> -+	sr2_wt_cnt_val = DIV_ROUND_CLOSEST(settling_time, clock_cycles);
> -+
> -+	voltdm->rmw(abb->common->sr2_wtcnt_value_mask,
> -+			(sr2_wt_cnt_val << __ffs(abb->common-
> >sr2_wtcnt_value_mask)),
> -+			abb->setup_offs);
> -+
> -+	/* allow Forward Body-Bias */
> -+	voltdm->rmw(abb->common->active_fbb_sel_mask,
> -+			abb->common->active_fbb_sel_mask,
> -+			abb->setup_offs);
> -+
> -+	/* did bootloader set OPP_SEL? */
> -+	val = voltdm->read(abb->ctrl_offs);
> -+	val &= abb->common->opp_sel_mask;
> -+	abb->_opp_sel = val >> __ffs(abb->common->opp_sel_mask);
> -+
> -+	/* enable the ldo if not done by bootloader */
> -+	val = voltdm->read(abb->setup_offs);
> -+	val &= abb->common->sr2en_mask;
> -+	if (val)
> -+		abb->enabled = true;
> -+	else
> -+		omap_abb_enable(voltdm);
> -+
> -+	return;
> -+}
> -diff --git a/arch/arm/mach-omap2/abb.h b/arch/arm/mach-omap2/abb.h
> -index 74f2044..c06c7d6 100644
> ---- a/arch/arm/mach-omap2/abb.h
> -+++ b/arch/arm/mach-omap2/abb.h
> -@@ -82,4 +82,9 @@ extern struct omap_abb_instance omap36xx_abb_mpu;
> - extern struct omap_abb_instance omap4_abb_mpu;
> - extern struct omap_abb_instance omap4_abb_iva;
> -
> -+void omap_abb_init(struct voltagedomain *voltdm);
> -+void omap_abb_enable(struct voltagedomain *voltdm);
> -+void omap_abb_disble(struct voltagedomain *voltdm);
> -+int omap_abb_set_opp(struct voltagedomain *voltdm);
> -+
> - #endif
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0/bias/0008-OMAP3-Voltage-add-ABB-
> to-voltage-scaling.patch b/recipes-kernel/linux/linux-3.0/bias/0008-OMAP3-
> Voltage-add-ABB-to-voltage-scaling.patch
> deleted file mode 100644
> index bba8410..0000000
> --- a/recipes-kernel/linux/linux-3.0/bias/0008-OMAP3-Voltage-add-ABB-to-
> voltage-scaling.patch
> +++ /dev/null
> @@ -1,114 +0,0 @@
> -From ee2b116a1ee82ec94108035ed1ae047d69aee215 Mon Sep 17 00:00:00
> 2001
> -From: Mike Turquette <mturquette at ti.com>
> -Date: Thu, 21 Jul 2011 12:36:37 +0200
> -Subject: [PATCH 8/8] OMAP3+: Voltage: add ABB to voltage scaling
> -
> -Adaptive Body-Bias ldo state should be transitioned (if necessary) after
> -a voltage scaling sequence completes via vc_bypass or vp_forceupdate
> -methods.
> -
> -This patch initializes the ABB ldo's as a part of the greater voltage
> -initialization function and adds the ABB transition routine to both the
> -vc_bypass and vp_forceupdate sequences.
> -
> -Signed-off-by: Mike Turquette <mturquette at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c      |   10 ++++++++--
> - arch/arm/mach-omap2/voltage.c |    4 ++++
> - arch/arm/mach-omap2/vp.c      |    9 +++++++--
> - 3 files changed, 19 insertions(+), 4 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index 16fa912..c5d8550 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -6,6 +6,7 @@
> -
> - #include "voltage.h"
> - #include "vc.h"
> -+#include "abb.h"
> - #include "prm-regbits-34xx.h"
> - #include "prm-regbits-44xx.h"
> - #include "prm44xx.h"
> -@@ -153,7 +154,7 @@ int omap_vc_bypass_scale(struct voltagedomain
> *voltdm,
> - 	u32 loop_cnt = 0, retries_cnt = 0;
> - 	u32 vc_valid, vc_bypass_val_reg, vc_bypass_value;
> - 	u8 target_vsel, current_vsel;
> --	int ret;
> -+	int ret = 0;
> -
> - 	ret = omap_vc_pre_scale(voltdm, target_volt, &target_vsel,
> &current_vsel);
> - 	if (ret)
> -@@ -191,7 +192,12 @@ int omap_vc_bypass_scale(struct voltagedomain
> *voltdm,
> - 	}
> -
> - 	omap_vc_post_scale(voltdm, target_volt, target_vsel, current_vsel);
> --	return 0;
> -+
> -+	/* transition Adaptive Body-Bias ldo */
> -+	if (voltdm->abb)
> -+		ret = omap_abb_set_opp(voltdm);
> -+
> -+	return ret;
> - }
> -
> - static void __init omap3_vfsm_init(struct voltagedomain *voltdm)
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index cebc8b1..25f8604 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -40,6 +40,7 @@
> -
> - #include "vc.h"
> - #include "vp.h"
> -+#include "abb.h"
> -
> - static LIST_HEAD(voltdm_list);
> -
> -@@ -279,6 +280,9 @@ int __init omap_voltage_late_init(void)
> - 			voltdm->scale = omap_vp_forceupdate_scale;
> - 			omap_vp_init(voltdm);
> - 		}
> -+
> -+		if (voltdm->abb)
> -+			omap_abb_init(voltdm);
> - 	}
> -
> - 	return 0;
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index 66bd700..886be89 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -5,6 +5,7 @@
> -
> - #include "voltage.h"
> - #include "vp.h"
> -+#include "abb.h"
> - #include "prm-regbits-34xx.h"
> - #include "prm-regbits-44xx.h"
> - #include "prm44xx.h"
> -@@ -116,7 +117,7 @@ int omap_vp_forceupdate_scale(struct voltagedomain
> *voltdm,
> - 	struct omap_vp_instance *vp = voltdm->vp;
> - 	u32 vpconfig;
> - 	u8 target_vsel, current_vsel;
> --	int ret, timeout = 0;
> -+	int ret = 0, timeout = 0;
> -
> - 	ret = omap_vc_pre_scale(voltdm, target_volt, &target_vsel,
> &current_vsel);
> - 	if (ret)
> -@@ -178,7 +179,11 @@ int omap_vp_forceupdate_scale(struct
> voltagedomain *voltdm,
> - 	/* Clear force bit */
> - 	voltdm->write(vpconfig, vp->vpconfig);
> -
> --	return 0;
> -+	/* transition Adaptive Body-Bias LDO */
> -+	if (voltdm->abb)
> -+		ret = omap_abb_set_opp(voltdm);
> -+
> -+	return ret;
> - }
> -
> - /**
> ---
> -1.6.6.1
> -
> diff --git a/recipes-kernel/linux/linux-3.0/madc/0001-Enabling-Hwmon-driver-
> for-twl4030-madc.patch b/recipes-kernel/linux/linux-3.0/madc/0001-Enabling-
> Hwmon-driver-for-twl4030-madc.patch
> deleted file mode 100644
> index 35b9abb..0000000
> --- a/recipes-kernel/linux/linux-3.0/madc/0001-Enabling-Hwmon-driver-for-
> twl4030-madc.patch
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -From 174f636d95d1f6aa6fc6ba3e81282fb49b0feecd Mon Sep 17 00:00:00
> 2001
> -From: Keerthy <j-keerthy at ti.com>
> -Date: Wed, 4 May 2011 01:14:50 +0530
> -Subject: [PATCH 1/2] Enabling Hwmon driver for twl4030-madc
> -
> -Signed-off-by: Keerthy <j-keerthy at ti.com>
> ----
> - drivers/mfd/twl-core.c |   15 +++++++++++++++
> - 1 files changed, 15 insertions(+), 0 deletions(-)
> -
> -diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
> -index f82413a..e39dbed 100644
> ---- a/drivers/mfd/twl-core.c
> -+++ b/drivers/mfd/twl-core.c
> -@@ -83,6 +83,13 @@
> - #define twl_has_madc()	false
> - #endif
> -
> -+#if defined(CONFIG_SENSORS_TWL4030_MADC) ||\
> -+	 defined(CONFIG_SENSORS_TWL4030_MADC_MODULE)
> -+#define twl_has_madc_hwmon()  true
> -+#else
> -+#define twl_has_madc_hwmon()  false
> -+#endif
> -+
> - #ifdef CONFIG_TWL4030_POWER
> - #define twl_has_power()        true
> - #else
> -@@ -669,6 +676,14 @@ add_children(struct twl4030_platform_data *pdata,
> unsigned long features)
> - 			return PTR_ERR(child);
> - 	}
> -
> -+if (twl_has_madc_hwmon()) {
> -+		child = add_child(2, "twl4030_madc_hwmon",
> -+				NULL, 0,
> -+				true, pdata->irq_base + MADC_INTR_OFFSET,
> 0);
> -+		if (IS_ERR(child))
> -+			return PTR_ERR(child);
> -+	}
> -+
> - 	if (twl_has_rtc()) {
> - 		/*
> - 		 * REVISIT platform_data here currently might expose the
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/madc/0002-mfd-twl-core-enable-
> madc-clock.patch b/recipes-kernel/linux/linux-3.0/madc/0002-mfd-twl-core-
> enable-madc-clock.patch
> deleted file mode 100644
> index 015ab6d..0000000
> --- a/recipes-kernel/linux/linux-3.0/madc/0002-mfd-twl-core-enable-madc-
> clock.patch
> +++ /dev/null
> @@ -1,54 +0,0 @@
> -From f4aed769e9e59998f44447e7309e192573e6fac6 Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <steve at sakoman.com>
> -Date: Sat, 23 Jan 2010 06:26:54 -0800
> -Subject: [PATCH 2/2] mfd: twl-core: enable madc clock
> -
> -Now that the madc driver has been merged it is also necessary to enable the
> clock to the madc block
> -
> -Signed-off-by: Steve Sakoman <steve at sakoman.com>
> ----
> - drivers/mfd/twl-core.c  |    8 ++++++++
> - include/linux/i2c/twl.h |    1 +
> - 2 files changed, 9 insertions(+), 0 deletions(-)
> -
> -diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
> -index e39dbed..018ee53 100644
> ---- a/drivers/mfd/twl-core.c
> -+++ b/drivers/mfd/twl-core.c
> -@@ -217,6 +217,11 @@
> -
> - /* Few power values */
> - #define R_CFG_BOOT			0x05
> -+#define R_GPBR1				0x0C
> -+
> -+/* MADC clock values for R_GPBR1 */
> -+#define MADC_HFCLK_EN			0x80
> -+#define DEFAULT_MADC_CLK_EN		0x10
> -
> - /* some fields in R_CFG_BOOT */
> - #define HFCLK_FREQ_19p2_MHZ		(1 << 0)
> -@@ -1152,6 +1157,9 @@ static void clocks_init(struct device *dev,
> -
> - 	e |= unprotect_pm_master();
> - 	/* effect->MADC+USB ck en */
> -+	if (twl_has_madc())
> -+		e |= twl_i2c_write_u8(TWL_MODULE_INTBR,
> -+				MADC_HFCLK_EN | DEFAULT_MADC_CLK_EN,
> R_GPBR1);
> - 	e |= twl_i2c_write_u8(TWL_MODULE_PM_MASTER, ctrl,
> R_CFG_BOOT);
> - 	e |= protect_pm_master();
> -
> -diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h
> -index ba4f886..6802efc 100644
> ---- a/include/linux/i2c/twl.h
> -+++ b/include/linux/i2c/twl.h
> -@@ -74,6 +74,7 @@
> -
> - #define TWL_MODULE_USB		TWL4030_MODULE_USB
> - #define TWL_MODULE_AUDIO_VOICE	TWL4030_MODULE_AUDIO_VOICE
> -+#define TWL_MODULE_INTBR	TWL4030_MODULE_INTBR
> - #define TWL_MODULE_PIH		TWL4030_MODULE_PIH
> - #define TWL_MODULE_MADC		TWL4030_MODULE_MADC
> - #define TWL_MODULE_MAIN_CHARGE
> 	TWL4030_MODULE_MAIN_CHARGE
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/misc/0001-compiler.h-Undef-before-
> redefining-__attribute_const.patch b/recipes-kernel/linux/linux-3.0/misc/0001-
> compiler.h-Undef-before-redefining-__attribute_const.patch
> deleted file mode 100644
> index bf2f6e7..0000000
> --- a/recipes-kernel/linux/linux-3.0/misc/0001-compiler.h-Undef-before-
> redefining-__attribute_const.patch
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -From 6f92ab6de9d8daeb575949bbbcbc7bcdcebc60af Mon Sep 17 00:00:00
> 2001
> -From: Khem Raj <raj.khem at gmail.com>
> -Date: Thu, 5 Jan 2012 11:42:35 -0800
> -Subject: [PATCH] compiler.h: Undef before redefining __attribute_const__
> -
> -This is required to avoid warnings like
> -util/include/linux/compiler.h:8:0: error: "__attribute_const__" redefined [-
> Werror]
> -
> -Signed-off-by: Khem Raj <raj.khem at gmail.com>
> -
> -Upstream-Status: Pending
> -
> ----
> - tools/perf/util/include/linux/compiler.h |    4 +++-
> - 1 files changed, 3 insertions(+), 1 deletions(-)
> -
> ---- a/tools/perf/util/include/linux/compiler.h
> -+++ b/tools/perf/util/include/linux/compiler.h
> -@@ -4,9 +4,11 @@
> - #ifndef __always_inline
> - #define __always_inline	inline
> - #endif
> -+#undef __user
> - #define __user
> -+#undef __attribute_const__
> - #define __attribute_const__
> --
> -+#undef __used
> - #define __used		__attribute__((__unused__))
> -
> - #endif
> diff --git a/recipes-kernel/linux/linux-3.0/misc/0002-OMAP2-OPP-allow-OPP-
> enumeration-to-continue-if-devic.patch b/recipes-kernel/linux/linux-
> 3.0/misc/0002-OMAP2-OPP-allow-OPP-enumeration-to-continue-if-
> devic.patch
> deleted file mode 100644
> index 7019381..0000000
> --- a/recipes-kernel/linux/linux-3.0/misc/0002-OMAP2-OPP-allow-OPP-
> enumeration-to-continue-if-devic.patch
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -From c15f217f7d07c460763a092f31f61b1975a18563 Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Fri, 16 Mar 2012 11:19:09 -0500
> -Subject: [PATCH 2/2] OMAP2+: OPP: allow OPP enumeration to continue if
> device is not present
> -
> -On platforms such as OMAP3, certain variants may not have IVA, SGX
> -or some specific component. We currently have a check to aid fixing
> -wrong population of OPP entries for issues such as typos. This however
> -causes a conflict with valid requirement where the SoC variant does
> -not actually have the module present.
> -
> -So, reduce the severity of the print to a debug statement and skip
> -registering that specific OPP, but continue down the list.
> -
> -Reported-by: Steve Sakoman <steve at sakoman.com>
> -Reported-by: Maximilian Schwerin <mvs at tigris.de>
> -Acked-by: Steve Sakoman <steve at sakoman.com>
> -Tested-by: Maximilian Schwerin <mvs at tigris.de>
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> ----
> - arch/arm/mach-omap2/opp.c |    4 ++--
> - 1 files changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/opp.c b/arch/arm/mach-omap2/opp.c
> -index ab8b35b..f111b82 100644
> ---- a/arch/arm/mach-omap2/opp.c
> -+++ b/arch/arm/mach-omap2/opp.c
> -@@ -64,10 +64,10 @@ int __init omap_init_opp_table(struct omap_opp_def
> *opp_def,
> - 		}
> - 		oh = omap_hwmod_lookup(opp_def->hwmod_name);
> - 		if (!oh || !oh->od) {
> --			pr_warn("%s: no hwmod or odev for %s, [%d] "
> -+			pr_debug("%s: no hwmod or odev for %s, [%d] "
> - 				"cannot add OPPs.\n", __func__,
> - 				opp_def->hwmod_name, i);
> --			return -EINVAL;
> -+			continue;
> - 		}
> - 		dev = &oh->od->pdev.dev;
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/omap4/0001-OMAP-Fix-linking-error-
> in-twl-common.c-for-OMAP2-3-4.patch b/recipes-kernel/linux/linux-
> 3.0/omap4/0001-OMAP-Fix-linking-error-in-twl-common.c-for-OMAP2-3-
> 4.patch
> deleted file mode 100644
> index 695301b..0000000
> --- a/recipes-kernel/linux/linux-3.0/omap4/0001-OMAP-Fix-linking-error-in-twl-
> common.c-for-OMAP2-3-4.patch
> +++ /dev/null
> @@ -1,129 +0,0 @@
> -From 44ab86140417f173835e19bed62d6832023f2914 Mon Sep 17 00:00:00
> 2001
> -From: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -Date: Wed, 17 Aug 2011 16:02:55 +0200
> -Subject: [PATCH] OMAP: Fix linking error in twl-common.c for OMAP2/3/4
> only builds
> -
> -Commit b22f954 (OMAP4: Move common twl6030 configuration to twl-
> common)
> -caused compile failures for code for OMAP arch which is not selected by
> -the config.
> -
> -Fixes issues like:
> -With CONFIG_ARCH_OMAP3=y and CONFIG_ARCH_OMAP4=n, I'm getting
> this:
> -
> -arch/arm/mach-omap2/built-in.o:(.data+0xf99c): undefined reference to
> `omap4430_phy_init'
> -arch/arm/mach-omap2/built-in.o:(.data+0xf9a0): undefined reference to
> `omap4430_phy_exit'
> -arch/arm/mach-omap2/built-in.o:(.data+0xf9a4): undefined reference to
> `omap4430_phy_power'
> -arch/arm/mach-omap2/built-in.o:(.data+0xf9a8): undefined reference to
> `omap4430_phy_set_clk'
> -arch/arm/mach-omap2/built-in.o:(.data+0xf9ac): undefined reference to
> `omap4430_phy_suspend'
> -
> -Fix the problem by moving the code to ifdef sections for omap3 and omap4.
> -
> -Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -[tony at atomide.com: updated comments]
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/mach-omap2/twl-common.c |   77 ++++++++++++++++++++---------
> ---------
> - 1 files changed, 41 insertions(+), 36 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-
> omap2/twl-common.c
> -index 3aaa46f..58409c0 100644
> ---- a/arch/arm/mach-omap2/twl-common.c
> -+++ b/arch/arm/mach-omap2/twl-common.c
> -@@ -48,14 +48,7 @@ void __init omap_pmic_init(int bus, u32 clkrate,
> - 	omap_register_i2c_bus(bus, clkrate, &pmic_i2c_board_info, 1);
> - }
> -
> --static struct twl4030_usb_data omap4_usb_pdata = {
> --	.phy_init	= omap4430_phy_init,
> --	.phy_exit	= omap4430_phy_exit,
> --	.phy_power	= omap4430_phy_power,
> --	.phy_set_clock	= omap4430_phy_set_clk,
> --	.phy_suspend	= omap4430_phy_suspend,
> --};
> --
> -+#if defined(CONFIG_ARCH_OMAP3)
> - static struct twl4030_usb_data omap3_usb_pdata = {
> - 	.usb_mode	= T2_USB_MODE_ULPI,
> - };
> -@@ -122,6 +115,45 @@ static struct regulator_init_data omap3_vpll2_idata
> = {
> - 	.consumer_supplies		= omap3_vpll2_supplies,
> - };
> -
> -+void __init omap3_pmic_get_config(struct twl4030_platform_data
> *pmic_data,
> -+				  u32 pdata_flags, u32 regulators_flags)
> -+{
> -+	if (!pmic_data->irq_base)
> -+		pmic_data->irq_base = TWL4030_IRQ_BASE;
> -+	if (!pmic_data->irq_end)
> -+		pmic_data->irq_end = TWL4030_IRQ_END;
> -+
> -+	/* Common platform data configurations */
> -+	if (pdata_flags & TWL_COMMON_PDATA_USB && !pmic_data->usb)
> -+		pmic_data->usb = &omap3_usb_pdata;
> -+
> -+	if (pdata_flags & TWL_COMMON_PDATA_BCI && !pmic_data->bci)
> -+		pmic_data->bci = &omap3_bci_pdata;
> -+
> -+	if (pdata_flags & TWL_COMMON_PDATA_MADC && !pmic_data-
> >madc)
> -+		pmic_data->madc = &omap3_madc_pdata;
> -+
> -+	if (pdata_flags & TWL_COMMON_PDATA_AUDIO && !pmic_data-
> >codec)
> -+		pmic_data->codec = &omap3_codec_pdata;
> -+
> -+	/* Common regulator configurations */
> -+	if (regulators_flags & TWL_COMMON_REGULATOR_VDAC &&
> !pmic_data->vdac)
> -+		pmic_data->vdac = &omap3_vdac_idata;
> -+
> -+	if (regulators_flags & TWL_COMMON_REGULATOR_VPLL2 &&
> !pmic_data->vpll2)
> -+		pmic_data->vpll2 = &omap3_vpll2_idata;
> -+}
> -+#endif /* CONFIG_ARCH_OMAP3 */
> -+
> -+#if defined(CONFIG_ARCH_OMAP4)
> -+static struct twl4030_usb_data omap4_usb_pdata = {
> -+	.phy_init	= omap4430_phy_init,
> -+	.phy_exit	= omap4430_phy_exit,
> -+	.phy_power	= omap4430_phy_power,
> -+	.phy_set_clock	= omap4430_phy_set_clk,
> -+	.phy_suspend	= omap4430_phy_suspend,
> -+};
> -+
> - static struct regulator_init_data omap4_vdac_idata = {
> - 	.constraints = {
> - 		.min_uV			= 1800000,
> -@@ -274,31 +306,4 @@ void __init omap4_pmic_get_config(struct
> twl4030_platform_data *pmic_data,
> - 		pmic_data->clk32kg = &omap4_clk32kg_idata;
> - }
> -
> --void __init omap3_pmic_get_config(struct twl4030_platform_data
> *pmic_data,
> --				  u32 pdata_flags, u32 regulators_flags)
> --{
> --	if (!pmic_data->irq_base)
> --		pmic_data->irq_base = TWL4030_IRQ_BASE;
> --	if (!pmic_data->irq_end)
> --		pmic_data->irq_end = TWL4030_IRQ_END;
> --
> --	/* Common platform data configurations */
> --	if (pdata_flags & TWL_COMMON_PDATA_USB && !pmic_data->usb)
> --		pmic_data->usb = &omap3_usb_pdata;
> --
> --	if (pdata_flags & TWL_COMMON_PDATA_BCI && !pmic_data->bci)
> --		pmic_data->bci = &omap3_bci_pdata;
> --
> --	if (pdata_flags & TWL_COMMON_PDATA_MADC && !pmic_data-
> >madc)
> --		pmic_data->madc = &omap3_madc_pdata;
> --
> --	if (pdata_flags & TWL_COMMON_PDATA_AUDIO && !pmic_data-
> >codec)
> --		pmic_data->codec = &omap3_codec_pdata;
> --
> --	/* Common regulator configurations */
> --	if (regulators_flags & TWL_COMMON_REGULATOR_VDAC &&
> !pmic_data->vdac)
> --		pmic_data->vdac = &omap3_vdac_idata;
> --
> --	if (regulators_flags & TWL_COMMON_REGULATOR_VPLL2 &&
> !pmic_data->vpll2)
> --		pmic_data->vpll2 = &omap3_vpll2_idata;
> --}
> -+#endif /* CONFIG_ARCH_OMAP4 */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/patch.sh b/recipes-kernel/linux/linux-
> 3.0/patch.sh
> deleted file mode 100755
> index 31bdfe1..0000000
> --- a/recipes-kernel/linux/linux-3.0/patch.sh
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -#!/bin/bash
> -# (c) 2009 - 2012 Koen Kooi <koen at dominion.thruhere.net>
> -# This script will take a set of directories with patches and make a git tree out of
> it
> -# After all the patches are applied it will output a SRC_URI fragment you can
> copy/paste into a recipe
> -set -e
> -
> -TAG="v3.0.17"
> -EXTRATAG=""
> -PATCHPATH=$(dirname $0)
> -
> -git am --abort || echo "Do you need to make sure the patches apply cleanly
> first?"
> -git reset --hard ${TAG}
> -rm export -rf
> -
> -previous=${TAG}
> -PATCHSET="pm-wip/voltdm pm-wip/cpufreq beagle madc sakoman sgx ulcd
> omap4 misc usb"
> -
> -# apply patches
> -for patchset in ${PATCHSET} ; do
> -	git am $PATCHPATH/$patchset/*
> -	git tag "${TAG}-${patchset}${EXTRATAG}" -f
> -done
> -
> -# export patches and output SRC_URI for them
> -for patchset in ${PATCHSET} ; do
> -	mkdir export/$patchset -p
> -	( cd export/$patchset && git format-patch ${previous}..${TAG}-
> ${patchset}${EXTRATAG} >& /dev/null && for i in *.patch ; do echo "
> file://${patchset}/$i \\" ; done )
> -	previous=${TAG}-${patchset}${EXTRATAG}
> -done
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0001-PM-OPP-
> introduce-function-to-free-cpufreq-table.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/cpufreq/0001-PM-OPP-introduce-function-to-free-cpufreq-
> table.patch
> deleted file mode 100644
> index 5b28c5f..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0001-PM-OPP-introduce-
> function-to-free-cpufreq-table.patch
> +++ /dev/null
> @@ -1,84 +0,0 @@
> -From 3dfeff8f9ad8fa7e6e434eb4b450a11ab79131da Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Wed, 25 May 2011 00:43:26 -0700
> -Subject: [PATCH 01/19] PM: OPP: introduce function to free cpufreq table
> -
> -cpufreq table allocated by opp_init_cpufreq_table is better
> -freed by OPP layer itself. This allows future modifications to
> -the table handling to be transparent to the users.
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Acked-by: Kevin Hilman <khilman at ti.com>
> ----
> - Documentation/power/opp.txt |    2 ++
> - drivers/base/power/opp.c    |   17 +++++++++++++++++
> - include/linux/opp.h         |    8 ++++++++
> - 3 files changed, 27 insertions(+), 0 deletions(-)
> -
> -diff --git a/Documentation/power/opp.txt b/Documentation/power/opp.txt
> -index 5ae70a12..3035d00 100644
> ---- a/Documentation/power/opp.txt
> -+++ b/Documentation/power/opp.txt
> -@@ -321,6 +321,8 @@ opp_init_cpufreq_table - cpufreq framework typically
> is initialized with
> - 	addition to CONFIG_PM as power management feature is required to
> - 	dynamically scale voltage and frequency in a system.
> -
> -+opp_free_cpufreq_table - Free up the table allocated by
> opp_init_cpufreq_table
> -+
> - 7. Data Structures
> - ==================
> - Typically an SoC contains multiple voltage domains which are variable. Each
> -diff --git a/drivers/base/power/opp.c b/drivers/base/power/opp.c
> -index 56a6899..5cc1232 100644
> ---- a/drivers/base/power/opp.c
> -+++ b/drivers/base/power/opp.c
> -@@ -625,4 +625,21 @@ int opp_init_cpufreq_table(struct device *dev,
> -
> - 	return 0;
> - }
> -+
> -+/**
> -+ * opp_free_cpufreq_table() - free the cpufreq table
> -+ * @dev:	device for which we do this operation
> -+ * @table:	table to free
> -+ *
> -+ * Free up the table allocated by opp_init_cpufreq_table
> -+ */
> -+void opp_free_cpufreq_table(struct device *dev,
> -+				struct cpufreq_frequency_table **table)
> -+{
> -+	if (!table)
> -+		return;
> -+
> -+	kfree(*table);
> -+	*table = NULL;
> -+}
> - #endif		/* CONFIG_CPU_FREQ */
> -diff --git a/include/linux/opp.h b/include/linux/opp.h
> -index 5449945..7020e97 100644
> ---- a/include/linux/opp.h
> -+++ b/include/linux/opp.h
> -@@ -94,12 +94,20 @@ static inline int opp_disable(struct device *dev,
> unsigned long freq)
> - #if defined(CONFIG_CPU_FREQ) && defined(CONFIG_PM_OPP)
> - int opp_init_cpufreq_table(struct device *dev,
> - 			    struct cpufreq_frequency_table **table);
> -+void opp_free_cpufreq_table(struct device *dev,
> -+				struct cpufreq_frequency_table **table);
> - #else
> - static inline int opp_init_cpufreq_table(struct device *dev,
> - 			    struct cpufreq_frequency_table **table)
> - {
> - 	return -EINVAL;
> - }
> -+
> -+static inline
> -+void opp_free_cpufreq_table(struct device *dev,
> -+				struct cpufreq_frequency_table **table)
> -+{
> -+}
> - #endif		/* CONFIG_CPU_FREQ */
> -
> - #endif		/* __LINUX_OPP_H__ */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0002-OMAP-
> CPUfreq-ensure-driver-initializes-after-cpufreq.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/cpufreq/0002-OMAP-CPUfreq-ensure-driver-
> initializes-after-cpufreq.patch
> deleted file mode 100644
> index f5fd155..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0002-OMAP-CPUfreq-
> ensure-driver-initializes-after-cpufreq.patch
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -From bc2810462308f15ff90841453961200bf90a814d Mon Sep 17 00:00:00
> 2001
> -From: Peter 'p2' De Schrijver <peter.de-schrijver at nokia.com>
> -Date: Wed, 11 Aug 2010 17:02:43 -0700
> -Subject: [PATCH 02/19] OMAP: CPUfreq: ensure driver initializes after cpufreq
> framework and governors
> -
> -Signed-off-by: Peter 'p2' De Schrijver <peter.de-schrijver at nokia.com>
> -Signed-off-by: Kevin Hilman <khilman at deeprootsystems.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/plat-omap/cpu-omap.c |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-
> omap.c
> -index da4f68d..cd09d4b 100644
> ---- a/arch/arm/plat-omap/cpu-omap.c
> -+++ b/arch/arm/plat-omap/cpu-omap.c
> -@@ -160,7 +160,7 @@ static int __init omap_cpufreq_init(void)
> - 	return cpufreq_register_driver(&omap_driver);
> - }
> -
> --arch_initcall(omap_cpufreq_init);
> -+late_initcall(omap_cpufreq_init);
> -
> - /*
> -  * if ever we want to remove this, upon cleanup call:
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0003-OMAP-
> CPUfreq-ensure-policy-is-fully-initialized.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/cpufreq/0003-OMAP-CPUfreq-ensure-policy-is-fully-
> initialized.patch
> deleted file mode 100644
> index 4805b2a..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0003-OMAP-CPUfreq-
> ensure-policy-is-fully-initialized.patch
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -From be4be1a11360222f0b0add1dadfeaf76af199990 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at deeprootsystems.com>
> -Date: Wed, 11 Aug 2010 17:05:38 -0700
> -Subject: [PATCH 03/19] OMAP: CPUfreq: ensure policy is fully initialized
> -
> -Ensure policy min/max/cur values are initialized when OMAP
> -CPUfreq driver starts.
> -
> -Signed-off-by: Kevin Hilman <khilman at deeprootsystems.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/plat-omap/cpu-omap.c |    4 ++++
> - 1 files changed, 4 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-
> omap.c
> -index cd09d4b..1b36664 100644
> ---- a/arch/arm/plat-omap/cpu-omap.c
> -+++ b/arch/arm/plat-omap/cpu-omap.c
> -@@ -126,6 +126,10 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> - 							VERY_HI_RATE) /
> 1000;
> - 	}
> -
> -+	policy->min = policy->cpuinfo.min_freq;
> -+	policy->max = policy->cpuinfo.max_freq;
> -+	policy->cur = omap_getspeed(0);
> -+
> - 	/* FIXME: what's the actual transition time? */
> - 	policy->cpuinfo.transition_latency = 300 * 1000;
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0004-OMAP3-PM-
> CPUFreq-driver-for-OMAP3.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/cpufreq/0004-OMAP3-PM-CPUFreq-driver-for-OMAP3.patch
> deleted file mode 100644
> index 1ec4593..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0004-OMAP3-PM-
> CPUFreq-driver-for-OMAP3.patch
> +++ /dev/null
> @@ -1,264 +0,0 @@
> -From fcd436dfb1c2d8e4866001700a5bba2a1d4079aa Mon Sep 17 00:00:00
> 2001
> -From: Rajendra Nayak <rnayak at ti.com>
> -Date: Mon, 10 Nov 2008 17:00:25 +0530
> -Subject: [PATCH 04/19] OMAP3 PM: CPUFreq driver for OMAP3
> -
> -CPUFreq driver for OMAP3
> -
> -With additional fixes and cleanups from Tero Kristo:
> -- Fix rate calculation bug in omap3_select_table_rate
> -- Refreshed DVFS VDD1 control against latest clock fw
> -
> -Signed-off-by: Tero Kristo <tero.kristo at nokia.com>
> -Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> -
> -OMAP3: PM: CPUFreq: Fix omap_getspeed.
> -
> -Signed-off-by: Peter 'p2' De Schrijver <peter.de-schrijver at nokia.com>
> -
> -Make sure omap cpufreq driver initializes after cpufreq framework and
> governors
> -
> -Signed-off-by: Peter 'p2' De Schrijver <peter.de-schrijver at nokia.com>
> -
> -merge: CPUFreq: remove obsolete funcs
> -
> -OMAP3 clock: Update cpufreq driver
> -
> -This patch removes all refrences to virtual clock
> -nodes in CPUFreq driver.
> -
> -Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Tero Kristo <tero.kristo at nokia.com>
> -Signed-off-by: Jean Pihet <jpihet at mvista.com>
> -
> -PM: Prevent direct cpufreq scaling during initialization
> -
> -It is seen that the OMAP specific cpufreq initialization code tries to
> -scale the MPU frequency to the highest possible without taking care of
> -the voltage level. On power on reset the power IC does not provide the
> -necessary voltage for the highest available MPU frequency (that would
> -satisfy all Si families). This potentially is an window of opportunity
> -for things to go wrong.
> -
> -Signed-off-by: Romit Dasgupta <romit at ti.com>
> -Signed-off-by: Kevin Hilman <khilman at deeprootsystems.com>
> -
> -OMAP3: PM: enable 600MHz (overdrive) OPP
> -
> -Signed-off-by: Kevin Hilman <khilman at deeprootsystems.com>
> -
> -omap3: introduce cpufreq
> -
> -OMAP OPP layer functions now have dependencies of CONFIG_CPU_FREQ
> only.
> -
> -With this patch, omap opp layer now has its compilation flags
> -bound to CONFIG_CPU_FREQ. Also its code has been removed from pm34xx.c.
> -
> -A new file has been created to contain cpu freq code related to
> -OMAP3: cpufreq34xx.c
> -
> -OMAP34xx and OMAP36xx family OPPs are made available
> -
> -Signed-off-by: Eduardo Valentin <eduardo.valentin at nokia.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Vishwanath BS <vishwanath.bs at ti.com>
> -Signed-off-by: Kevin Hilman <khilman at deeprootsystems.com>
> -Signed-off-by: Romit Dasgupta <romit at ti.com>
> -Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> -
> -omap3: cpufreq: allow default opp table init
> -
> -For board files which choose to override the defaults, the existing
> -mechanism will work, for boards that would like to work with defaults,
> -allow init_common_hw to call init_opp_table to initialize if not
> -already initialized. this will allow all omap boards which have opp
> -tables predefined for a silicon to use the same.
> -
> -Originally reported for overo:
> -http://marc.info/?t=127265269400004&r=1&w=2
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Reported-by: Peter Tseng <tsenpet09 at gmail.com>
> -Cc: Cliff Brake <cliff.brake at gmail.com>
> -Cc: Kevin Hilman <khilman at deeprootsystems.com>
> -
> -OMAP2: update OPP data to be device based
> -
> -Cc: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Kevin Hilman <khilman at deeprootsystems.com>
> -
> -OMAP3: CPUfreq: update to device-based OPP API
> -
> -Update usage of OPP API to use new device-based API.  This requires
> -getting the 'struct device' for the MPU and using that with the OPP
> -API.
> -
> -Signed-off-by: Kevin Hilman <khilman at deeprootsystems.com>
> -
> -omap3: opp: make independent of cpufreq
> -
> -Make opp3xx data which is registered with the opp layer
> -dependent purely on CONFIG_PM as opp layer and pm.c users
> -are CONFIG_PM dependent not cpufreq dependent.
> -so we rename the data definition to opp3xxx_data.c (inline with what
> -we have for omap2), also move the build definition to be under
> -the existing CONFIG_PM build instead of CPUFREQ.
> -
> -Cc: Eduardo Valentin <eduardo.valentin at nokia.com>
> -Cc: Kevin Hilman <khilman at deeprootsystems.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Cc: Sanjeev Premi <premi at ti.com>
> -Cc: Thara Gopinath <thara at ti.com>
> -Cc: Tony Lindgren <tony at atomide.com>
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/clock.h     |   14 +++++++++++++-
> - arch/arm/mach-omap2/clock34xx.c |    2 ++
> - arch/arm/plat-omap/cpu-omap.c   |   34
> +++++++++++++++++++++++++++++++---
> - 3 files changed, 46 insertions(+), 4 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h
> -index 48ac568..8bad1c6 100644
> ---- a/arch/arm/mach-omap2/clock.h
> -+++ b/arch/arm/mach-omap2/clock.h
> -@@ -144,7 +144,9 @@ extern const struct clksel_rate gpt_sys_rates[];
> - extern const struct clksel_rate gfx_l3_rates[];
> - extern const struct clksel_rate dsp_ick_rates[];
> -
> --#if defined(CONFIG_ARCH_OMAP2) && defined(CONFIG_CPU_FREQ)
> -+#ifdef CONFIG_CPU_FREQ
> -+
> -+#ifdef CONFIG_ARCH_OMAP2
> - extern void omap2_clk_init_cpufreq_table(struct cpufreq_frequency_table
> **table);
> - extern void omap2_clk_exit_cpufreq_table(struct cpufreq_frequency_table
> **table);
> - #else
> -@@ -152,6 +154,16 @@ extern void omap2_clk_exit_cpufreq_table(struct
> cpufreq_frequency_table **table)
> - #define omap2_clk_exit_cpufreq_table	0
> - #endif
> -
> -+#ifdef CONFIG_ARCH_OMAP3
> -+extern void omap3_clk_init_cpufreq_table(struct cpufreq_frequency_table
> **table);
> -+extern void omap3_clk_exit_cpufreq_table(struct cpufreq_frequency_table
> **table);
> -+#else
> -+#define omap3_clk_init_cpufreq_table	0
> -+#define omap3_clk_exit_cpufreq_table	0
> -+#endif
> -+
> -+#endif /* CONFIG_CPU_FREQ */
> -+
> - extern const struct clkops clkops_omap2_iclk_dflt_wait;
> - extern const struct clkops clkops_omap2_iclk_dflt;
> - extern const struct clkops clkops_omap2_iclk_idle_only;
> -diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-
> omap2/clock34xx.c
> -index 1fc96b9..119e135 100644
> ---- a/arch/arm/mach-omap2/clock34xx.c
> -+++ b/arch/arm/mach-omap2/clock34xx.c
> -@@ -20,6 +20,8 @@
> - #include <linux/kernel.h>
> - #include <linux/clk.h>
> - #include <linux/io.h>
> -+#include <linux/err.h>
> -+#include <linux/cpufreq.h>
> -
> - #include <plat/clock.h>
> -
> -diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-
> omap.c
> -index 1b36664..f0f9430 100644
> ---- a/arch/arm/plat-omap/cpu-omap.c
> -+++ b/arch/arm/plat-omap/cpu-omap.c
> -@@ -8,6 +8,10 @@
> -  *
> -  *  Based on cpu-sa1110.c, Copyright (C) 2001 Russell King
> -  *
> -+ * Copyright (C) 2007-2008 Texas Instruments, Inc.
> -+ * Updated to support OMAP3
> -+ * Rajendra Nayak <rnayak at ti.com>
> -+ *
> -  * This program is free software; you can redistribute it and/or modify
> -  * it under the terms of the GNU General Public License version 2 as
> -  * published by the Free Software Foundation.
> -@@ -26,12 +30,19 @@
> - #include <plat/clock.h>
> - #include <asm/system.h>
> -
> -+#if defined(CONFIG_ARCH_OMAP3) &&
> !defined(CONFIG_OMAP_PM_NONE)
> -+#include <plat/omap-pm.h>
> -+#include <plat/opp.h>
> -+#endif
> -+
> - #define VERY_HI_RATE	900000000
> -
> - static struct cpufreq_frequency_table *freq_table;
> -
> - #ifdef CONFIG_ARCH_OMAP1
> - #define MPU_CLK		"mpu"
> -+#elif CONFIG_ARCH_OMAP3
> -+#define MPU_CLK		"arm_fck"
> - #else
> - #define MPU_CLK		"virt_prcm_set"
> - #endif
> -@@ -73,7 +84,13 @@ static int omap_target(struct cpufreq_policy *policy,
> - 		       unsigned int target_freq,
> - 		       unsigned int relation)
> - {
> -+#ifdef CONFIG_ARCH_OMAP1
> - 	struct cpufreq_freqs freqs;
> -+#endif
> -+#if defined(CONFIG_ARCH_OMAP3) &&
> !defined(CONFIG_OMAP_PM_NONE)
> -+	unsigned long freq;
> -+	struct device *mpu_dev = omap2_get_mpuss_device();
> -+#endif
> - 	int ret = 0;
> -
> - 	/* Ensure desired rate is within allowed range.  Some govenors
> -@@ -83,13 +100,13 @@ static int omap_target(struct cpufreq_policy *policy,
> - 	if (target_freq > policy->max)
> - 		target_freq = policy->max;
> -
> -+#ifdef CONFIG_ARCH_OMAP1
> - 	freqs.old = omap_getspeed(0);
> - 	freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000;
> - 	freqs.cpu = 0;
> -
> - 	if (freqs.old == freqs.new)
> - 		return ret;
> --
> - 	cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
> - #ifdef CONFIG_CPU_FREQ_DEBUG
> - 	printk(KERN_DEBUG "cpufreq-omap: transition: %u --> %u\n",
> -@@ -97,7 +114,11 @@ static int omap_target(struct cpufreq_policy *policy,
> - #endif
> - 	ret = clk_set_rate(mpu_clk, freqs.new * 1000);
> - 	cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
> --
> -+#elif defined(CONFIG_ARCH_OMAP3) &&
> !defined(CONFIG_OMAP_PM_NONE)
> -+	freq = target_freq * 1000;
> -+	if (opp_find_freq_ceil(mpu_dev, &freq))
> -+		omap_pm_cpu_set_freq(freq);
> -+#endif
> - 	return ret;
> - }
> -
> -@@ -114,7 +135,14 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> -
> - 	policy->cur = policy->min = policy->max = omap_getspeed(0);
> -
> --	clk_init_cpufreq_table(&freq_table);
> -+	if (!cpu_is_omap34xx()) {
> -+		clk_init_cpufreq_table(&freq_table);
> -+	} else {
> -+		struct device *mpu_dev = omap2_get_mpuss_device();
> -+
> -+		opp_init_cpufreq_table(mpu_dev, &freq_table);
> -+	}
> -+
> - 	if (freq_table) {
> - 		result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
> - 		if (!result)
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0005-OMAP-PM-
> CPUFREQ-Fix-conditional-compilation.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/cpufreq/0005-OMAP-PM-CPUFREQ-Fix-conditional-
> compilation.patch
> deleted file mode 100644
> index 5527356..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0005-OMAP-PM-
> CPUFREQ-Fix-conditional-compilation.patch
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -From 62275cbaac608a17fe5ff0437e0950667927e5e8 Mon Sep 17 00:00:00
> 2001
> -From: Silesh C V <silesh at ti.com>
> -Date: Wed, 29 Sep 2010 14:52:54 +0530
> -Subject: [PATCH 05/19] OMAP: PM: CPUFREQ: Fix conditional compilation
> -
> -Fix conditional compilation. A conditional expresiion
> -should follow "#elif", in this case #elif clause should
> -check whether CONFIG_ARCH_OMAP3 is defined or not
> -(ie. defined(CONFIG_ARCH_OMAP3)) rather than checking for
> -the value of the macro.
> -
> -Signed-off-by: Silesh C V <silesh at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/plat-omap/cpu-omap.c |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-
> omap.c
> -index f0f9430..c3ac065 100644
> ---- a/arch/arm/plat-omap/cpu-omap.c
> -+++ b/arch/arm/plat-omap/cpu-omap.c
> -@@ -41,7 +41,7 @@ static struct cpufreq_frequency_table *freq_table;
> -
> - #ifdef CONFIG_ARCH_OMAP1
> - #define MPU_CLK		"mpu"
> --#elif CONFIG_ARCH_OMAP3
> -+#elif defined(CONFIG_ARCH_OMAP3)
> - #define MPU_CLK		"arm_fck"
> - #else
> - #define MPU_CLK		"virt_prcm_set"
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0006-cpufreq-fixup-
> after-new-OPP-layer-merged.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/cpufreq/0006-cpufreq-fixup-after-new-OPP-layer-merged.patch
> deleted file mode 100644
> index 3d8d572..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0006-cpufreq-fixup-after-
> new-OPP-layer-merged.patch
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -From ca2d4d46267668daccc156084f8ad6e74a52f392 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at deeprootsystems.com>
> -Date: Tue, 16 Nov 2010 11:48:41 -0800
> -Subject: [PATCH 06/19] cpufreq: fixup after new OPP layer merged
> -
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/plat-omap/cpu-omap.c |    3 ++-
> - 1 files changed, 2 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-
> omap.c
> -index c3ac065..9cd2709 100644
> ---- a/arch/arm/plat-omap/cpu-omap.c
> -+++ b/arch/arm/plat-omap/cpu-omap.c
> -@@ -25,6 +25,7 @@
> - #include <linux/err.h>
> - #include <linux/clk.h>
> - #include <linux/io.h>
> -+#include <linux/opp.h>
> -
> - #include <mach/hardware.h>
> - #include <plat/clock.h>
> -@@ -32,7 +33,7 @@
> -
> - #if defined(CONFIG_ARCH_OMAP3) && !defined(CONFIG_OMAP_PM_NONE)
> - #include <plat/omap-pm.h>
> --#include <plat/opp.h>
> -+#include <plat/common.h>
> - #endif
> -
> - #define VERY_HI_RATE	900000000
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0007-OMAP-
> cpufreq-Split-OMAP1-and-OMAP2PLUS-CPUfreq-drive.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/cpufreq/0007-OMAP-cpufreq-Split-OMAP1-
> and-OMAP2PLUS-CPUfreq-drive.patch
> deleted file mode 100644
> index 25a9de9..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0007-OMAP-cpufreq-Split-
> OMAP1-and-OMAP2PLUS-CPUfreq-drive.patch
> +++ /dev/null
> @@ -1,673 +0,0 @@
> -From 972aa97a8a36946ebe2274e27c317e524de2cd5c Mon Sep 17 00:00:00
> 2001
> -From: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -Date: Mon, 14 Mar 2011 17:08:48 +0530
> -Subject: [PATCH 07/19] OMAP: cpufreq: Split OMAP1 and OMAP2PLUS
> CPUfreq drivers.
> -
> -This patch is an attempt to cleanup the #ifdeferry in the
> -omap CPUfreq drivers.
> -
> -The split betwenn OMAP1 and OMAP2PLUS is logical because
> -	- OMAP1 doesn't support opp layer.
> -	- OMAP1 build is seperate from omap2plus.
> -
> -Includes minor header/copyright updates reported by Todd Poynor.
> -
> -Signed-off-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -Cc: Kevin Hilman <khilman at ti.com>
> -Cc: Vishwanath BS <vishwanath.bs at ti.com>
> -Cc: Todd Poynor <toddpoynor at google.com>
> -Cc: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap1/Makefile            |    3 +
> - arch/arm/mach-omap1/omap1-cpufreq.c     |  175
> ++++++++++++++++++++++++++
> - arch/arm/mach-omap2/Makefile            |    3 +
> - arch/arm/mach-omap2/omap2plus-cpufreq.c |  201
> ++++++++++++++++++++++++++++++
> - arch/arm/plat-omap/Makefile             |    1 -
> - arch/arm/plat-omap/cpu-omap.c           |  204 -------------------------------
> - 6 files changed, 382 insertions(+), 205 deletions(-)
> - create mode 100644 arch/arm/mach-omap1/omap1-cpufreq.c
> - create mode 100644 arch/arm/mach-omap2/omap2plus-cpufreq.c
> - delete mode 100644 arch/arm/plat-omap/cpu-omap.c
> -
> -diff --git a/arch/arm/mach-omap1/Makefile b/arch/arm/mach-
> omap1/Makefile
> -index 5b114d1..9600410 100644
> ---- a/arch/arm/mach-omap1/Makefile
> -+++ b/arch/arm/mach-omap1/Makefile
> -@@ -10,6 +10,9 @@ obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
> -
> - obj-$(CONFIG_OMAP_32K_TIMER)	+= timer32k.o
> -
> -+# CPUFREQ driver
> -+obj-$(CONFIG_CPU_FREQ) += omap1-cpufreq.o
> -+
> - # Power Management
> - obj-$(CONFIG_PM) += pm.o sleep.o
> -
> -diff --git a/arch/arm/mach-omap1/omap1-cpufreq.c b/arch/arm/mach-
> omap1/omap1-cpufreq.c
> -new file mode 100644
> -index 0000000..7c5216e
> ---- /dev/null
> -+++ b/arch/arm/mach-omap1/omap1-cpufreq.c
> -@@ -0,0 +1,175 @@
> -+/*
> -+ *  OMAP1 cpufreq driver
> -+ *
> -+ *  CPU frequency scaling for OMAP
> -+ *
> -+ *  Copyright (C) 2005 Nokia Corporation
> -+ *  Written by Tony Lindgren <tony at atomide.com>
> -+ *
> -+ *  Based on cpu-sa1110.c, Copyright (C) 2001 Russell King
> -+ *
> -+ * Copyright (C) 2007-2008 Texas Instruments, Inc.
> -+ * Rajendra Nayak <rnayak at ti.com>
> -+ *
> -+ * This program is free software; you can redistribute it and/or modify
> -+ * it under the terms of the GNU General Public License version 2 as
> -+ * published by the Free Software Foundation.
> -+ */
> -+#include <linux/types.h>
> -+#include <linux/kernel.h>
> -+#include <linux/sched.h>
> -+#include <linux/cpufreq.h>
> -+#include <linux/delay.h>
> -+#include <linux/init.h>
> -+#include <linux/err.h>
> -+#include <linux/clk.h>
> -+#include <linux/io.h>
> -+#include <linux/opp.h>
> -+
> -+#include <asm/system.h>
> -+
> -+#include <plat/clock.h>
> -+#include <plat/omap-pm.h>
> -+
> -+#include <mach/hardware.h>
> -+
> -+#define VERY_HI_RATE	900000000
> -+
> -+static struct cpufreq_frequency_table *freq_table;
> -+static struct clk *mpu_clk;
> -+
> -+static int omap_verify_speed(struct cpufreq_policy *policy)
> -+{
> -+	if (freq_table)
> -+		return cpufreq_frequency_table_verify(policy, freq_table);
> -+
> -+	if (policy->cpu)
> -+		return -EINVAL;
> -+
> -+	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
> -+				     policy->cpuinfo.max_freq);
> -+
> -+	policy->min = clk_round_rate(mpu_clk, policy->min * 1000) / 1000;
> -+	policy->max = clk_round_rate(mpu_clk, policy->max * 1000) / 1000;
> -+	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
> -+				     policy->cpuinfo.max_freq);
> -+	return 0;
> -+}
> -+
> -+static unsigned int omap_getspeed(unsigned int cpu)
> -+{
> -+	unsigned long rate;
> -+
> -+	if (cpu)
> -+		return 0;
> -+
> -+	rate = clk_get_rate(mpu_clk) / 1000;
> -+	return rate;
> -+}
> -+
> -+static int omap_target(struct cpufreq_policy *policy,
> -+		       unsigned int target_freq,
> -+		       unsigned int relation)
> -+{
> -+	struct cpufreq_freqs freqs;
> -+	int ret = 0;
> -+
> -+	/* Ensure desired rate is within allowed range.  Some govenors
> -+	 * (ondemand) will just pass target_freq=0 to get the minimum. */
> -+	if (target_freq < policy->min)
> -+		target_freq = policy->min;
> -+	if (target_freq > policy->max)
> -+		target_freq = policy->max;
> -+
> -+	freqs.old = omap_getspeed(0);
> -+	freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000;
> -+	freqs.cpu = 0;
> -+
> -+	if (freqs.old == freqs.new)
> -+		return ret;
> -+
> -+	cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
> -+
> -+#ifdef CONFIG_CPU_FREQ_DEBUG
> -+	pr_info("cpufreq-omap: transition: %u --> %u\n", freqs.old, freqs.new);
> -+#endif
> -+	ret = clk_set_rate(mpu_clk, freqs.new * 1000);
> -+
> -+	cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
> -+
> -+	return ret;
> -+}
> -+
> -+static int __init omap_cpu_init(struct cpufreq_policy *policy)
> -+{
> -+	int result = 0;
> -+
> -+	mpu_clk = clk_get(NULL, "mpu");
> -+	if (IS_ERR(mpu_clk))
> -+		return PTR_ERR(mpu_clk);
> -+
> -+	if (policy->cpu != 0)
> -+		return -EINVAL;
> -+
> -+	policy->cur = policy->min = policy->max = omap_getspeed(0);
> -+
> -+	clk_init_cpufreq_table(&freq_table);
> -+
> -+	if (freq_table) {
> -+		result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
> -+		if (!result)
> -+			cpufreq_frequency_table_get_attr(freq_table,
> -+							policy->cpu);
> -+	} else {
> -+		policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) /
> 1000;
> -+		policy->cpuinfo.max_freq = clk_round_rate(mpu_clk,
> -+							VERY_HI_RATE) /
> 1000;
> -+	}
> -+
> -+	policy->min = policy->cpuinfo.min_freq;
> -+	policy->max = policy->cpuinfo.max_freq;
> -+	policy->cur = omap_getspeed(0);
> -+
> -+	/* FIXME: what's the actual transition time? */
> -+	policy->cpuinfo.transition_latency = 300 * 1000;
> -+
> -+	return 0;
> -+}
> -+
> -+static int omap_cpu_exit(struct cpufreq_policy *policy)
> -+{
> -+	clk_exit_cpufreq_table(&freq_table);
> -+	clk_put(mpu_clk);
> -+	return 0;
> -+}
> -+
> -+static struct freq_attr *omap_cpufreq_attr[] = {
> -+	&cpufreq_freq_attr_scaling_available_freqs,
> -+	NULL,
> -+};
> -+
> -+static struct cpufreq_driver omap_driver = {
> -+	.flags		= CPUFREQ_STICKY,
> -+	.verify		= omap_verify_speed,
> -+	.target		= omap_target,
> -+	.get		= omap_getspeed,
> -+	.init		= omap_cpu_init,
> -+	.exit		= omap_cpu_exit,
> -+	.name		= "omap1",
> -+	.attr		= omap_cpufreq_attr,
> -+};
> -+
> -+static int __init omap_cpufreq_init(void)
> -+{
> -+	return cpufreq_register_driver(&omap_driver);
> -+}
> -+
> -+static void __exit omap_cpufreq_exit(void)
> -+{
> -+	cpufreq_unregister_driver(&omap_driver);
> -+}
> -+
> -+MODULE_DESCRIPTION("cpufreq driver for OMAP1 SOCs");
> -+MODULE_LICENSE("GPL");
> -+module_init(omap_cpufreq_init);
> -+module_exit(omap_cpufreq_exit);
> -diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-
> omap2/Makefile
> -index 8e79ca5..7927dd6 100644
> ---- a/arch/arm/mach-omap2/Makefile
> -+++ b/arch/arm/mach-omap2/Makefile
> -@@ -56,6 +56,9 @@ obj-$(CONFIG_ARCH_OMAP3)		+=
> opp3xxx_data.o
> - obj-$(CONFIG_ARCH_OMAP4)		+= opp4xxx_data.o
> - endif
> -
> -+# CPUFREQ driver
> -+obj-$(CONFIG_CPU_FREQ)			+= omap2plus-cpufreq.o
> -+
> - # Power Management
> - ifeq ($(CONFIG_PM),y)
> - obj-$(CONFIG_ARCH_OMAP2)		+= pm24xx.o
> -diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-
> omap2/omap2plus-cpufreq.c
> -new file mode 100644
> -index 0000000..27f641b
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -@@ -0,0 +1,201 @@
> -+/*
> -+ *  OMAP2PLUS cpufreq driver
> -+ *
> -+ *  CPU frequency scaling for OMAP
> -+ *
> -+ *  Copyright (C) 2005 Nokia Corporation
> -+ *  Written by Tony Lindgren <tony at atomide.com>
> -+ *
> -+ *  Based on cpu-sa1110.c, Copyright (C) 2001 Russell King
> -+ *
> -+ * Copyright (C) 2007-2011 Texas Instruments, Inc.
> -+ * Updated to support OMAP3
> -+ * Rajendra Nayak <rnayak at ti.com>
> -+ *
> -+ * This program is free software; you can redistribute it and/or modify
> -+ * it under the terms of the GNU General Public License version 2 as
> -+ * published by the Free Software Foundation.
> -+ */
> -+#include <linux/types.h>
> -+#include <linux/kernel.h>
> -+#include <linux/sched.h>
> -+#include <linux/cpufreq.h>
> -+#include <linux/delay.h>
> -+#include <linux/init.h>
> -+#include <linux/err.h>
> -+#include <linux/clk.h>
> -+#include <linux/io.h>
> -+#include <linux/opp.h>
> -+
> -+#include <asm/system.h>
> -+#include <asm/smp_plat.h>
> -+
> -+#include <plat/clock.h>
> -+#include <plat/omap-pm.h>
> -+#include <plat/common.h>
> -+
> -+#include <mach/hardware.h>
> -+
> -+#define VERY_HI_RATE	900000000
> -+
> -+static struct cpufreq_frequency_table *freq_table;
> -+static struct clk *mpu_clk;
> -+
> -+static int omap_verify_speed(struct cpufreq_policy *policy)
> -+{
> -+	if (freq_table)
> -+		return cpufreq_frequency_table_verify(policy, freq_table);
> -+
> -+	if (policy->cpu)
> -+		return -EINVAL;
> -+
> -+	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
> -+				     policy->cpuinfo.max_freq);
> -+
> -+	policy->min = clk_round_rate(mpu_clk, policy->min * 1000) / 1000;
> -+	policy->max = clk_round_rate(mpu_clk, policy->max * 1000) / 1000;
> -+	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
> -+				     policy->cpuinfo.max_freq);
> -+	return 0;
> -+}
> -+
> -+static unsigned int omap_getspeed(unsigned int cpu)
> -+{
> -+	unsigned long rate;
> -+
> -+	if (cpu)
> -+		return 0;
> -+
> -+	rate = clk_get_rate(mpu_clk) / 1000;
> -+	return rate;
> -+}
> -+
> -+static int omap_target(struct cpufreq_policy *policy,
> -+		       unsigned int target_freq,
> -+		       unsigned int relation)
> -+{
> -+	int ret = 0;
> -+	struct cpufreq_freqs freqs;
> -+
> -+	/* Ensure desired rate is within allowed range.  Some govenors
> -+	 * (ondemand) will just pass target_freq=0 to get the minimum. */
> -+	if (target_freq < policy->min)
> -+		target_freq = policy->min;
> -+	if (target_freq > policy->max)
> -+		target_freq = policy->max;
> -+
> -+	freqs.old = omap_getspeed(0);
> -+	freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000;
> -+	freqs.cpu = 0;
> -+
> -+	if (freqs.old == freqs.new)
> -+		return ret;
> -+
> -+	cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
> -+
> -+#ifdef CONFIG_CPU_FREQ_DEBUG
> -+	pr_info("cpufreq-omap: transition: %u --> %u\n", freqs.old, freqs.new);
> -+#endif
> -+
> -+	ret = clk_set_rate(mpu_clk, freqs.new * 1000);
> -+
> -+	/*
> -+	 * Generic CPUFREQ driver jiffy update is under !SMP. So jiffies
> -+	 * won't get updated when UP machine cpufreq build with
> -+	 * CONFIG_SMP enabled. Below code is added only to manage that
> -+	 * scenario
> -+	 */
> -+	if (!is_smp())
> -+		loops_per_jiffy =
> -+			 cpufreq_scale(loops_per_jiffy, freqs.old, freqs.new);
> -+
> -+	cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
> -+
> -+	return ret;
> -+}
> -+
> -+static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
> -+{
> -+	int result = 0;
> -+	struct device *mpu_dev;
> -+
> -+	if (cpu_is_omap24xx())
> -+		mpu_clk = clk_get(NULL, "virt_prcm_set");
> -+	else if (cpu_is_omap34xx())
> -+		mpu_clk = clk_get(NULL, "dpll1_ck");
> -+	else if (cpu_is_omap34xx())
> -+		mpu_clk = clk_get(NULL, "dpll_mpu_ck");
> -+
> -+	if (IS_ERR(mpu_clk))
> -+		return PTR_ERR(mpu_clk);
> -+
> -+	if (policy->cpu != 0)
> -+		return -EINVAL;
> -+
> -+	policy->cur = policy->min = policy->max = omap_getspeed(0);
> -+
> -+	mpu_dev = omap2_get_mpuss_device();
> -+	if (!mpu_dev) {
> -+		pr_warning("%s: unable to get the mpu device\n", __func__);
> -+		return -EINVAL;
> -+	}
> -+	opp_init_cpufreq_table(mpu_dev, &freq_table);
> -+
> -+	if (freq_table) {
> -+		result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
> -+		if (!result)
> -+			cpufreq_frequency_table_get_attr(freq_table,
> -+							policy->cpu);
> -+	} else {
> -+		policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) /
> 1000;
> -+		policy->cpuinfo.max_freq = clk_round_rate(mpu_clk,
> -+							VERY_HI_RATE) /
> 1000;
> -+	}
> -+
> -+	policy->min = policy->cpuinfo.min_freq;
> -+	policy->max = policy->cpuinfo.max_freq;
> -+	policy->cur = omap_getspeed(0);
> -+
> -+	/* FIXME: what's the actual transition time? */
> -+	policy->cpuinfo.transition_latency = 300 * 1000;
> -+
> -+	return 0;
> -+}
> -+
> -+static int omap_cpu_exit(struct cpufreq_policy *policy)
> -+{
> -+	clk_exit_cpufreq_table(&freq_table);
> -+	clk_put(mpu_clk);
> -+	return 0;
> -+}
> -+
> -+static struct freq_attr *omap_cpufreq_attr[] = {
> -+	&cpufreq_freq_attr_scaling_available_freqs,
> -+	NULL,
> -+};
> -+
> -+static struct cpufreq_driver omap_driver = {
> -+	.flags		= CPUFREQ_STICKY,
> -+	.verify		= omap_verify_speed,
> -+	.target		= omap_target,
> -+	.get		= omap_getspeed,
> -+	.init		= omap_cpu_init,
> -+	.exit		= omap_cpu_exit,
> -+	.name		= "omap2plus",
> -+	.attr		= omap_cpufreq_attr,
> -+};
> -+
> -+static int __init omap_cpufreq_init(void)
> -+{
> -+	return cpufreq_register_driver(&omap_driver);
> -+}
> -+
> -+static void __exit omap_cpufreq_exit(void)
> -+{
> -+	cpufreq_unregister_driver(&omap_driver);
> -+}
> -+
> -+MODULE_DESCRIPTION("cpufreq driver for OMAP2PLUS SOCs");
> -+MODULE_LICENSE("GPL");
> -+module_init(omap_cpufreq_init);
> -+module_exit(omap_cpufreq_exit);
> -diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile
> -index f0233e6..4ef7493 100644
> ---- a/arch/arm/plat-omap/Makefile
> -+++ b/arch/arm/plat-omap/Makefile
> -@@ -21,7 +21,6 @@ obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
> - obj-$(CONFIG_OMAP_IOMMU) += iommu.o iovmm.o
> - obj-$(CONFIG_OMAP_IOMMU_DEBUG) += iommu-debug.o
> -
> --obj-$(CONFIG_CPU_FREQ) += cpu-omap.o
> - obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o
> - obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o
> - obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o
> -diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-
> omap.c
> -deleted file mode 100644
> -index 9cd2709..0000000
> ---- a/arch/arm/plat-omap/cpu-omap.c
> -+++ /dev/null
> -@@ -1,204 +0,0 @@
> --/*
> -- *  linux/arch/arm/plat-omap/cpu-omap.c
> -- *
> -- *  CPU frequency scaling for OMAP
> -- *
> -- *  Copyright (C) 2005 Nokia Corporation
> -- *  Written by Tony Lindgren <tony at atomide.com>
> -- *
> -- *  Based on cpu-sa1110.c, Copyright (C) 2001 Russell King
> -- *
> -- * Copyright (C) 2007-2008 Texas Instruments, Inc.
> -- * Updated to support OMAP3
> -- * Rajendra Nayak <rnayak at ti.com>
> -- *
> -- * This program is free software; you can redistribute it and/or modify
> -- * it under the terms of the GNU General Public License version 2 as
> -- * published by the Free Software Foundation.
> -- */
> --#include <linux/types.h>
> --#include <linux/kernel.h>
> --#include <linux/sched.h>
> --#include <linux/cpufreq.h>
> --#include <linux/delay.h>
> --#include <linux/init.h>
> --#include <linux/err.h>
> --#include <linux/clk.h>
> --#include <linux/io.h>
> --#include <linux/opp.h>
> --
> --#include <mach/hardware.h>
> --#include <plat/clock.h>
> --#include <asm/system.h>
> --
> --#if defined(CONFIG_ARCH_OMAP3) &&
> !defined(CONFIG_OMAP_PM_NONE)
> --#include <plat/omap-pm.h>
> --#include <plat/common.h>
> --#endif
> --
> --#define VERY_HI_RATE	900000000
> --
> --static struct cpufreq_frequency_table *freq_table;
> --
> --#ifdef CONFIG_ARCH_OMAP1
> --#define MPU_CLK		"mpu"
> --#elif defined(CONFIG_ARCH_OMAP3)
> --#define MPU_CLK		"arm_fck"
> --#else
> --#define MPU_CLK		"virt_prcm_set"
> --#endif
> --
> --static struct clk *mpu_clk;
> --
> --/* TODO: Add support for SDRAM timing changes */
> --
> --static int omap_verify_speed(struct cpufreq_policy *policy)
> --{
> --	if (freq_table)
> --		return cpufreq_frequency_table_verify(policy, freq_table);
> --
> --	if (policy->cpu)
> --		return -EINVAL;
> --
> --	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
> --				     policy->cpuinfo.max_freq);
> --
> --	policy->min = clk_round_rate(mpu_clk, policy->min * 1000) / 1000;
> --	policy->max = clk_round_rate(mpu_clk, policy->max * 1000) / 1000;
> --	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
> --				     policy->cpuinfo.max_freq);
> --	return 0;
> --}
> --
> --static unsigned int omap_getspeed(unsigned int cpu)
> --{
> --	unsigned long rate;
> --
> --	if (cpu)
> --		return 0;
> --
> --	rate = clk_get_rate(mpu_clk) / 1000;
> --	return rate;
> --}
> --
> --static int omap_target(struct cpufreq_policy *policy,
> --		       unsigned int target_freq,
> --		       unsigned int relation)
> --{
> --#ifdef CONFIG_ARCH_OMAP1
> --	struct cpufreq_freqs freqs;
> --#endif
> --#if defined(CONFIG_ARCH_OMAP3) &&
> !defined(CONFIG_OMAP_PM_NONE)
> --	unsigned long freq;
> --	struct device *mpu_dev = omap2_get_mpuss_device();
> --#endif
> --	int ret = 0;
> --
> --	/* Ensure desired rate is within allowed range.  Some govenors
> --	 * (ondemand) will just pass target_freq=0 to get the minimum. */
> --	if (target_freq < policy->min)
> --		target_freq = policy->min;
> --	if (target_freq > policy->max)
> --		target_freq = policy->max;
> --
> --#ifdef CONFIG_ARCH_OMAP1
> --	freqs.old = omap_getspeed(0);
> --	freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000;
> --	freqs.cpu = 0;
> --
> --	if (freqs.old == freqs.new)
> --		return ret;
> --	cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
> --#ifdef CONFIG_CPU_FREQ_DEBUG
> --	printk(KERN_DEBUG "cpufreq-omap: transition: %u --> %u\n",
> --	       freqs.old, freqs.new);
> --#endif
> --	ret = clk_set_rate(mpu_clk, freqs.new * 1000);
> --	cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
> --#elif defined(CONFIG_ARCH_OMAP3) &&
> !defined(CONFIG_OMAP_PM_NONE)
> --	freq = target_freq * 1000;
> --	if (opp_find_freq_ceil(mpu_dev, &freq))
> --		omap_pm_cpu_set_freq(freq);
> --#endif
> --	return ret;
> --}
> --
> --static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
> --{
> --	int result = 0;
> --
> --	mpu_clk = clk_get(NULL, MPU_CLK);
> --	if (IS_ERR(mpu_clk))
> --		return PTR_ERR(mpu_clk);
> --
> --	if (policy->cpu != 0)
> --		return -EINVAL;
> --
> --	policy->cur = policy->min = policy->max = omap_getspeed(0);
> --
> --	if (!cpu_is_omap34xx()) {
> --		clk_init_cpufreq_table(&freq_table);
> --	} else {
> --		struct device *mpu_dev = omap2_get_mpuss_device();
> --
> --		opp_init_cpufreq_table(mpu_dev, &freq_table);
> --	}
> --
> --	if (freq_table) {
> --		result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
> --		if (!result)
> --			cpufreq_frequency_table_get_attr(freq_table,
> --							policy->cpu);
> --	} else {
> --		policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) /
> 1000;
> --		policy->cpuinfo.max_freq = clk_round_rate(mpu_clk,
> --							VERY_HI_RATE) /
> 1000;
> --	}
> --
> --	policy->min = policy->cpuinfo.min_freq;
> --	policy->max = policy->cpuinfo.max_freq;
> --	policy->cur = omap_getspeed(0);
> --
> --	/* FIXME: what's the actual transition time? */
> --	policy->cpuinfo.transition_latency = 300 * 1000;
> --
> --	return 0;
> --}
> --
> --static int omap_cpu_exit(struct cpufreq_policy *policy)
> --{
> --	clk_exit_cpufreq_table(&freq_table);
> --	clk_put(mpu_clk);
> --	return 0;
> --}
> --
> --static struct freq_attr *omap_cpufreq_attr[] = {
> --	&cpufreq_freq_attr_scaling_available_freqs,
> --	NULL,
> --};
> --
> --static struct cpufreq_driver omap_driver = {
> --	.flags		= CPUFREQ_STICKY,
> --	.verify		= omap_verify_speed,
> --	.target		= omap_target,
> --	.get		= omap_getspeed,
> --	.init		= omap_cpu_init,
> --	.exit		= omap_cpu_exit,
> --	.name		= "omap",
> --	.attr		= omap_cpufreq_attr,
> --};
> --
> --static int __init omap_cpufreq_init(void)
> --{
> --	return cpufreq_register_driver(&omap_driver);
> --}
> --
> --late_initcall(omap_cpufreq_init);
> --
> --/*
> -- * if ever we want to remove this, upon cleanup call:
> -- *
> -- * cpufreq_unregister_driver()
> -- * cpufreq_frequency_table_put_attr()
> -- */
> --
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0008-OMAP2PLUS-
> cpufreq-Add-SMP-support-to-cater-OMAP4430.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/cpufreq/0008-OMAP2PLUS-cpufreq-Add-SMP-
> support-to-cater-OMAP4430.patch
> deleted file mode 100644
> index a152c7f..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0008-OMAP2PLUS-
> cpufreq-Add-SMP-support-to-cater-OMAP4430.patch
> +++ /dev/null
> @@ -1,171 +0,0 @@
> -From fed2c5a3d929204d4fc18c6f4a3edbf920e7ee36 Mon Sep 17 00:00:00
> 2001
> -From: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -Date: Mon, 14 Mar 2011 17:08:49 +0530
> -Subject: [PATCH 08/19] OMAP2PLUS: cpufreq: Add SMP support to cater
> OMAP4430
> -
> -On OMAP SMP configuartion, both processors share the voltage
> -and clock. So both CPUs needs to be scaled together and hence
> -needs software co-ordination.
> -
> -Signed-off-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -Cc: Kevin Hilman <khilman at ti.com>
> -cc: Vishwanath BS <vishwanath.bs at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/omap2plus-cpufreq.c |   73
> ++++++++++++++++++++++++++-----
> - 1 files changed, 62 insertions(+), 11 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-
> omap2/omap2plus-cpufreq.c
> -index 27f641b..3730f96 100644
> ---- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -@@ -26,9 +26,11 @@
> - #include <linux/clk.h>
> - #include <linux/io.h>
> - #include <linux/opp.h>
> -+#include <linux/cpu.h>
> -
> - #include <asm/system.h>
> - #include <asm/smp_plat.h>
> -+#include <asm/cpu.h>
> -
> - #include <plat/clock.h>
> - #include <plat/omap-pm.h>
> -@@ -63,7 +65,7 @@ static unsigned int omap_getspeed(unsigned int cpu)
> - {
> - 	unsigned long rate;
> -
> --	if (cpu)
> -+	if (cpu >= NR_CPUS)
> - 		return 0;
> -
> - 	rate = clk_get_rate(mpu_clk) / 1000;
> -@@ -74,9 +76,13 @@ static int omap_target(struct cpufreq_policy *policy,
> - 		       unsigned int target_freq,
> - 		       unsigned int relation)
> - {
> --	int ret = 0;
> -+	int i, ret = 0;
> - 	struct cpufreq_freqs freqs;
> -
> -+	/* Changes not allowed until all CPUs are online */
> -+	if (is_smp() && (num_online_cpus() < NR_CPUS))
> -+		return ret;
> -+
> - 	/* Ensure desired rate is within allowed range.  Some govenors
> - 	 * (ondemand) will just pass target_freq=0 to get the minimum. */
> - 	if (target_freq < policy->min)
> -@@ -84,15 +90,25 @@ static int omap_target(struct cpufreq_policy *policy,
> - 	if (target_freq > policy->max)
> - 		target_freq = policy->max;
> -
> --	freqs.old = omap_getspeed(0);
> -+	freqs.old = omap_getspeed(policy->cpu);
> - 	freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000;
> --	freqs.cpu = 0;
> -+	freqs.cpu = policy->cpu;
> -
> - 	if (freqs.old == freqs.new)
> - 		return ret;
> -
> --	cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
> -+	if (!is_smp()) {
> -+		cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
> -+		goto set_freq;
> -+	}
> -+
> -+	/* notifiers */
> -+	for_each_cpu(i, policy->cpus) {
> -+		freqs.cpu = i;
> -+		cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
> -+	}
> -
> -+set_freq:
> - #ifdef CONFIG_CPU_FREQ_DEBUG
> - 	pr_info("cpufreq-omap: transition: %u --> %u\n", freqs.old, freqs.new);
> - #endif
> -@@ -105,12 +121,33 @@ static int omap_target(struct cpufreq_policy
> *policy,
> - 	 * CONFIG_SMP enabled. Below code is added only to manage that
> - 	 * scenario
> - 	 */
> --	if (!is_smp())
> -+	freqs.new = omap_getspeed(policy->cpu);
> -+	if (!is_smp()) {
> - 		loops_per_jiffy =
> - 			 cpufreq_scale(loops_per_jiffy, freqs.old, freqs.new);
> -+		cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
> -+		goto skip_lpj;
> -+	}
> -
> --	cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
> -+#ifdef CONFIG_SMP
> -+	/*
> -+	 * Note that loops_per_jiffy is not updated on SMP systems in
> -+	 * cpufreq driver. So, update the per-CPU loops_per_jiffy value
> -+	 * on frequency transition. We need to update all dependent CPUs.
> -+	 */
> -+	for_each_cpu(i, policy->cpus)
> -+		per_cpu(cpu_data, i).loops_per_jiffy =
> -+			cpufreq_scale(per_cpu(cpu_data, i).loops_per_jiffy,
> -+					freqs.old, freqs.new);
> -+#endif
> -
> -+	/* notifiers */
> -+	for_each_cpu(i, policy->cpus) {
> -+		freqs.cpu = i;
> -+		cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
> -+	}
> -+
> -+skip_lpj:
> - 	return ret;
> - }
> -
> -@@ -118,6 +155,7 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> - {
> - 	int result = 0;
> - 	struct device *mpu_dev;
> -+	static cpumask_var_t cpumask;
> -
> - 	if (cpu_is_omap24xx())
> - 		mpu_clk = clk_get(NULL, "virt_prcm_set");
> -@@ -129,12 +167,12 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> - 	if (IS_ERR(mpu_clk))
> - 		return PTR_ERR(mpu_clk);
> -
> --	if (policy->cpu != 0)
> -+	if (policy->cpu >= NR_CPUS)
> - 		return -EINVAL;
> -
> --	policy->cur = policy->min = policy->max = omap_getspeed(0);
> --
> -+	policy->cur = policy->min = policy->max = omap_getspeed(policy-
> >cpu);
> - 	mpu_dev = omap2_get_mpuss_device();
> -+
> - 	if (!mpu_dev) {
> - 		pr_warning("%s: unable to get the mpu device\n", __func__);
> - 		return -EINVAL;
> -@@ -154,7 +192,20 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> -
> - 	policy->min = policy->cpuinfo.min_freq;
> - 	policy->max = policy->cpuinfo.max_freq;
> --	policy->cur = omap_getspeed(0);
> -+	policy->cur = omap_getspeed(policy->cpu);
> -+
> -+	/*
> -+	 * On OMAP SMP configuartion, both processors share the voltage
> -+	 * and clock. So both CPUs needs to be scaled together and hence
> -+	 * needs software co-ordination. Use cpufreq affected_cpus
> -+	 * interface to handle this scenario. Additional is_smp() check
> -+	 * is to keep SMP_ON_UP build working.
> -+	 */
> -+	if (is_smp()) {
> -+		policy->shared_type = CPUFREQ_SHARED_TYPE_ANY;
> -+		cpumask_or(cpumask, cpumask_of(policy->cpu), cpumask);
> -+		cpumask_copy(policy->cpus, cpumask);
> -+	}
> -
> - 	/* FIXME: what's the actual transition time? */
> - 	policy->cpuinfo.transition_latency = 300 * 1000;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0009-OMAP2PLUS-
> cpufreq-Fix-typo-when-attempting-to-set-mp.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/cpufreq/0009-OMAP2PLUS-cpufreq-Fix-typo-
> when-attempting-to-set-mp.patch
> deleted file mode 100644
> index c8328b2..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0009-OMAP2PLUS-
> cpufreq-Fix-typo-when-attempting-to-set-mp.patch
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -From d046bd12930aa5daf951d9af8614c60677c8ff15 Mon Sep 17 00:00:00
> 2001
> -From: Jarkko Nikula <jhnikula at gmail.com>
> -Date: Thu, 14 Apr 2011 16:21:58 +0300
> -Subject: [PATCH 09/19] OMAP2PLUS: cpufreq: Fix typo when attempting to set
> mpu_clk for OMAP4
> -
> -Fix this typo as there is no dpll_mpu_ck for OMAP3 and code flow is clearly
> -trying to set mpu_clk for OMAP4 for which this dpll_mpu_ck is available.
> -
> -Signed-off-by: Jarkko Nikula <jhnikula at gmail.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/omap2plus-cpufreq.c |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-
> omap2/omap2plus-cpufreq.c
> -index 3730f96..a725d90 100644
> ---- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -@@ -161,7 +161,7 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> - 		mpu_clk = clk_get(NULL, "virt_prcm_set");
> - 	else if (cpu_is_omap34xx())
> - 		mpu_clk = clk_get(NULL, "dpll1_ck");
> --	else if (cpu_is_omap34xx())
> -+	else if (cpu_is_omap44xx())
> - 		mpu_clk = clk_get(NULL, "dpll_mpu_ck");
> -
> - 	if (IS_ERR(mpu_clk))
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0010-OMAP2-
> cpufreq-move-clk-name-decision-to-init.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/cpufreq/0010-OMAP2-cpufreq-move-clk-name-decision-to-
> init.patch
> deleted file mode 100644
> index d1c1ea5..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0010-OMAP2-cpufreq-
> move-clk-name-decision-to-init.patch
> +++ /dev/null
> @@ -1,64 +0,0 @@
> -From 0ec2aee24f701ecd6135dce0b3f1a71249583689 Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Wed, 25 May 2011 16:38:46 -0700
> -Subject: [PATCH 10/19] OMAP2+: cpufreq: move clk name decision to init
> -
> -Clk name does'nt need to dynamically detected during clk init.
> -move them off to driver initialization, if we dont have a clk name,
> -there is no point in registering the driver anyways. The actual clk
> -get and put is left at cpu_init and exit functions.
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/omap2plus-cpufreq.c |   20 +++++++++++++-------
> - 1 files changed, 13 insertions(+), 7 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-
> omap2/omap2plus-cpufreq.c
> -index a725d90..c46d0cd 100644
> ---- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -@@ -42,6 +42,7 @@
> -
> - static struct cpufreq_frequency_table *freq_table;
> - static struct clk *mpu_clk;
> -+static char *mpu_clk_name;
> -
> - static int omap_verify_speed(struct cpufreq_policy *policy)
> - {
> -@@ -157,13 +158,7 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> - 	struct device *mpu_dev;
> - 	static cpumask_var_t cpumask;
> -
> --	if (cpu_is_omap24xx())
> --		mpu_clk = clk_get(NULL, "virt_prcm_set");
> --	else if (cpu_is_omap34xx())
> --		mpu_clk = clk_get(NULL, "dpll1_ck");
> --	else if (cpu_is_omap44xx())
> --		mpu_clk = clk_get(NULL, "dpll_mpu_ck");
> --
> -+	mpu_clk = clk_get(NULL, mpu_clk_name);
> - 	if (IS_ERR(mpu_clk))
> - 		return PTR_ERR(mpu_clk);
> -
> -@@ -238,6 +233,17 @@ static struct cpufreq_driver omap_driver = {
> -
> - static int __init omap_cpufreq_init(void)
> - {
> -+	if (cpu_is_omap24xx())
> -+		mpu_clk_name = "virt_prcm_set";
> -+	else if (cpu_is_omap34xx())
> -+		mpu_clk_name = "dpll1_ck";
> -+	else if (cpu_is_omap44xx())
> -+		mpu_clk_name = "dpll_mpu_ck";
> -+
> -+	if (!mpu_clk_name) {
> -+		pr_err("%s: unsupported Silicon?\n", __func__);
> -+		return -EINVAL;
> -+	}
> - 	return cpufreq_register_driver(&omap_driver);
> - }
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0011-OMAP2-
> cpufreq-deny-initialization-if-no-mpudev.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/cpufreq/0011-OMAP2-cpufreq-deny-initialization-if-no-
> mpudev.patch
> deleted file mode 100644
> index b37c004..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0011-OMAP2-cpufreq-
> deny-initialization-if-no-mpudev.patch
> +++ /dev/null
> @@ -1,64 +0,0 @@
> -From 7c76e002041cd5b084c9a8b6729ab33acf53643e Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Wed, 25 May 2011 16:38:47 -0700
> -Subject: [PATCH 11/19] OMAP2+: cpufreq: deny initialization if no mpudev
> -
> -if we do not have mpu_dev we normally fail in cpu_init. It is better
> -to fail driver registration if the devices are not available.
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/omap2plus-cpufreq.c |   15 ++++++++-------
> - 1 files changed, 8 insertions(+), 7 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-
> omap2/omap2plus-cpufreq.c
> -index c46d0cd..33a91ec 100644
> ---- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -@@ -43,6 +43,7 @@
> - static struct cpufreq_frequency_table *freq_table;
> - static struct clk *mpu_clk;
> - static char *mpu_clk_name;
> -+static struct device *mpu_dev;
> -
> - static int omap_verify_speed(struct cpufreq_policy *policy)
> - {
> -@@ -155,7 +156,6 @@ skip_lpj:
> - static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
> - {
> - 	int result = 0;
> --	struct device *mpu_dev;
> - 	static cpumask_var_t cpumask;
> -
> - 	mpu_clk = clk_get(NULL, mpu_clk_name);
> -@@ -166,12 +166,6 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> - 		return -EINVAL;
> -
> - 	policy->cur = policy->min = policy->max = omap_getspeed(policy-
> >cpu);
> --	mpu_dev = omap2_get_mpuss_device();
> --
> --	if (!mpu_dev) {
> --		pr_warning("%s: unable to get the mpu device\n", __func__);
> --		return -EINVAL;
> --	}
> - 	opp_init_cpufreq_table(mpu_dev, &freq_table);
> -
> - 	if (freq_table) {
> -@@ -244,6 +238,13 @@ static int __init omap_cpufreq_init(void)
> - 		pr_err("%s: unsupported Silicon?\n", __func__);
> - 		return -EINVAL;
> - 	}
> -+
> -+	mpu_dev = omap2_get_mpuss_device();
> -+	if (!mpu_dev) {
> -+		pr_warning("%s: unable to get the mpu device\n", __func__);
> -+		return -EINVAL;
> -+	}
> -+
> - 	return cpufreq_register_driver(&omap_driver);
> - }
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0012-OMAP2-
> cpufreq-dont-support-freq_table.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/cpufreq/0012-OMAP2-cpufreq-dont-support-freq_table.patch
> deleted file mode 100644
> index 33ffe54..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0012-OMAP2-cpufreq-
> dont-support-freq_table.patch
> +++ /dev/null
> @@ -1,129 +0,0 @@
> -From 407f4d9ed824d458406f139a7698c74a1eb3b8f7 Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Thu, 26 May 2011 19:39:17 -0700
> -Subject: [PATCH 12/19] OMAP2+: cpufreq: dont support !freq_table
> -
> -OMAP2+ all have frequency tables, hence the hacks we had for older
> -silicon do not need to be carried forward. As part of this change,
> -use cpufreq_frequency_table_target to find the best match for
> -frequency requested.
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/omap2plus-cpufreq.c |   67 +++++++++++++++--------
> --------
> - 1 files changed, 33 insertions(+), 34 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-
> omap2/omap2plus-cpufreq.c
> -index 33a91ec..acf18e8 100644
> ---- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -@@ -38,8 +38,6 @@
> -
> - #include <mach/hardware.h>
> -
> --#define VERY_HI_RATE	900000000
> --
> - static struct cpufreq_frequency_table *freq_table;
> - static struct clk *mpu_clk;
> - static char *mpu_clk_name;
> -@@ -47,20 +45,9 @@ static struct device *mpu_dev;
> -
> - static int omap_verify_speed(struct cpufreq_policy *policy)
> - {
> --	if (freq_table)
> --		return cpufreq_frequency_table_verify(policy, freq_table);
> --
> --	if (policy->cpu)
> -+	if (!freq_table)
> - 		return -EINVAL;
> --
> --	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
> --				     policy->cpuinfo.max_freq);
> --
> --	policy->min = clk_round_rate(mpu_clk, policy->min * 1000) / 1000;
> --	policy->max = clk_round_rate(mpu_clk, policy->max * 1000) / 1000;
> --	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
> --				     policy->cpuinfo.max_freq);
> --	return 0;
> -+	return cpufreq_frequency_table_verify(policy, freq_table);
> - }
> -
> - static unsigned int omap_getspeed(unsigned int cpu)
> -@@ -78,22 +65,35 @@ static int omap_target(struct cpufreq_policy *policy,
> - 		       unsigned int target_freq,
> - 		       unsigned int relation)
> - {
> --	int i, ret = 0;
> -+	unsigned int i;
> -+	int ret = 0;
> - 	struct cpufreq_freqs freqs;
> -
> - 	/* Changes not allowed until all CPUs are online */
> - 	if (is_smp() && (num_online_cpus() < NR_CPUS))
> - 		return ret;
> -
> --	/* Ensure desired rate is within allowed range.  Some govenors
> --	 * (ondemand) will just pass target_freq=0 to get the minimum. */
> --	if (target_freq < policy->min)
> --		target_freq = policy->min;
> --	if (target_freq > policy->max)
> --		target_freq = policy->max;
> -+	if (!freq_table) {
> -+		dev_err(mpu_dev, "%s: cpu%d: no freq table!\n", __func__,
> -+				policy->cpu);
> -+		return -EINVAL;
> -+	}
> -+
> -+	ret = cpufreq_frequency_table_target(policy, freq_table, target_freq,
> -+			relation, &i);
> -+	if (ret) {
> -+		dev_dbg(mpu_dev, "%s: cpu%d: no freq match for
> %d(ret=%d)\n",
> -+			__func__, policy->cpu, target_freq, ret);
> -+		return ret;
> -+	}
> -+	freqs.new = freq_table[i].frequency;
> -+	if (!freqs.new) {
> -+		dev_err(mpu_dev, "%s: cpu%d: no match for freq %d\n",
> __func__,
> -+			policy->cpu, target_freq);
> -+		return -EINVAL;
> -+	}
> -
> - 	freqs.old = omap_getspeed(policy->cpu);
> --	freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000;
> - 	freqs.cpu = policy->cpu;
> -
> - 	if (freqs.old == freqs.new)
> -@@ -166,19 +166,18 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> - 		return -EINVAL;
> -
> - 	policy->cur = policy->min = policy->max = omap_getspeed(policy-
> >cpu);
> --	opp_init_cpufreq_table(mpu_dev, &freq_table);
> --
> --	if (freq_table) {
> --		result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
> --		if (!result)
> --			cpufreq_frequency_table_get_attr(freq_table,
> --							policy->cpu);
> --	} else {
> --		policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) /
> 1000;
> --		policy->cpuinfo.max_freq = clk_round_rate(mpu_clk,
> --							VERY_HI_RATE) /
> 1000;
> -+	result = opp_init_cpufreq_table(mpu_dev, &freq_table);
> -+
> -+	if (result) {
> -+		dev_err(mpu_dev, "%s: cpu%d: failed creating freq
> table[%d]\n",
> -+				__func__, policy->cpu, result);
> -+		return result;
> - 	}
> -
> -+	result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
> -+	if (!result)
> -+		cpufreq_frequency_table_get_attr(freq_table, policy->cpu);
> -+
> - 	policy->min = policy->cpuinfo.min_freq;
> - 	policy->max = policy->cpuinfo.max_freq;
> - 	policy->cur = omap_getspeed(policy->cpu);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0013-OMAP2-
> cpufreq-only-supports-OPP-library.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/cpufreq/0013-OMAP2-cpufreq-only-supports-OPP-library.patch
> deleted file mode 100644
> index d5db432..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0013-OMAP2-cpufreq-
> only-supports-OPP-library.patch
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -From 525df87add27c07a76e06c45f0756b204a5a3880 Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Thu, 26 May 2011 19:39:18 -0700
> -Subject: [PATCH 13/19] OMAP2+: cpufreq: only supports OPP library
> -
> -OMAP2 is the only family using clk_[init|exit]_cpufreq_table, however,
> -the cpufreq code does not currently use clk_init_cpufreq_table. As a
> -result, it is unusuable for OMAP2 and only usable only on platforms
> -using OPP library.
> -
> -Remove the unbalanced clk_exit_cpufreq_table().  Any platforms where
> -OPPs are not availble will fail on init because a freq table will not
> -be properly initialized.
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -[khilman at ti.com: changelog edits, and graceful failure mode changes]
> -Acked-by: Kevin Hilman <khilman at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/omap2plus-cpufreq.c |    3 +--
> - 1 files changed, 1 insertions(+), 2 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-
> omap2/omap2plus-cpufreq.c
> -index acf18e8..3af7cda 100644
> ---- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -@@ -1,7 +1,7 @@
> - /*
> -  *  OMAP2PLUS cpufreq driver
> -  *
> -- *  CPU frequency scaling for OMAP
> -+ *  CPU frequency scaling for OMAP using OPP information
> -  *
> -  *  Copyright (C) 2005 Nokia Corporation
> -  *  Written by Tony Lindgren <tony at atomide.com>
> -@@ -203,7 +203,6 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> -
> - static int omap_cpu_exit(struct cpufreq_policy *policy)
> - {
> --	clk_exit_cpufreq_table(&freq_table);
> - 	clk_put(mpu_clk);
> - 	return 0;
> - }
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0014-OMAP2-
> cpufreq-put-clk-if-cpu_init-failed.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/cpufreq/0014-OMAP2-cpufreq-put-clk-if-cpu_init-failed.patch
> deleted file mode 100644
> index 709a555..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0014-OMAP2-cpufreq-
> put-clk-if-cpu_init-failed.patch
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -From b0f40f6545e9ae32b6cbd2cb03561de805297bf5 Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Thu, 26 May 2011 19:39:19 -0700
> -Subject: [PATCH 14/19] OMAP2+: cpufreq: put clk if cpu_init failed
> -
> -Release the mpu_clk in fail paths.
> -
> -Reported-by: Todd Poynor <toddpoynor at google.com>
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/omap2plus-cpufreq.c |   14 +++++++++++---
> - 1 files changed, 11 insertions(+), 3 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-
> omap2/omap2plus-cpufreq.c
> -index 3af7cda..e019297 100644
> ---- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -@@ -162,8 +162,10 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> - 	if (IS_ERR(mpu_clk))
> - 		return PTR_ERR(mpu_clk);
> -
> --	if (policy->cpu >= NR_CPUS)
> --		return -EINVAL;
> -+	if (policy->cpu >= NR_CPUS) {
> -+		result = -EINVAL;
> -+		goto fail_ck;
> -+	}
> -
> - 	policy->cur = policy->min = policy->max = omap_getspeed(policy-
> >cpu);
> - 	result = opp_init_cpufreq_table(mpu_dev, &freq_table);
> -@@ -171,12 +173,14 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> - 	if (result) {
> - 		dev_err(mpu_dev, "%s: cpu%d: failed creating freq
> table[%d]\n",
> - 				__func__, policy->cpu, result);
> --		return result;
> -+		goto fail_ck;
> - 	}
> -
> - 	result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
> - 	if (!result)
> - 		cpufreq_frequency_table_get_attr(freq_table, policy->cpu);
> -+	else
> -+		goto fail_ck;
> -
> - 	policy->min = policy->cpuinfo.min_freq;
> - 	policy->max = policy->cpuinfo.max_freq;
> -@@ -199,6 +203,10 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> - 	policy->cpuinfo.transition_latency = 300 * 1000;
> -
> - 	return 0;
> -+
> -+fail_ck:
> -+	clk_put(mpu_clk);
> -+	return result;
> - }
> -
> - static int omap_cpu_exit(struct cpufreq_policy *policy)
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0015-OMAP2-
> cpufreq-fix-freq_table-leak.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/cpufreq/0015-OMAP2-cpufreq-fix-freq_table-leak.patch
> deleted file mode 100644
> index a1080e6..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0015-OMAP2-cpufreq-fix-
> freq_table-leak.patch
> +++ /dev/null
> @@ -1,90 +0,0 @@
> -From 67324a92ca4778fb6be86058c91ac7c9442ede16 Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Thu, 26 May 2011 19:39:20 -0700
> -Subject: [PATCH 15/19] OMAP2+: cpufreq: fix freq_table leak
> -
> -We use a single frequency table for multiple CPUs. But, with
> -OMAP4, since we have multiple CPUs, the cpu_init call for CPU1
> -causes freq_table previously allocated for CPU0 to be overwritten.
> -In addition, we dont free the table on exit path.
> -
> -We solve this by maintaining an atomic type counter to ensure
> -just a single table exists at a given time.
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/omap2plus-cpufreq.c |   22 +++++++++++++++++-----
> - 1 files changed, 17 insertions(+), 5 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-
> omap2/omap2plus-cpufreq.c
> -index e019297..a962a31 100644
> ---- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -@@ -39,6 +39,7 @@
> - #include <mach/hardware.h>
> -
> - static struct cpufreq_frequency_table *freq_table;
> -+static atomic_t freq_table_users = ATOMIC_INIT(0);
> - static struct clk *mpu_clk;
> - static char *mpu_clk_name;
> - static struct device *mpu_dev;
> -@@ -153,6 +154,12 @@ skip_lpj:
> - 	return ret;
> - }
> -
> -+static inline void freq_table_free(void)
> -+{
> -+	if (atomic_dec_and_test(&freq_table_users))
> -+		opp_free_cpufreq_table(mpu_dev, &freq_table);
> -+}
> -+
> - static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
> - {
> - 	int result = 0;
> -@@ -168,7 +175,9 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> - 	}
> -
> - 	policy->cur = policy->min = policy->max = omap_getspeed(policy-
> >cpu);
> --	result = opp_init_cpufreq_table(mpu_dev, &freq_table);
> -+
> -+	if (atomic_inc_return(&freq_table_users) == 1)
> -+		result = opp_init_cpufreq_table(mpu_dev, &freq_table);
> -
> - 	if (result) {
> - 		dev_err(mpu_dev, "%s: cpu%d: failed creating freq
> table[%d]\n",
> -@@ -177,10 +186,10 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> - 	}
> -
> - 	result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
> --	if (!result)
> --		cpufreq_frequency_table_get_attr(freq_table, policy->cpu);
> --	else
> --		goto fail_ck;
> -+	if (result)
> -+		goto fail_table;
> -+
> -+	cpufreq_frequency_table_get_attr(freq_table, policy->cpu);
> -
> - 	policy->min = policy->cpuinfo.min_freq;
> - 	policy->max = policy->cpuinfo.max_freq;
> -@@ -204,6 +213,8 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> -
> - 	return 0;
> -
> -+fail_table:
> -+	freq_table_free();
> - fail_ck:
> - 	clk_put(mpu_clk);
> - 	return result;
> -@@ -211,6 +222,7 @@ fail_ck:
> -
> - static int omap_cpu_exit(struct cpufreq_policy *policy)
> - {
> -+	freq_table_free();
> - 	clk_put(mpu_clk);
> - 	return 0;
> - }
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0016-OMAP2-
> CPUfreq-Remove-superfluous-check-in-target-for.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/cpufreq/0016-OMAP2-CPUfreq-Remove-
> superfluous-check-in-target-for.patch
> deleted file mode 100644
> index 2451a21..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0016-OMAP2-CPUfreq-
> Remove-superfluous-check-in-target-for.patch
> +++ /dev/null
> @@ -1,58 +0,0 @@
> -From f0e647da78b80946ab301787aba4330bd7d1429d Mon Sep 17 00:00:00
> 2001
> -From: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -Date: Fri, 3 Jun 2011 17:46:57 +0530
> -Subject: [PATCH 16/19] OMAP2+: CPUfreq: Remove superfluous check in
> target() for online CPU's.
> -
> -Current OMAP2PLUS CPUfreq tagret() functions returns when all
> -the CPU's are not online. This breaks CPUfreq when secondary CPUs
> -are offlined on SMP system.
> -
> -The intention of that check was just avoid CPU frequency change
> -during the window when CPU becomes online but it's cpufreq_init is
> -not done yet. Otherwise it can lead to notifiers being sent on
> -a CPU which is not yet registered to the governor.
> -
> -But this race conditions is already managed by the CPUfreq
> -core driver by updating the available cpumask accordingly.
> -
> -OMAP CPUFReq driver make use same cpumask for the notifiers
> -so the above problem doesn't exist. In my initial implementation
> -of the OMAP4 CPUFreq driver, I was using 'for_each_online_cpu()'
> -for notifiers which lead me to add that check. Later I fixed
> -the notifies but didn't realise that the check has become
> -redundant then.
> -
> -Fix it by removing the superfluous check in target().
> -
> -Thanks for Nishant Menon <nm at ti.com> for reporting issue
> -with hot-plug and Kevin Hilman <khilman at ti.com> for his
> -comment on excessive check in target().
> -
> -Signed-off-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -Reported-by: Nishanth Menon <nm at ti.com>
> -Tested-by: Vishwanath BS <vishwanath.bs at ti.com>
> -Cc: Kevin Hilman <khilman at ti.com>
> -Tested-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/omap2plus-cpufreq.c |    4 ----
> - 1 files changed, 0 insertions(+), 4 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-
> omap2/omap2plus-cpufreq.c
> -index a962a31..eaefa49 100644
> ---- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -@@ -70,10 +70,6 @@ static int omap_target(struct cpufreq_policy *policy,
> - 	int ret = 0;
> - 	struct cpufreq_freqs freqs;
> -
> --	/* Changes not allowed until all CPUs are online */
> --	if (is_smp() && (num_online_cpus() < NR_CPUS))
> --		return ret;
> --
> - 	if (!freq_table) {
> - 		dev_err(mpu_dev, "%s: cpu%d: no freq table!\n", __func__,
> - 				policy->cpu);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0017-OMAP2-
> cpufreq-notify-even-with-bad-boot-frequency.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/cpufreq/0017-OMAP2-cpufreq-notify-even-
> with-bad-boot-frequency.patch
> deleted file mode 100644
> index b5e9734..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0017-OMAP2-cpufreq-
> notify-even-with-bad-boot-frequency.patch
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -From 669ad0bf5d48d8675365a212f561f57bec4d9158 Mon Sep 17 00:00:00
> 2001
> -From: Colin Cross <ccross at google.com>
> -Date: Mon, 6 Jun 2011 21:05:29 -0500
> -Subject: [PATCH 17/19] OMAP2+: cpufreq: notify even with bad boot
> frequency
> -
> -Sometimes, bootloaders starts up with a frequency which is not
> -in the OPP table. At cpu_init, policy->cur contains the frequency
> -we pick at boot.  It is possible that system might have fixed
> -it's boot frequency later on as part of power initialization.
> -After this condition, the first call to omap_target results in the
> -following:
> -
> -omap_getspeed(actual device frequency) != policy->cur(frequency that
> -cpufreq thinks that the system is at), and it is possible that
> -freqs.old == freqs.new (because the governor requested a scale down).
> -
> -We exit without triggering the notifiers in the current code, which
> -does'nt let code which depends on cpufreq_notify_transition to have
> -accurate information as to what the system frequency is.
> -
> -Instead, we do a normal transition if policy->cur is wrong, then,
> -freqs.old will be the actual cpu frequency, freqs.new will be the
> -actual new cpu frequency and all required notifiers have the accurate
> -information.
> -
> -Acked-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Colin Cross <ccross at google.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/omap2plus-cpufreq.c |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-
> omap2/omap2plus-cpufreq.c
> -index eaefa49..8598928 100644
> ---- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -@@ -93,7 +93,7 @@ static int omap_target(struct cpufreq_policy *policy,
> - 	freqs.old = omap_getspeed(policy->cpu);
> - 	freqs.cpu = policy->cpu;
> -
> --	if (freqs.old == freqs.new)
> -+	if (freqs.old == freqs.new && policy->cur == freqs.new)
> - 		return ret;
> -
> - 	if (!is_smp()) {
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0018-OMAP2-
> cpufreq-Enable-all-CPUs-in-shared-policy-mask.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/cpufreq/0018-OMAP2-cpufreq-Enable-all-CPUs-
> in-shared-policy-mask.patch
> deleted file mode 100644
> index 923e22f..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0018-OMAP2-cpufreq-
> Enable-all-CPUs-in-shared-policy-mask.patch
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -From 0d8c6a265f29587ab9c6df1c6bebe359a8d71d09 Mon Sep 17 00:00:00
> 2001
> -From: Todd Poynor <toddpoynor at google.com>
> -Date: Tue, 7 Jun 2011 13:57:52 -0700
> -Subject: [PATCH 18/19] OMAP2+: cpufreq: Enable all CPUs in shared policy
> mask
> -
> -Enable all CPUs in the shared policy in the CPU init callback.
> -Otherwise, the governor CPUFREQ_GOV_START event is invoked with
> -a policy that only includes the first CPU, leaving other CPUs
> -uninitialized by the governor.
> -
> -Signed-off-by: Todd Poynor <toddpoynor at google.com>
> -Acked-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/omap2plus-cpufreq.c |    4 +---
> - 1 files changed, 1 insertions(+), 3 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-
> omap2/omap2plus-cpufreq.c
> -index 8598928..1f3b2e1 100644
> ---- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -@@ -159,7 +159,6 @@ static inline void freq_table_free(void)
> - static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
> - {
> - 	int result = 0;
> --	static cpumask_var_t cpumask;
> -
> - 	mpu_clk = clk_get(NULL, mpu_clk_name);
> - 	if (IS_ERR(mpu_clk))
> -@@ -200,8 +199,7 @@ static int __cpuinit omap_cpu_init(struct
> cpufreq_policy *policy)
> - 	 */
> - 	if (is_smp()) {
> - 		policy->shared_type = CPUFREQ_SHARED_TYPE_ANY;
> --		cpumask_or(cpumask, cpumask_of(policy->cpu), cpumask);
> --		cpumask_copy(policy->cpus, cpumask);
> -+		cpumask_setall(policy->cpus);
> - 	}
> -
> - 	/* FIXME: what's the actual transition time? */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0019-OMAP2-
> CPUfreq-update-lpj-with-reference-value-to-avo.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/cpufreq/0019-OMAP2-CPUfreq-update-lpj-with-
> reference-value-to-avo.patch
> deleted file mode 100644
> index 85666bc..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0019-OMAP2-CPUfreq-
> update-lpj-with-reference-value-to-avo.patch
> +++ /dev/null
> @@ -1,121 +0,0 @@
> -From 550f74e2915393426e15c8d12695707253c8a91d Mon Sep 17 00:00:00
> 2001
> -From: Russell King <rmk+kernel at arm.linux.org.uk>
> -Date: Mon, 11 Jul 2011 23:10:04 +0530
> -Subject: [PATCH 19/19] OMAP2+: CPUfreq: update lpj with reference value to
> avoid progressive error.
> -
> -Adjust _both_ the per-cpu loops_per_jiffy and global lpj. Calibrate them
> -with with reference to the initial values to avoid a progressively
> -bigger and bigger error in the value over time.
> -
> -While at this, re-use the notifiers for UP/SMP since on
> -UP machine or UP_ON_SMP policy->cpus mask would contain only
> -the boot CPU.
> -
> -Signed-off-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -[santosh.shilimkar at ti.com: re-based against omap cpufreq
> -upstream branch and fixed notifiers]
> -Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
> -Cc: Kevin Hilman <khilman at ti.com>
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/omap2plus-cpufreq.c |   50 ++++++++++++++++------
> --------
> - 1 files changed, 27 insertions(+), 23 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-
> omap2/omap2plus-cpufreq.c
> -index 1f3b2e1..de82e87 100644
> ---- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> -@@ -38,6 +38,16 @@
> -
> - #include <mach/hardware.h>
> -
> -+#ifdef CONFIG_SMP
> -+struct lpj_info {
> -+	unsigned long	ref;
> -+	unsigned int	freq;
> -+};
> -+
> -+static DEFINE_PER_CPU(struct lpj_info, lpj_ref);
> -+static struct lpj_info global_lpj_ref;
> -+#endif
> -+
> - static struct cpufreq_frequency_table *freq_table;
> - static atomic_t freq_table_users = ATOMIC_INIT(0);
> - static struct clk *mpu_clk;
> -@@ -96,37 +106,18 @@ static int omap_target(struct cpufreq_policy *policy,
> - 	if (freqs.old == freqs.new && policy->cur == freqs.new)
> - 		return ret;
> -
> --	if (!is_smp()) {
> --		cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
> --		goto set_freq;
> --	}
> --
> - 	/* notifiers */
> - 	for_each_cpu(i, policy->cpus) {
> - 		freqs.cpu = i;
> - 		cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
> - 	}
> -
> --set_freq:
> - #ifdef CONFIG_CPU_FREQ_DEBUG
> - 	pr_info("cpufreq-omap: transition: %u --> %u\n", freqs.old, freqs.new);
> - #endif
> -
> - 	ret = clk_set_rate(mpu_clk, freqs.new * 1000);
> --
> --	/*
> --	 * Generic CPUFREQ driver jiffy update is under !SMP. So jiffies
> --	 * won't get updated when UP machine cpufreq build with
> --	 * CONFIG_SMP enabled. Below code is added only to manage that
> --	 * scenario
> --	 */
> - 	freqs.new = omap_getspeed(policy->cpu);
> --	if (!is_smp()) {
> --		loops_per_jiffy =
> --			 cpufreq_scale(loops_per_jiffy, freqs.old, freqs.new);
> --		cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
> --		goto skip_lpj;
> --	}
> -
> - #ifdef CONFIG_SMP
> - 	/*
> -@@ -134,10 +125,24 @@ set_freq:
> - 	 * cpufreq driver. So, update the per-CPU loops_per_jiffy value
> - 	 * on frequency transition. We need to update all dependent CPUs.
> - 	 */
> --	for_each_cpu(i, policy->cpus)
> -+	for_each_cpu(i, policy->cpus) {
> -+		struct lpj_info *lpj = &per_cpu(lpj_ref, i);
> -+		if (!lpj->freq) {
> -+			lpj->ref = per_cpu(cpu_data, i).loops_per_jiffy;
> -+			lpj->freq = freqs.old;
> -+		}
> -+
> - 		per_cpu(cpu_data, i).loops_per_jiffy =
> --			cpufreq_scale(per_cpu(cpu_data, i).loops_per_jiffy,
> --					freqs.old, freqs.new);
> -+			cpufreq_scale(lpj->ref, lpj->freq, freqs.new);
> -+	}
> -+
> -+	/* And don't forget to adjust the global one */
> -+	if (!global_lpj_ref.freq) {
> -+		global_lpj_ref.ref = loops_per_jiffy;
> -+		global_lpj_ref.freq = freqs.old;
> -+	}
> -+	loops_per_jiffy = cpufreq_scale(global_lpj_ref.ref, global_lpj_ref.freq,
> -+					freqs.new);
> - #endif
> -
> - 	/* notifiers */
> -@@ -146,7 +151,6 @@ set_freq:
> - 		cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
> - 	}
> -
> --skip_lpj:
> - 	return ret;
> - }
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0001-cleanup-
> regulator-supply-definitions-in-mach-omap2.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0001-cleanup-regulator-supply-definitions-in-mach-
> omap2.patch
> deleted file mode 100644
> index e86ca6f..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0001-cleanup-regulator-
> supply-definitions-in-mach-omap2.patch
> +++ /dev/null
> @@ -1,1083 +0,0 @@
> -From d95bccb7d0ad132153543bcc018e8da8aba1832d Mon Sep 17 00:00:00
> 2001
> -From: Oleg Drokin <green at linuxhacker.ru>
> -Date: Mon, 6 Jun 2011 18:57:07 +0000
> -Subject: [PATCH 001/149] cleanup regulator supply definitions in mach-omap2
> -
> -to use REGULATOR_SUPPLY arrays.
> -
> -CC: Mark Brown <broonie at opensource.wolfsonmicro.com>
> -CC: Mike Rapoport <mike at compulab.co.il>
> -CC: Nishant Kamat <nskamat at ti.com>
> -CC: Steve Sakoman <steve at sakoman.com>
> -CC: Felipe Balbi <balbi at ti.com>
> -CC: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -CC: peter.barada at logicpd.com
> -Signed-off-by: Oleg Drokin <green at linuxhacker.ru>
> -Acked-by: Felipe Balbi <balbi at ti.com>
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/mach-omap2/board-4430sdp.c          |   13 ++----
> - arch/arm/mach-omap2/board-cm-t35.c           |   34 +++++++-------
> - arch/arm/mach-omap2/board-devkit8000.c       |   28 ++++++-----
> - arch/arm/mach-omap2/board-igep0020.c         |   27 ++++++-----
> - arch/arm/mach-omap2/board-ldp.c              |    8 ++--
> - arch/arm/mach-omap2/board-omap3beagle.c      |   25 +++++-----
> - arch/arm/mach-omap2/board-omap3evm.c         |   41 +++++++++--------
> - arch/arm/mach-omap2/board-omap3logic.c       |    8 ++--
> - arch/arm/mach-omap2/board-omap3pandora.c     |   63 ++++++++++++++----
> -------
> - arch/arm/mach-omap2/board-omap3stalker.c     |   25 +++++-----
> - arch/arm/mach-omap2/board-omap3touchbook.c   |   32 +++++++------
> - arch/arm/mach-omap2/board-omap4panda.c       |   16 +++----
> - arch/arm/mach-omap2/board-overo.c            |   26 ++++++-----
> - arch/arm/mach-omap2/board-rx51-peripherals.c |   29 +++++++-----
> - arch/arm/mach-omap2/board-zoom-peripherals.c |   42 +++++++++---------
> - 15 files changed, 218 insertions(+), 199 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-
> omap2/board-4430sdp.c
> -index 63de2d3..39a8062 100644
> ---- a/arch/arm/mach-omap2/board-4430sdp.c
> -+++ b/arch/arm/mach-omap2/board-4430sdp.c
> -@@ -333,16 +333,11 @@ static struct omap2_hsmmc_info mmc[] = {
> - };
> -
> - static struct regulator_consumer_supply sdp4430_vaux_supply[] = {
> --	{
> --		.supply = "vmmc",
> --		.dev_name = "omap_hsmmc.1",
> --	},
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1"),
> - };
> -+
> - static struct regulator_consumer_supply sdp4430_vmmc_supply[] = {
> --	{
> --		.supply = "vmmc",
> --		.dev_name = "omap_hsmmc.0",
> --	},
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> - };
> -
> - static int omap4_twl6030_hsmmc_late_init(struct device *dev)
> -@@ -399,7 +394,7 @@ static struct regulator_init_data sdp4430_vaux1 = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies  = 1,
> -+	.num_consumer_supplies  = ARRAY_SIZE(sdp4430_vaux_supply),
> - 	.consumer_supplies      = sdp4430_vaux_supply,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-
> omap2/board-cm-t35.c
> -index 77456de..e7bf32d 100644
> ---- a/arch/arm/mach-omap2/board-cm-t35.c
> -+++ b/arch/arm/mach-omap2/board-cm-t35.c
> -@@ -337,19 +337,21 @@ static void __init cm_t35_init_display(void)
> - 	}
> - }
> -
> --static struct regulator_consumer_supply cm_t35_vmmc1_supply = {
> --	.supply			= "vmmc",
> -+static struct regulator_consumer_supply cm_t35_vmmc1_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> - };
> -
> --static struct regulator_consumer_supply cm_t35_vsim_supply = {
> --	.supply			= "vmmc_aux",
> -+static struct regulator_consumer_supply cm_t35_vsim_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"),
> - };
> -
> --static struct regulator_consumer_supply cm_t35_vdac_supply =
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
> -+static struct regulator_consumer_supply cm_t35_vdac_supply[] = {
> -+	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> -+};
> -
> --static struct regulator_consumer_supply cm_t35_vdvi_supply =
> --	REGULATOR_SUPPLY("vdvi", "omapdss");
> -+static struct regulator_consumer_supply cm_t35_vdvi_supply[] = {
> -+	REGULATOR_SUPPLY("vdvi", "omapdss"),
> -+};
> -
> - /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max
> 220 mA) */
> - static struct regulator_init_data cm_t35_vmmc1 = {
> -@@ -362,8 +364,8 @@ static struct regulator_init_data cm_t35_vmmc1 = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &cm_t35_vmmc1_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(cm_t35_vmmc1_supply),
> -+	.consumer_supplies	= cm_t35_vmmc1_supply,
> - };
> -
> - /* VSIM for MMC1 pins DAT4..DAT7 (2 mA, plus card == max 50 mA) */
> -@@ -377,8 +379,8 @@ static struct regulator_init_data cm_t35_vsim = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &cm_t35_vsim_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(cm_t35_vsim_supply),
> -+	.consumer_supplies	= cm_t35_vsim_supply,
> - };
> -
> - /* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
> -@@ -391,8 +393,8 @@ static struct regulator_init_data cm_t35_vdac = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &cm_t35_vdac_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(cm_t35_vdac_supply),
> -+	.consumer_supplies	= cm_t35_vdac_supply,
> - };
> -
> - /* VPLL2 for digital video outputs */
> -@@ -406,8 +408,8 @@ static struct regulator_init_data cm_t35_vpll2 = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &cm_t35_vdvi_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(cm_t35_vdvi_supply),
> -+	.consumer_supplies	= cm_t35_vdvi_supply,
> - };
> -
> - static struct twl4030_usb_data cm_t35_usb_data = {
> -diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-
> omap2/board-devkit8000.c
> -index 34956ec..ead9c1d 100644
> ---- a/arch/arm/mach-omap2/board-devkit8000.c
> -+++ b/arch/arm/mach-omap2/board-devkit8000.c
> -@@ -130,13 +130,14 @@ static void devkit8000_panel_disable_dvi(struct
> omap_dss_device *dssdev)
> - 		gpio_set_value_cansleep(dssdev->reset_gpio, 0);
> - }
> -
> --static struct regulator_consumer_supply devkit8000_vmmc1_supply =
> --	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0");
> --
> -+static struct regulator_consumer_supply devkit8000_vmmc1_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> -+};
> -
> - /* ads7846 on SPI */
> --static struct regulator_consumer_supply devkit8000_vio_supply =
> --	REGULATOR_SUPPLY("vcc", "spi2.0");
> -+static struct regulator_consumer_supply devkit8000_vio_supply[] = {
> -+	REGULATOR_SUPPLY("vcc", "spi2.0"),
> -+};
> -
> - static struct panel_generic_dpi_data lcd_panel = {
> - 	.name			= "generic",
> -@@ -186,8 +187,9 @@ static struct omap_dss_board_info
> devkit8000_dss_data = {
> - 	.default_device = &devkit8000_lcd_device,
> - };
> -
> --static struct regulator_consumer_supply devkit8000_vdda_dac_supply =
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
> -+static struct regulator_consumer_supply devkit8000_vdda_dac_supply[] = {
> -+	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> -+};
> -
> - static uint32_t board_keymap[] = {
> - 	KEY(0, 0, KEY_1),
> -@@ -284,8 +286,8 @@ static struct regulator_init_data devkit8000_vmmc1 =
> {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &devkit8000_vmmc1_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(devkit8000_vmmc1_supply),
> -+	.consumer_supplies	= devkit8000_vmmc1_supply,
> - };
> -
> - /* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
> -@@ -298,8 +300,8 @@ static struct regulator_init_data devkit8000_vdac = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &devkit8000_vdda_dac_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(devkit8000_vdda_dac_supply),
> -+	.consumer_supplies	= devkit8000_vdda_dac_supply,
> - };
> -
> - /* VPLL1 for digital video outputs */
> -@@ -327,8 +329,8 @@ static struct regulator_init_data devkit8000_vio = {
> - 		.valid_ops_mask         = REGULATOR_CHANGE_MODE
> - 			| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies  = 1,
> --	.consumer_supplies      = &devkit8000_vio_supply,
> -+	.num_consumer_supplies  = ARRAY_SIZE(devkit8000_vio_supply),
> -+	.consumer_supplies      = devkit8000_vio_supply,
> - };
> -
> - static struct twl4030_usb_data devkit8000_usb_data = {
> -diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-
> omap2/board-igep0020.c
> -index 0c1bfca..84d2846 100644
> ---- a/arch/arm/mach-omap2/board-igep0020.c
> -+++ b/arch/arm/mach-omap2/board-igep0020.c
> -@@ -222,8 +222,9 @@ static inline void __init igep2_init_smsc911x(void)
> - static inline void __init igep2_init_smsc911x(void) { }
> - #endif
> -
> --static struct regulator_consumer_supply igep_vmmc1_supply =
> --	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0");
> -+static struct regulator_consumer_supply igep_vmmc1_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> -+};
> -
> - /* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
> - static struct regulator_init_data igep_vmmc1 = {
> -@@ -236,12 +237,13 @@ static struct regulator_init_data igep_vmmc1 = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies  = 1,
> --	.consumer_supplies      = &igep_vmmc1_supply,
> -+	.num_consumer_supplies  = ARRAY_SIZE(igep_vmmc1_supply),
> -+	.consumer_supplies      = igep_vmmc1_supply,
> - };
> -
> --static struct regulator_consumer_supply igep_vio_supply =
> --	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.1");
> -+static struct regulator_consumer_supply igep_vio_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.1"),
> -+};
> -
> - static struct regulator_init_data igep_vio = {
> - 	.constraints = {
> -@@ -254,20 +256,21 @@ static struct regulator_init_data igep_vio = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies  = 1,
> --	.consumer_supplies      = &igep_vio_supply,
> -+	.num_consumer_supplies  = ARRAY_SIZE(igep_vio_supply),
> -+	.consumer_supplies      = igep_vio_supply,
> - };
> -
> --static struct regulator_consumer_supply igep_vmmc2_supply =
> --	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1");
> -+static struct regulator_consumer_supply igep_vmmc2_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1"),
> -+};
> -
> - static struct regulator_init_data igep_vmmc2 = {
> - 	.constraints		= {
> - 		.valid_modes_mask	= REGULATOR_MODE_NORMAL,
> - 		.always_on		= 1,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &igep_vmmc2_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(igep_vmmc2_supply),
> -+	.consumer_supplies	= igep_vmmc2_supply,
> - };
> -
> - static struct fixed_voltage_config igep_vwlan = {
> -diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-
> omap2/board-ldp.c
> -index f7d6038..069bc9f 100644
> ---- a/arch/arm/mach-omap2/board-ldp.c
> -+++ b/arch/arm/mach-omap2/board-ldp.c
> -@@ -213,8 +213,8 @@ static struct twl4030_madc_platform_data
> ldp_madc_data = {
> - 	.irq_line	= 1,
> - };
> -
> --static struct regulator_consumer_supply ldp_vmmc1_supply = {
> --	.supply			= "vmmc",
> -+static struct regulator_consumer_supply ldp_vmmc1_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> - };
> -
> - /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max
> 220 mA) */
> -@@ -228,8 +228,8 @@ static struct regulator_init_data ldp_vmmc1 = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &ldp_vmmc1_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(ldp_vmmc1_supply),
> -+	.consumer_supplies	= ldp_vmmc1_supply,
> - };
> -
> - /* ads7846 on SPI */
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 7f21d24..4cf7c19 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -210,8 +210,9 @@ static struct omap_dss_board_info beagle_dss_data =
> {
> - 	.default_device = &beagle_dvi_device,
> - };
> -
> --static struct regulator_consumer_supply beagle_vdac_supply =
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
> -+static struct regulator_consumer_supply beagle_vdac_supply[] = {
> -+	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> -+};
> -
> - static struct regulator_consumer_supply beagle_vdvi_supplies[] = {
> - 	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
> -@@ -239,12 +240,12 @@ static struct omap2_hsmmc_info mmc[] = {
> - 	{}	/* Terminator */
> - };
> -
> --static struct regulator_consumer_supply beagle_vmmc1_supply = {
> --	.supply			= "vmmc",
> -+static struct regulator_consumer_supply beagle_vmmc1_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> - };
> -
> --static struct regulator_consumer_supply beagle_vsim_supply = {
> --	.supply			= "vmmc_aux",
> -+static struct regulator_consumer_supply beagle_vsim_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"),
> - };
> -
> - static struct gpio_led gpio_leds[];
> -@@ -336,8 +337,8 @@ static struct regulator_init_data beagle_vmmc1 = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &beagle_vmmc1_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(beagle_vmmc1_supply),
> -+	.consumer_supplies	= beagle_vmmc1_supply,
> - };
> -
> - /* VSIM for MMC1 pins DAT4..DAT7 (2 mA, plus card == max 50 mA) */
> -@@ -351,8 +352,8 @@ static struct regulator_init_data beagle_vsim = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &beagle_vsim_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(beagle_vsim_supply),
> -+	.consumer_supplies	= beagle_vsim_supply,
> - };
> -
> - /* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
> -@@ -365,8 +366,8 @@ static struct regulator_init_data beagle_vdac = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &beagle_vdac_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(beagle_vdac_supply),
> -+	.consumer_supplies	= beagle_vdac_supply,
> - };
> -
> - /* VPLL2 for digital video outputs */
> -diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-
> omap2/board-omap3evm.c
> -index b4d43464..fc7a23a 100644
> ---- a/arch/arm/mach-omap2/board-omap3evm.c
> -+++ b/arch/arm/mach-omap2/board-omap3evm.c
> -@@ -273,12 +273,12 @@ static struct omap_dss_board_info
> omap3_evm_dss_data = {
> - 	.default_device	= &omap3_evm_lcd_device,
> - };
> -
> --static struct regulator_consumer_supply omap3evm_vmmc1_supply = {
> --	.supply			= "vmmc",
> -+static struct regulator_consumer_supply omap3evm_vmmc1_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> - };
> -
> --static struct regulator_consumer_supply omap3evm_vsim_supply = {
> --	.supply			= "vmmc_aux",
> -+static struct regulator_consumer_supply omap3evm_vsim_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"),
> - };
> -
> - /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max
> 220 mA) */
> -@@ -292,8 +292,8 @@ static struct regulator_init_data omap3evm_vmmc1 =
> {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &omap3evm_vmmc1_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(omap3evm_vmmc1_supply),
> -+	.consumer_supplies	= omap3evm_vmmc1_supply,
> - };
> -
> - /* VSIM for MMC1 pins DAT4..DAT7 (2 mA, plus card == max 50 mA) */
> -@@ -307,8 +307,8 @@ static struct regulator_init_data omap3evm_vsim = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &omap3evm_vsim_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(omap3evm_vsim_supply),
> -+	.consumer_supplies	= omap3evm_vsim_supply,
> - };
> -
> - static struct omap2_hsmmc_info mmc[] = {
> -@@ -449,8 +449,9 @@ static struct twl4030_codec_data
> omap3evm_codec_data = {
> - 	.audio = &omap3evm_audio_data,
> - };
> -
> --static struct regulator_consumer_supply omap3_evm_vdda_dac_supply =
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
> -+static struct regulator_consumer_supply omap3_evm_vdda_dac_supply[] = {
> -+	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> -+};
> -
> - /* VDAC for DSS driving S-Video */
> - static struct regulator_init_data omap3_evm_vdac = {
> -@@ -463,8 +464,8 @@ static struct regulator_init_data omap3_evm_vdac = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &omap3_evm_vdda_dac_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(omap3_evm_vdda_dac_supply),
> -+	.consumer_supplies	= omap3_evm_vdda_dac_supply,
> - };
> -
> - /* VPLL2 for digital video outputs */
> -@@ -488,8 +489,9 @@ static struct regulator_init_data omap3_evm_vpll2 = {
> - };
> -
> - /* ads7846 on SPI */
> --static struct regulator_consumer_supply omap3evm_vio_supply =
> --	REGULATOR_SUPPLY("vcc", "spi1.0");
> -+static struct regulator_consumer_supply omap3evm_vio_supply[] = {
> -+	REGULATOR_SUPPLY("vcc", "spi1.0"),
> -+};
> -
> - /* VIO for ads7846 */
> - static struct regulator_init_data omap3evm_vio = {
> -@@ -502,8 +504,8 @@ static struct regulator_init_data omap3evm_vio = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &omap3evm_vio_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(omap3evm_vio_supply),
> -+	.consumer_supplies	= omap3evm_vio_supply,
> - };
> -
> - #ifdef CONFIG_WL12XX_PLATFORM_DATA
> -@@ -511,16 +513,17 @@ static struct regulator_init_data omap3evm_vio = {
> - #define OMAP3EVM_WLAN_PMENA_GPIO	(150)
> - #define OMAP3EVM_WLAN_IRQ_GPIO		(149)
> -
> --static struct regulator_consumer_supply omap3evm_vmmc2_supply =
> -+static struct regulator_consumer_supply omap3evm_vmmc2_supply[] = {
> - 	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1");
> -+};
> -
> - /* VMMC2 for driving the WL12xx module */
> - static struct regulator_init_data omap3evm_vmmc2 = {
> - 	.constraints = {
> - 		.valid_ops_mask	= REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies = &omap3evm_vmmc2_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(omap3evm_vmmc2_supply);,
> -+	.consumer_supplies	= omap3evm_vmmc2_supply,
> - };
> -
> - static struct fixed_voltage_config omap3evm_vwlan = {
> -diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-
> omap2/board-omap3logic.c
> -index 60d9be4..ec18435 100644
> ---- a/arch/arm/mach-omap2/board-omap3logic.c
> -+++ b/arch/arm/mach-omap2/board-omap3logic.c
> -@@ -55,8 +55,8 @@
> - #define OMAP3_TORPEDO_MMC_GPIO_CD		127
> - #define OMAP3_TORPEDO_SMSC911X_GPIO_IRQ		129
> -
> --static struct regulator_consumer_supply omap3logic_vmmc1_supply = {
> --	.supply			= "vmmc",
> -+static struct regulator_consumer_supply omap3logic_vmmc1_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> - };
> -
> - /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max
> 220 mA) */
> -@@ -71,8 +71,8 @@ static struct regulator_init_data omap3logic_vmmc1 = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies  = 1,
> --	.consumer_supplies      = &omap3logic_vmmc1_supply,
> -+	.num_consumer_supplies  = ARRAY_SIZE(omap3logic_vmmc1_supply),
> -+	.consumer_supplies      = omap3logic_vmmc1_supply,
> - };
> -
> - static struct twl4030_gpio_platform_data omap3logic_gpio_data = {
> -diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-
> omap2/board-omap3pandora.c
> -index 23f71d4..130a278 100644
> ---- a/arch/arm/mach-omap2/board-omap3pandora.c
> -+++ b/arch/arm/mach-omap2/board-omap3pandora.c
> -@@ -320,17 +320,21 @@ static struct twl4030_gpio_platform_data
> omap3pandora_gpio_data = {
> - 	.setup		= omap3pandora_twl_gpio_setup,
> - };
> -
> --static struct regulator_consumer_supply pandora_vmmc1_supply =
> --	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0");
> -+static struct regulator_consumer_supply pandora_vmmc1_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> -+};
> -
> --static struct regulator_consumer_supply pandora_vmmc2_supply =
> --	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1");
> -+static struct regulator_consumer_supply pandora_vmmc2_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1")
> -+};
> -
> --static struct regulator_consumer_supply pandora_vmmc3_supply =
> --	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.2");
> -+static struct regulator_consumer_supply pandora_vmmc3_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.2"),
> -+};
> -
> --static struct regulator_consumer_supply pandora_vdda_dac_supply =
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
> -+static struct regulator_consumer_supply pandora_vdda_dac_supply[] = {
> -+	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> -+};
> -
> - static struct regulator_consumer_supply pandora_vdds_supplies[] = {
> - 	REGULATOR_SUPPLY("vdds_sdi", "omapdss"),
> -@@ -338,11 +342,13 @@ static struct regulator_consumer_supply
> pandora_vdds_supplies[] = {
> - 	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
> - };
> -
> --static struct regulator_consumer_supply pandora_vcc_lcd_supply =
> --	REGULATOR_SUPPLY("vcc", "display0");
> -+static struct regulator_consumer_supply pandora_vcc_lcd_supply[] = {
> -+	REGULATOR_SUPPLY("vcc", "display0"),
> -+};
> -
> --static struct regulator_consumer_supply pandora_usb_phy_supply =
> --	REGULATOR_SUPPLY("hsusb0", "ehci-omap.0");
> -+static struct regulator_consumer_supply pandora_usb_phy_supply[] = {
> -+	REGULATOR_SUPPLY("hsusb0", "ehci-omap.0"),
> -+};
> -
> - /* ads7846 on SPI and 2 nub controllers on I2C */
> - static struct regulator_consumer_supply pandora_vaux4_supplies[] = {
> -@@ -351,8 +357,9 @@ static struct regulator_consumer_supply
> pandora_vaux4_supplies[] = {
> - 	REGULATOR_SUPPLY("vcc", "3-0067"),
> - };
> -
> --static struct regulator_consumer_supply pandora_adac_supply =
> --	REGULATOR_SUPPLY("vcc", "soc-audio");
> -+static struct regulator_consumer_supply pandora_adac_supply[] = {
> -+	REGULATOR_SUPPLY("vcc", "soc-audio"),
> -+};
> -
> - /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max
> 220 mA) */
> - static struct regulator_init_data pandora_vmmc1 = {
> -@@ -365,8 +372,8 @@ static struct regulator_init_data pandora_vmmc1 = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &pandora_vmmc1_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(pandora_vmmc1_supply),
> -+	.consumer_supplies	= pandora_vmmc1_supply,
> - };
> -
> - /* VMMC2 for MMC2 pins CMD, CLK, DAT0..DAT3 (max 100 mA) */
> -@@ -380,8 +387,8 @@ static struct regulator_init_data pandora_vmmc2 = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &pandora_vmmc2_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(pandora_vmmc2_supply),
> -+	.consumer_supplies	= pandora_vmmc2_supply,
> - };
> -
> - /* VDAC for DSS driving S-Video */
> -@@ -395,8 +402,8 @@ static struct regulator_init_data pandora_vdac = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &pandora_vdda_dac_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(pandora_vdda_dac_supply),
> -+	.consumer_supplies	= pandora_vdda_dac_supply,
> - };
> -
> - /* VPLL2 for digital video outputs */
> -@@ -425,8 +432,8 @@ static struct regulator_init_data pandora_vaux1 = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &pandora_vcc_lcd_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(pandora_vcc_lcd_supply),
> -+	.consumer_supplies	= pandora_vcc_lcd_supply,
> - };
> -
> - /* VAUX2 for USB host PHY */
> -@@ -440,8 +447,8 @@ static struct regulator_init_data pandora_vaux2 = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &pandora_usb_phy_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(pandora_usb_phy_supply),
> -+	.consumer_supplies	= pandora_usb_phy_supply,
> - };
> -
> - /* VAUX4 for ads7846 and nubs */
> -@@ -470,8 +477,8 @@ static struct regulator_init_data pandora_vsim = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &pandora_adac_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(pandora_adac_supply),
> -+	.consumer_supplies	= pandora_adac_supply,
> - };
> -
> - /* Fixed regulator internal to Wifi module */
> -@@ -479,8 +486,8 @@ static struct regulator_init_data pandora_vmmc3 = {
> - 	.constraints = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &pandora_vmmc3_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(pandora_vmmc3_supply),
> -+	.consumer_supplies	= pandora_vmmc3_supply,
> - };
> -
> - static struct fixed_voltage_config pandora_vwlan = {
> -diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-
> omap2/board-omap3stalker.c
> -index 0c108a2..99be540 100644
> ---- a/arch/arm/mach-omap2/board-omap3stalker.c
> -+++ b/arch/arm/mach-omap2/board-omap3stalker.c
> -@@ -206,12 +206,12 @@ static struct omap_dss_board_info
> omap3_stalker_dss_data = {
> - 	.default_device	= &omap3_stalker_dvi_device,
> - };
> -
> --static struct regulator_consumer_supply omap3stalker_vmmc1_supply = {
> --	.supply		= "vmmc",
> -+static struct regulator_consumer_supply omap3stalker_vmmc1_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> - };
> -
> --static struct regulator_consumer_supply omap3stalker_vsim_supply = {
> --	.supply		= "vmmc_aux",
> -+static struct regulator_consumer_supply omap3stalker_vsim_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"),
> - };
> -
> - /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max
> 220 mA) */
> -@@ -224,8 +224,8 @@ static struct regulator_init_data
> omap3stalker_vmmc1 = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_VOLTAGE
> - 		| REGULATOR_CHANGE_MODE |
> REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &omap3stalker_vmmc1_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(omap3stalker_vmmc1_supply),
> -+	.consumer_supplies	= omap3stalker_vmmc1_supply,
> - };
> -
> - /* VSIM for MMC1 pins DAT4..DAT7 (2 mA, plus card == max 50 mA) */
> -@@ -238,8 +238,8 @@ static struct regulator_init_data omap3stalker_vsim =
> {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_VOLTAGE
> - 		| REGULATOR_CHANGE_MODE |
> REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &omap3stalker_vsim_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(omap3stalker_vsim_supply),
> -+	.consumer_supplies	= omap3stalker_vsim_supply,
> - };
> -
> - static struct omap2_hsmmc_info mmc[] = {
> -@@ -403,8 +403,9 @@ static struct twl4030_codec_data
> omap3stalker_codec_data = {
> - 	.audio		= &omap3stalker_audio_data,
> - };
> -
> --static struct regulator_consumer_supply omap3_stalker_vdda_dac_supply =
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
> -+static struct regulator_consumer_supply omap3_stalker_vdda_dac_supply[]
> = {
> -+	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> -+};
> -
> - /* VDAC for DSS driving S-Video */
> - static struct regulator_init_data omap3_stalker_vdac = {
> -@@ -417,8 +418,8 @@ static struct regulator_init_data omap3_stalker_vdac
> = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 		| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &omap3_stalker_vdda_dac_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(omap3_stalker_vdda_dac_supply),
> -+	.consumer_supplies	= omap3_stalker_vdda_dac_supply,
> - };
> -
> - /* VPLL2 for digital video outputs */
> -diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c
> b/arch/arm/mach-omap2/board-omap3touchbook.c
> -index 5f649fa..ab5c37d 100644
> ---- a/arch/arm/mach-omap2/board-omap3touchbook.c
> -+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
> -@@ -114,12 +114,12 @@ static struct omap_lcd_config
> omap3_touchbook_lcd_config __initdata = {
> - 	.ctrl_name	= "internal",
> - };
> -
> --static struct regulator_consumer_supply touchbook_vmmc1_supply = {
> --	.supply			= "vmmc",
> -+static struct regulator_consumer_supply touchbook_vmmc1_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> - };
> -
> --static struct regulator_consumer_supply touchbook_vsim_supply = {
> --	.supply			= "vmmc_aux",
> -+static struct regulator_consumer_supply touchbook_vsim_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"),
> - };
> -
> - static struct gpio_led gpio_leds[];
> -@@ -167,14 +167,18 @@ static struct twl4030_gpio_platform_data
> touchbook_gpio_data = {
> - 	.setup		= touchbook_twl_gpio_setup,
> - };
> -
> --static struct regulator_consumer_supply touchbook_vdac_supply = {
> -+static struct regulator_consumer_supply touchbook_vdac_supply[] = {
> -+{
> - 	.supply		= "vdac",
> - 	.dev		= &omap3_touchbook_lcd_device.dev,
> -+},
> - };
> -
> --static struct regulator_consumer_supply touchbook_vdvi_supply = {
> -+static struct regulator_consumer_supply touchbook_vdvi_supply[] = {
> -+{
> - 	.supply		= "vdvi",
> - 	.dev		= &omap3_touchbook_lcd_device.dev,
> -+},
> - };
> -
> - /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max
> 220 mA) */
> -@@ -188,8 +192,8 @@ static struct regulator_init_data touchbook_vmmc1 =
> {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &touchbook_vmmc1_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(touchbook_vmmc1_supply),
> -+	.consumer_supplies	= touchbook_vmmc1_supply,
> - };
> -
> - /* VSIM for MMC1 pins DAT4..DAT7 (2 mA, plus card == max 50 mA) */
> -@@ -203,8 +207,8 @@ static struct regulator_init_data touchbook_vsim = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &touchbook_vsim_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(touchbook_vsim_supply),
> -+	.consumer_supplies	= touchbook_vsim_supply,
> - };
> -
> - /* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
> -@@ -217,8 +221,8 @@ static struct regulator_init_data touchbook_vdac = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &touchbook_vdac_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(touchbook_vdac_supply),
> -+	.consumer_supplies	= touchbook_vdac_supply,
> - };
> -
> - /* VPLL2 for digital video outputs */
> -@@ -232,8 +236,8 @@ static struct regulator_init_data touchbook_vpll2 = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &touchbook_vdvi_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(touchbook_vdvi_supply),
> -+	.consumer_supplies	= touchbook_vdvi_supply,
> - };
> -
> - static struct twl4030_usb_data touchbook_usb_data = {
> -diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-
> omap2/board-omap4panda.c
> -index 0cfe200..6d2372b 100644
> ---- a/arch/arm/mach-omap2/board-omap4panda.c
> -+++ b/arch/arm/mach-omap2/board-omap4panda.c
> -@@ -183,23 +183,19 @@ static struct omap2_hsmmc_info mmc[] = {
> - };
> -
> - static struct regulator_consumer_supply omap4_panda_vmmc_supply[] = {
> --	{
> --		.supply = "vmmc",
> --		.dev_name = "omap_hsmmc.0",
> --	},
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> - };
> -
> --static struct regulator_consumer_supply omap4_panda_vmmc5_supply = {
> --	.supply = "vmmc",
> --	.dev_name = "omap_hsmmc.4",
> -+static struct regulator_consumer_supply omap4_panda_vmmc5_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.4"),
> - };
> -
> - static struct regulator_init_data panda_vmmc5 = {
> - 	.constraints = {
> - 		.valid_ops_mask = REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies = 1,
> --	.consumer_supplies = &omap4_panda_vmmc5_supply,
> -+	.num_consumer_supplies =
> ARRAY_SIZE(omap4_panda_vmmc5_supply),
> -+	.consumer_supplies = omap4_panda_vmmc5_supply,
> - };
> -
> - static struct fixed_voltage_config panda_vwlan = {
> -@@ -312,7 +308,7 @@ static struct regulator_init_data omap4_panda_vmmc
> = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies  = 1,
> -+	.num_consumer_supplies  =
> ARRAY_SIZE(omap4_panda_vmmc_supply),
> - 	.consumer_supplies      = omap4_panda_vmmc_supply,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-
> omap2/board-overo.c
> -index 175e1ab..30c7556 100644
> ---- a/arch/arm/mach-omap2/board-overo.c
> -+++ b/arch/arm/mach-omap2/board-overo.c
> -@@ -74,15 +74,16 @@
> - 	defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
> -
> - /* fixed regulator for ads7846 */
> --static struct regulator_consumer_supply ads7846_supply =
> --	REGULATOR_SUPPLY("vcc", "spi1.0");
> -+static struct regulator_consumer_supply ads7846_supply[] = {
> -+	REGULATOR_SUPPLY("vcc", "spi1.0"),
> -+};
> -
> - static struct regulator_init_data vads7846_regulator = {
> - 	.constraints = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &ads7846_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(ads7846_supply),
> -+	.consumer_supplies	= ads7846_supply,
> - };
> -
> - static struct fixed_voltage_config vads7846 = {
> -@@ -264,8 +265,9 @@ static struct omap_dss_board_info overo_dss_data =
> {
> - 	.default_device	= &overo_dvi_device,
> - };
> -
> --static struct regulator_consumer_supply overo_vdda_dac_supply =
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
> -+static struct regulator_consumer_supply overo_vdda_dac_supply[] = {
> -+	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> -+};
> -
> - static struct regulator_consumer_supply overo_vdds_dsi_supply[] = {
> - 	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
> -@@ -319,8 +321,8 @@ static struct omap2_hsmmc_info mmc[] = {
> - 	{}	/* Terminator */
> - };
> -
> --static struct regulator_consumer_supply overo_vmmc1_supply = {
> --	.supply			= "vmmc",
> -+static struct regulator_consumer_supply overo_vmmc1_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> - };
> -
> - #if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
> -@@ -447,8 +449,8 @@ static struct regulator_init_data overo_vmmc1 = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &overo_vmmc1_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(overo_vmmc1_supply),
> -+	.consumer_supplies	= overo_vmmc1_supply,
> - };
> -
> - /* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
> -@@ -461,8 +463,8 @@ static struct regulator_init_data overo_vdac = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &overo_vdda_dac_supply,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(overo_vdda_dac_supply),
> -+	.consumer_supplies	= overo_vdda_dac_supply,
> - };
> -
> - /* VPLL2 for digital video outputs */
> -diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c
> b/arch/arm/mach-omap2/board-rx51-peripherals.c
> -index c565971..b633ba8 100644
> ---- a/arch/arm/mach-omap2/board-rx51-peripherals.c
> -+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
> -@@ -358,14 +358,17 @@ static struct omap2_hsmmc_info mmc[] __initdata
> = {
> - 	{}	/* Terminator */
> - };
> -
> --static struct regulator_consumer_supply rx51_vmmc1_supply =
> --	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0");
> -+static struct regulator_consumer_supply rx51_vmmc1_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> -+};
> -
> --static struct regulator_consumer_supply rx51_vaux3_supply =
> --	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1");
> -+static struct regulator_consumer_supply rx51_vaux3_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1"),
> -+};
> -
> --static struct regulator_consumer_supply rx51_vsim_supply =
> --	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.1");
> -+static struct regulator_consumer_supply rx51_vsim_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.1"),
> -+};
> -
> - static struct regulator_consumer_supply rx51_vmmc2_supplies[] = {
> - 	/* tlv320aic3x analog supplies */
> -@@ -452,8 +455,8 @@ static struct regulator_init_data rx51_vaux3_mmc = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &rx51_vaux3_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(rx51_vaux3_supply),
> -+	.consumer_supplies	= rx51_vaux3_supply,
> - };
> -
> - static struct regulator_init_data rx51_vaux4 = {
> -@@ -479,8 +482,8 @@ static struct regulator_init_data rx51_vmmc1 = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &rx51_vmmc1_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(rx51_vmmc1_supply),
> -+	.consumer_supplies	= rx51_vmmc1_supply,
> - };
> -
> - static struct regulator_init_data rx51_vmmc2 = {
> -@@ -511,8 +514,8 @@ static struct regulator_init_data rx51_vsim = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies	= &rx51_vsim_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(rx51_vsim_supply),
> -+	.consumer_supplies	= rx51_vsim_supply,
> - };
> -
> - static struct regulator_init_data rx51_vdac = {
> -@@ -526,7 +529,7 @@ static struct regulator_init_data rx51_vdac = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> -+	.num_consumer_supplies	= ARRAY_SIZE(rx51_vdac_supply),
> - 	.consumer_supplies	= rx51_vdac_supply,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c
> b/arch/arm/mach-omap2/board-zoom-peripherals.c
> -index 118c6f5..cb012e1 100644
> ---- a/arch/arm/mach-omap2/board-zoom-peripherals.c
> -+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
> -@@ -105,21 +105,20 @@ static struct twl4030_keypad_data
> zoom_kp_twl4030_data = {
> - 	.rep		= 1,
> - };
> -
> --static struct regulator_consumer_supply zoom_vmmc1_supply = {
> --	.supply		= "vmmc",
> -+static struct regulator_consumer_supply zoom_vmmc1_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> - };
> -
> --static struct regulator_consumer_supply zoom_vsim_supply = {
> --	.supply		= "vmmc_aux",
> -+static struct regulator_consumer_supply zoom_vsim_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"),
> - };
> -
> --static struct regulator_consumer_supply zoom_vmmc2_supply = {
> --	.supply		= "vmmc",
> -+static struct regulator_consumer_supply zoom_vmmc2_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1"),
> - };
> -
> --static struct regulator_consumer_supply zoom_vmmc3_supply = {
> --	.supply		= "vmmc",
> --	.dev_name	= "omap_hsmmc.2",
> -+static struct regulator_consumer_supply zoom_vmmc3_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.2"),
> - };
> -
> - /* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
> -@@ -133,8 +132,8 @@ static struct regulator_init_data zoom_vmmc1 = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies  = 1,
> --	.consumer_supplies      = &zoom_vmmc1_supply,
> -+	.num_consumer_supplies  = ARRAY_SIZE(zoom_vmmc1_supply),
> -+	.consumer_supplies      = zoom_vmmc1_supply,
> - };
> -
> - /* VMMC2 for MMC2 card */
> -@@ -148,8 +147,8 @@ static struct regulator_init_data zoom_vmmc2 = {
> - 		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies  = 1,
> --	.consumer_supplies      = &zoom_vmmc2_supply,
> -+	.num_consumer_supplies  = ARRAY_SIZE(zoom_vmmc2_supply),
> -+	.consumer_supplies      = zoom_vmmc2_supply,
> - };
> -
> - /* VSIM for OMAP VDD_MMC1A (i/o for DAT4..DAT7) */
> -@@ -163,16 +162,16 @@ static struct regulator_init_data zoom_vsim = {
> - 					| REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies  = 1,
> --	.consumer_supplies      = &zoom_vsim_supply,
> -+	.num_consumer_supplies  = ARRAY_SIZE(zoom_vsim_supply),
> -+	.consumer_supplies      = zoom_vsim_supply,
> - };
> -
> - static struct regulator_init_data zoom_vmmc3 = {
> - 	.constraints = {
> - 		.valid_ops_mask	= REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	= 1,
> --	.consumer_supplies = &zoom_vmmc3_supply,
> -+	.num_consumer_supplies	= ARRAY_SIZE(zoom_vmmc3_supply),
> -+	.consumer_supplies	= zoom_vmmc3_supply,
> - };
> -
> - static struct fixed_voltage_config zoom_vwlan = {
> -@@ -232,8 +231,9 @@ static struct regulator_consumer_supply
> zoom_vpll2_supplies[] = {
> - 	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
> - };
> -
> --static struct regulator_consumer_supply zoom_vdda_dac_supply =
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
> -+static struct regulator_consumer_supply zoom_vdda_dac_supply[] = {
> -+	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> -+};
> -
> - static struct regulator_init_data zoom_vpll2 = {
> - 	.constraints = {
> -@@ -257,8 +257,8 @@ static struct regulator_init_data zoom_vdac = {
> - 		.valid_ops_mask         = REGULATOR_CHANGE_MODE
> - 					| REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies		= 1,
> --	.consumer_supplies		= &zoom_vdda_dac_supply,
> -+	.num_consumer_supplies		=
> ARRAY_SIZE(zoom_vdda_dac_supply),
> -+	.consumer_supplies		= zoom_vdda_dac_supply,
> - };
> -
> - static int zoom_twl_gpio_setup(struct device *dev,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0002-Remove-old-
> style-supply.dev-assignments-common-in-hs.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0002-Remove-old-style-supply.dev-assignments-common-
> in-hs.patch
> deleted file mode 100644
> index 52e6786..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0002-Remove-old-style-
> supply.dev-assignments-common-in-hs.patch
> +++ /dev/null
> @@ -1,160 +0,0 @@
> -From a3d13ae14bca7c412e5b0575c244ce7370fa3747 Mon Sep 17 00:00:00
> 2001
> -From: Oleg Drokin <green at linuxhacker.ru>
> -Date: Mon, 6 Jun 2011 18:57:08 +0000
> -Subject: [PATCH 002/149] Remove old-style supply.dev assignments common
> in hsmmc init
> -
> -CC: Mark Brown <broonie at opensource.wolfsonmicro.com>
> -CC: Mike Rapoport <mike at compulab.co.il>
> -CC: Nishant Kamat <nskamat at ti.com>
> -CC: Steve Sakoman <steve at sakoman.com>
> -CC: Felipe Balbi <balbi at ti.com>
> -Signed-off-by: Oleg Drokin <green at linuxhacker.ru>
> -Acked-by: Felipe Balbi <balbi at ti.com>
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/mach-omap2/board-cm-t35.c           |    4 ----
> - arch/arm/mach-omap2/board-ldp.c              |    2 --
> - arch/arm/mach-omap2/board-omap3beagle.c      |    4 ----
> - arch/arm/mach-omap2/board-omap3evm.c         |    4 ----
> - arch/arm/mach-omap2/board-omap3logic.c       |    2 --
> - arch/arm/mach-omap2/board-omap3stalker.c     |    4 ----
> - arch/arm/mach-omap2/board-omap3touchbook.c   |    4 ----
> - arch/arm/mach-omap2/board-overo.c            |    2 --
> - arch/arm/mach-omap2/board-zoom-peripherals.c |    7 -------
> - 9 files changed, 0 insertions(+), 33 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-
> omap2/board-cm-t35.c
> -index e7bf32d..ceb581e 100644
> ---- a/arch/arm/mach-omap2/board-cm-t35.c
> -+++ b/arch/arm/mach-omap2/board-cm-t35.c
> -@@ -483,10 +483,6 @@ static int cm_t35_twl_gpio_setup(struct device *dev,
> unsigned gpio,
> - 	mmc[0].gpio_cd = gpio + 0;
> - 	omap2_hsmmc_init(mmc);
> -
> --	/* link regulators to MMC adapters */
> --	cm_t35_vmmc1_supply.dev = mmc[0].dev;
> --	cm_t35_vsim_supply.dev = mmc[0].dev;
> --
> - 	return 0;
> - }
> -
> -diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-
> omap2/board-ldp.c
> -index 069bc9f..2d7e0ae 100644
> ---- a/arch/arm/mach-omap2/board-ldp.c
> -+++ b/arch/arm/mach-omap2/board-ldp.c
> -@@ -341,8 +341,6 @@ static void __init omap_ldp_init(void)
> - 		ARRAY_SIZE(ldp_nand_partitions), ZOOM_NAND_CS, 0);
> -
> - 	omap2_hsmmc_init(mmc);
> --	/* link regulators to MMC adapters */
> --	ldp_vmmc1_supply.dev = mmc[0].dev;
> - }
> -
> - MACHINE_START(OMAP_LDP, "OMAP LDP board")
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 4cf7c19..8ef0e19 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -268,10 +268,6 @@ static int beagle_twl_gpio_setup(struct device *dev,
> - 	mmc[0].gpio_cd = gpio + 0;
> - 	omap2_hsmmc_init(mmc);
> -
> --	/* link regulators to MMC adapters */
> --	beagle_vmmc1_supply.dev = mmc[0].dev;
> --	beagle_vsim_supply.dev = mmc[0].dev;
> --
> - 	/*
> - 	 * TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM
> active
> - 	 * high / others active low)
> -diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-
> omap2/board-omap3evm.c
> -index fc7a23a..e2202dd 100644
> ---- a/arch/arm/mach-omap2/board-omap3evm.c
> -+++ b/arch/arm/mach-omap2/board-omap3evm.c
> -@@ -365,10 +365,6 @@ static int omap3evm_twl_gpio_setup(struct device
> *dev,
> - 	mmc[0].gpio_cd = gpio + 0;
> - 	omap2_hsmmc_init(mmc);
> -
> --	/* link regulators to MMC adapters */
> --	omap3evm_vmmc1_supply.dev = mmc[0].dev;
> --	omap3evm_vsim_supply.dev = mmc[0].dev;
> --
> - 	/*
> - 	 * Most GPIOs are for USB OTG.  Some are mostly sent to
> - 	 * the P2 connector; notably LEDA for the LCD backlight.
> -diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-
> omap2/board-omap3logic.c
> -index ec18435..eaefb59 100644
> ---- a/arch/arm/mach-omap2/board-omap3logic.c
> -+++ b/arch/arm/mach-omap2/board-omap3logic.c
> -@@ -130,8 +130,6 @@ static void __init board_mmc_init(void)
> - 	}
> -
> - 	omap2_hsmmc_init(board_mmc_info);
> --	/* link regulators to MMC adapters */
> --	omap3logic_vmmc1_supply.dev = board_mmc_info[0].dev;
> - }
> -
> - static struct omap_smsc911x_platform_data __initdata
> board_smsc911x_data = {
> -diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-
> omap2/board-omap3stalker.c
> -index 99be540..63d12a3 100644
> ---- a/arch/arm/mach-omap2/board-omap3stalker.c
> -+++ b/arch/arm/mach-omap2/board-omap3stalker.c
> -@@ -321,10 +321,6 @@ omap3stalker_twl_gpio_setup(struct device *dev,
> - 	mmc[0].gpio_cd = gpio + 0;
> - 	omap2_hsmmc_init(mmc);
> -
> --	/* link regulators to MMC adapters */
> --	omap3stalker_vmmc1_supply.dev = mmc[0].dev;
> --	omap3stalker_vsim_supply.dev = mmc[0].dev;
> --
> - 	/*
> - 	 * Most GPIOs are for USB OTG.  Some are mostly sent to
> - 	 * the P2 connector; notably LEDA for the LCD backlight.
> -diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c
> b/arch/arm/mach-omap2/board-omap3touchbook.c
> -index ab5c37d..c80e2c3 100644
> ---- a/arch/arm/mach-omap2/board-omap3touchbook.c
> -+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
> -@@ -137,10 +137,6 @@ static int touchbook_twl_gpio_setup(struct device
> *dev,
> - 	mmc[0].gpio_cd = gpio + 0;
> - 	omap2_hsmmc_init(mmc);
> -
> --	/* link regulators to MMC adapters */
> --	touchbook_vmmc1_supply.dev = mmc[0].dev;
> --	touchbook_vsim_supply.dev = mmc[0].dev;
> --
> - 	/* REVISIT: need ehci-omap hooks for external VBUS
> - 	 * power switch and overcurrent detect
> - 	 */
> -diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-
> omap2/board-overo.c
> -index 30c7556..031a9a6 100644
> ---- a/arch/arm/mach-omap2/board-overo.c
> -+++ b/arch/arm/mach-omap2/board-overo.c
> -@@ -417,8 +417,6 @@ static int overo_twl_gpio_setup(struct device *dev,
> - {
> - 	omap2_hsmmc_init(mmc);
> -
> --	overo_vmmc1_supply.dev = mmc[0].dev;
> --
> - #if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
> - 	/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED)
> */
> - 	gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
> -diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c
> b/arch/arm/mach-omap2/board-zoom-peripherals.c
> -index cb012e1..8495f82 100644
> ---- a/arch/arm/mach-omap2/board-zoom-peripherals.c
> -+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
> -@@ -270,13 +270,6 @@ static int zoom_twl_gpio_setup(struct device *dev,
> - 	mmc[0].gpio_cd = gpio + 0;
> - 	omap2_hsmmc_init(mmc);
> -
> --	/* link regulators to MMC adapters ... we "know" the
> --	 * regulators will be set up only *after* we return.
> --	*/
> --	zoom_vmmc1_supply.dev = mmc[0].dev;
> --	zoom_vsim_supply.dev = mmc[0].dev;
> --	zoom_vmmc2_supply.dev = mmc[1].dev;
> --
> - 	ret = gpio_request_one(LCD_PANEL_ENABLE_GPIO,
> GPIOF_OUT_INIT_LOW,
> - 			       "lcd enable");
> - 	if (ret)
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0003-omap-Use-
> separate-init_irq-functions-to-avoid-cpu_is.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0003-omap-Use-separate-init_irq-functions-to-avoid-
> cpu_is.patch
> deleted file mode 100644
> index dbb6972..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0003-omap-Use-separate-
> init_irq-functions-to-avoid-cpu_is.patch
> +++ /dev/null
> @@ -1,802 +0,0 @@
> -From 5edd966fdcf04f3166c1b7028215e502ba7d5275 Mon Sep 17 00:00:00
> 2001
> -From: Tony Lindgren <tony at atomide.com>
> -Date: Tue, 17 May 2011 03:51:26 -0700
> -Subject: [PATCH 003/149] omap: Use separate init_irq functions to avoid
> cpu_is_omap tests early
> -
> -This allows us to remove cpu_is_omap calls from init_irq functions.
> -There should not be any need for cpu_is_omap calls as at this point.
> -During the timer init we only care about SoC generation, and not about
> -subrevisions.
> -
> -The main reason for the patch is that we want to initialize only
> -minimal omap specific code from the init_early call.
> -
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Reviewed-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap1/board-ams-delta.c      |    2 +-
> - arch/arm/mach-omap1/board-fsample.c        |    2 +-
> - arch/arm/mach-omap1/board-generic.c        |    2 +-
> - arch/arm/mach-omap1/board-h2.c             |    2 +-
> - arch/arm/mach-omap1/board-h3.c             |    2 +-
> - arch/arm/mach-omap1/board-htcherald.c      |    2 +-
> - arch/arm/mach-omap1/board-innovator.c      |    2 +-
> - arch/arm/mach-omap1/board-nokia770.c       |    2 +-
> - arch/arm/mach-omap1/board-osk.c            |    2 +-
> - arch/arm/mach-omap1/board-palmte.c         |    2 +-
> - arch/arm/mach-omap1/board-palmtt.c         |    2 +-
> - arch/arm/mach-omap1/board-palmz71.c        |    2 +-
> - arch/arm/mach-omap1/board-perseus2.c       |    2 +-
> - arch/arm/mach-omap1/board-sx1.c            |    2 +-
> - arch/arm/mach-omap1/board-voiceblue.c      |    2 +-
> - arch/arm/mach-omap1/irq.c                  |    2 +-
> - arch/arm/mach-omap2/board-2430sdp.c        |    2 +-
> - arch/arm/mach-omap2/board-3430sdp.c        |    2 +-
> - arch/arm/mach-omap2/board-3630sdp.c        |    2 +-
> - arch/arm/mach-omap2/board-am3517crane.c    |    2 +-
> - arch/arm/mach-omap2/board-am3517evm.c      |    2 +-
> - arch/arm/mach-omap2/board-apollon.c        |    2 +-
> - arch/arm/mach-omap2/board-cm-t35.c         |    2 +-
> - arch/arm/mach-omap2/board-cm-t3517.c       |    2 +-
> - arch/arm/mach-omap2/board-devkit8000.c     |    2 +-
> - arch/arm/mach-omap2/board-generic.c        |    2 +-
> - arch/arm/mach-omap2/board-h4.c             |    2 +-
> - arch/arm/mach-omap2/board-igep0020.c       |    4 +-
> - arch/arm/mach-omap2/board-ldp.c            |    2 +-
> - arch/arm/mach-omap2/board-n8x0.c           |    6 ++--
> - arch/arm/mach-omap2/board-omap3beagle.c    |    2 +-
> - arch/arm/mach-omap2/board-omap3evm.c       |    2 +-
> - arch/arm/mach-omap2/board-omap3logic.c     |    4 +-
> - arch/arm/mach-omap2/board-omap3pandora.c   |    2 +-
> - arch/arm/mach-omap2/board-omap3stalker.c   |    2 +-
> - arch/arm/mach-omap2/board-omap3touchbook.c |    2 +-
> - arch/arm/mach-omap2/board-overo.c          |    2 +-
> - arch/arm/mach-omap2/board-rm680.c          |    2 +-
> - arch/arm/mach-omap2/board-rx51.c           |    2 +-
> - arch/arm/mach-omap2/board-ti8168evm.c      |    7 +-----
> - arch/arm/mach-omap2/board-zoom.c           |    4 +-
> - arch/arm/mach-omap2/io.c                   |   17 +--------------
> - arch/arm/mach-omap2/irq.c                  |   32 ++++++++++++++++++---------
> - arch/arm/mach-omap2/omap4-common.c         |   10 ++++----
> - arch/arm/plat-omap/include/plat/irqs.h     |    6 ++++-
> - 45 files changed, 78 insertions(+), 84 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-
> omap1/board-ams-delta.c
> -index f49ce85..e3caef8 100644
> ---- a/arch/arm/mach-omap1/board-ams-delta.c
> -+++ b/arch/arm/mach-omap1/board-ams-delta.c
> -@@ -138,7 +138,7 @@ void ams_delta_latch2_write(u16 mask, u16 value)
> - static void __init ams_delta_init_irq(void)
> - {
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> -
> - static struct map_desc ams_delta_io_desc[] __initdata = {
> -diff --git a/arch/arm/mach-omap1/board-fsample.c b/arch/arm/mach-
> omap1/board-fsample.c
> -index 87f173d..eaff305 100644
> ---- a/arch/arm/mach-omap1/board-fsample.c
> -+++ b/arch/arm/mach-omap1/board-fsample.c
> -@@ -329,7 +329,7 @@ static void __init omap_fsample_init(void)
> - static void __init omap_fsample_init_irq(void)
> - {
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> -
> - /* Only FPGA needs to be mapped here. All others are done with ioremap */
> -diff --git a/arch/arm/mach-omap1/board-generic.c b/arch/arm/mach-
> omap1/board-generic.c
> -index 23f4ab9..3fd6b40 100644
> ---- a/arch/arm/mach-omap1/board-generic.c
> -+++ b/arch/arm/mach-omap1/board-generic.c
> -@@ -31,7 +31,7 @@
> - static void __init omap_generic_init_irq(void)
> - {
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> -
> - /* assume no Mini-AB port */
> -diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-
> omap1/board-h2.c
> -index ba3bd09..8147b04 100644
> ---- a/arch/arm/mach-omap1/board-h2.c
> -+++ b/arch/arm/mach-omap1/board-h2.c
> -@@ -376,7 +376,7 @@ static struct i2c_board_info __initdata
> h2_i2c_board_info[] = {
> - static void __init h2_init_irq(void)
> - {
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> -
> - static struct omap_usb_config h2_usb_config __initdata = {
> -diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-
> omap1/board-h3.c
> -index ac48677..1b448f6 100644
> ---- a/arch/arm/mach-omap1/board-h3.c
> -+++ b/arch/arm/mach-omap1/board-h3.c
> -@@ -439,7 +439,7 @@ static void __init h3_init(void)
> - static void __init h3_init_irq(void)
> - {
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> -
> - static void __init h3_map_io(void)
> -diff --git a/arch/arm/mach-omap1/board-htcherald.c b/arch/arm/mach-
> omap1/board-htcherald.c
> -index ba05a51..1bd4d8e 100644
> ---- a/arch/arm/mach-omap1/board-htcherald.c
> -+++ b/arch/arm/mach-omap1/board-htcherald.c
> -@@ -605,7 +605,7 @@ static void __init htcherald_init_irq(void)
> - {
> - 	printk(KERN_INFO "htcherald_init_irq.\n");
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> -
> - MACHINE_START(HERALD, "HTC Herald")
> -diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-
> omap1/board-innovator.c
> -index 2d9b8cb..5926b0c 100644
> ---- a/arch/arm/mach-omap1/board-innovator.c
> -+++ b/arch/arm/mach-omap1/board-innovator.c
> -@@ -292,7 +292,7 @@ static void __init innovator_init_smc91x(void)
> - static void __init innovator_init_irq(void)
> - {
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> -
> - #ifdef CONFIG_ARCH_OMAP15XX
> -diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-
> omap1/board-nokia770.c
> -index cfd0849..e3cf21d 100644
> ---- a/arch/arm/mach-omap1/board-nokia770.c
> -+++ b/arch/arm/mach-omap1/board-nokia770.c
> -@@ -51,7 +51,7 @@ static void __init omap_nokia770_init_irq(void)
> - 	omap_writew((omap_readw(0xfffb5004) & ~2), 0xfffb5004);
> -
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> -
> - static const unsigned int nokia770_keymap[] = {
> -diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-
> omap1/board-osk.c
> -index e68dfde..1e7823d 100644
> ---- a/arch/arm/mach-omap1/board-osk.c
> -+++ b/arch/arm/mach-omap1/board-osk.c
> -@@ -282,7 +282,7 @@ static void __init osk_init_cf(void)
> - static void __init osk_init_irq(void)
> - {
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> -
> - static struct omap_usb_config osk_usb_config __initdata = {
> -diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-
> omap1/board-palmte.c
> -index c9d38f4..8b6a881 100644
> ---- a/arch/arm/mach-omap1/board-palmte.c
> -+++ b/arch/arm/mach-omap1/board-palmte.c
> -@@ -62,7 +62,7 @@
> - static void __init omap_palmte_init_irq(void)
> - {
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> -
> - static const unsigned int palmte_keymap[] = {
> -diff --git a/arch/arm/mach-omap1/board-palmtt.c b/arch/arm/mach-
> omap1/board-palmtt.c
> -index f04f2d3..f2de43d 100644
> ---- a/arch/arm/mach-omap1/board-palmtt.c
> -+++ b/arch/arm/mach-omap1/board-palmtt.c
> -@@ -266,7 +266,7 @@ static struct spi_board_info __initdata
> palmtt_boardinfo[] = {
> - static void __init omap_palmtt_init_irq(void)
> - {
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> -
> - static struct omap_usb_config palmtt_usb_config __initdata = {
> -diff --git a/arch/arm/mach-omap1/board-palmz71.c b/arch/arm/mach-
> omap1/board-palmz71.c
> -index 45f01d2..6665d2d 100644
> ---- a/arch/arm/mach-omap1/board-palmz71.c
> -+++ b/arch/arm/mach-omap1/board-palmz71.c
> -@@ -61,7 +61,7 @@ static void __init
> - omap_palmz71_init_irq(void)
> - {
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> -
> - static const unsigned int palmz71_keymap[] = {
> -diff --git a/arch/arm/mach-omap1/board-perseus2.c b/arch/arm/mach-
> omap1/board-perseus2.c
> -index 3c8ee84..7f019e5 100644
> ---- a/arch/arm/mach-omap1/board-perseus2.c
> -+++ b/arch/arm/mach-omap1/board-perseus2.c
> -@@ -297,7 +297,7 @@ static void __init omap_perseus2_init(void)
> - static void __init omap_perseus2_init_irq(void)
> - {
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> - /* Only FPGA needs to be mapped here. All others are done with ioremap */
> - static struct map_desc omap_perseus2_io_desc[] __initdata = {
> -diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-
> omap1/board-sx1.c
> -index 0ad781d..24f0f7b 100644
> ---- a/arch/arm/mach-omap1/board-sx1.c
> -+++ b/arch/arm/mach-omap1/board-sx1.c
> -@@ -411,7 +411,7 @@ static void __init omap_sx1_init(void)
> - static void __init omap_sx1_init_irq(void)
> - {
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> - /*----------------------------------------*/
> -
> -diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-
> omap1/board-voiceblue.c
> -index 65d2420..98826e2 100644
> ---- a/arch/arm/mach-omap1/board-voiceblue.c
> -+++ b/arch/arm/mach-omap1/board-voiceblue.c
> -@@ -162,7 +162,7 @@ static struct omap_board_config_kernel
> voiceblue_config[] = {
> - static void __init voiceblue_init_irq(void)
> - {
> - 	omap1_init_common_hw();
> --	omap_init_irq();
> -+	omap1_init_irq();
> - }
> -
> - static void __init voiceblue_map_io(void)
> -diff --git a/arch/arm/mach-omap1/irq.c b/arch/arm/mach-omap1/irq.c
> -index 5d3da7a..e2b9c90 100644
> ---- a/arch/arm/mach-omap1/irq.c
> -+++ b/arch/arm/mach-omap1/irq.c
> -@@ -175,7 +175,7 @@ static struct irq_chip omap_irq_chip = {
> - 	.irq_set_wake	= omap_wake_irq,
> - };
> -
> --void __init omap_init_irq(void)
> -+void __init omap1_init_irq(void)
> - {
> - 	int i, j;
> -
> -diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-
> omap2/board-2430sdp.c
> -index 5de6eac..45cabc5 100644
> ---- a/arch/arm/mach-omap2/board-2430sdp.c
> -+++ b/arch/arm/mach-omap2/board-2430sdp.c
> -@@ -260,7 +260,7 @@ MACHINE_START(OMAP_2430SDP, "OMAP2430
> sdp2430 board")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap_2430sdp_map_io,
> - 	.init_early	= omap_2430sdp_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap2_init_irq,
> - 	.init_machine	= omap_2430sdp_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-
> omap2/board-3430sdp.c
> -index 5dac974..85b207f 100644
> ---- a/arch/arm/mach-omap2/board-3430sdp.c
> -+++ b/arch/arm/mach-omap2/board-3430sdp.c
> -@@ -804,7 +804,7 @@ MACHINE_START(OMAP_3430SDP, "OMAP3430
> 3430SDP board")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= omap_3430sdp_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap_3430sdp_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-
> omap2/board-3630sdp.c
> -index a5933cc..2ec2d76 100644
> ---- a/arch/arm/mach-omap2/board-3630sdp.c
> -+++ b/arch/arm/mach-omap2/board-3630sdp.c
> -@@ -219,7 +219,7 @@ MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP
> board")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= omap_sdp_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap_sdp_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-am3517crane.c b/arch/arm/mach-
> omap2/board-am3517crane.c
> -index 5e438a7..0bed0a4 100644
> ---- a/arch/arm/mach-omap2/board-am3517crane.c
> -+++ b/arch/arm/mach-omap2/board-am3517crane.c
> -@@ -104,7 +104,7 @@ MACHINE_START(CRANEBOARD, "AM3517/05
> CRANEBOARD")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= am3517_crane_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= am3517_crane_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-
> omap2/board-am3517evm.c
> -index 63af417..0db0fb8 100644
> ---- a/arch/arm/mach-omap2/board-am3517evm.c
> -+++ b/arch/arm/mach-omap2/board-am3517evm.c
> -@@ -494,7 +494,7 @@ MACHINE_START(OMAP3517EVM,
> "OMAP3517/AM3517 EVM")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= am3517_evm_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= am3517_evm_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-
> omap2/board-apollon.c
> -index b124bdf..93576c8 100644
> ---- a/arch/arm/mach-omap2/board-apollon.c
> -+++ b/arch/arm/mach-omap2/board-apollon.c
> -@@ -354,7 +354,7 @@ MACHINE_START(OMAP_APOLLON, "OMAP24xx
> Apollon")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap_apollon_map_io,
> - 	.init_early	= omap_apollon_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap2_init_irq,
> - 	.init_machine	= omap_apollon_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-
> omap2/board-cm-t35.c
> -index ceb581e..43b1de5 100644
> ---- a/arch/arm/mach-omap2/board-cm-t35.c
> -+++ b/arch/arm/mach-omap2/board-cm-t35.c
> -@@ -644,7 +644,7 @@ MACHINE_START(CM_T35, "Compulab CM-T35")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= cm_t35_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= cm_t35_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-cm-t3517.c b/arch/arm/mach-
> omap2/board-cm-t3517.c
> -index c3a9fd3..8f15222 100644
> ---- a/arch/arm/mach-omap2/board-cm-t3517.c
> -+++ b/arch/arm/mach-omap2/board-cm-t3517.c
> -@@ -304,7 +304,7 @@ MACHINE_START(CM_T3517, "Compulab CM-
> T3517")
> - 	.reserve        = omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= cm_t3517_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= cm_t3517_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-
> omap2/board-devkit8000.c
> -index ead9c1d..73f3a22 100644
> ---- a/arch/arm/mach-omap2/board-devkit8000.c
> -+++ b/arch/arm/mach-omap2/board-devkit8000.c
> -@@ -440,7 +440,7 @@ static void __init devkit8000_init_early(void)
> -
> - static void __init devkit8000_init_irq(void)
> - {
> --	omap_init_irq();
> -+	omap3_init_irq();
> - #ifdef CONFIG_OMAP_32K_TIMER
> - 	omap2_gp_clockevent_set_gptimer(12);
> - #endif
> -diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-
> omap2/board-generic.c
> -index 73e3c31..ccd503a 100644
> ---- a/arch/arm/mach-omap2/board-generic.c
> -+++ b/arch/arm/mach-omap2/board-generic.c
> -@@ -70,7 +70,7 @@ MACHINE_START(OMAP_GENERIC, "Generic
> OMAP24xx")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap_generic_map_io,
> - 	.init_early	= omap_generic_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap2_init_irq,
> - 	.init_machine	= omap_generic_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-
> omap2/board-h4.c
> -index bac7933..2e16d6c 100644
> ---- a/arch/arm/mach-omap2/board-h4.c
> -+++ b/arch/arm/mach-omap2/board-h4.c
> -@@ -298,7 +298,7 @@ static void __init omap_h4_init_early(void)
> -
> - static void __init omap_h4_init_irq(void)
> - {
> --	omap_init_irq();
> -+	omap2_init_irq();
> - }
> -
> - static struct at24_platform_data m24c01 = {
> -diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-
> omap2/board-igep0020.c
> -index 84d2846..f22a76a 100644
> ---- a/arch/arm/mach-omap2/board-igep0020.c
> -+++ b/arch/arm/mach-omap2/board-igep0020.c
> -@@ -706,7 +706,7 @@ MACHINE_START(IGEP0020, "IGEP v2 board")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= igep_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= igep_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -@@ -716,7 +716,7 @@ MACHINE_START(IGEP0030, "IGEP OMAP3 module")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= igep_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= igep_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-
> omap2/board-ldp.c
> -index 2d7e0ae..9671843 100644
> ---- a/arch/arm/mach-omap2/board-ldp.c
> -+++ b/arch/arm/mach-omap2/board-ldp.c
> -@@ -348,7 +348,7 @@ MACHINE_START(OMAP_LDP, "OMAP LDP board")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= omap_ldp_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap_ldp_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-
> omap2/board-n8x0.c
> -index 8d74318..9c791a2 100644
> ---- a/arch/arm/mach-omap2/board-n8x0.c
> -+++ b/arch/arm/mach-omap2/board-n8x0.c
> -@@ -699,7 +699,7 @@ MACHINE_START(NOKIA_N800, "Nokia N800")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= n8x0_map_io,
> - 	.init_early	= n8x0_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap2_init_irq,
> - 	.init_machine	= n8x0_init_machine,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -@@ -709,7 +709,7 @@ MACHINE_START(NOKIA_N810, "Nokia N810")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= n8x0_map_io,
> - 	.init_early	= n8x0_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap2_init_irq,
> - 	.init_machine	= n8x0_init_machine,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -@@ -719,7 +719,7 @@ MACHINE_START(NOKIA_N810_WIMAX, "Nokia
> N810 WiMAX")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= n8x0_map_io,
> - 	.init_early	= n8x0_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap2_init_irq,
> - 	.init_machine	= n8x0_init_machine,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 8ef0e19..eaead5e 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -483,7 +483,7 @@ static void __init omap3_beagle_init_early(void)
> -
> - static void __init omap3_beagle_init_irq(void)
> - {
> --	omap_init_irq();
> -+	omap3_init_irq();
> - #ifdef CONFIG_OMAP_32K_TIMER
> - 	omap2_gp_clockevent_set_gptimer(12);
> - #endif
> -diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-
> omap2/board-omap3evm.c
> -index e2202dd..d39f53f 100644
> ---- a/arch/arm/mach-omap2/board-omap3evm.c
> -+++ b/arch/arm/mach-omap2/board-omap3evm.c
> -@@ -739,7 +739,7 @@ MACHINE_START(OMAP3EVM, "OMAP3 EVM")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= omap3_evm_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap3_evm_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-
> omap2/board-omap3logic.c
> -index eaefb59..b63f1c2 100644
> ---- a/arch/arm/mach-omap2/board-omap3logic.c
> -+++ b/arch/arm/mach-omap2/board-omap3logic.c
> -@@ -213,7 +213,7 @@ MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3
> Torpedo board")
> - 	.boot_params	= 0x80000100,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= omap3logic_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap3logic_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -@@ -222,7 +222,7 @@ MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic
> 3530 LV SOM board")
> - 	.boot_params	= 0x80000100,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= omap3logic_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap3logic_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-
> omap2/board-omap3pandora.c
> -index 130a278..1d90b90 100644
> ---- a/arch/arm/mach-omap2/board-omap3pandora.c
> -+++ b/arch/arm/mach-omap2/board-omap3pandora.c
> -@@ -650,7 +650,7 @@ MACHINE_START(OMAP3_PANDORA, "Pandora
> Handheld Console")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= omap3pandora_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap3pandora_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-
> omap2/board-omap3stalker.c
> -index 63d12a3..dfa1401 100644
> ---- a/arch/arm/mach-omap2/board-omap3stalker.c
> -+++ b/arch/arm/mach-omap2/board-omap3stalker.c
> -@@ -491,7 +491,7 @@ static void __init omap3_stalker_init_early(void)
> -
> - static void __init omap3_stalker_init_irq(void)
> - {
> --	omap_init_irq();
> -+	omap3_init_irq();
> - #ifdef CONFIG_OMAP_32K_TIMER
> - 	omap2_gp_clockevent_set_gptimer(12);
> - #endif
> -diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c
> b/arch/arm/mach-omap2/board-omap3touchbook.c
> -index c80e2c3..ae97910 100644
> ---- a/arch/arm/mach-omap2/board-omap3touchbook.c
> -+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
> -@@ -371,7 +371,7 @@ static void __init omap3_touchbook_init_early(void)
> -
> - static void __init omap3_touchbook_init_irq(void)
> - {
> --	omap_init_irq();
> -+	omap3_init_irq();
> - #ifdef CONFIG_OMAP_32K_TIMER
> - 	omap2_gp_clockevent_set_gptimer(12);
> - #endif
> -diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-
> omap2/board-overo.c
> -index 031a9a6..e3928f23 100644
> ---- a/arch/arm/mach-omap2/board-overo.c
> -+++ b/arch/arm/mach-omap2/board-overo.c
> -@@ -615,7 +615,7 @@ MACHINE_START(OVERO, "Gumstix Overo")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= overo_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= overo_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-
> omap2/board-rm680.c
> -index 42d10b1..9c3d115 100644
> ---- a/arch/arm/mach-omap2/board-rm680.c
> -+++ b/arch/arm/mach-omap2/board-rm680.c
> -@@ -163,7 +163,7 @@ MACHINE_START(NOKIA_RM680, "Nokia RM-680
> board")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= rm680_map_io,
> - 	.init_early	= rm680_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= rm680_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-
> omap2/board-rx51.c
> -index fec4cac..ee35e4e 100644
> ---- a/arch/arm/mach-omap2/board-rx51.c
> -+++ b/arch/arm/mach-omap2/board-rx51.c
> -@@ -160,7 +160,7 @@ MACHINE_START(NOKIA_RX51, "Nokia RX-51 board")
> - 	.reserve	= rx51_reserve,
> - 	.map_io		= rx51_map_io,
> - 	.init_early	= rx51_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= rx51_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-ti8168evm.c b/arch/arm/mach-
> omap2/board-ti8168evm.c
> -index 09fa7bf..713c20f 100644
> ---- a/arch/arm/mach-omap2/board-ti8168evm.c
> -+++ b/arch/arm/mach-omap2/board-ti8168evm.c
> -@@ -33,11 +33,6 @@ static void __init ti8168_init_early(void)
> - 	omap2_init_common_devices(NULL, NULL);
> - }
> -
> --static void __init ti8168_evm_init_irq(void)
> --{
> --	omap_init_irq();
> --}
> --
> - static void __init ti8168_evm_init(void)
> - {
> - 	omap_serial_init();
> -@@ -56,7 +51,7 @@ MACHINE_START(TI8168EVM, "ti8168evm")
> - 	.boot_params	= 0x80000100,
> - 	.map_io		= ti8168_evm_map_io,
> - 	.init_early	= ti8168_init_early,
> --	.init_irq	= ti8168_evm_init_irq,
> -+	.init_irq	= ti816x_init_irq,
> - 	.timer		= &omap_timer,
> - 	.init_machine	= ti8168_evm_init,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-zoom.c b/arch/arm/mach-
> omap2/board-zoom.c
> -index 4b133d7..97a3f0b 100644
> ---- a/arch/arm/mach-omap2/board-zoom.c
> -+++ b/arch/arm/mach-omap2/board-zoom.c
> -@@ -137,7 +137,7 @@ MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2
> board")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= omap_zoom_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap_zoom_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -@@ -147,7 +147,7 @@ MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3
> board")
> - 	.reserve	= omap_reserve,
> - 	.map_io		= omap3_map_io,
> - 	.init_early	= omap_zoom_init_early,
> --	.init_irq	= omap_init_irq,
> -+	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap_zoom_init,
> - 	.timer		= &omap_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
> -index 441e79d..2ce1ce6 100644
> ---- a/arch/arm/mach-omap2/io.c
> -+++ b/arch/arm/mach-omap2/io.c
> -@@ -333,23 +333,9 @@ static int _set_hwmod_postsetup_state(struct
> omap_hwmod *oh, void *data)
> - 	return omap_hwmod_set_postsetup_state(oh, *(u8 *)data);
> - }
> -
> -+/* See irq.c, omap4-common.c and entry-macro.S */
> - void __iomem *omap_irq_base;
> -
> --/*
> -- * Initialize asm_irq_base for entry-macro.S
> -- */
> --static inline void omap_irq_base_init(void)
> --{
> --	if (cpu_is_omap24xx())
> --		omap_irq_base =
> OMAP2_L4_IO_ADDRESS(OMAP24XX_IC_BASE);
> --	else if (cpu_is_omap34xx())
> --		omap_irq_base =
> OMAP2_L4_IO_ADDRESS(OMAP34XX_IC_BASE);
> --	else if (cpu_is_omap44xx())
> --		omap_irq_base =
> OMAP2_L4_IO_ADDRESS(OMAP44XX_GIC_CPU_BASE);
> --	else
> --		pr_err("Could not initialize omap_irq_base\n");
> --}
> --
> - void __init omap2_init_common_infrastructure(void)
> - {
> - 	u8 postsetup_state;
> -@@ -422,7 +408,6 @@ void __init omap2_init_common_devices(struct
> omap_sdrc_params *sdrc_cs0,
> - 		_omap2_init_reprogram_sdrc();
> - 	}
> -
> --	omap_irq_base_init();
> - }
> -
> - /*
> -diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
> -index 3af2b7a..3a12f75 100644
> ---- a/arch/arm/mach-omap2/irq.c
> -+++ b/arch/arm/mach-omap2/irq.c
> -@@ -141,25 +141,20 @@ omap_alloc_gc(void __iomem *base, unsigned int
> irq_start, unsigned int num)
> - 				IRQ_NOREQUEST | IRQ_NOPROBE, 0);
> - }
> -
> --void __init omap_init_irq(void)
> -+static void __init omap_init_irq(u32 base, int nr_irqs)
> - {
> - 	unsigned long nr_of_irqs = 0;
> - 	unsigned int nr_banks = 0;
> - 	int i, j;
> -
> -+	omap_irq_base = ioremap(base, SZ_4K);
> -+	if (WARN_ON(!omap_irq_base))
> -+		return;
> -+
> - 	for (i = 0; i < ARRAY_SIZE(irq_banks); i++) {
> --		unsigned long base = 0;
> - 		struct omap_irq_bank *bank = irq_banks + i;
> -
> --		if (cpu_is_omap24xx())
> --			base = OMAP24XX_IC_BASE;
> --		else if (cpu_is_omap34xx())
> --			base = OMAP34XX_IC_BASE;
> --
> --		BUG_ON(!base);
> --
> --		if (cpu_is_ti816x())
> --			bank->nr_irqs = 128;
> -+		bank->nr_irqs = nr_irqs;
> -
> - 		/* Static mapping, never released */
> - 		bank->base_reg = ioremap(base, SZ_4K);
> -@@ -181,6 +176,21 @@ void __init omap_init_irq(void)
> - 	       nr_of_irqs, nr_banks, nr_banks > 1 ? "s" : "");
> - }
> -
> -+void __init omap2_init_irq(void)
> -+{
> -+	omap_init_irq(OMAP24XX_IC_BASE, 96);
> -+}
> -+
> -+void __init omap3_init_irq(void)
> -+{
> -+	omap_init_irq(OMAP34XX_IC_BASE, 96);
> -+}
> -+
> -+void __init ti816x_init_irq(void)
> -+{
> -+	omap_init_irq(OMAP34XX_IC_BASE, 128);
> -+}
> -+
> - #ifdef CONFIG_ARCH_OMAP3
> - static struct omap3_intc_regs intc_context[ARRAY_SIZE(irq_banks)];
> -
> -diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-
> omap2/omap4-common.c
> -index 9ef8c29..35ac3e5 100644
> ---- a/arch/arm/mach-omap2/omap4-common.c
> -+++ b/arch/arm/mach-omap2/omap4-common.c
> -@@ -19,6 +19,8 @@
> - #include <asm/hardware/gic.h>
> - #include <asm/hardware/cache-l2x0.h>
> -
> -+#include <plat/irqs.h>
> -+
> - #include <mach/hardware.h>
> - #include <mach/omap4-common.h>
> -
> -@@ -31,17 +33,15 @@ void __iomem *gic_dist_base_addr;
> -
> - void __init gic_init_irq(void)
> - {
> --	void __iomem *gic_cpu_base;
> --
> - 	/* Static mapping, never released */
> - 	gic_dist_base_addr = ioremap(OMAP44XX_GIC_DIST_BASE, SZ_4K);
> - 	BUG_ON(!gic_dist_base_addr);
> -
> - 	/* Static mapping, never released */
> --	gic_cpu_base = ioremap(OMAP44XX_GIC_CPU_BASE, SZ_512);
> --	BUG_ON(!gic_cpu_base);
> -+	omap_irq_base = ioremap(OMAP44XX_GIC_CPU_BASE, SZ_512);
> -+	BUG_ON(!omap_irq_base);
> -
> --	gic_init(0, 29, gic_dist_base_addr, gic_cpu_base);
> -+	gic_init(0, 29, gic_dist_base_addr, omap_irq_base);
> - }
> -
> - #ifdef CONFIG_CACHE_L2X0
> -diff --git a/arch/arm/plat-omap/include/plat/irqs.h b/arch/arm/plat-
> omap/include/plat/irqs.h
> -index 5a25098..c884320 100644
> ---- a/arch/arm/plat-omap/include/plat/irqs.h
> -+++ b/arch/arm/plat-omap/include/plat/irqs.h
> -@@ -428,7 +428,11 @@
> - #define INTCPS_NR_IRQS		96
> -
> - #ifndef __ASSEMBLY__
> --extern void omap_init_irq(void);
> -+extern void __iomem *omap_irq_base;
> -+void omap1_init_irq(void);
> -+void omap2_init_irq(void);
> -+void omap3_init_irq(void);
> -+void ti816x_init_irq(void);
> - extern int omap_irq_pending(void);
> - void omap_intc_save_context(void);
> - void omap_intc_restore_context(void);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0004-omap-Set-
> separate-timer-init-functions-to-avoid-cpu_.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0004-omap-Set-separate-timer-init-functions-to-avoid-
> cpu_.patch
> deleted file mode 100644
> index 8fbbc47..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0004-omap-Set-separate-
> timer-init-functions-to-avoid-cpu_.patch
> +++ /dev/null
> @@ -1,689 +0,0 @@
> -From b623b767d19edcc2d08909b044e1ab57956d9d49 Mon Sep 17
> 00:00:00 2001
> -From: Tony Lindgren <tony at atomide.com>
> -Date: Tue, 29 Mar 2011 15:54:48 -0700
> -Subject: [PATCH 004/149] omap: Set separate timer init functions to avoid
> cpu_is_omap tests
> -
> -This is needed for the following patches so we can initialize the
> -rest of the hardware timers later on.
> -
> -As with the init_irq calls, there's no need to do cpu_is_omap calls
> -during the timer init as we only care about the major omap generation.
> -This means that we can initialize the sys_timer with the .timer
> -entries alone.
> -
> -Note that for now we just set stubs for the various sys_timer entries
> -that will get populated in a later patch. The following patches will
> -also remove the omap_dm_timer_init calls and change the init for the
> -rest of the hardware timers to happen with an arch_initcall.
> -
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Reviewed-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap1/board-ams-delta.c      |    2 +-
> - arch/arm/mach-omap1/board-fsample.c        |    2 +-
> - arch/arm/mach-omap1/board-generic.c        |    2 +-
> - arch/arm/mach-omap1/board-h2.c             |    2 +-
> - arch/arm/mach-omap1/board-h3.c             |    2 +-
> - arch/arm/mach-omap1/board-htcherald.c      |    2 +-
> - arch/arm/mach-omap1/board-innovator.c      |    2 +-
> - arch/arm/mach-omap1/board-nokia770.c       |    2 +-
> - arch/arm/mach-omap1/board-osk.c            |    2 +-
> - arch/arm/mach-omap1/board-palmte.c         |    2 +-
> - arch/arm/mach-omap1/board-palmtt.c         |    2 +-
> - arch/arm/mach-omap1/board-palmz71.c        |    2 +-
> - arch/arm/mach-omap1/board-perseus2.c       |    2 +-
> - arch/arm/mach-omap1/board-sx1.c            |    2 +-
> - arch/arm/mach-omap1/board-voiceblue.c      |    2 +-
> - arch/arm/mach-omap1/time.c                 |    6 ++--
> - arch/arm/mach-omap2/board-2430sdp.c        |    2 +-
> - arch/arm/mach-omap2/board-3430sdp.c        |    2 +-
> - arch/arm/mach-omap2/board-3630sdp.c        |    2 +-
> - arch/arm/mach-omap2/board-4430sdp.c        |    2 +-
> - arch/arm/mach-omap2/board-am3517crane.c    |    2 +-
> - arch/arm/mach-omap2/board-am3517evm.c      |    2 +-
> - arch/arm/mach-omap2/board-apollon.c        |    2 +-
> - arch/arm/mach-omap2/board-cm-t35.c         |    2 +-
> - arch/arm/mach-omap2/board-cm-t3517.c       |    2 +-
> - arch/arm/mach-omap2/board-devkit8000.c     |    2 +-
> - arch/arm/mach-omap2/board-generic.c        |    2 +-
> - arch/arm/mach-omap2/board-h4.c             |    2 +-
> - arch/arm/mach-omap2/board-igep0020.c       |    4 +-
> - arch/arm/mach-omap2/board-ldp.c            |    2 +-
> - arch/arm/mach-omap2/board-n8x0.c           |    6 ++--
> - arch/arm/mach-omap2/board-omap3beagle.c    |    2 +-
> - arch/arm/mach-omap2/board-omap3evm.c       |    2 +-
> - arch/arm/mach-omap2/board-omap3logic.c     |    4 +-
> - arch/arm/mach-omap2/board-omap3pandora.c   |    2 +-
> - arch/arm/mach-omap2/board-omap3stalker.c   |    2 +-
> - arch/arm/mach-omap2/board-omap3touchbook.c |    2 +-
> - arch/arm/mach-omap2/board-omap4panda.c     |    2 +-
> - arch/arm/mach-omap2/board-overo.c          |    2 +-
> - arch/arm/mach-omap2/board-rm680.c          |    2 +-
> - arch/arm/mach-omap2/board-rx51.c           |    2 +-
> - arch/arm/mach-omap2/board-ti8168evm.c      |    2 +-
> - arch/arm/mach-omap2/board-zoom.c           |    4 +-
> - arch/arm/mach-omap2/timer-gp.c             |   41 +++++++++++++++++++++----
> ---
> - arch/arm/plat-omap/include/plat/common.h   |    6 +++-
> - arch/arm/plat-omap/include/plat/dmtimer.h  |    1 -
> - 46 files changed, 86 insertions(+), 62 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-
> omap1/board-ams-delta.c
> -index e3caef8..312ea6b 100644
> ---- a/arch/arm/mach-omap1/board-ams-delta.c
> -+++ b/arch/arm/mach-omap1/board-ams-delta.c
> -@@ -391,7 +391,7 @@ MACHINE_START(AMS_DELTA, "Amstrad E3 (Delta)")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= ams_delta_init_irq,
> - 	.init_machine	= ams_delta_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -
> - EXPORT_SYMBOL(ams_delta_latch1_write);
> -diff --git a/arch/arm/mach-omap1/board-fsample.c b/arch/arm/mach-
> omap1/board-fsample.c
> -index eaff305..a6b1bea 100644
> ---- a/arch/arm/mach-omap1/board-fsample.c
> -+++ b/arch/arm/mach-omap1/board-fsample.c
> -@@ -394,5 +394,5 @@ MACHINE_START(OMAP_FSAMPLE, "OMAP730 F-
> Sample")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= omap_fsample_init_irq,
> - 	.init_machine	= omap_fsample_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/board-generic.c b/arch/arm/mach-
> omap1/board-generic.c
> -index 3fd6b40..04fc356 100644
> ---- a/arch/arm/mach-omap1/board-generic.c
> -+++ b/arch/arm/mach-omap1/board-generic.c
> -@@ -99,5 +99,5 @@ MACHINE_START(OMAP_GENERIC, "Generic
> OMAP1510/1610/1710")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= omap_generic_init_irq,
> - 	.init_machine	= omap_generic_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-
> omap1/board-h2.c
> -index 8147b04..cb7fb1a 100644
> ---- a/arch/arm/mach-omap1/board-h2.c
> -+++ b/arch/arm/mach-omap1/board-h2.c
> -@@ -466,5 +466,5 @@ MACHINE_START(OMAP_H2, "TI-H2")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= h2_init_irq,
> - 	.init_machine	= h2_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-
> omap1/board-h3.c
> -index 1b448f6..31f3487 100644
> ---- a/arch/arm/mach-omap1/board-h3.c
> -+++ b/arch/arm/mach-omap1/board-h3.c
> -@@ -454,5 +454,5 @@ MACHINE_START(OMAP_H3, "TI OMAP1710 H3
> board")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= h3_init_irq,
> - 	.init_machine	= h3_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/board-htcherald.c b/arch/arm/mach-
> omap1/board-htcherald.c
> -index 1bd4d8e..36e06ea 100644
> ---- a/arch/arm/mach-omap1/board-htcherald.c
> -+++ b/arch/arm/mach-omap1/board-htcherald.c
> -@@ -616,5 +616,5 @@ MACHINE_START(HERALD, "HTC Herald")
> - 	.reserve	= omap_reserve,
> - 	.init_irq       = htcherald_init_irq,
> - 	.init_machine   = htcherald_init,
> --	.timer          = &omap_timer,
> -+	.timer          = &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-
> omap1/board-innovator.c
> -index 5926b0c..0b1ba46 100644
> ---- a/arch/arm/mach-omap1/board-innovator.c
> -+++ b/arch/arm/mach-omap1/board-innovator.c
> -@@ -464,5 +464,5 @@ MACHINE_START(OMAP_INNOVATOR, "TI-
> Innovator")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= innovator_init_irq,
> - 	.init_machine	= innovator_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-
> omap1/board-nokia770.c
> -index e3cf21d..5469ce2 100644
> ---- a/arch/arm/mach-omap1/board-nokia770.c
> -+++ b/arch/arm/mach-omap1/board-nokia770.c
> -@@ -269,5 +269,5 @@ MACHINE_START(NOKIA770, "Nokia 770")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= omap_nokia770_init_irq,
> - 	.init_machine	= omap_nokia770_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-
> omap1/board-osk.c
> -index 1e7823d..b08a213 100644
> ---- a/arch/arm/mach-omap1/board-osk.c
> -+++ b/arch/arm/mach-omap1/board-osk.c
> -@@ -588,5 +588,5 @@ MACHINE_START(OMAP_OSK, "TI-OSK")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= osk_init_irq,
> - 	.init_machine	= osk_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-
> omap1/board-palmte.c
> -index 8b6a881..459cb6b 100644
> ---- a/arch/arm/mach-omap1/board-palmte.c
> -+++ b/arch/arm/mach-omap1/board-palmte.c
> -@@ -280,5 +280,5 @@ MACHINE_START(OMAP_PALMTE, "OMAP310 based
> Palm Tungsten E")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= omap_palmte_init_irq,
> - 	.init_machine	= omap_palmte_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/board-palmtt.c b/arch/arm/mach-
> omap1/board-palmtt.c
> -index f2de43d..b214f45 100644
> ---- a/arch/arm/mach-omap1/board-palmtt.c
> -+++ b/arch/arm/mach-omap1/board-palmtt.c
> -@@ -326,5 +326,5 @@ MACHINE_START(OMAP_PALMTT, "OMAP1510
> based Palm Tungsten|T")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= omap_palmtt_init_irq,
> - 	.init_machine	= omap_palmtt_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/board-palmz71.c b/arch/arm/mach-
> omap1/board-palmz71.c
> -index 6665d2d..9b0ea48 100644
> ---- a/arch/arm/mach-omap1/board-palmz71.c
> -+++ b/arch/arm/mach-omap1/board-palmz71.c
> -@@ -346,5 +346,5 @@ MACHINE_START(OMAP_PALMZ71, "OMAP310
> based Palm Zire71")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= omap_palmz71_init_irq,
> - 	.init_machine	= omap_palmz71_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/board-perseus2.c b/arch/arm/mach-
> omap1/board-perseus2.c
> -index 7f019e5..67acd41 100644
> ---- a/arch/arm/mach-omap1/board-perseus2.c
> -+++ b/arch/arm/mach-omap1/board-perseus2.c
> -@@ -355,5 +355,5 @@ MACHINE_START(OMAP_PERSEUS2, "OMAP730
> Perseus2")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= omap_perseus2_init_irq,
> - 	.init_machine	= omap_perseus2_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-
> omap1/board-sx1.c
> -index 24f0f7b..9c3b7c5 100644
> ---- a/arch/arm/mach-omap1/board-sx1.c
> -+++ b/arch/arm/mach-omap1/board-sx1.c
> -@@ -426,5 +426,5 @@ MACHINE_START(SX1, "OMAP310 based Siemens
> SX1")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= omap_sx1_init_irq,
> - 	.init_machine	= omap_sx1_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-
> omap1/board-voiceblue.c
> -index 98826e2..036edc0e 100644
> ---- a/arch/arm/mach-omap1/board-voiceblue.c
> -+++ b/arch/arm/mach-omap1/board-voiceblue.c
> -@@ -306,5 +306,5 @@ MACHINE_START(VOICEBLUE, "VoiceBlue
> OMAP5910")
> - 	.reserve	= omap_reserve,
> - 	.init_irq	= voiceblue_init_irq,
> - 	.init_machine	= voiceblue_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap1_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c
> -index 03e1e10..a183777 100644
> ---- a/arch/arm/mach-omap1/time.c
> -+++ b/arch/arm/mach-omap1/time.c
> -@@ -297,7 +297,7 @@ static inline int omap_32k_timer_usable(void)
> -  * Timer initialization
> -  * ---------------------------------------------------------------------------
> -  */
> --static void __init omap_timer_init(void)
> -+static void __init omap1_timer_init(void)
> - {
> - 	if (omap_32k_timer_usable()) {
> - 		preferred_sched_clock_init(1);
> -@@ -307,6 +307,6 @@ static void __init omap_timer_init(void)
> - 	}
> - }
> -
> --struct sys_timer omap_timer = {
> --	.init		= omap_timer_init,
> -+struct sys_timer omap1_timer = {
> -+	.init		= omap1_timer_init,
> - };
> -diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-
> omap2/board-2430sdp.c
> -index 45cabc5..2028464 100644
> ---- a/arch/arm/mach-omap2/board-2430sdp.c
> -+++ b/arch/arm/mach-omap2/board-2430sdp.c
> -@@ -262,5 +262,5 @@ MACHINE_START(OMAP_2430SDP, "OMAP2430
> sdp2430 board")
> - 	.init_early	= omap_2430sdp_init_early,
> - 	.init_irq	= omap2_init_irq,
> - 	.init_machine	= omap_2430sdp_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap2_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-
> omap2/board-3430sdp.c
> -index 85b207f..12fae21 100644
> ---- a/arch/arm/mach-omap2/board-3430sdp.c
> -+++ b/arch/arm/mach-omap2/board-3430sdp.c
> -@@ -806,5 +806,5 @@ MACHINE_START(OMAP_3430SDP, "OMAP3430
> 3430SDP board")
> - 	.init_early	= omap_3430sdp_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap_3430sdp_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-
> omap2/board-3630sdp.c
> -index 2ec2d76..e4f37b5 100644
> ---- a/arch/arm/mach-omap2/board-3630sdp.c
> -+++ b/arch/arm/mach-omap2/board-3630sdp.c
> -@@ -221,5 +221,5 @@ MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP
> board")
> - 	.init_early	= omap_sdp_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap_sdp_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-
> omap2/board-4430sdp.c
> -index 39a8062..e8caced 100644
> ---- a/arch/arm/mach-omap2/board-4430sdp.c
> -+++ b/arch/arm/mach-omap2/board-4430sdp.c
> -@@ -768,5 +768,5 @@ MACHINE_START(OMAP_4430SDP, "OMAP4430
> 4430SDP board")
> - 	.init_early	= omap_4430sdp_init_early,
> - 	.init_irq	= gic_init_irq,
> - 	.init_machine	= omap_4430sdp_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap4_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-am3517crane.c b/arch/arm/mach-
> omap2/board-am3517crane.c
> -index 0bed0a4..5f2b55f 100644
> ---- a/arch/arm/mach-omap2/board-am3517crane.c
> -+++ b/arch/arm/mach-omap2/board-am3517crane.c
> -@@ -106,5 +106,5 @@ MACHINE_START(CRANEBOARD, "AM3517/05
> CRANEBOARD")
> - 	.init_early	= am3517_crane_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= am3517_crane_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-
> omap2/board-am3517evm.c
> -index 0db0fb8..f3006c3 100644
> ---- a/arch/arm/mach-omap2/board-am3517evm.c
> -+++ b/arch/arm/mach-omap2/board-am3517evm.c
> -@@ -496,5 +496,5 @@ MACHINE_START(OMAP3517EVM,
> "OMAP3517/AM3517 EVM")
> - 	.init_early	= am3517_evm_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= am3517_evm_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-
> omap2/board-apollon.c
> -index 93576c8..7021170 100644
> ---- a/arch/arm/mach-omap2/board-apollon.c
> -+++ b/arch/arm/mach-omap2/board-apollon.c
> -@@ -356,5 +356,5 @@ MACHINE_START(OMAP_APOLLON, "OMAP24xx
> Apollon")
> - 	.init_early	= omap_apollon_init_early,
> - 	.init_irq	= omap2_init_irq,
> - 	.init_machine	= omap_apollon_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap2_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-
> omap2/board-cm-t35.c
> -index 43b1de5..1a18d3b 100644
> ---- a/arch/arm/mach-omap2/board-cm-t35.c
> -+++ b/arch/arm/mach-omap2/board-cm-t35.c
> -@@ -646,5 +646,5 @@ MACHINE_START(CM_T35, "Compulab CM-T35")
> - 	.init_early	= cm_t35_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= cm_t35_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-cm-t3517.c b/arch/arm/mach-
> omap2/board-cm-t3517.c
> -index 8f15222..aa67240 100644
> ---- a/arch/arm/mach-omap2/board-cm-t3517.c
> -+++ b/arch/arm/mach-omap2/board-cm-t3517.c
> -@@ -306,5 +306,5 @@ MACHINE_START(CM_T3517, "Compulab CM-
> T3517")
> - 	.init_early	= cm_t3517_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= cm_t3517_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-
> omap2/board-devkit8000.c
> -index 73f3a22..46d144d 100644
> ---- a/arch/arm/mach-omap2/board-devkit8000.c
> -+++ b/arch/arm/mach-omap2/board-devkit8000.c
> -@@ -709,5 +709,5 @@ MACHINE_START(DEVKIT8000, "OMAP3
> Devkit8000")
> - 	.init_early	= devkit8000_init_early,
> - 	.init_irq	= devkit8000_init_irq,
> - 	.init_machine	= devkit8000_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_secure_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-
> omap2/board-generic.c
> -index ccd503a..c6ecf60 100644
> ---- a/arch/arm/mach-omap2/board-generic.c
> -+++ b/arch/arm/mach-omap2/board-generic.c
> -@@ -72,5 +72,5 @@ MACHINE_START(OMAP_GENERIC, "Generic
> OMAP24xx")
> - 	.init_early	= omap_generic_init_early,
> - 	.init_irq	= omap2_init_irq,
> - 	.init_machine	= omap_generic_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-
> omap2/board-h4.c
> -index 2e16d6c..45de2b3 100644
> ---- a/arch/arm/mach-omap2/board-h4.c
> -+++ b/arch/arm/mach-omap2/board-h4.c
> -@@ -388,5 +388,5 @@ MACHINE_START(OMAP_H4, "OMAP2420 H4
> board")
> - 	.init_early	= omap_h4_init_early,
> - 	.init_irq	= omap_h4_init_irq,
> - 	.init_machine	= omap_h4_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap2_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-
> omap2/board-igep0020.c
> -index f22a76a..f683835 100644
> ---- a/arch/arm/mach-omap2/board-igep0020.c
> -+++ b/arch/arm/mach-omap2/board-igep0020.c
> -@@ -708,7 +708,7 @@ MACHINE_START(IGEP0020, "IGEP v2 board")
> - 	.init_early	= igep_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= igep_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -
> - MACHINE_START(IGEP0030, "IGEP OMAP3 module")
> -@@ -718,5 +718,5 @@ MACHINE_START(IGEP0030, "IGEP OMAP3 module")
> - 	.init_early	= igep_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= igep_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-
> omap2/board-ldp.c
> -index 9671843..5d4328f 100644
> ---- a/arch/arm/mach-omap2/board-ldp.c
> -+++ b/arch/arm/mach-omap2/board-ldp.c
> -@@ -350,5 +350,5 @@ MACHINE_START(OMAP_LDP, "OMAP LDP board")
> - 	.init_early	= omap_ldp_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap_ldp_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-
> omap2/board-n8x0.c
> -index 9c791a2..e11f0c5 100644
> ---- a/arch/arm/mach-omap2/board-n8x0.c
> -+++ b/arch/arm/mach-omap2/board-n8x0.c
> -@@ -701,7 +701,7 @@ MACHINE_START(NOKIA_N800, "Nokia N800")
> - 	.init_early	= n8x0_init_early,
> - 	.init_irq	= omap2_init_irq,
> - 	.init_machine	= n8x0_init_machine,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap2_timer,
> - MACHINE_END
> -
> - MACHINE_START(NOKIA_N810, "Nokia N810")
> -@@ -711,7 +711,7 @@ MACHINE_START(NOKIA_N810, "Nokia N810")
> - 	.init_early	= n8x0_init_early,
> - 	.init_irq	= omap2_init_irq,
> - 	.init_machine	= n8x0_init_machine,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap2_timer,
> - MACHINE_END
> -
> - MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX")
> -@@ -721,5 +721,5 @@ MACHINE_START(NOKIA_N810_WIMAX, "Nokia
> N810 WiMAX")
> - 	.init_early	= n8x0_init_early,
> - 	.init_irq	= omap2_init_irq,
> - 	.init_machine	= n8x0_init_machine,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap2_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index eaead5e..9ee16f6 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -596,5 +596,5 @@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle
> Board")
> - 	.init_early	= omap3_beagle_init_early,
> - 	.init_irq	= omap3_beagle_init_irq,
> - 	.init_machine	= omap3_beagle_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_secure_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-
> omap2/board-omap3evm.c
> -index d39f53f..6f957ed 100644
> ---- a/arch/arm/mach-omap2/board-omap3evm.c
> -+++ b/arch/arm/mach-omap2/board-omap3evm.c
> -@@ -741,5 +741,5 @@ MACHINE_START(OMAP3EVM, "OMAP3 EVM")
> - 	.init_early	= omap3_evm_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap3_evm_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-
> omap2/board-omap3logic.c
> -index b63f1c2..469259a 100644
> ---- a/arch/arm/mach-omap2/board-omap3logic.c
> -+++ b/arch/arm/mach-omap2/board-omap3logic.c
> -@@ -215,7 +215,7 @@ MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3
> Torpedo board")
> - 	.init_early	= omap3logic_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap3logic_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -
> - MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board")
> -@@ -224,5 +224,5 @@ MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic
> 3530 LV SOM board")
> - 	.init_early	= omap3logic_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap3logic_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-
> omap2/board-omap3pandora.c
> -index 1d90b90..d4ea940 100644
> ---- a/arch/arm/mach-omap2/board-omap3pandora.c
> -+++ b/arch/arm/mach-omap2/board-omap3pandora.c
> -@@ -652,5 +652,5 @@ MACHINE_START(OMAP3_PANDORA, "Pandora
> Handheld Console")
> - 	.init_early	= omap3pandora_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap3pandora_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-
> omap2/board-omap3stalker.c
> -index dfa1401..2fa8fae 100644
> ---- a/arch/arm/mach-omap2/board-omap3stalker.c
> -+++ b/arch/arm/mach-omap2/board-omap3stalker.c
> -@@ -557,5 +557,5 @@ MACHINE_START(SBC3530, "OMAP3 STALKER")
> - 	.init_early		= omap3_stalker_init_early,
> - 	.init_irq		= omap3_stalker_init_irq,
> - 	.init_machine		= omap3_stalker_init,
> --	.timer			= &omap_timer,
> -+	.timer			= &omap3_secure_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c
> b/arch/arm/mach-omap2/board-omap3touchbook.c
> -index ae97910..8c71fd2 100644
> ---- a/arch/arm/mach-omap2/board-omap3touchbook.c
> -+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
> -@@ -449,5 +449,5 @@ MACHINE_START(TOUCHBOOK, "OMAP3 touchbook
> Board")
> - 	.init_early	= omap3_touchbook_init_early,
> - 	.init_irq	= omap3_touchbook_init_irq,
> - 	.init_machine	= omap3_touchbook_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_secure_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-
> omap2/board-omap4panda.c
> -index 6d2372b..dc1d6dc 100644
> ---- a/arch/arm/mach-omap2/board-omap4panda.c
> -+++ b/arch/arm/mach-omap2/board-omap4panda.c
> -@@ -712,5 +712,5 @@ MACHINE_START(OMAP4_PANDA, "OMAP4 Panda
> board")
> - 	.init_early	= omap4_panda_init_early,
> - 	.init_irq	= gic_init_irq,
> - 	.init_machine	= omap4_panda_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap4_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-
> omap2/board-overo.c
> -index e3928f23..1bf2f39 100644
> ---- a/arch/arm/mach-omap2/board-overo.c
> -+++ b/arch/arm/mach-omap2/board-overo.c
> -@@ -617,5 +617,5 @@ MACHINE_START(OVERO, "Gumstix Overo")
> - 	.init_early	= overo_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= overo_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-
> omap2/board-rm680.c
> -index 9c3d115..54dceb1 100644
> ---- a/arch/arm/mach-omap2/board-rm680.c
> -+++ b/arch/arm/mach-omap2/board-rm680.c
> -@@ -165,5 +165,5 @@ MACHINE_START(NOKIA_RM680, "Nokia RM-680
> board")
> - 	.init_early	= rm680_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= rm680_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-
> omap2/board-rx51.c
> -index ee35e4e..5ea142f 100644
> ---- a/arch/arm/mach-omap2/board-rx51.c
> -+++ b/arch/arm/mach-omap2/board-rx51.c
> -@@ -162,5 +162,5 @@ MACHINE_START(NOKIA_RX51, "Nokia RX-51 board")
> - 	.init_early	= rx51_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= rx51_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-ti8168evm.c b/arch/arm/mach-
> omap2/board-ti8168evm.c
> -index 713c20f..a85d5b0 100644
> ---- a/arch/arm/mach-omap2/board-ti8168evm.c
> -+++ b/arch/arm/mach-omap2/board-ti8168evm.c
> -@@ -52,6 +52,6 @@ MACHINE_START(TI8168EVM, "ti8168evm")
> - 	.map_io		= ti8168_evm_map_io,
> - 	.init_early	= ti8168_init_early,
> - 	.init_irq	= ti816x_init_irq,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - 	.init_machine	= ti8168_evm_init,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/board-zoom.c b/arch/arm/mach-
> omap2/board-zoom.c
> -index 97a3f0b..8a98c3c 100644
> ---- a/arch/arm/mach-omap2/board-zoom.c
> -+++ b/arch/arm/mach-omap2/board-zoom.c
> -@@ -139,7 +139,7 @@ MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2
> board")
> - 	.init_early	= omap_zoom_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap_zoom_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -
> - MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board")
> -@@ -149,5 +149,5 @@ MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3
> board")
> - 	.init_early	= omap_zoom_init_early,
> - 	.init_irq	= omap3_init_irq,
> - 	.init_machine	= omap_zoom_init,
> --	.timer		= &omap_timer,
> -+	.timer		= &omap3_timer,
> - MACHINE_END
> -diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-
> gp.c
> -index 3b9cf85..a0d8e83 100644
> ---- a/arch/arm/mach-omap2/timer-gp.c
> -+++ b/arch/arm/mach-omap2/timer-gp.c
> -@@ -247,20 +247,41 @@ static void __init omap2_gp_clocksource_init(void)
> - }
> - #endif
> -
> --static void __init omap2_gp_timer_init(void)
> -+#define OMAP_SYS_TIMER_INIT(name)
> 	\
> -+static void __init omap##name##_timer_init(void)			\
> -+{									\
> -+	omap_dm_timer_init();						\
> -+	omap2_gp_clockevent_init();					\
> -+	omap2_gp_clocksource_init();					\
> -+}
> -+
> -+#define OMAP_SYS_TIMER(name)
> 	\
> -+struct sys_timer omap##name##_timer = {
> 	\
> -+	.init	= omap##name##_timer_init,				\
> -+};
> -+
> -+#ifdef CONFIG_ARCH_OMAP2
> -+OMAP_SYS_TIMER_INIT(2)
> -+OMAP_SYS_TIMER(2)
> -+#endif
> -+
> -+#ifdef CONFIG_ARCH_OMAP3
> -+OMAP_SYS_TIMER_INIT(3)
> -+OMAP_SYS_TIMER(3)
> -+OMAP_SYS_TIMER_INIT(3_secure)
> -+OMAP_SYS_TIMER(3_secure)
> -+#endif
> -+
> -+#ifdef CONFIG_ARCH_OMAP4
> -+static void __init omap4_timer_init(void)
> - {
> - #ifdef CONFIG_LOCAL_TIMERS
> --	if (cpu_is_omap44xx()) {
> --		twd_base = ioremap(OMAP44XX_LOCAL_TWD_BASE,
> SZ_256);
> --		BUG_ON(!twd_base);
> --	}
> -+	twd_base = ioremap(OMAP44XX_LOCAL_TWD_BASE, SZ_256);
> -+	BUG_ON(!twd_base);
> - #endif
> - 	omap_dm_timer_init();
> --
> - 	omap2_gp_clockevent_init();
> - 	omap2_gp_clocksource_init();
> - }
> --
> --struct sys_timer omap_timer = {
> --	.init	= omap2_gp_timer_init,
> --};
> -+OMAP_SYS_TIMER(4)
> -+#endif
> -diff --git a/arch/arm/plat-omap/include/plat/common.h b/arch/arm/plat-
> omap/include/plat/common.h
> -index 5288130..4564cc6 100644
> ---- a/arch/arm/plat-omap/include/plat/common.h
> -+++ b/arch/arm/plat-omap/include/plat/common.h
> -@@ -34,7 +34,11 @@
> - struct sys_timer;
> -
> - extern void omap_map_common_io(void);
> --extern struct sys_timer omap_timer;
> -+extern struct sys_timer omap1_timer;
> -+extern struct sys_timer omap2_timer;
> -+extern struct sys_timer omap3_timer;
> -+extern struct sys_timer omap3_secure_timer;
> -+extern struct sys_timer omap4_timer;
> - extern bool omap_32k_timer_init(void);
> - extern int __init omap_init_clocksource_32k(void);
> - extern unsigned long long notrace omap_32k_sched_clock(void);
> -diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-
> omap/include/plat/dmtimer.h
> -index d6c70d2..330bd17 100644
> ---- a/arch/arm/plat-omap/include/plat/dmtimer.h
> -+++ b/arch/arm/plat-omap/include/plat/dmtimer.h
> -@@ -57,7 +57,6 @@
> - #define OMAP_TIMER_IP_VERSION_1                        0x1
> - struct omap_dm_timer;
> - extern struct omap_dm_timer *gptimer_wakeup;
> --extern struct sys_timer omap_timer;
> - struct clk;
> -
> - int omap_dm_timer_init(void);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0005-omap-Move-
> dmtimer-defines-to-dmtimer.h.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0005-omap-Move-dmtimer-defines-to-dmtimer.h.patch
> deleted file mode 100644
> index ba3bc42..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0005-omap-Move-
> dmtimer-defines-to-dmtimer.h.patch
> +++ /dev/null
> @@ -1,287 +0,0 @@
> -From 99573b33f37eede2d3d36ae71c34f5d72ccdc672 Mon Sep 17 00:00:00
> 2001
> -From: Tony Lindgren <tony at atomide.com>
> -Date: Tue, 29 Mar 2011 15:54:48 -0700
> -Subject: [PATCH 005/149] omap: Move dmtimer defines to dmtimer.h
> -
> -These will be needed when dmtimer platform init code gets split
> -for omap1 and omap2+. These will also be needed for separate
> -sys_timer init and driver init for the rest of the hardware timers
> -in the following patches. No functional changes.
> -
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Reviewed-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/plat-omap/dmtimer.c              |  121 ----------------------------
> - arch/arm/plat-omap/include/plat/dmtimer.h |  125
> +++++++++++++++++++++++++++++
> - 2 files changed, 125 insertions(+), 121 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
> -index ee9f6eb..dfdc3b2 100644
> ---- a/arch/arm/plat-omap/dmtimer.c
> -+++ b/arch/arm/plat-omap/dmtimer.c
> -@@ -41,127 +41,6 @@
> - #include <plat/dmtimer.h>
> - #include <mach/irqs.h>
> -
> --/* register offsets */
> --#define _OMAP_TIMER_ID_OFFSET		0x00
> --#define _OMAP_TIMER_OCP_CFG_OFFSET	0x10
> --#define _OMAP_TIMER_SYS_STAT_OFFSET	0x14
> --#define _OMAP_TIMER_STAT_OFFSET		0x18
> --#define _OMAP_TIMER_INT_EN_OFFSET	0x1c
> --#define _OMAP_TIMER_WAKEUP_EN_OFFSET	0x20
> --#define _OMAP_TIMER_CTRL_OFFSET		0x24
> --#define		OMAP_TIMER_CTRL_GPOCFG		(1 << 14)
> --#define		OMAP_TIMER_CTRL_CAPTMODE	(1 << 13)
> --#define		OMAP_TIMER_CTRL_PT		(1 << 12)
> --#define		OMAP_TIMER_CTRL_TCM_LOWTOHIGH	(0x1 << 8)
> --#define		OMAP_TIMER_CTRL_TCM_HIGHTOLOW	(0x2 << 8)
> --#define		OMAP_TIMER_CTRL_TCM_BOTHEDGES	(0x3 << 8)
> --#define		OMAP_TIMER_CTRL_SCPWM		(1 << 7)
> --#define		OMAP_TIMER_CTRL_CE		(1 << 6) /* compare
> enable */
> --#define		OMAP_TIMER_CTRL_PRE		(1 << 5) /*
> prescaler enable */
> --#define		OMAP_TIMER_CTRL_PTV_SHIFT	2 /* prescaler value
> shift */
> --#define		OMAP_TIMER_CTRL_POSTED		(1 << 2)
> --#define		OMAP_TIMER_CTRL_AR		(1 << 1) /* auto-
> reload enable */
> --#define		OMAP_TIMER_CTRL_ST		(1 << 0) /* start timer
> */
> --#define _OMAP_TIMER_COUNTER_OFFSET	0x28
> --#define _OMAP_TIMER_LOAD_OFFSET		0x2c
> --#define _OMAP_TIMER_TRIGGER_OFFSET	0x30
> --#define _OMAP_TIMER_WRITE_PEND_OFFSET	0x34
> --#define		WP_NONE			0	/* no write
> pending bit */
> --#define		WP_TCLR			(1 << 0)
> --#define		WP_TCRR			(1 << 1)
> --#define		WP_TLDR			(1 << 2)
> --#define		WP_TTGR			(1 << 3)
> --#define		WP_TMAR			(1 << 4)
> --#define		WP_TPIR			(1 << 5)
> --#define		WP_TNIR			(1 << 6)
> --#define		WP_TCVR			(1 << 7)
> --#define		WP_TOCR			(1 << 8)
> --#define		WP_TOWR			(1 << 9)
> --#define _OMAP_TIMER_MATCH_OFFSET	0x38
> --#define _OMAP_TIMER_CAPTURE_OFFSET	0x3c
> --#define _OMAP_TIMER_IF_CTRL_OFFSET	0x40
> --#define _OMAP_TIMER_CAPTURE2_OFFSET		0x44	/* TCAR2,
> 34xx only */
> --#define _OMAP_TIMER_TICK_POS_OFFSET		0x48	/* TPIR, 34xx
> only */
> --#define _OMAP_TIMER_TICK_NEG_OFFSET		0x4c	/* TNIR, 34xx
> only */
> --#define _OMAP_TIMER_TICK_COUNT_OFFSET		0x50	/* TCVR, 34xx
> only */
> --#define _OMAP_TIMER_TICK_INT_MASK_SET_OFFSET	0x54	/* TOCR, 34xx
> only */
> --#define _OMAP_TIMER_TICK_INT_MASK_COUNT_OFFSET	0x58	/*
> TOWR, 34xx only */
> --
> --/* register offsets with the write pending bit encoded */
> --#define	WPSHIFT					16
> --
> --#define OMAP_TIMER_ID_REG
> 	(_OMAP_TIMER_ID_OFFSET \
> --							| (WP_NONE <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_OCP_CFG_REG
> 	(_OMAP_TIMER_OCP_CFG_OFFSET \
> --							| (WP_NONE <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_SYS_STAT_REG
> 	(_OMAP_TIMER_SYS_STAT_OFFSET \
> --							| (WP_NONE <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_STAT_REG
> 	(_OMAP_TIMER_STAT_OFFSET \
> --							| (WP_NONE <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_INT_EN_REG
> 	(_OMAP_TIMER_INT_EN_OFFSET \
> --							| (WP_NONE <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_WAKEUP_EN_REG
> 	(_OMAP_TIMER_WAKEUP_EN_OFFSET \
> --							| (WP_NONE <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_CTRL_REG
> 	(_OMAP_TIMER_CTRL_OFFSET \
> --							| (WP_TCLR <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_COUNTER_REG
> 	(_OMAP_TIMER_COUNTER_OFFSET \
> --							| (WP_TCRR <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_LOAD_REG
> 	(_OMAP_TIMER_LOAD_OFFSET \
> --							| (WP_TLDR <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_TRIGGER_REG
> 	(_OMAP_TIMER_TRIGGER_OFFSET \
> --							| (WP_TTGR <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_WRITE_PEND_REG
> 	(_OMAP_TIMER_WRITE_PEND_OFFSET \
> --							| (WP_NONE <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_MATCH_REG
> 	(_OMAP_TIMER_MATCH_OFFSET \
> --							| (WP_TMAR <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_CAPTURE_REG
> 	(_OMAP_TIMER_CAPTURE_OFFSET \
> --							| (WP_NONE <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_IF_CTRL_REG
> 	(_OMAP_TIMER_IF_CTRL_OFFSET \
> --							| (WP_NONE <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_CAPTURE2_REG
> 	(_OMAP_TIMER_CAPTURE2_OFFSET \
> --							| (WP_NONE <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_TICK_POS_REG
> 	(_OMAP_TIMER_TICK_POS_OFFSET \
> --							| (WP_TPIR <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_TICK_NEG_REG
> 	(_OMAP_TIMER_TICK_NEG_OFFSET \
> --							| (WP_TNIR <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_TICK_COUNT_REG
> 	(_OMAP_TIMER_TICK_COUNT_OFFSET \
> --							| (WP_TCVR <<
> WPSHIFT))
> --
> --#define OMAP_TIMER_TICK_INT_MASK_SET_REG
> 	\
> --		(_OMAP_TIMER_TICK_INT_MASK_SET_OFFSET | (WP_TOCR
> << WPSHIFT))
> --
> --#define OMAP_TIMER_TICK_INT_MASK_COUNT_REG
> 	\
> --		(_OMAP_TIMER_TICK_INT_MASK_COUNT_OFFSET |
> (WP_TOWR << WPSHIFT))
> --
> --struct omap_dm_timer {
> --	unsigned long phys_base;
> --	int irq;
> --#ifdef CONFIG_ARCH_OMAP2PLUS
> --	struct clk *iclk, *fclk;
> --#endif
> --	void __iomem *io_base;
> --	unsigned reserved:1;
> --	unsigned enabled:1;
> --	unsigned posted:1;
> --};
> --
> - static int dm_timer_count;
> -
> - #ifdef CONFIG_ARCH_OMAP1
> -diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-
> omap/include/plat/dmtimer.h
> -index 330bd17..3203105 100644
> ---- a/arch/arm/plat-omap/include/plat/dmtimer.h
> -+++ b/arch/arm/plat-omap/include/plat/dmtimer.h
> -@@ -92,5 +92,130 @@ void omap_dm_timer_write_counter(struct
> omap_dm_timer *timer, unsigned int value
> -
> - int omap_dm_timers_active(void);
> -
> -+/*
> -+ * Do not use the defines below, they are not needed. They should be only
> -+ * used by dmtimer.c and sys_timer related code.
> -+ */
> -+
> -+/* register offsets */
> -+#define _OMAP_TIMER_ID_OFFSET		0x00
> -+#define _OMAP_TIMER_OCP_CFG_OFFSET	0x10
> -+#define _OMAP_TIMER_SYS_STAT_OFFSET	0x14
> -+#define _OMAP_TIMER_STAT_OFFSET		0x18
> -+#define _OMAP_TIMER_INT_EN_OFFSET	0x1c
> -+#define _OMAP_TIMER_WAKEUP_EN_OFFSET	0x20
> -+#define _OMAP_TIMER_CTRL_OFFSET		0x24
> -+#define		OMAP_TIMER_CTRL_GPOCFG		(1 << 14)
> -+#define		OMAP_TIMER_CTRL_CAPTMODE	(1 << 13)
> -+#define		OMAP_TIMER_CTRL_PT		(1 << 12)
> -+#define		OMAP_TIMER_CTRL_TCM_LOWTOHIGH	(0x1 << 8)
> -+#define		OMAP_TIMER_CTRL_TCM_HIGHTOLOW	(0x2 << 8)
> -+#define		OMAP_TIMER_CTRL_TCM_BOTHEDGES	(0x3 << 8)
> -+#define		OMAP_TIMER_CTRL_SCPWM		(1 << 7)
> -+#define		OMAP_TIMER_CTRL_CE		(1 << 6) /* compare
> enable */
> -+#define		OMAP_TIMER_CTRL_PRE		(1 << 5) /*
> prescaler enable */
> -+#define		OMAP_TIMER_CTRL_PTV_SHIFT	2 /* prescaler value
> shift */
> -+#define		OMAP_TIMER_CTRL_POSTED		(1 << 2)
> -+#define		OMAP_TIMER_CTRL_AR		(1 << 1) /* auto-
> reload enable */
> -+#define		OMAP_TIMER_CTRL_ST		(1 << 0) /* start timer
> */
> -+#define _OMAP_TIMER_COUNTER_OFFSET	0x28
> -+#define _OMAP_TIMER_LOAD_OFFSET		0x2c
> -+#define _OMAP_TIMER_TRIGGER_OFFSET	0x30
> -+#define _OMAP_TIMER_WRITE_PEND_OFFSET	0x34
> -+#define		WP_NONE			0	/* no write
> pending bit */
> -+#define		WP_TCLR			(1 << 0)
> -+#define		WP_TCRR			(1 << 1)
> -+#define		WP_TLDR			(1 << 2)
> -+#define		WP_TTGR			(1 << 3)
> -+#define		WP_TMAR			(1 << 4)
> -+#define		WP_TPIR			(1 << 5)
> -+#define		WP_TNIR			(1 << 6)
> -+#define		WP_TCVR			(1 << 7)
> -+#define		WP_TOCR			(1 << 8)
> -+#define		WP_TOWR			(1 << 9)
> -+#define _OMAP_TIMER_MATCH_OFFSET	0x38
> -+#define _OMAP_TIMER_CAPTURE_OFFSET	0x3c
> -+#define _OMAP_TIMER_IF_CTRL_OFFSET	0x40
> -+#define _OMAP_TIMER_CAPTURE2_OFFSET		0x44	/* TCAR2,
> 34xx only */
> -+#define _OMAP_TIMER_TICK_POS_OFFSET		0x48	/* TPIR, 34xx
> only */
> -+#define _OMAP_TIMER_TICK_NEG_OFFSET		0x4c	/* TNIR, 34xx
> only */
> -+#define _OMAP_TIMER_TICK_COUNT_OFFSET		0x50	/* TCVR, 34xx
> only */
> -+#define _OMAP_TIMER_TICK_INT_MASK_SET_OFFSET	0x54	/* TOCR, 34xx
> only */
> -+#define _OMAP_TIMER_TICK_INT_MASK_COUNT_OFFSET	0x58	/*
> TOWR, 34xx only */
> -+
> -+/* register offsets with the write pending bit encoded */
> -+#define	WPSHIFT					16
> -+
> -+#define OMAP_TIMER_ID_REG
> 	(_OMAP_TIMER_ID_OFFSET \
> -+							| (WP_NONE <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_OCP_CFG_REG
> 	(_OMAP_TIMER_OCP_CFG_OFFSET \
> -+							| (WP_NONE <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_SYS_STAT_REG
> 	(_OMAP_TIMER_SYS_STAT_OFFSET \
> -+							| (WP_NONE <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_STAT_REG
> 	(_OMAP_TIMER_STAT_OFFSET \
> -+							| (WP_NONE <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_INT_EN_REG
> 	(_OMAP_TIMER_INT_EN_OFFSET \
> -+							| (WP_NONE <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_WAKEUP_EN_REG
> 	(_OMAP_TIMER_WAKEUP_EN_OFFSET \
> -+							| (WP_NONE <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_CTRL_REG
> 	(_OMAP_TIMER_CTRL_OFFSET \
> -+							| (WP_TCLR <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_COUNTER_REG
> 	(_OMAP_TIMER_COUNTER_OFFSET \
> -+							| (WP_TCRR <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_LOAD_REG
> 	(_OMAP_TIMER_LOAD_OFFSET \
> -+							| (WP_TLDR <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_TRIGGER_REG
> 	(_OMAP_TIMER_TRIGGER_OFFSET \
> -+							| (WP_TTGR <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_WRITE_PEND_REG
> 	(_OMAP_TIMER_WRITE_PEND_OFFSET \
> -+							| (WP_NONE <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_MATCH_REG
> 	(_OMAP_TIMER_MATCH_OFFSET \
> -+							| (WP_TMAR <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_CAPTURE_REG
> 	(_OMAP_TIMER_CAPTURE_OFFSET \
> -+							| (WP_NONE <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_IF_CTRL_REG
> 	(_OMAP_TIMER_IF_CTRL_OFFSET \
> -+							| (WP_NONE <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_CAPTURE2_REG
> 	(_OMAP_TIMER_CAPTURE2_OFFSET \
> -+							| (WP_NONE <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_TICK_POS_REG
> 	(_OMAP_TIMER_TICK_POS_OFFSET \
> -+							| (WP_TPIR <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_TICK_NEG_REG
> 	(_OMAP_TIMER_TICK_NEG_OFFSET \
> -+							| (WP_TNIR <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_TICK_COUNT_REG
> 	(_OMAP_TIMER_TICK_COUNT_OFFSET \
> -+							| (WP_TCVR <<
> WPSHIFT))
> -+
> -+#define OMAP_TIMER_TICK_INT_MASK_SET_REG
> 	\
> -+		(_OMAP_TIMER_TICK_INT_MASK_SET_OFFSET | (WP_TOCR
> << WPSHIFT))
> -+
> -+#define OMAP_TIMER_TICK_INT_MASK_COUNT_REG
> 	\
> -+		(_OMAP_TIMER_TICK_INT_MASK_COUNT_OFFSET |
> (WP_TOWR << WPSHIFT))
> -+
> -+struct omap_dm_timer {
> -+	unsigned long phys_base;
> -+	int irq;
> -+#ifdef CONFIG_ARCH_OMAP2PLUS
> -+	struct clk *iclk, *fclk;
> -+#endif
> -+	void __iomem *io_base;
> -+	unsigned reserved:1;
> -+	unsigned enabled:1;
> -+	unsigned posted:1;
> -+};
> -
> - #endif /* __ASM_ARCH_DMTIMER_H */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0006-omap-Make-a-
> subset-of-dmtimer-functions-into-inline-.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0006-omap-Make-a-subset-of-dmtimer-functions-into-
> inline-.patch
> deleted file mode 100644
> index 36a9142..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0006-omap-Make-a-subset-
> of-dmtimer-functions-into-inline-.patch
> +++ /dev/null
> @@ -1,323 +0,0 @@
> -From 902f3165afa284d4bd6ff22db7654318c98a5ce0 Mon Sep 17 00:00:00
> 2001
> -From: Tony Lindgren <tony at atomide.com>
> -Date: Tue, 29 Mar 2011 15:54:48 -0700
> -Subject: [PATCH 006/149] omap: Make a subset of dmtimer functions into
> inline functions
> -
> -This will allow us to share the code between system timer and
> -dmtimer device driver code without having to initialize all the
> -dmtimers early. This change will also make the timer_set_next_event
> -more efficient as the inline functions will optimize the code
> -better for the timer reprogramming.
> -
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Reviewed-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/plat-omap/dmtimer.c              |   78 ++++---------------
> - arch/arm/plat-omap/include/plat/dmtimer.h |  119
> +++++++++++++++++++++++++++++
> - 2 files changed, 136 insertions(+), 61 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
> -index dfdc3b2..7c5cb4e 100644
> ---- a/arch/arm/plat-omap/dmtimer.c
> -+++ b/arch/arm/plat-omap/dmtimer.c
> -@@ -170,11 +170,7 @@ static spinlock_t dm_timer_lock;
> -  */
> - static inline u32 omap_dm_timer_read_reg(struct omap_dm_timer *timer,
> u32 reg)
> - {
> --	if (timer->posted)
> --		while (readl(timer->io_base +
> (OMAP_TIMER_WRITE_PEND_REG & 0xff))
> --				& (reg >> WPSHIFT))
> --			cpu_relax();
> --	return readl(timer->io_base + (reg & 0xff));
> -+	return __omap_dm_timer_read(timer->io_base, reg, timer->posted);
> - }
> -
> - /*
> -@@ -186,11 +182,7 @@ static inline u32 omap_dm_timer_read_reg(struct
> omap_dm_timer *timer, u32 reg)
> - static void omap_dm_timer_write_reg(struct omap_dm_timer *timer, u32
> reg,
> - 						u32 value)
> - {
> --	if (timer->posted)
> --		while (readl(timer->io_base +
> (OMAP_TIMER_WRITE_PEND_REG & 0xff))
> --				& (reg >> WPSHIFT))
> --			cpu_relax();
> --	writel(value, timer->io_base + (reg & 0xff));
> -+	__omap_dm_timer_write(timer->io_base, reg, value, timer->posted);
> - }
> -
> - static void omap_dm_timer_wait_for_reset(struct omap_dm_timer *timer)
> -@@ -209,7 +201,7 @@ static void omap_dm_timer_wait_for_reset(struct
> omap_dm_timer *timer)
> -
> - static void omap_dm_timer_reset(struct omap_dm_timer *timer)
> - {
> --	u32 l;
> -+	int autoidle = 0, wakeup = 0;
> -
> - 	if (!cpu_class_is_omap2() || timer != &dm_timers[0]) {
> - 		omap_dm_timer_write_reg(timer,
> OMAP_TIMER_IF_CTRL_REG, 0x06);
> -@@ -217,28 +209,21 @@ static void omap_dm_timer_reset(struct
> omap_dm_timer *timer)
> - 	}
> - 	omap_dm_timer_set_source(timer, OMAP_TIMER_SRC_32_KHZ);
> -
> --	l = omap_dm_timer_read_reg(timer, OMAP_TIMER_OCP_CFG_REG);
> --	l |= 0x02 << 3;  /* Set to smart-idle mode */
> --	l |= 0x2 << 8;   /* Set clock activity to perserve f-clock on idle */
> --
> - 	/* Enable autoidle on OMAP2 / OMAP3 */
> - 	if (cpu_is_omap24xx() || cpu_is_omap34xx())
> --		l |= 0x1 << 0;
> -+		autoidle = 1;
> -
> - 	/*
> - 	 * Enable wake-up on OMAP2 CPUs.
> - 	 */
> - 	if (cpu_class_is_omap2())
> --		l |= 1 << 2;
> --	omap_dm_timer_write_reg(timer, OMAP_TIMER_OCP_CFG_REG, l);
> -+		wakeup = 1;
> -
> --	/* Match hardware reset default of posted mode */
> --	omap_dm_timer_write_reg(timer, OMAP_TIMER_IF_CTRL_REG,
> --			OMAP_TIMER_CTRL_POSTED);
> -+	__omap_dm_timer_reset(timer->io_base, autoidle, wakeup);
> - 	timer->posted = 1;
> - }
> -
> --static void omap_dm_timer_prepare(struct omap_dm_timer *timer)
> -+void omap_dm_timer_prepare(struct omap_dm_timer *timer)
> - {
> - 	omap_dm_timer_enable(timer);
> - 	omap_dm_timer_reset(timer);
> -@@ -410,25 +395,13 @@ EXPORT_SYMBOL_GPL(omap_dm_timer_start);
> -
> - void omap_dm_timer_stop(struct omap_dm_timer *timer)
> - {
> --	u32 l;
> -+	unsigned long rate = 0;
> -
> --	l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG);
> --	if (l & OMAP_TIMER_CTRL_ST) {
> --		l &= ~0x1;
> --		omap_dm_timer_write_reg(timer, OMAP_TIMER_CTRL_REG,
> l);
> - #ifdef CONFIG_ARCH_OMAP2PLUS
> --		/* Readback to make sure write has completed */
> --		omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG);
> --		 /*
> --		  * Wait for functional clock period x 3.5 to make sure that
> --		  * timer is stopped
> --		  */
> --		udelay(3500000 / clk_get_rate(timer->fclk) + 1);
> -+	rate = clk_get_rate(timer->fclk);
> - #endif
> --	}
> --	/* Ack possibly pending interrupt */
> --	omap_dm_timer_write_reg(timer, OMAP_TIMER_STAT_REG,
> --			OMAP_TIMER_INT_OVERFLOW);
> -+
> -+	__omap_dm_timer_stop(timer->io_base, timer->posted, rate);
> - }
> - EXPORT_SYMBOL_GPL(omap_dm_timer_stop);
> -
> -@@ -451,22 +424,11 @@
> EXPORT_SYMBOL_GPL(omap_dm_timer_set_source);
> -
> - int omap_dm_timer_set_source(struct omap_dm_timer *timer, int source)
> - {
> --	int ret = -EINVAL;
> --
> - 	if (source < 0 || source >= 3)
> - 		return -EINVAL;
> -
> --	clk_disable(timer->fclk);
> --	ret = clk_set_parent(timer->fclk, dm_source_clocks[source]);
> --	clk_enable(timer->fclk);
> --
> --	/*
> --	 * When the functional clock disappears, too quick writes seem
> --	 * to cause an abort. XXX Is this still necessary?
> --	 */
> --	__delay(300000);
> --
> --	return ret;
> -+	return __omap_dm_timer_set_source(timer->fclk,
> -+						dm_source_clocks[source]);
> - }
> - EXPORT_SYMBOL_GPL(omap_dm_timer_set_source);
> -
> -@@ -504,8 +466,7 @@ void omap_dm_timer_set_load_start(struct
> omap_dm_timer *timer, int autoreload,
> - 	}
> - 	l |= OMAP_TIMER_CTRL_ST;
> -
> --	omap_dm_timer_write_reg(timer, OMAP_TIMER_COUNTER_REG,
> load);
> --	omap_dm_timer_write_reg(timer, OMAP_TIMER_CTRL_REG, l);
> -+	__omap_dm_timer_load_start(timer->io_base, l, load, timer->posted);
> - }
> - EXPORT_SYMBOL_GPL(omap_dm_timer_set_load_start);
> -
> -@@ -558,8 +519,7 @@
> EXPORT_SYMBOL_GPL(omap_dm_timer_set_prescaler);
> - void omap_dm_timer_set_int_enable(struct omap_dm_timer *timer,
> - 				  unsigned int value)
> - {
> --	omap_dm_timer_write_reg(timer, OMAP_TIMER_INT_EN_REG, value);
> --	omap_dm_timer_write_reg(timer, OMAP_TIMER_WAKEUP_EN_REG,
> value);
> -+	__omap_dm_timer_int_enable(timer->io_base, value);
> - }
> - EXPORT_SYMBOL_GPL(omap_dm_timer_set_int_enable);
> -
> -@@ -575,17 +535,13 @@
> EXPORT_SYMBOL_GPL(omap_dm_timer_read_status);
> -
> - void omap_dm_timer_write_status(struct omap_dm_timer *timer, unsigned
> int value)
> - {
> --	omap_dm_timer_write_reg(timer, OMAP_TIMER_STAT_REG, value);
> -+	__omap_dm_timer_write_status(timer->io_base, value);
> - }
> - EXPORT_SYMBOL_GPL(omap_dm_timer_write_status);
> -
> - unsigned int omap_dm_timer_read_counter(struct omap_dm_timer *timer)
> - {
> --	unsigned int l;
> --
> --	l = omap_dm_timer_read_reg(timer, OMAP_TIMER_COUNTER_REG);
> --
> --	return l;
> -+	return __omap_dm_timer_read_counter(timer->io_base, timer-
> >posted);
> - }
> - EXPORT_SYMBOL_GPL(omap_dm_timer_read_counter);
> -
> -diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-
> omap/include/plat/dmtimer.h
> -index 3203105..54664a7 100644
> ---- a/arch/arm/plat-omap/include/plat/dmtimer.h
> -+++ b/arch/arm/plat-omap/include/plat/dmtimer.h
> -@@ -32,6 +32,9 @@
> -  * 675 Mass Ave, Cambridge, MA 02139, USA.
> -  */
> -
> -+#include <linux/clk.h>
> -+#include <linux/delay.h>
> -+
> - #ifndef __ASM_ARCH_DMTIMER_H
> - #define __ASM_ARCH_DMTIMER_H
> -
> -@@ -218,4 +221,120 @@ struct omap_dm_timer {
> - 	unsigned posted:1;
> - };
> -
> -+void omap_dm_timer_prepare(struct omap_dm_timer *timer);
> -+
> -+static inline u32 __omap_dm_timer_read(void __iomem *base, u32 reg,
> -+						int posted)
> -+{
> -+	if (posted)
> -+		while (__raw_readl(base + (OMAP_TIMER_WRITE_PEND_REG
> & 0xff))
> -+				& (reg >> WPSHIFT))
> -+			cpu_relax();
> -+
> -+	return __raw_readl(base + (reg & 0xff));
> -+}
> -+
> -+static inline void __omap_dm_timer_write(void __iomem *base, u32 reg,
> u32 val,
> -+						int posted)
> -+{
> -+	if (posted)
> -+		while (__raw_readl(base + (OMAP_TIMER_WRITE_PEND_REG
> & 0xff))
> -+				& (reg >> WPSHIFT))
> -+			cpu_relax();
> -+
> -+	__raw_writel(val, base + (reg & 0xff));
> -+}
> -+
> -+/* Assumes the source clock has been set by caller */
> -+static inline void __omap_dm_timer_reset(void __iomem *base, int autoidle,
> -+						int wakeup)
> -+{
> -+	u32 l;
> -+
> -+	l = __omap_dm_timer_read(base, OMAP_TIMER_OCP_CFG_REG, 0);
> -+	l |= 0x02 << 3;  /* Set to smart-idle mode */
> -+	l |= 0x2 << 8;   /* Set clock activity to perserve f-clock on idle */
> -+
> -+	if (autoidle)
> -+		l |= 0x1 << 0;
> -+
> -+	if (wakeup)
> -+		l |= 1 << 2;
> -+
> -+	__omap_dm_timer_write(base, OMAP_TIMER_OCP_CFG_REG, l, 0);
> -+
> -+	/* Match hardware reset default of posted mode */
> -+	__omap_dm_timer_write(base, OMAP_TIMER_IF_CTRL_REG,
> -+					OMAP_TIMER_CTRL_POSTED, 0);
> -+}
> -+
> -+static inline int __omap_dm_timer_set_source(struct clk *timer_fck,
> -+						struct clk *parent)
> -+{
> -+	int ret;
> -+
> -+	clk_disable(timer_fck);
> -+	ret = clk_set_parent(timer_fck, parent);
> -+	clk_enable(timer_fck);
> -+
> -+	/*
> -+	 * When the functional clock disappears, too quick writes seem
> -+	 * to cause an abort. XXX Is this still necessary?
> -+	 */
> -+	__delay(300000);
> -+
> -+	return ret;
> -+}
> -+
> -+static inline void __omap_dm_timer_stop(void __iomem *base, int posted,
> -+						unsigned long rate)
> -+{
> -+	u32 l;
> -+
> -+	l = __omap_dm_timer_read(base, OMAP_TIMER_CTRL_REG, posted);
> -+	if (l & OMAP_TIMER_CTRL_ST) {
> -+		l &= ~0x1;
> -+		__omap_dm_timer_write(base, OMAP_TIMER_CTRL_REG, l,
> posted);
> -+#ifdef CONFIG_ARCH_OMAP2PLUS
> -+		/* Readback to make sure write has completed */
> -+		__omap_dm_timer_read(base, OMAP_TIMER_CTRL_REG,
> posted);
> -+		/*
> -+		 * Wait for functional clock period x 3.5 to make sure that
> -+		 * timer is stopped
> -+		 */
> -+		udelay(3500000 / rate + 1);
> -+#endif
> -+	}
> -+
> -+	/* Ack possibly pending interrupt */
> -+	__omap_dm_timer_write(base, OMAP_TIMER_STAT_REG,
> -+					OMAP_TIMER_INT_OVERFLOW, 0);
> -+}
> -+
> -+static inline void __omap_dm_timer_load_start(void __iomem *base, u32
> ctrl,
> -+						unsigned int load, int posted)
> -+{
> -+	__omap_dm_timer_write(base, OMAP_TIMER_COUNTER_REG, load,
> posted);
> -+	__omap_dm_timer_write(base, OMAP_TIMER_CTRL_REG, ctrl,
> posted);
> -+}
> -+
> -+static inline void __omap_dm_timer_int_enable(void __iomem *base,
> -+						unsigned int value)
> -+{
> -+	__omap_dm_timer_write(base, OMAP_TIMER_INT_EN_REG, value, 0);
> -+	__omap_dm_timer_write(base, OMAP_TIMER_WAKEUP_EN_REG,
> value, 0);
> -+}
> -+
> -+static inline unsigned int __omap_dm_timer_read_counter(void __iomem
> *base,
> -+							int posted)
> -+{
> -+	return __omap_dm_timer_read(base, OMAP_TIMER_COUNTER_REG,
> posted);
> -+}
> -+
> -+static inline void __omap_dm_timer_write_status(void __iomem *base,
> -+						unsigned int value)
> -+{
> -+	__omap_dm_timer_write(base, OMAP_TIMER_STAT_REG, value, 0);
> -+}
> -+
> - #endif /* __ASM_ARCH_DMTIMER_H */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0007-omap2-Use-
> dmtimer-macros-for-clockevent.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0007-omap2-Use-dmtimer-macros-for-clockevent.patch
> deleted file mode 100644
> index c7747ed..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0007-omap2-Use-dmtimer-
> macros-for-clockevent.patch
> +++ /dev/null
> @@ -1,279 +0,0 @@
> -From 8f322fa141e55da412c5d73f07f93c1e02965522 Mon Sep 17 00:00:00
> 2001
> -From: Tony Lindgren <tony at atomide.com>
> -Date: Tue, 29 Mar 2011 15:54:48 -0700
> -Subject: [PATCH 007/149] omap2+: Use dmtimer macros for clockevent
> -
> -This patch makes timer-gp.c to use only a subset of dmtimer
> -functions without the need to initialize dmtimer code early.
> -
> -Also note that now with the inline functions, timer_set_next_event
> -becomes more efficient in the lines of assembly code.
> -
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Reviewed-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/timer-gp.c            |  147 ++++++++++++++++++++++--
> -----
> - arch/arm/plat-omap/include/plat/dmtimer.h |    1 +
> - 2 files changed, 113 insertions(+), 35 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-
> gp.c
> -index a0d8e83..62c0d5c 100644
> ---- a/arch/arm/mach-omap2/timer-gp.c
> -+++ b/arch/arm/mach-omap2/timer-gp.c
> -@@ -45,10 +45,33 @@
> -
> - #include "timer-gp.h"
> -
> -+/* Parent clocks, eventually these will come from the clock framework */
> -+
> -+#define OMAP2_MPU_SOURCE	"sys_ck"
> -+#define OMAP3_MPU_SOURCE	OMAP2_MPU_SOURCE
> -+#define OMAP4_MPU_SOURCE	"sys_clkin_ck"
> -+#define OMAP2_32K_SOURCE	"func_32k_ck"
> -+#define OMAP3_32K_SOURCE	"omap_32k_fck"
> -+#define OMAP4_32K_SOURCE	"sys_32k_ck"
> -+
> -+#ifdef CONFIG_OMAP_32K_TIMER
> -+#define OMAP2_CLKEV_SOURCE	OMAP2_32K_SOURCE
> -+#define OMAP3_CLKEV_SOURCE	OMAP3_32K_SOURCE
> -+#define OMAP4_CLKEV_SOURCE	OMAP4_32K_SOURCE
> -+#define OMAP3_SECURE_TIMER	12
> -+#else
> -+#define OMAP2_CLKEV_SOURCE	OMAP2_MPU_SOURCE
> -+#define OMAP3_CLKEV_SOURCE	OMAP3_MPU_SOURCE
> -+#define OMAP4_CLKEV_SOURCE	OMAP4_MPU_SOURCE
> -+#define OMAP3_SECURE_TIMER	1
> -+#endif
> -
> - /* MAX_GPTIMER_ID: number of GPTIMERs on the chip */
> - #define MAX_GPTIMER_ID		12
> -
> -+/* Clockevent code */
> -+
> -+static struct omap_dm_timer clkev;
> - static struct omap_dm_timer *gptimer;
> - static struct clock_event_device clockevent_gpt;
> - static u8 __initdata gptimer_id = 1;
> -@@ -57,10 +80,9 @@ struct omap_dm_timer *gptimer_wakeup;
> -
> - static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id)
> - {
> --	struct omap_dm_timer *gpt = (struct omap_dm_timer *)dev_id;
> - 	struct clock_event_device *evt = &clockevent_gpt;
> -
> --	omap_dm_timer_write_status(gpt, OMAP_TIMER_INT_OVERFLOW);
> -+	__omap_dm_timer_write_status(clkev.io_base,
> OMAP_TIMER_INT_OVERFLOW);
> -
> - 	evt->event_handler(evt);
> - 	return IRQ_HANDLED;
> -@@ -75,7 +97,8 @@ static struct irqaction omap2_gp_timer_irq = {
> - static int omap2_gp_timer_set_next_event(unsigned long cycles,
> - 					 struct clock_event_device *evt)
> - {
> --	omap_dm_timer_set_load_start(gptimer, 0, 0xffffffff - cycles);
> -+	__omap_dm_timer_load_start(clkev.io_base, OMAP_TIMER_CTRL_ST,
> -+						0xffffffff - cycles, 1);
> -
> - 	return 0;
> - }
> -@@ -85,13 +108,18 @@ static void omap2_gp_timer_set_mode(enum
> clock_event_mode mode,
> - {
> - 	u32 period;
> -
> --	omap_dm_timer_stop(gptimer);
> -+	__omap_dm_timer_stop(clkev.io_base, 1, clkev.rate);
> -
> - 	switch (mode) {
> - 	case CLOCK_EVT_MODE_PERIODIC:
> --		period = clk_get_rate(omap_dm_timer_get_fclk(gptimer)) /
> HZ;
> -+		period = clkev.rate / HZ;
> - 		period -= 1;
> --		omap_dm_timer_set_load_start(gptimer, 1, 0xffffffff - period);
> -+		/* Looks like we need to first set the load value separately */
> -+		__omap_dm_timer_write(clkev.io_base,
> OMAP_TIMER_LOAD_REG,
> -+					0xffffffff - period, 1);
> -+		__omap_dm_timer_load_start(clkev.io_base,
> -+					OMAP_TIMER_CTRL_AR |
> OMAP_TIMER_CTRL_ST,
> -+						0xffffffff - period, 1);
> - 		break;
> - 	case CLOCK_EVT_MODE_ONESHOT:
> - 		break;
> -@@ -130,43 +158,89 @@ int __init omap2_gp_clockevent_set_gptimer(u8
> id)
> - 	return 0;
> - }
> -
> --static void __init omap2_gp_clockevent_init(void)
> -+static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
> -+						int gptimer_id,
> -+						const char *fck_source)
> - {
> --	u32 tick_rate;
> --	int src;
> --	char clockevent_hwmod_name[8]; /* 8 = sizeof("timerXX0") */
> -+	char name[10]; /* 10 = sizeof("gptXX_Xck0") */
> -+	struct omap_hwmod *oh;
> -+	size_t size;
> -+	int res = 0;
> -+
> -+	sprintf(name, "timer%d", gptimer_id);
> -+	omap_hwmod_setup_one(name);
> -+	oh = omap_hwmod_lookup(name);
> -+	if (!oh)
> -+		return -ENODEV;
> -+
> -+	timer->irq = oh->mpu_irqs[0].irq;
> -+	timer->phys_base = oh->slaves[0]->addr->pa_start;
> -+	size = oh->slaves[0]->addr->pa_end - timer->phys_base;
> -+
> -+	/* Static mapping, never released */
> -+	timer->io_base = ioremap(timer->phys_base, size);
> -+	if (!timer->io_base)
> -+		return -ENXIO;
> -+
> -+	/* After the dmtimer is using hwmod these clocks won't be needed */
> -+	sprintf(name, "gpt%d_fck", gptimer_id);
> -+	timer->fclk = clk_get(NULL, name);
> -+	if (IS_ERR(timer->fclk))
> -+		return -ENODEV;
> -+
> -+	sprintf(name, "gpt%d_ick", gptimer_id);
> -+	timer->iclk = clk_get(NULL, name);
> -+	if (IS_ERR(timer->iclk)) {
> -+		clk_put(timer->fclk);
> -+		return -ENODEV;
> -+	}
> -
> --	inited = 1;
> -+	omap_hwmod_enable(oh);
> -+
> -+	if (gptimer_id != 12) {
> -+		struct clk *src;
> -+
> -+		src = clk_get(NULL, fck_source);
> -+		if (IS_ERR(src)) {
> -+			res = -EINVAL;
> -+		} else {
> -+			res = __omap_dm_timer_set_source(timer->fclk, src);
> -+			if (IS_ERR_VALUE(res))
> -+				pr_warning("%s: timer%i cannot set
> source\n",
> -+						__func__, gptimer_id);
> -+			clk_put(src);
> -+		}
> -+	}
> -+	__omap_dm_timer_reset(timer->io_base, 1, 1);
> -+	timer->posted = 1;
> -+
> -+	timer->rate = clk_get_rate(timer->fclk);
> -
> --	sprintf(clockevent_hwmod_name, "timer%d", gptimer_id);
> --	omap_hwmod_setup_one(clockevent_hwmod_name);
> -+	timer->reserved = 1;
> -
> - 	gptimer = omap_dm_timer_request_specific(gptimer_id);
> - 	BUG_ON(gptimer == NULL);
> - 	gptimer_wakeup = gptimer;
> -
> --#if defined(CONFIG_OMAP_32K_TIMER)
> --	src = OMAP_TIMER_SRC_32_KHZ;
> --#else
> --	src = OMAP_TIMER_SRC_SYS_CLK;
> --	WARN(gptimer_id == 12, "WARNING: GPTIMER12 can only use the "
> --	     "secure 32KiHz clock source\n");
> --#endif
> -+	return res;
> -+}
> -
> --	if (gptimer_id != 12)
> --		WARN(IS_ERR_VALUE(omap_dm_timer_set_source(gptimer,
> src)),
> --		     "timer-gp: omap_dm_timer_set_source() failed\n");
> -+static void __init omap2_gp_clockevent_init(int gptimer_id,
> -+						const char *fck_source)
> -+{
> -+	int res;
> -
> --	tick_rate = clk_get_rate(omap_dm_timer_get_fclk(gptimer));
> -+	inited = 1;
> -
> --	pr_info("OMAP clockevent source: GPTIMER%d at %u Hz\n",
> --		gptimer_id, tick_rate);
> -+	res = omap_dm_timer_init_one(&clkev, gptimer_id, fck_source);
> -+	BUG_ON(res);
> -
> - 	omap2_gp_timer_irq.dev_id = (void *)gptimer;
> --	setup_irq(omap_dm_timer_get_irq(gptimer), &omap2_gp_timer_irq);
> --	omap_dm_timer_set_int_enable(gptimer,
> OMAP_TIMER_INT_OVERFLOW);
> -+	setup_irq(clkev.irq, &omap2_gp_timer_irq);
> -
> --	clockevent_gpt.mult = div_sc(tick_rate, NSEC_PER_SEC,
> -+	__omap_dm_timer_int_enable(clkev.io_base,
> OMAP_TIMER_INT_OVERFLOW);
> -+
> -+	clockevent_gpt.mult = div_sc(clkev.rate, NSEC_PER_SEC,
> - 				     clockevent_gpt.shift);
> - 	clockevent_gpt.max_delta_ns =
> - 		clockevent_delta2ns(0xffffffff, &clockevent_gpt);
> -@@ -176,6 +250,9 @@ static void __init omap2_gp_clockevent_init(void)
> -
> - 	clockevent_gpt.cpumask = cpumask_of(0);
> - 	clockevents_register_device(&clockevent_gpt);
> -+
> -+	pr_info("OMAP clockevent source: GPTIMER%d at %lu Hz\n",
> -+		gptimer_id, clkev.rate);
> - }
> -
> - /* Clocksource code */
> -@@ -247,11 +324,11 @@ static void __init omap2_gp_clocksource_init(void)
> - }
> - #endif
> -
> --#define OMAP_SYS_TIMER_INIT(name)
> 	\
> -+#define OMAP_SYS_TIMER_INIT(name, clkev_nr, clkev_src)
> 	\
> - static void __init omap##name##_timer_init(void)			\
> - {									\
> - 	omap_dm_timer_init();						\
> --	omap2_gp_clockevent_init();					\
> -+	omap2_gp_clockevent_init((clkev_nr), clkev_src);		\
> - 	omap2_gp_clocksource_init();					\
> - }
> -
> -@@ -261,14 +338,14 @@ struct sys_timer omap##name##_timer = {
> 				\
> - };
> -
> - #ifdef CONFIG_ARCH_OMAP2
> --OMAP_SYS_TIMER_INIT(2)
> -+OMAP_SYS_TIMER_INIT(2, 1, OMAP2_CLKEV_SOURCE)
> - OMAP_SYS_TIMER(2)
> - #endif
> -
> - #ifdef CONFIG_ARCH_OMAP3
> --OMAP_SYS_TIMER_INIT(3)
> -+OMAP_SYS_TIMER_INIT(3, 1, OMAP3_CLKEV_SOURCE)
> - OMAP_SYS_TIMER(3)
> --OMAP_SYS_TIMER_INIT(3_secure)
> -+OMAP_SYS_TIMER_INIT(3_secure, OMAP3_SECURE_TIMER,
> OMAP3_CLKEV_SOURCE)
> - OMAP_SYS_TIMER(3_secure)
> - #endif
> -
> -@@ -280,7 +357,7 @@ static void __init omap4_timer_init(void)
> - 	BUG_ON(!twd_base);
> - #endif
> - 	omap_dm_timer_init();
> --	omap2_gp_clockevent_init();
> -+	omap2_gp_clockevent_init(1, OMAP4_CLKEV_SOURCE);
> - 	omap2_gp_clocksource_init();
> - }
> - OMAP_SYS_TIMER(4)
> -diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-
> omap/include/plat/dmtimer.h
> -index 54664a7..dd8b3ff 100644
> ---- a/arch/arm/plat-omap/include/plat/dmtimer.h
> -+++ b/arch/arm/plat-omap/include/plat/dmtimer.h
> -@@ -216,6 +216,7 @@ struct omap_dm_timer {
> - 	struct clk *iclk, *fclk;
> - #endif
> - 	void __iomem *io_base;
> -+	unsigned long rate;
> - 	unsigned reserved:1;
> - 	unsigned enabled:1;
> - 	unsigned posted:1;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0008-omap2-
> Remove-gptimer_wakeup-for-now.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0008-omap2-Remove-gptimer_wakeup-for-now.patch
> deleted file mode 100644
> index 98e356c..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0008-omap2-Remove-
> gptimer_wakeup-for-now.patch
> +++ /dev/null
> @@ -1,177 +0,0 @@
> -From 6e1cacccf1349d97c83c7bc93e4d3c15e731c3ad Mon Sep 17 00:00:00
> 2001
> -From: Tony Lindgren <tony at atomide.com>
> -Date: Tue, 29 Mar 2011 15:54:49 -0700
> -Subject: [PATCH 008/149] omap2+: Remove gptimer_wakeup for now
> -
> -This removes the support for setting the wake-up timer for debugging.
> -
> -Later on we can reserve gptimer1 for PM code only and have similar
> -functionality.
> -
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Reviewed-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/pm-debug.c            |   28 ----------------------------
> - arch/arm/mach-omap2/pm.h                  |    6 ------
> - arch/arm/mach-omap2/pm34xx.c              |    4 ----
> - arch/arm/mach-omap2/timer-gp.c            |    8 +-------
> - arch/arm/plat-omap/include/plat/dmtimer.h |    1 -
> - 5 files changed, 1 insertions(+), 46 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-
> debug.c
> -index e01da45..2c35bd3 100644
> ---- a/arch/arm/mach-omap2/pm-debug.c
> -+++ b/arch/arm/mach-omap2/pm-debug.c
> -@@ -31,7 +31,6 @@
> - #include <plat/board.h>
> - #include "powerdomain.h"
> - #include "clockdomain.h"
> --#include <plat/dmtimer.h>
> - #include <plat/omap-pm.h>
> -
> - #include "cm2xxx_3xxx.h"
> -@@ -41,8 +40,6 @@
> - int omap2_pm_debug;
> - u32 enable_off_mode;
> - u32 sleep_while_idle;
> --u32 wakeup_timer_seconds;
> --u32 wakeup_timer_milliseconds;
> -
> - #define DUMP_PRM_MOD_REG(mod, reg)    \
> - 	regs[reg_count].name = #mod "." #reg; \
> -@@ -162,23 +159,6 @@ void omap2_pm_dump(int mode, int resume,
> unsigned int us)
> - 		printk(KERN_INFO "%-20s: 0x%08x\n", regs[i].name,
> regs[i].val);
> - }
> -
> --void omap2_pm_wakeup_on_timer(u32 seconds, u32 milliseconds)
> --{
> --	u32 tick_rate, cycles;
> --
> --	if (!seconds && !milliseconds)
> --		return;
> --
> --	tick_rate = clk_get_rate(omap_dm_timer_get_fclk(gptimer_wakeup));
> --	cycles = tick_rate * seconds + tick_rate * milliseconds / 1000;
> --	omap_dm_timer_stop(gptimer_wakeup);
> --	omap_dm_timer_set_load_start(gptimer_wakeup, 0, 0xffffffff -
> cycles);
> --
> --	pr_info("PM: Resume timer in %u.%03u secs"
> --		" (%d ticks at %d ticks/sec.)\n",
> --		seconds, milliseconds, cycles, tick_rate);
> --}
> --
> - #ifdef CONFIG_DEBUG_FS
> - #include <linux/debugfs.h>
> - #include <linux/seq_file.h>
> -@@ -576,9 +556,6 @@ static int option_set(void *data, u64 val)
> - {
> - 	u32 *option = data;
> -
> --	if (option == &wakeup_timer_milliseconds && val >= 1000)
> --		return -EINVAL;
> --
> - 	*option = val;
> -
> - 	if (option == &enable_off_mode) {
> -@@ -641,11 +618,6 @@ static int pm_dbg_init(void)
> - 				   &enable_off_mode,
> &pm_dbg_option_fops);
> - 	(void) debugfs_create_file("sleep_while_idle", S_IRUGO | S_IWUSR, d,
> - 				   &sleep_while_idle, &pm_dbg_option_fops);
> --	(void) debugfs_create_file("wakeup_timer_seconds", S_IRUGO |
> S_IWUSR, d,
> --				   &wakeup_timer_seconds,
> &pm_dbg_option_fops);
> --	(void) debugfs_create_file("wakeup_timer_milliseconds",
> --			S_IRUGO | S_IWUSR, d, &wakeup_timer_milliseconds,
> --			&pm_dbg_option_fops);
> - 	pm_dbg_init_done = 1;
> -
> - 	return 0;
> -diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h
> -index 45bcfce..c3a367e 100644
> ---- a/arch/arm/mach-omap2/pm.h
> -+++ b/arch/arm/mach-omap2/pm.h
> -@@ -60,19 +60,13 @@ inline void omap3_pm_init_cpuidle(struct
> cpuidle_params *cpuidle_board_params)
> - extern int omap3_pm_get_suspend_state(struct powerdomain *pwrdm);
> - extern int omap3_pm_set_suspend_state(struct powerdomain *pwrdm, int
> state);
> -
> --extern u32 wakeup_timer_seconds;
> --extern u32 wakeup_timer_milliseconds;
> --extern struct omap_dm_timer *gptimer_wakeup;
> --
> - #ifdef CONFIG_PM_DEBUG
> - extern void omap2_pm_dump(int mode, int resume, unsigned int us);
> --extern void omap2_pm_wakeup_on_timer(u32 seconds, u32 milliseconds);
> - extern int omap2_pm_debug;
> - extern u32 enable_off_mode;
> - extern u32 sleep_while_idle;
> - #else
> - #define omap2_pm_dump(mode, resume, us)		do {} while (0);
> --#define omap2_pm_wakeup_on_timer(seconds, milliseconds)	do {} while
> (0);
> - #define omap2_pm_debug				0
> - #define enable_off_mode 0
> - #define sleep_while_idle 0
> -diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-
> omap2/pm34xx.c
> -index c155c9d..4cb636a 100644
> ---- a/arch/arm/mach-omap2/pm34xx.c
> -+++ b/arch/arm/mach-omap2/pm34xx.c
> -@@ -534,10 +534,6 @@ static int omap3_pm_suspend(void)
> - 	struct power_state *pwrst;
> - 	int state, ret = 0;
> -
> --	if (wakeup_timer_seconds || wakeup_timer_milliseconds)
> --		omap2_pm_wakeup_on_timer(wakeup_timer_seconds,
> --					 wakeup_timer_milliseconds);
> --
> - 	/* Read current next_pwrsts */
> - 	list_for_each_entry(pwrst, &pwrst_list, node)
> - 		pwrst->saved_state = pwrdm_read_next_pwrst(pwrst-
> >pwrdm);
> -diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-
> gp.c
> -index 62c0d5c..578e9df 100644
> ---- a/arch/arm/mach-omap2/timer-gp.c
> -+++ b/arch/arm/mach-omap2/timer-gp.c
> -@@ -72,11 +72,9 @@
> - /* Clockevent code */
> -
> - static struct omap_dm_timer clkev;
> --static struct omap_dm_timer *gptimer;
> - static struct clock_event_device clockevent_gpt;
> - static u8 __initdata gptimer_id = 1;
> - static u8 __initdata inited;
> --struct omap_dm_timer *gptimer_wakeup;
> -
> - static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id)
> - {
> -@@ -218,10 +216,6 @@ static int __init omap_dm_timer_init_one(struct
> omap_dm_timer *timer,
> -
> - 	timer->reserved = 1;
> -
> --	gptimer = omap_dm_timer_request_specific(gptimer_id);
> --	BUG_ON(gptimer == NULL);
> --	gptimer_wakeup = gptimer;
> --
> - 	return res;
> - }
> -
> -@@ -235,7 +229,7 @@ static void __init omap2_gp_clockevent_init(int
> gptimer_id,
> - 	res = omap_dm_timer_init_one(&clkev, gptimer_id, fck_source);
> - 	BUG_ON(res);
> -
> --	omap2_gp_timer_irq.dev_id = (void *)gptimer;
> -+	omap2_gp_timer_irq.dev_id = (void *)&clkev;
> - 	setup_irq(clkev.irq, &omap2_gp_timer_irq);
> -
> - 	__omap_dm_timer_int_enable(clkev.io_base,
> OMAP_TIMER_INT_OVERFLOW);
> -diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-
> omap/include/plat/dmtimer.h
> -index dd8b3ff..8adcb18 100644
> ---- a/arch/arm/plat-omap/include/plat/dmtimer.h
> -+++ b/arch/arm/plat-omap/include/plat/dmtimer.h
> -@@ -59,7 +59,6 @@
> -  */
> - #define OMAP_TIMER_IP_VERSION_1                        0x1
> - struct omap_dm_timer;
> --extern struct omap_dm_timer *gptimer_wakeup;
> - struct clk;
> -
> - int omap_dm_timer_init(void);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0009-OMAP3-SR-
> make-notify-independent-of-class.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0009-OMAP3-SR-make-notify-independent-of-class.patch
> deleted file mode 100644
> index 17b3eda..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0009-OMAP3-SR-make-
> notify-independent-of-class.patch
> +++ /dev/null
> @@ -1,47 +0,0 @@
> -From b3d437835cf2885fe7a8c6470ca7639e5c11850a Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Mon, 14 Feb 2011 12:16:36 +0530
> -Subject: [PATCH 009/149] OMAP3+: SR: make notify independent of class
> -
> -Interrupt notification mechanism of SmartReflex can be used by the
> -choice of implementation of the class driver. For example, Class 2 and
> -Class 1.5 of SmartReflex can both use the interrupt notification to
> -identify the transition of voltage or other events.
> -
> -Hence, the actual class does not matter for notifier. Let the class
> -driver's handling decide how it should be used. SmartReflex driver
> -should provide just the primitives.
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/smartreflex.c |    6 ++----
> - 1 files changed, 2 insertions(+), 4 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-
> omap2/smartreflex.c
> -index f5a6bc1..785ed4c 100644
> ---- a/arch/arm/mach-omap2/smartreflex.c
> -+++ b/arch/arm/mach-omap2/smartreflex.c
> -@@ -143,7 +143,7 @@ static irqreturn_t sr_interrupt(int irq, void *data)
> - 		sr_write_reg(sr_info, IRQSTATUS, status);
> - 	}
> -
> --	if (sr_class->class_type == SR_CLASS2 && sr_class->notify)
> -+	if (sr_class->notify)
> - 		sr_class->notify(sr_info->voltdm, status);
> -
> - 	return IRQ_HANDLED;
> -@@ -258,9 +258,7 @@ static int sr_late_init(struct omap_sr *sr_info)
> - 	struct resource *mem;
> - 	int ret = 0;
> -
> --	if (sr_class->class_type == SR_CLASS2 &&
> --		sr_class->notify_flags && sr_info->irq) {
> --
> -+	if (sr_class->notify && sr_class->notify_flags && sr_info->irq) {
> - 		name = kasprintf(GFP_KERNEL, "sr_%s", sr_info->voltdm-
> >name);
> - 		if (name == NULL) {
> - 			ret = -ENOMEM;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0010-OMAP3-SR-
> disable-interrupt-by-default.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0010-OMAP3-SR-disable-interrupt-by-default.patch
> deleted file mode 100644
> index 7d8ef30..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0010-OMAP3-SR-disable-
> interrupt-by-default.patch
> +++ /dev/null
> @@ -1,36 +0,0 @@
> -From 252ef25d54768a725289253c494e1f37a5eec526 Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Mon, 14 Feb 2011 12:41:10 +0530
> -Subject: [PATCH 010/149] OMAP3+: SR: disable interrupt by default
> -
> -We will enable and disable interrupt on a need basis in the class
> -driver. We need to keep the IRQ disabled by default else the
> -forceupdate or vcbypass events could trigger events that we don't
> -need/expect to handle.
> -
> -This is a preparation for SmartReflex AVS class drivers such as
> -class 2 and class 1.5 which would need to use interrupts. Existing
> -SmartReflex AVS class 3 driver does not require to use interrupts
> -and is not impacted by this change.
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/smartreflex.c |    1 +
> - 1 files changed, 1 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-
> omap2/smartreflex.c
> -index 785ed4c..6b69ada 100644
> ---- a/arch/arm/mach-omap2/smartreflex.c
> -+++ b/arch/arm/mach-omap2/smartreflex.c
> -@@ -268,6 +268,7 @@ static int sr_late_init(struct omap_sr *sr_info)
> - 				0, name, (void *)sr_info);
> - 		if (ret)
> - 			goto error;
> -+		disable_irq(sr_info->irq);
> - 	}
> -
> - 	if (pdata && pdata->enable_on_init)
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0011-OMAP3-SR-
> enable-disable-SR-only-on-need.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0011-OMAP3-SR-enable-disable-SR-only-on-need.patch
> deleted file mode 100644
> index ffc8c8c..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0011-OMAP3-SR-enable-
> disable-SR-only-on-need.patch
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -From e060d73eef027063f687feae1c3d0ad2418a88aa Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Mon, 14 Feb 2011 21:14:17 +0530
> -Subject: [PATCH 011/149] OMAP3+: SR: enable/disable SR only on need
> -
> -Since we already know the state of the autocomp enablement, we can
> -see if the requested state is different from the current state and
> -enable/disable SR only on the need basis.
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/smartreflex.c |   11 +++++++----
> - 1 files changed, 7 insertions(+), 4 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-
> omap2/smartreflex.c
> -index 6b69ada..1a370b9 100644
> ---- a/arch/arm/mach-omap2/smartreflex.c
> -+++ b/arch/arm/mach-omap2/smartreflex.c
> -@@ -807,10 +807,13 @@ static int omap_sr_autocomp_store(void *data,
> u64 val)
> - 		return -EINVAL;
> - 	}
> -
> --	if (!val)
> --		sr_stop_vddautocomp(sr_info);
> --	else
> --		sr_start_vddautocomp(sr_info);
> -+	/* control enable/disable only if there is a delta in value */
> -+	if (sr_info->autocomp_active != val) {
> -+		if (!val)
> -+			sr_stop_vddautocomp(sr_info);
> -+		else
> -+			sr_start_vddautocomp(sr_info);
> -+	}
> -
> - 	return 0;
> - }
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0012-OMAP3-SR-fix-
> cosmetic-indentation.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0012-OMAP3-SR-fix-cosmetic-indentation.patch
> deleted file mode 100644
> index 63c8230..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0012-OMAP3-SR-fix-
> cosmetic-indentation.patch
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -From d9d17d6ea5a56b81a7d6d134aeeeff6a3b9fbf88 Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Mon, 14 Feb 2011 12:33:13 +0530
> -Subject: [PATCH 012/149] OMAP3+: SR: fix cosmetic indentation
> -
> -Error label case seems to have a 2 tab indentation when just 1 is
> -necessary.
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/smartreflex.c |   20 ++++++++++----------
> - 1 files changed, 10 insertions(+), 10 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-
> omap2/smartreflex.c
> -index 1a370b9..be6add0 100644
> ---- a/arch/arm/mach-omap2/smartreflex.c
> -+++ b/arch/arm/mach-omap2/smartreflex.c
> -@@ -277,16 +277,16 @@ static int sr_late_init(struct omap_sr *sr_info)
> - 	return ret;
> -
> - error:
> --		iounmap(sr_info->base);
> --		mem = platform_get_resource(sr_info->pdev,
> IORESOURCE_MEM, 0);
> --		release_mem_region(mem->start, resource_size(mem));
> --		list_del(&sr_info->node);
> --		dev_err(&sr_info->pdev->dev, "%s: ERROR in registering"
> --			"interrupt handler. Smartreflex will"
> --			"not function as desired\n", __func__);
> --		kfree(name);
> --		kfree(sr_info);
> --		return ret;
> -+	iounmap(sr_info->base);
> -+	mem = platform_get_resource(sr_info->pdev, IORESOURCE_MEM, 0);
> -+	release_mem_region(mem->start, resource_size(mem));
> -+	list_del(&sr_info->node);
> -+	dev_err(&sr_info->pdev->dev, "%s: ERROR in registering"
> -+		"interrupt handler. Smartreflex will"
> -+		"not function as desired\n", __func__);
> -+	kfree(name);
> -+	kfree(sr_info);
> -+	return ret;
> - }
> -
> - static void sr_v1_disable(struct omap_sr *sr)
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0013-omap2-Reserve-
> clocksource-and-timesource-and-initial.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0013-omap2-Reserve-clocksource-and-timesource-and-
> initial.patch
> deleted file mode 100644
> index db4f8e5..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0013-omap2-Reserve-
> clocksource-and-timesource-and-initial.patch
> +++ /dev/null
> @@ -1,125 +0,0 @@
> -From 8009544b2ea8ceba920455bb7e5e267cc78d3827 Mon Sep 17 00:00:00
> 2001
> -From: Tony Lindgren <tony at atomide.com>
> -Date: Tue, 29 Mar 2011 15:54:49 -0700
> -Subject: [PATCH 013/149] omap2+: Reserve clocksource and timesource and
> initialize dmtimer later
> -
> -There's no need to initialize the dmtimer framework early.
> -Just mark the clocksource and timesource as reserved, and
> -initialize dmtimer with an arch_initcall.
> -
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Reviewed-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap1/timer32k.c            |    4 ----
> - arch/arm/mach-omap2/timer-gp.c            |    6 ++++--
> - arch/arm/plat-omap/dmtimer.c              |   10 +++++++++-
> - arch/arm/plat-omap/include/plat/dmtimer.h |    3 +--
> - 4 files changed, 14 insertions(+), 9 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-
> omap1/timer32k.c
> -index 13d7b8f..96604a5 100644
> ---- a/arch/arm/mach-omap1/timer32k.c
> -+++ b/arch/arm/mach-omap1/timer32k.c
> -@@ -183,10 +183,6 @@ static __init void omap_init_32k_timer(void)
> - bool __init omap_32k_timer_init(void)
> - {
> - 	omap_init_clocksource_32k();
> --
> --#ifdef CONFIG_OMAP_DM_TIMER
> --	omap_dm_timer_init();
> --#endif
> - 	omap_init_32k_timer();
> -
> - 	return true;
> -diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-
> gp.c
> -index 578e9df..cf2ec85 100644
> ---- a/arch/arm/mach-omap2/timer-gp.c
> -+++ b/arch/arm/mach-omap2/timer-gp.c
> -@@ -69,6 +69,8 @@
> - /* MAX_GPTIMER_ID: number of GPTIMERs on the chip */
> - #define MAX_GPTIMER_ID		12
> -
> -+u32 sys_timer_reserved;
> -+
> - /* Clockevent code */
> -
> - static struct omap_dm_timer clkev;
> -@@ -195,6 +197,8 @@ static int __init omap_dm_timer_init_one(struct
> omap_dm_timer *timer,
> -
> - 	omap_hwmod_enable(oh);
> -
> -+	sys_timer_reserved |= (1 << (gptimer_id - 1));
> -+
> - 	if (gptimer_id != 12) {
> - 		struct clk *src;
> -
> -@@ -321,7 +325,6 @@ static void __init omap2_gp_clocksource_init(void)
> - #define OMAP_SYS_TIMER_INIT(name, clkev_nr, clkev_src)
> 	\
> - static void __init omap##name##_timer_init(void)			\
> - {									\
> --	omap_dm_timer_init();						\
> - 	omap2_gp_clockevent_init((clkev_nr), clkev_src);		\
> - 	omap2_gp_clocksource_init();					\
> - }
> -@@ -350,7 +353,6 @@ static void __init omap4_timer_init(void)
> - 	twd_base = ioremap(OMAP44XX_LOCAL_TWD_BASE, SZ_256);
> - 	BUG_ON(!twd_base);
> - #endif
> --	omap_dm_timer_init();
> - 	omap2_gp_clockevent_init(1, OMAP4_CLKEV_SOURCE);
> - 	omap2_gp_clocksource_init();
> - }
> -diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
> -index 7c5cb4e..8dfb818 100644
> ---- a/arch/arm/plat-omap/dmtimer.c
> -+++ b/arch/arm/plat-omap/dmtimer.c
> -@@ -572,7 +572,7 @@ int omap_dm_timers_active(void)
> - }
> - EXPORT_SYMBOL_GPL(omap_dm_timers_active);
> -
> --int __init omap_dm_timer_init(void)
> -+static int __init omap_dm_timer_init(void)
> - {
> - 	struct omap_dm_timer *timer;
> - 	int i, map_size = SZ_8K;	/* Module 4KB + L4 4KB except on omap1 */
> -@@ -625,8 +625,16 @@ int __init omap_dm_timer_init(void)
> - 			sprintf(clk_name, "gpt%d_fck", i + 1);
> - 			timer->fclk = clk_get(NULL, clk_name);
> - 		}
> -+
> -+		/* One or two timers may be set up early for sys_timer */
> -+		if (sys_timer_reserved & (1  << i)) {
> -+			timer->reserved = 1;
> -+			timer->posted = 1;
> -+		}
> - #endif
> - 	}
> -
> - 	return 0;
> - }
> -+
> -+arch_initcall(omap_dm_timer_init);
> -diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-
> omap/include/plat/dmtimer.h
> -index 8adcb18..d0f3a2d 100644
> ---- a/arch/arm/plat-omap/include/plat/dmtimer.h
> -+++ b/arch/arm/plat-omap/include/plat/dmtimer.h
> -@@ -61,8 +61,6 @@
> - struct omap_dm_timer;
> - struct clk;
> -
> --int omap_dm_timer_init(void);
> --
> - struct omap_dm_timer *omap_dm_timer_request(void);
> - struct omap_dm_timer *omap_dm_timer_request_specific(int timer_id);
> - void omap_dm_timer_free(struct omap_dm_timer *timer);
> -@@ -221,6 +219,7 @@ struct omap_dm_timer {
> - 	unsigned posted:1;
> - };
> -
> -+extern u32 sys_timer_reserved;
> - void omap_dm_timer_prepare(struct omap_dm_timer *timer);
> -
> - static inline u32 __omap_dm_timer_read(void __iomem *base, u32 reg,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0014-omap2-Use-
> dmtimer-macros-for-clocksource.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0014-omap2-Use-dmtimer-macros-for-clocksource.patch
> deleted file mode 100644
> index 2e72dad..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0014-omap2-Use-dmtimer-
> macros-for-clocksource.patch
> +++ /dev/null
> @@ -1,163 +0,0 @@
> -From 595da70cb0e039cbe04d9c7ce179883e6f8878c1 Mon Sep 17 00:00:00
> 2001
> -From: Tony Lindgren <tony at atomide.com>
> -Date: Tue, 29 Mar 2011 15:54:49 -0700
> -Subject: [PATCH 014/149] omap2+: Use dmtimer macros for clocksource
> -
> -Use dmtimer macros for clocksource. As with the clockevent,
> -this allows us to initialize the rest of dmtimer code later on.
> -
> -Note that eventually we will be initializing the timesource
> -from init_early so sched_clock will work properly for
> -CONFIG_PRINTK_TIME.
> -
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Reviewed-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/timer-gp.c   |   64 +++++++++++++++++++++-----------
> -----
> - arch/arm/plat-omap/counter_32k.c |    2 +-
> - 2 files changed, 37 insertions(+), 29 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-
> gp.c
> -index cf2ec85..2b8cb70 100644
> ---- a/arch/arm/mach-omap2/timer-gp.c
> -+++ b/arch/arm/mach-omap2/timer-gp.c
> -@@ -262,20 +262,22 @@ static void __init omap2_gp_clockevent_init(int
> gptimer_id,
> -  * sync counter.  See clocksource setup in plat-omap/counter_32k.c
> -  */
> -
> --static void __init omap2_gp_clocksource_init(void)
> -+static void __init omap2_gp_clocksource_init(int unused, const char
> *dummy)
> - {
> - 	omap_init_clocksource_32k();
> - }
> -
> - #else
> -+
> -+static struct omap_dm_timer clksrc;
> -+
> - /*
> -  * clocksource
> -  */
> - static DEFINE_CLOCK_DATA(cd);
> --static struct omap_dm_timer *gpt_clocksource;
> - static cycle_t clocksource_read_cycles(struct clocksource *cs)
> - {
> --	return (cycle_t)omap_dm_timer_read_counter(gpt_clocksource);
> -+	return (cycle_t)__omap_dm_timer_read_counter(clksrc.io_base, 1);
> - }
> -
> - static struct clocksource clocksource_gpt = {
> -@@ -290,43 +292,48 @@ static void notrace
> dmtimer_update_sched_clock(void)
> - {
> - 	u32 cyc;
> -
> --	cyc = omap_dm_timer_read_counter(gpt_clocksource);
> -+	cyc = __omap_dm_timer_read_counter(clksrc.io_base, 1);
> -
> - 	update_sched_clock(&cd, cyc, (u32)~0);
> - }
> -
> --/* Setup free-running counter for clocksource */
> --static void __init omap2_gp_clocksource_init(void)
> -+unsigned long long notrace sched_clock(void)
> - {
> --	static struct omap_dm_timer *gpt;
> --	u32 tick_rate;
> --	static char err1[] __initdata = KERN_ERR
> --		"%s: failed to request dm-timer\n";
> --	static char err2[] __initdata = KERN_ERR
> --		"%s: can't register clocksource!\n";
> -+	u32 cyc = 0;
> -
> --	gpt = omap_dm_timer_request();
> --	if (!gpt)
> --		printk(err1, clocksource_gpt.name);
> --	gpt_clocksource = gpt;
> -+	if (clksrc.reserved)
> -+		cyc = __omap_dm_timer_read_counter(clksrc.io_base, 1);
> -
> --	omap_dm_timer_set_source(gpt, OMAP_TIMER_SRC_SYS_CLK);
> --	tick_rate = clk_get_rate(omap_dm_timer_get_fclk(gpt));
> -+	return cyc_to_sched_clock(&cd, cyc, (u32)~0);
> -+}
> -+
> -+/* Setup free-running counter for clocksource */
> -+static void __init omap2_gp_clocksource_init(int gptimer_id,
> -+						const char *fck_source)
> -+{
> -+	int res;
> -+
> -+	res = omap_dm_timer_init_one(&clksrc, gptimer_id, fck_source);
> -+	BUG_ON(res);
> -
> --	omap_dm_timer_set_load_start(gpt, 1, 0);
> -+	pr_info("OMAP clocksource: GPTIMER%d at %lu Hz\n",
> -+		gptimer_id, clksrc.rate);
> -
> --	init_sched_clock(&cd, dmtimer_update_sched_clock, 32, tick_rate);
> -+	__omap_dm_timer_load_start(clksrc.io_base, OMAP_TIMER_CTRL_ST,
> 0, 1);
> -+	init_sched_clock(&cd, dmtimer_update_sched_clock, 32, clksrc.rate);
> -
> --	if (clocksource_register_hz(&clocksource_gpt, tick_rate))
> --		printk(err2, clocksource_gpt.name);
> -+	if (clocksource_register_hz(&clocksource_gpt, clksrc.rate))
> -+		pr_err("Could not register clocksource %s\n",
> -+			clocksource_gpt.name);
> - }
> - #endif
> -
> --#define OMAP_SYS_TIMER_INIT(name, clkev_nr, clkev_src)
> 	\
> -+#define OMAP_SYS_TIMER_INIT(name, clkev_nr, clkev_src,
> 	\
> -+				clksrc_nr, clksrc_src)			\
> - static void __init omap##name##_timer_init(void)			\
> - {									\
> - 	omap2_gp_clockevent_init((clkev_nr), clkev_src);		\
> --	omap2_gp_clocksource_init();					\
> -+	omap2_gp_clocksource_init((clksrc_nr), clksrc_src);		\
> - }
> -
> - #define OMAP_SYS_TIMER(name)
> 	\
> -@@ -335,14 +342,15 @@ struct sys_timer omap##name##_timer = {
> 				\
> - };
> -
> - #ifdef CONFIG_ARCH_OMAP2
> --OMAP_SYS_TIMER_INIT(2, 1, OMAP2_CLKEV_SOURCE)
> -+OMAP_SYS_TIMER_INIT(2, 1, OMAP2_CLKEV_SOURCE, 2,
> OMAP2_MPU_SOURCE)
> - OMAP_SYS_TIMER(2)
> - #endif
> -
> - #ifdef CONFIG_ARCH_OMAP3
> --OMAP_SYS_TIMER_INIT(3, 1, OMAP3_CLKEV_SOURCE)
> -+OMAP_SYS_TIMER_INIT(3, 1, OMAP3_CLKEV_SOURCE, 2,
> OMAP3_MPU_SOURCE)
> - OMAP_SYS_TIMER(3)
> --OMAP_SYS_TIMER_INIT(3_secure, OMAP3_SECURE_TIMER,
> OMAP3_CLKEV_SOURCE)
> -+OMAP_SYS_TIMER_INIT(3_secure, OMAP3_SECURE_TIMER,
> OMAP3_CLKEV_SOURCE,
> -+			2, OMAP3_MPU_SOURCE)
> - OMAP_SYS_TIMER(3_secure)
> - #endif
> -
> -@@ -354,7 +362,7 @@ static void __init omap4_timer_init(void)
> - 	BUG_ON(!twd_base);
> - #endif
> - 	omap2_gp_clockevent_init(1, OMAP4_CLKEV_SOURCE);
> --	omap2_gp_clocksource_init();
> -+	omap2_gp_clocksource_init(2, OMAP4_MPU_SOURCE);
> - }
> - OMAP_SYS_TIMER(4)
> - #endif
> -diff --git a/arch/arm/plat-omap/counter_32k.c b/arch/arm/plat-
> omap/counter_32k.c
> -index f7fed60..c13bc3d 100644
> ---- a/arch/arm/plat-omap/counter_32k.c
> -+++ b/arch/arm/plat-omap/counter_32k.c
> -@@ -126,7 +126,7 @@ static inline unsigned long long notrace
> _omap_32k_sched_clock(void)
> - 	return cyc_to_fixed_sched_clock(&cd, cyc, (u32)~0, SC_MULT,
> SC_SHIFT);
> - }
> -
> --#ifndef CONFIG_OMAP_MPU_TIMER
> -+#if defined(CONFIG_OMAP_32K_TIMER) &&
> !defined(CONFIG_OMAP_MPU_TIMER)
> - unsigned long long notrace sched_clock(void)
> - {
> - 	return _omap_32k_sched_clock();
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0015-omap2-
> Remove-omap2_gp_clockevent_set_gptimer.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0015-omap2-Remove-
> omap2_gp_clockevent_set_gptimer.patch
> deleted file mode 100644
> index 298f82d..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0015-omap2-Remove-
> omap2_gp_clockevent_set_gptimer.patch
> +++ /dev/null
> @@ -1,240 +0,0 @@
> -From e50befd53e52f2c72a26e33812ad896d5f8524fa Mon Sep 17 00:00:00
> 2001
> -From: Tony Lindgren <tony at atomide.com>
> -Date: Tue, 29 Mar 2011 15:54:49 -0700
> -Subject: [PATCH 015/149] omap2+: Remove
> omap2_gp_clockevent_set_gptimer
> -
> -This is no longer needed as we now just set the desired
> -.timer in MACHINE_START. We can now also remove timer-gp.h.
> -
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Reviewed-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/board-4430sdp.c        |    4 ----
> - arch/arm/mach-omap2/board-devkit8000.c     |    4 ----
> - arch/arm/mach-omap2/board-omap3beagle.c    |    4 ----
> - arch/arm/mach-omap2/board-omap3logic.c     |    1 -
> - arch/arm/mach-omap2/board-omap3stalker.c   |    4 ----
> - arch/arm/mach-omap2/board-omap3touchbook.c |    4 ----
> - arch/arm/mach-omap2/board-omap4panda.c     |    1 -
> - arch/arm/mach-omap2/timer-gp.c             |   26 --------------------------
> - arch/arm/mach-omap2/timer-gp.h             |   16 ----------------
> - 9 files changed, 0 insertions(+), 64 deletions(-)
> - delete mode 100644 arch/arm/mach-omap2/timer-gp.h
> -
> -diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-
> omap2/board-4430sdp.c
> -index e8caced..d7df07e 100644
> ---- a/arch/arm/mach-omap2/board-4430sdp.c
> -+++ b/arch/arm/mach-omap2/board-4430sdp.c
> -@@ -40,7 +40,6 @@
> -
> - #include "mux.h"
> - #include "hsmmc.h"
> --#include "timer-gp.h"
> - #include "control.h"
> - #include "common-board-devices.h"
> -
> -@@ -295,9 +294,6 @@ static void __init omap_4430sdp_init_early(void)
> - {
> - 	omap2_init_common_infrastructure();
> - 	omap2_init_common_devices(NULL, NULL);
> --#ifdef CONFIG_OMAP_32K_TIMER
> --	omap2_gp_clockevent_set_gptimer(1);
> --#endif
> - }
> -
> - static struct omap_musb_board_data musb_board_data = {
> -diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-
> omap2/board-devkit8000.c
> -index 46d144d..949dbea 100644
> ---- a/arch/arm/mach-omap2/board-devkit8000.c
> -+++ b/arch/arm/mach-omap2/board-devkit8000.c
> -@@ -58,7 +58,6 @@
> -
> - #include "mux.h"
> - #include "hsmmc.h"
> --#include "timer-gp.h"
> - #include "common-board-devices.h"
> -
> - #define OMAP_DM9000_GPIO_IRQ	25
> -@@ -441,9 +440,6 @@ static void __init devkit8000_init_early(void)
> - static void __init devkit8000_init_irq(void)
> - {
> - 	omap3_init_irq();
> --#ifdef CONFIG_OMAP_32K_TIMER
> --	omap2_gp_clockevent_set_gptimer(12);
> --#endif
> - }
> -
> - #define OMAP_DM9000_BASE	0x2c000000
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 9ee16f6..2d8dfb3 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -50,7 +50,6 @@
> -
> - #include "mux.h"
> - #include "hsmmc.h"
> --#include "timer-gp.h"
> - #include "pm.h"
> - #include "common-board-devices.h"
> -
> -@@ -484,9 +483,6 @@ static void __init omap3_beagle_init_early(void)
> - static void __init omap3_beagle_init_irq(void)
> - {
> - 	omap3_init_irq();
> --#ifdef CONFIG_OMAP_32K_TIMER
> --	omap2_gp_clockevent_set_gptimer(12);
> --#endif
> - }
> -
> - static struct platform_device *omap3_beagle_devices[] __initdata = {
> -diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-
> omap2/board-omap3logic.c
> -index 469259a..703aeb5 100644
> ---- a/arch/arm/mach-omap2/board-omap3logic.c
> -+++ b/arch/arm/mach-omap2/board-omap3logic.c
> -@@ -35,7 +35,6 @@
> -
> - #include "mux.h"
> - #include "hsmmc.h"
> --#include "timer-gp.h"
> - #include "control.h"
> - #include "common-board-devices.h"
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-
> omap2/board-omap3stalker.c
> -index 2fa8fae..b8ad4dd 100644
> ---- a/arch/arm/mach-omap2/board-omap3stalker.c
> -+++ b/arch/arm/mach-omap2/board-omap3stalker.c
> -@@ -52,7 +52,6 @@
> - #include "sdram-micron-mt46h32m32lf-6.h"
> - #include "mux.h"
> - #include "hsmmc.h"
> --#include "timer-gp.h"
> - #include "common-board-devices.h"
> -
> - #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
> -@@ -492,9 +491,6 @@ static void __init omap3_stalker_init_early(void)
> - static void __init omap3_stalker_init_irq(void)
> - {
> - 	omap3_init_irq();
> --#ifdef CONFIG_OMAP_32K_TIMER
> --	omap2_gp_clockevent_set_gptimer(12);
> --#endif
> - }
> -
> - static struct platform_device *omap3_stalker_devices[] __initdata = {
> -diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c
> b/arch/arm/mach-omap2/board-omap3touchbook.c
> -index 8c71fd2..57e6ed3 100644
> ---- a/arch/arm/mach-omap2/board-omap3touchbook.c
> -+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
> -@@ -51,7 +51,6 @@
> -
> - #include "mux.h"
> - #include "hsmmc.h"
> --#include "timer-gp.h"
> - #include "common-board-devices.h"
> -
> - #include <asm/setup.h>
> -@@ -372,9 +371,6 @@ static void __init omap3_touchbook_init_early(void)
> - static void __init omap3_touchbook_init_irq(void)
> - {
> - 	omap3_init_irq();
> --#ifdef CONFIG_OMAP_32K_TIMER
> --	omap2_gp_clockevent_set_gptimer(12);
> --#endif
> - }
> -
> - static struct platform_device *omap3_touchbook_devices[] __initdata = {
> -diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-
> omap2/board-omap4panda.c
> -index dc1d6dc..ee2034e 100644
> ---- a/arch/arm/mach-omap2/board-omap4panda.c
> -+++ b/arch/arm/mach-omap2/board-omap4panda.c
> -@@ -41,7 +41,6 @@
> - #include <plat/usb.h>
> - #include <plat/mmc.h>
> - #include <video/omap-panel-generic-dpi.h>
> --#include "timer-gp.h"
> -
> - #include "hsmmc.h"
> - #include "control.h"
> -diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-
> gp.c
> -index 2b8cb70..ab1931c 100644
> ---- a/arch/arm/mach-omap2/timer-gp.c
> -+++ b/arch/arm/mach-omap2/timer-gp.c
> -@@ -43,8 +43,6 @@
> - #include <plat/common.h>
> - #include <plat/omap_hwmod.h>
> -
> --#include "timer-gp.h"
> --
> - /* Parent clocks, eventually these will come from the clock framework */
> -
> - #define OMAP2_MPU_SOURCE	"sys_ck"
> -@@ -75,8 +73,6 @@ u32 sys_timer_reserved;
> -
> - static struct omap_dm_timer clkev;
> - static struct clock_event_device clockevent_gpt;
> --static u8 __initdata gptimer_id = 1;
> --static u8 __initdata inited;
> -
> - static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id)
> - {
> -@@ -138,26 +134,6 @@ static struct clock_event_device clockevent_gpt = {
> - 	.set_mode	= omap2_gp_timer_set_mode,
> - };
> -
> --/**
> -- * omap2_gp_clockevent_set_gptimer - set which GPTIMER is used for
> clockevents
> -- * @id: GPTIMER to use (1..MAX_GPTIMER_ID)
> -- *
> -- * Define the GPTIMER that the system should use for the tick timer.
> -- * Meant to be called from board-*.c files in the event that GPTIMER1, the
> -- * default, is unsuitable.  Returns -EINVAL on error or 0 on success.
> -- */
> --int __init omap2_gp_clockevent_set_gptimer(u8 id)
> --{
> --	if (id < 1 || id > MAX_GPTIMER_ID)
> --		return -EINVAL;
> --
> --	BUG_ON(inited);
> --
> --	gptimer_id = id;
> --
> --	return 0;
> --}
> --
> - static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
> - 						int gptimer_id,
> - 						const char *fck_source)
> -@@ -228,8 +204,6 @@ static void __init omap2_gp_clockevent_init(int
> gptimer_id,
> - {
> - 	int res;
> -
> --	inited = 1;
> --
> - 	res = omap_dm_timer_init_one(&clkev, gptimer_id, fck_source);
> - 	BUG_ON(res);
> -
> -diff --git a/arch/arm/mach-omap2/timer-gp.h b/arch/arm/mach-omap2/timer-
> gp.h
> -deleted file mode 100644
> -index 5c1072c..0000000
> ---- a/arch/arm/mach-omap2/timer-gp.h
> -+++ /dev/null
> -@@ -1,16 +0,0 @@
> --/*
> -- * OMAP2/3 GPTIMER support.headers
> -- *
> -- * Copyright (C) 2009 Nokia Corporation
> -- *
> -- * This file is subject to the terms and conditions of the GNU General Public
> -- * License. See the file "COPYING" in the main directory of this archive
> -- * for more details.
> -- */
> --
> --#ifndef __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_TIMER_GP_H
> --#define __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_TIMER_GP_H
> --
> --extern int __init omap2_gp_clockevent_set_gptimer(u8 id);
> --
> --#endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0016-omap2-
> Rename-timer-gp.c-into-timer.c-to-combine-time.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0016-omap2-Rename-timer-gp.c-into-
> timer.c-to-combine-time.patch
> deleted file mode 100644
> index c511aa9..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0016-omap2-Rename-
> timer-gp.c-into-timer.c-to-combine-time.patch
> +++ /dev/null
> @@ -1,737 +0,0 @@
> -From 5cdb1497ccc5b9dae8795e1e5e9c74f11e4e7401 Mon Sep 17 00:00:00
> 2001
> -From: Tony Lindgren <tony at atomide.com>
> -Date: Tue, 29 Mar 2011 15:54:50 -0700
> -Subject: [PATCH 016/149] omap2+: Rename timer-gp.c into timer.c to combine
> timer init functions
> -
> -We can keep everything sys_timer and gptimer.c related code in
> -timer.c as the code will be very minimal.
> -
> -Later on we can also remove timer-mpu.c, as it can be called from
> -omap4_timer_init function.
> -
> -This allows us to get rid of confusing existing files. We currently
> -have timer-gp.c, timer-mpu.c, and patches have been posted to add
> -dmtimer.c. There's no need to have these multiple files, we can
> -put everything into timer.c.
> -
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/mach-omap2/Makefile   |    2 +-
> - arch/arm/mach-omap2/timer-gp.c |  342 ----------------------------------------
> - arch/arm/mach-omap2/timer.c    |  342
> ++++++++++++++++++++++++++++++++++++++++
> - 3 files changed, 343 insertions(+), 343 deletions(-)
> - delete mode 100644 arch/arm/mach-omap2/timer-gp.c
> - create mode 100644 arch/arm/mach-omap2/timer.c
> -
> -diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-
> omap2/Makefile
> -index b148077..adbe82d 100644
> ---- a/arch/arm/mach-omap2/Makefile
> -+++ b/arch/arm/mach-omap2/Makefile
> -@@ -3,7 +3,7 @@
> - #
> -
> - # Common support
> --obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer-gp.o pm.o \
> -+obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer.o pm.o \
> - 	 common.o gpio.o dma.o wd_timer.o
> -
> - omap-2-3-common				= irq.o sdrc.o
> -diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-
> gp.c
> -deleted file mode 100644
> -index ab1931c..0000000
> ---- a/arch/arm/mach-omap2/timer-gp.c
> -+++ /dev/null
> -@@ -1,342 +0,0 @@
> --/*
> -- * linux/arch/arm/mach-omap2/timer-gp.c
> -- *
> -- * OMAP2 GP timer support.
> -- *
> -- * Copyright (C) 2009 Nokia Corporation
> -- *
> -- * Update to use new clocksource/clockevent layers
> -- * Author: Kevin Hilman, MontaVista Software, Inc. <source at mvista.com>
> -- * Copyright (C) 2007 MontaVista Software, Inc.
> -- *
> -- * Original driver:
> -- * Copyright (C) 2005 Nokia Corporation
> -- * Author: Paul Mundt <paul.mundt at nokia.com>
> -- *         Juha Yrjölä <juha.yrjola at nokia.com>
> -- * OMAP Dual-mode timer framework support by Timo Teras
> -- *
> -- * Some parts based off of TI's 24xx code:
> -- *
> -- * Copyright (C) 2004-2009 Texas Instruments, Inc.
> -- *
> -- * Roughly modelled after the OMAP1 MPU timer code.
> -- * Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar at ti.com>
> -- *
> -- * This file is subject to the terms and conditions of the GNU General Public
> -- * License. See the file "COPYING" in the main directory of this archive
> -- * for more details.
> -- */
> --#include <linux/init.h>
> --#include <linux/time.h>
> --#include <linux/interrupt.h>
> --#include <linux/err.h>
> --#include <linux/clk.h>
> --#include <linux/delay.h>
> --#include <linux/irq.h>
> --#include <linux/clocksource.h>
> --#include <linux/clockchips.h>
> --
> --#include <asm/mach/time.h>
> --#include <plat/dmtimer.h>
> --#include <asm/localtimer.h>
> --#include <asm/sched_clock.h>
> --#include <plat/common.h>
> --#include <plat/omap_hwmod.h>
> --
> --/* Parent clocks, eventually these will come from the clock framework */
> --
> --#define OMAP2_MPU_SOURCE	"sys_ck"
> --#define OMAP3_MPU_SOURCE	OMAP2_MPU_SOURCE
> --#define OMAP4_MPU_SOURCE	"sys_clkin_ck"
> --#define OMAP2_32K_SOURCE	"func_32k_ck"
> --#define OMAP3_32K_SOURCE	"omap_32k_fck"
> --#define OMAP4_32K_SOURCE	"sys_32k_ck"
> --
> --#ifdef CONFIG_OMAP_32K_TIMER
> --#define OMAP2_CLKEV_SOURCE	OMAP2_32K_SOURCE
> --#define OMAP3_CLKEV_SOURCE	OMAP3_32K_SOURCE
> --#define OMAP4_CLKEV_SOURCE	OMAP4_32K_SOURCE
> --#define OMAP3_SECURE_TIMER	12
> --#else
> --#define OMAP2_CLKEV_SOURCE	OMAP2_MPU_SOURCE
> --#define OMAP3_CLKEV_SOURCE	OMAP3_MPU_SOURCE
> --#define OMAP4_CLKEV_SOURCE	OMAP4_MPU_SOURCE
> --#define OMAP3_SECURE_TIMER	1
> --#endif
> --
> --/* MAX_GPTIMER_ID: number of GPTIMERs on the chip */
> --#define MAX_GPTIMER_ID		12
> --
> --u32 sys_timer_reserved;
> --
> --/* Clockevent code */
> --
> --static struct omap_dm_timer clkev;
> --static struct clock_event_device clockevent_gpt;
> --
> --static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id)
> --{
> --	struct clock_event_device *evt = &clockevent_gpt;
> --
> --	__omap_dm_timer_write_status(clkev.io_base,
> OMAP_TIMER_INT_OVERFLOW);
> --
> --	evt->event_handler(evt);
> --	return IRQ_HANDLED;
> --}
> --
> --static struct irqaction omap2_gp_timer_irq = {
> --	.name		= "gp timer",
> --	.flags		= IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
> --	.handler	= omap2_gp_timer_interrupt,
> --};
> --
> --static int omap2_gp_timer_set_next_event(unsigned long cycles,
> --					 struct clock_event_device *evt)
> --{
> --	__omap_dm_timer_load_start(clkev.io_base, OMAP_TIMER_CTRL_ST,
> --						0xffffffff - cycles, 1);
> --
> --	return 0;
> --}
> --
> --static void omap2_gp_timer_set_mode(enum clock_event_mode mode,
> --				    struct clock_event_device *evt)
> --{
> --	u32 period;
> --
> --	__omap_dm_timer_stop(clkev.io_base, 1, clkev.rate);
> --
> --	switch (mode) {
> --	case CLOCK_EVT_MODE_PERIODIC:
> --		period = clkev.rate / HZ;
> --		period -= 1;
> --		/* Looks like we need to first set the load value separately */
> --		__omap_dm_timer_write(clkev.io_base,
> OMAP_TIMER_LOAD_REG,
> --					0xffffffff - period, 1);
> --		__omap_dm_timer_load_start(clkev.io_base,
> --					OMAP_TIMER_CTRL_AR |
> OMAP_TIMER_CTRL_ST,
> --						0xffffffff - period, 1);
> --		break;
> --	case CLOCK_EVT_MODE_ONESHOT:
> --		break;
> --	case CLOCK_EVT_MODE_UNUSED:
> --	case CLOCK_EVT_MODE_SHUTDOWN:
> --	case CLOCK_EVT_MODE_RESUME:
> --		break;
> --	}
> --}
> --
> --static struct clock_event_device clockevent_gpt = {
> --	.name		= "gp timer",
> --	.features       = CLOCK_EVT_FEAT_PERIODIC |
> CLOCK_EVT_FEAT_ONESHOT,
> --	.shift		= 32,
> --	.set_next_event	= omap2_gp_timer_set_next_event,
> --	.set_mode	= omap2_gp_timer_set_mode,
> --};
> --
> --static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
> --						int gptimer_id,
> --						const char *fck_source)
> --{
> --	char name[10]; /* 10 = sizeof("gptXX_Xck0") */
> --	struct omap_hwmod *oh;
> --	size_t size;
> --	int res = 0;
> --
> --	sprintf(name, "timer%d", gptimer_id);
> --	omap_hwmod_setup_one(name);
> --	oh = omap_hwmod_lookup(name);
> --	if (!oh)
> --		return -ENODEV;
> --
> --	timer->irq = oh->mpu_irqs[0].irq;
> --	timer->phys_base = oh->slaves[0]->addr->pa_start;
> --	size = oh->slaves[0]->addr->pa_end - timer->phys_base;
> --
> --	/* Static mapping, never released */
> --	timer->io_base = ioremap(timer->phys_base, size);
> --	if (!timer->io_base)
> --		return -ENXIO;
> --
> --	/* After the dmtimer is using hwmod these clocks won't be needed */
> --	sprintf(name, "gpt%d_fck", gptimer_id);
> --	timer->fclk = clk_get(NULL, name);
> --	if (IS_ERR(timer->fclk))
> --		return -ENODEV;
> --
> --	sprintf(name, "gpt%d_ick", gptimer_id);
> --	timer->iclk = clk_get(NULL, name);
> --	if (IS_ERR(timer->iclk)) {
> --		clk_put(timer->fclk);
> --		return -ENODEV;
> --	}
> --
> --	omap_hwmod_enable(oh);
> --
> --	sys_timer_reserved |= (1 << (gptimer_id - 1));
> --
> --	if (gptimer_id != 12) {
> --		struct clk *src;
> --
> --		src = clk_get(NULL, fck_source);
> --		if (IS_ERR(src)) {
> --			res = -EINVAL;
> --		} else {
> --			res = __omap_dm_timer_set_source(timer->fclk, src);
> --			if (IS_ERR_VALUE(res))
> --				pr_warning("%s: timer%i cannot set
> source\n",
> --						__func__, gptimer_id);
> --			clk_put(src);
> --		}
> --	}
> --	__omap_dm_timer_reset(timer->io_base, 1, 1);
> --	timer->posted = 1;
> --
> --	timer->rate = clk_get_rate(timer->fclk);
> --
> --	timer->reserved = 1;
> --
> --	return res;
> --}
> --
> --static void __init omap2_gp_clockevent_init(int gptimer_id,
> --						const char *fck_source)
> --{
> --	int res;
> --
> --	res = omap_dm_timer_init_one(&clkev, gptimer_id, fck_source);
> --	BUG_ON(res);
> --
> --	omap2_gp_timer_irq.dev_id = (void *)&clkev;
> --	setup_irq(clkev.irq, &omap2_gp_timer_irq);
> --
> --	__omap_dm_timer_int_enable(clkev.io_base,
> OMAP_TIMER_INT_OVERFLOW);
> --
> --	clockevent_gpt.mult = div_sc(clkev.rate, NSEC_PER_SEC,
> --				     clockevent_gpt.shift);
> --	clockevent_gpt.max_delta_ns =
> --		clockevent_delta2ns(0xffffffff, &clockevent_gpt);
> --	clockevent_gpt.min_delta_ns =
> --		clockevent_delta2ns(3, &clockevent_gpt);
> --		/* Timer internal resynch latency. */
> --
> --	clockevent_gpt.cpumask = cpumask_of(0);
> --	clockevents_register_device(&clockevent_gpt);
> --
> --	pr_info("OMAP clockevent source: GPTIMER%d at %lu Hz\n",
> --		gptimer_id, clkev.rate);
> --}
> --
> --/* Clocksource code */
> --
> --#ifdef CONFIG_OMAP_32K_TIMER
> --/*
> -- * When 32k-timer is enabled, don't use GPTimer for clocksource
> -- * instead, just leave default clocksource which uses the 32k
> -- * sync counter.  See clocksource setup in plat-omap/counter_32k.c
> -- */
> --
> --static void __init omap2_gp_clocksource_init(int unused, const char *dummy)
> --{
> --	omap_init_clocksource_32k();
> --}
> --
> --#else
> --
> --static struct omap_dm_timer clksrc;
> --
> --/*
> -- * clocksource
> -- */
> --static DEFINE_CLOCK_DATA(cd);
> --static cycle_t clocksource_read_cycles(struct clocksource *cs)
> --{
> --	return (cycle_t)__omap_dm_timer_read_counter(clksrc.io_base, 1);
> --}
> --
> --static struct clocksource clocksource_gpt = {
> --	.name		= "gp timer",
> --	.rating		= 300,
> --	.read		= clocksource_read_cycles,
> --	.mask		= CLOCKSOURCE_MASK(32),
> --	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
> --};
> --
> --static void notrace dmtimer_update_sched_clock(void)
> --{
> --	u32 cyc;
> --
> --	cyc = __omap_dm_timer_read_counter(clksrc.io_base, 1);
> --
> --	update_sched_clock(&cd, cyc, (u32)~0);
> --}
> --
> --unsigned long long notrace sched_clock(void)
> --{
> --	u32 cyc = 0;
> --
> --	if (clksrc.reserved)
> --		cyc = __omap_dm_timer_read_counter(clksrc.io_base, 1);
> --
> --	return cyc_to_sched_clock(&cd, cyc, (u32)~0);
> --}
> --
> --/* Setup free-running counter for clocksource */
> --static void __init omap2_gp_clocksource_init(int gptimer_id,
> --						const char *fck_source)
> --{
> --	int res;
> --
> --	res = omap_dm_timer_init_one(&clksrc, gptimer_id, fck_source);
> --	BUG_ON(res);
> --
> --	pr_info("OMAP clocksource: GPTIMER%d at %lu Hz\n",
> --		gptimer_id, clksrc.rate);
> --
> --	__omap_dm_timer_load_start(clksrc.io_base, OMAP_TIMER_CTRL_ST,
> 0, 1);
> --	init_sched_clock(&cd, dmtimer_update_sched_clock, 32, clksrc.rate);
> --
> --	if (clocksource_register_hz(&clocksource_gpt, clksrc.rate))
> --		pr_err("Could not register clocksource %s\n",
> --			clocksource_gpt.name);
> --}
> --#endif
> --
> --#define OMAP_SYS_TIMER_INIT(name, clkev_nr, clkev_src,
> 	\
> --				clksrc_nr, clksrc_src)			\
> --static void __init omap##name##_timer_init(void)			\
> --{									\
> --	omap2_gp_clockevent_init((clkev_nr), clkev_src);		\
> --	omap2_gp_clocksource_init((clksrc_nr), clksrc_src);		\
> --}
> --
> --#define OMAP_SYS_TIMER(name)
> 	\
> --struct sys_timer omap##name##_timer = {
> 	\
> --	.init	= omap##name##_timer_init,				\
> --};
> --
> --#ifdef CONFIG_ARCH_OMAP2
> --OMAP_SYS_TIMER_INIT(2, 1, OMAP2_CLKEV_SOURCE, 2,
> OMAP2_MPU_SOURCE)
> --OMAP_SYS_TIMER(2)
> --#endif
> --
> --#ifdef CONFIG_ARCH_OMAP3
> --OMAP_SYS_TIMER_INIT(3, 1, OMAP3_CLKEV_SOURCE, 2,
> OMAP3_MPU_SOURCE)
> --OMAP_SYS_TIMER(3)
> --OMAP_SYS_TIMER_INIT(3_secure, OMAP3_SECURE_TIMER,
> OMAP3_CLKEV_SOURCE,
> --			2, OMAP3_MPU_SOURCE)
> --OMAP_SYS_TIMER(3_secure)
> --#endif
> --
> --#ifdef CONFIG_ARCH_OMAP4
> --static void __init omap4_timer_init(void)
> --{
> --#ifdef CONFIG_LOCAL_TIMERS
> --	twd_base = ioremap(OMAP44XX_LOCAL_TWD_BASE, SZ_256);
> --	BUG_ON(!twd_base);
> --#endif
> --	omap2_gp_clockevent_init(1, OMAP4_CLKEV_SOURCE);
> --	omap2_gp_clocksource_init(2, OMAP4_MPU_SOURCE);
> --}
> --OMAP_SYS_TIMER(4)
> --#endif
> -diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
> -new file mode 100644
> -index 0000000..e964072
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/timer.c
> -@@ -0,0 +1,342 @@
> -+/*
> -+ * linux/arch/arm/mach-omap2/timer.c
> -+ *
> -+ * OMAP2 GP timer support.
> -+ *
> -+ * Copyright (C) 2009 Nokia Corporation
> -+ *
> -+ * Update to use new clocksource/clockevent layers
> -+ * Author: Kevin Hilman, MontaVista Software, Inc. <source at mvista.com>
> -+ * Copyright (C) 2007 MontaVista Software, Inc.
> -+ *
> -+ * Original driver:
> -+ * Copyright (C) 2005 Nokia Corporation
> -+ * Author: Paul Mundt <paul.mundt at nokia.com>
> -+ *         Juha Yrjölä <juha.yrjola at nokia.com>
> -+ * OMAP Dual-mode timer framework support by Timo Teras
> -+ *
> -+ * Some parts based off of TI's 24xx code:
> -+ *
> -+ * Copyright (C) 2004-2009 Texas Instruments, Inc.
> -+ *
> -+ * Roughly modelled after the OMAP1 MPU timer code.
> -+ * Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar at ti.com>
> -+ *
> -+ * This file is subject to the terms and conditions of the GNU General Public
> -+ * License. See the file "COPYING" in the main directory of this archive
> -+ * for more details.
> -+ */
> -+#include <linux/init.h>
> -+#include <linux/time.h>
> -+#include <linux/interrupt.h>
> -+#include <linux/err.h>
> -+#include <linux/clk.h>
> -+#include <linux/delay.h>
> -+#include <linux/irq.h>
> -+#include <linux/clocksource.h>
> -+#include <linux/clockchips.h>
> -+
> -+#include <asm/mach/time.h>
> -+#include <plat/dmtimer.h>
> -+#include <asm/localtimer.h>
> -+#include <asm/sched_clock.h>
> -+#include <plat/common.h>
> -+#include <plat/omap_hwmod.h>
> -+
> -+/* Parent clocks, eventually these will come from the clock framework */
> -+
> -+#define OMAP2_MPU_SOURCE	"sys_ck"
> -+#define OMAP3_MPU_SOURCE	OMAP2_MPU_SOURCE
> -+#define OMAP4_MPU_SOURCE	"sys_clkin_ck"
> -+#define OMAP2_32K_SOURCE	"func_32k_ck"
> -+#define OMAP3_32K_SOURCE	"omap_32k_fck"
> -+#define OMAP4_32K_SOURCE	"sys_32k_ck"
> -+
> -+#ifdef CONFIG_OMAP_32K_TIMER
> -+#define OMAP2_CLKEV_SOURCE	OMAP2_32K_SOURCE
> -+#define OMAP3_CLKEV_SOURCE	OMAP3_32K_SOURCE
> -+#define OMAP4_CLKEV_SOURCE	OMAP4_32K_SOURCE
> -+#define OMAP3_SECURE_TIMER	12
> -+#else
> -+#define OMAP2_CLKEV_SOURCE	OMAP2_MPU_SOURCE
> -+#define OMAP3_CLKEV_SOURCE	OMAP3_MPU_SOURCE
> -+#define OMAP4_CLKEV_SOURCE	OMAP4_MPU_SOURCE
> -+#define OMAP3_SECURE_TIMER	1
> -+#endif
> -+
> -+/* MAX_GPTIMER_ID: number of GPTIMERs on the chip */
> -+#define MAX_GPTIMER_ID		12
> -+
> -+u32 sys_timer_reserved;
> -+
> -+/* Clockevent code */
> -+
> -+static struct omap_dm_timer clkev;
> -+static struct clock_event_device clockevent_gpt;
> -+
> -+static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id)
> -+{
> -+	struct clock_event_device *evt = &clockevent_gpt;
> -+
> -+	__omap_dm_timer_write_status(clkev.io_base,
> OMAP_TIMER_INT_OVERFLOW);
> -+
> -+	evt->event_handler(evt);
> -+	return IRQ_HANDLED;
> -+}
> -+
> -+static struct irqaction omap2_gp_timer_irq = {
> -+	.name		= "gp timer",
> -+	.flags		= IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
> -+	.handler	= omap2_gp_timer_interrupt,
> -+};
> -+
> -+static int omap2_gp_timer_set_next_event(unsigned long cycles,
> -+					 struct clock_event_device *evt)
> -+{
> -+	__omap_dm_timer_load_start(clkev.io_base, OMAP_TIMER_CTRL_ST,
> -+						0xffffffff - cycles, 1);
> -+
> -+	return 0;
> -+}
> -+
> -+static void omap2_gp_timer_set_mode(enum clock_event_mode mode,
> -+				    struct clock_event_device *evt)
> -+{
> -+	u32 period;
> -+
> -+	__omap_dm_timer_stop(clkev.io_base, 1, clkev.rate);
> -+
> -+	switch (mode) {
> -+	case CLOCK_EVT_MODE_PERIODIC:
> -+		period = clkev.rate / HZ;
> -+		period -= 1;
> -+		/* Looks like we need to first set the load value separately */
> -+		__omap_dm_timer_write(clkev.io_base,
> OMAP_TIMER_LOAD_REG,
> -+					0xffffffff - period, 1);
> -+		__omap_dm_timer_load_start(clkev.io_base,
> -+					OMAP_TIMER_CTRL_AR |
> OMAP_TIMER_CTRL_ST,
> -+						0xffffffff - period, 1);
> -+		break;
> -+	case CLOCK_EVT_MODE_ONESHOT:
> -+		break;
> -+	case CLOCK_EVT_MODE_UNUSED:
> -+	case CLOCK_EVT_MODE_SHUTDOWN:
> -+	case CLOCK_EVT_MODE_RESUME:
> -+		break;
> -+	}
> -+}
> -+
> -+static struct clock_event_device clockevent_gpt = {
> -+	.name		= "gp timer",
> -+	.features       = CLOCK_EVT_FEAT_PERIODIC |
> CLOCK_EVT_FEAT_ONESHOT,
> -+	.shift		= 32,
> -+	.set_next_event	= omap2_gp_timer_set_next_event,
> -+	.set_mode	= omap2_gp_timer_set_mode,
> -+};
> -+
> -+static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
> -+						int gptimer_id,
> -+						const char *fck_source)
> -+{
> -+	char name[10]; /* 10 = sizeof("gptXX_Xck0") */
> -+	struct omap_hwmod *oh;
> -+	size_t size;
> -+	int res = 0;
> -+
> -+	sprintf(name, "timer%d", gptimer_id);
> -+	omap_hwmod_setup_one(name);
> -+	oh = omap_hwmod_lookup(name);
> -+	if (!oh)
> -+		return -ENODEV;
> -+
> -+	timer->irq = oh->mpu_irqs[0].irq;
> -+	timer->phys_base = oh->slaves[0]->addr->pa_start;
> -+	size = oh->slaves[0]->addr->pa_end - timer->phys_base;
> -+
> -+	/* Static mapping, never released */
> -+	timer->io_base = ioremap(timer->phys_base, size);
> -+	if (!timer->io_base)
> -+		return -ENXIO;
> -+
> -+	/* After the dmtimer is using hwmod these clocks won't be needed */
> -+	sprintf(name, "gpt%d_fck", gptimer_id);
> -+	timer->fclk = clk_get(NULL, name);
> -+	if (IS_ERR(timer->fclk))
> -+		return -ENODEV;
> -+
> -+	sprintf(name, "gpt%d_ick", gptimer_id);
> -+	timer->iclk = clk_get(NULL, name);
> -+	if (IS_ERR(timer->iclk)) {
> -+		clk_put(timer->fclk);
> -+		return -ENODEV;
> -+	}
> -+
> -+	omap_hwmod_enable(oh);
> -+
> -+	sys_timer_reserved |= (1 << (gptimer_id - 1));
> -+
> -+	if (gptimer_id != 12) {
> -+		struct clk *src;
> -+
> -+		src = clk_get(NULL, fck_source);
> -+		if (IS_ERR(src)) {
> -+			res = -EINVAL;
> -+		} else {
> -+			res = __omap_dm_timer_set_source(timer->fclk, src);
> -+			if (IS_ERR_VALUE(res))
> -+				pr_warning("%s: timer%i cannot set
> source\n",
> -+						__func__, gptimer_id);
> -+			clk_put(src);
> -+		}
> -+	}
> -+	__omap_dm_timer_reset(timer->io_base, 1, 1);
> -+	timer->posted = 1;
> -+
> -+	timer->rate = clk_get_rate(timer->fclk);
> -+
> -+	timer->reserved = 1;
> -+
> -+	return res;
> -+}
> -+
> -+static void __init omap2_gp_clockevent_init(int gptimer_id,
> -+						const char *fck_source)
> -+{
> -+	int res;
> -+
> -+	res = omap_dm_timer_init_one(&clkev, gptimer_id, fck_source);
> -+	BUG_ON(res);
> -+
> -+	omap2_gp_timer_irq.dev_id = (void *)&clkev;
> -+	setup_irq(clkev.irq, &omap2_gp_timer_irq);
> -+
> -+	__omap_dm_timer_int_enable(clkev.io_base,
> OMAP_TIMER_INT_OVERFLOW);
> -+
> -+	clockevent_gpt.mult = div_sc(clkev.rate, NSEC_PER_SEC,
> -+				     clockevent_gpt.shift);
> -+	clockevent_gpt.max_delta_ns =
> -+		clockevent_delta2ns(0xffffffff, &clockevent_gpt);
> -+	clockevent_gpt.min_delta_ns =
> -+		clockevent_delta2ns(3, &clockevent_gpt);
> -+		/* Timer internal resynch latency. */
> -+
> -+	clockevent_gpt.cpumask = cpumask_of(0);
> -+	clockevents_register_device(&clockevent_gpt);
> -+
> -+	pr_info("OMAP clockevent source: GPTIMER%d at %lu Hz\n",
> -+		gptimer_id, clkev.rate);
> -+}
> -+
> -+/* Clocksource code */
> -+
> -+#ifdef CONFIG_OMAP_32K_TIMER
> -+/*
> -+ * When 32k-timer is enabled, don't use GPTimer for clocksource
> -+ * instead, just leave default clocksource which uses the 32k
> -+ * sync counter.  See clocksource setup in plat-omap/counter_32k.c
> -+ */
> -+
> -+static void __init omap2_gp_clocksource_init(int unused, const char
> *dummy)
> -+{
> -+	omap_init_clocksource_32k();
> -+}
> -+
> -+#else
> -+
> -+static struct omap_dm_timer clksrc;
> -+
> -+/*
> -+ * clocksource
> -+ */
> -+static DEFINE_CLOCK_DATA(cd);
> -+static cycle_t clocksource_read_cycles(struct clocksource *cs)
> -+{
> -+	return (cycle_t)__omap_dm_timer_read_counter(clksrc.io_base, 1);
> -+}
> -+
> -+static struct clocksource clocksource_gpt = {
> -+	.name		= "gp timer",
> -+	.rating		= 300,
> -+	.read		= clocksource_read_cycles,
> -+	.mask		= CLOCKSOURCE_MASK(32),
> -+	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
> -+};
> -+
> -+static void notrace dmtimer_update_sched_clock(void)
> -+{
> -+	u32 cyc;
> -+
> -+	cyc = __omap_dm_timer_read_counter(clksrc.io_base, 1);
> -+
> -+	update_sched_clock(&cd, cyc, (u32)~0);
> -+}
> -+
> -+unsigned long long notrace sched_clock(void)
> -+{
> -+	u32 cyc = 0;
> -+
> -+	if (clksrc.reserved)
> -+		cyc = __omap_dm_timer_read_counter(clksrc.io_base, 1);
> -+
> -+	return cyc_to_sched_clock(&cd, cyc, (u32)~0);
> -+}
> -+
> -+/* Setup free-running counter for clocksource */
> -+static void __init omap2_gp_clocksource_init(int gptimer_id,
> -+						const char *fck_source)
> -+{
> -+	int res;
> -+
> -+	res = omap_dm_timer_init_one(&clksrc, gptimer_id, fck_source);
> -+	BUG_ON(res);
> -+
> -+	pr_info("OMAP clocksource: GPTIMER%d at %lu Hz\n",
> -+		gptimer_id, clksrc.rate);
> -+
> -+	__omap_dm_timer_load_start(clksrc.io_base, OMAP_TIMER_CTRL_ST,
> 0, 1);
> -+	init_sched_clock(&cd, dmtimer_update_sched_clock, 32, clksrc.rate);
> -+
> -+	if (clocksource_register_hz(&clocksource_gpt, clksrc.rate))
> -+		pr_err("Could not register clocksource %s\n",
> -+			clocksource_gpt.name);
> -+}
> -+#endif
> -+
> -+#define OMAP_SYS_TIMER_INIT(name, clkev_nr, clkev_src,
> 	\
> -+				clksrc_nr, clksrc_src)			\
> -+static void __init omap##name##_timer_init(void)			\
> -+{									\
> -+	omap2_gp_clockevent_init((clkev_nr), clkev_src);		\
> -+	omap2_gp_clocksource_init((clksrc_nr), clksrc_src);		\
> -+}
> -+
> -+#define OMAP_SYS_TIMER(name)
> 	\
> -+struct sys_timer omap##name##_timer = {
> 	\
> -+	.init	= omap##name##_timer_init,				\
> -+};
> -+
> -+#ifdef CONFIG_ARCH_OMAP2
> -+OMAP_SYS_TIMER_INIT(2, 1, OMAP2_CLKEV_SOURCE, 2,
> OMAP2_MPU_SOURCE)
> -+OMAP_SYS_TIMER(2)
> -+#endif
> -+
> -+#ifdef CONFIG_ARCH_OMAP3
> -+OMAP_SYS_TIMER_INIT(3, 1, OMAP3_CLKEV_SOURCE, 2,
> OMAP3_MPU_SOURCE)
> -+OMAP_SYS_TIMER(3)
> -+OMAP_SYS_TIMER_INIT(3_secure, OMAP3_SECURE_TIMER,
> OMAP3_CLKEV_SOURCE,
> -+			2, OMAP3_MPU_SOURCE)
> -+OMAP_SYS_TIMER(3_secure)
> -+#endif
> -+
> -+#ifdef CONFIG_ARCH_OMAP4
> -+static void __init omap4_timer_init(void)
> -+{
> -+#ifdef CONFIG_LOCAL_TIMERS
> -+	twd_base = ioremap(OMAP44XX_LOCAL_TWD_BASE, SZ_256);
> -+	BUG_ON(!twd_base);
> -+#endif
> -+	omap2_gp_clockevent_init(1, OMAP4_CLKEV_SOURCE);
> -+	omap2_gp_clocksource_init(2, OMAP4_MPU_SOURCE);
> -+}
> -+OMAP_SYS_TIMER(4)
> -+#endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0017-omap-cleanup-
> NAND-platform-data.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0017-omap-cleanup-NAND-platform-data.patch
> deleted file mode 100644
> index 792d76a..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0017-omap-cleanup-NAND-
> platform-data.patch
> +++ /dev/null
> @@ -1,165 +0,0 @@
> -From a72eaf768c2f553f72e7afc0b1c52661b2913022 Mon Sep 17 00:00:00
> 2001
> -From: Grazvydas Ignotas <notasas at gmail.com>
> -Date: Fri, 3 Jun 2011 19:56:33 +0000
> -Subject: [PATCH 017/149] omap: cleanup NAND platform data
> -
> -omap_nand_platform_data fields 'options', 'gpio_irq', 'nand_setup' and
> -'dma_channel' are never referenced by the NAND driver, yet various
> -board files are initializing those fields. This is both incorrect and
> -confusing, so remove them. This allows to get rid of a global
> -variable in gpmc-nand.c.
> -
> -This also corrects an issue where some boards are trying to pass NAND
> -16bit flag through .options, but the driver is using .devsize instead
> -and ignoring .options.
> -
> -Finally, .dev_ready is treated as a flag by the driver, so make it bool
> -instead of a function pointer.
> -
> -Signed-off-by: Grazvydas Ignotas <notasas at gmail.com>
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/mach-omap2/board-cm-t35.c         |    2 --
> - arch/arm/mach-omap2/board-cm-t3517.c       |    1 -
> - arch/arm/mach-omap2/board-flash.c          |    4 ----
> - arch/arm/mach-omap2/common-board-devices.c |    6 ++----
> - arch/arm/mach-omap2/gpmc-nand.c            |   10 +++-------
> - arch/arm/plat-omap/include/plat/nand.h     |    6 +-----
> - 6 files changed, 6 insertions(+), 23 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-
> omap2/board-cm-t35.c
> -index 1a18d3b..d76dca7 100644
> ---- a/arch/arm/mach-omap2/board-cm-t35.c
> -+++ b/arch/arm/mach-omap2/board-cm-t35.c
> -@@ -162,9 +162,7 @@ static struct mtd_partition cm_t35_nand_partitions[]
> = {
> - static struct omap_nand_platform_data cm_t35_nand_data = {
> - 	.parts			= cm_t35_nand_partitions,
> - 	.nr_parts		= ARRAY_SIZE(cm_t35_nand_partitions),
> --	.dma_channel		= -1,	/* disable DMA in OMAP NAND driver
> */
> - 	.cs			= 0,
> --
> - };
> -
> - static void __init cm_t35_init_nand(void)
> -diff --git a/arch/arm/mach-omap2/board-cm-t3517.c b/arch/arm/mach-
> omap2/board-cm-t3517.c
> -index aa67240..05c72f4 100644
> ---- a/arch/arm/mach-omap2/board-cm-t3517.c
> -+++ b/arch/arm/mach-omap2/board-cm-t3517.c
> -@@ -236,7 +236,6 @@ static struct mtd_partition
> cm_t3517_nand_partitions[] = {
> - static struct omap_nand_platform_data cm_t3517_nand_data = {
> - 	.parts			= cm_t3517_nand_partitions,
> - 	.nr_parts		= ARRAY_SIZE(cm_t3517_nand_partitions),
> --	.dma_channel		= -1,	/* disable DMA in OMAP NAND driver
> */
> - 	.cs			= 0,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/board-flash.c b/arch/arm/mach-
> omap2/board-flash.c
> -index 729892f..aa1b0cb 100644
> ---- a/arch/arm/mach-omap2/board-flash.c
> -+++ b/arch/arm/mach-omap2/board-flash.c
> -@@ -132,11 +132,7 @@ static struct gpmc_timings nand_timings = {
> - };
> -
> - static struct omap_nand_platform_data board_nand_data = {
> --	.nand_setup	= NULL,
> - 	.gpmc_t		= &nand_timings,
> --	.dma_channel	= -1,		/* disable DMA in OMAP NAND driver
> */
> --	.dev_ready	= NULL,
> --	.devsize	= 0,	/* '0' for 8-bit, '1' for 16-bit device */
> - };
> -
> - void
> -diff --git a/arch/arm/mach-omap2/common-board-devices.c
> b/arch/arm/mach-omap2/common-board-devices.c
> -index 94ccf46..0043fa8 100644
> ---- a/arch/arm/mach-omap2/common-board-devices.c
> -+++ b/arch/arm/mach-omap2/common-board-devices.c
> -@@ -115,9 +115,7 @@ void __init omap_ads7846_init(int bus_num, int
> gpio_pendown, int gpio_debounce,
> - #endif
> -
> - #if defined(CONFIG_MTD_NAND_OMAP2) ||
> defined(CONFIG_MTD_NAND_OMAP2_MODULE)
> --static struct omap_nand_platform_data nand_data = {
> --	.dma_channel	= -1,		/* disable DMA in OMAP NAND driver
> */
> --};
> -+static struct omap_nand_platform_data nand_data;
> -
> - void __init omap_nand_flash_init(int options, struct mtd_partition *parts,
> - 				 int nr_parts)
> -@@ -148,7 +146,7 @@ void __init omap_nand_flash_init(int options, struct
> mtd_partition *parts,
> - 		nand_data.cs = nandcs;
> - 		nand_data.parts = parts;
> - 		nand_data.nr_parts = nr_parts;
> --		nand_data.options = options;
> -+		nand_data.devsize = options;
> -
> - 		printk(KERN_INFO "Registering NAND on CS%d\n", nandcs);
> - 		if (gpmc_nand_init(&nand_data) < 0)
> -diff --git a/arch/arm/mach-omap2/gpmc-nand.c b/arch/arm/mach-
> omap2/gpmc-nand.c
> -index c1791d0..8ad210b 100644
> ---- a/arch/arm/mach-omap2/gpmc-nand.c
> -+++ b/arch/arm/mach-omap2/gpmc-nand.c
> -@@ -20,8 +20,6 @@
> - #include <plat/board.h>
> - #include <plat/gpmc.h>
> -
> --static struct omap_nand_platform_data *gpmc_nand_data;
> --
> - static struct resource gpmc_nand_resource = {
> - 	.flags		= IORESOURCE_MEM,
> - };
> -@@ -33,7 +31,7 @@ static struct platform_device gpmc_nand_device = {
> - 	.resource	= &gpmc_nand_resource,
> - };
> -
> --static int omap2_nand_gpmc_retime(void)
> -+static int omap2_nand_gpmc_retime(struct omap_nand_platform_data
> *gpmc_nand_data)
> - {
> - 	struct gpmc_timings t;
> - 	int err;
> -@@ -83,13 +81,11 @@ static int omap2_nand_gpmc_retime(void)
> - 	return 0;
> - }
> -
> --int __init gpmc_nand_init(struct omap_nand_platform_data *_nand_data)
> -+int __init gpmc_nand_init(struct omap_nand_platform_data
> *gpmc_nand_data)
> - {
> - 	int err	= 0;
> - 	struct device *dev = &gpmc_nand_device.dev;
> -
> --	gpmc_nand_data = _nand_data;
> --	gpmc_nand_data->nand_setup = omap2_nand_gpmc_retime;
> - 	gpmc_nand_device.dev.platform_data = gpmc_nand_data;
> -
> - 	err = gpmc_cs_request(gpmc_nand_data->cs, NAND_IO_SIZE,
> -@@ -100,7 +96,7 @@ int __init gpmc_nand_init(struct
> omap_nand_platform_data *_nand_data)
> - 	}
> -
> - 	 /* Set timings in GPMC */
> --	err = omap2_nand_gpmc_retime();
> -+	err = omap2_nand_gpmc_retime(gpmc_nand_data);
> - 	if (err < 0) {
> - 		dev_err(dev, "Unable to set gpmc timings: %d\n", err);
> - 		return err;
> -diff --git a/arch/arm/plat-omap/include/plat/nand.h b/arch/arm/plat-
> omap/include/plat/nand.h
> -index d86d1ec..67fc506 100644
> ---- a/arch/arm/plat-omap/include/plat/nand.h
> -+++ b/arch/arm/plat-omap/include/plat/nand.h
> -@@ -19,15 +19,11 @@ enum nand_io {
> - };
> -
> - struct omap_nand_platform_data {
> --	unsigned int		options;
> - 	int			cs;
> --	int			gpio_irq;
> - 	struct mtd_partition	*parts;
> - 	struct gpmc_timings	*gpmc_t;
> - 	int			nr_parts;
> --	int			(*nand_setup)(void);
> --	int			(*dev_ready)(struct
> omap_nand_platform_data *);
> --	int			dma_channel;
> -+	bool			dev_ready;
> - 	int			gpmc_irq;
> - 	enum nand_io		xfer_type;
> - 	unsigned long		phys_base;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0018-omap-board-
> omap3evm-Fix-compilation-error.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0018-omap-board-omap3evm-Fix-compilation-error.patch
> deleted file mode 100644
> index aa9cc6e..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0018-omap-board-
> omap3evm-Fix-compilation-error.patch
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -From 3e0e5636effabe150374f2a212974f1e954be5b2 Mon Sep 17 00:00:00
> 2001
> -From: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -Date: Tue, 28 Jun 2011 10:16:55 +0000
> -Subject: [PATCH 018/149] omap: board-omap3evm: Fix compilation error
> -
> -Fix compilation error introduced with
> 786b01a8c1db0c0decca55d660a2a3ebd7cfb26b
> -(cleanup regulator supply definitions in mach-omap2).
> -
> -Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -[tony at atomide.com: updated comments]
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/mach-omap2/board-omap3evm.c |    4 ++--
> - 1 files changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-
> omap2/board-omap3evm.c
> -index 6f957ed..57bce0f 100644
> ---- a/arch/arm/mach-omap2/board-omap3evm.c
> -+++ b/arch/arm/mach-omap2/board-omap3evm.c
> -@@ -510,7 +510,7 @@ static struct regulator_init_data omap3evm_vio = {
> - #define OMAP3EVM_WLAN_IRQ_GPIO		(149)
> -
> - static struct regulator_consumer_supply omap3evm_vmmc2_supply[] = {
> --	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1");
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1"),
> - };
> -
> - /* VMMC2 for driving the WL12xx module */
> -@@ -518,7 +518,7 @@ static struct regulator_init_data omap3evm_vmmc2 =
> {
> - 	.constraints = {
> - 		.valid_ops_mask	= REGULATOR_CHANGE_STATUS,
> - 	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(omap3evm_vmmc2_supply);,
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(omap3evm_vmmc2_supply),
> - 	.consumer_supplies	= omap3evm_vmmc2_supply,
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0019-omap-mcbsp-
> Drop-SPI-mode-support.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0019-omap-mcbsp-Drop-SPI-mode-support.patch
> deleted file mode 100644
> index b233473..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0019-omap-mcbsp-Drop-
> SPI-mode-support.patch
> +++ /dev/null
> @@ -1,311 +0,0 @@
> -From 20f244f6b795ee54f053eee5a5e0f9313a13e403 Mon Sep 17 00:00:00
> 2001
> -From: Jarkko Nikula <jhnikula at gmail.com>
> -Date: Tue, 14 Jun 2011 11:23:51 +0000
> -Subject: [PATCH 019/149] omap: mcbsp: Drop SPI mode support
> -
> -We haven't seen any use for the SPI API in McBSP driver over the years. More
> -over, Peter Ujfalusi <peter.ujfalusi at ti.com> noticed that SPI mode is not
> -even supported since OMAP2430 so it's very unlikely that we'll see any use
> -for it in the future either.
> -
> -Signed-off-by: Jarkko Nikula <jhnikula at gmail.com>
> -Acked-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/plat-omap/include/plat/mcbsp.h |   37 ------
> - arch/arm/plat-omap/mcbsp.c              |  214 -------------------------------
> - 2 files changed, 0 insertions(+), 251 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/include/plat/mcbsp.h b/arch/arm/plat-
> omap/include/plat/mcbsp.h
> -index f8f690a..3fc75a8 100644
> ---- a/arch/arm/plat-omap/include/plat/mcbsp.h
> -+++ b/arch/arm/plat-omap/include/plat/mcbsp.h
> -@@ -353,38 +353,6 @@ typedef enum {
> - 	OMAP_MCBSP_WORD_32,
> - } omap_mcbsp_word_length;
> -
> --typedef enum {
> --	OMAP_MCBSP_CLK_RISING = 0,
> --	OMAP_MCBSP_CLK_FALLING,
> --} omap_mcbsp_clk_polarity;
> --
> --typedef enum {
> --	OMAP_MCBSP_FS_ACTIVE_HIGH = 0,
> --	OMAP_MCBSP_FS_ACTIVE_LOW,
> --} omap_mcbsp_fs_polarity;
> --
> --typedef enum {
> --	OMAP_MCBSP_CLK_STP_MODE_NO_DELAY = 0,
> --	OMAP_MCBSP_CLK_STP_MODE_DELAY,
> --} omap_mcbsp_clk_stp_mode;
> --
> --
> --/******* SPI specific mode **********/
> --typedef enum {
> --	OMAP_MCBSP_SPI_MASTER = 0,
> --	OMAP_MCBSP_SPI_SLAVE,
> --} omap_mcbsp_spi_mode;
> --
> --struct omap_mcbsp_spi_cfg {
> --	omap_mcbsp_spi_mode		spi_mode;
> --	omap_mcbsp_clk_polarity		rx_clock_polarity;
> --	omap_mcbsp_clk_polarity		tx_clock_polarity;
> --	omap_mcbsp_fs_polarity		fsx_polarity;
> --	u8				clk_div;
> --	omap_mcbsp_clk_stp_mode		clk_stp_mode;
> --	omap_mcbsp_word_length		word_length;
> --};
> --
> - /* Platform specific configuration */
> - struct omap_mcbsp_ops {
> - 	void (*request)(unsigned int);
> -@@ -504,14 +472,9 @@ u32 omap_mcbsp_recv_word(unsigned int id);
> -
> - int omap_mcbsp_xmit_buffer(unsigned int id, dma_addr_t buffer, unsigned
> int length);
> - int omap_mcbsp_recv_buffer(unsigned int id, dma_addr_t buffer, unsigned
> int length);
> --int omap_mcbsp_spi_master_xmit_word_poll(unsigned int id, u32 word);
> --int omap_mcbsp_spi_master_recv_word_poll(unsigned int id, u32 * word);
> --
> -
> - /* McBSP functional clock source changing function */
> - extern int omap2_mcbsp_set_clks_src(u8 id, u8 fck_src_id);
> --/* SPI specific API */
> --void omap_mcbsp_set_spi_mode(unsigned int id, const struct
> omap_mcbsp_spi_cfg * spi_cfg);
> -
> - /* Polled read/write functions */
> - int omap_mcbsp_pollread(unsigned int id, u16 * buf);
> -diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
> -index 5587acf..1de2724 100644
> ---- a/arch/arm/plat-omap/mcbsp.c
> -+++ b/arch/arm/plat-omap/mcbsp.c
> -@@ -1175,147 +1175,6 @@ u32 omap_mcbsp_recv_word(unsigned int id)
> - }
> - EXPORT_SYMBOL(omap_mcbsp_recv_word);
> -
> --int omap_mcbsp_spi_master_xmit_word_poll(unsigned int id, u32 word)
> --{
> --	struct omap_mcbsp *mcbsp;
> --	omap_mcbsp_word_length tx_word_length;
> --	omap_mcbsp_word_length rx_word_length;
> --	u16 spcr2, spcr1, attempts = 0, word_lsb, word_msb = 0;
> --
> --	if (!omap_mcbsp_check_valid_id(id)) {
> --		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
> --		return -ENODEV;
> --	}
> --	mcbsp = id_to_mcbsp_ptr(id);
> --	tx_word_length = mcbsp->tx_word_length;
> --	rx_word_length = mcbsp->rx_word_length;
> --
> --	if (tx_word_length != rx_word_length)
> --		return -EINVAL;
> --
> --	/* First we wait for the transmitter to be ready */
> --	spcr2 = MCBSP_READ(mcbsp, SPCR2);
> --	while (!(spcr2 & XRDY)) {
> --		spcr2 = MCBSP_READ(mcbsp, SPCR2);
> --		if (attempts++ > 1000) {
> --			/* We must reset the transmitter */
> --			MCBSP_WRITE(mcbsp, SPCR2,
> --				    MCBSP_READ_CACHE(mcbsp, SPCR2) &
> (~XRST));
> --			udelay(10);
> --			MCBSP_WRITE(mcbsp, SPCR2,
> --				    MCBSP_READ_CACHE(mcbsp, SPCR2) |
> XRST);
> --			udelay(10);
> --			dev_err(mcbsp->dev, "McBSP%d transmitter not "
> --				"ready\n", mcbsp->id);
> --			return -EAGAIN;
> --		}
> --	}
> --
> --	/* Now we can push the data */
> --	if (tx_word_length > OMAP_MCBSP_WORD_16)
> --		MCBSP_WRITE(mcbsp, DXR2, word >> 16);
> --	MCBSP_WRITE(mcbsp, DXR1, word & 0xffff);
> --
> --	/* We wait for the receiver to be ready */
> --	spcr1 = MCBSP_READ(mcbsp, SPCR1);
> --	while (!(spcr1 & RRDY)) {
> --		spcr1 = MCBSP_READ(mcbsp, SPCR1);
> --		if (attempts++ > 1000) {
> --			/* We must reset the receiver */
> --			MCBSP_WRITE(mcbsp, SPCR1,
> --				    MCBSP_READ_CACHE(mcbsp, SPCR1) &
> (~RRST));
> --			udelay(10);
> --			MCBSP_WRITE(mcbsp, SPCR1,
> --				    MCBSP_READ_CACHE(mcbsp, SPCR1) |
> RRST);
> --			udelay(10);
> --			dev_err(mcbsp->dev, "McBSP%d receiver not "
> --				"ready\n", mcbsp->id);
> --			return -EAGAIN;
> --		}
> --	}
> --
> --	/* Receiver is ready, let's read the dummy data */
> --	if (rx_word_length > OMAP_MCBSP_WORD_16)
> --		word_msb = MCBSP_READ(mcbsp, DRR2);
> --	word_lsb = MCBSP_READ(mcbsp, DRR1);
> --
> --	return 0;
> --}
> --EXPORT_SYMBOL(omap_mcbsp_spi_master_xmit_word_poll);
> --
> --int omap_mcbsp_spi_master_recv_word_poll(unsigned int id, u32 *word)
> --{
> --	struct omap_mcbsp *mcbsp;
> --	u32 clock_word = 0;
> --	omap_mcbsp_word_length tx_word_length;
> --	omap_mcbsp_word_length rx_word_length;
> --	u16 spcr2, spcr1, attempts = 0, word_lsb, word_msb = 0;
> --
> --	if (!omap_mcbsp_check_valid_id(id)) {
> --		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
> --		return -ENODEV;
> --	}
> --
> --	mcbsp = id_to_mcbsp_ptr(id);
> --
> --	tx_word_length = mcbsp->tx_word_length;
> --	rx_word_length = mcbsp->rx_word_length;
> --
> --	if (tx_word_length != rx_word_length)
> --		return -EINVAL;
> --
> --	/* First we wait for the transmitter to be ready */
> --	spcr2 = MCBSP_READ(mcbsp, SPCR2);
> --	while (!(spcr2 & XRDY)) {
> --		spcr2 = MCBSP_READ(mcbsp, SPCR2);
> --		if (attempts++ > 1000) {
> --			/* We must reset the transmitter */
> --			MCBSP_WRITE(mcbsp, SPCR2,
> --				    MCBSP_READ_CACHE(mcbsp, SPCR2) &
> (~XRST));
> --			udelay(10);
> --			MCBSP_WRITE(mcbsp, SPCR2,
> --				    MCBSP_READ_CACHE(mcbsp, SPCR2) |
> XRST);
> --			udelay(10);
> --			dev_err(mcbsp->dev, "McBSP%d transmitter not "
> --				"ready\n", mcbsp->id);
> --			return -EAGAIN;
> --		}
> --	}
> --
> --	/* We first need to enable the bus clock */
> --	if (tx_word_length > OMAP_MCBSP_WORD_16)
> --		MCBSP_WRITE(mcbsp, DXR2, clock_word >> 16);
> --	MCBSP_WRITE(mcbsp, DXR1, clock_word & 0xffff);
> --
> --	/* We wait for the receiver to be ready */
> --	spcr1 = MCBSP_READ(mcbsp, SPCR1);
> --	while (!(spcr1 & RRDY)) {
> --		spcr1 = MCBSP_READ(mcbsp, SPCR1);
> --		if (attempts++ > 1000) {
> --			/* We must reset the receiver */
> --			MCBSP_WRITE(mcbsp, SPCR1,
> --				    MCBSP_READ_CACHE(mcbsp, SPCR1) &
> (~RRST));
> --			udelay(10);
> --			MCBSP_WRITE(mcbsp, SPCR1,
> --				    MCBSP_READ_CACHE(mcbsp, SPCR1) |
> RRST);
> --			udelay(10);
> --			dev_err(mcbsp->dev, "McBSP%d receiver not "
> --				"ready\n", mcbsp->id);
> --			return -EAGAIN;
> --		}
> --	}
> --
> --	/* Receiver is ready, there is something for us */
> --	if (rx_word_length > OMAP_MCBSP_WORD_16)
> --		word_msb = MCBSP_READ(mcbsp, DRR2);
> --	word_lsb = MCBSP_READ(mcbsp, DRR1);
> --
> --	word[0] = (word_lsb | (word_msb << 16));
> --
> --	return 0;
> --}
> --EXPORT_SYMBOL(omap_mcbsp_spi_master_recv_word_poll);
> --
> - /*
> -  * Simple DMA based buffer rx/tx routines.
> -  * Nothing fancy, just a single buffer tx/rx through DMA.
> -@@ -1449,79 +1308,6 @@ int omap_mcbsp_recv_buffer(unsigned int id,
> dma_addr_t buffer,
> - }
> - EXPORT_SYMBOL(omap_mcbsp_recv_buffer);
> -
> --/*
> -- * SPI wrapper.
> -- * Since SPI setup is much simpler than the generic McBSP one,
> -- * this wrapper just need an omap_mcbsp_spi_cfg structure as an input.
> -- * Once this is done, you can call omap_mcbsp_start().
> -- */
> --void omap_mcbsp_set_spi_mode(unsigned int id,
> --				const struct omap_mcbsp_spi_cfg *spi_cfg)
> --{
> --	struct omap_mcbsp *mcbsp;
> --	struct omap_mcbsp_reg_cfg mcbsp_cfg;
> --
> --	if (!omap_mcbsp_check_valid_id(id)) {
> --		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
> --		return;
> --	}
> --	mcbsp = id_to_mcbsp_ptr(id);
> --
> --	memset(&mcbsp_cfg, 0, sizeof(struct omap_mcbsp_reg_cfg));
> --
> --	/* SPI has only one frame */
> --	mcbsp_cfg.rcr1 |= (RWDLEN1(spi_cfg->word_length) | RFRLEN1(0));
> --	mcbsp_cfg.xcr1 |= (XWDLEN1(spi_cfg->word_length) | XFRLEN1(0));
> --
> --	/* Clock stop mode */
> --	if (spi_cfg->clk_stp_mode ==
> OMAP_MCBSP_CLK_STP_MODE_NO_DELAY)
> --		mcbsp_cfg.spcr1 |= (1 << 12);
> --	else
> --		mcbsp_cfg.spcr1 |= (3 << 11);
> --
> --	/* Set clock parities */
> --	if (spi_cfg->rx_clock_polarity == OMAP_MCBSP_CLK_RISING)
> --		mcbsp_cfg.pcr0 |= CLKRP;
> --	else
> --		mcbsp_cfg.pcr0 &= ~CLKRP;
> --
> --	if (spi_cfg->tx_clock_polarity == OMAP_MCBSP_CLK_RISING)
> --		mcbsp_cfg.pcr0 &= ~CLKXP;
> --	else
> --		mcbsp_cfg.pcr0 |= CLKXP;
> --
> --	/* Set SCLKME to 0 and CLKSM to 1 */
> --	mcbsp_cfg.pcr0 &= ~SCLKME;
> --	mcbsp_cfg.srgr2 |= CLKSM;
> --
> --	/* Set FSXP */
> --	if (spi_cfg->fsx_polarity == OMAP_MCBSP_FS_ACTIVE_HIGH)
> --		mcbsp_cfg.pcr0 &= ~FSXP;
> --	else
> --		mcbsp_cfg.pcr0 |= FSXP;
> --
> --	if (spi_cfg->spi_mode == OMAP_MCBSP_SPI_MASTER) {
> --		mcbsp_cfg.pcr0 |= CLKXM;
> --		mcbsp_cfg.srgr1 |= CLKGDV(spi_cfg->clk_div - 1);
> --		mcbsp_cfg.pcr0 |= FSXM;
> --		mcbsp_cfg.srgr2 &= ~FSGM;
> --		mcbsp_cfg.xcr2 |= XDATDLY(1);
> --		mcbsp_cfg.rcr2 |= RDATDLY(1);
> --	} else {
> --		mcbsp_cfg.pcr0 &= ~CLKXM;
> --		mcbsp_cfg.srgr1 |= CLKGDV(1);
> --		mcbsp_cfg.pcr0 &= ~FSXM;
> --		mcbsp_cfg.xcr2 &= ~XDATDLY(3);
> --		mcbsp_cfg.rcr2 &= ~RDATDLY(3);
> --	}
> --
> --	mcbsp_cfg.xcr2 &= ~XPHASE;
> --	mcbsp_cfg.rcr2 &= ~RPHASE;
> --
> --	omap_mcbsp_config(id, &mcbsp_cfg);
> --}
> --EXPORT_SYMBOL(omap_mcbsp_set_spi_mode);
> --
> - #ifdef CONFIG_ARCH_OMAP3
> - #define max_thres(m)			(mcbsp->pdata->buffer_size)
> - #define valid_threshold(m, val)		((val) <= max_thres(m))
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0020-omap-mcbsp-
> Drop-in-driver-transfer-support.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0020-omap-mcbsp-Drop-in-driver-transfer-support.patch
> deleted file mode 100644
> index 510a22d..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0020-omap-mcbsp-Drop-
> in-driver-transfer-support.patch
> +++ /dev/null
> @@ -1,548 +0,0 @@
> -From 8eea6f162c7a82d44c8e7c444cadfa43c4d586e5 Mon Sep 17 00:00:00
> 2001
> -From: Jarkko Nikula <jhnikula at gmail.com>
> -Date: Tue, 14 Jun 2011 11:23:52 +0000
> -Subject: [PATCH 020/149] omap: mcbsp: Drop in-driver transfer support
> -
> -We haven't seen either use for in-driver transfer API in McBSP driver
> -over the years so it looks they can be removed too.
> -
> -Signed-off-by: Jarkko Nikula <jhnikula at gmail.com>
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/plat-omap/include/plat/mcbsp.h |   25 --
> - arch/arm/plat-omap/mcbsp.c              |  382 ++-----------------------------
> - 2 files changed, 19 insertions(+), 388 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/include/plat/mcbsp.h b/arch/arm/plat-
> omap/include/plat/mcbsp.h
> -index 3fc75a8..6c53508 100644
> ---- a/arch/arm/plat-omap/include/plat/mcbsp.h
> -+++ b/arch/arm/plat-omap/include/plat/mcbsp.h
> -@@ -24,7 +24,6 @@
> - #ifndef __ASM_ARCH_OMAP_MCBSP_H
> - #define __ASM_ARCH_OMAP_MCBSP_H
> -
> --#include <linux/completion.h>
> - #include <linux/spinlock.h>
> -
> - #include <mach/hardware.h>
> -@@ -340,10 +339,6 @@ typedef enum {
> - 	OMAP_MCBSP5
> - } omap_mcbsp_id;
> -
> --typedef int __bitwise omap_mcbsp_io_type_t;
> --#define OMAP_MCBSP_IRQ_IO ((__force omap_mcbsp_io_type_t) 1)
> --#define OMAP_MCBSP_POLL_IO ((__force omap_mcbsp_io_type_t) 2)
> --
> - typedef enum {
> - 	OMAP_MCBSP_WORD_8 = 0,
> - 	OMAP_MCBSP_WORD_12,
> -@@ -393,22 +388,12 @@ struct omap_mcbsp {
> - 	omap_mcbsp_word_length rx_word_length;
> - 	omap_mcbsp_word_length tx_word_length;
> -
> --	omap_mcbsp_io_type_t io_type; /* IRQ or poll */
> --	/* IRQ based TX/RX */
> - 	int rx_irq;
> - 	int tx_irq;
> -
> - 	/* DMA stuff */
> - 	u8 dma_rx_sync;
> --	short dma_rx_lch;
> - 	u8 dma_tx_sync;
> --	short dma_tx_lch;
> --
> --	/* Completion queues */
> --	struct completion tx_irq_completion;
> --	struct completion rx_irq_completion;
> --	struct completion tx_dma_completion;
> --	struct completion rx_dma_completion;
> -
> - 	/* Protect the field .free, while checking if the mcbsp is in use */
> - 	spinlock_t lock;
> -@@ -467,20 +452,10 @@ int omap_mcbsp_request(unsigned int id);
> - void omap_mcbsp_free(unsigned int id);
> - void omap_mcbsp_start(unsigned int id, int tx, int rx);
> - void omap_mcbsp_stop(unsigned int id, int tx, int rx);
> --void omap_mcbsp_xmit_word(unsigned int id, u32 word);
> --u32 omap_mcbsp_recv_word(unsigned int id);
> --
> --int omap_mcbsp_xmit_buffer(unsigned int id, dma_addr_t buffer, unsigned
> int length);
> --int omap_mcbsp_recv_buffer(unsigned int id, dma_addr_t buffer, unsigned
> int length);
> -
> - /* McBSP functional clock source changing function */
> - extern int omap2_mcbsp_set_clks_src(u8 id, u8 fck_src_id);
> -
> --/* Polled read/write functions */
> --int omap_mcbsp_pollread(unsigned int id, u16 * buf);
> --int omap_mcbsp_pollwrite(unsigned int id, u16 buf);
> --int omap_mcbsp_set_io_type(unsigned int id, omap_mcbsp_io_type_t
> io_type);
> --
> - /* McBSP signal muxing API */
> - void omap2_mcbsp1_mux_clkr_src(u8 mux);
> - void omap2_mcbsp1_mux_fsr_src(u8 mux);
> -diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
> -index 1de2724..455eadc 100644
> ---- a/arch/arm/plat-omap/mcbsp.c
> -+++ b/arch/arm/plat-omap/mcbsp.c
> -@@ -16,8 +16,6 @@
> - #include <linux/init.h>
> - #include <linux/device.h>
> - #include <linux/platform_device.h>
> --#include <linux/wait.h>
> --#include <linux/completion.h>
> - #include <linux/interrupt.h>
> - #include <linux/err.h>
> - #include <linux/clk.h>
> -@@ -25,7 +23,6 @@
> - #include <linux/io.h>
> - #include <linux/slab.h>
> -
> --#include <plat/dma.h>
> - #include <plat/mcbsp.h>
> - #include <plat/omap_device.h>
> - #include <linux/pm_runtime.h>
> -@@ -136,8 +133,6 @@ static irqreturn_t omap_mcbsp_tx_irq_handler(int
> irq, void *dev_id)
> - 			irqst_spcr2);
> - 		/* Writing zero to XSYNC_ERR clears the IRQ */
> - 		MCBSP_WRITE(mcbsp_tx, SPCR2,
> MCBSP_READ_CACHE(mcbsp_tx, SPCR2));
> --	} else {
> --		complete(&mcbsp_tx->tx_irq_completion);
> - 	}
> -
> - 	return IRQ_HANDLED;
> -@@ -156,41 +151,11 @@ static irqreturn_t omap_mcbsp_rx_irq_handler(int
> irq, void *dev_id)
> - 			irqst_spcr1);
> - 		/* Writing zero to RSYNC_ERR clears the IRQ */
> - 		MCBSP_WRITE(mcbsp_rx, SPCR1,
> MCBSP_READ_CACHE(mcbsp_rx, SPCR1));
> --	} else {
> --		complete(&mcbsp_rx->rx_irq_completion);
> - 	}
> -
> - 	return IRQ_HANDLED;
> - }
> -
> --static void omap_mcbsp_tx_dma_callback(int lch, u16 ch_status, void *data)
> --{
> --	struct omap_mcbsp *mcbsp_dma_tx = data;
> --
> --	dev_dbg(mcbsp_dma_tx->dev, "TX DMA callback : 0x%x\n",
> --		MCBSP_READ(mcbsp_dma_tx, SPCR2));
> --
> --	/* We can free the channels */
> --	omap_free_dma(mcbsp_dma_tx->dma_tx_lch);
> --	mcbsp_dma_tx->dma_tx_lch = -1;
> --
> --	complete(&mcbsp_dma_tx->tx_dma_completion);
> --}
> --
> --static void omap_mcbsp_rx_dma_callback(int lch, u16 ch_status, void *data)
> --{
> --	struct omap_mcbsp *mcbsp_dma_rx = data;
> --
> --	dev_dbg(mcbsp_dma_rx->dev, "RX DMA callback : 0x%x\n",
> --		MCBSP_READ(mcbsp_dma_rx, SPCR2));
> --
> --	/* We can free the channels */
> --	omap_free_dma(mcbsp_dma_rx->dma_rx_lch);
> --	mcbsp_dma_rx->dma_rx_lch = -1;
> --
> --	complete(&mcbsp_dma_rx->rx_dma_completion);
> --}
> --
> - /*
> -  * omap_mcbsp_config simply write a config to the
> -  * appropriate McBSP.
> -@@ -758,37 +723,6 @@ static inline void omap_st_start(struct omap_mcbsp
> *mcbsp) {}
> - static inline void omap_st_stop(struct omap_mcbsp *mcbsp) {}
> - #endif
> -
> --/*
> -- * We can choose between IRQ based or polled IO.
> -- * This needs to be called before omap_mcbsp_request().
> -- */
> --int omap_mcbsp_set_io_type(unsigned int id, omap_mcbsp_io_type_t
> io_type)
> --{
> --	struct omap_mcbsp *mcbsp;
> --
> --	if (!omap_mcbsp_check_valid_id(id)) {
> --		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
> --		return -ENODEV;
> --	}
> --	mcbsp = id_to_mcbsp_ptr(id);
> --
> --	spin_lock(&mcbsp->lock);
> --
> --	if (!mcbsp->free) {
> --		dev_err(mcbsp->dev, "McBSP%d is currently in use\n",
> --			mcbsp->id);
> --		spin_unlock(&mcbsp->lock);
> --		return -EINVAL;
> --	}
> --
> --	mcbsp->io_type = io_type;
> --
> --	spin_unlock(&mcbsp->lock);
> --
> --	return 0;
> --}
> --EXPORT_SYMBOL(omap_mcbsp_set_io_type);
> --
> - int omap_mcbsp_request(unsigned int id)
> - {
> - 	struct omap_mcbsp *mcbsp;
> -@@ -833,29 +767,24 @@ int omap_mcbsp_request(unsigned int id)
> - 	MCBSP_WRITE(mcbsp, SPCR1, 0);
> - 	MCBSP_WRITE(mcbsp, SPCR2, 0);
> -
> --	if (mcbsp->io_type == OMAP_MCBSP_IRQ_IO) {
> --		/* We need to get IRQs here */
> --		init_completion(&mcbsp->tx_irq_completion);
> --		err = request_irq(mcbsp->tx_irq,
> omap_mcbsp_tx_irq_handler,
> --					0, "McBSP", (void *)mcbsp);
> -+	err = request_irq(mcbsp->tx_irq, omap_mcbsp_tx_irq_handler,
> -+				0, "McBSP", (void *)mcbsp);
> -+	if (err != 0) {
> -+		dev_err(mcbsp->dev, "Unable to request TX IRQ %d "
> -+				"for McBSP%d\n", mcbsp->tx_irq,
> -+				mcbsp->id);
> -+		goto err_clk_disable;
> -+	}
> -+
> -+	if (mcbsp->rx_irq) {
> -+		err = request_irq(mcbsp->rx_irq,
> -+				omap_mcbsp_rx_irq_handler,
> -+				0, "McBSP", (void *)mcbsp);
> - 		if (err != 0) {
> --			dev_err(mcbsp->dev, "Unable to request TX IRQ %d "
> --					"for McBSP%d\n", mcbsp->tx_irq,
> -+			dev_err(mcbsp->dev, "Unable to request RX IRQ %d "
> -+					"for McBSP%d\n", mcbsp->rx_irq,
> - 					mcbsp->id);
> --			goto err_clk_disable;
> --		}
> --
> --		if (mcbsp->rx_irq) {
> --			init_completion(&mcbsp->rx_irq_completion);
> --			err = request_irq(mcbsp->rx_irq,
> --					omap_mcbsp_rx_irq_handler,
> --					0, "McBSP", (void *)mcbsp);
> --			if (err != 0) {
> --				dev_err(mcbsp->dev, "Unable to request RX
> IRQ %d "
> --						"for McBSP%d\n", mcbsp-
> >rx_irq,
> --						mcbsp->id);
> --				goto err_free_irq;
> --			}
> -+			goto err_free_irq;
> - 		}
> - 	}
> -
> -@@ -901,12 +830,9 @@ void omap_mcbsp_free(unsigned int id)
> -
> - 	pm_runtime_put_sync(mcbsp->dev);
> -
> --	if (mcbsp->io_type == OMAP_MCBSP_IRQ_IO) {
> --		/* Free IRQs */
> --		if (mcbsp->rx_irq)
> --			free_irq(mcbsp->rx_irq, (void *)mcbsp);
> --		free_irq(mcbsp->tx_irq, (void *)mcbsp);
> --	}
> -+	if (mcbsp->rx_irq)
> -+		free_irq(mcbsp->rx_irq, (void *)mcbsp);
> -+	free_irq(mcbsp->tx_irq, (void *)mcbsp);
> -
> - 	reg_cache = mcbsp->reg_cache;
> -
> -@@ -1043,271 +969,6 @@ void omap_mcbsp_stop(unsigned int id, int tx, int
> rx)
> - }
> - EXPORT_SYMBOL(omap_mcbsp_stop);
> -
> --/* polled mcbsp i/o operations */
> --int omap_mcbsp_pollwrite(unsigned int id, u16 buf)
> --{
> --	struct omap_mcbsp *mcbsp;
> --
> --	if (!omap_mcbsp_check_valid_id(id)) {
> --		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
> --		return -ENODEV;
> --	}
> --
> --	mcbsp = id_to_mcbsp_ptr(id);
> --
> --	MCBSP_WRITE(mcbsp, DXR1, buf);
> --	/* if frame sync error - clear the error */
> --	if (MCBSP_READ(mcbsp, SPCR2) & XSYNC_ERR) {
> --		/* clear error */
> --		MCBSP_WRITE(mcbsp, SPCR2, MCBSP_READ_CACHE(mcbsp,
> SPCR2));
> --		/* resend */
> --		return -1;
> --	} else {
> --		/* wait for transmit confirmation */
> --		int attemps = 0;
> --		while (!(MCBSP_READ(mcbsp, SPCR2) & XRDY)) {
> --			if (attemps++ > 1000) {
> --				MCBSP_WRITE(mcbsp, SPCR2,
> --						MCBSP_READ_CACHE(mcbsp,
> SPCR2) &
> --						(~XRST));
> --				udelay(10);
> --				MCBSP_WRITE(mcbsp, SPCR2,
> --						MCBSP_READ_CACHE(mcbsp,
> SPCR2) |
> --						(XRST));
> --				udelay(10);
> --				dev_err(mcbsp->dev, "Could not write to"
> --					" McBSP%d Register\n", mcbsp->id);
> --				return -2;
> --			}
> --		}
> --	}
> --
> --	return 0;
> --}
> --EXPORT_SYMBOL(omap_mcbsp_pollwrite);
> --
> --int omap_mcbsp_pollread(unsigned int id, u16 *buf)
> --{
> --	struct omap_mcbsp *mcbsp;
> --
> --	if (!omap_mcbsp_check_valid_id(id)) {
> --		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
> --		return -ENODEV;
> --	}
> --	mcbsp = id_to_mcbsp_ptr(id);
> --
> --	/* if frame sync error - clear the error */
> --	if (MCBSP_READ(mcbsp, SPCR1) & RSYNC_ERR) {
> --		/* clear error */
> --		MCBSP_WRITE(mcbsp, SPCR1, MCBSP_READ_CACHE(mcbsp,
> SPCR1));
> --		/* resend */
> --		return -1;
> --	} else {
> --		/* wait for receive confirmation */
> --		int attemps = 0;
> --		while (!(MCBSP_READ(mcbsp, SPCR1) & RRDY)) {
> --			if (attemps++ > 1000) {
> --				MCBSP_WRITE(mcbsp, SPCR1,
> --						MCBSP_READ_CACHE(mcbsp,
> SPCR1) &
> --						(~RRST));
> --				udelay(10);
> --				MCBSP_WRITE(mcbsp, SPCR1,
> --						MCBSP_READ_CACHE(mcbsp,
> SPCR1) |
> --						(RRST));
> --				udelay(10);
> --				dev_err(mcbsp->dev, "Could not read from"
> --					" McBSP%d Register\n", mcbsp->id);
> --				return -2;
> --			}
> --		}
> --	}
> --	*buf = MCBSP_READ(mcbsp, DRR1);
> --
> --	return 0;
> --}
> --EXPORT_SYMBOL(omap_mcbsp_pollread);
> --
> --/*
> -- * IRQ based word transmission.
> -- */
> --void omap_mcbsp_xmit_word(unsigned int id, u32 word)
> --{
> --	struct omap_mcbsp *mcbsp;
> --	omap_mcbsp_word_length word_length;
> --
> --	if (!omap_mcbsp_check_valid_id(id)) {
> --		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
> --		return;
> --	}
> --
> --	mcbsp = id_to_mcbsp_ptr(id);
> --	word_length = mcbsp->tx_word_length;
> --
> --	wait_for_completion(&mcbsp->tx_irq_completion);
> --
> --	if (word_length > OMAP_MCBSP_WORD_16)
> --		MCBSP_WRITE(mcbsp, DXR2, word >> 16);
> --	MCBSP_WRITE(mcbsp, DXR1, word & 0xffff);
> --}
> --EXPORT_SYMBOL(omap_mcbsp_xmit_word);
> --
> --u32 omap_mcbsp_recv_word(unsigned int id)
> --{
> --	struct omap_mcbsp *mcbsp;
> --	u16 word_lsb, word_msb = 0;
> --	omap_mcbsp_word_length word_length;
> --
> --	if (!omap_mcbsp_check_valid_id(id)) {
> --		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
> --		return -ENODEV;
> --	}
> --	mcbsp = id_to_mcbsp_ptr(id);
> --
> --	word_length = mcbsp->rx_word_length;
> --
> --	wait_for_completion(&mcbsp->rx_irq_completion);
> --
> --	if (word_length > OMAP_MCBSP_WORD_16)
> --		word_msb = MCBSP_READ(mcbsp, DRR2);
> --	word_lsb = MCBSP_READ(mcbsp, DRR1);
> --
> --	return (word_lsb | (word_msb << 16));
> --}
> --EXPORT_SYMBOL(omap_mcbsp_recv_word);
> --
> --/*
> -- * Simple DMA based buffer rx/tx routines.
> -- * Nothing fancy, just a single buffer tx/rx through DMA.
> -- * The DMA resources are released once the transfer is done.
> -- * For anything fancier, you should use your own customized DMA
> -- * routines and callbacks.
> -- */
> --int omap_mcbsp_xmit_buffer(unsigned int id, dma_addr_t buffer,
> --				unsigned int length)
> --{
> --	struct omap_mcbsp *mcbsp;
> --	int dma_tx_ch;
> --	int src_port = 0;
> --	int dest_port = 0;
> --	int sync_dev = 0;
> --
> --	if (!omap_mcbsp_check_valid_id(id)) {
> --		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
> --		return -ENODEV;
> --	}
> --	mcbsp = id_to_mcbsp_ptr(id);
> --
> --	if (omap_request_dma(mcbsp->dma_tx_sync, "McBSP TX",
> --				omap_mcbsp_tx_dma_callback,
> --				mcbsp,
> --				&dma_tx_ch)) {
> --		dev_err(mcbsp->dev, " Unable to request DMA channel for "
> --				"McBSP%d TX. Trying IRQ based TX\n",
> --				mcbsp->id);
> --		return -EAGAIN;
> --	}
> --	mcbsp->dma_tx_lch = dma_tx_ch;
> --
> --	dev_err(mcbsp->dev, "McBSP%d TX DMA on channel %d\n", mcbsp-
> >id,
> --		dma_tx_ch);
> --
> --	init_completion(&mcbsp->tx_dma_completion);
> --
> --	if (cpu_class_is_omap1()) {
> --		src_port = OMAP_DMA_PORT_TIPB;
> --		dest_port = OMAP_DMA_PORT_EMIFF;
> --	}
> --	if (cpu_class_is_omap2())
> --		sync_dev = mcbsp->dma_tx_sync;
> --
> --	omap_set_dma_transfer_params(mcbsp->dma_tx_lch,
> --				     OMAP_DMA_DATA_TYPE_S16,
> --				     length >> 1, 1,
> --				     OMAP_DMA_SYNC_ELEMENT,
> --	 sync_dev, 0);
> --
> --	omap_set_dma_dest_params(mcbsp->dma_tx_lch,
> --				 src_port,
> --				 OMAP_DMA_AMODE_CONSTANT,
> --				 mcbsp->phys_base +
> OMAP_MCBSP_REG_DXR1,
> --				 0, 0);
> --
> --	omap_set_dma_src_params(mcbsp->dma_tx_lch,
> --				dest_port,
> --				OMAP_DMA_AMODE_POST_INC,
> --				buffer,
> --				0, 0);
> --
> --	omap_start_dma(mcbsp->dma_tx_lch);
> --	wait_for_completion(&mcbsp->tx_dma_completion);
> --
> --	return 0;
> --}
> --EXPORT_SYMBOL(omap_mcbsp_xmit_buffer);
> --
> --int omap_mcbsp_recv_buffer(unsigned int id, dma_addr_t buffer,
> --				unsigned int length)
> --{
> --	struct omap_mcbsp *mcbsp;
> --	int dma_rx_ch;
> --	int src_port = 0;
> --	int dest_port = 0;
> --	int sync_dev = 0;
> --
> --	if (!omap_mcbsp_check_valid_id(id)) {
> --		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
> --		return -ENODEV;
> --	}
> --	mcbsp = id_to_mcbsp_ptr(id);
> --
> --	if (omap_request_dma(mcbsp->dma_rx_sync, "McBSP RX",
> --				omap_mcbsp_rx_dma_callback,
> --				mcbsp,
> --				&dma_rx_ch)) {
> --		dev_err(mcbsp->dev, "Unable to request DMA channel for "
> --				"McBSP%d RX. Trying IRQ based RX\n",
> --				mcbsp->id);
> --		return -EAGAIN;
> --	}
> --	mcbsp->dma_rx_lch = dma_rx_ch;
> --
> --	dev_err(mcbsp->dev, "McBSP%d RX DMA on channel %d\n", mcbsp-
> >id,
> --		dma_rx_ch);
> --
> --	init_completion(&mcbsp->rx_dma_completion);
> --
> --	if (cpu_class_is_omap1()) {
> --		src_port = OMAP_DMA_PORT_TIPB;
> --		dest_port = OMAP_DMA_PORT_EMIFF;
> --	}
> --	if (cpu_class_is_omap2())
> --		sync_dev = mcbsp->dma_rx_sync;
> --
> --	omap_set_dma_transfer_params(mcbsp->dma_rx_lch,
> --					OMAP_DMA_DATA_TYPE_S16,
> --					length >> 1, 1,
> --					OMAP_DMA_SYNC_ELEMENT,
> --					sync_dev, 0);
> --
> --	omap_set_dma_src_params(mcbsp->dma_rx_lch,
> --				src_port,
> --				OMAP_DMA_AMODE_CONSTANT,
> --				mcbsp->phys_base +
> OMAP_MCBSP_REG_DRR1,
> --				0, 0);
> --
> --	omap_set_dma_dest_params(mcbsp->dma_rx_lch,
> --					dest_port,
> --					OMAP_DMA_AMODE_POST_INC,
> --					buffer,
> --					0, 0);
> --
> --	omap_start_dma(mcbsp->dma_rx_lch);
> --	wait_for_completion(&mcbsp->rx_dma_completion);
> --
> --	return 0;
> --}
> --EXPORT_SYMBOL(omap_mcbsp_recv_buffer);
> --
> - #ifdef CONFIG_ARCH_OMAP3
> - #define max_thres(m)			(mcbsp->pdata->buffer_size)
> - #define valid_threshold(m, val)		((val) <= max_thres(m))
> -@@ -1619,8 +1280,6 @@ static int __devinit omap_mcbsp_probe(struct
> platform_device *pdev)
> - 	spin_lock_init(&mcbsp->lock);
> - 	mcbsp->id = id + 1;
> - 	mcbsp->free = true;
> --	mcbsp->dma_tx_lch = -1;
> --	mcbsp->dma_rx_lch = -1;
> -
> - 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
> "mpu");
> - 	if (!res) {
> -@@ -1646,9 +1305,6 @@ static int __devinit omap_mcbsp_probe(struct
> platform_device *pdev)
> - 	else
> - 		mcbsp->phys_dma_base = res->start;
> -
> --	/* Default I/O is IRQ based */
> --	mcbsp->io_type = OMAP_MCBSP_IRQ_IO;
> --
> - 	mcbsp->tx_irq = platform_get_irq_byname(pdev, "tx");
> - 	mcbsp->rx_irq = platform_get_irq_byname(pdev, "rx");
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0021-omap2-fix-
> build-regression.patch b/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0021-
> omap2-fix-build-regression.patch
> deleted file mode 100644
> index 0b63867..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0021-omap2-fix-build-
> regression.patch
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -From 742b21718c968c17ac951b73b4ba79f4a489d35b Mon Sep 17 00:00:00
> 2001
> -From: Arnd Bergmann <arnd at arndb.de>
> -Date: Thu, 30 Jun 2011 12:58:01 +0000
> -Subject: [PATCH 021/149] omap2+: fix build regression
> -
> -board-generic.c now contains a reference to omap3_timer, but depends
> -only on ARCH_OMAP2, not on ARCH_OMAP3, which controls that symbol.
> -omap2_timer seems to be more appropriate anyway, so use that instead.
> -
> -Signed-off-by: Arnd Bergmann <arnd at arndb.de>
> -Acked-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/mach-omap2/board-generic.c |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-
> omap2/board-generic.c
> -index c6ecf60..54db41a 100644
> ---- a/arch/arm/mach-omap2/board-generic.c
> -+++ b/arch/arm/mach-omap2/board-generic.c
> -@@ -72,5 +72,5 @@ MACHINE_START(OMAP_GENERIC, "Generic
> OMAP24xx")
> - 	.init_early	= omap_generic_init_early,
> - 	.init_irq	= omap2_init_irq,
> - 	.init_machine	= omap_generic_init,
> --	.timer		= &omap3_timer,
> -+	.timer		= &omap2_timer,
> - MACHINE_END
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0022-OMAP-New-
> twl-common-for-common-TWL-configuration.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0022-OMAP-New-twl-common-for-
> common-TWL-configuration.patch
> deleted file mode 100644
> index a0ccdd3..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0022-OMAP-New-twl-
> common-for-common-TWL-configuration.patch
> +++ /dev/null
> @@ -1,200 +0,0 @@
> -From 552daa4d00a2c1835e5114af852efc65175e1cc0 Mon Sep 17 00:00:00
> 2001
> -From: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -Date: Sat, 4 Jun 2011 08:16:41 +0300
> -Subject: [PATCH 022/149] OMAP: New twl-common for common TWL
> configuration
> -
> -Introduce a new file, which will be used to configure
> -common pmic (TWL) devices, regulators, and TWL audio.
> -
> -Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -Acked-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/mach-omap2/Makefile               |    2 +-
> - arch/arm/mach-omap2/common-board-devices.c |   21 -------------
> - arch/arm/mach-omap2/common-board-devices.h |   26 +--------------
> - arch/arm/mach-omap2/twl-common.c           |   46
> ++++++++++++++++++++++++++++
> - arch/arm/mach-omap2/twl-common.h           |   28 +++++++++++++++++
> - 5 files changed, 77 insertions(+), 46 deletions(-)
> - create mode 100644 arch/arm/mach-omap2/twl-common.c
> - create mode 100644 arch/arm/mach-omap2/twl-common.h
> -
> -diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-
> omap2/Makefile
> -index adbe82d..ff1466f 100644
> ---- a/arch/arm/mach-omap2/Makefile
> -+++ b/arch/arm/mach-omap2/Makefile
> -@@ -269,4 +269,4 @@ obj-$(CONFIG_ARCH_OMAP4)		+=
> hwspinlock.o
> - disp-$(CONFIG_OMAP2_DSS)		:= display.o
> - obj-y					+= $(disp-m) $(disp-y)
> -
> --obj-y					+= common-board-devices.o
> -+obj-y					+= common-board-devices.o twl-
> common.o
> -diff --git a/arch/arm/mach-omap2/common-board-devices.c
> b/arch/arm/mach-omap2/common-board-devices.c
> -index 0043fa8..bcb0c58 100644
> ---- a/arch/arm/mach-omap2/common-board-devices.c
> -+++ b/arch/arm/mach-omap2/common-board-devices.c
> -@@ -20,36 +20,15 @@
> -  *
> -  */
> -
> --#include <linux/i2c.h>
> --#include <linux/i2c/twl.h>
> --
> - #include <linux/gpio.h>
> - #include <linux/spi/spi.h>
> - #include <linux/spi/ads7846.h>
> -
> --#include <plat/i2c.h>
> - #include <plat/mcspi.h>
> - #include <plat/nand.h>
> -
> - #include "common-board-devices.h"
> -
> --static struct i2c_board_info __initdata pmic_i2c_board_info = {
> --	.addr		= 0x48,
> --	.flags		= I2C_CLIENT_WAKE,
> --};
> --
> --void __init omap_pmic_init(int bus, u32 clkrate,
> --			   const char *pmic_type, int pmic_irq,
> --			   struct twl4030_platform_data *pmic_data)
> --{
> --	strncpy(pmic_i2c_board_info.type, pmic_type,
> --		sizeof(pmic_i2c_board_info.type));
> --	pmic_i2c_board_info.irq = pmic_irq;
> --	pmic_i2c_board_info.platform_data = pmic_data;
> --
> --	omap_register_i2c_bus(bus, clkrate, &pmic_i2c_board_info, 1);
> --}
> --
> - #if defined(CONFIG_TOUCHSCREEN_ADS7846) || \
> - 	defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
> - static struct omap2_mcspi_device_config ads7846_mcspi_config = {
> -diff --git a/arch/arm/mach-omap2/common-board-devices.h
> b/arch/arm/mach-omap2/common-board-devices.h
> -index 6797190..a0b4a428 100644
> ---- a/arch/arm/mach-omap2/common-board-devices.h
> -+++ b/arch/arm/mach-omap2/common-board-devices.h
> -@@ -1,33 +1,11 @@
> - #ifndef __OMAP_COMMON_BOARD_DEVICES__
> - #define __OMAP_COMMON_BOARD_DEVICES__
> -
> -+#include "twl-common.h"
> -+
> - #define NAND_BLOCK_SIZE	SZ_128K
> -
> --struct twl4030_platform_data;
> - struct mtd_partition;
> --
> --void omap_pmic_init(int bus, u32 clkrate, const char *pmic_type, int
> pmic_irq,
> --		    struct twl4030_platform_data *pmic_data);
> --
> --static inline void omap2_pmic_init(const char *pmic_type,
> --				   struct twl4030_platform_data *pmic_data)
> --{
> --	omap_pmic_init(2, 2600, pmic_type, INT_24XX_SYS_NIRQ,
> pmic_data);
> --}
> --
> --static inline void omap3_pmic_init(const char *pmic_type,
> --				   struct twl4030_platform_data *pmic_data)
> --{
> --	omap_pmic_init(1, 2600, pmic_type, INT_34XX_SYS_NIRQ,
> pmic_data);
> --}
> --
> --static inline void omap4_pmic_init(const char *pmic_type,
> --				   struct twl4030_platform_data *pmic_data)
> --{
> --	/* Phoenix Audio IC needs I2C1 to start with 400 KHz or less */
> --	omap_pmic_init(1, 400, pmic_type, OMAP44XX_IRQ_SYS_1N,
> pmic_data);
> --}
> --
> - struct ads7846_platform_data;
> -
> - void omap_ads7846_init(int bus_num, int gpio_pendown, int gpio_debounce,
> -diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-
> omap2/twl-common.c
> -new file mode 100644
> -index 0000000..4f7b24c
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/twl-common.c
> -@@ -0,0 +1,46 @@
> -+/*
> -+ * twl-common.c
> -+ *
> -+ * Copyright (C) 2011 Texas Instruments, Inc..
> -+ * Author: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -+ *
> -+ * This program is free software; you can redistribute it and/or
> -+ * modify it under the terms of the GNU General Public License
> -+ * version 2 as published by the Free Software Foundation.
> -+ *
> -+ * This program is distributed in the hope that it will be useful, but
> -+ * WITHOUT ANY WARRANTY; 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
> -+ *
> -+ */
> -+
> -+#include <linux/i2c.h>
> -+#include <linux/i2c/twl.h>
> -+#include <linux/gpio.h>
> -+
> -+#include <plat/i2c.h>
> -+
> -+#include "twl-common.h"
> -+
> -+static struct i2c_board_info __initdata pmic_i2c_board_info = {
> -+	.addr		= 0x48,
> -+	.flags		= I2C_CLIENT_WAKE,
> -+};
> -+
> -+void __init omap_pmic_init(int bus, u32 clkrate,
> -+			   const char *pmic_type, int pmic_irq,
> -+			   struct twl4030_platform_data *pmic_data)
> -+{
> -+	strncpy(pmic_i2c_board_info.type, pmic_type,
> -+		sizeof(pmic_i2c_board_info.type));
> -+	pmic_i2c_board_info.irq = pmic_irq;
> -+	pmic_i2c_board_info.platform_data = pmic_data;
> -+
> -+	omap_register_i2c_bus(bus, clkrate, &pmic_i2c_board_info, 1);
> -+}
> -diff --git a/arch/arm/mach-omap2/twl-common.h b/arch/arm/mach-
> omap2/twl-common.h
> -new file mode 100644
> -index 0000000..e9fe2ab
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/twl-common.h
> -@@ -0,0 +1,28 @@
> -+#ifndef __OMAP_PMIC_COMMON__
> -+#define __OMAP_PMIC_COMMON__
> -+
> -+struct twl4030_platform_data;
> -+
> -+void omap_pmic_init(int bus, u32 clkrate, const char *pmic_type, int
> pmic_irq,
> -+		    struct twl4030_platform_data *pmic_data);
> -+
> -+static inline void omap2_pmic_init(const char *pmic_type,
> -+				   struct twl4030_platform_data *pmic_data)
> -+{
> -+	omap_pmic_init(2, 2600, pmic_type, INT_24XX_SYS_NIRQ,
> pmic_data);
> -+}
> -+
> -+static inline void omap3_pmic_init(const char *pmic_type,
> -+				   struct twl4030_platform_data *pmic_data)
> -+{
> -+	omap_pmic_init(1, 2600, pmic_type, INT_34XX_SYS_NIRQ,
> pmic_data);
> -+}
> -+
> -+static inline void omap4_pmic_init(const char *pmic_type,
> -+				   struct twl4030_platform_data *pmic_data)
> -+{
> -+	/* Phoenix Audio IC needs I2C1 to start with 400 KHz or less */
> -+	omap_pmic_init(1, 400, pmic_type, OMAP44XX_IRQ_SYS_1N,
> pmic_data);
> -+}
> -+
> -+#endif /* __OMAP_PMIC_COMMON__ */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0023-OMAP4-Move-
> common-twl6030-configuration-to-twl-commo.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0023-OMAP4-Move-common-twl6030-
> configuration-to-twl-commo.patch
> deleted file mode 100644
> index b04d1f8..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0023-OMAP4-Move-
> common-twl6030-configuration-to-twl-commo.patch
> +++ /dev/null
> @@ -1,601 +0,0 @@
> -From db3a6400c5bc9c99a39fe9b34b7b3c59ae4be245 Mon Sep 17 00:00:00
> 2001
> -From: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -Date: Tue, 7 Jun 2011 10:26:46 +0300
> -Subject: [PATCH 023/149] OMAP4: Move common twl6030 configuration to
> twl-common
> -
> -Reduce the amount of duplicated code by moving the common
> -configuration for TWL6030 (on OMAP4 platform) to the
> -twl-common file.
> -Use the omap4_pmic_get_config function from board files to
> -properly configure the PMIC with the common fields.
> -
> -Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -Acked-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/mach-omap2/board-4430sdp.c    |  141 ++-------------------------
> - arch/arm/mach-omap2/board-omap4panda.c |  146 +++--------------------------
> - arch/arm/mach-omap2/twl-common.c       |  163
> ++++++++++++++++++++++++++++++++
> - arch/arm/mach-omap2/twl-common.h       |   20 ++++
> - 4 files changed, 205 insertions(+), 265 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-
> omap2/board-4430sdp.c
> -index d7df07e..933b25b 100644
> ---- a/arch/arm/mach-omap2/board-4430sdp.c
> -+++ b/arch/arm/mach-omap2/board-4430sdp.c
> -@@ -302,14 +302,6 @@ static struct omap_musb_board_data
> musb_board_data = {
> - 	.power			= 100,
> - };
> -
> --static struct twl4030_usb_data omap4_usbphy_data = {
> --	.phy_init	= omap4430_phy_init,
> --	.phy_exit	= omap4430_phy_exit,
> --	.phy_power	= omap4430_phy_power,
> --	.phy_set_clock	= omap4430_phy_set_clk,
> --	.phy_suspend	= omap4430_phy_suspend,
> --};
> --
> - static struct omap2_hsmmc_info mmc[] = {
> - 	{
> - 		.mmc		= 2,
> -@@ -332,10 +324,6 @@ static struct regulator_consumer_supply
> sdp4430_vaux_supply[] = {
> - 	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1"),
> - };
> -
> --static struct regulator_consumer_supply sdp4430_vmmc_supply[] = {
> --	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> --};
> --
> - static int omap4_twl6030_hsmmc_late_init(struct device *dev)
> - {
> - 	int ret = 0;
> -@@ -394,61 +382,6 @@ static struct regulator_init_data sdp4430_vaux1 = {
> - 	.consumer_supplies      = sdp4430_vaux_supply,
> - };
> -
> --static struct regulator_init_data sdp4430_vaux2 = {
> --	.constraints = {
> --		.min_uV			= 1200000,
> --		.max_uV			= 2800000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_VOLTAGE
> --					| REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --static struct regulator_init_data sdp4430_vaux3 = {
> --	.constraints = {
> --		.min_uV			= 1000000,
> --		.max_uV			= 3000000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_VOLTAGE
> --					| REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --/* VMMC1 for MMC1 card */
> --static struct regulator_init_data sdp4430_vmmc = {
> --	.constraints = {
> --		.min_uV			= 1200000,
> --		.max_uV			= 3000000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_VOLTAGE
> --					| REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies  = 1,
> --	.consumer_supplies      = sdp4430_vmmc_supply,
> --};
> --
> --static struct regulator_init_data sdp4430_vpp = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 2500000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_VOLTAGE
> --					| REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> - static struct regulator_init_data sdp4430_vusim = {
> - 	.constraints = {
> - 		.min_uV			= 1200000,
> -@@ -462,74 +395,10 @@ static struct regulator_init_data sdp4430_vusim = {
> - 	},
> - };
> -
> --static struct regulator_init_data sdp4430_vana = {
> --	.constraints = {
> --		.min_uV			= 2100000,
> --		.max_uV			= 2100000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --static struct regulator_init_data sdp4430_vcxio = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --static struct regulator_init_data sdp4430_vdac = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --static struct regulator_init_data sdp4430_vusb = {
> --	.constraints = {
> --		.min_uV			= 3300000,
> --		.max_uV			= 3300000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 =	REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --static struct regulator_init_data sdp4430_clk32kg = {
> --	.constraints = {
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> - static struct twl4030_platform_data sdp4430_twldata = {
> --	.irq_base	= TWL6030_IRQ_BASE,
> --	.irq_end	= TWL6030_IRQ_END,
> --
> - 	/* Regulators */
> --	.vmmc		= &sdp4430_vmmc,
> --	.vpp		= &sdp4430_vpp,
> - 	.vusim		= &sdp4430_vusim,
> --	.vana		= &sdp4430_vana,
> --	.vcxio		= &sdp4430_vcxio,
> --	.vdac		= &sdp4430_vdac,
> --	.vusb		= &sdp4430_vusb,
> - 	.vaux1		= &sdp4430_vaux1,
> --	.vaux2		= &sdp4430_vaux2,
> --	.vaux3		= &sdp4430_vaux3,
> --	.clk32kg	= &sdp4430_clk32kg,
> --	.usb		= &omap4_usbphy_data
> - };
> -
> - static struct i2c_board_info __initdata sdp4430_i2c_3_boardinfo[] = {
> -@@ -547,6 +416,16 @@ static struct i2c_board_info __initdata
> sdp4430_i2c_4_boardinfo[] = {
> - };
> - static int __init omap4_i2c_init(void)
> - {
> -+	omap4_pmic_get_config(&sdp4430_twldata,
> TWL_COMMON_PDATA_USB,
> -+			TWL_COMMON_REGULATOR_VDAC |
> -+			TWL_COMMON_REGULATOR_VAUX2 |
> -+			TWL_COMMON_REGULATOR_VAUX3 |
> -+			TWL_COMMON_REGULATOR_VMMC |
> -+			TWL_COMMON_REGULATOR_VPP |
> -+			TWL_COMMON_REGULATOR_VANA |
> -+			TWL_COMMON_REGULATOR_VCXIO |
> -+			TWL_COMMON_REGULATOR_VUSB |
> -+			TWL_COMMON_REGULATOR_CLK32KG);
> - 	omap4_pmic_init("twl6030", &sdp4430_twldata);
> - 	omap_register_i2c_bus(2, 400, NULL, 0);
> - 	omap_register_i2c_bus(3, 400, sdp4430_i2c_3_boardinfo,
> -diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-
> omap2/board-omap4panda.c
> -index ee2034e..9aaa960 100644
> ---- a/arch/arm/mach-omap2/board-omap4panda.c
> -+++ b/arch/arm/mach-omap2/board-omap4panda.c
> -@@ -154,14 +154,6 @@ static struct omap_musb_board_data
> musb_board_data = {
> - 	.power			= 100,
> - };
> -
> --static struct twl4030_usb_data omap4_usbphy_data = {
> --	.phy_init	= omap4430_phy_init,
> --	.phy_exit	= omap4430_phy_exit,
> --	.phy_power	= omap4430_phy_power,
> --	.phy_set_clock	= omap4430_phy_set_clk,
> --	.phy_suspend	= omap4430_phy_suspend,
> --};
> --
> - static struct omap2_hsmmc_info mmc[] = {
> - 	{
> - 		.mmc		= 1,
> -@@ -181,10 +173,6 @@ static struct omap2_hsmmc_info mmc[] = {
> - 	{}	/* Terminator */
> - };
> -
> --static struct regulator_consumer_supply omap4_panda_vmmc_supply[] = {
> --	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> --};
> --
> - static struct regulator_consumer_supply omap4_panda_vmmc5_supply[] = {
> - 	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.4"),
> - };
> -@@ -269,128 +257,8 @@ static int __init omap4_twl6030_hsmmc_init(struct
> omap2_hsmmc_info *controllers)
> - 	return 0;
> - }
> -
> --static struct regulator_init_data omap4_panda_vaux2 = {
> --	.constraints = {
> --		.min_uV			= 1200000,
> --		.max_uV			= 2800000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_VOLTAGE
> --					| REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --static struct regulator_init_data omap4_panda_vaux3 = {
> --	.constraints = {
> --		.min_uV			= 1000000,
> --		.max_uV			= 3000000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_VOLTAGE
> --					| REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --/* VMMC1 for MMC1 card */
> --static struct regulator_init_data omap4_panda_vmmc = {
> --	.constraints = {
> --		.min_uV			= 1200000,
> --		.max_uV			= 3000000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_VOLTAGE
> --					| REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies  =
> ARRAY_SIZE(omap4_panda_vmmc_supply),
> --	.consumer_supplies      = omap4_panda_vmmc_supply,
> --};
> --
> --static struct regulator_init_data omap4_panda_vpp = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 2500000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_VOLTAGE
> --					| REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --static struct regulator_init_data omap4_panda_vana = {
> --	.constraints = {
> --		.min_uV			= 2100000,
> --		.max_uV			= 2100000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --static struct regulator_init_data omap4_panda_vcxio = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --static struct regulator_init_data omap4_panda_vdac = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 = REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --static struct regulator_init_data omap4_panda_vusb = {
> --	.constraints = {
> --		.min_uV			= 3300000,
> --		.max_uV			= 3300000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask	 =	REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --static struct regulator_init_data omap4_panda_clk32kg = {
> --	.constraints = {
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_STATUS,
> --	},
> --};
> --
> --static struct twl4030_platform_data omap4_panda_twldata = {
> --	.irq_base	= TWL6030_IRQ_BASE,
> --	.irq_end	= TWL6030_IRQ_END,
> --
> --	/* Regulators */
> --	.vmmc		= &omap4_panda_vmmc,
> --	.vpp		= &omap4_panda_vpp,
> --	.vana		= &omap4_panda_vana,
> --	.vcxio		= &omap4_panda_vcxio,
> --	.vdac		= &omap4_panda_vdac,
> --	.vusb		= &omap4_panda_vusb,
> --	.vaux2		= &omap4_panda_vaux2,
> --	.vaux3		= &omap4_panda_vaux3,
> --	.clk32kg	= &omap4_panda_clk32kg,
> --	.usb		= &omap4_usbphy_data,
> --};
> -+/* Panda board uses the common PMIC configuration */
> -+static struct twl4030_platform_data omap4_panda_twldata;
> -
> - /*
> -  * Display monitor features are burnt in their EEPROM as EDID data. The
> EEPROM
> -@@ -404,6 +272,16 @@ static struct i2c_board_info __initdata
> panda_i2c_eeprom[] = {
> -
> - static int __init omap4_panda_i2c_init(void)
> - {
> -+	omap4_pmic_get_config(&omap4_panda_twldata,
> TWL_COMMON_PDATA_USB,
> -+			TWL_COMMON_REGULATOR_VDAC |
> -+			TWL_COMMON_REGULATOR_VAUX2 |
> -+			TWL_COMMON_REGULATOR_VAUX3 |
> -+			TWL_COMMON_REGULATOR_VMMC |
> -+			TWL_COMMON_REGULATOR_VPP |
> -+			TWL_COMMON_REGULATOR_VANA |
> -+			TWL_COMMON_REGULATOR_VCXIO |
> -+			TWL_COMMON_REGULATOR_VUSB |
> -+			TWL_COMMON_REGULATOR_CLK32KG);
> - 	omap4_pmic_init("twl6030", &omap4_panda_twldata);
> - 	omap_register_i2c_bus(2, 400, NULL, 0);
> - 	/*
> -diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-
> omap2/twl-common.c
> -index 4f7b24c..cf80f4c 100644
> ---- a/arch/arm/mach-omap2/twl-common.c
> -+++ b/arch/arm/mach-omap2/twl-common.c
> -@@ -23,8 +23,11 @@
> - #include <linux/i2c.h>
> - #include <linux/i2c/twl.h>
> - #include <linux/gpio.h>
> -+#include <linux/regulator/machine.h>
> -+#include <linux/regulator/fixed.h>
> -
> - #include <plat/i2c.h>
> -+#include <plat/usb.h>
> -
> - #include "twl-common.h"
> -
> -@@ -44,3 +47,163 @@ void __init omap_pmic_init(int bus, u32 clkrate,
> -
> - 	omap_register_i2c_bus(bus, clkrate, &pmic_i2c_board_info, 1);
> - }
> -+
> -+static struct twl4030_usb_data omap4_usb_pdata = {
> -+	.phy_init	= omap4430_phy_init,
> -+	.phy_exit	= omap4430_phy_exit,
> -+	.phy_power	= omap4430_phy_power,
> -+	.phy_set_clock	= omap4430_phy_set_clk,
> -+	.phy_suspend	= omap4430_phy_suspend,
> -+};
> -+
> -+static struct regulator_init_data omap4_vdac_idata = {
> -+	.constraints = {
> -+		.min_uV			= 1800000,
> -+		.max_uV			= 1800000,
> -+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> -+					| REGULATOR_MODE_STANDBY,
> -+		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> -+					| REGULATOR_CHANGE_STATUS,
> -+	},
> -+};
> -+
> -+static struct regulator_init_data omap4_vaux2_idata = {
> -+	.constraints = {
> -+		.min_uV			= 1200000,
> -+		.max_uV			= 2800000,
> -+		.apply_uV		= true,
> -+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> -+					| REGULATOR_MODE_STANDBY,
> -+		.valid_ops_mask		=
> REGULATOR_CHANGE_VOLTAGE
> -+					| REGULATOR_CHANGE_MODE
> -+					| REGULATOR_CHANGE_STATUS,
> -+	},
> -+};
> -+
> -+static struct regulator_init_data omap4_vaux3_idata = {
> -+	.constraints = {
> -+		.min_uV			= 1000000,
> -+		.max_uV			= 3000000,
> -+		.apply_uV		= true,
> -+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> -+					| REGULATOR_MODE_STANDBY,
> -+		.valid_ops_mask		=
> REGULATOR_CHANGE_VOLTAGE
> -+					| REGULATOR_CHANGE_MODE
> -+					| REGULATOR_CHANGE_STATUS,
> -+	},
> -+};
> -+
> -+static struct regulator_consumer_supply omap4_vmmc_supply[] = {
> -+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> -+};
> -+
> -+/* VMMC1 for MMC1 card */
> -+static struct regulator_init_data omap4_vmmc_idata = {
> -+	.constraints = {
> -+		.min_uV			= 1200000,
> -+		.max_uV			= 3000000,
> -+		.apply_uV		= true,
> -+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> -+					| REGULATOR_MODE_STANDBY,
> -+		.valid_ops_mask		=
> REGULATOR_CHANGE_VOLTAGE
> -+					| REGULATOR_CHANGE_MODE
> -+					| REGULATOR_CHANGE_STATUS,
> -+	},
> -+	.num_consumer_supplies  = ARRAY_SIZE(omap4_vmmc_supply),
> -+	.consumer_supplies      = omap4_vmmc_supply,
> -+};
> -+
> -+static struct regulator_init_data omap4_vpp_idata = {
> -+	.constraints = {
> -+		.min_uV			= 1800000,
> -+		.max_uV			= 2500000,
> -+		.apply_uV		= true,
> -+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> -+					| REGULATOR_MODE_STANDBY,
> -+		.valid_ops_mask		=
> REGULATOR_CHANGE_VOLTAGE
> -+					| REGULATOR_CHANGE_MODE
> -+					| REGULATOR_CHANGE_STATUS,
> -+	},
> -+};
> -+
> -+static struct regulator_init_data omap4_vana_idata = {
> -+	.constraints = {
> -+		.min_uV			= 2100000,
> -+		.max_uV			= 2100000,
> -+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> -+					| REGULATOR_MODE_STANDBY,
> -+		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> -+					| REGULATOR_CHANGE_STATUS,
> -+	},
> -+};
> -+
> -+static struct regulator_init_data omap4_vcxio_idata = {
> -+	.constraints = {
> -+		.min_uV			= 1800000,
> -+		.max_uV			= 1800000,
> -+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> -+					| REGULATOR_MODE_STANDBY,
> -+		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> -+					| REGULATOR_CHANGE_STATUS,
> -+	},
> -+};
> -+
> -+static struct regulator_init_data omap4_vusb_idata = {
> -+	.constraints = {
> -+		.min_uV			= 3300000,
> -+		.max_uV			= 3300000,
> -+		.apply_uV		= true,
> -+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> -+					| REGULATOR_MODE_STANDBY,
> -+		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> -+					| REGULATOR_CHANGE_STATUS,
> -+	},
> -+};
> -+
> -+static struct regulator_init_data omap4_clk32kg_idata = {
> -+	.constraints = {
> -+		.valid_ops_mask		=
> REGULATOR_CHANGE_STATUS,
> -+	},
> -+};
> -+
> -+void __init omap4_pmic_get_config(struct twl4030_platform_data
> *pmic_data,
> -+				  u32 pdata_flags, u32 regulators_flags)
> -+{
> -+	if (!pmic_data->irq_base)
> -+		pmic_data->irq_base = TWL6030_IRQ_BASE;
> -+	if (!pmic_data->irq_end)
> -+		pmic_data->irq_end = TWL6030_IRQ_END;
> -+
> -+	/* Common platform data configurations */
> -+	if (pdata_flags & TWL_COMMON_PDATA_USB && !pmic_data->usb)
> -+		pmic_data->usb = &omap4_usb_pdata;
> -+
> -+	/* Common regulator configurations */
> -+	if (regulators_flags & TWL_COMMON_REGULATOR_VDAC &&
> !pmic_data->vdac)
> -+		pmic_data->vdac = &omap4_vdac_idata;
> -+
> -+	if (regulators_flags & TWL_COMMON_REGULATOR_VAUX2 &&
> !pmic_data->vaux2)
> -+		pmic_data->vaux2 = &omap4_vaux2_idata;
> -+
> -+	if (regulators_flags & TWL_COMMON_REGULATOR_VAUX3 &&
> !pmic_data->vaux3)
> -+		pmic_data->vaux3 = &omap4_vaux3_idata;
> -+
> -+	if (regulators_flags & TWL_COMMON_REGULATOR_VMMC &&
> !pmic_data->vmmc)
> -+		pmic_data->vmmc = &omap4_vmmc_idata;
> -+
> -+	if (regulators_flags & TWL_COMMON_REGULATOR_VPP &&
> !pmic_data->vpp)
> -+		pmic_data->vpp = &omap4_vpp_idata;
> -+
> -+	if (regulators_flags & TWL_COMMON_REGULATOR_VANA &&
> !pmic_data->vana)
> -+		pmic_data->vana = &omap4_vana_idata;
> -+
> -+	if (regulators_flags & TWL_COMMON_REGULATOR_VCXIO &&
> !pmic_data->vcxio)
> -+		pmic_data->vcxio = &omap4_vcxio_idata;
> -+
> -+	if (regulators_flags & TWL_COMMON_REGULATOR_VUSB &&
> !pmic_data->vusb)
> -+		pmic_data->vusb = &omap4_vusb_idata;
> -+
> -+	if (regulators_flags & TWL_COMMON_REGULATOR_CLK32KG &&
> -+	    !pmic_data->clk32kg)
> -+		pmic_data->clk32kg = &omap4_clk32kg_idata;
> -+}
> -diff --git a/arch/arm/mach-omap2/twl-common.h b/arch/arm/mach-
> omap2/twl-common.h
> -index e9fe2ab..d96c289 100644
> ---- a/arch/arm/mach-omap2/twl-common.h
> -+++ b/arch/arm/mach-omap2/twl-common.h
> -@@ -1,6 +1,23 @@
> - #ifndef __OMAP_PMIC_COMMON__
> - #define __OMAP_PMIC_COMMON__
> -
> -+#define TWL_COMMON_PDATA_USB		(1 << 0)
> -+
> -+/* Common LDO regulators for TWL4030/TWL6030 */
> -+#define TWL_COMMON_REGULATOR_VDAC	(1 << 0)
> -+#define TWL_COMMON_REGULATOR_VAUX1	(1 << 1)
> -+#define TWL_COMMON_REGULATOR_VAUX2	(1 << 2)
> -+#define TWL_COMMON_REGULATOR_VAUX3	(1 << 3)
> -+
> -+/* TWL6030 LDO regulators */
> -+#define TWL_COMMON_REGULATOR_VMMC	(1 << 4)
> -+#define TWL_COMMON_REGULATOR_VPP	(1 << 5)
> -+#define TWL_COMMON_REGULATOR_VUSIM	(1 << 6)
> -+#define TWL_COMMON_REGULATOR_VANA	(1 << 7)
> -+#define TWL_COMMON_REGULATOR_VCXIO	(1 << 8)
> -+#define TWL_COMMON_REGULATOR_VUSB	(1 << 9)
> -+#define TWL_COMMON_REGULATOR_CLK32KG	(1 << 10)
> -+
> - struct twl4030_platform_data;
> -
> - void omap_pmic_init(int bus, u32 clkrate, const char *pmic_type, int
> pmic_irq,
> -@@ -25,4 +42,7 @@ static inline void omap4_pmic_init(const char
> *pmic_type,
> - 	omap_pmic_init(1, 400, pmic_type, OMAP44XX_IRQ_SYS_1N,
> pmic_data);
> - }
> -
> -+void omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
> -+			   u32 pdata_flags, u32 regulators_flags);
> -+
> - #endif /* __OMAP_PMIC_COMMON__ */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0024-OMAP3-Move-
> common-twl-configuration-to-twl-common.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0024-OMAP3-Move-common-twl-configuration-to-twl-
> common.patch
> deleted file mode 100644
> index 6dfcc2c..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0024-OMAP3-Move-
> common-twl-configuration-to-twl-common.patch
> +++ /dev/null
> @@ -1,827 +0,0 @@
> -From 4a1b31f8aed87737ba84e1e5724ecfbe45732bc8 Mon Sep 17 00:00:00
> 2001
> -From: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -Date: Tue, 7 Jun 2011 10:28:54 +0300
> -Subject: [PATCH 024/149] OMAP3: Move common twl configuration to twl-
> common
> -
> -Reduce the amount of duplicated code by moving the common
> -configuration for twl4030/5030/tpsxx to the twl-common file.
> -Use the omap3_pmic_get_config function from board files to
> -properly configure the PMIC with the common fields.
> -
> -Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -Acked-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/mach-omap2/board-3430sdp.c          |   42 ++------------------
> - arch/arm/mach-omap2/board-cm-t35.c           |    9 +----
> - arch/arm/mach-omap2/board-devkit8000.c       |   18 +--------
> - arch/arm/mach-omap2/board-igep0020.c         |   20 ++--------
> - arch/arm/mach-omap2/board-ldp.c              |   15 +------
> - arch/arm/mach-omap2/board-omap3beagle.c      |   18 +--------
> - arch/arm/mach-omap2/board-omap3evm.c         |   24 +----------
> - arch/arm/mach-omap2/board-omap3pandora.c     |   17 +-------
> - arch/arm/mach-omap2/board-omap3stalker.c     |   24 +----------
> - arch/arm/mach-omap2/board-omap3touchbook.c   |   19 +--------
> - arch/arm/mach-omap2/board-overo.c            |   17 +-------
> - arch/arm/mach-omap2/board-rm680.c            |    8 +---
> - arch/arm/mach-omap2/board-rx51-peripherals.c |   15 +------
> - arch/arm/mach-omap2/board-zoom-peripherals.c |   51 +++++-------------------
> -
> - arch/arm/mach-omap2/twl-common.c             |   53
> ++++++++++++++++++++++++++
> - arch/arm/mach-omap2/twl-common.h             |    6 +++
> - 16 files changed, 99 insertions(+), 257 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-
> omap2/board-3430sdp.c
> -index 12fae21..8bbd4e0 100644
> ---- a/arch/arm/mach-omap2/board-3430sdp.c
> -+++ b/arch/arm/mach-omap2/board-3430sdp.c
> -@@ -231,22 +231,6 @@ static void __init omap_3430sdp_init_early(void)
> - 	omap2_init_common_devices(hyb18m512160af6_sdrc_params,
> NULL);
> - }
> -
> --static int sdp3430_batt_table[] = {
> --/* 0 C*/
> --30800, 29500, 28300, 27100,
> --26000, 24900, 23900, 22900, 22000, 21100, 20300, 19400, 18700, 17900,
> --17200, 16500, 15900, 15300, 14700, 14100, 13600, 13100, 12600, 12100,
> --11600, 11200, 10800, 10400, 10000, 9630,   9280,   8950,   8620,   8310,
> --8020,   7730,   7460,   7200,   6950,   6710,   6470,   6250,   6040,   5830,
> --5640,   5450,   5260,   5090,   4920,   4760,   4600,   4450,   4310,   4170,
> --4040,   3910,   3790,   3670,   3550
> --};
> --
> --static struct twl4030_bci_platform_data sdp3430_bci_data = {
> --	.battery_tmp_tbl	= sdp3430_batt_table,
> --	.tblsize		= ARRAY_SIZE(sdp3430_batt_table),
> --};
> --
> - static struct omap2_hsmmc_info mmc[] = {
> - 	{
> - 		.mmc		= 1,
> -@@ -292,14 +276,6 @@ static struct twl4030_gpio_platform_data
> sdp3430_gpio_data = {
> - 	.setup		= sdp3430_twl_gpio_setup,
> - };
> -
> --static struct twl4030_usb_data sdp3430_usb_data = {
> --	.usb_mode	= T2_USB_MODE_ULPI,
> --};
> --
> --static struct twl4030_madc_platform_data sdp3430_madc_data = {
> --	.irq_line	= 1,
> --};
> --
> - /* regulator consumer mappings */
> -
> - /* ads7846 on SPI */
> -@@ -463,24 +439,10 @@ static struct regulator_init_data sdp3430_vpll2 = {
> - 	.consumer_supplies	= sdp3430_vpll2_supplies,
> - };
> -
> --static struct twl4030_codec_audio_data sdp3430_audio;
> --
> --static struct twl4030_codec_data sdp3430_codec = {
> --	.audio_mclk = 26000000,
> --	.audio = &sdp3430_audio,
> --};
> --
> - static struct twl4030_platform_data sdp3430_twldata = {
> --	.irq_base	= TWL4030_IRQ_BASE,
> --	.irq_end	= TWL4030_IRQ_END,
> --
> - 	/* platform_data for children goes here */
> --	.bci		= &sdp3430_bci_data,
> - 	.gpio		= &sdp3430_gpio_data,
> --	.madc		= &sdp3430_madc_data,
> - 	.keypad		= &sdp3430_kp_data,
> --	.usb		= &sdp3430_usb_data,
> --	.codec		= &sdp3430_codec,
> -
> - 	.vaux1		= &sdp3430_vaux1,
> - 	.vaux2		= &sdp3430_vaux2,
> -@@ -496,7 +458,11 @@ static struct twl4030_platform_data
> sdp3430_twldata = {
> - static int __init omap3430_i2c_init(void)
> - {
> - 	/* i2c1 for PMIC only */
> -+	omap3_pmic_get_config(&sdp3430_twldata,
> -+			  TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_BCI |
> -+			  TWL_COMMON_PDATA_MADC |
> TWL_COMMON_PDATA_AUDIO, 0);
> - 	omap3_pmic_init("twl4030", &sdp3430_twldata);
> -+
> - 	/* i2c2 on camera connector (for sensor control) and optional isp1301
> */
> - 	omap_register_i2c_bus(2, 400, NULL, 0);
> - 	/* i2c3 on display connector (for DVI, tfp410) */
> -diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-
> omap2/board-cm-t35.c
> -index d76dca7..cb00abc 100644
> ---- a/arch/arm/mach-omap2/board-cm-t35.c
> -+++ b/arch/arm/mach-omap2/board-cm-t35.c
> -@@ -410,10 +410,6 @@ static struct regulator_init_data cm_t35_vpll2 = {
> - 	.consumer_supplies	= cm_t35_vdvi_supply,
> - };
> -
> --static struct twl4030_usb_data cm_t35_usb_data = {
> --	.usb_mode	= T2_USB_MODE_ULPI,
> --};
> --
> - static uint32_t cm_t35_keymap[] = {
> - 	KEY(0, 0, KEY_A),	KEY(0, 1, KEY_B),	KEY(0, 2, KEY_LEFT),
> - 	KEY(1, 0, KEY_UP),	KEY(1, 1, KEY_ENTER),	KEY(1, 2,
> KEY_DOWN),
> -@@ -492,12 +488,8 @@ static struct twl4030_gpio_platform_data
> cm_t35_gpio_data = {
> - };
> -
> - static struct twl4030_platform_data cm_t35_twldata = {
> --	.irq_base	= TWL4030_IRQ_BASE,
> --	.irq_end	= TWL4030_IRQ_END,
> --
> - 	/* platform_data for children goes here */
> - 	.keypad		= &cm_t35_kp_data,
> --	.usb		= &cm_t35_usb_data,
> - 	.gpio		= &cm_t35_gpio_data,
> - 	.vmmc1		= &cm_t35_vmmc1,
> - 	.vsim		= &cm_t35_vsim,
> -@@ -507,6 +499,7 @@ static struct twl4030_platform_data cm_t35_twldata
> = {
> -
> - static void __init cm_t35_init_i2c(void)
> - {
> -+	omap3_pmic_get_config(&cm_t35_twldata,
> TWL_COMMON_PDATA_USB, 0);
> - 	omap3_pmic_init("tps65930", &cm_t35_twldata);
> - }
> -
> -diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-
> omap2/board-devkit8000.c
> -index 949dbea..364942e 100644
> ---- a/arch/arm/mach-omap2/board-devkit8000.c
> -+++ b/arch/arm/mach-omap2/board-devkit8000.c
> -@@ -332,25 +332,9 @@ static struct regulator_init_data devkit8000_vio = {
> - 	.consumer_supplies      = devkit8000_vio_supply,
> - };
> -
> --static struct twl4030_usb_data devkit8000_usb_data = {
> --	.usb_mode	= T2_USB_MODE_ULPI,
> --};
> --
> --static struct twl4030_codec_audio_data devkit8000_audio_data;
> --
> --static struct twl4030_codec_data devkit8000_codec_data = {
> --	.audio_mclk = 26000000,
> --	.audio = &devkit8000_audio_data,
> --};
> --
> - static struct twl4030_platform_data devkit8000_twldata = {
> --	.irq_base	= TWL4030_IRQ_BASE,
> --	.irq_end	= TWL4030_IRQ_END,
> --
> - 	/* platform_data for children goes here */
> --	.usb		= &devkit8000_usb_data,
> - 	.gpio		= &devkit8000_gpio_data,
> --	.codec		= &devkit8000_codec_data,
> - 	.vmmc1		= &devkit8000_vmmc1,
> - 	.vdac		= &devkit8000_vdac,
> - 	.vpll1		= &devkit8000_vpll1,
> -@@ -360,6 +344,8 @@ static struct twl4030_platform_data
> devkit8000_twldata = {
> -
> - static int __init devkit8000_i2c_init(void)
> - {
> -+	omap3_pmic_get_config(&devkit8000_twldata,
> -+			  TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO, 0);
> - 	omap3_pmic_init("tps65930", &devkit8000_twldata);
> - 	/* Bus 3 is attached to the DVI port where devices like the pico DLP
> - 	 * projector don't work reliably with 400kHz */
> -diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-
> omap2/board-igep0020.c
> -index f683835..e0a6687 100644
> ---- a/arch/arm/mach-omap2/board-igep0020.c
> -+++ b/arch/arm/mach-omap2/board-igep0020.c
> -@@ -443,10 +443,6 @@ static struct twl4030_gpio_platform_data
> igep_twl4030_gpio_pdata = {
> - 	.setup		= igep_twl_gpio_setup,
> - };
> -
> --static struct twl4030_usb_data igep_usb_data = {
> --	.usb_mode	= T2_USB_MODE_ULPI,
> --};
> --
> - static int igep2_enable_dvi(struct omap_dss_device *dssdev)
> - {
> - 	gpio_direction_output(IGEP2_GPIO_DVI_PUP, 1);
> -@@ -522,13 +518,6 @@ static void __init igep_init_early(void)
> - 				  m65kxxxxam_sdrc_params);
> - }
> -
> --static struct twl4030_codec_audio_data igep2_audio_data;
> --
> --static struct twl4030_codec_data igep2_codec_data = {
> --	.audio_mclk = 26000000,
> --	.audio = &igep2_audio_data,
> --};
> --
> - static int igep2_keymap[] = {
> - 	KEY(0, 0, KEY_LEFT),
> - 	KEY(0, 1, KEY_RIGHT),
> -@@ -561,11 +550,7 @@ static struct twl4030_keypad_data
> igep2_keypad_pdata = {
> - };
> -
> - static struct twl4030_platform_data igep_twldata = {
> --	.irq_base	= TWL4030_IRQ_BASE,
> --	.irq_end	= TWL4030_IRQ_END,
> --
> - 	/* platform_data for children goes here */
> --	.usb		= &igep_usb_data,
> - 	.gpio		= &igep_twl4030_gpio_pdata,
> - 	.vmmc1          = &igep_vmmc1,
> - 	.vio		= &igep_vio,
> -@@ -581,6 +566,8 @@ static void __init igep_i2c_init(void)
> - {
> - 	int ret;
> -
> -+	omap3_pmic_get_config(&igep_twldata,
> TWL_COMMON_PDATA_USB, 0);
> -+
> - 	if (machine_is_igep0020()) {
> - 		/*
> - 		 * Bus 3 is attached to the DVI port where devices like the
> -@@ -591,9 +578,10 @@ static void __init igep_i2c_init(void)
> - 		if (ret)
> - 			pr_warning("IGEP2: Could not register I2C3 bus
> (%d)\n", ret);
> -
> --		igep_twldata.codec	= &igep2_codec_data;
> - 		igep_twldata.keypad	= &igep2_keypad_pdata;
> - 		igep_twldata.vpll2	= &igep2_vpll2;
> -+		/* Use common codec data */
> -+		omap3_pmic_get_config(&igep_twldata,
> TWL_COMMON_PDATA_AUDIO, 0);
> - 	}
> -
> - 	omap3_pmic_init("twl4030", &igep_twldata);
> -diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-
> omap2/board-ldp.c
> -index 5d4328f..218764c 100644
> ---- a/arch/arm/mach-omap2/board-ldp.c
> -+++ b/arch/arm/mach-omap2/board-ldp.c
> -@@ -199,20 +199,12 @@ static void __init omap_ldp_init_early(void)
> - 	omap2_init_common_devices(NULL, NULL);
> - }
> -
> --static struct twl4030_usb_data ldp_usb_data = {
> --	.usb_mode	= T2_USB_MODE_ULPI,
> --};
> --
> - static struct twl4030_gpio_platform_data ldp_gpio_data = {
> - 	.gpio_base	= OMAP_MAX_GPIO_LINES,
> - 	.irq_base	= TWL4030_GPIO_IRQ_BASE,
> - 	.irq_end	= TWL4030_GPIO_IRQ_END,
> - };
> -
> --static struct twl4030_madc_platform_data ldp_madc_data = {
> --	.irq_line	= 1,
> --};
> --
> - static struct regulator_consumer_supply ldp_vmmc1_supply[] = {
> - 	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> - };
> -@@ -253,12 +245,7 @@ static struct regulator_init_data ldp_vaux1 = {
> - };
> -
> - static struct twl4030_platform_data ldp_twldata = {
> --	.irq_base	= TWL4030_IRQ_BASE,
> --	.irq_end	= TWL4030_IRQ_END,
> --
> - 	/* platform_data for children goes here */
> --	.madc		= &ldp_madc_data,
> --	.usb		= &ldp_usb_data,
> - 	.vmmc1		= &ldp_vmmc1,
> - 	.vaux1		= &ldp_vaux1,
> - 	.gpio		= &ldp_gpio_data,
> -@@ -267,6 +254,8 @@ static struct twl4030_platform_data ldp_twldata = {
> -
> - static int __init omap_i2c_init(void)
> - {
> -+	omap3_pmic_get_config(&ldp_twldata,
> -+			  TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_MADC, 0);
> - 	omap3_pmic_init("twl4030", &ldp_twldata);
> - 	omap_register_i2c_bus(2, 400, NULL, 0);
> - 	omap_register_i2c_bus(3, 400, NULL, 0);
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 2d8dfb3..ec61e9c 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -380,25 +380,9 @@ static struct regulator_init_data beagle_vpll2 = {
> - 	.consumer_supplies	= beagle_vdvi_supplies,
> - };
> -
> --static struct twl4030_usb_data beagle_usb_data = {
> --	.usb_mode	= T2_USB_MODE_ULPI,
> --};
> --
> --static struct twl4030_codec_audio_data beagle_audio_data;
> --
> --static struct twl4030_codec_data beagle_codec_data = {
> --	.audio_mclk = 26000000,
> --	.audio = &beagle_audio_data,
> --};
> --
> - static struct twl4030_platform_data beagle_twldata = {
> --	.irq_base	= TWL4030_IRQ_BASE,
> --	.irq_end	= TWL4030_IRQ_END,
> --
> - 	/* platform_data for children goes here */
> --	.usb		= &beagle_usb_data,
> - 	.gpio		= &beagle_gpio_data,
> --	.codec		= &beagle_codec_data,
> - 	.vmmc1		= &beagle_vmmc1,
> - 	.vsim		= &beagle_vsim,
> - 	.vdac		= &beagle_vdac,
> -@@ -413,6 +397,8 @@ static struct i2c_board_info __initdata
> beagle_i2c_eeprom[] = {
> -
> - static int __init omap3_beagle_i2c_init(void)
> - {
> -+	omap3_pmic_get_config(&beagle_twldata,
> -+			  TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO, 0);
> - 	omap3_pmic_init("twl4030", &beagle_twldata);
> - 	/* Bus 3 is attached to the DVI port where devices like the pico DLP
> - 	 * projector don't work reliably with 400kHz */
> -diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-
> omap2/board-omap3evm.c
> -index 57bce0f..1ca298a 100644
> ---- a/arch/arm/mach-omap2/board-omap3evm.c
> -+++ b/arch/arm/mach-omap2/board-omap3evm.c
> -@@ -396,10 +396,6 @@ static struct twl4030_gpio_platform_data
> omap3evm_gpio_data = {
> - 	.setup		= omap3evm_twl_gpio_setup,
> - };
> -
> --static struct twl4030_usb_data omap3evm_usb_data = {
> --	.usb_mode	= T2_USB_MODE_ULPI,
> --};
> --
> - static uint32_t board_keymap[] = {
> - 	KEY(0, 0, KEY_LEFT),
> - 	KEY(0, 1, KEY_DOWN),
> -@@ -434,17 +430,6 @@ static struct twl4030_keypad_data
> omap3evm_kp_data = {
> - 	.rep		= 1,
> - };
> -
> --static struct twl4030_madc_platform_data omap3evm_madc_data = {
> --	.irq_line	= 1,
> --};
> --
> --static struct twl4030_codec_audio_data omap3evm_audio_data;
> --
> --static struct twl4030_codec_data omap3evm_codec_data = {
> --	.audio_mclk = 26000000,
> --	.audio = &omap3evm_audio_data,
> --};
> --
> - static struct regulator_consumer_supply omap3_evm_vdda_dac_supply[] = {
> - 	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> - };
> -@@ -547,15 +532,9 @@ struct wl12xx_platform_data omap3evm_wlan_data
> __initdata = {
> - #endif
> -
> - static struct twl4030_platform_data omap3evm_twldata = {
> --	.irq_base	= TWL4030_IRQ_BASE,
> --	.irq_end	= TWL4030_IRQ_END,
> --
> - 	/* platform_data for children goes here */
> - 	.keypad		= &omap3evm_kp_data,
> --	.madc		= &omap3evm_madc_data,
> --	.usb		= &omap3evm_usb_data,
> - 	.gpio		= &omap3evm_gpio_data,
> --	.codec		= &omap3evm_codec_data,
> - 	.vdac		= &omap3_evm_vdac,
> - 	.vpll2		= &omap3_evm_vpll2,
> - 	.vio		= &omap3evm_vio,
> -@@ -565,6 +544,9 @@ static struct twl4030_platform_data
> omap3evm_twldata = {
> -
> - static int __init omap3_evm_i2c_init(void)
> - {
> -+	omap3_pmic_get_config(&omap3evm_twldata,
> -+			  TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_MADC |
> -+			  TWL_COMMON_PDATA_AUDIO, 0);
> - 	omap3_pmic_init("twl4030", &omap3evm_twldata);
> - 	omap_register_i2c_bus(2, 400, NULL, 0);
> - 	omap_register_i2c_bus(3, 400, NULL, 0);
> -diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-
> omap2/board-omap3pandora.c
> -index d4ea940..f5abf76 100644
> ---- a/arch/arm/mach-omap2/board-omap3pandora.c
> -+++ b/arch/arm/mach-omap2/board-omap3pandora.c
> -@@ -508,25 +508,10 @@ static struct platform_device
> pandora_vwlan_device = {
> - 	},
> - };
> -
> --static struct twl4030_usb_data omap3pandora_usb_data = {
> --	.usb_mode	= T2_USB_MODE_ULPI,
> --};
> --
> --static struct twl4030_codec_audio_data omap3pandora_audio_data;
> --
> --static struct twl4030_codec_data omap3pandora_codec_data = {
> --	.audio_mclk = 26000000,
> --	.audio = &omap3pandora_audio_data,
> --};
> --
> - static struct twl4030_bci_platform_data pandora_bci_data;
> -
> - static struct twl4030_platform_data omap3pandora_twldata = {
> --	.irq_base	= TWL4030_IRQ_BASE,
> --	.irq_end	= TWL4030_IRQ_END,
> - 	.gpio		= &omap3pandora_gpio_data,
> --	.usb		= &omap3pandora_usb_data,
> --	.codec		= &omap3pandora_codec_data,
> - 	.vmmc1		= &pandora_vmmc1,
> - 	.vmmc2		= &pandora_vmmc2,
> - 	.vdac		= &pandora_vdac,
> -@@ -548,6 +533,8 @@ static struct i2c_board_info __initdata
> omap3pandora_i2c3_boardinfo[] = {
> -
> - static int __init omap3pandora_i2c_init(void)
> - {
> -+	omap3_pmic_get_config(&omap3pandora_twldata,
> -+			      TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO, 0);
> - 	omap3_pmic_init("tps65950", &omap3pandora_twldata);
> - 	/* i2c2 pins are not connected */
> - 	omap_register_i2c_bus(3, 100, omap3pandora_i2c3_boardinfo,
> -diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-
> omap2/board-omap3stalker.c
> -index b8ad4dd..6e59e59 100644
> ---- a/arch/arm/mach-omap2/board-omap3stalker.c
> -+++ b/arch/arm/mach-omap2/board-omap3stalker.c
> -@@ -349,10 +349,6 @@ static struct twl4030_gpio_platform_data
> omap3stalker_gpio_data = {
> - 	.setup		= omap3stalker_twl_gpio_setup,
> - };
> -
> --static struct twl4030_usb_data omap3stalker_usb_data = {
> --	.usb_mode	= T2_USB_MODE_ULPI,
> --};
> --
> - static uint32_t board_keymap[] = {
> - 	KEY(0, 0, KEY_LEFT),
> - 	KEY(0, 1, KEY_DOWN),
> -@@ -387,17 +383,6 @@ static struct twl4030_keypad_data
> omap3stalker_kp_data = {
> - 	.rep		= 1,
> - };
> -
> --static struct twl4030_madc_platform_data omap3stalker_madc_data = {
> --	.irq_line	= 1,
> --};
> --
> --static struct twl4030_codec_audio_data omap3stalker_audio_data;
> --
> --static struct twl4030_codec_data omap3stalker_codec_data = {
> --	.audio_mclk	= 26000000,
> --	.audio		= &omap3stalker_audio_data,
> --};
> --
> - static struct regulator_consumer_supply omap3_stalker_vdda_dac_supply[] =
> {
> - 	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> - };
> -@@ -439,15 +424,9 @@ static struct regulator_init_data
> omap3_stalker_vpll2 = {
> - };
> -
> - static struct twl4030_platform_data omap3stalker_twldata = {
> --	.irq_base	= TWL4030_IRQ_BASE,
> --	.irq_end	= TWL4030_IRQ_END,
> --
> - 	/* platform_data for children goes here */
> - 	.keypad		= &omap3stalker_kp_data,
> --	.madc		= &omap3stalker_madc_data,
> --	.usb		= &omap3stalker_usb_data,
> - 	.gpio		= &omap3stalker_gpio_data,
> --	.codec		= &omap3stalker_codec_data,
> - 	.vdac		= &omap3_stalker_vdac,
> - 	.vpll2		= &omap3_stalker_vpll2,
> - 	.vmmc1		= &omap3stalker_vmmc1,
> -@@ -470,6 +449,9 @@ static struct i2c_board_info __initdata
> omap3stalker_i2c_boardinfo3[] = {
> -
> - static int __init omap3_stalker_i2c_init(void)
> - {
> -+	omap3_pmic_get_config(&omap3stalker_twldata,
> -+			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_MADC |
> -+			TWL_COMMON_PDATA_AUDIO, 0);
> - 	omap3_pmic_init("twl4030", &omap3stalker_twldata);
> - 	omap_register_i2c_bus(2, 400, NULL, 0);
> - 	omap_register_i2c_bus(3, 400, omap3stalker_i2c_boardinfo3,
> -diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c
> b/arch/arm/mach-omap2/board-omap3touchbook.c
> -index 57e6ed3..717972c 100644
> ---- a/arch/arm/mach-omap2/board-omap3touchbook.c
> -+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
> -@@ -235,25 +235,9 @@ static struct regulator_init_data touchbook_vpll2 = {
> - 	.consumer_supplies	= touchbook_vdvi_supply,
> - };
> -
> --static struct twl4030_usb_data touchbook_usb_data = {
> --	.usb_mode	= T2_USB_MODE_ULPI,
> --};
> --
> --static struct twl4030_codec_audio_data touchbook_audio_data;
> --
> --static struct twl4030_codec_data touchbook_codec_data = {
> --	.audio_mclk = 26000000,
> --	.audio = &touchbook_audio_data,
> --};
> --
> - static struct twl4030_platform_data touchbook_twldata = {
> --	.irq_base	= TWL4030_IRQ_BASE,
> --	.irq_end	= TWL4030_IRQ_END,
> --
> - 	/* platform_data for children goes here */
> --	.usb		= &touchbook_usb_data,
> - 	.gpio		= &touchbook_gpio_data,
> --	.codec		= &touchbook_codec_data,
> - 	.vmmc1		= &touchbook_vmmc1,
> - 	.vsim		= &touchbook_vsim,
> - 	.vdac		= &touchbook_vdac,
> -@@ -269,8 +253,9 @@ static struct i2c_board_info __initdata
> touchBook_i2c_boardinfo[] = {
> - static int __init omap3_touchbook_i2c_init(void)
> - {
> - 	/* Standard TouchBook bus */
> -+	omap3_pmic_get_config(&touchbook_twldata,
> -+			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO, 0);
> - 	omap3_pmic_init("twl4030", &touchbook_twldata);
> --
> - 	/* Additional TouchBook bus */
> - 	omap_register_i2c_bus(3, 100, touchBook_i2c_boardinfo,
> - 			ARRAY_SIZE(touchBook_i2c_boardinfo));
> -diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-
> omap2/board-overo.c
> -index 1bf2f39..776b444 100644
> ---- a/arch/arm/mach-omap2/board-overo.c
> -+++ b/arch/arm/mach-omap2/board-overo.c
> -@@ -433,10 +433,6 @@ static struct twl4030_gpio_platform_data
> overo_gpio_data = {
> - 	.setup		= overo_twl_gpio_setup,
> - };
> -
> --static struct twl4030_usb_data overo_usb_data = {
> --	.usb_mode	= T2_USB_MODE_ULPI,
> --};
> --
> - static struct regulator_init_data overo_vmmc1 = {
> - 	.constraints = {
> - 		.min_uV			= 1850000,
> -@@ -480,19 +476,8 @@ static struct regulator_init_data overo_vpll2 = {
> - 	.consumer_supplies	= overo_vdds_dsi_supply,
> - };
> -
> --static struct twl4030_codec_audio_data overo_audio_data;
> --
> --static struct twl4030_codec_data overo_codec_data = {
> --	.audio_mclk = 26000000,
> --	.audio = &overo_audio_data,
> --};
> --
> - static struct twl4030_platform_data overo_twldata = {
> --	.irq_base	= TWL4030_IRQ_BASE,
> --	.irq_end	= TWL4030_IRQ_END,
> - 	.gpio		= &overo_gpio_data,
> --	.usb		= &overo_usb_data,
> --	.codec		= &overo_codec_data,
> - 	.vmmc1		= &overo_vmmc1,
> - 	.vdac		= &overo_vdac,
> - 	.vpll2		= &overo_vpll2,
> -@@ -500,6 +485,8 @@ static struct twl4030_platform_data overo_twldata =
> {
> -
> - static int __init overo_i2c_init(void)
> - {
> -+	omap3_pmic_get_config(&overo_twldata,
> -+			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO, 0);
> - 	omap3_pmic_init("tps65950", &overo_twldata);
> - 	/* i2c2 pins are used for gpio */
> - 	omap_register_i2c_bus(3, 400, NULL, 0);
> -diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-
> omap2/board-rm680.c
> -index 54dceb1..7dfed24 100644
> ---- a/arch/arm/mach-omap2/board-rm680.c
> -+++ b/arch/arm/mach-omap2/board-rm680.c
> -@@ -79,20 +79,14 @@ static struct twl4030_gpio_platform_data
> rm680_gpio_data = {
> - 	.pulldowns		= BIT(1) | BIT(2) | BIT(8) | BIT(15),
> - };
> -
> --static struct twl4030_usb_data rm680_usb_data = {
> --	.usb_mode		= T2_USB_MODE_ULPI,
> --};
> --
> - static struct twl4030_platform_data rm680_twl_data = {
> --	.irq_base		= TWL4030_IRQ_BASE,
> --	.irq_end		= TWL4030_IRQ_END,
> - 	.gpio			= &rm680_gpio_data,
> --	.usb			= &rm680_usb_data,
> - 	/* add rest of the children here */
> - };
> -
> - static void __init rm680_i2c_init(void)
> - {
> -+	omap3_pmic_get_config(&rm680_twl_data,
> TWL_COMMON_PDATA_USB, 0);
> - 	omap_pmic_init(1, 2900, "twl5031", INT_34XX_SYS_NIRQ,
> &rm680_twl_data);
> - 	omap_register_i2c_bus(2, 400, NULL, 0);
> - 	omap_register_i2c_bus(3, 400, NULL, 0);
> -diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c
> b/arch/arm/mach-omap2/board-rx51-peripherals.c
> -index b633ba8..3cdea39 100644
> ---- a/arch/arm/mach-omap2/board-rx51-peripherals.c
> -+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
> -@@ -288,10 +288,6 @@ static struct twl4030_keypad_data rx51_kp_data = {
> - 	.rep		= 1,
> - };
> -
> --static struct twl4030_madc_platform_data rx51_madc_data = {
> --	.irq_line		= 1,
> --};
> --
> - /* Enable input logic and pull all lines up when eMMC is on. */
> - static struct omap_board_mux rx51_mmc2_on_mux[] = {
> - 	OMAP3_MUX(SDMMC2_CMD, OMAP_PIN_INPUT_PULLUP |
> OMAP_MUX_MODE0),
> -@@ -603,10 +599,6 @@ static struct twl4030_gpio_platform_data
> rx51_gpio_data = {
> - 	.setup			= rx51_twlgpio_setup,
> - };
> -
> --static struct twl4030_usb_data rx51_usb_data = {
> --	.usb_mode		= T2_USB_MODE_ULPI,
> --};
> --
> - static struct twl4030_ins sleep_on_seq[] __initdata = {
> - /*
> -  * Turn off everything
> -@@ -778,14 +770,9 @@ struct twl4030_codec_data rx51_codec_data
> __initdata = {
> - };
> -
> - static struct twl4030_platform_data rx51_twldata __initdata = {
> --	.irq_base		= TWL4030_IRQ_BASE,
> --	.irq_end		= TWL4030_IRQ_END,
> --
> - 	/* platform_data for children goes here */
> - 	.gpio			= &rx51_gpio_data,
> - 	.keypad			= &rx51_kp_data,
> --	.madc			= &rx51_madc_data,
> --	.usb			= &rx51_usb_data,
> - 	.power			= &rx51_t2scripts_data,
> - 	.codec			= &rx51_codec_data,
> -
> -@@ -850,6 +837,8 @@ static int __init rx51_i2c_init(void)
> - 		rx51_twldata.vaux3 = &rx51_vaux3_cam;
> - 	}
> - 	rx51_twldata.vmmc2 = &rx51_vmmc2;
> -+	omap3_pmic_get_config(&rx51_twldata,
> -+			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_MADC, 0);
> - 	omap_pmic_init(1, 2200, "twl5030", INT_34XX_SYS_NIRQ,
> &rx51_twldata);
> - 	omap_register_i2c_bus(2, 100, rx51_peripherals_i2c_board_info_2,
> - 			      ARRAY_SIZE(rx51_peripherals_i2c_board_info_2));
> -diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c
> b/arch/arm/mach-omap2/board-zoom-peripherals.c
> -index 8495f82..6d8df1b 100644
> ---- a/arch/arm/mach-omap2/board-zoom-peripherals.c
> -+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
> -@@ -285,26 +285,6 @@ static void zoom2_set_hs_extmute(int mute)
> - 	gpio_set_value(ZOOM2_HEADSET_EXTMUTE_GPIO, mute);
> - }
> -
> --static int zoom_batt_table[] = {
> --/* 0 C*/
> --30800, 29500, 28300, 27100,
> --26000, 24900, 23900, 22900, 22000, 21100, 20300, 19400, 18700, 17900,
> --17200, 16500, 15900, 15300, 14700, 14100, 13600, 13100, 12600, 12100,
> --11600, 11200, 10800, 10400, 10000, 9630,  9280,  8950,  8620,  8310,
> --8020,  7730,  7460,  7200,  6950,  6710,  6470,  6250,  6040,  5830,
> --5640,  5450,  5260,  5090,  4920,  4760,  4600,  4450,  4310,  4170,
> --4040,  3910,  3790,  3670,  3550
> --};
> --
> --static struct twl4030_bci_platform_data zoom_bci_data = {
> --	.battery_tmp_tbl	= zoom_batt_table,
> --	.tblsize		= ARRAY_SIZE(zoom_batt_table),
> --};
> --
> --static struct twl4030_usb_data zoom_usb_data = {
> --	.usb_mode	= T2_USB_MODE_ULPI,
> --};
> --
> - static struct twl4030_gpio_platform_data zoom_gpio_data = {
> - 	.gpio_base	= OMAP_MAX_GPIO_LINES,
> - 	.irq_base	= TWL4030_GPIO_IRQ_BASE,
> -@@ -312,28 +292,10 @@ static struct twl4030_gpio_platform_data
> zoom_gpio_data = {
> - 	.setup		= zoom_twl_gpio_setup,
> - };
> -
> --static struct twl4030_madc_platform_data zoom_madc_data = {
> --	.irq_line	= 1,
> --};
> --
> --static struct twl4030_codec_audio_data zoom_audio_data;
> --
> --static struct twl4030_codec_data zoom_codec_data = {
> --	.audio_mclk = 26000000,
> --	.audio = &zoom_audio_data,
> --};
> --
> - static struct twl4030_platform_data zoom_twldata = {
> --	.irq_base	= TWL4030_IRQ_BASE,
> --	.irq_end	= TWL4030_IRQ_END,
> --
> - 	/* platform_data for children goes here */
> --	.bci		= &zoom_bci_data,
> --	.madc		= &zoom_madc_data,
> --	.usb		= &zoom_usb_data,
> - 	.gpio		= &zoom_gpio_data,
> - 	.keypad		= &zoom_kp_twl4030_data,
> --	.codec		= &zoom_codec_data,
> - 	.vmmc1          = &zoom_vmmc1,
> - 	.vmmc2          = &zoom_vmmc2,
> - 	.vsim           = &zoom_vsim,
> -@@ -343,10 +305,17 @@ static struct twl4030_platform_data zoom_twldata
> = {
> -
> - static int __init omap_i2c_init(void)
> - {
> -+	omap3_pmic_get_config(&zoom_twldata,
> -+			  TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_BCI |
> -+			  TWL_COMMON_PDATA_MADC |
> TWL_COMMON_PDATA_AUDIO, 0);
> -+
> - 	if (machine_is_omap_zoom2()) {
> --		zoom_audio_data.ramp_delay_value = 3;	/* 161 ms */
> --		zoom_audio_data.hs_extmute = 1;
> --		zoom_audio_data.set_hs_extmute = zoom2_set_hs_extmute;
> -+		struct twl4030_codec_audio_data *audio_data;
> -+		audio_data = zoom_twldata.codec->audio;
> -+
> -+		audio_data->ramp_delay_value = 3;	/* 161 ms */
> -+		audio_data->hs_extmute = 1;
> -+		audio_data->set_hs_extmute = zoom2_set_hs_extmute;
> - 	}
> - 	omap_pmic_init(1, 2400, "twl5030", INT_34XX_SYS_NIRQ,
> &zoom_twldata);
> - 	omap_register_i2c_bus(2, 400, NULL, 0);
> -diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-
> omap2/twl-common.c
> -index cf80f4c..9e8decf 100644
> ---- a/arch/arm/mach-omap2/twl-common.c
> -+++ b/arch/arm/mach-omap2/twl-common.c
> -@@ -56,6 +56,37 @@ static struct twl4030_usb_data omap4_usb_pdata = {
> - 	.phy_suspend	= omap4430_phy_suspend,
> - };
> -
> -+static struct twl4030_usb_data omap3_usb_pdata = {
> -+	.usb_mode	= T2_USB_MODE_ULPI,
> -+};
> -+
> -+static int omap3_batt_table[] = {
> -+/* 0 C */
> -+30800, 29500, 28300, 27100,
> -+26000, 24900, 23900, 22900, 22000, 21100, 20300, 19400, 18700, 17900,
> -+17200, 16500, 15900, 15300, 14700, 14100, 13600, 13100, 12600, 12100,
> -+11600, 11200, 10800, 10400, 10000, 9630,  9280,  8950,  8620,  8310,
> -+8020,  7730,  7460,  7200,  6950,  6710,  6470,  6250,  6040,  5830,
> -+5640,  5450,  5260,  5090,  4920,  4760,  4600,  4450,  4310,  4170,
> -+4040,  3910,  3790,  3670,  3550
> -+};
> -+
> -+static struct twl4030_bci_platform_data omap3_bci_pdata = {
> -+	.battery_tmp_tbl	= omap3_batt_table,
> -+	.tblsize		= ARRAY_SIZE(omap3_batt_table),
> -+};
> -+
> -+static struct twl4030_madc_platform_data omap3_madc_pdata = {
> -+	.irq_line	= 1,
> -+};
> -+
> -+static struct twl4030_codec_audio_data omap3_audio;
> -+
> -+static struct twl4030_codec_data omap3_codec_pdata = {
> -+	.audio_mclk = 26000000,
> -+	.audio = &omap3_audio,
> -+};
> -+
> - static struct regulator_init_data omap4_vdac_idata = {
> - 	.constraints = {
> - 		.min_uV			= 1800000,
> -@@ -207,3 +238,25 @@ void __init omap4_pmic_get_config(struct
> twl4030_platform_data *pmic_data,
> - 	    !pmic_data->clk32kg)
> - 		pmic_data->clk32kg = &omap4_clk32kg_idata;
> - }
> -+
> -+void __init omap3_pmic_get_config(struct twl4030_platform_data
> *pmic_data,
> -+				  u32 pdata_flags, u32 regulators_flags)
> -+{
> -+	if (!pmic_data->irq_base)
> -+		pmic_data->irq_base = TWL4030_IRQ_BASE;
> -+	if (!pmic_data->irq_end)
> -+		pmic_data->irq_end = TWL4030_IRQ_END;
> -+
> -+	/* Common platform data configurations */
> -+	if (pdata_flags & TWL_COMMON_PDATA_USB && !pmic_data->usb)
> -+		pmic_data->usb = &omap3_usb_pdata;
> -+
> -+	if (pdata_flags & TWL_COMMON_PDATA_BCI && !pmic_data->bci)
> -+		pmic_data->bci = &omap3_bci_pdata;
> -+
> -+	if (pdata_flags & TWL_COMMON_PDATA_MADC && !pmic_data-
> >madc)
> -+		pmic_data->madc = &omap3_madc_pdata;
> -+
> -+	if (pdata_flags & TWL_COMMON_PDATA_AUDIO && !pmic_data-
> >codec)
> -+		pmic_data->codec = &omap3_codec_pdata;
> -+}
> -diff --git a/arch/arm/mach-omap2/twl-common.h b/arch/arm/mach-
> omap2/twl-common.h
> -index d96c289..3b4b05d 100644
> ---- a/arch/arm/mach-omap2/twl-common.h
> -+++ b/arch/arm/mach-omap2/twl-common.h
> -@@ -2,6 +2,9 @@
> - #define __OMAP_PMIC_COMMON__
> -
> - #define TWL_COMMON_PDATA_USB		(1 << 0)
> -+#define TWL_COMMON_PDATA_BCI		(1 << 1)
> -+#define TWL_COMMON_PDATA_MADC		(1 << 2)
> -+#define TWL_COMMON_PDATA_AUDIO		(1 << 3)
> -
> - /* Common LDO regulators for TWL4030/TWL6030 */
> - #define TWL_COMMON_REGULATOR_VDAC	(1 << 0)
> -@@ -42,6 +45,9 @@ static inline void omap4_pmic_init(const char
> *pmic_type,
> - 	omap_pmic_init(1, 400, pmic_type, OMAP44XX_IRQ_SYS_1N,
> pmic_data);
> - }
> -
> -+void omap3_pmic_get_config(struct twl4030_platform_data *pmic_data,
> -+			   u32 pdata_flags, u32 regulators_flags);
> -+
> - void omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
> - 			   u32 pdata_flags, u32 regulators_flags);
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0025-OMAP3-Move-
> common-regulator-configuration-to-twl-com.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0025-OMAP3-Move-common-regulator-
> configuration-to-twl-com.patch
> deleted file mode 100644
> index 4ea0aca..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0025-OMAP3-Move-
> common-regulator-configuration-to-twl-com.patch
> +++ /dev/null
> @@ -1,924 +0,0 @@
> -From df02a0c8e1d42d1f861d138d1283172872c602ed Mon Sep 17 00:00:00
> 2001
> -From: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -Date: Tue, 7 Jun 2011 11:38:24 +0300
> -Subject: [PATCH 025/149] OMAP3: Move common regulator configuration to
> twl-common
> -
> -Some regulator config can be moved out from board files,
> -since they are close to identical.
> -
> -Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
> -Acked-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/mach-omap2/board-3430sdp.c          |   51 ++++----------------------
> - arch/arm/mach-omap2/board-cm-t35.c           |   44 ++++------------------
> - arch/arm/mach-omap2/board-devkit8000.c       |   22 +----------
> - arch/arm/mach-omap2/board-igep0020.c         |   28 +++------------
> - arch/arm/mach-omap2/board-omap3beagle.c      |   46 +++---------------------
> - arch/arm/mach-omap2/board-omap3evm.c         |   50 ++++----------------------
> - arch/arm/mach-omap2/board-omap3pandora.c     |   47 +++++-------------------
> - arch/arm/mach-omap2/board-omap3stalker.c     |   50 ++++----------------------
> - arch/arm/mach-omap2/board-omap3touchbook.c   |   44 ++++++---------------
> -
> - arch/arm/mach-omap2/board-overo.c            |   46 +++---------------------
> - arch/arm/mach-omap2/board-rx51-peripherals.c |   27 +++-----------
> - arch/arm/mach-omap2/board-zoom-peripherals.c |   42 ++--------------------
> - arch/arm/mach-omap2/twl-common.c             |   42
> +++++++++++++++++++++
> - arch/arm/mach-omap2/twl-common.h             |    5 +++
> - 14 files changed, 124 insertions(+), 420 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-
> omap2/board-3430sdp.c
> -index 8bbd4e0..bd600cf 100644
> ---- a/arch/arm/mach-omap2/board-3430sdp.c
> -+++ b/arch/arm/mach-omap2/board-3430sdp.c
> -@@ -283,16 +283,6 @@ static struct regulator_consumer_supply
> sdp3430_vaux3_supplies[] = {
> - 	REGULATOR_SUPPLY("vcc", "spi1.0"),
> - };
> -
> --static struct regulator_consumer_supply sdp3430_vdda_dac_supplies[] = {
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> --};
> --
> --/* VPLL2 for digital video outputs */
> --static struct regulator_consumer_supply sdp3430_vpll2_supplies[] = {
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
> --};
> --
> - static struct regulator_consumer_supply sdp3430_vmmc1_supplies[] = {
> - 	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
> - };
> -@@ -409,36 +399,6 @@ static struct regulator_init_data sdp3430_vsim = {
> - 	.consumer_supplies	= sdp3430_vsim_supplies,
> - };
> -
> --/* VDAC for DSS driving S-Video */
> --static struct regulator_init_data sdp3430_vdac = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(sdp3430_vdda_dac_supplies),
> --	.consumer_supplies	= sdp3430_vdda_dac_supplies,
> --};
> --
> --static struct regulator_init_data sdp3430_vpll2 = {
> --	.constraints = {
> --		.name			= "VDVI",
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(sdp3430_vpll2_supplies),
> --	.consumer_supplies	= sdp3430_vpll2_supplies,
> --};
> --
> - static struct twl4030_platform_data sdp3430_twldata = {
> - 	/* platform_data for children goes here */
> - 	.gpio		= &sdp3430_gpio_data,
> -@@ -451,16 +411,19 @@ static struct twl4030_platform_data
> sdp3430_twldata = {
> - 	.vmmc1		= &sdp3430_vmmc1,
> - 	.vmmc2		= &sdp3430_vmmc2,
> - 	.vsim		= &sdp3430_vsim,
> --	.vdac		= &sdp3430_vdac,
> --	.vpll2		= &sdp3430_vpll2,
> - };
> -
> - static int __init omap3430_i2c_init(void)
> - {
> - 	/* i2c1 for PMIC only */
> - 	omap3_pmic_get_config(&sdp3430_twldata,
> --			  TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_BCI |
> --			  TWL_COMMON_PDATA_MADC |
> TWL_COMMON_PDATA_AUDIO, 0);
> -+			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_BCI |
> -+			TWL_COMMON_PDATA_MADC |
> TWL_COMMON_PDATA_AUDIO,
> -+			TWL_COMMON_REGULATOR_VDAC |
> TWL_COMMON_REGULATOR_VPLL2);
> -+	sdp3430_twldata.vdac->constraints.apply_uV = true;
> -+	sdp3430_twldata.vpll2->constraints.apply_uV = true;
> -+	sdp3430_twldata.vpll2->constraints.name = "VDVI";
> -+
> - 	omap3_pmic_init("twl4030", &sdp3430_twldata);
> -
> - 	/* i2c2 on camera connector (for sensor control) and optional isp1301
> */
> -diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-
> omap2/board-cm-t35.c
> -index cb00abc..35891d4 100644
> ---- a/arch/arm/mach-omap2/board-cm-t35.c
> -+++ b/arch/arm/mach-omap2/board-cm-t35.c
> -@@ -343,10 +343,6 @@ static struct regulator_consumer_supply
> cm_t35_vsim_supply[] = {
> - 	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"),
> - };
> -
> --static struct regulator_consumer_supply cm_t35_vdac_supply[] = {
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> --};
> --
> - static struct regulator_consumer_supply cm_t35_vdvi_supply[] = {
> - 	REGULATOR_SUPPLY("vdvi", "omapdss"),
> - };
> -@@ -381,35 +377,6 @@ static struct regulator_init_data cm_t35_vsim = {
> - 	.consumer_supplies	= cm_t35_vsim_supply,
> - };
> -
> --/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
> --static struct regulator_init_data cm_t35_vdac = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	= ARRAY_SIZE(cm_t35_vdac_supply),
> --	.consumer_supplies	= cm_t35_vdac_supply,
> --};
> --
> --/* VPLL2 for digital video outputs */
> --static struct regulator_init_data cm_t35_vpll2 = {
> --	.constraints = {
> --		.name			= "VDVI",
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	= ARRAY_SIZE(cm_t35_vdvi_supply),
> --	.consumer_supplies	= cm_t35_vdvi_supply,
> --};
> --
> - static uint32_t cm_t35_keymap[] = {
> - 	KEY(0, 0, KEY_A),	KEY(0, 1, KEY_B),	KEY(0, 2, KEY_LEFT),
> - 	KEY(1, 0, KEY_UP),	KEY(1, 1, KEY_ENTER),	KEY(1, 2,
> KEY_DOWN),
> -@@ -493,13 +460,18 @@ static struct twl4030_platform_data
> cm_t35_twldata = {
> - 	.gpio		= &cm_t35_gpio_data,
> - 	.vmmc1		= &cm_t35_vmmc1,
> - 	.vsim		= &cm_t35_vsim,
> --	.vdac		= &cm_t35_vdac,
> --	.vpll2		= &cm_t35_vpll2,
> - };
> -
> - static void __init cm_t35_init_i2c(void)
> - {
> --	omap3_pmic_get_config(&cm_t35_twldata,
> TWL_COMMON_PDATA_USB, 0);
> -+	omap3_pmic_get_config(&cm_t35_twldata,
> TWL_COMMON_PDATA_USB,
> -+			TWL_COMMON_REGULATOR_VDAC |
> TWL_COMMON_REGULATOR_VPLL2);
> -+
> -+	cm_t35_twldata.vpll2->constraints.name = "VDVI";
> -+	cm_t35_twldata.vpll2->num_consumer_supplies =
> -+
> 	ARRAY_SIZE(cm_t35_vdvi_supply);
> -+	cm_t35_twldata.vpll2->consumer_supplies = cm_t35_vdvi_supply;
> -+
> - 	omap3_pmic_init("tps65930", &cm_t35_twldata);
> - }
> -
> -diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-
> omap2/board-devkit8000.c
> -index 364942e..b6002ec 100644
> ---- a/arch/arm/mach-omap2/board-devkit8000.c
> -+++ b/arch/arm/mach-omap2/board-devkit8000.c
> -@@ -186,10 +186,6 @@ static struct omap_dss_board_info
> devkit8000_dss_data = {
> - 	.default_device = &devkit8000_lcd_device,
> - };
> -
> --static struct regulator_consumer_supply devkit8000_vdda_dac_supply[] = {
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> --};
> --
> - static uint32_t board_keymap[] = {
> - 	KEY(0, 0, KEY_1),
> - 	KEY(1, 0, KEY_2),
> -@@ -289,20 +285,6 @@ static struct regulator_init_data devkit8000_vmmc1
> = {
> - 	.consumer_supplies	= devkit8000_vmmc1_supply,
> - };
> -
> --/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
> --static struct regulator_init_data devkit8000_vdac = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(devkit8000_vdda_dac_supply),
> --	.consumer_supplies	= devkit8000_vdda_dac_supply,
> --};
> --
> - /* VPLL1 for digital video outputs */
> - static struct regulator_init_data devkit8000_vpll1 = {
> - 	.constraints = {
> -@@ -336,7 +318,6 @@ static struct twl4030_platform_data
> devkit8000_twldata = {
> - 	/* platform_data for children goes here */
> - 	.gpio		= &devkit8000_gpio_data,
> - 	.vmmc1		= &devkit8000_vmmc1,
> --	.vdac		= &devkit8000_vdac,
> - 	.vpll1		= &devkit8000_vpll1,
> - 	.vio		= &devkit8000_vio,
> - 	.keypad		= &devkit8000_kp_data,
> -@@ -345,7 +326,8 @@ static struct twl4030_platform_data
> devkit8000_twldata = {
> - static int __init devkit8000_i2c_init(void)
> - {
> - 	omap3_pmic_get_config(&devkit8000_twldata,
> --			  TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO, 0);
> -+			  TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO,
> -+			  TWL_COMMON_REGULATOR_VDAC);
> - 	omap3_pmic_init("tps65930", &devkit8000_twldata);
> - 	/* Bus 3 is attached to the DVI port where devices like the pico DLP
> - 	 * projector don't work reliably with 400kHz */
> -diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-
> omap2/board-igep0020.c
> -index e0a6687..35be778 100644
> ---- a/arch/arm/mach-omap2/board-igep0020.c
> -+++ b/arch/arm/mach-omap2/board-igep0020.c
> -@@ -479,26 +479,6 @@ static struct omap_dss_board_info igep2_dss_data =
> {
> - 	.default_device	= &igep2_dvi_device,
> - };
> -
> --static struct regulator_consumer_supply igep2_vpll2_supplies[] = {
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
> --};
> --
> --static struct regulator_init_data igep2_vpll2 = {
> --	.constraints = {
> --		.name			= "VDVI",
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	= ARRAY_SIZE(igep2_vpll2_supplies),
> --	.consumer_supplies	= igep2_vpll2_supplies,
> --};
> --
> - static void __init igep2_display_init(void)
> - {
> - 	int err = gpio_request_one(IGEP2_GPIO_DVI_PUP,
> GPIOF_OUT_INIT_HIGH,
> -@@ -579,9 +559,11 @@ static void __init igep_i2c_init(void)
> - 			pr_warning("IGEP2: Could not register I2C3 bus
> (%d)\n", ret);
> -
> - 		igep_twldata.keypad	= &igep2_keypad_pdata;
> --		igep_twldata.vpll2	= &igep2_vpll2;
> --		/* Use common codec data */
> --		omap3_pmic_get_config(&igep_twldata,
> TWL_COMMON_PDATA_AUDIO, 0);
> -+		/* Get common pmic data */
> -+		omap3_pmic_get_config(&igep_twldata,
> TWL_COMMON_PDATA_AUDIO,
> -+				      TWL_COMMON_REGULATOR_VPLL2);
> -+		igep_twldata.vpll2->constraints.apply_uV = true;
> -+		igep_twldata.vpll2->constraints.name = "VDVI";
> - 	}
> -
> - 	omap3_pmic_init("twl4030", &igep_twldata);
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index ec61e9c..34f8411 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -209,15 +209,6 @@ static struct omap_dss_board_info beagle_dss_data
> = {
> - 	.default_device = &beagle_dvi_device,
> - };
> -
> --static struct regulator_consumer_supply beagle_vdac_supply[] = {
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> --};
> --
> --static struct regulator_consumer_supply beagle_vdvi_supplies[] = {
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
> --};
> --
> - static void __init beagle_display_init(void)
> - {
> - 	int r;
> -@@ -351,42 +342,11 @@ static struct regulator_init_data beagle_vsim = {
> - 	.consumer_supplies	= beagle_vsim_supply,
> - };
> -
> --/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
> --static struct regulator_init_data beagle_vdac = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	= ARRAY_SIZE(beagle_vdac_supply),
> --	.consumer_supplies	= beagle_vdac_supply,
> --};
> --
> --/* VPLL2 for digital video outputs */
> --static struct regulator_init_data beagle_vpll2 = {
> --	.constraints = {
> --		.name			= "VDVI",
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	= ARRAY_SIZE(beagle_vdvi_supplies),
> --	.consumer_supplies	= beagle_vdvi_supplies,
> --};
> --
> - static struct twl4030_platform_data beagle_twldata = {
> - 	/* platform_data for children goes here */
> - 	.gpio		= &beagle_gpio_data,
> - 	.vmmc1		= &beagle_vmmc1,
> - 	.vsim		= &beagle_vsim,
> --	.vdac		= &beagle_vdac,
> --	.vpll2		= &beagle_vpll2,
> - };
> -
> - static struct i2c_board_info __initdata beagle_i2c_eeprom[] = {
> -@@ -398,7 +358,11 @@ static struct i2c_board_info __initdata
> beagle_i2c_eeprom[] = {
> - static int __init omap3_beagle_i2c_init(void)
> - {
> - 	omap3_pmic_get_config(&beagle_twldata,
> --			  TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO, 0);
> -+			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO,
> -+			TWL_COMMON_REGULATOR_VDAC |
> TWL_COMMON_REGULATOR_VPLL2);
> -+
> -+	beagle_twldata.vpll2->constraints.name = "VDVI";
> -+
> - 	omap3_pmic_init("twl4030", &beagle_twldata);
> - 	/* Bus 3 is attached to the DVI port where devices like the pico DLP
> - 	 * projector don't work reliably with 400kHz */
> -diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-
> omap2/board-omap3evm.c
> -index 1ca298a..c452b3f 100644
> ---- a/arch/arm/mach-omap2/board-omap3evm.c
> -+++ b/arch/arm/mach-omap2/board-omap3evm.c
> -@@ -430,45 +430,6 @@ static struct twl4030_keypad_data
> omap3evm_kp_data = {
> - 	.rep		= 1,
> - };
> -
> --static struct regulator_consumer_supply omap3_evm_vdda_dac_supply[] = {
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> --};
> --
> --/* VDAC for DSS driving S-Video */
> --static struct regulator_init_data omap3_evm_vdac = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(omap3_evm_vdda_dac_supply),
> --	.consumer_supplies	= omap3_evm_vdda_dac_supply,
> --};
> --
> --/* VPLL2 for digital video outputs */
> --static struct regulator_consumer_supply omap3_evm_vpll2_supplies[] = {
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
> --};
> --
> --static struct regulator_init_data omap3_evm_vpll2 = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(omap3_evm_vpll2_supplies),
> --	.consumer_supplies	= omap3_evm_vpll2_supplies,
> --};
> --
> - /* ads7846 on SPI */
> - static struct regulator_consumer_supply omap3evm_vio_supply[] = {
> - 	REGULATOR_SUPPLY("vcc", "spi1.0"),
> -@@ -535,8 +496,6 @@ static struct twl4030_platform_data
> omap3evm_twldata = {
> - 	/* platform_data for children goes here */
> - 	.keypad		= &omap3evm_kp_data,
> - 	.gpio		= &omap3evm_gpio_data,
> --	.vdac		= &omap3_evm_vdac,
> --	.vpll2		= &omap3_evm_vpll2,
> - 	.vio		= &omap3evm_vio,
> - 	.vmmc1		= &omap3evm_vmmc1,
> - 	.vsim		= &omap3evm_vsim,
> -@@ -545,8 +504,13 @@ static struct twl4030_platform_data
> omap3evm_twldata = {
> - static int __init omap3_evm_i2c_init(void)
> - {
> - 	omap3_pmic_get_config(&omap3evm_twldata,
> --			  TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_MADC |
> --			  TWL_COMMON_PDATA_AUDIO, 0);
> -+			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_MADC |
> -+			TWL_COMMON_PDATA_AUDIO,
> -+			TWL_COMMON_REGULATOR_VDAC |
> TWL_COMMON_REGULATOR_VPLL2);
> -+
> -+	omap3evm_twldata.vdac->constraints.apply_uV = true;
> -+	omap3evm_twldata.vpll2->constraints.apply_uV = true;
> -+
> - 	omap3_pmic_init("twl4030", &omap3evm_twldata);
> - 	omap_register_i2c_bus(2, 400, NULL, 0);
> - 	omap_register_i2c_bus(3, 400, NULL, 0);
> -diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-
> omap2/board-omap3pandora.c
> -index f5abf76..080d7bd 100644
> ---- a/arch/arm/mach-omap2/board-omap3pandora.c
> -+++ b/arch/arm/mach-omap2/board-omap3pandora.c
> -@@ -332,10 +332,6 @@ static struct regulator_consumer_supply
> pandora_vmmc3_supply[] = {
> - 	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.2"),
> - };
> -
> --static struct regulator_consumer_supply pandora_vdda_dac_supply[] = {
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> --};
> --
> - static struct regulator_consumer_supply pandora_vdds_supplies[] = {
> - 	REGULATOR_SUPPLY("vdds_sdi", "omapdss"),
> - 	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
> -@@ -391,36 +387,6 @@ static struct regulator_init_data pandora_vmmc2 = {
> - 	.consumer_supplies	= pandora_vmmc2_supply,
> - };
> -
> --/* VDAC for DSS driving S-Video */
> --static struct regulator_init_data pandora_vdac = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(pandora_vdda_dac_supply),
> --	.consumer_supplies	= pandora_vdda_dac_supply,
> --};
> --
> --/* VPLL2 for digital video outputs */
> --static struct regulator_init_data pandora_vpll2 = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(pandora_vdds_supplies),
> --	.consumer_supplies	= pandora_vdds_supplies,
> --};
> --
> - /* VAUX1 for LCD */
> - static struct regulator_init_data pandora_vaux1 = {
> - 	.constraints = {
> -@@ -514,8 +480,6 @@ static struct twl4030_platform_data
> omap3pandora_twldata = {
> - 	.gpio		= &omap3pandora_gpio_data,
> - 	.vmmc1		= &pandora_vmmc1,
> - 	.vmmc2		= &pandora_vmmc2,
> --	.vdac		= &pandora_vdac,
> --	.vpll2		= &pandora_vpll2,
> - 	.vaux1		= &pandora_vaux1,
> - 	.vaux2		= &pandora_vaux2,
> - 	.vaux4		= &pandora_vaux4,
> -@@ -534,7 +498,16 @@ static struct i2c_board_info __initdata
> omap3pandora_i2c3_boardinfo[] = {
> - static int __init omap3pandora_i2c_init(void)
> - {
> - 	omap3_pmic_get_config(&omap3pandora_twldata,
> --			      TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO, 0);
> -+			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO,
> -+			TWL_COMMON_REGULATOR_VDAC |
> TWL_COMMON_REGULATOR_VPLL2);
> -+
> -+	omap3pandora_twldata.vdac->constraints.apply_uV = true;
> -+
> -+	omap3pandora_twldata.vpll2->constraints.apply_uV = true;
> -+	omap3pandora_twldata.vpll2->num_consumer_supplies =
> -+					ARRAY_SIZE(pandora_vdds_supplies);
> -+	omap3pandora_twldata.vpll2->consumer_supplies =
> pandora_vdds_supplies;
> -+
> - 	omap3_pmic_init("tps65950", &omap3pandora_twldata);
> - 	/* i2c2 pins are not connected */
> - 	omap_register_i2c_bus(3, 100, omap3pandora_i2c3_boardinfo,
> -diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-
> omap2/board-omap3stalker.c
> -index 6e59e59..8e10498 100644
> ---- a/arch/arm/mach-omap2/board-omap3stalker.c
> -+++ b/arch/arm/mach-omap2/board-omap3stalker.c
> -@@ -383,52 +383,10 @@ static struct twl4030_keypad_data
> omap3stalker_kp_data = {
> - 	.rep		= 1,
> - };
> -
> --static struct regulator_consumer_supply omap3_stalker_vdda_dac_supply[] =
> {
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> --};
> --
> --/* VDAC for DSS driving S-Video */
> --static struct regulator_init_data omap3_stalker_vdac = {
> --	.constraints		= {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --		| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --		| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(omap3_stalker_vdda_dac_supply),
> --	.consumer_supplies	= omap3_stalker_vdda_dac_supply,
> --};
> --
> --/* VPLL2 for digital video outputs */
> --static struct regulator_consumer_supply omap3_stalker_vpll2_supplies[] = {
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
> --};
> --
> --static struct regulator_init_data omap3_stalker_vpll2 = {
> --	.constraints		= {
> --		.name			= "VDVI",
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.apply_uV = true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --		| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --		| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(omap3_stalker_vpll2_supplies),
> --	.consumer_supplies	= omap3_stalker_vpll2_supplies,
> --};
> --
> - static struct twl4030_platform_data omap3stalker_twldata = {
> - 	/* platform_data for children goes here */
> - 	.keypad		= &omap3stalker_kp_data,
> - 	.gpio		= &omap3stalker_gpio_data,
> --	.vdac		= &omap3_stalker_vdac,
> --	.vpll2		= &omap3_stalker_vpll2,
> - 	.vmmc1		= &omap3stalker_vmmc1,
> - 	.vsim		= &omap3stalker_vsim,
> - };
> -@@ -451,7 +409,13 @@ static int __init omap3_stalker_i2c_init(void)
> - {
> - 	omap3_pmic_get_config(&omap3stalker_twldata,
> - 			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_MADC |
> --			TWL_COMMON_PDATA_AUDIO, 0);
> -+			TWL_COMMON_PDATA_AUDIO,
> -+			TWL_COMMON_REGULATOR_VDAC |
> TWL_COMMON_REGULATOR_VPLL2);
> -+
> -+	omap3stalker_twldata.vdac->constraints.apply_uV = true;
> -+	omap3stalker_twldata.vpll2->constraints.apply_uV = true;
> -+	omap3stalker_twldata.vpll2->constraints.name = "VDVI";
> -+
> - 	omap3_pmic_init("twl4030", &omap3stalker_twldata);
> - 	omap_register_i2c_bus(2, 400, NULL, 0);
> - 	omap_register_i2c_bus(3, 400, omap3stalker_i2c_boardinfo3,
> -diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c
> b/arch/arm/mach-omap2/board-omap3touchbook.c
> -index 717972c..852ea04 100644
> ---- a/arch/arm/mach-omap2/board-omap3touchbook.c
> -+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
> -@@ -206,42 +206,11 @@ static struct regulator_init_data touchbook_vsim =
> {
> - 	.consumer_supplies	= touchbook_vsim_supply,
> - };
> -
> --/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
> --static struct regulator_init_data touchbook_vdac = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(touchbook_vdac_supply),
> --	.consumer_supplies	= touchbook_vdac_supply,
> --};
> --
> --/* VPLL2 for digital video outputs */
> --static struct regulator_init_data touchbook_vpll2 = {
> --	.constraints = {
> --		.name			= "VDVI",
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(touchbook_vdvi_supply),
> --	.consumer_supplies	= touchbook_vdvi_supply,
> --};
> --
> - static struct twl4030_platform_data touchbook_twldata = {
> - 	/* platform_data for children goes here */
> - 	.gpio		= &touchbook_gpio_data,
> - 	.vmmc1		= &touchbook_vmmc1,
> - 	.vsim		= &touchbook_vsim,
> --	.vdac		= &touchbook_vdac,
> --	.vpll2		= &touchbook_vpll2,
> - };
> -
> - static struct i2c_board_info __initdata touchBook_i2c_boardinfo[] = {
> -@@ -254,7 +223,18 @@ static int __init omap3_touchbook_i2c_init(void)
> - {
> - 	/* Standard TouchBook bus */
> - 	omap3_pmic_get_config(&touchbook_twldata,
> --			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO, 0);
> -+			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO,
> -+			TWL_COMMON_REGULATOR_VDAC |
> TWL_COMMON_REGULATOR_VPLL2);
> -+
> -+	touchbook_twldata.vdac->num_consumer_supplies =
> -+
> 	ARRAY_SIZE(touchbook_vdac_supply);
> -+	touchbook_twldata.vdac->consumer_supplies =
> touchbook_vdac_supply;
> -+
> -+	touchbook_twldata.vpll2->constraints.name = "VDVI";
> -+	touchbook_twldata.vpll2->num_consumer_supplies =
> -+					ARRAY_SIZE(touchbook_vdvi_supply);
> -+	touchbook_twldata.vpll2->consumer_supplies =
> touchbook_vdvi_supply;
> -+
> - 	omap3_pmic_init("twl4030", &touchbook_twldata);
> - 	/* Additional TouchBook bus */
> - 	omap_register_i2c_bus(3, 100, touchBook_i2c_boardinfo,
> -diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-
> omap2/board-overo.c
> -index 776b444..f1f18d0 100644
> ---- a/arch/arm/mach-omap2/board-overo.c
> -+++ b/arch/arm/mach-omap2/board-overo.c
> -@@ -265,15 +265,6 @@ static struct omap_dss_board_info overo_dss_data
> = {
> - 	.default_device	= &overo_dvi_device,
> - };
> -
> --static struct regulator_consumer_supply overo_vdda_dac_supply[] = {
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> --};
> --
> --static struct regulator_consumer_supply overo_vdds_dsi_supply[] = {
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
> --};
> --
> - static struct mtd_partition overo_nand_partitions[] = {
> - 	{
> - 		.name           = "xloader",
> -@@ -447,46 +438,19 @@ static struct regulator_init_data overo_vmmc1 = {
> - 	.consumer_supplies	= overo_vmmc1_supply,
> - };
> -
> --/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
> --static struct regulator_init_data overo_vdac = {
> --	.constraints = {
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(overo_vdda_dac_supply),
> --	.consumer_supplies	= overo_vdda_dac_supply,
> --};
> --
> --/* VPLL2 for digital video outputs */
> --static struct regulator_init_data overo_vpll2 = {
> --	.constraints = {
> --		.name			= "VDVI",
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	=
> ARRAY_SIZE(overo_vdds_dsi_supply),
> --	.consumer_supplies	= overo_vdds_dsi_supply,
> --};
> --
> - static struct twl4030_platform_data overo_twldata = {
> - 	.gpio		= &overo_gpio_data,
> - 	.vmmc1		= &overo_vmmc1,
> --	.vdac		= &overo_vdac,
> --	.vpll2		= &overo_vpll2,
> - };
> -
> - static int __init overo_i2c_init(void)
> - {
> - 	omap3_pmic_get_config(&overo_twldata,
> --			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO, 0);
> -+			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_AUDIO,
> -+			TWL_COMMON_REGULATOR_VDAC |
> TWL_COMMON_REGULATOR_VPLL2);
> -+
> -+	overo_twldata.vpll2->constraints.name = "VDVI";
> -+
> - 	omap3_pmic_init("tps65950", &overo_twldata);
> - 	/* i2c2 pins are used for gpio */
> - 	omap_register_i2c_bus(3, 400, NULL, 0);
> -diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c
> b/arch/arm/mach-omap2/board-rx51-peripherals.c
> -index 3cdea39..d99e462 100644
> ---- a/arch/arm/mach-omap2/board-rx51-peripherals.c
> -+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
> -@@ -394,10 +394,6 @@ static struct regulator_consumer_supply
> rx51_vaux1_consumers[] = {
> - 	REGULATOR_SUPPLY("vdd", "2-0063"),
> - };
> -
> --static struct regulator_consumer_supply rx51_vdac_supply[] = {
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> --};
> --
> - static struct regulator_init_data rx51_vaux1 = {
> - 	.constraints = {
> - 		.name			= "V28",
> -@@ -514,21 +510,6 @@ static struct regulator_init_data rx51_vsim = {
> - 	.consumer_supplies	= rx51_vsim_supply,
> - };
> -
> --static struct regulator_init_data rx51_vdac = {
> --	.constraints = {
> --		.name			= "VDAC",
> --		.min_uV			= 1800000,
> --		.max_uV			= 1800000,
> --		.apply_uV		= true,
> --		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies	= ARRAY_SIZE(rx51_vdac_supply),
> --	.consumer_supplies	= rx51_vdac_supply,
> --};
> --
> - static struct regulator_init_data rx51_vio = {
> - 	.constraints = {
> - 		.min_uV			= 1800000,
> -@@ -781,7 +762,6 @@ static struct twl4030_platform_data rx51_twldata
> __initdata = {
> - 	.vaux4			= &rx51_vaux4,
> - 	.vmmc1			= &rx51_vmmc1,
> - 	.vsim			= &rx51_vsim,
> --	.vdac			= &rx51_vdac,
> - 	.vio			= &rx51_vio,
> - };
> -
> -@@ -838,7 +818,12 @@ static int __init rx51_i2c_init(void)
> - 	}
> - 	rx51_twldata.vmmc2 = &rx51_vmmc2;
> - 	omap3_pmic_get_config(&rx51_twldata,
> --			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_MADC, 0);
> -+			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_MADC,
> -+			TWL_COMMON_REGULATOR_VDAC);
> -+
> -+	rx51_twldata.vdac->constraints.apply_uV = true;
> -+	rx51_twldata.vdac->constraints.name = "VDAC";
> -+
> - 	omap_pmic_init(1, 2200, "twl5030", INT_34XX_SYS_NIRQ,
> &rx51_twldata);
> - 	omap_register_i2c_bus(2, 100, rx51_peripherals_i2c_board_info_2,
> - 			      ARRAY_SIZE(rx51_peripherals_i2c_board_info_2));
> -diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c
> b/arch/arm/mach-omap2/board-zoom-peripherals.c
> -index 6d8df1b..13a6442 100644
> ---- a/arch/arm/mach-omap2/board-zoom-peripherals.c
> -+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
> -@@ -226,41 +226,6 @@ static struct omap2_hsmmc_info mmc[] = {
> - 	{}      /* Terminator */
> - };
> -
> --static struct regulator_consumer_supply zoom_vpll2_supplies[] = {
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
> --	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
> --};
> --
> --static struct regulator_consumer_supply zoom_vdda_dac_supply[] = {
> --	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> --};
> --
> --static struct regulator_init_data zoom_vpll2 = {
> --	.constraints = {
> --		.min_uV                 = 1800000,
> --		.max_uV                 = 1800000,
> --		.valid_modes_mask       = REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask         = REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies		=
> ARRAY_SIZE(zoom_vpll2_supplies),
> --	.consumer_supplies		= zoom_vpll2_supplies,
> --};
> --
> --static struct regulator_init_data zoom_vdac = {
> --	.constraints = {
> --		.min_uV                 = 1800000,
> --		.max_uV                 = 1800000,
> --		.valid_modes_mask       = REGULATOR_MODE_NORMAL
> --					| REGULATOR_MODE_STANDBY,
> --		.valid_ops_mask         = REGULATOR_CHANGE_MODE
> --					| REGULATOR_CHANGE_STATUS,
> --	},
> --	.num_consumer_supplies		=
> ARRAY_SIZE(zoom_vdda_dac_supply),
> --	.consumer_supplies		= zoom_vdda_dac_supply,
> --};
> --
> - static int zoom_twl_gpio_setup(struct device *dev,
> - 		unsigned gpio, unsigned ngpio)
> - {
> -@@ -299,15 +264,14 @@ static struct twl4030_platform_data zoom_twldata
> = {
> - 	.vmmc1          = &zoom_vmmc1,
> - 	.vmmc2          = &zoom_vmmc2,
> - 	.vsim           = &zoom_vsim,
> --	.vpll2		= &zoom_vpll2,
> --	.vdac		= &zoom_vdac,
> - };
> -
> - static int __init omap_i2c_init(void)
> - {
> - 	omap3_pmic_get_config(&zoom_twldata,
> --			  TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_BCI |
> --			  TWL_COMMON_PDATA_MADC |
> TWL_COMMON_PDATA_AUDIO, 0);
> -+			TWL_COMMON_PDATA_USB |
> TWL_COMMON_PDATA_BCI |
> -+			TWL_COMMON_PDATA_MADC |
> TWL_COMMON_PDATA_AUDIO,
> -+			TWL_COMMON_REGULATOR_VDAC |
> TWL_COMMON_REGULATOR_VPLL2);
> -
> - 	if (machine_is_omap_zoom2()) {
> - 		struct twl4030_codec_audio_data *audio_data;
> -diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-
> omap2/twl-common.c
> -index 9e8decf..3aaa46f 100644
> ---- a/arch/arm/mach-omap2/twl-common.c
> -+++ b/arch/arm/mach-omap2/twl-common.c
> -@@ -87,6 +87,41 @@ static struct twl4030_codec_data omap3_codec_pdata
> = {
> - 	.audio = &omap3_audio,
> - };
> -
> -+static struct regulator_consumer_supply omap3_vdda_dac_supplies[] = {
> -+	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
> -+};
> -+
> -+static struct regulator_init_data omap3_vdac_idata = {
> -+	.constraints = {
> -+		.min_uV			= 1800000,
> -+		.max_uV			= 1800000,
> -+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
> -+					| REGULATOR_MODE_STANDBY,
> -+		.valid_ops_mask		=
> REGULATOR_CHANGE_MODE
> -+					| REGULATOR_CHANGE_STATUS,
> -+	},
> -+	.num_consumer_supplies	=
> ARRAY_SIZE(omap3_vdda_dac_supplies),
> -+	.consumer_supplies	= omap3_vdda_dac_supplies,
> -+};
> -+
> -+static struct regulator_consumer_supply omap3_vpll2_supplies[] = {
> -+	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
> -+	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
> -+};
> -+
> -+static struct regulator_init_data omap3_vpll2_idata = {
> -+	.constraints = {
> -+		.min_uV                 = 1800000,
> -+		.max_uV                 = 1800000,
> -+		.valid_modes_mask       = REGULATOR_MODE_NORMAL
> -+					| REGULATOR_MODE_STANDBY,
> -+		.valid_ops_mask         = REGULATOR_CHANGE_MODE
> -+					| REGULATOR_CHANGE_STATUS,
> -+	},
> -+	.num_consumer_supplies		=
> ARRAY_SIZE(omap3_vpll2_supplies),
> -+	.consumer_supplies		= omap3_vpll2_supplies,
> -+};
> -+
> - static struct regulator_init_data omap4_vdac_idata = {
> - 	.constraints = {
> - 		.min_uV			= 1800000,
> -@@ -259,4 +294,11 @@ void __init omap3_pmic_get_config(struct
> twl4030_platform_data *pmic_data,
> -
> - 	if (pdata_flags & TWL_COMMON_PDATA_AUDIO && !pmic_data-
> >codec)
> - 		pmic_data->codec = &omap3_codec_pdata;
> -+
> -+	/* Common regulator configurations */
> -+	if (regulators_flags & TWL_COMMON_REGULATOR_VDAC &&
> !pmic_data->vdac)
> -+		pmic_data->vdac = &omap3_vdac_idata;
> -+
> -+	if (regulators_flags & TWL_COMMON_REGULATOR_VPLL2 &&
> !pmic_data->vpll2)
> -+		pmic_data->vpll2 = &omap3_vpll2_idata;
> - }
> -diff --git a/arch/arm/mach-omap2/twl-common.h b/arch/arm/mach-
> omap2/twl-common.h
> -index 3b4b05d..5e83a5b 100644
> ---- a/arch/arm/mach-omap2/twl-common.h
> -+++ b/arch/arm/mach-omap2/twl-common.h
> -@@ -21,6 +21,11 @@
> - #define TWL_COMMON_REGULATOR_VUSB	(1 << 9)
> - #define TWL_COMMON_REGULATOR_CLK32KG	(1 << 10)
> -
> -+/* TWL4030 LDO regulators */
> -+#define TWL_COMMON_REGULATOR_VPLL1	(1 << 4)
> -+#define TWL_COMMON_REGULATOR_VPLL2	(1 << 5)
> -+
> -+
> - struct twl4030_platform_data;
> -
> - void omap_pmic_init(int bus, u32 clkrate, const char *pmic_type, int
> pmic_irq,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0026-omap-mcbsp-
> Remove-rx_-tx_word_length-variables.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0026-omap-mcbsp-Remove-rx_-tx_word_length-
> variables.patch
> deleted file mode 100644
> index f1a4682..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0026-omap-mcbsp-
> Remove-rx_-tx_word_length-variables.patch
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -From 7a7bf2e165760ed106b0f4c8beb7191e3abe944f Mon Sep 17 00:00:00
> 2001
> -From: Jarkko Nikula <jhnikula at gmail.com>
> -Date: Fri, 1 Jul 2011 08:52:26 +0000
> -Subject: [PATCH 026/149] omap: mcbsp: Remove rx_/tx_word_length
> variables
> -
> -These variables got unused after ("omap: mcbsp: Drop in-driver transfer
> -support") but was noticed only afterwards.
> -
> -Signed-off-by: Jarkko Nikula <jhnikula at gmail.com>
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/plat-omap/include/plat/mcbsp.h |    2 --
> - arch/arm/plat-omap/mcbsp.c              |    3 ---
> - 2 files changed, 0 insertions(+), 5 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/include/plat/mcbsp.h b/arch/arm/plat-
> omap/include/plat/mcbsp.h
> -index 6c53508..63464ad 100644
> ---- a/arch/arm/plat-omap/include/plat/mcbsp.h
> -+++ b/arch/arm/plat-omap/include/plat/mcbsp.h
> -@@ -385,8 +385,6 @@ struct omap_mcbsp {
> - 	void __iomem *io_base;
> - 	u8 id;
> - 	u8 free;
> --	omap_mcbsp_word_length rx_word_length;
> --	omap_mcbsp_word_length tx_word_length;
> -
> - 	int rx_irq;
> - 	int tx_irq;
> -diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
> -index 455eadc..3c1fbdc 100644
> ---- a/arch/arm/plat-omap/mcbsp.c
> -+++ b/arch/arm/plat-omap/mcbsp.c
> -@@ -869,9 +869,6 @@ void omap_mcbsp_start(unsigned int id, int tx, int rx)
> - 	if (cpu_is_omap34xx())
> - 		omap_st_start(mcbsp);
> -
> --	mcbsp->rx_word_length = (MCBSP_READ_CACHE(mcbsp, RCR1) >> 5)
> & 0x7;
> --	mcbsp->tx_word_length = (MCBSP_READ_CACHE(mcbsp, XCR1) >> 5)
> & 0x7;
> --
> - 	/* Only enable SRG, if McBSP is master */
> - 	w = MCBSP_READ_CACHE(mcbsp, PCR0);
> - 	if (w & (FSXM | FSRM | CLKXM | CLKRM))
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0027-omap-mcbsp-
> Remove-port-number-enums.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0027-omap-mcbsp-Remove-port-number-enums.patch
> deleted file mode 100644
> index b8389db..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0027-omap-mcbsp-
> Remove-port-number-enums.patch
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -From a16f9faa682c8cdd3bbd14618600ec67e4a56963 Mon Sep 17 00:00:00
> 2001
> -From: Jarkko Nikula <jhnikula at gmail.com>
> -Date: Fri, 1 Jul 2011 08:52:27 +0000
> -Subject: [PATCH 027/149] omap: mcbsp: Remove port number enums
> -
> -These McBSP port number enums are used only in two places in the McBSP
> code
> -so we may remove then and just use numeric values like rest of the code does.
> -
> -Signed-off-by: Jarkko Nikula <jhnikula at gmail.com>
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/mach-omap1/mcbsp.c             |    4 ++--
> - arch/arm/plat-omap/include/plat/mcbsp.h |   10 +---------
> - 2 files changed, 3 insertions(+), 11 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c
> -index d9af981..ab7395d 100644
> ---- a/arch/arm/mach-omap1/mcbsp.c
> -+++ b/arch/arm/mach-omap1/mcbsp.c
> -@@ -38,7 +38,7 @@ static void omap1_mcbsp_request(unsigned int id)
> - 	 * On 1510, 1610 and 1710, McBSP1 and McBSP3
> - 	 * are DSP public peripherals.
> - 	 */
> --	if (id == OMAP_MCBSP1 || id == OMAP_MCBSP3) {
> -+	if (id == 0 || id == 2) {
> - 		if (dsp_use++ == 0) {
> - 			api_clk = clk_get(NULL, "api_ck");
> - 			dsp_clk = clk_get(NULL, "dsp_ck");
> -@@ -59,7 +59,7 @@ static void omap1_mcbsp_request(unsigned int id)
> -
> - static void omap1_mcbsp_free(unsigned int id)
> - {
> --	if (id == OMAP_MCBSP1 || id == OMAP_MCBSP3) {
> -+	if (id == 0 || id == 2) {
> - 		if (--dsp_use == 0) {
> - 			if (!IS_ERR(api_clk)) {
> - 				clk_disable(api_clk);
> -diff --git a/arch/arm/plat-omap/include/plat/mcbsp.h b/arch/arm/plat-
> omap/include/plat/mcbsp.h
> -index 63464ad..9882c657 100644
> ---- a/arch/arm/plat-omap/include/plat/mcbsp.h
> -+++ b/arch/arm/plat-omap/include/plat/mcbsp.h
> -@@ -33,7 +33,7 @@
> - #define OMAP_MCBSP_PLATFORM_DEVICE(port_nr)		\
> - static struct platform_device omap_mcbsp##port_nr = {	\
> - 	.name	= "omap-mcbsp-dai",			\
> --	.id	= OMAP_MCBSP##port_nr,			\
> -+	.id	= port_nr - 1,			\
> - }
> -
> - #define MCBSP_CONFIG_TYPE2	0x2
> -@@ -332,14 +332,6 @@ struct omap_mcbsp_reg_cfg {
> - };
> -
> - typedef enum {
> --	OMAP_MCBSP1 = 0,
> --	OMAP_MCBSP2,
> --	OMAP_MCBSP3,
> --	OMAP_MCBSP4,
> --	OMAP_MCBSP5
> --} omap_mcbsp_id;
> --
> --typedef enum {
> - 	OMAP_MCBSP_WORD_8 = 0,
> - 	OMAP_MCBSP_WORD_12,
> - 	OMAP_MCBSP_WORD_16,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0028-OMAP-
> dmtimer-add-missing-include.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0028-OMAP-dmtimer-add-missing-include.patch
> deleted file mode 100644
> index 04a711e..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0028-OMAP-dmtimer-add-
> missing-include.patch
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -From 4e6a7403182e1e30f8b403e7931ce7c832cb5db3 Mon Sep 17 00:00:00
> 2001
> -From: Paul Walmsley <paul at pwsan.com>
> -Date: Sat, 9 Jul 2011 18:00:25 -0600
> -Subject: [PATCH 028/149] OMAP: dmtimer: add missing include
> -
> -After commit caf64f2fdc48472995d40656eb1a75524c464447 ("omap: Make
> a subset
> -of dmtimer functions into inline functions"),
> -arch/arm/plat-omap/include/plat/dmtimer.h is missing an include of linux/io.h
> -- add it.
> -
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> -Cc: Tony Lindgren <tony at atomide.com>
> ----
> - arch/arm/plat-omap/include/plat/dmtimer.h |    1 +
> - 1 files changed, 1 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-
> omap/include/plat/dmtimer.h
> -index d0f3a2d..eb5d16c 100644
> ---- a/arch/arm/plat-omap/include/plat/dmtimer.h
> -+++ b/arch/arm/plat-omap/include/plat/dmtimer.h
> -@@ -34,6 +34,7 @@
> -
> - #include <linux/clk.h>
> - #include <linux/delay.h>
> -+#include <linux/io.h>
> -
> - #ifndef __ASM_ARCH_DMTIMER_H
> - #define __ASM_ARCH_DMTIMER_H
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0029-OMAP2-
> hwmod-Fix-smart-standby-wakeup-support.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0029-OMAP2-hwmod-Fix-smart-standby-wakeup-
> support.patch
> deleted file mode 100644
> index 95384bb..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0029-OMAP2-hwmod-Fix-
> smart-standby-wakeup-support.patch
> +++ /dev/null
> @@ -1,130 +0,0 @@
> -From 8a9259c5eedfeb7e2dd3e001aa68e4e1a9149b41 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Fri, 1 Jul 2011 22:54:00 +0200
> -Subject: [PATCH 029/149] OMAP2+: hwmod: Fix smart-standby + wakeup
> support
> -
> -The commit 86009eb326afde34ffdc5648cd344aa86b8d58d4 was adding
> -the wakeup support for new OMAP4 IPs. This support is incomplete for
> -busmaster IPs that need as well to use smart-standby with wakeup.
> -
> -This new standbymode is suported on HSI and USB_HOST_FS for the moment.
> -
> -Add the new MSTANDBY_SMART_WKUP flag to mark the IPs that support this
> -capability.
> -
> -Enable this new mode when applicable in _enable_wakeup, _disable_wakeup,
> -_enable_sysc and _idle_sysc.
> -
> -The omap_hwmod_44xx_data.c will have to be updated to add this new flag.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Signed-off-by: Djamil Elaidi <d-elaidi at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod.c             |   34
> +++++++++++++++++++++----
> - arch/arm/plat-omap/include/plat/omap_hwmod.h |    2 +-
> - 2 files changed, 29 insertions(+), 7 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index 293fa6c..384d3c3 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -391,7 +391,8 @@ static int _enable_wakeup(struct omap_hwmod *oh,
> u32 *v)
> -
> - 	if (!oh->class->sysc ||
> - 	    !((oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP) ||
> --	      (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)))
> -+	      (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) ||
> -+	      (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP)))
> - 		return -EINVAL;
> -
> - 	if (!oh->class->sysc->sysc_fields) {
> -@@ -405,6 +406,8 @@ static int _enable_wakeup(struct omap_hwmod *oh,
> u32 *v)
> -
> - 	if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)
> - 		_set_slave_idlemode(oh,
> HWMOD_IDLEMODE_SMART_WKUP, v);
> -+	if (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP)
> -+		_set_master_standbymode(oh,
> HWMOD_IDLEMODE_SMART_WKUP, v);
> -
> - 	/* XXX test pwrdm_get_wken for this hwmod's subsystem */
> -
> -@@ -426,7 +429,8 @@ static int _disable_wakeup(struct omap_hwmod *oh,
> u32 *v)
> -
> - 	if (!oh->class->sysc ||
> - 	    !((oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP) ||
> --	      (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)))
> -+	      (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) ||
> -+	      (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP)))
> - 		return -EINVAL;
> -
> - 	if (!oh->class->sysc->sysc_fields) {
> -@@ -440,6 +444,8 @@ static int _disable_wakeup(struct omap_hwmod *oh,
> u32 *v)
> -
> - 	if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)
> - 		_set_slave_idlemode(oh, HWMOD_IDLEMODE_SMART, v);
> -+	if (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP)
> -+		_set_master_standbymode(oh,
> HWMOD_IDLEMODE_SMART_WKUP, v);
> -
> - 	/* XXX test pwrdm_get_wken for this hwmod's subsystem */
> -
> -@@ -781,8 +787,16 @@ static void _enable_sysc(struct omap_hwmod *oh)
> - 	}
> -
> - 	if (sf & SYSC_HAS_MIDLEMODE) {
> --		idlemode = (oh->flags & HWMOD_SWSUP_MSTANDBY) ?
> --			HWMOD_IDLEMODE_NO :
> HWMOD_IDLEMODE_SMART;
> -+		if (oh->flags & HWMOD_SWSUP_MSTANDBY) {
> -+			idlemode = HWMOD_IDLEMODE_NO;
> -+		} else {
> -+			if (sf & SYSC_HAS_ENAWAKEUP)
> -+				_enable_wakeup(oh, &v);
> -+			if (oh->class->sysc->idlemodes &
> MSTANDBY_SMART_WKUP)
> -+				idlemode =
> HWMOD_IDLEMODE_SMART_WKUP;
> -+			else
> -+				idlemode = HWMOD_IDLEMODE_SMART;
> -+		}
> - 		_set_master_standbymode(oh, idlemode, &v);
> - 	}
> -
> -@@ -840,8 +854,16 @@ static void _idle_sysc(struct omap_hwmod *oh)
> - 	}
> -
> - 	if (sf & SYSC_HAS_MIDLEMODE) {
> --		idlemode = (oh->flags & HWMOD_SWSUP_MSTANDBY) ?
> --			HWMOD_IDLEMODE_FORCE :
> HWMOD_IDLEMODE_SMART;
> -+		if (oh->flags & HWMOD_SWSUP_MSTANDBY) {
> -+			idlemode = HWMOD_IDLEMODE_FORCE;
> -+		} else {
> -+			if (sf & SYSC_HAS_ENAWAKEUP)
> -+				_enable_wakeup(oh, &v);
> -+			if (oh->class->sysc->idlemodes &
> MSTANDBY_SMART_WKUP)
> -+				idlemode =
> HWMOD_IDLEMODE_SMART_WKUP;
> -+			else
> -+				idlemode = HWMOD_IDLEMODE_SMART;
> -+		}
> - 		_set_master_standbymode(oh, idlemode, &v);
> - 	}
> -
> -diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -index 1adea9c..e93438c 100644
> ---- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -@@ -77,7 +77,6 @@ extern struct omap_hwmod_sysc_fields
> omap_hwmod_sysc_type2;
> - #define HWMOD_IDLEMODE_FORCE		(1 << 0)
> - #define HWMOD_IDLEMODE_NO		(1 << 1)
> - #define HWMOD_IDLEMODE_SMART		(1 << 2)
> --/* Slave idle mode flag only */
> - #define HWMOD_IDLEMODE_SMART_WKUP	(1 << 3)
> -
> - /**
> -@@ -258,6 +257,7 @@ struct omap_hwmod_ocp_if {
> - #define MSTANDBY_FORCE		(HWMOD_IDLEMODE_FORCE <<
> MASTER_STANDBY_SHIFT)
> - #define MSTANDBY_NO		(HWMOD_IDLEMODE_NO <<
> MASTER_STANDBY_SHIFT)
> - #define MSTANDBY_SMART		(HWMOD_IDLEMODE_SMART <<
> MASTER_STANDBY_SHIFT)
> -+#define MSTANDBY_SMART_WKUP	(HWMOD_IDLEMODE_SMART_WKUP
> << MASTER_STANDBY_SHIFT)
> -
> - /* omap_hwmod_sysconfig.sysc_flags capability flags */
> - #define SYSC_HAS_AUTOIDLE	(1 << 0)
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0030-OMAP4-
> hwmod-data-Add-MSTANDBY_SMART_WKUP-flag.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0030-OMAP4-hwmod-data-Add-
> MSTANDBY_SMART_WKUP-flag.patch
> deleted file mode 100644
> index a5a664e..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0030-OMAP4-hwmod-
> data-Add-MSTANDBY_SMART_WKUP-flag.patch
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -From 8823fd9b9f1d6e6406c0b98438ad6282491b0ae5 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Fri, 1 Jul 2011 22:54:01 +0200
> -Subject: [PATCH 030/149] OMAP4: hwmod data: Add
> MSTANDBY_SMART_WKUP flag
> -
> -Add the flag to every IPs that support it to allow the
> -framework to enable it instead of the SMART_STANDBY default
> -mode.
> -Without that, an IP with busmaster capability will not
> -be able to wakeup the interconnect at all.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    9 +++++----
> - 1 files changed, 5 insertions(+), 4 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index e1c69ff..8cbbfbf 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -660,7 +660,8 @@ static struct omap_hwmod_class_sysconfig
> omap44xx_aess_sysc = {
> - 	.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_FORCE | MSTANDBY_NO |
> MSTANDBY_SMART |
> -+			   MSTANDBY_SMART_WKUP),
> - 	.sysc_fields	= &omap_hwmod_sysc_type2,
> - };
> -
> -@@ -2044,7 +2045,7 @@ static struct omap_hwmod_class_sysconfig
> omap44xx_hsi_sysc = {
> - 			   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 | MSTANDBY_SMART_WKUP),
> - 	.sysc_fields	= &omap_hwmod_sysc_type1,
> - };
> -
> -@@ -2446,7 +2447,7 @@ static struct omap_hwmod_class_sysconfig
> omap44xx_iss_sysc = {
> - 			   SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
> - 	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> - 			   SIDLE_SMART_WKUP | MSTANDBY_FORCE |
> MSTANDBY_NO |
> --			   MSTANDBY_SMART),
> -+			   MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
> - 	.sysc_fields	= &omap_hwmod_sysc_type2,
> - };
> -
> -@@ -3420,7 +3421,7 @@ static struct omap_hwmod_class_sysconfig
> omap44xx_mmc_sysc = {
> - 			   SYSC_HAS_SOFTRESET),
> - 	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> - 			   SIDLE_SMART_WKUP | MSTANDBY_FORCE |
> MSTANDBY_NO |
> --			   MSTANDBY_SMART),
> -+			   MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
> - 	.sysc_fields	= &omap_hwmod_sysc_type2,
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0031-OMAP2-
> hwmod-Enable-module-in-shutdown-to-access-sysc.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0031-OMAP2-hwmod-Enable-module-
> in-shutdown-to-access-sysc.patch
> deleted file mode 100644
> index ec066b4..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0031-OMAP2-hwmod-
> Enable-module-in-shutdown-to-access-sysc.patch
> +++ /dev/null
> @@ -1,37 +0,0 @@
> -From 3097e6265e79329635b528dd97b7fa3ed7dbb805 Mon Sep 17
> 00:00:00 2001
> -From: Miguel Vadillo <vadillo at ti.com>
> -Date: Fri, 1 Jul 2011 22:54:02 +0200
> -Subject: [PATCH 031/149] OMAP2+: hwmod: Enable module in shutdown to
> access sysconfig
> -
> -When calling the shutdown, the module may be already in idle.
> -Accessing the sysconfig register will then lead to a crash.
> -In that case, re-enable the module in order to allow the access
> -to the sysconfig register.
> -
> -Signed-off-by: Miguel Vadillo <vadillo at ti.com>
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod.c |    5 ++++-
> - 1 files changed, 4 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index 384d3c3..cbc2a8a 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -1396,8 +1396,11 @@ static int _shutdown(struct omap_hwmod *oh)
> - 		}
> - 	}
> -
> --	if (oh->class->sysc)
> -+	if (oh->class->sysc) {
> -+		if (oh->_state == _HWMOD_STATE_IDLE)
> -+			_enable(oh);
> - 		_shutdown_sysc(oh);
> -+	}
> -
> - 	/*
> - 	 * If an IP contains only one HW reset line, then assert it
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0032-OMAP2-
> hwmod-Do-not-write-the-enawakeup-bit-if-SYSC_H.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0032-OMAP2-hwmod-Do-not-write-
> the-enawakeup-bit-if-SYSC_H.patch
> deleted file mode 100644
> index 6f92108..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0032-OMAP2-hwmod-Do-
> not-write-the-enawakeup-bit-if-SYSC_H.patch
> +++ /dev/null
> @@ -1,65 +0,0 @@
> -From 0b7a00a668b460c5a541d2d9d77a96cd0de3f57d Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Fri, 1 Jul 2011 22:54:03 +0200
> -Subject: [PATCH 032/149] OMAP2+: hwmod: Do not write the enawakeup bit
> if SYSC_HAS_ENAWAKEUP is not set
> -
> -The Type 2 type of IPs will not have any enawakeup bit in their sysconfig.
> -Writing to that bit will instead trigger a softreset.
> -Check the flag to write this bit only if the module supports it.
> -
> -Reported-by: Miguel Vadillo <vadillo at ti.com>
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod.c |   14 ++++----------
> - 1 files changed, 4 insertions(+), 10 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index cbc2a8a..3800084 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -387,8 +387,6 @@ static int _set_module_autoidle(struct omap_hwmod
> *oh, u8 autoidle,
> -  */
> - static int _enable_wakeup(struct omap_hwmod *oh, u32 *v)
> - {
> --	u32 wakeup_mask;
> --
> - 	if (!oh->class->sysc ||
> - 	    !((oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP) ||
> - 	      (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) ||
> -@@ -400,9 +398,8 @@ static int _enable_wakeup(struct omap_hwmod *oh,
> u32 *v)
> - 		return -EINVAL;
> - 	}
> -
> --	wakeup_mask = (0x1 << oh->class->sysc->sysc_fields->enwkup_shift);
> --
> --	*v |= wakeup_mask;
> -+	if (oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP)
> -+		*v |= 0x1 << oh->class->sysc->sysc_fields->enwkup_shift;
> -
> - 	if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)
> - 		_set_slave_idlemode(oh,
> HWMOD_IDLEMODE_SMART_WKUP, v);
> -@@ -425,8 +422,6 @@ static int _enable_wakeup(struct omap_hwmod *oh,
> u32 *v)
> -  */
> - static int _disable_wakeup(struct omap_hwmod *oh, u32 *v)
> - {
> --	u32 wakeup_mask;
> --
> - 	if (!oh->class->sysc ||
> - 	    !((oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP) ||
> - 	      (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) ||
> -@@ -438,9 +433,8 @@ static int _disable_wakeup(struct omap_hwmod *oh,
> u32 *v)
> - 		return -EINVAL;
> - 	}
> -
> --	wakeup_mask = (0x1 << oh->class->sysc->sysc_fields->enwkup_shift);
> --
> --	*v &= ~wakeup_mask;
> -+	if (oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP)
> -+		*v &= ~(0x1 << oh->class->sysc->sysc_fields->enwkup_shift);
> -
> - 	if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)
> - 		_set_slave_idlemode(oh, HWMOD_IDLEMODE_SMART, v);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0033-OMAP2-
> hwmod-Remove-_populate_mpu_rt_base-warning.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0033-OMAP2-hwmod-Remove-
> _populate_mpu_rt_base-warning.patch
> deleted file mode 100644
> index 8963785..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0033-OMAP2-hwmod-
> Remove-_populate_mpu_rt_base-warning.patch
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -From 9c5dd6c8e5a9dd6fc98e30a45a3d929034de664b Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Fri, 1 Jul 2011 22:54:04 +0200
> -Subject: [PATCH 033/149] OMAP2+: hwmod: Remove
> _populate_mpu_rt_base warning
> -
> -It is perfectly valid for some hwmod to not have any
> -register target address for sysconfig. This is especially
> -true for interconnect hwmods.
> -Remove the warning.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod.c |    3 ---
> - 1 files changed, 0 insertions(+), 3 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index 3800084..f401417 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -1704,9 +1704,6 @@ static int __init _populate_mpu_rt_base(struct
> omap_hwmod *oh, void *data)
> - 		return 0;
> -
> - 	oh->_mpu_rt_va = _find_mpu_rt_base(oh, oh->_mpu_port_index);
> --	if (!oh->_mpu_rt_va)
> --		pr_warning("omap_hwmod: %s found no _mpu_rt_va for
> %s\n",
> --				__func__, oh->name);
> -
> - 	return 0;
> - }
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0034-OMAP2-
> hwmod-Fix-the-HW-reset-management.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0034-OMAP2-hwmod-Fix-the-HW-reset-
> management.patch
> deleted file mode 100644
> index 7e390ed..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0034-OMAP2-hwmod-Fix-
> the-HW-reset-management.patch
> +++ /dev/null
> @@ -1,87 +0,0 @@
> -From 0fdacba393a3d2b2c87b4a9c4b2bb811bd896c09 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Fri, 1 Jul 2011 22:54:05 +0200
> -Subject: [PATCH 034/149] OMAP2+: hwmod: Fix the HW reset management
> -
> -The HW reset must be de-assert after the clocks are enabled
> -but before waiting for the target to be ready. Otherwise the
> -reset might not work properly since the clock is not running
> -to proceed the reset.
> -
> -De-assert the reset after _enable_clocks and before
> -_wait_target_ready.
> -Re-assert it only when the clocks are disabled.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod.c |   32 ++++++++++++++++-------------
> ---
> - 1 files changed, 16 insertions(+), 16 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index f401417..df91bb1 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -1250,15 +1250,6 @@ static int _enable(struct omap_hwmod *oh)
> -
> - 	pr_debug("omap_hwmod: %s: enabling\n", oh->name);
> -
> --	/*
> --	 * If an IP contains only one HW reset line, then de-assert it in order
> --	 * to allow to enable the clocks. Otherwise the PRCM will return
> --	 * Intransition status, and the init will failed.
> --	 */
> --	if ((oh->_state == _HWMOD_STATE_INITIALIZED ||
> --	     oh->_state == _HWMOD_STATE_DISABLED) && oh->rst_lines_cnt
> == 1)
> --		_deassert_hardreset(oh, oh->rst_lines[0].name);
> --
> - 	/* Mux pins for device runtime if populated */
> - 	if (oh->mux && (!oh->mux->enabled ||
> - 			((oh->_state == _HWMOD_STATE_IDLE) &&
> -@@ -1268,6 +1259,15 @@ static int _enable(struct omap_hwmod *oh)
> - 	_add_initiator_dep(oh, mpu_oh);
> - 	_enable_clocks(oh);
> -
> -+	/*
> -+	 * If an IP contains only one HW reset line, then de-assert it in order
> -+	 * to allow the module state transition. Otherwise the PRCM will return
> -+	 * Intransition status, and the init will failed.
> -+	 */
> -+	if ((oh->_state == _HWMOD_STATE_INITIALIZED ||
> -+	     oh->_state == _HWMOD_STATE_DISABLED) && oh->rst_lines_cnt
> == 1)
> -+		_deassert_hardreset(oh, oh->rst_lines[0].name);
> -+
> - 	r = _wait_target_ready(oh);
> - 	if (!r) {
> - 		oh->_state = _HWMOD_STATE_ENABLED;
> -@@ -1396,13 +1396,6 @@ static int _shutdown(struct omap_hwmod *oh)
> - 		_shutdown_sysc(oh);
> - 	}
> -
> --	/*
> --	 * If an IP contains only one HW reset line, then assert it
> --	 * before disabling the clocks and shutting down the IP.
> --	 */
> --	if (oh->rst_lines_cnt == 1)
> --		_assert_hardreset(oh, oh->rst_lines[0].name);
> --
> - 	/* clocks and deps are already disabled in idle */
> - 	if (oh->_state == _HWMOD_STATE_ENABLED) {
> - 		_del_initiator_dep(oh, mpu_oh);
> -@@ -1411,6 +1404,13 @@ static int _shutdown(struct omap_hwmod *oh)
> - 	}
> - 	/* XXX Should this code also force-disable the optional clocks? */
> -
> -+	/*
> -+	 * If an IP contains only one HW reset line, then assert it
> -+	 * after disabling the clocks and before shutting down the IP.
> -+	 */
> -+	if (oh->rst_lines_cnt == 1)
> -+		_assert_hardreset(oh, oh->rst_lines[0].name);
> -+
> - 	/* Mux pins to safe mode or use populated off mode values */
> - 	if (oh->mux)
> - 		omap_hwmod_mux(oh->mux, _HWMOD_STATE_DISABLED);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0035-OMAP-hwmod-
> Add-warnings-if-enable-failed.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0035-OMAP-hwmod-Add-warnings-if-enable-failed.patch
> deleted file mode 100644
> index fbedcef..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0035-OMAP-hwmod-Add-
> warnings-if-enable-failed.patch
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -From ea1e84fd91f4bfa506f7d44c4183ab649308b940 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Fri, 1 Jul 2011 22:54:06 +0200
> -Subject: [PATCH 035/149] OMAP: hwmod: Add warnings if enable failed
> -
> -Change the debug into warning to check what IPs are failing.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod.c |    2 ++
> - 1 files changed, 2 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index df91bb1..64e9830 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -944,6 +944,8 @@ static int _init_clocks(struct omap_hwmod *oh, void
> *data)
> -
> - 	if (!ret)
> - 		oh->_state = _HWMOD_STATE_CLKS_INITED;
> -+	else
> -+		pr_warning("omap_hwmod: %s: cannot _init_clocks\n", oh-
> >name);
> -
> - 	return ret;
> - }
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0036-OMAP-hwmod-
> Move-pr_debug-to-improve-the-readability.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0036-OMAP-hwmod-Move-pr_debug-to-improve-the-
> readability.patch
> deleted file mode 100644
> index e484c43..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0036-OMAP-hwmod-
> Move-pr_debug-to-improve-the-readability.patch
> +++ /dev/null
> @@ -1,95 +0,0 @@
> -From 1a090fd9d66008314ef1963ff7335462b4231d8b Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Fri, 1 Jul 2011 22:54:07 +0200
> -Subject: [PATCH 036/149] OMAP: hwmod: Move pr_debug to improve the
> readability
> -
> -Move the pr_debug at the top of the function
> -to trace the entry even if the first test is failing.
> -That help understanding that we entered the function
> -but failed in it.
> -
> -Move the _enable last part out of the test to reduce
> -indentation and improve readability.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod.c |   32 +++++++++++++++++-----------
> ----
> - 1 files changed, 17 insertions(+), 15 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index 64e9830..e530bcb 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -1242,6 +1242,8 @@ static int _enable(struct omap_hwmod *oh)
> - {
> - 	int r;
> -
> -+	pr_debug("omap_hwmod: %s: enabling\n", oh->name);
> -+
> - 	if (oh->_state != _HWMOD_STATE_INITIALIZED &&
> - 	    oh->_state != _HWMOD_STATE_IDLE &&
> - 	    oh->_state != _HWMOD_STATE_DISABLED) {
> -@@ -1250,8 +1252,6 @@ static int _enable(struct omap_hwmod *oh)
> - 		return -EINVAL;
> - 	}
> -
> --	pr_debug("omap_hwmod: %s: enabling\n", oh->name);
> --
> - 	/* Mux pins for device runtime if populated */
> - 	if (oh->mux && (!oh->mux->enabled ||
> - 			((oh->_state == _HWMOD_STATE_IDLE) &&
> -@@ -1271,19 +1271,21 @@ static int _enable(struct omap_hwmod *oh)
> - 		_deassert_hardreset(oh, oh->rst_lines[0].name);
> -
> - 	r = _wait_target_ready(oh);
> --	if (!r) {
> --		oh->_state = _HWMOD_STATE_ENABLED;
> --
> --		/* Access the sysconfig only if the target is ready */
> --		if (oh->class->sysc) {
> --			if (!(oh->_int_flags &
> _HWMOD_SYSCONFIG_LOADED))
> --				_update_sysc_cache(oh);
> --			_enable_sysc(oh);
> --		}
> --	} else {
> --		_disable_clocks(oh);
> -+	if (r) {
> - 		pr_debug("omap_hwmod: %s: _wait_target_ready: %d\n",
> - 			 oh->name, r);
> -+		_disable_clocks(oh);
> -+
> -+		return r;
> -+	}
> -+
> -+	oh->_state = _HWMOD_STATE_ENABLED;
> -+
> -+	/* Access the sysconfig only if the target is ready */
> -+	if (oh->class->sysc) {
> -+		if (!(oh->_int_flags & _HWMOD_SYSCONFIG_LOADED))
> -+			_update_sysc_cache(oh);
> -+		_enable_sysc(oh);
> - 	}
> -
> - 	return r;
> -@@ -1299,14 +1301,14 @@ static int _enable(struct omap_hwmod *oh)
> -  */
> - static int _idle(struct omap_hwmod *oh)
> - {
> -+	pr_debug("omap_hwmod: %s: idling\n", oh->name);
> -+
> - 	if (oh->_state != _HWMOD_STATE_ENABLED) {
> - 		WARN(1, "omap_hwmod: %s: idle state can only be entered
> from "
> - 		     "enabled state\n", oh->name);
> - 		return -EINVAL;
> - 	}
> -
> --	pr_debug("omap_hwmod: %s: idling\n", oh->name);
> --
> - 	if (oh->class->sysc)
> - 		_idle_sysc(oh);
> - 	_del_initiator_dep(oh, mpu_oh);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0037-omap_hwmod-
> use-a-null-structure-record-to-terminate-.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0037-omap_hwmod-use-a-null-structure-record-to-
> terminate-.patch
> deleted file mode 100644
> index 8618e74..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0037-omap_hwmod-use-a-
> null-structure-record-to-terminate-.patch
> +++ /dev/null
> @@ -1,3529 +0,0 @@
> -From 2c900775f726b160e5ce702e75554282c2869d60 Mon Sep 17 00:00:00
> 2001
> -From: Paul Walmsley <paul at pwsan.com>
> -Date: Sat, 9 Jul 2011 19:14:05 -0600
> -Subject: [PATCH 037/149] omap_hwmod: use a null structure record to
> terminate omap_hwmod_addr_space arrays
> -
> -Previously, struct omap_hwmod_addr_space arrays were unterminated; and
> -users of these arrays used the ARRAY_SIZE() macro to determine the
> -length of the array.  However, ARRAY_SIZE() only works when the array
> -is in the same scope as the macro user.
> -
> -So far this hasn't been a problem.  However, to reduce duplicated
> -data, a subsequent patch will move common data to a separate, shared
> -file.  When this is done, ARRAY_SIZE() will no longer be usable.
> -
> -This patch removes ARRAY_SIZE() usage for struct omap_hwmod_addr_space
> -arrays and uses a null structure member as the array terminator
> -instead.
> -
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod.c             |   45 ++++++--
> - arch/arm/mach-omap2/omap_hwmod_2420_data.c   |   66 +++++-----
> - arch/arm/mach-omap2/omap_hwmod_2430_data.c   |   83 ++++++-------
> - arch/arm/mach-omap2/omap_hwmod_3xxx_data.c   |  108 ++++++++--------
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c   |  170
> +++++++++++++-------------
> - arch/arm/plat-omap/include/plat/omap_hwmod.h |    2 -
> - 6 files changed, 249 insertions(+), 225 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index e530bcb..73599f0 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -2,6 +2,7 @@
> -  * omap_hwmod implementation for OMAP2/3/4
> -  *
> -  * Copyright (C) 2009-2011 Nokia Corporation
> -+ * Copyright (C) 2011 Texas Instruments, Inc.
> -  *
> -  * Paul Walmsley, Benoît Cousson, Kevin Hilman
> -  *
> -@@ -678,6 +679,29 @@ static void _disable_optional_clocks(struct
> omap_hwmod *oh)
> - }
> -
> - /**
> -+ * _count_ocp_if_addr_spaces - count the number of address space entries
> for @oh
> -+ * @oh: struct omap_hwmod *oh
> -+ *
> -+ * Count and return the number of address space ranges associated with
> -+ * the hwmod @oh.  Used to allocate struct resource data.  Returns 0
> -+ * if @oh is NULL.
> -+ */
> -+static int _count_ocp_if_addr_spaces(struct omap_hwmod_ocp_if *os)
> -+{
> -+	struct omap_hwmod_addr_space *mem;
> -+	int i = 0;
> -+
> -+	if (!os || !os->addr)
> -+		return 0;
> -+
> -+	do {
> -+		mem = &os->addr[i++];
> -+	} while (mem->pa_start != mem->pa_end);
> -+
> -+	return i;
> -+}
> -+
> -+/**
> -  * _find_mpu_port_index - find hwmod OCP slave port ID intended for MPU
> use
> -  * @oh: struct omap_hwmod *
> -  *
> -@@ -722,8 +746,7 @@ static void __iomem * __init
> _find_mpu_rt_base(struct omap_hwmod *oh, u8 index)
> - {
> - 	struct omap_hwmod_ocp_if *os;
> - 	struct omap_hwmod_addr_space *mem;
> --	int i;
> --	int found = 0;
> -+	int i = 0, found = 0;
> - 	void __iomem *va_start;
> -
> - 	if (!oh || oh->slaves_cnt == 0)
> -@@ -731,12 +754,14 @@ static void __iomem * __init
> _find_mpu_rt_base(struct omap_hwmod *oh, u8 index)
> -
> - 	os = oh->slaves[index];
> -
> --	for (i = 0, mem = os->addr; i < os->addr_cnt; i++, mem++) {
> --		if (mem->flags & ADDR_TYPE_RT) {
> -+	if (!os->addr)
> -+		return NULL;
> -+
> -+	do {
> -+		mem = &os->addr[i++];
> -+		if (mem->flags & ADDR_TYPE_RT)
> - 			found = 1;
> --			break;
> --		}
> --	}
> -+	} while (!found && mem->pa_start != mem->pa_end);
> -
> - 	if (found) {
> - 		va_start = ioremap(mem->pa_start, mem->pa_end - mem-
> >pa_start);
> -@@ -1962,7 +1987,7 @@ int omap_hwmod_count_resources(struct
> omap_hwmod *oh)
> - 	ret = oh->mpu_irqs_cnt + oh->sdma_reqs_cnt;
> -
> - 	for (i = 0; i < oh->slaves_cnt; i++)
> --		ret += oh->slaves[i]->addr_cnt;
> -+		ret += _count_ocp_if_addr_spaces(oh->slaves[i]);
> -
> - 	return ret;
> - }
> -@@ -2002,10 +2027,12 @@ int omap_hwmod_fill_resources(struct
> omap_hwmod *oh, struct resource *res)
> -
> - 	for (i = 0; i < oh->slaves_cnt; i++) {
> - 		struct omap_hwmod_ocp_if *os;
> -+		int addr_cnt;
> -
> - 		os = oh->slaves[i];
> -+		addr_cnt = _count_ocp_if_addr_spaces(os);
> -
> --		for (j = 0; j < os->addr_cnt; j++) {
> -+		for (j = 0; j < addr_cnt; j++) {
> - 			(res + r)->name = (os->addr + j)->name;
> - 			(res + r)->start = (os->addr + j)->pa_start;
> - 			(res + r)->end = (os->addr + j)->pa_end;
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -index c4d0ae8..1a7ce3e 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -@@ -1,7 +1,7 @@
> - /*
> -  * omap_hwmod_2420_data.c - hardware modules present on the
> OMAP2420 chips
> -  *
> -- * Copyright (C) 2009-2010 Nokia Corporation
> -+ * Copyright (C) 2009-2011 Nokia Corporation
> -  * Paul Walmsley
> -  *
> -  * This program is free software; you can redistribute it and/or modify
> -@@ -120,6 +120,7 @@ static struct omap_hwmod_addr_space
> omap2420_mcspi1_addr_space[] = {
> - 		.pa_end		= 0x480980ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2420_l4_core__mcspi1 = {
> -@@ -127,7 +128,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__mcspi1 = {
> - 	.slave		= &omap2420_mcspi1_hwmod,
> - 	.clk		= "mcspi1_ick",
> - 	.addr		= omap2420_mcspi1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_mcspi1_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -138,6 +138,7 @@ static struct omap_hwmod_addr_space
> omap2420_mcspi2_addr_space[] = {
> - 		.pa_end		= 0x4809a0ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2420_l4_core__mcspi2 = {
> -@@ -145,7 +146,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__mcspi2 = {
> - 	.slave		= &omap2420_mcspi2_hwmod,
> - 	.clk		= "mcspi2_ick",
> - 	.addr		= omap2420_mcspi2_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_mcspi2_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -163,6 +163,7 @@ static struct omap_hwmod_addr_space
> omap2420_uart1_addr_space[] = {
> - 		.pa_end		= OMAP2_UART1_BASE + SZ_8K - 1,
> - 		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2_l4_core__uart1 = {
> -@@ -170,7 +171,6 @@ static struct omap_hwmod_ocp_if
> omap2_l4_core__uart1 = {
> - 	.slave		= &omap2420_uart1_hwmod,
> - 	.clk		= "uart1_ick",
> - 	.addr		= omap2420_uart1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_uart1_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -181,6 +181,7 @@ static struct omap_hwmod_addr_space
> omap2420_uart2_addr_space[] = {
> - 		.pa_end		= OMAP2_UART2_BASE + SZ_1K - 1,
> - 		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2_l4_core__uart2 = {
> -@@ -188,7 +189,6 @@ static struct omap_hwmod_ocp_if
> omap2_l4_core__uart2 = {
> - 	.slave		= &omap2420_uart2_hwmod,
> - 	.clk		= "uart2_ick",
> - 	.addr		= omap2420_uart2_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_uart2_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -199,6 +199,7 @@ static struct omap_hwmod_addr_space
> omap2420_uart3_addr_space[] = {
> - 		.pa_end		= OMAP2_UART3_BASE + SZ_1K - 1,
> - 		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2_l4_core__uart3 = {
> -@@ -206,7 +207,6 @@ static struct omap_hwmod_ocp_if
> omap2_l4_core__uart3 = {
> - 	.slave		= &omap2420_uart3_hwmod,
> - 	.clk		= "uart3_ick",
> - 	.addr		= omap2420_uart3_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_uart3_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -220,6 +220,7 @@ static struct omap_hwmod_addr_space
> omap2420_i2c1_addr_space[] = {
> - 		.pa_end		= 0x48070000 + OMAP2_I2C_AS_LEN
> - 1,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2420_l4_core__i2c1 = {
> -@@ -227,7 +228,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__i2c1 = {
> - 	.slave		= &omap2420_i2c1_hwmod,
> - 	.clk		= "i2c1_ick",
> - 	.addr		= omap2420_i2c1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_i2c1_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -238,6 +238,7 @@ static struct omap_hwmod_addr_space
> omap2420_i2c2_addr_space[] = {
> - 		.pa_end		= 0x48072000 + OMAP2_I2C_AS_LEN
> - 1,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2420_l4_core__i2c2 = {
> -@@ -245,7 +246,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__i2c2 = {
> - 	.slave		= &omap2420_i2c2_hwmod,
> - 	.clk		= "i2c2_ick",
> - 	.addr		= omap2420_i2c2_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_i2c2_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -370,6 +370,7 @@ static struct omap_hwmod_addr_space
> omap2420_timer1_addrs[] = {
> - 		.pa_end		= 0x48028000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_wkup -> timer1 */
> -@@ -378,7 +379,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_wkup__timer1 = {
> - 	.slave		= &omap2420_timer1_hwmod,
> - 	.clk		= "gpt1_ick",
> - 	.addr		= omap2420_timer1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_timer1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -420,6 +420,7 @@ static struct omap_hwmod_addr_space
> omap2420_timer2_addrs[] = {
> - 		.pa_end		= 0x4802a000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer2 */
> -@@ -428,7 +429,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__timer2 = {
> - 	.slave		= &omap2420_timer2_hwmod,
> - 	.clk		= "gpt2_ick",
> - 	.addr		= omap2420_timer2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_timer2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -470,6 +470,7 @@ static struct omap_hwmod_addr_space
> omap2420_timer3_addrs[] = {
> - 		.pa_end		= 0x48078000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer3 */
> -@@ -478,7 +479,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__timer3 = {
> - 	.slave		= &omap2420_timer3_hwmod,
> - 	.clk		= "gpt3_ick",
> - 	.addr		= omap2420_timer3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_timer3_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -520,6 +520,7 @@ static struct omap_hwmod_addr_space
> omap2420_timer4_addrs[] = {
> - 		.pa_end		= 0x4807a000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer4 */
> -@@ -528,7 +529,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__timer4 = {
> - 	.slave		= &omap2420_timer4_hwmod,
> - 	.clk		= "gpt4_ick",
> - 	.addr		= omap2420_timer4_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_timer4_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -570,6 +570,7 @@ static struct omap_hwmod_addr_space
> omap2420_timer5_addrs[] = {
> - 		.pa_end		= 0x4807c000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer5 */
> -@@ -578,7 +579,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__timer5 = {
> - 	.slave		= &omap2420_timer5_hwmod,
> - 	.clk		= "gpt5_ick",
> - 	.addr		= omap2420_timer5_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_timer5_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -621,6 +621,7 @@ static struct omap_hwmod_addr_space
> omap2420_timer6_addrs[] = {
> - 		.pa_end		= 0x4807e000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer6 */
> -@@ -629,7 +630,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__timer6 = {
> - 	.slave		= &omap2420_timer6_hwmod,
> - 	.clk		= "gpt6_ick",
> - 	.addr		= omap2420_timer6_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_timer6_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -671,6 +671,7 @@ static struct omap_hwmod_addr_space
> omap2420_timer7_addrs[] = {
> - 		.pa_end		= 0x48080000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer7 */
> -@@ -679,7 +680,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__timer7 = {
> - 	.slave		= &omap2420_timer7_hwmod,
> - 	.clk		= "gpt7_ick",
> - 	.addr		= omap2420_timer7_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_timer7_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -721,6 +721,7 @@ static struct omap_hwmod_addr_space
> omap2420_timer8_addrs[] = {
> - 		.pa_end		= 0x48082000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer8 */
> -@@ -729,7 +730,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__timer8 = {
> - 	.slave		= &omap2420_timer8_hwmod,
> - 	.clk		= "gpt8_ick",
> - 	.addr		= omap2420_timer8_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_timer8_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -771,6 +771,7 @@ static struct omap_hwmod_addr_space
> omap2420_timer9_addrs[] = {
> - 		.pa_end		= 0x48084000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer9 */
> -@@ -779,7 +780,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__timer9 = {
> - 	.slave		= &omap2420_timer9_hwmod,
> - 	.clk		= "gpt9_ick",
> - 	.addr		= omap2420_timer9_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_timer9_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -821,6 +821,7 @@ static struct omap_hwmod_addr_space
> omap2420_timer10_addrs[] = {
> - 		.pa_end		= 0x48086000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer10 */
> -@@ -829,7 +830,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__timer10 = {
> - 	.slave		= &omap2420_timer10_hwmod,
> - 	.clk		= "gpt10_ick",
> - 	.addr		= omap2420_timer10_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_timer10_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -871,6 +871,7 @@ static struct omap_hwmod_addr_space
> omap2420_timer11_addrs[] = {
> - 		.pa_end		= 0x48088000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer11 */
> -@@ -879,7 +880,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__timer11 = {
> - 	.slave		= &omap2420_timer11_hwmod,
> - 	.clk		= "gpt11_ick",
> - 	.addr		= omap2420_timer11_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_timer11_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -921,6 +921,7 @@ static struct omap_hwmod_addr_space
> omap2420_timer12_addrs[] = {
> - 		.pa_end		= 0x4808a000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer12 */
> -@@ -929,7 +930,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__timer12 = {
> - 	.slave		= &omap2420_timer12_hwmod,
> - 	.clk		= "gpt12_ick",
> - 	.addr		= omap2420_timer12_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_timer12_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -966,6 +966,7 @@ static struct omap_hwmod_addr_space
> omap2420_wd_timer2_addrs[] = {
> - 		.pa_end		= 0x4802207f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2420_l4_wkup__wd_timer2 = {
> -@@ -973,7 +974,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_wkup__wd_timer2 = {
> - 	.slave		= &omap2420_wd_timer2_hwmod,
> - 	.clk		= "mpu_wdt_ick",
> - 	.addr		= omap2420_wd_timer2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_wd_timer2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1184,6 +1184,7 @@ static struct omap_hwmod_addr_space
> omap2420_dss_addrs[] = {
> - 		.pa_end		= 0x480503FF,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> dss */
> -@@ -1192,7 +1193,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__dss = {
> - 	.slave		= &omap2420_dss_core_hwmod,
> - 	.clk		= "dss_ick",
> - 	.addr		= omap2420_dss_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_dss_addrs),
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP2420_L4_CORE_FW_DSS_CORE_REGION,
> -@@ -1268,6 +1268,7 @@ static struct omap_hwmod_addr_space
> omap2420_dss_dispc_addrs[] = {
> - 		.pa_end		= 0x480507FF,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> dss_dispc */
> -@@ -1276,7 +1277,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__dss_dispc = {
> - 	.slave		= &omap2420_dss_dispc_hwmod,
> - 	.clk		= "dss_ick",
> - 	.addr		= omap2420_dss_dispc_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_dss_dispc_addrs),
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP2420_L4_CORE_FW_DSS_DISPC_REGION,
> -@@ -1338,6 +1338,7 @@ static struct omap_hwmod_addr_space
> omap2420_dss_rfbi_addrs[] = {
> - 		.pa_end		= 0x48050BFF,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> dss_rfbi */
> -@@ -1346,7 +1347,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__dss_rfbi = {
> - 	.slave		= &omap2420_dss_rfbi_hwmod,
> - 	.clk		= "dss_ick",
> - 	.addr		= omap2420_dss_rfbi_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_dss_rfbi_addrs),
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP2420_L4_CORE_FW_DSS_CORE_REGION,
> -@@ -1394,6 +1394,7 @@ static struct omap_hwmod_addr_space
> omap2420_dss_venc_addrs[] = {
> - 		.pa_end		= 0x48050FFF,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> dss_venc */
> -@@ -1402,7 +1403,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__dss_venc = {
> - 	.slave		= &omap2420_dss_venc_hwmod,
> - 	.clk		= "dss_54m_fck",
> - 	.addr		= omap2420_dss_venc_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_dss_venc_addrs),
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP2420_L4_CORE_FW_DSS_VENC_REGION,
> -@@ -1536,6 +1536,7 @@ static struct omap_hwmod_addr_space
> omap2420_gpio1_addr_space[] = {
> - 		.pa_end		= 0x480181ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio1 = {
> -@@ -1543,7 +1544,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_wkup__gpio1 = {
> - 	.slave		= &omap2420_gpio1_hwmod,
> - 	.clk		= "gpios_ick",
> - 	.addr		= omap2420_gpio1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_gpio1_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1554,6 +1554,7 @@ static struct omap_hwmod_addr_space
> omap2420_gpio2_addr_space[] = {
> - 		.pa_end		= 0x4801a1ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio2 = {
> -@@ -1561,7 +1562,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_wkup__gpio2 = {
> - 	.slave		= &omap2420_gpio2_hwmod,
> - 	.clk		= "gpios_ick",
> - 	.addr		= omap2420_gpio2_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_gpio2_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1572,6 +1572,7 @@ static struct omap_hwmod_addr_space
> omap2420_gpio3_addr_space[] = {
> - 		.pa_end		= 0x4801c1ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio3 = {
> -@@ -1579,7 +1580,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_wkup__gpio3 = {
> - 	.slave		= &omap2420_gpio3_hwmod,
> - 	.clk		= "gpios_ick",
> - 	.addr		= omap2420_gpio3_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_gpio3_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1590,6 +1590,7 @@ static struct omap_hwmod_addr_space
> omap2420_gpio4_addr_space[] = {
> - 		.pa_end		= 0x4801e1ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio4 = {
> -@@ -1597,7 +1598,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_wkup__gpio4 = {
> - 	.slave		= &omap2420_gpio4_hwmod,
> - 	.clk		= "gpios_ick",
> - 	.addr		= omap2420_gpio4_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_gpio4_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1789,6 +1789,7 @@ static struct omap_hwmod_addr_space
> omap2420_dma_system_addrs[] = {
> - 		.pa_end		= 0x48056fff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* dma_system -> L3 */
> -@@ -1810,7 +1811,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__dma_system = {
> - 	.slave		= &omap2420_dma_system_hwmod,
> - 	.clk		= "sdma_ick",
> - 	.addr		= omap2420_dma_system_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_dma_system_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1868,6 +1868,7 @@ static struct omap_hwmod_addr_space
> omap2420_mailbox_addrs[] = {
> - 		.pa_end		= 0x480941ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> mailbox */
> -@@ -1875,7 +1876,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__mailbox = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_mailbox_hwmod,
> - 	.addr		= omap2420_mailbox_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_mailbox_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2044,6 +2044,7 @@ static struct omap_hwmod_addr_space
> omap2420_mcbsp1_addrs[] = {
> - 		.pa_end		= 0x480740ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> mcbsp1 */
> -@@ -2052,7 +2053,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__mcbsp1 = {
> - 	.slave		= &omap2420_mcbsp1_hwmod,
> - 	.clk		= "mcbsp1_ick",
> - 	.addr		= omap2420_mcbsp1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_mcbsp1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2101,6 +2101,7 @@ static struct omap_hwmod_addr_space
> omap2420_mcbsp2_addrs[] = {
> - 		.pa_end		= 0x480760ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> mcbsp2 */
> -@@ -2109,7 +2110,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__mcbsp2 = {
> - 	.slave		= &omap2420_mcbsp2_hwmod,
> - 	.clk		= "mcbsp2_ick",
> - 	.addr		= omap2420_mcbsp2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2420_mcbsp2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -index 9682dd5..da28794 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -@@ -1,7 +1,7 @@
> - /*
> -  * omap_hwmod_2430_data.c - hardware modules present on the
> OMAP2430 chips
> -  *
> -- * Copyright (C) 2009-2010 Nokia Corporation
> -+ * Copyright (C) 2009-2011 Nokia Corporation
> -  * Paul Walmsley
> -  *
> -  * This program is free software; you can redistribute it and/or modify
> -@@ -141,6 +141,7 @@ static struct omap_hwmod_addr_space
> omap2430_i2c1_addr_space[] = {
> - 		.pa_end		= 0x48070000 + OMAP2_I2C_AS_LEN
> - 1,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2430_l4_core__i2c1 = {
> -@@ -148,7 +149,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__i2c1 = {
> - 	.slave		= &omap2430_i2c1_hwmod,
> - 	.clk		= "i2c1_ick",
> - 	.addr		= omap2430_i2c1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_i2c1_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -159,6 +159,7 @@ static struct omap_hwmod_addr_space
> omap2430_i2c2_addr_space[] = {
> - 		.pa_end		= 0x48072000 + OMAP2_I2C_AS_LEN
> - 1,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2430_l4_core__i2c2 = {
> -@@ -166,7 +167,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__i2c2 = {
> - 	.slave		= &omap2430_i2c2_hwmod,
> - 	.clk		= "i2c2_ick",
> - 	.addr		= omap2430_i2c2_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_i2c2_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -184,6 +184,7 @@ static struct omap_hwmod_addr_space
> omap2430_uart1_addr_space[] = {
> - 		.pa_end		= OMAP2_UART1_BASE + SZ_8K - 1,
> - 		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2_l4_core__uart1 = {
> -@@ -191,7 +192,6 @@ static struct omap_hwmod_ocp_if
> omap2_l4_core__uart1 = {
> - 	.slave		= &omap2430_uart1_hwmod,
> - 	.clk		= "uart1_ick",
> - 	.addr		= omap2430_uart1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_uart1_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -202,6 +202,7 @@ static struct omap_hwmod_addr_space
> omap2430_uart2_addr_space[] = {
> - 		.pa_end		= OMAP2_UART2_BASE + SZ_1K - 1,
> - 		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2_l4_core__uart2 = {
> -@@ -209,7 +210,6 @@ static struct omap_hwmod_ocp_if
> omap2_l4_core__uart2 = {
> - 	.slave		= &omap2430_uart2_hwmod,
> - 	.clk		= "uart2_ick",
> - 	.addr		= omap2430_uart2_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_uart2_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -220,6 +220,7 @@ static struct omap_hwmod_addr_space
> omap2430_uart3_addr_space[] = {
> - 		.pa_end		= OMAP2_UART3_BASE + SZ_1K - 1,
> - 		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2_l4_core__uart3 = {
> -@@ -227,7 +228,6 @@ static struct omap_hwmod_ocp_if
> omap2_l4_core__uart3 = {
> - 	.slave		= &omap2430_uart3_hwmod,
> - 	.clk		= "uart3_ick",
> - 	.addr		= omap2430_uart3_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_uart3_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -248,7 +248,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__usbhsotg = {
> - 	.slave		= &omap2430_usbhsotg_hwmod,
> - 	.clk		= "usb_l4_ick",
> - 	.addr		= omap2430_usbhsotg_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_usbhsotg_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -267,6 +266,7 @@ static struct omap_hwmod_addr_space
> omap2430_mmc1_addr_space[] = {
> - 		.pa_end		= 0x4809c1ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mmc1 = {
> -@@ -274,7 +274,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__mmc1 = {
> - 	.slave		= &omap2430_mmc1_hwmod,
> - 	.clk		= "mmchs1_ick",
> - 	.addr		= omap2430_mmc1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_mmc1_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -285,14 +284,14 @@ static struct omap_hwmod_addr_space
> omap2430_mmc2_addr_space[] = {
> - 		.pa_end		= 0x480b41ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mmc2 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_mmc2_hwmod,
> --	.addr		= omap2430_mmc2_addr_space,
> - 	.clk		= "mmchs2_ick",
> --	.addr_cnt	= ARRAY_SIZE(omap2430_mmc2_addr_space),
> -+	.addr		= omap2430_mmc2_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -339,6 +338,7 @@ static struct omap_hwmod_addr_space
> omap2430_mcspi1_addr_space[] = {
> - 		.pa_end		= 0x480980ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mcspi1 = {
> -@@ -346,7 +346,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__mcspi1 = {
> - 	.slave		= &omap2430_mcspi1_hwmod,
> - 	.clk		= "mcspi1_ick",
> - 	.addr		= omap2430_mcspi1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_mcspi1_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -357,6 +356,7 @@ static struct omap_hwmod_addr_space
> omap2430_mcspi2_addr_space[] = {
> - 		.pa_end		= 0x4809a0ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mcspi2 = {
> -@@ -364,7 +364,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__mcspi2 = {
> - 	.slave		= &omap2430_mcspi2_hwmod,
> - 	.clk		= "mcspi2_ick",
> - 	.addr		= omap2430_mcspi2_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_mcspi2_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -375,6 +374,7 @@ static struct omap_hwmod_addr_space
> omap2430_mcspi3_addr_space[] = {
> - 		.pa_end		= 0x480b80ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mcspi3 = {
> -@@ -382,7 +382,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__mcspi3 = {
> - 	.slave		= &omap2430_mcspi3_hwmod,
> - 	.clk		= "mcspi3_ick",
> - 	.addr		= omap2430_mcspi3_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_mcspi3_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -471,6 +470,7 @@ static struct omap_hwmod_addr_space
> omap2430_timer1_addrs[] = {
> - 		.pa_end		= 0x49018000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_wkup -> timer1 */
> -@@ -479,7 +479,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_wkup__timer1 = {
> - 	.slave		= &omap2430_timer1_hwmod,
> - 	.clk		= "gpt1_ick",
> - 	.addr		= omap2430_timer1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_timer1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -521,6 +520,7 @@ static struct omap_hwmod_addr_space
> omap2430_timer2_addrs[] = {
> - 		.pa_end		= 0x4802a000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer2 */
> -@@ -529,7 +529,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__timer2 = {
> - 	.slave		= &omap2430_timer2_hwmod,
> - 	.clk		= "gpt2_ick",
> - 	.addr		= omap2430_timer2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_timer2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -571,6 +570,7 @@ static struct omap_hwmod_addr_space
> omap2430_timer3_addrs[] = {
> - 		.pa_end		= 0x48078000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer3 */
> -@@ -579,7 +579,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__timer3 = {
> - 	.slave		= &omap2430_timer3_hwmod,
> - 	.clk		= "gpt3_ick",
> - 	.addr		= omap2430_timer3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_timer3_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -621,6 +620,7 @@ static struct omap_hwmod_addr_space
> omap2430_timer4_addrs[] = {
> - 		.pa_end		= 0x4807a000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer4 */
> -@@ -629,7 +629,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__timer4 = {
> - 	.slave		= &omap2430_timer4_hwmod,
> - 	.clk		= "gpt4_ick",
> - 	.addr		= omap2430_timer4_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_timer4_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -671,6 +670,7 @@ static struct omap_hwmod_addr_space
> omap2430_timer5_addrs[] = {
> - 		.pa_end		= 0x4807c000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer5 */
> -@@ -679,7 +679,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__timer5 = {
> - 	.slave		= &omap2430_timer5_hwmod,
> - 	.clk		= "gpt5_ick",
> - 	.addr		= omap2430_timer5_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_timer5_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -721,6 +720,7 @@ static struct omap_hwmod_addr_space
> omap2430_timer6_addrs[] = {
> - 		.pa_end		= 0x4807e000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer6 */
> -@@ -729,7 +729,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__timer6 = {
> - 	.slave		= &omap2430_timer6_hwmod,
> - 	.clk		= "gpt6_ick",
> - 	.addr		= omap2430_timer6_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_timer6_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -771,6 +770,7 @@ static struct omap_hwmod_addr_space
> omap2430_timer7_addrs[] = {
> - 		.pa_end		= 0x48080000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer7 */
> -@@ -779,7 +779,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__timer7 = {
> - 	.slave		= &omap2430_timer7_hwmod,
> - 	.clk		= "gpt7_ick",
> - 	.addr		= omap2430_timer7_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_timer7_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -821,6 +820,7 @@ static struct omap_hwmod_addr_space
> omap2430_timer8_addrs[] = {
> - 		.pa_end		= 0x48082000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer8 */
> -@@ -829,7 +829,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__timer8 = {
> - 	.slave		= &omap2430_timer8_hwmod,
> - 	.clk		= "gpt8_ick",
> - 	.addr		= omap2430_timer8_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_timer8_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -871,6 +870,7 @@ static struct omap_hwmod_addr_space
> omap2430_timer9_addrs[] = {
> - 		.pa_end		= 0x48084000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer9 */
> -@@ -879,7 +879,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__timer9 = {
> - 	.slave		= &omap2430_timer9_hwmod,
> - 	.clk		= "gpt9_ick",
> - 	.addr		= omap2430_timer9_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_timer9_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -921,6 +920,7 @@ static struct omap_hwmod_addr_space
> omap2430_timer10_addrs[] = {
> - 		.pa_end		= 0x48086000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer10 */
> -@@ -929,7 +929,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__timer10 = {
> - 	.slave		= &omap2430_timer10_hwmod,
> - 	.clk		= "gpt10_ick",
> - 	.addr		= omap2430_timer10_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_timer10_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -971,6 +970,7 @@ static struct omap_hwmod_addr_space
> omap2430_timer11_addrs[] = {
> - 		.pa_end		= 0x48088000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer11 */
> -@@ -979,7 +979,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__timer11 = {
> - 	.slave		= &omap2430_timer11_hwmod,
> - 	.clk		= "gpt11_ick",
> - 	.addr		= omap2430_timer11_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_timer11_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1021,6 +1020,7 @@ static struct omap_hwmod_addr_space
> omap2430_timer12_addrs[] = {
> - 		.pa_end		= 0x4808a000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer12 */
> -@@ -1029,7 +1029,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__timer12 = {
> - 	.slave		= &omap2430_timer12_hwmod,
> - 	.clk		= "gpt12_ick",
> - 	.addr		= omap2430_timer12_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_timer12_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1066,6 +1065,7 @@ static struct omap_hwmod_addr_space
> omap2430_wd_timer2_addrs[] = {
> - 		.pa_end		= 0x4901607f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2430_l4_wkup__wd_timer2 = {
> -@@ -1073,7 +1073,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_wkup__wd_timer2 = {
> - 	.slave		= &omap2430_wd_timer2_hwmod,
> - 	.clk		= "mpu_wdt_ick",
> - 	.addr		= omap2430_wd_timer2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_wd_timer2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1284,6 +1283,7 @@ static struct omap_hwmod_addr_space
> omap2430_dss_addrs[] = {
> - 		.pa_end		= 0x480503FF,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> dss */
> -@@ -1292,7 +1292,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__dss = {
> - 	.slave		= &omap2430_dss_core_hwmod,
> - 	.clk		= "dss_ick",
> - 	.addr		= omap2430_dss_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_dss_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1362,6 +1361,7 @@ static struct omap_hwmod_addr_space
> omap2430_dss_dispc_addrs[] = {
> - 		.pa_end		= 0x480507FF,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> dss_dispc */
> -@@ -1370,7 +1370,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__dss_dispc = {
> - 	.slave		= &omap2430_dss_dispc_hwmod,
> - 	.clk		= "dss_ick",
> - 	.addr		= omap2430_dss_dispc_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_dss_dispc_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1426,6 +1425,7 @@ static struct omap_hwmod_addr_space
> omap2430_dss_rfbi_addrs[] = {
> - 		.pa_end		= 0x48050BFF,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> dss_rfbi */
> -@@ -1434,7 +1434,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__dss_rfbi = {
> - 	.slave		= &omap2430_dss_rfbi_hwmod,
> - 	.clk		= "dss_ick",
> - 	.addr		= omap2430_dss_rfbi_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_dss_rfbi_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1476,6 +1475,7 @@ static struct omap_hwmod_addr_space
> omap2430_dss_venc_addrs[] = {
> - 		.pa_end		= 0x48050FFF,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> dss_venc */
> -@@ -1484,7 +1484,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__dss_venc = {
> - 	.slave		= &omap2430_dss_venc_hwmod,
> - 	.clk		= "dss_54m_fck",
> - 	.addr		= omap2430_dss_venc_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_dss_venc_addrs),
> - 	.flags		= OCPIF_SWSUP_IDLE,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -@@ -1621,6 +1620,7 @@ static struct omap_hwmod_addr_space
> omap2430_gpio1_addr_space[] = {
> - 		.pa_end		= 0x4900C1ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2430_l4_wkup__gpio1 = {
> -@@ -1628,7 +1628,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_wkup__gpio1 = {
> - 	.slave		= &omap2430_gpio1_hwmod,
> - 	.clk		= "gpios_ick",
> - 	.addr		= omap2430_gpio1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_gpio1_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1639,6 +1638,7 @@ static struct omap_hwmod_addr_space
> omap2430_gpio2_addr_space[] = {
> - 		.pa_end		= 0x4900E1ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2430_l4_wkup__gpio2 = {
> -@@ -1646,7 +1646,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_wkup__gpio2 = {
> - 	.slave		= &omap2430_gpio2_hwmod,
> - 	.clk		= "gpios_ick",
> - 	.addr		= omap2430_gpio2_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_gpio2_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1657,6 +1656,7 @@ static struct omap_hwmod_addr_space
> omap2430_gpio3_addr_space[] = {
> - 		.pa_end		= 0x490101ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2430_l4_wkup__gpio3 = {
> -@@ -1664,7 +1664,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_wkup__gpio3 = {
> - 	.slave		= &omap2430_gpio3_hwmod,
> - 	.clk		= "gpios_ick",
> - 	.addr		= omap2430_gpio3_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_gpio3_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1675,6 +1674,7 @@ static struct omap_hwmod_addr_space
> omap2430_gpio4_addr_space[] = {
> - 		.pa_end		= 0x490121ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2430_l4_wkup__gpio4 = {
> -@@ -1682,7 +1682,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_wkup__gpio4 = {
> - 	.slave		= &omap2430_gpio4_hwmod,
> - 	.clk		= "gpios_ick",
> - 	.addr		= omap2430_gpio4_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_gpio4_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1693,6 +1692,7 @@ static struct omap_hwmod_addr_space
> omap2430_gpio5_addr_space[] = {
> - 		.pa_end		= 0x480B61ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap2430_l4_core__gpio5 = {
> -@@ -1700,7 +1700,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__gpio5 = {
> - 	.slave		= &omap2430_gpio5_hwmod,
> - 	.clk		= "gpio5_ick",
> - 	.addr		= omap2430_gpio5_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_gpio5_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1923,6 +1922,7 @@ static struct omap_hwmod_addr_space
> omap2430_dma_system_addrs[] = {
> - 		.pa_end		= 0x48056fff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* dma_system -> L3 */
> -@@ -1944,7 +1944,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__dma_system = {
> - 	.slave		= &omap2430_dma_system_hwmod,
> - 	.clk		= "sdma_ick",
> - 	.addr		= omap2430_dma_system_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_dma_system_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2001,6 +2000,7 @@ static struct omap_hwmod_addr_space
> omap2430_mailbox_addrs[] = {
> - 		.pa_end		= 0x480941ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> mailbox */
> -@@ -2008,7 +2008,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__mailbox = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_mailbox_hwmod,
> - 	.addr		= omap2430_mailbox_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_mailbox_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2287,6 +2286,7 @@ static struct omap_hwmod_addr_space
> omap2430_mcbsp1_addrs[] = {
> - 		.pa_end		= 0x480740ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> mcbsp1 */
> -@@ -2295,7 +2295,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__mcbsp1 = {
> - 	.slave		= &omap2430_mcbsp1_hwmod,
> - 	.clk		= "mcbsp1_ick",
> - 	.addr		= omap2430_mcbsp1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_mcbsp1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2345,6 +2344,7 @@ static struct omap_hwmod_addr_space
> omap2430_mcbsp2_addrs[] = {
> - 		.pa_end		= 0x480760ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> mcbsp2 */
> -@@ -2353,7 +2353,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__mcbsp2 = {
> - 	.slave		= &omap2430_mcbsp2_hwmod,
> - 	.clk		= "mcbsp2_ick",
> - 	.addr		= omap2430_mcbsp2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_mcbsp2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2403,6 +2402,7 @@ static struct omap_hwmod_addr_space
> omap2430_mcbsp3_addrs[] = {
> - 		.pa_end		= 0x4808C0ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> mcbsp3 */
> -@@ -2411,7 +2411,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__mcbsp3 = {
> - 	.slave		= &omap2430_mcbsp3_hwmod,
> - 	.clk		= "mcbsp3_ick",
> - 	.addr		= omap2430_mcbsp3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_mcbsp3_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2461,6 +2460,7 @@ static struct omap_hwmod_addr_space
> omap2430_mcbsp4_addrs[] = {
> - 		.pa_end		= 0x4808E0ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> mcbsp4 */
> -@@ -2469,7 +2469,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__mcbsp4 = {
> - 	.slave		= &omap2430_mcbsp4_hwmod,
> - 	.clk		= "mcbsp4_ick",
> - 	.addr		= omap2430_mcbsp4_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_mcbsp4_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2519,6 +2518,7 @@ static struct omap_hwmod_addr_space
> omap2430_mcbsp5_addrs[] = {
> - 		.pa_end		= 0x480960ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> mcbsp5 */
> -@@ -2527,7 +2527,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__mcbsp5 = {
> - 	.slave		= &omap2430_mcbsp5_hwmod,
> - 	.clk		= "mcbsp5_ick",
> - 	.addr		= omap2430_mcbsp5_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap2430_mcbsp5_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -index 909a84d..6410779 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -@@ -1,7 +1,7 @@
> - /*
> -  * omap_hwmod_3xxx_data.c - hardware modules present on the OMAP3xxx
> chips
> -  *
> -- * Copyright (C) 2009-2010 Nokia Corporation
> -+ * Copyright (C) 2009-2011 Nokia Corporation
> -  * Paul Walmsley
> -  *
> -  * This program is free software; you can redistribute it and/or modify
> -@@ -111,6 +111,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_l3_main_addrs[] = {
> - 		.pa_end         = 0x6800ffff,
> - 		.flags          = ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - /* MPU -> L3 interface */
> -@@ -118,7 +119,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_mpu__l3_main = {
> - 	.master   = &omap3xxx_mpu_hwmod,
> - 	.slave    = &omap3xxx_l3_main_hwmod,
> - 	.addr     = omap3xxx_l3_main_addrs,
> --	.addr_cnt = ARRAY_SIZE(omap3xxx_l3_main_addrs),
> - 	.user	= OCP_USER_MPU,
> - };
> -
> -@@ -196,6 +196,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_mmc1_addr_space[] = {
> - 		.pa_end		= 0x4809c1ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__mmc1 = {
> -@@ -203,7 +204,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__mmc1 = {
> - 	.slave		= &omap3xxx_mmc1_hwmod,
> - 	.clk		= "mmchs1_ick",
> - 	.addr		= omap3xxx_mmc1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_mmc1_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - 	.flags		= OMAP_FIREWALL_L4
> - };
> -@@ -215,6 +215,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_mmc2_addr_space[] = {
> - 		.pa_end		= 0x480b41ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__mmc2 = {
> -@@ -222,7 +223,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__mmc2 = {
> - 	.slave		= &omap3xxx_mmc2_hwmod,
> - 	.clk		= "mmchs2_ick",
> - 	.addr		= omap3xxx_mmc2_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_mmc2_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - 	.flags		= OMAP_FIREWALL_L4
> - };
> -@@ -234,6 +234,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_mmc3_addr_space[] = {
> - 		.pa_end		= 0x480ad1ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__mmc3 = {
> -@@ -241,7 +242,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__mmc3 = {
> - 	.slave		= &omap3xxx_mmc3_hwmod,
> - 	.clk		= "mmchs3_ick",
> - 	.addr		= omap3xxx_mmc3_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_mmc3_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - 	.flags		= OMAP_FIREWALL_L4
> - };
> -@@ -253,6 +253,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_uart1_addr_space[] = {
> - 		.pa_end		= OMAP3_UART1_BASE + SZ_8K - 1,
> - 		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3_l4_core__uart1 = {
> -@@ -260,7 +261,6 @@ static struct omap_hwmod_ocp_if
> omap3_l4_core__uart1 = {
> - 	.slave		= &omap3xxx_uart1_hwmod,
> - 	.clk		= "uart1_ick",
> - 	.addr		= omap3xxx_uart1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_uart1_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -271,6 +271,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_uart2_addr_space[] = {
> - 		.pa_end		= OMAP3_UART2_BASE + SZ_1K - 1,
> - 		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3_l4_core__uart2 = {
> -@@ -278,7 +279,6 @@ static struct omap_hwmod_ocp_if
> omap3_l4_core__uart2 = {
> - 	.slave		= &omap3xxx_uart2_hwmod,
> - 	.clk		= "uart2_ick",
> - 	.addr		= omap3xxx_uart2_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_uart2_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -289,6 +289,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_uart3_addr_space[] = {
> - 		.pa_end		= OMAP3_UART3_BASE + SZ_1K - 1,
> - 		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3_l4_per__uart3 = {
> -@@ -296,7 +297,6 @@ static struct omap_hwmod_ocp_if
> omap3_l4_per__uart3 = {
> - 	.slave		= &omap3xxx_uart3_hwmod,
> - 	.clk		= "uart3_ick",
> - 	.addr		= omap3xxx_uart3_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_uart3_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -307,6 +307,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_uart4_addr_space[] = {
> - 		.pa_end		= OMAP3_UART4_BASE + SZ_1K - 1,
> - 		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3_l4_per__uart4 = {
> -@@ -314,7 +315,6 @@ static struct omap_hwmod_ocp_if
> omap3_l4_per__uart4 = {
> - 	.slave		= &omap3xxx_uart4_hwmod,
> - 	.clk		= "uart4_ick",
> - 	.addr		= omap3xxx_uart4_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_uart4_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -328,6 +328,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_i2c1_addr_space[] = {
> - 		.pa_end		= 0x48070000 + OMAP2_I2C_AS_LEN
> - 1,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3_l4_core__i2c1 = {
> -@@ -335,7 +336,6 @@ static struct omap_hwmod_ocp_if
> omap3_l4_core__i2c1 = {
> - 	.slave		= &omap3xxx_i2c1_hwmod,
> - 	.clk		= "i2c1_ick",
> - 	.addr		= omap3xxx_i2c1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_i2c1_addr_space),
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_I2C1_REGION,
> -@@ -353,6 +353,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_i2c2_addr_space[] = {
> - 		.pa_end		= 0x48072000 + OMAP2_I2C_AS_LEN
> - 1,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3_l4_core__i2c2 = {
> -@@ -360,7 +361,6 @@ static struct omap_hwmod_ocp_if
> omap3_l4_core__i2c2 = {
> - 	.slave		= &omap3xxx_i2c2_hwmod,
> - 	.clk		= "i2c2_ick",
> - 	.addr		= omap3xxx_i2c2_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_i2c2_addr_space),
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_I2C2_REGION,
> -@@ -378,6 +378,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_i2c3_addr_space[] = {
> - 		.pa_end		= 0x48060000 + OMAP2_I2C_AS_LEN
> - 1,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3_l4_core__i2c3 = {
> -@@ -385,7 +386,6 @@ static struct omap_hwmod_ocp_if
> omap3_l4_core__i2c3 = {
> - 	.slave		= &omap3xxx_i2c3_hwmod,
> - 	.clk		= "i2c3_ick",
> - 	.addr		= omap3xxx_i2c3_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_i2c3_addr_space),
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_I2C3_REGION,
> -@@ -403,6 +403,7 @@ static struct omap_hwmod_addr_space
> omap3_sr1_addr_space[] = {
> - 		.pa_end		= OMAP34XX_SR1_BASE + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3_l4_core__sr1 = {
> -@@ -410,7 +411,6 @@ static struct omap_hwmod_ocp_if
> omap3_l4_core__sr1 = {
> - 	.slave		= &omap34xx_sr1_hwmod,
> - 	.clk		= "sr_l4_ick",
> - 	.addr		= omap3_sr1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap3_sr1_addr_space),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -421,6 +421,7 @@ static struct omap_hwmod_addr_space
> omap3_sr2_addr_space[] = {
> - 		.pa_end		= OMAP34XX_SR2_BASE + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3_l4_core__sr2 = {
> -@@ -428,7 +429,6 @@ static struct omap_hwmod_ocp_if
> omap3_l4_core__sr2 = {
> - 	.slave		= &omap34xx_sr2_hwmod,
> - 	.clk		= "sr_l4_ick",
> - 	.addr		= omap3_sr2_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap3_sr2_addr_space),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -442,6 +442,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_usbhsotg_addrs[] = {
> - 		.pa_end		= OMAP34XX_HSUSB_OTG_BASE +
> SZ_4K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> usbhsotg  */
> -@@ -450,7 +451,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__usbhsotg = {
> - 	.slave		= &omap3xxx_usbhsotg_hwmod,
> - 	.clk		= "l4_ick",
> - 	.addr		= omap3xxx_usbhsotg_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_usbhsotg_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -468,6 +468,7 @@ static struct omap_hwmod_addr_space
> am35xx_usbhsotg_addrs[] = {
> - 		.pa_end		= AM35XX_IPSS_USBOTGSS_BASE +
> SZ_4K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> usbhsotg  */
> -@@ -476,7 +477,6 @@ static struct omap_hwmod_ocp_if
> am35xx_l4_core__usbhsotg = {
> - 	.slave		= &am35xx_usbhsotg_hwmod,
> - 	.clk		= "l4_ick",
> - 	.addr		= am35xx_usbhsotg_addrs,
> --	.addr_cnt	= ARRAY_SIZE(am35xx_usbhsotg_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -621,6 +621,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_timer1_addrs[] = {
> - 		.pa_end		= 0x48318000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_wkup -> timer1 */
> -@@ -629,7 +630,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_wkup__timer1 = {
> - 	.slave		= &omap3xxx_timer1_hwmod,
> - 	.clk		= "gpt1_ick",
> - 	.addr		= omap3xxx_timer1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_timer1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -671,6 +671,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_timer2_addrs[] = {
> - 		.pa_end		= 0x49032000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer2 */
> -@@ -679,7 +680,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__timer2 = {
> - 	.slave		= &omap3xxx_timer2_hwmod,
> - 	.clk		= "gpt2_ick",
> - 	.addr		= omap3xxx_timer2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_timer2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -721,6 +721,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_timer3_addrs[] = {
> - 		.pa_end		= 0x49034000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer3 */
> -@@ -729,7 +730,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__timer3 = {
> - 	.slave		= &omap3xxx_timer3_hwmod,
> - 	.clk		= "gpt3_ick",
> - 	.addr		= omap3xxx_timer3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_timer3_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -771,6 +771,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_timer4_addrs[] = {
> - 		.pa_end		= 0x49036000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer4 */
> -@@ -779,7 +780,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__timer4 = {
> - 	.slave		= &omap3xxx_timer4_hwmod,
> - 	.clk		= "gpt4_ick",
> - 	.addr		= omap3xxx_timer4_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_timer4_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -821,6 +821,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_timer5_addrs[] = {
> - 		.pa_end		= 0x49038000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer5 */
> -@@ -829,7 +830,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__timer5 = {
> - 	.slave		= &omap3xxx_timer5_hwmod,
> - 	.clk		= "gpt5_ick",
> - 	.addr		= omap3xxx_timer5_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_timer5_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -871,6 +871,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_timer6_addrs[] = {
> - 		.pa_end		= 0x4903A000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer6 */
> -@@ -879,7 +880,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__timer6 = {
> - 	.slave		= &omap3xxx_timer6_hwmod,
> - 	.clk		= "gpt6_ick",
> - 	.addr		= omap3xxx_timer6_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_timer6_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -921,6 +921,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_timer7_addrs[] = {
> - 		.pa_end		= 0x4903C000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer7 */
> -@@ -929,7 +930,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__timer7 = {
> - 	.slave		= &omap3xxx_timer7_hwmod,
> - 	.clk		= "gpt7_ick",
> - 	.addr		= omap3xxx_timer7_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_timer7_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -971,6 +971,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_timer8_addrs[] = {
> - 		.pa_end		= 0x4903E000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer8 */
> -@@ -979,7 +980,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__timer8 = {
> - 	.slave		= &omap3xxx_timer8_hwmod,
> - 	.clk		= "gpt8_ick",
> - 	.addr		= omap3xxx_timer8_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_timer8_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1021,6 +1021,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_timer9_addrs[] = {
> - 		.pa_end		= 0x49040000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer9 */
> -@@ -1029,7 +1030,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__timer9 = {
> - 	.slave		= &omap3xxx_timer9_hwmod,
> - 	.clk		= "gpt9_ick",
> - 	.addr		= omap3xxx_timer9_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_timer9_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1071,6 +1071,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_timer10_addrs[] = {
> - 		.pa_end		= 0x48086000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer10 */
> -@@ -1079,7 +1080,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__timer10 = {
> - 	.slave		= &omap3xxx_timer10_hwmod,
> - 	.clk		= "gpt10_ick",
> - 	.addr		= omap3xxx_timer10_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_timer10_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1121,6 +1121,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_timer11_addrs[] = {
> - 		.pa_end		= 0x48088000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer11 */
> -@@ -1129,7 +1130,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__timer11 = {
> - 	.slave		= &omap3xxx_timer11_hwmod,
> - 	.clk		= "gpt11_ick",
> - 	.addr		= omap3xxx_timer11_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_timer11_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1171,6 +1171,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_timer12_addrs[] = {
> - 		.pa_end		= 0x48304000 + SZ_1K - 1,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> timer12 */
> -@@ -1179,7 +1180,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__timer12 = {
> - 	.slave		= &omap3xxx_timer12_hwmod,
> - 	.clk		= "gpt12_ick",
> - 	.addr		= omap3xxx_timer12_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_timer12_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1216,6 +1216,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_wd_timer2_addrs[] = {
> - 		.pa_end		= 0x4831407f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3xxx_l4_wkup__wd_timer2 = {
> -@@ -1223,7 +1224,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_wkup__wd_timer2 = {
> - 	.slave		= &omap3xxx_wd_timer2_hwmod,
> - 	.clk		= "wdt2_ick",
> - 	.addr		= omap3xxx_wd_timer2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_wd_timer2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1497,6 +1497,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_dss_addrs[] = {
> - 		.pa_end		= 0x480503FF,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> dss */
> -@@ -1505,7 +1506,6 @@ static struct omap_hwmod_ocp_if
> omap3430es1_l4_core__dss = {
> - 	.slave		= &omap3430es1_dss_core_hwmod,
> - 	.clk		= "dss_ick",
> - 	.addr		= omap3xxx_dss_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_dss_addrs),
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3ES1_L4_CORE_FW_DSS_CORE_REGION,
> -@@ -1521,7 +1521,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__dss = {
> - 	.slave		= &omap3xxx_dss_core_hwmod,
> - 	.clk		= "dss_ick",
> - 	.addr		= omap3xxx_dss_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_dss_addrs),
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_DSS_CORE_REGION,
> -@@ -1632,6 +1631,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_dss_dispc_addrs[] = {
> - 		.pa_end		= 0x480507FF,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> dss_dispc */
> -@@ -1640,7 +1640,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__dss_dispc = {
> - 	.slave		= &omap3xxx_dss_dispc_hwmod,
> - 	.clk		= "dss_ick",
> - 	.addr		= omap3xxx_dss_dispc_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_dss_dispc_addrs),
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_DSS_DISPC_REGION,
> -@@ -1697,6 +1696,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_dss_dsi1_addrs[] = {
> - 		.pa_end		= 0x4804FFFF,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> dss_dsi1 */
> -@@ -1704,7 +1704,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__dss_dsi1 = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap3xxx_dss_dsi1_hwmod,
> - 	.addr		= omap3xxx_dss_dsi1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_dss_dsi1_addrs),
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_DSS_DSI_REGION,
> -@@ -1767,6 +1766,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_dss_rfbi_addrs[] = {
> - 		.pa_end		= 0x48050BFF,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> dss_rfbi */
> -@@ -1775,7 +1775,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__dss_rfbi = {
> - 	.slave		= &omap3xxx_dss_rfbi_hwmod,
> - 	.clk		= "dss_ick",
> - 	.addr		= omap3xxx_dss_rfbi_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_dss_rfbi_addrs),
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_DSS_RFBI_REGION,
> -@@ -1826,6 +1825,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_dss_venc_addrs[] = {
> - 		.pa_end		= 0x48050FFF,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> dss_venc */
> -@@ -1834,7 +1834,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__dss_venc = {
> - 	.slave		= &omap3xxx_dss_venc_hwmod,
> - 	.clk		= "dss_tv_fck",
> - 	.addr		= omap3xxx_dss_venc_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_dss_venc_addrs),
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_DSS_VENC_REGION,
> -@@ -2003,13 +2002,13 @@ static struct omap_hwmod_addr_space
> omap3xxx_gpio1_addrs[] = {
> - 		.pa_end		= 0x483101ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3xxx_l4_wkup__gpio1 = {
> - 	.master		= &omap3xxx_l4_wkup_hwmod,
> - 	.slave		= &omap3xxx_gpio1_hwmod,
> - 	.addr		= omap3xxx_gpio1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_gpio1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2020,13 +2019,13 @@ static struct omap_hwmod_addr_space
> omap3xxx_gpio2_addrs[] = {
> - 		.pa_end		= 0x490501ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3xxx_l4_per__gpio2 = {
> - 	.master		= &omap3xxx_l4_per_hwmod,
> - 	.slave		= &omap3xxx_gpio2_hwmod,
> - 	.addr		= omap3xxx_gpio2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_gpio2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2037,13 +2036,13 @@ static struct omap_hwmod_addr_space
> omap3xxx_gpio3_addrs[] = {
> - 		.pa_end		= 0x490521ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3xxx_l4_per__gpio3 = {
> - 	.master		= &omap3xxx_l4_per_hwmod,
> - 	.slave		= &omap3xxx_gpio3_hwmod,
> - 	.addr		= omap3xxx_gpio3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_gpio3_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2054,13 +2053,13 @@ static struct omap_hwmod_addr_space
> omap3xxx_gpio4_addrs[] = {
> - 		.pa_end		= 0x490541ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3xxx_l4_per__gpio4 = {
> - 	.master		= &omap3xxx_l4_per_hwmod,
> - 	.slave		= &omap3xxx_gpio4_hwmod,
> - 	.addr		= omap3xxx_gpio4_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_gpio4_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2071,13 +2070,13 @@ static struct omap_hwmod_addr_space
> omap3xxx_gpio5_addrs[] = {
> - 		.pa_end		= 0x490561ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3xxx_l4_per__gpio5 = {
> - 	.master		= &omap3xxx_l4_per_hwmod,
> - 	.slave		= &omap3xxx_gpio5_hwmod,
> - 	.addr		= omap3xxx_gpio5_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_gpio5_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2088,13 +2087,13 @@ static struct omap_hwmod_addr_space
> omap3xxx_gpio6_addrs[] = {
> - 		.pa_end		= 0x490581ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap3xxx_l4_per__gpio6 = {
> - 	.master		= &omap3xxx_l4_per_hwmod,
> - 	.slave		= &omap3xxx_gpio6_hwmod,
> - 	.addr		= omap3xxx_gpio6_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_gpio6_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2395,6 +2394,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_dma_system_addrs[] = {
> - 		.pa_end		= 0x48056fff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* dma_system master ports */
> -@@ -2408,7 +2408,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__dma_system = {
> - 	.slave		= &omap3xxx_dma_system_hwmod,
> - 	.clk		= "core_l4_ick",
> - 	.addr		= omap3xxx_dma_system_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_dma_system_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2480,6 +2479,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_mcbsp1_addrs[] = {
> - 		.pa_end		= 0x480740ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> mcbsp1 */
> -@@ -2488,7 +2488,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__mcbsp1 = {
> - 	.slave		= &omap3xxx_mcbsp1_hwmod,
> - 	.clk		= "mcbsp1_ick",
> - 	.addr		= omap3xxx_mcbsp1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_mcbsp1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2538,6 +2537,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_mcbsp2_addrs[] = {
> - 		.pa_end		= 0x490220ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mcbsp2 */
> -@@ -2546,7 +2546,7 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__mcbsp2 = {
> - 	.slave		= &omap3xxx_mcbsp2_hwmod,
> - 	.clk		= "mcbsp2_ick",
> - 	.addr		= omap3xxx_mcbsp2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_mcbsp2_addrs),
> -+
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2601,6 +2601,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_mcbsp3_addrs[] = {
> - 		.pa_end		= 0x490240ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mcbsp3 */
> -@@ -2609,7 +2610,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__mcbsp3 = {
> - 	.slave		= &omap3xxx_mcbsp3_hwmod,
> - 	.clk		= "mcbsp3_ick",
> - 	.addr		= omap3xxx_mcbsp3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_mcbsp3_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2664,6 +2664,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_mcbsp4_addrs[] = {
> - 		.pa_end		= 0x490260ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mcbsp4 */
> -@@ -2672,7 +2673,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__mcbsp4 = {
> - 	.slave		= &omap3xxx_mcbsp4_hwmod,
> - 	.clk		= "mcbsp4_ick",
> - 	.addr		= omap3xxx_mcbsp4_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_mcbsp4_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2722,6 +2722,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_mcbsp5_addrs[] = {
> - 		.pa_end		= 0x480960ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> mcbsp5 */
> -@@ -2730,7 +2731,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__mcbsp5 = {
> - 	.slave		= &omap3xxx_mcbsp5_hwmod,
> - 	.clk		= "mcbsp5_ick",
> - 	.addr		= omap3xxx_mcbsp5_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_mcbsp5_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2785,6 +2785,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_mcbsp2_sidetone_addrs[] = {
> - 		.pa_end		= 0x490280ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mcbsp2_sidetone */
> -@@ -2793,7 +2794,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__mcbsp2_sidetone = {
> - 	.slave		= &omap3xxx_mcbsp2_sidetone_hwmod,
> - 	.clk		= "mcbsp2_ick",
> - 	.addr		= omap3xxx_mcbsp2_sidetone_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_mcbsp2_sidetone_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -2834,6 +2834,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_mcbsp3_sidetone_addrs[] = {
> - 		.pa_end		= 0x4902A0ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mcbsp3_sidetone */
> -@@ -2842,7 +2843,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__mcbsp3_sidetone = {
> - 	.slave		= &omap3xxx_mcbsp3_sidetone_hwmod,
> - 	.clk		= "mcbsp3_ick",
> - 	.addr		= omap3xxx_mcbsp3_sidetone_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_mcbsp3_sidetone_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -3033,6 +3033,7 @@ static struct omap_hwmod_addr_space
> omap3xxx_mailbox_addrs[] = {
> - 		.pa_end		= 0x480941ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - /* l4_core -> mailbox */
> -@@ -3040,7 +3041,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__mailbox = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap3xxx_mailbox_hwmod,
> - 	.addr		= omap3xxx_mailbox_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap3xxx_mailbox_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3076,6 +3076,7 @@ static struct omap_hwmod_addr_space
> omap34xx_mcspi1_addr_space[] = {
> - 		.pa_end		= 0x480980ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap34xx_l4_core__mcspi1 = {
> -@@ -3083,7 +3084,6 @@ static struct omap_hwmod_ocp_if
> omap34xx_l4_core__mcspi1 = {
> - 	.slave		= &omap34xx_mcspi1,
> - 	.clk		= "mcspi1_ick",
> - 	.addr		= omap34xx_mcspi1_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap34xx_mcspi1_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3094,6 +3094,7 @@ static struct omap_hwmod_addr_space
> omap34xx_mcspi2_addr_space[] = {
> - 		.pa_end		= 0x4809a0ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap34xx_l4_core__mcspi2 = {
> -@@ -3101,7 +3102,6 @@ static struct omap_hwmod_ocp_if
> omap34xx_l4_core__mcspi2 = {
> - 	.slave		= &omap34xx_mcspi2,
> - 	.clk		= "mcspi2_ick",
> - 	.addr		= omap34xx_mcspi2_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap34xx_mcspi2_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3112,6 +3112,7 @@ static struct omap_hwmod_addr_space
> omap34xx_mcspi3_addr_space[] = {
> - 		.pa_end		= 0x480b80ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap34xx_l4_core__mcspi3 = {
> -@@ -3119,7 +3120,6 @@ static struct omap_hwmod_ocp_if
> omap34xx_l4_core__mcspi3 = {
> - 	.slave		= &omap34xx_mcspi3,
> - 	.clk		= "mcspi3_ick",
> - 	.addr		= omap34xx_mcspi3_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap34xx_mcspi3_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3130,6 +3130,7 @@ static struct omap_hwmod_addr_space
> omap34xx_mcspi4_addr_space[] = {
> - 		.pa_end		= 0x480ba0ff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - static struct omap_hwmod_ocp_if omap34xx_l4_core__mcspi4 = {
> -@@ -3137,7 +3138,6 @@ static struct omap_hwmod_ocp_if
> omap34xx_l4_core__mcspi4 = {
> - 	.slave		= &omap34xx_mcspi4,
> - 	.clk		= "mcspi4_ick",
> - 	.addr		= omap34xx_mcspi4_addr_space,
> --	.addr_cnt	= ARRAY_SIZE(omap34xx_mcspi4_addr_space),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index 8cbbfbf..f8ccc4a 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -95,6 +95,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dmm_addrs[] = {
> - 		.pa_end		= 0x4e0007ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* mpu -> dmm */
> -@@ -103,7 +104,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_mpu__dmm = {
> - 	.slave		= &omap44xx_dmm_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_dmm_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dmm_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -150,6 +150,7 @@ static struct omap_hwmod_addr_space
> omap44xx_emif_fw_addrs[] = {
> - 		.pa_end		= 0x4a20c0ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_cfg -> emif_fw */
> -@@ -158,7 +159,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_cfg__emif_fw = {
> - 	.slave		= &omap44xx_emif_fw_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_emif_fw_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_emif_fw_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -276,6 +276,7 @@ static struct omap_hwmod_addr_space
> omap44xx_l3_main_1_addrs[] = {
> - 		.pa_end		= 0x44000fff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - /* mpu -> l3_main_1 */
> -@@ -284,7 +285,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_mpu__l3_main_1 = {
> - 	.slave		= &omap44xx_l3_main_1_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_l3_main_1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_l3_main_1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -356,6 +356,7 @@ static struct omap_hwmod_addr_space
> omap44xx_l3_main_2_addrs[] = {
> - 		.pa_end		= 0x44801fff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - /* l3_main_1 -> l3_main_2 */
> -@@ -364,7 +365,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l3_main_1__l3_main_2 = {
> - 	.slave		= &omap44xx_l3_main_2_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_l3_main_2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_l3_main_2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -411,6 +411,7 @@ static struct omap_hwmod_addr_space
> omap44xx_l3_main_3_addrs[] = {
> - 		.pa_end		= 0x45000fff,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> -+	{ }
> - };
> -
> - /* l3_main_1 -> l3_main_3 */
> -@@ -419,7 +420,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l3_main_1__l3_main_3 = {
> - 	.slave		= &omap44xx_l3_main_3_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_l3_main_3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_l3_main_3_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -697,6 +697,7 @@ static struct omap_hwmod_addr_space
> omap44xx_aess_addrs[] = {
> - 		.pa_end		= 0x401f13ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> aess */
> -@@ -705,7 +706,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__aess = {
> - 	.slave		= &omap44xx_aess_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_aess_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_aess_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -715,6 +715,7 @@ static struct omap_hwmod_addr_space
> omap44xx_aess_dma_addrs[] = {
> - 		.pa_end		= 0x490f13ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> aess (dma) */
> -@@ -723,7 +724,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__aess_dma = {
> - 	.slave		= &omap44xx_aess_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_aess_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_aess_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -807,6 +807,7 @@ static struct omap_hwmod_addr_space
> omap44xx_counter_32k_addrs[] = {
> - 		.pa_end		= 0x4a30401f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_wkup -> counter_32k */
> -@@ -815,7 +816,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_wkup__counter_32k = {
> - 	.slave		= &omap44xx_counter_32k_hwmod,
> - 	.clk		= "l4_wkup_clk_mux_ck",
> - 	.addr		= omap44xx_counter_32k_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_counter_32k_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -889,6 +889,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dma_system_addrs[] = {
> - 		.pa_end		= 0x4a056fff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_cfg -> dma_system */
> -@@ -897,7 +898,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_cfg__dma_system = {
> - 	.slave		= &omap44xx_dma_system_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_dma_system_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dma_system_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -961,6 +961,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dmic_addrs[] = {
> - 		.pa_end		= 0x4012e07f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> dmic */
> -@@ -969,7 +970,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__dmic = {
> - 	.slave		= &omap44xx_dmic_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_dmic_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dmic_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -979,6 +979,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dmic_dma_addrs[] = {
> - 		.pa_end		= 0x4902e07f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> dmic (dma) */
> -@@ -987,7 +988,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__dmic_dma = {
> - 	.slave		= &omap44xx_dmic_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_dmic_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dmic_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -1128,6 +1128,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_dma_addrs[] = {
> - 		.pa_end		= 0x5800007f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l3_main_2 -> dss */
> -@@ -1136,7 +1137,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l3_main_2__dss = {
> - 	.slave		= &omap44xx_dss_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_dss_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -1146,6 +1146,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_addrs[] = {
> - 		.pa_end		= 0x4804007f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> dss */
> -@@ -1154,7 +1155,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__dss = {
> - 	.slave		= &omap44xx_dss_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_dss_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -1228,6 +1228,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_dispc_dma_addrs[] = {
> - 		.pa_end		= 0x58001fff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l3_main_2 -> dss_dispc */
> -@@ -1236,7 +1237,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l3_main_2__dss_dispc = {
> - 	.slave		= &omap44xx_dss_dispc_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_dss_dispc_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_dispc_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -1246,6 +1246,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_dispc_addrs[] = {
> - 		.pa_end		= 0x48041fff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> dss_dispc */
> -@@ -1254,7 +1255,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__dss_dispc = {
> - 	.slave		= &omap44xx_dss_dispc_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_dss_dispc_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_dispc_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -1319,6 +1319,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_dsi1_dma_addrs[] = {
> - 		.pa_end		= 0x580041ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l3_main_2 -> dss_dsi1 */
> -@@ -1327,7 +1328,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l3_main_2__dss_dsi1 = {
> - 	.slave		= &omap44xx_dss_dsi1_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_dss_dsi1_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_dsi1_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -1337,6 +1337,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_dsi1_addrs[] = {
> - 		.pa_end		= 0x480441ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> dss_dsi1 */
> -@@ -1345,7 +1346,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__dss_dsi1 = {
> - 	.slave		= &omap44xx_dss_dsi1_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_dss_dsi1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_dsi1_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -1389,6 +1389,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_dsi2_dma_addrs[] = {
> - 		.pa_end		= 0x580051ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l3_main_2 -> dss_dsi2 */
> -@@ -1397,7 +1398,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l3_main_2__dss_dsi2 = {
> - 	.slave		= &omap44xx_dss_dsi2_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_dss_dsi2_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_dsi2_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -1407,6 +1407,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_dsi2_addrs[] = {
> - 		.pa_end		= 0x480451ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> dss_dsi2 */
> -@@ -1415,7 +1416,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__dss_dsi2 = {
> - 	.slave		= &omap44xx_dss_dsi2_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_dss_dsi2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_dsi2_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -1479,6 +1479,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_hdmi_dma_addrs[] = {
> - 		.pa_end		= 0x58006fff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l3_main_2 -> dss_hdmi */
> -@@ -1487,7 +1488,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l3_main_2__dss_hdmi = {
> - 	.slave		= &omap44xx_dss_hdmi_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_dss_hdmi_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_hdmi_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -1497,6 +1497,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_hdmi_addrs[] = {
> - 		.pa_end		= 0x48046fff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> dss_hdmi */
> -@@ -1505,7 +1506,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__dss_hdmi = {
> - 	.slave		= &omap44xx_dss_hdmi_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_dss_hdmi_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_hdmi_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -1565,6 +1565,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_rfbi_dma_addrs[] = {
> - 		.pa_end		= 0x580020ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l3_main_2 -> dss_rfbi */
> -@@ -1573,7 +1574,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l3_main_2__dss_rfbi = {
> - 	.slave		= &omap44xx_dss_rfbi_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_dss_rfbi_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_rfbi_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -1583,6 +1583,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_rfbi_addrs[] = {
> - 		.pa_end		= 0x480420ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> dss_rfbi */
> -@@ -1591,7 +1592,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__dss_rfbi = {
> - 	.slave		= &omap44xx_dss_rfbi_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_dss_rfbi_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_rfbi_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -1634,6 +1634,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_venc_dma_addrs[] = {
> - 		.pa_end		= 0x580030ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l3_main_2 -> dss_venc */
> -@@ -1642,7 +1643,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l3_main_2__dss_venc = {
> - 	.slave		= &omap44xx_dss_venc_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_dss_venc_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_venc_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -1652,6 +1652,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_venc_addrs[] = {
> - 		.pa_end		= 0x480430ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> dss_venc */
> -@@ -1660,7 +1661,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__dss_venc = {
> - 	.slave		= &omap44xx_dss_venc_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_dss_venc_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_dss_venc_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -1725,6 +1725,7 @@ static struct omap_hwmod_addr_space
> omap44xx_gpio1_addrs[] = {
> - 		.pa_end		= 0x4a3101ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_wkup -> gpio1 */
> -@@ -1733,7 +1734,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_wkup__gpio1 = {
> - 	.slave		= &omap44xx_gpio1_hwmod,
> - 	.clk		= "l4_wkup_clk_mux_ck",
> - 	.addr		= omap44xx_gpio1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_gpio1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1777,6 +1777,7 @@ static struct omap_hwmod_addr_space
> omap44xx_gpio2_addrs[] = {
> - 		.pa_end		= 0x480551ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> gpio2 */
> -@@ -1785,7 +1786,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__gpio2 = {
> - 	.slave		= &omap44xx_gpio2_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_gpio2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_gpio2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1830,6 +1830,7 @@ static struct omap_hwmod_addr_space
> omap44xx_gpio3_addrs[] = {
> - 		.pa_end		= 0x480571ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> gpio3 */
> -@@ -1838,7 +1839,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__gpio3 = {
> - 	.slave		= &omap44xx_gpio3_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_gpio3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_gpio3_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1883,6 +1883,7 @@ static struct omap_hwmod_addr_space
> omap44xx_gpio4_addrs[] = {
> - 		.pa_end		= 0x480591ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> gpio4 */
> -@@ -1891,7 +1892,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__gpio4 = {
> - 	.slave		= &omap44xx_gpio4_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_gpio4_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_gpio4_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1936,6 +1936,7 @@ static struct omap_hwmod_addr_space
> omap44xx_gpio5_addrs[] = {
> - 		.pa_end		= 0x4805b1ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> gpio5 */
> -@@ -1944,7 +1945,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__gpio5 = {
> - 	.slave		= &omap44xx_gpio5_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_gpio5_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_gpio5_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1989,6 +1989,7 @@ static struct omap_hwmod_addr_space
> omap44xx_gpio6_addrs[] = {
> - 		.pa_end		= 0x4805d1ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> gpio6 */
> -@@ -1997,7 +1998,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__gpio6 = {
> - 	.slave		= &omap44xx_gpio6_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_gpio6_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_gpio6_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2072,6 +2072,7 @@ static struct omap_hwmod_addr_space
> omap44xx_hsi_addrs[] = {
> - 		.pa_end		= 0x4a05bfff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_cfg -> hsi */
> -@@ -2080,7 +2081,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_cfg__hsi = {
> - 	.slave		= &omap44xx_hsi_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_hsi_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_hsi_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2145,6 +2145,7 @@ static struct omap_hwmod_addr_space
> omap44xx_i2c1_addrs[] = {
> - 		.pa_end		= 0x480700ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> i2c1 */
> -@@ -2153,7 +2154,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__i2c1 = {
> - 	.slave		= &omap44xx_i2c1_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_i2c1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_i2c1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2198,6 +2198,7 @@ static struct omap_hwmod_addr_space
> omap44xx_i2c2_addrs[] = {
> - 		.pa_end		= 0x480720ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> i2c2 */
> -@@ -2206,7 +2207,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__i2c2 = {
> - 	.slave		= &omap44xx_i2c2_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_i2c2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_i2c2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2251,6 +2251,7 @@ static struct omap_hwmod_addr_space
> omap44xx_i2c3_addrs[] = {
> - 		.pa_end		= 0x480600ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> i2c3 */
> -@@ -2259,7 +2260,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__i2c3 = {
> - 	.slave		= &omap44xx_i2c3_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_i2c3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_i2c3_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2304,6 +2304,7 @@ static struct omap_hwmod_addr_space
> omap44xx_i2c4_addrs[] = {
> - 		.pa_end		= 0x483500ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> i2c4 */
> -@@ -2312,7 +2313,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__i2c4 = {
> - 	.slave		= &omap44xx_i2c4_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_i2c4_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_i2c4_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2479,6 +2479,7 @@ static struct omap_hwmod_addr_space
> omap44xx_iss_addrs[] = {
> - 		.pa_end		= 0x520000ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l3_main_2 -> iss */
> -@@ -2487,7 +2488,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l3_main_2__iss = {
> - 	.slave		= &omap44xx_iss_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_iss_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_iss_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2562,6 +2562,7 @@ static struct omap_hwmod_addr_space
> omap44xx_iva_addrs[] = {
> - 		.pa_end		= 0x5a07ffff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l3_main_2 -> iva */
> -@@ -2570,7 +2571,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l3_main_2__iva = {
> - 	.slave		= &omap44xx_iva_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_iva_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_iva_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -2665,6 +2665,7 @@ static struct omap_hwmod_addr_space
> omap44xx_kbd_addrs[] = {
> - 		.pa_end		= 0x4a31c07f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_wkup -> kbd */
> -@@ -2673,7 +2674,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_wkup__kbd = {
> - 	.slave		= &omap44xx_kbd_hwmod,
> - 	.clk		= "l4_wkup_clk_mux_ck",
> - 	.addr		= omap44xx_kbd_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_kbd_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2730,6 +2730,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mailbox_addrs[] = {
> - 		.pa_end		= 0x4a0f41ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_cfg -> mailbox */
> -@@ -2738,7 +2739,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_cfg__mailbox = {
> - 	.slave		= &omap44xx_mailbox_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_mailbox_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mailbox_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2799,6 +2799,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mcbsp1_addrs[] = {
> - 		.pa_end		= 0x401220ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> mcbsp1 */
> -@@ -2807,7 +2808,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__mcbsp1 = {
> - 	.slave		= &omap44xx_mcbsp1_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_mcbsp1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mcbsp1_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -2818,6 +2818,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mcbsp1_dma_addrs[] = {
> - 		.pa_end		= 0x490220ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> mcbsp1 (dma) */
> -@@ -2826,7 +2827,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__mcbsp1_dma = {
> - 	.slave		= &omap44xx_mcbsp1_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_mcbsp1_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mcbsp1_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -2872,6 +2872,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mcbsp2_addrs[] = {
> - 		.pa_end		= 0x401240ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> mcbsp2 */
> -@@ -2880,7 +2881,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__mcbsp2 = {
> - 	.slave		= &omap44xx_mcbsp2_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_mcbsp2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mcbsp2_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -2891,6 +2891,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mcbsp2_dma_addrs[] = {
> - 		.pa_end		= 0x490240ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> mcbsp2 (dma) */
> -@@ -2899,7 +2900,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__mcbsp2_dma = {
> - 	.slave		= &omap44xx_mcbsp2_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_mcbsp2_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mcbsp2_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -2945,6 +2945,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mcbsp3_addrs[] = {
> - 		.pa_end		= 0x401260ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> mcbsp3 */
> -@@ -2953,7 +2954,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__mcbsp3 = {
> - 	.slave		= &omap44xx_mcbsp3_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_mcbsp3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mcbsp3_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -2964,6 +2964,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mcbsp3_dma_addrs[] = {
> - 		.pa_end		= 0x490260ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> mcbsp3 (dma) */
> -@@ -2972,7 +2973,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__mcbsp3_dma = {
> - 	.slave		= &omap44xx_mcbsp3_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_mcbsp3_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mcbsp3_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -3017,6 +3017,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mcbsp4_addrs[] = {
> - 		.pa_end		= 0x480960ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mcbsp4 */
> -@@ -3025,7 +3026,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__mcbsp4 = {
> - 	.slave		= &omap44xx_mcbsp4_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_mcbsp4_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mcbsp4_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3090,6 +3090,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mcpdm_addrs[] = {
> - 		.pa_end		= 0x4013207f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> mcpdm */
> -@@ -3098,7 +3099,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__mcpdm = {
> - 	.slave		= &omap44xx_mcpdm_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_mcpdm_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mcpdm_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -3108,6 +3108,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mcpdm_dma_addrs[] = {
> - 		.pa_end		= 0x4903207f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> mcpdm (dma) */
> -@@ -3116,7 +3117,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__mcpdm_dma = {
> - 	.slave		= &omap44xx_mcpdm_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_mcpdm_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mcpdm_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -3189,6 +3189,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mcspi1_addrs[] = {
> - 		.pa_end		= 0x480981ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mcspi1 */
> -@@ -3197,7 +3198,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__mcspi1 = {
> - 	.slave		= &omap44xx_mcspi1_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_mcspi1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mcspi1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3249,6 +3249,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mcspi2_addrs[] = {
> - 		.pa_end		= 0x4809a1ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mcspi2 */
> -@@ -3257,7 +3258,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__mcspi2 = {
> - 	.slave		= &omap44xx_mcspi2_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_mcspi2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mcspi2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3309,6 +3309,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mcspi3_addrs[] = {
> - 		.pa_end		= 0x480b81ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mcspi3 */
> -@@ -3317,7 +3318,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__mcspi3 = {
> - 	.slave		= &omap44xx_mcspi3_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_mcspi3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mcspi3_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3367,6 +3367,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mcspi4_addrs[] = {
> - 		.pa_end		= 0x480ba1ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mcspi4 */
> -@@ -3375,7 +3376,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__mcspi4 = {
> - 	.slave		= &omap44xx_mcspi4_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_mcspi4_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mcspi4_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3452,6 +3452,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mmc1_addrs[] = {
> - 		.pa_end		= 0x4809c3ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mmc1 */
> -@@ -3460,7 +3461,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__mmc1 = {
> - 	.slave		= &omap44xx_mmc1_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_mmc1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mmc1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3516,6 +3516,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mmc2_addrs[] = {
> - 		.pa_end		= 0x480b43ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mmc2 */
> -@@ -3524,7 +3525,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__mmc2 = {
> - 	.slave		= &omap44xx_mmc2_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_mmc2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mmc2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3570,6 +3570,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mmc3_addrs[] = {
> - 		.pa_end		= 0x480ad3ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mmc3 */
> -@@ -3578,7 +3579,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__mmc3 = {
> - 	.slave		= &omap44xx_mmc3_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_mmc3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mmc3_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3622,6 +3622,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mmc4_addrs[] = {
> - 		.pa_end		= 0x480d13ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mmc4 */
> -@@ -3630,7 +3631,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__mmc4 = {
> - 	.slave		= &omap44xx_mmc4_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_mmc4_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mmc4_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3674,6 +3674,7 @@ static struct omap_hwmod_addr_space
> omap44xx_mmc5_addrs[] = {
> - 		.pa_end		= 0x480d53ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> mmc5 */
> -@@ -3682,7 +3683,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__mmc5 = {
> - 	.slave		= &omap44xx_mmc5_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_mmc5_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_mmc5_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3787,6 +3787,7 @@ static struct omap_hwmod_addr_space
> omap44xx_smartreflex_core_addrs[] = {
> - 		.pa_end		= 0x4a0dd03f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_cfg -> smartreflex_core */
> -@@ -3795,7 +3796,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_cfg__smartreflex_core = {
> - 	.slave		= &omap44xx_smartreflex_core_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_smartreflex_core_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_smartreflex_core_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3833,6 +3833,7 @@ static struct omap_hwmod_addr_space
> omap44xx_smartreflex_iva_addrs[] = {
> - 		.pa_end		= 0x4a0db03f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_cfg -> smartreflex_iva */
> -@@ -3841,7 +3842,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_cfg__smartreflex_iva = {
> - 	.slave		= &omap44xx_smartreflex_iva_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_smartreflex_iva_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_smartreflex_iva_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3879,6 +3879,7 @@ static struct omap_hwmod_addr_space
> omap44xx_smartreflex_mpu_addrs[] = {
> - 		.pa_end		= 0x4a0d903f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_cfg -> smartreflex_mpu */
> -@@ -3887,7 +3888,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_cfg__smartreflex_mpu = {
> - 	.slave		= &omap44xx_smartreflex_mpu_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_smartreflex_mpu_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_smartreflex_mpu_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -3944,6 +3944,7 @@ static struct omap_hwmod_addr_space
> omap44xx_spinlock_addrs[] = {
> - 		.pa_end		= 0x4a0f6fff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_cfg -> spinlock */
> -@@ -3952,7 +3953,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_cfg__spinlock = {
> - 	.slave		= &omap44xx_spinlock_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_spinlock_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_spinlock_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4024,6 +4024,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer1_addrs[] = {
> - 		.pa_end		= 0x4a31807f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_wkup -> timer1 */
> -@@ -4032,7 +4033,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_wkup__timer1 = {
> - 	.slave		= &omap44xx_timer1_hwmod,
> - 	.clk		= "l4_wkup_clk_mux_ck",
> - 	.addr		= omap44xx_timer1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4069,6 +4069,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer2_addrs[] = {
> - 		.pa_end		= 0x4803207f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer2 */
> -@@ -4077,7 +4078,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__timer2 = {
> - 	.slave		= &omap44xx_timer2_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_timer2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4114,6 +4114,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer3_addrs[] = {
> - 		.pa_end		= 0x4803407f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer3 */
> -@@ -4122,7 +4123,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__timer3 = {
> - 	.slave		= &omap44xx_timer3_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_timer3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer3_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4159,6 +4159,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer4_addrs[] = {
> - 		.pa_end		= 0x4803607f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer4 */
> -@@ -4167,7 +4168,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__timer4 = {
> - 	.slave		= &omap44xx_timer4_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_timer4_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer4_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4204,6 +4204,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer5_addrs[] = {
> - 		.pa_end		= 0x4013807f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> timer5 */
> -@@ -4212,7 +4213,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__timer5 = {
> - 	.slave		= &omap44xx_timer5_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_timer5_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer5_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -4222,6 +4222,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer5_dma_addrs[] = {
> - 		.pa_end		= 0x4903807f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> timer5 (dma) */
> -@@ -4230,7 +4231,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__timer5_dma = {
> - 	.slave		= &omap44xx_timer5_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_timer5_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer5_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -4268,6 +4268,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer6_addrs[] = {
> - 		.pa_end		= 0x4013a07f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> timer6 */
> -@@ -4276,7 +4277,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__timer6 = {
> - 	.slave		= &omap44xx_timer6_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_timer6_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer6_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -4286,6 +4286,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer6_dma_addrs[] = {
> - 		.pa_end		= 0x4903a07f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> timer6 (dma) */
> -@@ -4294,7 +4295,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__timer6_dma = {
> - 	.slave		= &omap44xx_timer6_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_timer6_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer6_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -4332,6 +4332,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer7_addrs[] = {
> - 		.pa_end		= 0x4013c07f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> timer7 */
> -@@ -4340,7 +4341,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__timer7 = {
> - 	.slave		= &omap44xx_timer7_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_timer7_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer7_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -4350,6 +4350,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer7_dma_addrs[] = {
> - 		.pa_end		= 0x4903c07f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> timer7 (dma) */
> -@@ -4358,7 +4359,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__timer7_dma = {
> - 	.slave		= &omap44xx_timer7_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_timer7_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer7_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -4396,6 +4396,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer8_addrs[] = {
> - 		.pa_end		= 0x4013e07f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> timer8 */
> -@@ -4404,7 +4405,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__timer8 = {
> - 	.slave		= &omap44xx_timer8_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_timer8_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer8_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -4414,6 +4414,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer8_dma_addrs[] = {
> - 		.pa_end		= 0x4903e07f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> timer8 (dma) */
> -@@ -4422,7 +4423,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__timer8_dma = {
> - 	.slave		= &omap44xx_timer8_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_timer8_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer8_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -@@ -4460,6 +4460,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer9_addrs[] = {
> - 		.pa_end		= 0x4803e07f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer9 */
> -@@ -4468,7 +4469,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__timer9 = {
> - 	.slave		= &omap44xx_timer9_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_timer9_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer9_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4505,6 +4505,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer10_addrs[] = {
> - 		.pa_end		= 0x4808607f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer10 */
> -@@ -4513,7 +4514,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__timer10 = {
> - 	.slave		= &omap44xx_timer10_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_timer10_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer10_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4550,6 +4550,7 @@ static struct omap_hwmod_addr_space
> omap44xx_timer11_addrs[] = {
> - 		.pa_end		= 0x4808807f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> timer11 */
> -@@ -4558,7 +4559,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__timer11 = {
> - 	.slave		= &omap44xx_timer11_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_timer11_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_timer11_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4622,6 +4622,7 @@ static struct omap_hwmod_addr_space
> omap44xx_uart1_addrs[] = {
> - 		.pa_end		= 0x4806a0ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> uart1 */
> -@@ -4630,7 +4631,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__uart1 = {
> - 	.slave		= &omap44xx_uart1_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_uart1_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_uart1_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4674,6 +4674,7 @@ static struct omap_hwmod_addr_space
> omap44xx_uart2_addrs[] = {
> - 		.pa_end		= 0x4806c0ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> uart2 */
> -@@ -4682,7 +4683,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__uart2 = {
> - 	.slave		= &omap44xx_uart2_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_uart2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_uart2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4726,6 +4726,7 @@ static struct omap_hwmod_addr_space
> omap44xx_uart3_addrs[] = {
> - 		.pa_end		= 0x480200ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> uart3 */
> -@@ -4734,7 +4735,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__uart3 = {
> - 	.slave		= &omap44xx_uart3_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_uart3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_uart3_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4779,6 +4779,7 @@ static struct omap_hwmod_addr_space
> omap44xx_uart4_addrs[] = {
> - 		.pa_end		= 0x4806e0ff,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_per -> uart4 */
> -@@ -4787,7 +4788,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_per__uart4 = {
> - 	.slave		= &omap44xx_uart4_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_uart4_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_uart4_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4854,6 +4854,7 @@ static struct omap_hwmod_addr_space
> omap44xx_usb_otg_hs_addrs[] = {
> - 		.pa_end		= 0x4a0ab003,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_cfg -> usb_otg_hs */
> -@@ -4862,7 +4863,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_cfg__usb_otg_hs = {
> - 	.slave		= &omap44xx_usb_otg_hs_hwmod,
> - 	.clk		= "l4_div_ck",
> - 	.addr		= omap44xx_usb_otg_hs_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_usb_otg_hs_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4931,6 +4931,7 @@ static struct omap_hwmod_addr_space
> omap44xx_wd_timer2_addrs[] = {
> - 		.pa_end		= 0x4a31407f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_wkup -> wd_timer2 */
> -@@ -4939,7 +4940,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_wkup__wd_timer2 = {
> - 	.slave		= &omap44xx_wd_timer2_hwmod,
> - 	.clk		= "l4_wkup_clk_mux_ck",
> - 	.addr		= omap44xx_wd_timer2_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_wd_timer2_addrs),
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -4976,6 +4976,7 @@ static struct omap_hwmod_addr_space
> omap44xx_wd_timer3_addrs[] = {
> - 		.pa_end		= 0x4013007f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> wd_timer3 */
> -@@ -4984,7 +4985,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__wd_timer3 = {
> - 	.slave		= &omap44xx_wd_timer3_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_wd_timer3_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_wd_timer3_addrs),
> - 	.user		= OCP_USER_MPU,
> - };
> -
> -@@ -4994,6 +4994,7 @@ static struct omap_hwmod_addr_space
> omap44xx_wd_timer3_dma_addrs[] = {
> - 		.pa_end		= 0x4903007f,
> - 		.flags		= ADDR_TYPE_RT
> - 	},
> -+	{ }
> - };
> -
> - /* l4_abe -> wd_timer3 (dma) */
> -@@ -5002,7 +5003,6 @@ static struct omap_hwmod_ocp_if
> omap44xx_l4_abe__wd_timer3_dma = {
> - 	.slave		= &omap44xx_wd_timer3_hwmod,
> - 	.clk		= "ocp_abe_iclk",
> - 	.addr		= omap44xx_wd_timer3_dma_addrs,
> --	.addr_cnt	= ARRAY_SIZE(omap44xx_wd_timer3_dma_addrs),
> - 	.user		= OCP_USER_SDMA,
> - };
> -
> -diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -index e93438c..f3a3bff 100644
> ---- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -@@ -219,7 +219,6 @@ struct omap_hwmod_addr_space {
> -  * @clk: interface clock: OMAP clock name
> -  * @_clk: pointer to the interface struct clk (filled in at runtime)
> -  * @fw: interface firewall data
> -- * @addr_cnt: ARRAY_SIZE(@addr)
> -  * @width: OCP data width
> -  * @user: initiators using this interface (see OCP_USER_* macros above)
> -  * @flags: OCP interface flags (see OCPIF_* macros above)
> -@@ -238,7 +237,6 @@ struct omap_hwmod_ocp_if {
> - 	union {
> - 		struct omap_hwmod_omap2_firewall omap2;
> - 	}				fw;
> --	u8				addr_cnt;
> - 	u8				width;
> - 	u8				user;
> - 	u8				flags;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0038-omap_hwmod-
> share-identical-omap_hwmod_addr_space-arr.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0038-omap_hwmod-share-identical-
> omap_hwmod_addr_space-arr.patch
> deleted file mode 100644
> index 991fe9a..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0038-omap_hwmod-share-
> identical-omap_hwmod_addr_space-arr.patch
> +++ /dev/null
> @@ -1,1958 +0,0 @@
> -From 6d88f17e46fda46214da43af303c4f4aa442bd39 Mon Sep 17 00:00:00
> 2001
> -From: Paul Walmsley <paul at pwsan.com>
> -Date: Sat, 9 Jul 2011 19:14:06 -0600
> -Subject: [PATCH 038/149] omap_hwmod: share identical
> omap_hwmod_addr_space arrays
> -
> -To reduce kernel source file data duplication, share struct
> -omap_hwmod_addr_space arrays across OMAP2xxx and 3xxx hwmod data
> -files.
> -
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/Makefile                       |   11 +-
> - arch/arm/mach-omap2/omap_hwmod_2420_data.c         |  291 ++--------------
> --
> - arch/arm/mach-omap2/omap_hwmod_2430_data.c         |  319 ++--------------
> ----
> - .../omap_hwmod_2xxx_3xxx_interconnect_data.c       |  173 +++++++++++
> - .../mach-omap2/omap_hwmod_2xxx_interconnect_data.c |  130 ++++++++
> - arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         |  151 +---------
> - arch/arm/mach-omap2/omap_hwmod_common_data.h       |   38 +++-
> - 7 files changed, 414 insertions(+), 699 deletions(-)
> - create mode 100644 arch/arm/mach-
> omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c
> - create mode 100644 arch/arm/mach-
> omap2/omap_hwmod_2xxx_interconnect_data.c
> -
> -diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-
> omap2/Makefile
> -index ff1466f..8a75d17 100644
> ---- a/arch/arm/mach-omap2/Makefile
> -+++ b/arch/arm/mach-omap2/Makefile
> -@@ -145,9 +145,14 @@ obj-$(CONFIG_SOC_OMAP2420)		+=
> opp2420_data.o
> - obj-$(CONFIG_SOC_OMAP2430)		+= opp2430_data.o
> -
> - # hwmod data
> --obj-$(CONFIG_SOC_OMAP2420)		+=
> omap_hwmod_2420_data.o
> --obj-$(CONFIG_SOC_OMAP2430)		+=
> omap_hwmod_2430_data.o
> --obj-$(CONFIG_ARCH_OMAP3)		+= omap_hwmod_3xxx_data.o
> -+obj-$(CONFIG_SOC_OMAP2420)		+=
> omap_hwmod_2xxx_interconnect_data.o \
> -+
> omap_hwmod_2xxx_3xxx_interconnect_data.o \
> -+					   omap_hwmod_2420_data.o
> -+obj-$(CONFIG_SOC_OMAP2430)		+=
> omap_hwmod_2xxx_interconnect_data.o \
> -+
> omap_hwmod_2xxx_3xxx_interconnect_data.o \
> -+					   omap_hwmod_2430_data.o
> -+obj-$(CONFIG_ARCH_OMAP3)		+=
> omap_hwmod_2xxx_3xxx_interconnect_data.o \
> -+					   omap_hwmod_3xxx_data.o
> - obj-$(CONFIG_ARCH_OMAP4)		+= omap_hwmod_44xx_data.o
> -
> - # EMU peripherals
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -index 1a7ce3e..3ec625c 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -@@ -114,38 +114,20 @@ static struct omap_hwmod
> omap2420_mcbsp1_hwmod;
> - static struct omap_hwmod omap2420_mcbsp2_hwmod;
> -
> - /* l4 core -> mcspi1 interface */
> --static struct omap_hwmod_addr_space omap2420_mcspi1_addr_space[] = {
> --	{
> --		.pa_start	= 0x48098000,
> --		.pa_end		= 0x480980ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2420_l4_core__mcspi1 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_mcspi1_hwmod,
> - 	.clk		= "mcspi1_ick",
> --	.addr		= omap2420_mcspi1_addr_space,
> -+	.addr		= omap2_mcspi1_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> - /* l4 core -> mcspi2 interface */
> --static struct omap_hwmod_addr_space omap2420_mcspi2_addr_space[] = {
> --	{
> --		.pa_start	= 0x4809a000,
> --		.pa_end		= 0x4809a0ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2420_l4_core__mcspi2 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_mcspi2_hwmod,
> - 	.clk		= "mcspi2_ick",
> --	.addr		= omap2420_mcspi2_addr_space,
> -+	.addr		= omap2_mcspi2_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -157,95 +139,47 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__l4_wkup = {
> - };
> -
> - /* L4 CORE -> UART1 interface */
> --static struct omap_hwmod_addr_space omap2420_uart1_addr_space[] = {
> --	{
> --		.pa_start	= OMAP2_UART1_BASE,
> --		.pa_end		= OMAP2_UART1_BASE + SZ_8K - 1,
> --		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2_l4_core__uart1 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_uart1_hwmod,
> - 	.clk		= "uart1_ick",
> --	.addr		= omap2420_uart1_addr_space,
> -+	.addr		= omap2xxx_uart1_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> - /* L4 CORE -> UART2 interface */
> --static struct omap_hwmod_addr_space omap2420_uart2_addr_space[] = {
> --	{
> --		.pa_start	= OMAP2_UART2_BASE,
> --		.pa_end		= OMAP2_UART2_BASE + SZ_1K - 1,
> --		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2_l4_core__uart2 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_uart2_hwmod,
> - 	.clk		= "uart2_ick",
> --	.addr		= omap2420_uart2_addr_space,
> -+	.addr		= omap2xxx_uart2_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> - /* L4 PER -> UART3 interface */
> --static struct omap_hwmod_addr_space omap2420_uart3_addr_space[] = {
> --	{
> --		.pa_start	= OMAP2_UART3_BASE,
> --		.pa_end		= OMAP2_UART3_BASE + SZ_1K - 1,
> --		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2_l4_core__uart3 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_uart3_hwmod,
> - 	.clk		= "uart3_ick",
> --	.addr		= omap2420_uart3_addr_space,
> -+	.addr		= omap2xxx_uart3_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> --/* I2C IP block address space length (in bytes) */
> --#define OMAP2_I2C_AS_LEN		128
> --
> - /* L4 CORE -> I2C1 interface */
> --static struct omap_hwmod_addr_space omap2420_i2c1_addr_space[] = {
> --	{
> --		.pa_start	= 0x48070000,
> --		.pa_end		= 0x48070000 + OMAP2_I2C_AS_LEN
> - 1,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2420_l4_core__i2c1 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_i2c1_hwmod,
> - 	.clk		= "i2c1_ick",
> --	.addr		= omap2420_i2c1_addr_space,
> -+	.addr		= omap2_i2c1_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> - /* L4 CORE -> I2C2 interface */
> --static struct omap_hwmod_addr_space omap2420_i2c2_addr_space[] = {
> --	{
> --		.pa_start	= 0x48072000,
> --		.pa_end		= 0x48072000 + OMAP2_I2C_AS_LEN
> - 1,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2420_l4_core__i2c2 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_i2c2_hwmod,
> - 	.clk		= "i2c2_ick",
> --	.addr		= omap2420_i2c2_addr_space,
> -+	.addr		= omap2_i2c2_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -414,21 +348,13 @@ static struct omap_hwmod_irq_info
> omap2420_timer2_mpu_irqs[] = {
> - 	{ .irq = 38, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_timer2_addrs[] = {
> --	{
> --		.pa_start	= 0x4802a000,
> --		.pa_end		= 0x4802a000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> -
> - /* l4_core -> timer2 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer2 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_timer2_hwmod,
> - 	.clk		= "gpt2_ick",
> --	.addr		= omap2420_timer2_addrs,
> -+	.addr		= omap2xxx_timer2_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -464,21 +390,12 @@ static struct omap_hwmod_irq_info
> omap2420_timer3_mpu_irqs[] = {
> - 	{ .irq = 39, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_timer3_addrs[] = {
> --	{
> --		.pa_start	= 0x48078000,
> --		.pa_end		= 0x48078000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer3 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer3 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_timer3_hwmod,
> - 	.clk		= "gpt3_ick",
> --	.addr		= omap2420_timer3_addrs,
> -+	.addr		= omap2xxx_timer3_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -514,21 +431,12 @@ static struct omap_hwmod_irq_info
> omap2420_timer4_mpu_irqs[] = {
> - 	{ .irq = 40, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_timer4_addrs[] = {
> --	{
> --		.pa_start	= 0x4807a000,
> --		.pa_end		= 0x4807a000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer4 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer4 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_timer4_hwmod,
> - 	.clk		= "gpt4_ick",
> --	.addr		= omap2420_timer4_addrs,
> -+	.addr		= omap2xxx_timer4_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -564,21 +472,12 @@ static struct omap_hwmod_irq_info
> omap2420_timer5_mpu_irqs[] = {
> - 	{ .irq = 41, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_timer5_addrs[] = {
> --	{
> --		.pa_start	= 0x4807c000,
> --		.pa_end		= 0x4807c000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer5 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer5 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_timer5_hwmod,
> - 	.clk		= "gpt5_ick",
> --	.addr		= omap2420_timer5_addrs,
> -+	.addr		= omap2xxx_timer5_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -615,21 +514,12 @@ static struct omap_hwmod_irq_info
> omap2420_timer6_mpu_irqs[] = {
> - 	{ .irq = 42, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_timer6_addrs[] = {
> --	{
> --		.pa_start	= 0x4807e000,
> --		.pa_end		= 0x4807e000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer6 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer6 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_timer6_hwmod,
> - 	.clk		= "gpt6_ick",
> --	.addr		= omap2420_timer6_addrs,
> -+	.addr		= omap2xxx_timer6_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -665,21 +555,12 @@ static struct omap_hwmod_irq_info
> omap2420_timer7_mpu_irqs[] = {
> - 	{ .irq = 43, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_timer7_addrs[] = {
> --	{
> --		.pa_start	= 0x48080000,
> --		.pa_end		= 0x48080000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer7 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer7 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_timer7_hwmod,
> - 	.clk		= "gpt7_ick",
> --	.addr		= omap2420_timer7_addrs,
> -+	.addr		= omap2xxx_timer7_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -715,21 +596,12 @@ static struct omap_hwmod_irq_info
> omap2420_timer8_mpu_irqs[] = {
> - 	{ .irq = 44, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_timer8_addrs[] = {
> --	{
> --		.pa_start	= 0x48082000,
> --		.pa_end		= 0x48082000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer8 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer8 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_timer8_hwmod,
> - 	.clk		= "gpt8_ick",
> --	.addr		= omap2420_timer8_addrs,
> -+	.addr		= omap2xxx_timer8_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -765,21 +637,12 @@ static struct omap_hwmod_irq_info
> omap2420_timer9_mpu_irqs[] = {
> - 	{ .irq = 45, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_timer9_addrs[] = {
> --	{
> --		.pa_start	= 0x48084000,
> --		.pa_end		= 0x48084000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer9 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer9 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_timer9_hwmod,
> - 	.clk		= "gpt9_ick",
> --	.addr		= omap2420_timer9_addrs,
> -+	.addr		= omap2xxx_timer9_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -815,21 +678,12 @@ static struct omap_hwmod_irq_info
> omap2420_timer10_mpu_irqs[] = {
> - 	{ .irq = 46, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_timer10_addrs[] = {
> --	{
> --		.pa_start	= 0x48086000,
> --		.pa_end		= 0x48086000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer10 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer10 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_timer10_hwmod,
> - 	.clk		= "gpt10_ick",
> --	.addr		= omap2420_timer10_addrs,
> -+	.addr		= omap2_timer10_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -865,21 +719,12 @@ static struct omap_hwmod_irq_info
> omap2420_timer11_mpu_irqs[] = {
> - 	{ .irq = 47, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_timer11_addrs[] = {
> --	{
> --		.pa_start	= 0x48088000,
> --		.pa_end		= 0x48088000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer11 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer11 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_timer11_hwmod,
> - 	.clk		= "gpt11_ick",
> --	.addr		= omap2420_timer11_addrs,
> -+	.addr		= omap2_timer11_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -915,21 +760,12 @@ static struct omap_hwmod_irq_info
> omap2420_timer12_mpu_irqs[] = {
> - 	{ .irq = 48, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_timer12_addrs[] = {
> --	{
> --		.pa_start	= 0x4808a000,
> --		.pa_end		= 0x4808a000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer12 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer12 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_timer12_hwmod,
> - 	.clk		= "gpt12_ick",
> --	.addr		= omap2420_timer12_addrs,
> -+	.addr		= omap2xxx_timer12_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1178,21 +1014,12 @@ static struct omap_hwmod_ocp_if
> *omap2420_dss_masters[] = {
> - 	&omap2420_dss__l3,
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_dss_addrs[] = {
> --	{
> --		.pa_start	= 0x48050000,
> --		.pa_end		= 0x480503FF,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> dss */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__dss = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_dss_core_hwmod,
> - 	.clk		= "dss_ick",
> --	.addr		= omap2420_dss_addrs,
> -+	.addr		= omap2_dss_addrs,
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP2420_L4_CORE_FW_DSS_CORE_REGION,
> -@@ -1262,21 +1089,12 @@ static struct omap_hwmod_irq_info
> omap2420_dispc_irqs[] = {
> - 	{ .irq = 25 },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_dss_dispc_addrs[] = {
> --	{
> --		.pa_start	= 0x48050400,
> --		.pa_end		= 0x480507FF,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> dss_dispc */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__dss_dispc = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_dss_dispc_hwmod,
> - 	.clk		= "dss_ick",
> --	.addr		= omap2420_dss_dispc_addrs,
> -+	.addr		= omap2_dss_dispc_addrs,
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP2420_L4_CORE_FW_DSS_DISPC_REGION,
> -@@ -1332,21 +1150,12 @@ static struct omap_hwmod_class
> omap2420_rfbi_hwmod_class = {
> - 	.sysc = &omap2420_rfbi_sysc,
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_dss_rfbi_addrs[] = {
> --	{
> --		.pa_start	= 0x48050800,
> --		.pa_end		= 0x48050BFF,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> dss_rfbi */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__dss_rfbi = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_dss_rfbi_hwmod,
> - 	.clk		= "dss_ick",
> --	.addr		= omap2420_dss_rfbi_addrs,
> -+	.addr		= omap2_dss_rfbi_addrs,
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP2420_L4_CORE_FW_DSS_CORE_REGION,
> -@@ -1387,22 +1196,12 @@ static struct omap_hwmod_class
> omap2420_venc_hwmod_class = {
> - 	.name = "venc",
> - };
> -
> --/* dss_venc */
> --static struct omap_hwmod_addr_space omap2420_dss_venc_addrs[] = {
> --	{
> --		.pa_start	= 0x48050C00,
> --		.pa_end		= 0x48050FFF,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> dss_venc */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__dss_venc = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_dss_venc_hwmod,
> - 	.clk		= "dss_54m_fck",
> --	.addr		= omap2420_dss_venc_addrs,
> -+	.addr		= omap2_dss_venc_addrs,
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP2420_L4_CORE_FW_DSS_VENC_REGION,
> -@@ -1783,15 +1582,6 @@ static struct omap_hwmod_irq_info
> omap2420_dma_system_irqs[] = {
> - 	{ .name = "3", .irq = 15 }, /* INT_24XX_SDMA_IRQ3 */
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_dma_system_addrs[] = {
> --	{
> --		.pa_start	= 0x48056000,
> --		.pa_end		= 0x48056fff,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* dma_system -> L3 */
> - static struct omap_hwmod_ocp_if omap2420_dma_system__l3 = {
> - 	.master		= &omap2420_dma_system_hwmod,
> -@@ -1810,7 +1600,7 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_core__dma_system = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_dma_system_hwmod,
> - 	.clk		= "sdma_ick",
> --	.addr		= omap2420_dma_system_addrs,
> -+	.addr		= omap2_dma_system_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1862,20 +1652,11 @@ static struct omap_hwmod_irq_info
> omap2420_mailbox_irqs[] = {
> - 	{ .name = "iva", .irq = 34 },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_mailbox_addrs[] = {
> --	{
> --		.pa_start	= 0x48094000,
> --		.pa_end		= 0x480941ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> mailbox */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__mailbox = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_mailbox_hwmod,
> --	.addr		= omap2420_mailbox_addrs,
> -+	.addr		= omap2_mailbox_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2037,22 +1818,12 @@ static struct omap_hwmod_dma_info
> omap2420_mcbsp1_sdma_chs[] = {
> - 	{ .name = "tx", .dma_req = 31 },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_mcbsp1_addrs[] = {
> --	{
> --		.name		= "mpu",
> --		.pa_start	= 0x48074000,
> --		.pa_end		= 0x480740ff,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> mcbsp1 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__mcbsp1 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_mcbsp1_hwmod,
> - 	.clk		= "mcbsp1_ick",
> --	.addr		= omap2420_mcbsp1_addrs,
> -+	.addr		= omap2_mcbsp1_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2094,22 +1865,12 @@ static struct omap_hwmod_dma_info
> omap2420_mcbsp2_sdma_chs[] = {
> - 	{ .name = "tx", .dma_req = 33 },
> - };
> -
> --static struct omap_hwmod_addr_space omap2420_mcbsp2_addrs[] = {
> --	{
> --		.name		= "mpu",
> --		.pa_start	= 0x48076000,
> --		.pa_end		= 0x480760ff,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> mcbsp2 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__mcbsp2 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> - 	.slave		= &omap2420_mcbsp2_hwmod,
> - 	.clk		= "mcbsp2_ick",
> --	.addr		= omap2420_mcbsp2_addrs,
> -+	.addr		= omap2xxx_mcbsp2_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -index da28794..9531ef2 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -@@ -131,42 +131,21 @@ static struct omap_hwmod_ocp_if
> omap2430_usbhsotg__l3 = {
> - 	.user		= OCP_USER_MPU,
> - };
> -
> --/* I2C IP block address space length (in bytes) */
> --#define OMAP2_I2C_AS_LEN		128
> --
> - /* L4 CORE -> I2C1 interface */
> --static struct omap_hwmod_addr_space omap2430_i2c1_addr_space[] = {
> --	{
> --		.pa_start	= 0x48070000,
> --		.pa_end		= 0x48070000 + OMAP2_I2C_AS_LEN
> - 1,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2430_l4_core__i2c1 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_i2c1_hwmod,
> - 	.clk		= "i2c1_ick",
> --	.addr		= omap2430_i2c1_addr_space,
> -+	.addr		= omap2_i2c1_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> - /* L4 CORE -> I2C2 interface */
> --static struct omap_hwmod_addr_space omap2430_i2c2_addr_space[] = {
> --	{
> --		.pa_start	= 0x48072000,
> --		.pa_end		= 0x48072000 + OMAP2_I2C_AS_LEN
> - 1,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2430_l4_core__i2c2 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_i2c2_hwmod,
> - 	.clk		= "i2c2_ick",
> --	.addr		= omap2430_i2c2_addr_space,
> -+	.addr		= omap2_i2c2_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -178,56 +157,29 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__l4_wkup = {
> - };
> -
> - /* L4 CORE -> UART1 interface */
> --static struct omap_hwmod_addr_space omap2430_uart1_addr_space[] = {
> --	{
> --		.pa_start	= OMAP2_UART1_BASE,
> --		.pa_end		= OMAP2_UART1_BASE + SZ_8K - 1,
> --		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2_l4_core__uart1 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_uart1_hwmod,
> - 	.clk		= "uart1_ick",
> --	.addr		= omap2430_uart1_addr_space,
> -+	.addr		= omap2xxx_uart1_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> - /* L4 CORE -> UART2 interface */
> --static struct omap_hwmod_addr_space omap2430_uart2_addr_space[] = {
> --	{
> --		.pa_start	= OMAP2_UART2_BASE,
> --		.pa_end		= OMAP2_UART2_BASE + SZ_1K - 1,
> --		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2_l4_core__uart2 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_uart2_hwmod,
> - 	.clk		= "uart2_ick",
> --	.addr		= omap2430_uart2_addr_space,
> -+	.addr		= omap2xxx_uart2_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> - /* L4 PER -> UART3 interface */
> --static struct omap_hwmod_addr_space omap2430_uart3_addr_space[] = {
> --	{
> --		.pa_start	= OMAP2_UART3_BASE,
> --		.pa_end		= OMAP2_UART3_BASE + SZ_1K - 1,
> --		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2_l4_core__uart3 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_uart3_hwmod,
> - 	.clk		= "uart3_ick",
> --	.addr		= omap2430_uart3_addr_space,
> -+	.addr		= omap2xxx_uart3_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -260,15 +212,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_usbhsotg_slaves[] = {
> - };
> -
> - /* L4 CORE -> MMC1 interface */
> --static struct omap_hwmod_addr_space omap2430_mmc1_addr_space[] = {
> --	{
> --		.pa_start	= 0x4809c000,
> --		.pa_end		= 0x4809c1ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mmc1 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_mmc1_hwmod,
> -@@ -278,15 +221,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__mmc1 = {
> - };
> -
> - /* L4 CORE -> MMC2 interface */
> --static struct omap_hwmod_addr_space omap2430_mmc2_addr_space[] = {
> --	{
> --		.pa_start	= 0x480b4000,
> --		.pa_end		= 0x480b41ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mmc2 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_mmc2_hwmod,
> -@@ -332,51 +266,24 @@ static struct omap_hwmod_ocp_if
> *omap2430_l4_wkup_masters[] = {
> - };
> -
> - /* l4 core -> mcspi1 interface */
> --static struct omap_hwmod_addr_space omap2430_mcspi1_addr_space[] = {
> --	{
> --		.pa_start	= 0x48098000,
> --		.pa_end		= 0x480980ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mcspi1 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_mcspi1_hwmod,
> - 	.clk		= "mcspi1_ick",
> --	.addr		= omap2430_mcspi1_addr_space,
> -+	.addr		= omap2_mcspi1_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> - /* l4 core -> mcspi2 interface */
> --static struct omap_hwmod_addr_space omap2430_mcspi2_addr_space[] = {
> --	{
> --		.pa_start	= 0x4809a000,
> --		.pa_end		= 0x4809a0ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mcspi2 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_mcspi2_hwmod,
> - 	.clk		= "mcspi2_ick",
> --	.addr		= omap2430_mcspi2_addr_space,
> -+	.addr		= omap2_mcspi2_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> - /* l4 core -> mcspi3 interface */
> --static struct omap_hwmod_addr_space omap2430_mcspi3_addr_space[] = {
> --	{
> --		.pa_start	= 0x480b8000,
> --		.pa_end		= 0x480b80ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mcspi3 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_mcspi3_hwmod,
> -@@ -514,21 +421,12 @@ static struct omap_hwmod_irq_info
> omap2430_timer2_mpu_irqs[] = {
> - 	{ .irq = 38, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_timer2_addrs[] = {
> --	{
> --		.pa_start	= 0x4802a000,
> --		.pa_end		= 0x4802a000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer2 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer2 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_timer2_hwmod,
> - 	.clk		= "gpt2_ick",
> --	.addr		= omap2430_timer2_addrs,
> -+	.addr		= omap2xxx_timer2_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -564,21 +462,12 @@ static struct omap_hwmod_irq_info
> omap2430_timer3_mpu_irqs[] = {
> - 	{ .irq = 39, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_timer3_addrs[] = {
> --	{
> --		.pa_start	= 0x48078000,
> --		.pa_end		= 0x48078000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer3 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer3 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_timer3_hwmod,
> - 	.clk		= "gpt3_ick",
> --	.addr		= omap2430_timer3_addrs,
> -+	.addr		= omap2xxx_timer3_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -614,21 +503,12 @@ static struct omap_hwmod_irq_info
> omap2430_timer4_mpu_irqs[] = {
> - 	{ .irq = 40, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_timer4_addrs[] = {
> --	{
> --		.pa_start	= 0x4807a000,
> --		.pa_end		= 0x4807a000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer4 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer4 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_timer4_hwmod,
> - 	.clk		= "gpt4_ick",
> --	.addr		= omap2430_timer4_addrs,
> -+	.addr		= omap2xxx_timer4_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -664,21 +544,12 @@ static struct omap_hwmod_irq_info
> omap2430_timer5_mpu_irqs[] = {
> - 	{ .irq = 41, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_timer5_addrs[] = {
> --	{
> --		.pa_start	= 0x4807c000,
> --		.pa_end		= 0x4807c000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer5 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer5 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_timer5_hwmod,
> - 	.clk		= "gpt5_ick",
> --	.addr		= omap2430_timer5_addrs,
> -+	.addr		= omap2xxx_timer5_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -714,21 +585,12 @@ static struct omap_hwmod_irq_info
> omap2430_timer6_mpu_irqs[] = {
> - 	{ .irq = 42, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_timer6_addrs[] = {
> --	{
> --		.pa_start	= 0x4807e000,
> --		.pa_end		= 0x4807e000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer6 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer6 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_timer6_hwmod,
> - 	.clk		= "gpt6_ick",
> --	.addr		= omap2430_timer6_addrs,
> -+	.addr		= omap2xxx_timer6_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -764,21 +626,12 @@ static struct omap_hwmod_irq_info
> omap2430_timer7_mpu_irqs[] = {
> - 	{ .irq = 43, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_timer7_addrs[] = {
> --	{
> --		.pa_start	= 0x48080000,
> --		.pa_end		= 0x48080000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer7 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer7 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_timer7_hwmod,
> - 	.clk		= "gpt7_ick",
> --	.addr		= omap2430_timer7_addrs,
> -+	.addr		= omap2xxx_timer7_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -814,21 +667,12 @@ static struct omap_hwmod_irq_info
> omap2430_timer8_mpu_irqs[] = {
> - 	{ .irq = 44, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_timer8_addrs[] = {
> --	{
> --		.pa_start	= 0x48082000,
> --		.pa_end		= 0x48082000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer8 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer8 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_timer8_hwmod,
> - 	.clk		= "gpt8_ick",
> --	.addr		= omap2430_timer8_addrs,
> -+	.addr		= omap2xxx_timer8_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -864,21 +708,12 @@ static struct omap_hwmod_irq_info
> omap2430_timer9_mpu_irqs[] = {
> - 	{ .irq = 45, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_timer9_addrs[] = {
> --	{
> --		.pa_start	= 0x48084000,
> --		.pa_end		= 0x48084000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer9 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer9 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_timer9_hwmod,
> - 	.clk		= "gpt9_ick",
> --	.addr		= omap2430_timer9_addrs,
> -+	.addr		= omap2xxx_timer9_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -914,21 +749,12 @@ static struct omap_hwmod_irq_info
> omap2430_timer10_mpu_irqs[] = {
> - 	{ .irq = 46, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_timer10_addrs[] = {
> --	{
> --		.pa_start	= 0x48086000,
> --		.pa_end		= 0x48086000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer10 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer10 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_timer10_hwmod,
> - 	.clk		= "gpt10_ick",
> --	.addr		= omap2430_timer10_addrs,
> -+	.addr		= omap2_timer10_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -964,21 +790,12 @@ static struct omap_hwmod_irq_info
> omap2430_timer11_mpu_irqs[] = {
> - 	{ .irq = 47, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_timer11_addrs[] = {
> --	{
> --		.pa_start	= 0x48088000,
> --		.pa_end		= 0x48088000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer11 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer11 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_timer11_hwmod,
> - 	.clk		= "gpt11_ick",
> --	.addr		= omap2430_timer11_addrs,
> -+	.addr		= omap2_timer11_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1014,21 +831,12 @@ static struct omap_hwmod_irq_info
> omap2430_timer12_mpu_irqs[] = {
> - 	{ .irq = 48, },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_timer12_addrs[] = {
> --	{
> --		.pa_start	= 0x4808a000,
> --		.pa_end		= 0x4808a000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer12 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer12 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_timer12_hwmod,
> - 	.clk		= "gpt12_ick",
> --	.addr		= omap2430_timer12_addrs,
> -+	.addr		= omap2xxx_timer12_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1277,21 +1085,12 @@ static struct omap_hwmod_ocp_if
> *omap2430_dss_masters[] = {
> - 	&omap2430_dss__l3,
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_dss_addrs[] = {
> --	{
> --		.pa_start	= 0x48050000,
> --		.pa_end		= 0x480503FF,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> dss */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__dss = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_dss_core_hwmod,
> - 	.clk		= "dss_ick",
> --	.addr		= omap2430_dss_addrs,
> -+	.addr		= omap2_dss_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1355,21 +1154,12 @@ static struct omap_hwmod_irq_info
> omap2430_dispc_irqs[] = {
> - 	{ .irq = 25 },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_dss_dispc_addrs[] = {
> --	{
> --		.pa_start	= 0x48050400,
> --		.pa_end		= 0x480507FF,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> dss_dispc */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__dss_dispc = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_dss_dispc_hwmod,
> - 	.clk		= "dss_ick",
> --	.addr		= omap2430_dss_dispc_addrs,
> -+	.addr		= omap2_dss_dispc_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1419,21 +1209,12 @@ static struct omap_hwmod_class
> omap2430_rfbi_hwmod_class = {
> - 	.sysc = &omap2430_rfbi_sysc,
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_dss_rfbi_addrs[] = {
> --	{
> --		.pa_start	= 0x48050800,
> --		.pa_end		= 0x48050BFF,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> dss_rfbi */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__dss_rfbi = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_dss_rfbi_hwmod,
> - 	.clk		= "dss_ick",
> --	.addr		= omap2430_dss_rfbi_addrs,
> -+	.addr		= omap2_dss_rfbi_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1468,22 +1249,12 @@ static struct omap_hwmod_class
> omap2430_venc_hwmod_class = {
> - 	.name = "venc",
> - };
> -
> --/* dss_venc */
> --static struct omap_hwmod_addr_space omap2430_dss_venc_addrs[] = {
> --	{
> --		.pa_start	= 0x48050C00,
> --		.pa_end		= 0x48050FFF,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> dss_venc */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__dss_venc = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_dss_venc_hwmod,
> - 	.clk		= "dss_54m_fck",
> --	.addr		= omap2430_dss_venc_addrs,
> -+	.addr		= omap2_dss_venc_addrs,
> - 	.flags		= OCPIF_SWSUP_IDLE,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -@@ -1916,15 +1687,6 @@ static struct omap_hwmod_irq_info
> omap2430_dma_system_irqs[] = {
> - 	{ .name = "3", .irq = 15 }, /* INT_24XX_SDMA_IRQ3 */
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_dma_system_addrs[] = {
> --	{
> --		.pa_start	= 0x48056000,
> --		.pa_end		= 0x48056fff,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* dma_system -> L3 */
> - static struct omap_hwmod_ocp_if omap2430_dma_system__l3 = {
> - 	.master		= &omap2430_dma_system_hwmod,
> -@@ -1943,7 +1705,7 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_core__dma_system = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_dma_system_hwmod,
> - 	.clk		= "sdma_ick",
> --	.addr		= omap2430_dma_system_addrs,
> -+	.addr		= omap2_dma_system_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1994,20 +1756,11 @@ static struct omap_hwmod_irq_info
> omap2430_mailbox_irqs[] = {
> - 	{ .irq = 26 },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_mailbox_addrs[] = {
> --	{
> --		.pa_start	= 0x48094000,
> --		.pa_end		= 0x480941ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> mailbox */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mailbox = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_mailbox_hwmod,
> --	.addr		= omap2430_mailbox_addrs,
> -+	.addr		= omap2_mailbox_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2279,22 +2032,12 @@ static struct omap_hwmod_dma_info
> omap2430_mcbsp1_sdma_chs[] = {
> - 	{ .name = "tx", .dma_req = 31 },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_mcbsp1_addrs[] = {
> --	{
> --		.name		= "mpu",
> --		.pa_start	= 0x48074000,
> --		.pa_end		= 0x480740ff,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> mcbsp1 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mcbsp1 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_mcbsp1_hwmod,
> - 	.clk		= "mcbsp1_ick",
> --	.addr		= omap2430_mcbsp1_addrs,
> -+	.addr		= omap2_mcbsp1_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2337,22 +2080,12 @@ static struct omap_hwmod_dma_info
> omap2430_mcbsp2_sdma_chs[] = {
> - 	{ .name = "tx", .dma_req = 33 },
> - };
> -
> --static struct omap_hwmod_addr_space omap2430_mcbsp2_addrs[] = {
> --	{
> --		.name		= "mpu",
> --		.pa_start	= 0x48076000,
> --		.pa_end		= 0x480760ff,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> mcbsp2 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mcbsp2 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> - 	.slave		= &omap2430_mcbsp2_hwmod,
> - 	.clk		= "mcbsp2_ick",
> --	.addr		= omap2430_mcbsp2_addrs,
> -+	.addr		= omap2xxx_mcbsp2_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -diff --git a/arch/arm/mach-
> omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c b/arch/arm/mach-
> omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c
> -new file mode 100644
> -index 0000000..04637fa
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c
> -@@ -0,0 +1,173 @@
> -+/*
> -+ * omap_hwmod_2xxx_3xxx_interconnect_data.c - common interconnect
> data, OMAP2/3
> -+ *
> -+ * Copyright (C) 2009-2011 Nokia Corporation
> -+ * Paul Walmsley
> -+ *
> -+ * This program is free software; you can redistribute it and/or modify
> -+ * it under the terms of the GNU General Public License version 2 as
> -+ * published by the Free Software Foundation.
> -+ *
> -+ * XXX handle crossbar/shared link difference for L3?
> -+ * XXX these should be marked initdata for multi-OMAP kernels
> -+ */
> -+#include <asm/sizes.h>
> -+
> -+#include <plat/omap_hwmod.h>
> -+#include <plat/serial.h>
> -+
> -+#include "omap_hwmod_common_data.h"
> -+
> -+struct omap_hwmod_addr_space omap2430_mmc1_addr_space[] = {
> -+	{
> -+		.pa_start	= 0x4809c000,
> -+		.pa_end		= 0x4809c1ff,
> -+		.flags		= ADDR_TYPE_RT,
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2430_mmc2_addr_space[] = {
> -+	{
> -+		.pa_start	= 0x480b4000,
> -+		.pa_end		= 0x480b41ff,
> -+		.flags		= ADDR_TYPE_RT,
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2_i2c1_addr_space[] = {
> -+	{
> -+		.pa_start	= 0x48070000,
> -+		.pa_end		= 0x48070000 + SZ_128 - 1,
> -+		.flags		= ADDR_TYPE_RT,
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2_i2c2_addr_space[] = {
> -+	{
> -+		.pa_start	= 0x48072000,
> -+		.pa_end		= 0x48072000 + SZ_128 - 1,
> -+		.flags		= ADDR_TYPE_RT,
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2_dss_addrs[] = {
> -+	{
> -+		.pa_start	= 0x48050000,
> -+		.pa_end		= 0x48050000 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2_dss_dispc_addrs[] = {
> -+	{
> -+		.pa_start	= 0x48050400,
> -+		.pa_end		= 0x48050400 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2_dss_rfbi_addrs[] = {
> -+	{
> -+		.pa_start	= 0x48050800,
> -+		.pa_end		= 0x48050800 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2_dss_venc_addrs[] = {
> -+	{
> -+		.pa_start	= 0x48050C00,
> -+		.pa_end		= 0x48050C00 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2_timer10_addrs[] = {
> -+	{
> -+		.pa_start	= 0x48086000,
> -+		.pa_end		= 0x48086000 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2_timer11_addrs[] = {
> -+	{
> -+		.pa_start	= 0x48088000,
> -+		.pa_end		= 0x48088000 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2xxx_timer12_addrs[] = {
> -+	{
> -+		.pa_start	= 0x4808a000,
> -+		.pa_end		= 0x4808a000 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2_mcspi1_addr_space[] = {
> -+	{
> -+		.pa_start	= 0x48098000,
> -+		.pa_end		= 0x48098000 + SZ_256 - 1,
> -+		.flags		= ADDR_TYPE_RT,
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2_mcspi2_addr_space[] = {
> -+	{
> -+		.pa_start	= 0x4809a000,
> -+		.pa_end		= 0x4809a000 + SZ_256 - 1,
> -+		.flags		= ADDR_TYPE_RT,
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2430_mcspi3_addr_space[] = {
> -+	{
> -+		.pa_start	= 0x480b8000,
> -+		.pa_end		= 0x480b8000 + SZ_256 - 1,
> -+		.flags		= ADDR_TYPE_RT,
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2_dma_system_addrs[] = {
> -+	{
> -+		.pa_start	= 0x48056000,
> -+		.pa_end		= 0x48056000 + SZ_4K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2_mailbox_addrs[] = {
> -+	{
> -+		.pa_start	= 0x48094000,
> -+		.pa_end		= 0x48094000 + SZ_512 - 1,
> -+		.flags		= ADDR_TYPE_RT,
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2_mcbsp1_addrs[] = {
> -+	{
> -+		.name		= "mpu",
> -+		.pa_start	= 0x48074000,
> -+		.pa_end		= 0x480740ff,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c
> -new file mode 100644
> -index 0000000..4f3547c
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c
> -@@ -0,0 +1,130 @@
> -+/*
> -+ * omap_hwmod_2xxx_interconnect_data.c - common interconnect data for
> OMAP2xxx
> -+ *
> -+ * Copyright (C) 2009-2011 Nokia Corporation
> -+ * Paul Walmsley
> -+ *
> -+ * This program is free software; you can redistribute it and/or modify
> -+ * it under the terms of the GNU General Public License version 2 as
> -+ * published by the Free Software Foundation.
> -+ *
> -+ * XXX handle crossbar/shared link difference for L3?
> -+ * XXX these should be marked initdata for multi-OMAP kernels
> -+ */
> -+#include <asm/sizes.h>
> -+
> -+#include <plat/omap_hwmod.h>
> -+#include <plat/serial.h>
> -+
> -+#include "omap_hwmod_common_data.h"
> -+
> -+struct omap_hwmod_addr_space omap2xxx_uart1_addr_space[] = {
> -+	{
> -+		.pa_start	= OMAP2_UART1_BASE,
> -+		.pa_end		= OMAP2_UART1_BASE + SZ_8K - 1,
> -+		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2xxx_uart2_addr_space[] = {
> -+	{
> -+		.pa_start	= OMAP2_UART2_BASE,
> -+		.pa_end		= OMAP2_UART2_BASE + SZ_1K - 1,
> -+		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2xxx_uart3_addr_space[] = {
> -+	{
> -+		.pa_start	= OMAP2_UART3_BASE,
> -+		.pa_end		= OMAP2_UART3_BASE + SZ_1K - 1,
> -+		.flags		= ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2xxx_timer2_addrs[] = {
> -+	{
> -+		.pa_start	= 0x4802a000,
> -+		.pa_end		= 0x4802a000 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2xxx_timer3_addrs[] = {
> -+	{
> -+		.pa_start	= 0x48078000,
> -+		.pa_end		= 0x48078000 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2xxx_timer4_addrs[] = {
> -+	{
> -+		.pa_start	= 0x4807a000,
> -+		.pa_end		= 0x4807a000 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2xxx_timer5_addrs[] = {
> -+	{
> -+		.pa_start	= 0x4807c000,
> -+		.pa_end		= 0x4807c000 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2xxx_timer6_addrs[] = {
> -+	{
> -+		.pa_start	= 0x4807e000,
> -+		.pa_end		= 0x4807e000 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2xxx_timer7_addrs[] = {
> -+	{
> -+		.pa_start	= 0x48080000,
> -+		.pa_end		= 0x48080000 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2xxx_timer8_addrs[] = {
> -+	{
> -+		.pa_start	= 0x48082000,
> -+		.pa_end		= 0x48082000 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2xxx_timer9_addrs[] = {
> -+	{
> -+		.pa_start	= 0x48084000,
> -+		.pa_end		= 0x48084000 + SZ_1K - 1,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+struct omap_hwmod_addr_space omap2xxx_mcbsp2_addrs[] = {
> -+	{
> -+		.name		= "mpu",
> -+		.pa_start	= 0x48076000,
> -+		.pa_end		= 0x480760ff,
> -+		.flags		= ADDR_TYPE_RT
> -+	},
> -+	{ }
> -+};
> -+
> -+
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -index 6410779..791f9b2 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -@@ -190,39 +190,21 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__l4_wkup = {
> - };
> -
> - /* L4 CORE -> MMC1 interface */
> --static struct omap_hwmod_addr_space omap3xxx_mmc1_addr_space[] = {
> --	{
> --		.pa_start	= 0x4809c000,
> --		.pa_end		= 0x4809c1ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__mmc1 = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap3xxx_mmc1_hwmod,
> - 	.clk		= "mmchs1_ick",
> --	.addr		= omap3xxx_mmc1_addr_space,
> -+	.addr		= omap2430_mmc1_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - 	.flags		= OMAP_FIREWALL_L4
> - };
> -
> - /* L4 CORE -> MMC2 interface */
> --static struct omap_hwmod_addr_space omap3xxx_mmc2_addr_space[] = {
> --	{
> --		.pa_start	= 0x480b4000,
> --		.pa_end		= 0x480b41ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__mmc2 = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap3xxx_mmc2_hwmod,
> - 	.clk		= "mmchs2_ick",
> --	.addr		= omap3xxx_mmc2_addr_space,
> -+	.addr		= omap2430_mmc2_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - 	.flags		= OMAP_FIREWALL_L4
> - };
> -@@ -318,24 +300,12 @@ static struct omap_hwmod_ocp_if
> omap3_l4_per__uart4 = {
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> --/* I2C IP block address space length (in bytes) */
> --#define OMAP2_I2C_AS_LEN		128
> --
> - /* L4 CORE -> I2C1 interface */
> --static struct omap_hwmod_addr_space omap3xxx_i2c1_addr_space[] = {
> --	{
> --		.pa_start	= 0x48070000,
> --		.pa_end		= 0x48070000 + OMAP2_I2C_AS_LEN
> - 1,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap3_l4_core__i2c1 = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap3xxx_i2c1_hwmod,
> - 	.clk		= "i2c1_ick",
> --	.addr		= omap3xxx_i2c1_addr_space,
> -+	.addr		= omap2_i2c1_addr_space,
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_I2C1_REGION,
> -@@ -347,20 +317,11 @@ static struct omap_hwmod_ocp_if
> omap3_l4_core__i2c1 = {
> - };
> -
> - /* L4 CORE -> I2C2 interface */
> --static struct omap_hwmod_addr_space omap3xxx_i2c2_addr_space[] = {
> --	{
> --		.pa_start	= 0x48072000,
> --		.pa_end		= 0x48072000 + OMAP2_I2C_AS_LEN
> - 1,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap3_l4_core__i2c2 = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap3xxx_i2c2_hwmod,
> - 	.clk		= "i2c2_ick",
> --	.addr		= omap3xxx_i2c2_addr_space,
> -+	.addr		= omap2_i2c2_addr_space,
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_I2C2_REGION,
> -@@ -375,7 +336,7 @@ static struct omap_hwmod_ocp_if
> omap3_l4_core__i2c2 = {
> - static struct omap_hwmod_addr_space omap3xxx_i2c3_addr_space[] = {
> - 	{
> - 		.pa_start	= 0x48060000,
> --		.pa_end		= 0x48060000 + OMAP2_I2C_AS_LEN
> - 1,
> -+		.pa_end		= 0x48060000 + SZ_128 - 1,
> - 		.flags		= ADDR_TYPE_RT,
> - 	},
> - 	{ }
> -@@ -1065,21 +1026,12 @@ static struct omap_hwmod_irq_info
> omap3xxx_timer10_mpu_irqs[] = {
> - 	{ .irq = 46, },
> - };
> -
> --static struct omap_hwmod_addr_space omap3xxx_timer10_addrs[] = {
> --	{
> --		.pa_start	= 0x48086000,
> --		.pa_end		= 0x48086000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer10 */
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__timer10 = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap3xxx_timer10_hwmod,
> - 	.clk		= "gpt10_ick",
> --	.addr		= omap3xxx_timer10_addrs,
> -+	.addr		= omap2_timer10_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1115,21 +1067,12 @@ static struct omap_hwmod_irq_info
> omap3xxx_timer11_mpu_irqs[] = {
> - 	{ .irq = 47, },
> - };
> -
> --static struct omap_hwmod_addr_space omap3xxx_timer11_addrs[] = {
> --	{
> --		.pa_start	= 0x48088000,
> --		.pa_end		= 0x48088000 + SZ_1K - 1,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> timer11 */
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__timer11 = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap3xxx_timer11_hwmod,
> - 	.clk		= "gpt11_ick",
> --	.addr		= omap3xxx_timer11_addrs,
> -+	.addr		= omap2_timer11_addrs,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -1491,21 +1434,12 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_dss_masters[] = {
> - 	&omap3xxx_dss__l3,
> - };
> -
> --static struct omap_hwmod_addr_space omap3xxx_dss_addrs[] = {
> --	{
> --		.pa_start	= 0x48050000,
> --		.pa_end		= 0x480503FF,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> dss */
> - static struct omap_hwmod_ocp_if omap3430es1_l4_core__dss = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap3430es1_dss_core_hwmod,
> - 	.clk		= "dss_ick",
> --	.addr		= omap3xxx_dss_addrs,
> -+	.addr		= omap2_dss_addrs,
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3ES1_L4_CORE_FW_DSS_CORE_REGION,
> -@@ -1520,7 +1454,7 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_core__dss = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap3xxx_dss_core_hwmod,
> - 	.clk		= "dss_ick",
> --	.addr		= omap3xxx_dss_addrs,
> -+	.addr		= omap2_dss_addrs,
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_DSS_CORE_REGION,
> -@@ -1625,21 +1559,12 @@ static struct omap_hwmod_irq_info
> omap3xxx_dispc_irqs[] = {
> - 	{ .irq = 25 },
> - };
> -
> --static struct omap_hwmod_addr_space omap3xxx_dss_dispc_addrs[] = {
> --	{
> --		.pa_start	= 0x48050400,
> --		.pa_end		= 0x480507FF,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> dss_dispc */
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__dss_dispc = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap3xxx_dss_dispc_hwmod,
> - 	.clk		= "dss_ick",
> --	.addr		= omap3xxx_dss_dispc_addrs,
> -+	.addr		= omap2_dss_dispc_addrs,
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_DSS_DISPC_REGION,
> -@@ -1760,21 +1685,12 @@ static struct omap_hwmod_class
> omap3xxx_rfbi_hwmod_class = {
> - 	.sysc = &omap3xxx_rfbi_sysc,
> - };
> -
> --static struct omap_hwmod_addr_space omap3xxx_dss_rfbi_addrs[] = {
> --	{
> --		.pa_start	= 0x48050800,
> --		.pa_end		= 0x48050BFF,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> dss_rfbi */
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__dss_rfbi = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap3xxx_dss_rfbi_hwmod,
> - 	.clk		= "dss_ick",
> --	.addr		= omap3xxx_dss_rfbi_addrs,
> -+	.addr		= omap2_dss_rfbi_addrs,
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_DSS_RFBI_REGION,
> -@@ -1818,22 +1734,12 @@ static struct omap_hwmod_class
> omap3xxx_venc_hwmod_class = {
> - 	.name = "venc",
> - };
> -
> --/* dss_venc */
> --static struct omap_hwmod_addr_space omap3xxx_dss_venc_addrs[] = {
> --	{
> --		.pa_start	= 0x48050C00,
> --		.pa_end		= 0x48050FFF,
> --		.flags		= ADDR_TYPE_RT
> --	},
> --	{ }
> --};
> --
> - /* l4_core -> dss_venc */
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__dss_venc = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap3xxx_dss_venc_hwmod,
> - 	.clk		= "dss_tv_fck",
> --	.addr		= omap3xxx_dss_venc_addrs,
> -+	.addr		= omap2_dss_venc_addrs,
> - 	.fw = {
> - 		.omap2 = {
> - 			.l4_fw_region  =
> OMAP3_L4_CORE_FW_DSS_VENC_REGION,
> -@@ -3070,56 +2976,29 @@ static struct omap_hwmod
> omap3xxx_mailbox_hwmod = {
> - };
> -
> - /* l4 core -> mcspi1 interface */
> --static struct omap_hwmod_addr_space omap34xx_mcspi1_addr_space[] = {
> --	{
> --		.pa_start	= 0x48098000,
> --		.pa_end		= 0x480980ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap34xx_l4_core__mcspi1 = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap34xx_mcspi1,
> - 	.clk		= "mcspi1_ick",
> --	.addr		= omap34xx_mcspi1_addr_space,
> -+	.addr		= omap2_mcspi1_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> - /* l4 core -> mcspi2 interface */
> --static struct omap_hwmod_addr_space omap34xx_mcspi2_addr_space[] = {
> --	{
> --		.pa_start	= 0x4809a000,
> --		.pa_end		= 0x4809a0ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap34xx_l4_core__mcspi2 = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap34xx_mcspi2,
> - 	.clk		= "mcspi2_ick",
> --	.addr		= omap34xx_mcspi2_addr_space,
> -+	.addr		= omap2_mcspi2_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> - /* l4 core -> mcspi3 interface */
> --static struct omap_hwmod_addr_space omap34xx_mcspi3_addr_space[] = {
> --	{
> --		.pa_start	= 0x480b8000,
> --		.pa_end		= 0x480b80ff,
> --		.flags		= ADDR_TYPE_RT,
> --	},
> --	{ }
> --};
> --
> - static struct omap_hwmod_ocp_if omap34xx_l4_core__mcspi3 = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> - 	.slave		= &omap34xx_mcspi3,
> - 	.clk		= "mcspi3_ick",
> --	.addr		= omap34xx_mcspi3_addr_space,
> -+	.addr		= omap2430_mcspi3_addr_space,
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_common_data.h
> b/arch/arm/mach-omap2/omap_hwmod_common_data.h
> -index c34e98b..76a2f11 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_common_data.h
> -+++ b/arch/arm/mach-omap2/omap_hwmod_common_data.h
> -@@ -1,10 +1,10 @@
> - /*
> -  * omap_hwmod_common_data.h - OMAP hwmod common macros and
> declarations
> -  *
> -- * Copyright (C) 2010 Nokia Corporation
> -+ * Copyright (C) 2010-2011 Nokia Corporation
> -  * Paul Walmsley
> -  *
> -- * Copyright (C) 2010 Texas Instruments, Inc.
> -+ * Copyright (C) 2010-2011 Texas Instruments, Inc.
> -  * Benoît Cousson
> -  *
> -  * This program is free software; you can redistribute it and/or modify
> -@@ -16,10 +16,44 @@
> -
> - #include <plat/omap_hwmod.h>
> -
> -+/* Common address space across OMAP2xxx */
> -+extern struct omap_hwmod_addr_space omap2xxx_uart1_addr_space[];
> -+extern struct omap_hwmod_addr_space omap2xxx_uart2_addr_space[];
> -+extern struct omap_hwmod_addr_space omap2xxx_uart3_addr_space[];
> -+extern struct omap_hwmod_addr_space omap2xxx_timer2_addrs[];
> -+extern struct omap_hwmod_addr_space omap2xxx_timer3_addrs[];
> -+extern struct omap_hwmod_addr_space omap2xxx_timer4_addrs[];
> -+extern struct omap_hwmod_addr_space omap2xxx_timer5_addrs[];
> -+extern struct omap_hwmod_addr_space omap2xxx_timer6_addrs[];
> -+extern struct omap_hwmod_addr_space omap2xxx_timer7_addrs[];
> -+extern struct omap_hwmod_addr_space omap2xxx_timer8_addrs[];
> -+extern struct omap_hwmod_addr_space omap2xxx_timer9_addrs[];
> -+extern struct omap_hwmod_addr_space omap2xxx_timer12_addrs[];
> -+extern struct omap_hwmod_addr_space omap2xxx_mcbsp2_addrs[];
> -+
> -+/* Common address space across OMAP2xxx/3xxx */
> -+extern struct omap_hwmod_addr_space omap2_i2c1_addr_space[];
> -+extern struct omap_hwmod_addr_space omap2_i2c2_addr_space[];
> -+extern struct omap_hwmod_addr_space omap2_dss_addrs[];
> -+extern struct omap_hwmod_addr_space omap2_dss_dispc_addrs[];
> -+extern struct omap_hwmod_addr_space omap2_dss_rfbi_addrs[];
> -+extern struct omap_hwmod_addr_space omap2_dss_venc_addrs[];
> -+extern struct omap_hwmod_addr_space omap2_timer10_addrs[];
> -+extern struct omap_hwmod_addr_space omap2_timer11_addrs[];
> -+extern struct omap_hwmod_addr_space omap2430_mmc1_addr_space[];
> -+extern struct omap_hwmod_addr_space omap2430_mmc2_addr_space[];
> -+extern struct omap_hwmod_addr_space omap2_mcspi1_addr_space[];
> -+extern struct omap_hwmod_addr_space omap2_mcspi2_addr_space[];
> -+extern struct omap_hwmod_addr_space omap2430_mcspi3_addr_space[];
> -+extern struct omap_hwmod_addr_space omap2_dma_system_addrs[];
> -+extern struct omap_hwmod_addr_space omap2_mailbox_addrs[];
> -+extern struct omap_hwmod_addr_space omap2_mcbsp1_addrs[];
> -+
> - /* OMAP hwmod classes - forward declarations */
> - extern struct omap_hwmod_class l3_hwmod_class;
> - extern struct omap_hwmod_class l4_hwmod_class;
> - extern struct omap_hwmod_class mpu_hwmod_class;
> - extern struct omap_hwmod_class iva_hwmod_class;
> -
> -+
> - #endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0039-omap_hwmod-
> use-a-terminator-record-with-omap_hwmod_m.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0039-omap_hwmod-use-a-terminator-
> record-with-omap_hwmod_m.patch
> deleted file mode 100644
> index b83e6df..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0039-omap_hwmod-use-a-
> terminator-record-with-omap_hwmod_m.patch
> +++ /dev/null
> @@ -1,2904 +0,0 @@
> -From 75a125341387435415e8390130066d56178291ef Mon Sep 17
> 00:00:00 2001
> -From: Paul Walmsley <paul at pwsan.com>
> -Date: Sat, 9 Jul 2011 19:14:06 -0600
> -Subject: [PATCH 039/149] omap_hwmod: use a terminator record with
> omap_hwmod_mpu_irqs arrays
> -
> -Previously, struct omap_hwmod_mpu_irqs arrays were unterminated; and
> -users of these arrays used the ARRAY_SIZE() macro to determine the
> -length of the array.  However, ARRAY_SIZE() only works when the array
> -is in the same scope as the macro user.
> -
> -So far this hasn't been a problem.  However, to reduce duplicated
> -data, a subsequent patch will move common data to a separate, shared
> -file.  When this is done, ARRAY_SIZE() will no longer be usable.
> -
> -This patch removes ARRAY_SIZE() usage for struct omap_hwmod_mpu_irqs
> -arrays and uses a sentinel value (irq == -1) as the array terminator
> -instead.
> -
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod.c             |   30 ++++++-
> - arch/arm/mach-omap2/omap_hwmod_2420_data.c   |   56 ++++++------
> - arch/arm/mach-omap2/omap_hwmod_2430_data.c   |   72 +++++++-------
> - arch/arm/mach-omap2/omap_hwmod_3xxx_data.c   |   92 +++++++++--------
> -
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c   |  127
> +++++++++++++-------------
> - arch/arm/plat-omap/include/plat/omap_hwmod.h |    8 +-
> - 6 files changed, 205 insertions(+), 180 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index 73599f0..b761968 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -679,6 +679,29 @@ static void _disable_optional_clocks(struct
> omap_hwmod *oh)
> - }
> -
> - /**
> -+ * _count_mpu_irqs - count the number of MPU IRQ lines associated with
> @oh
> -+ * @oh: struct omap_hwmod *oh
> -+ *
> -+ * Count and return the number of MPU IRQs associated with the hwmod
> -+ * @oh.  Used to allocate struct resource data.  Returns 0 if @oh is
> -+ * NULL.
> -+ */
> -+static int _count_mpu_irqs(struct omap_hwmod *oh)
> -+{
> -+	struct omap_hwmod_irq_info *ohii;
> -+	int i = 0;
> -+
> -+	if (!oh || !oh->mpu_irqs)
> -+		return 0;
> -+
> -+	do {
> -+		ohii = &oh->mpu_irqs[i++];
> -+	} while (ohii->irq != -1);
> -+
> -+	return i;
> -+}
> -+
> -+/**
> -  * _count_ocp_if_addr_spaces - count the number of address space entries for
> @oh
> -  * @oh: struct omap_hwmod *oh
> -  *
> -@@ -1984,7 +2007,7 @@ int omap_hwmod_count_resources(struct
> omap_hwmod *oh)
> - {
> - 	int ret, i;
> -
> --	ret = oh->mpu_irqs_cnt + oh->sdma_reqs_cnt;
> -+	ret = _count_mpu_irqs(oh) + oh->sdma_reqs_cnt;
> -
> - 	for (i = 0; i < oh->slaves_cnt; i++)
> - 		ret += _count_ocp_if_addr_spaces(oh->slaves[i]);
> -@@ -2004,12 +2027,13 @@ int omap_hwmod_count_resources(struct
> omap_hwmod *oh)
> -  */
> - int omap_hwmod_fill_resources(struct omap_hwmod *oh, struct resource
> *res)
> - {
> --	int i, j;
> -+	int i, j, mpu_irqs_cnt;
> - 	int r = 0;
> -
> - 	/* For each IRQ, DMA, memory area, fill in array.*/
> -
> --	for (i = 0; i < oh->mpu_irqs_cnt; i++) {
> -+	mpu_irqs_cnt = _count_mpu_irqs(oh);
> -+	for (i = 0; i < mpu_irqs_cnt; i++) {
> - 		(res + r)->name = (oh->mpu_irqs + i)->name;
> - 		(res + r)->start = (oh->mpu_irqs + i)->irq;
> - 		(res + r)->end = (oh->mpu_irqs + i)->irq;
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -index 3ec625c..04730d3 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -@@ -296,6 +296,7 @@ static struct omap_hwmod_class
> omap2420_timer_hwmod_class = {
> - static struct omap_hwmod omap2420_timer1_hwmod;
> - static struct omap_hwmod_irq_info omap2420_timer1_mpu_irqs[] = {
> - 	{ .irq = 37, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap2420_timer1_addrs[] = {
> -@@ -325,7 +326,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer1_slaves[] = {
> - static struct omap_hwmod omap2420_timer1_hwmod = {
> - 	.name		= "timer1",
> - 	.mpu_irqs	= omap2420_timer1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_timer1_mpu_irqs),
> - 	.main_clk	= "gpt1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -346,6 +346,7 @@ static struct omap_hwmod
> omap2420_timer1_hwmod = {
> - static struct omap_hwmod omap2420_timer2_hwmod;
> - static struct omap_hwmod_irq_info omap2420_timer2_mpu_irqs[] = {
> - 	{ .irq = 38, },
> -+	{ .irq = -1 }
> - };
> -
> -
> -@@ -367,7 +368,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer2_slaves[] = {
> - static struct omap_hwmod omap2420_timer2_hwmod = {
> - 	.name		= "timer2",
> - 	.mpu_irqs	= omap2420_timer2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_timer2_mpu_irqs),
> - 	.main_clk	= "gpt2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -388,6 +388,7 @@ static struct omap_hwmod
> omap2420_timer2_hwmod = {
> - static struct omap_hwmod omap2420_timer3_hwmod;
> - static struct omap_hwmod_irq_info omap2420_timer3_mpu_irqs[] = {
> - 	{ .irq = 39, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer3 */
> -@@ -408,7 +409,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer3_slaves[] = {
> - static struct omap_hwmod omap2420_timer3_hwmod = {
> - 	.name		= "timer3",
> - 	.mpu_irqs	= omap2420_timer3_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_timer3_mpu_irqs),
> - 	.main_clk	= "gpt3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -429,6 +429,7 @@ static struct omap_hwmod
> omap2420_timer3_hwmod = {
> - static struct omap_hwmod omap2420_timer4_hwmod;
> - static struct omap_hwmod_irq_info omap2420_timer4_mpu_irqs[] = {
> - 	{ .irq = 40, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer4 */
> -@@ -449,7 +450,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer4_slaves[] = {
> - static struct omap_hwmod omap2420_timer4_hwmod = {
> - 	.name		= "timer4",
> - 	.mpu_irqs	= omap2420_timer4_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_timer4_mpu_irqs),
> - 	.main_clk	= "gpt4_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -470,6 +470,7 @@ static struct omap_hwmod
> omap2420_timer4_hwmod = {
> - static struct omap_hwmod omap2420_timer5_hwmod;
> - static struct omap_hwmod_irq_info omap2420_timer5_mpu_irqs[] = {
> - 	{ .irq = 41, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer5 */
> -@@ -490,7 +491,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer5_slaves[] = {
> - static struct omap_hwmod omap2420_timer5_hwmod = {
> - 	.name		= "timer5",
> - 	.mpu_irqs	= omap2420_timer5_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_timer5_mpu_irqs),
> - 	.main_clk	= "gpt5_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -512,6 +512,7 @@ static struct omap_hwmod
> omap2420_timer5_hwmod = {
> - static struct omap_hwmod omap2420_timer6_hwmod;
> - static struct omap_hwmod_irq_info omap2420_timer6_mpu_irqs[] = {
> - 	{ .irq = 42, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer6 */
> -@@ -532,7 +533,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer6_slaves[] = {
> - static struct omap_hwmod omap2420_timer6_hwmod = {
> - 	.name		= "timer6",
> - 	.mpu_irqs	= omap2420_timer6_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_timer6_mpu_irqs),
> - 	.main_clk	= "gpt6_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -553,6 +553,7 @@ static struct omap_hwmod
> omap2420_timer6_hwmod = {
> - static struct omap_hwmod omap2420_timer7_hwmod;
> - static struct omap_hwmod_irq_info omap2420_timer7_mpu_irqs[] = {
> - 	{ .irq = 43, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer7 */
> -@@ -573,7 +574,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer7_slaves[] = {
> - static struct omap_hwmod omap2420_timer7_hwmod = {
> - 	.name		= "timer7",
> - 	.mpu_irqs	= omap2420_timer7_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_timer7_mpu_irqs),
> - 	.main_clk	= "gpt7_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -594,6 +594,7 @@ static struct omap_hwmod
> omap2420_timer7_hwmod = {
> - static struct omap_hwmod omap2420_timer8_hwmod;
> - static struct omap_hwmod_irq_info omap2420_timer8_mpu_irqs[] = {
> - 	{ .irq = 44, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer8 */
> -@@ -614,7 +615,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer8_slaves[] = {
> - static struct omap_hwmod omap2420_timer8_hwmod = {
> - 	.name		= "timer8",
> - 	.mpu_irqs	= omap2420_timer8_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_timer8_mpu_irqs),
> - 	.main_clk	= "gpt8_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -635,6 +635,7 @@ static struct omap_hwmod
> omap2420_timer8_hwmod = {
> - static struct omap_hwmod omap2420_timer9_hwmod;
> - static struct omap_hwmod_irq_info omap2420_timer9_mpu_irqs[] = {
> - 	{ .irq = 45, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer9 */
> -@@ -655,7 +656,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer9_slaves[] = {
> - static struct omap_hwmod omap2420_timer9_hwmod = {
> - 	.name		= "timer9",
> - 	.mpu_irqs	= omap2420_timer9_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_timer9_mpu_irqs),
> - 	.main_clk	= "gpt9_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -676,6 +676,7 @@ static struct omap_hwmod
> omap2420_timer9_hwmod = {
> - static struct omap_hwmod omap2420_timer10_hwmod;
> - static struct omap_hwmod_irq_info omap2420_timer10_mpu_irqs[] = {
> - 	{ .irq = 46, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer10 */
> -@@ -696,7 +697,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer10_slaves[] = {
> - static struct omap_hwmod omap2420_timer10_hwmod = {
> - 	.name		= "timer10",
> - 	.mpu_irqs	= omap2420_timer10_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_timer10_mpu_irqs),
> - 	.main_clk	= "gpt10_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -717,6 +717,7 @@ static struct omap_hwmod
> omap2420_timer10_hwmod = {
> - static struct omap_hwmod omap2420_timer11_hwmod;
> - static struct omap_hwmod_irq_info omap2420_timer11_mpu_irqs[] = {
> - 	{ .irq = 47, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer11 */
> -@@ -737,7 +738,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer11_slaves[] = {
> - static struct omap_hwmod omap2420_timer11_hwmod = {
> - 	.name		= "timer11",
> - 	.mpu_irqs	= omap2420_timer11_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_timer11_mpu_irqs),
> - 	.main_clk	= "gpt11_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -758,6 +758,7 @@ static struct omap_hwmod
> omap2420_timer11_hwmod = {
> - static struct omap_hwmod omap2420_timer12_hwmod;
> - static struct omap_hwmod_irq_info omap2420_timer12_mpu_irqs[] = {
> - 	{ .irq = 48, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer12 */
> -@@ -778,7 +779,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer12_slaves[] = {
> - static struct omap_hwmod omap2420_timer12_hwmod = {
> - 	.name		= "timer12",
> - 	.mpu_irqs	= omap2420_timer12_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_timer12_mpu_irqs),
> - 	.main_clk	= "gpt12_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -879,6 +879,7 @@ static struct omap_hwmod_class uart_class = {
> -
> - static struct omap_hwmod_irq_info uart1_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_UART1_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
> -@@ -893,7 +894,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_uart1_slaves[] = {
> - static struct omap_hwmod omap2420_uart1_hwmod = {
> - 	.name		= "uart1",
> - 	.mpu_irqs	= uart1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(uart1_mpu_irqs),
> - 	.sdma_reqs	= uart1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart1_sdma_reqs),
> - 	.main_clk	= "uart1_fck",
> -@@ -916,6 +916,7 @@ static struct omap_hwmod omap2420_uart1_hwmod
> = {
> -
> - static struct omap_hwmod_irq_info uart2_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_UART2_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info uart2_sdma_reqs[] = {
> -@@ -930,7 +931,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_uart2_slaves[] = {
> - static struct omap_hwmod omap2420_uart2_hwmod = {
> - 	.name		= "uart2",
> - 	.mpu_irqs	= uart2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(uart2_mpu_irqs),
> - 	.sdma_reqs	= uart2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart2_sdma_reqs),
> - 	.main_clk	= "uart2_fck",
> -@@ -953,6 +953,7 @@ static struct omap_hwmod omap2420_uart2_hwmod
> = {
> -
> - static struct omap_hwmod_irq_info uart3_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_UART3_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info uart3_sdma_reqs[] = {
> -@@ -967,7 +968,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_uart3_slaves[] = {
> - static struct omap_hwmod omap2420_uart3_hwmod = {
> - 	.name		= "uart3",
> - 	.mpu_irqs	= uart3_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(uart3_mpu_irqs),
> - 	.sdma_reqs	= uart3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart3_sdma_reqs),
> - 	.main_clk	= "uart3_fck",
> -@@ -1087,6 +1087,7 @@ static struct omap_hwmod_class
> omap2420_dispc_hwmod_class = {
> -
> - static struct omap_hwmod_irq_info omap2420_dispc_irqs[] = {
> - 	{ .irq = 25 },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> dss_dispc */
> -@@ -1113,7 +1114,6 @@ static struct omap_hwmod
> omap2420_dss_dispc_hwmod = {
> - 	.name		= "dss_dispc",
> - 	.class		= &omap2420_dispc_hwmod_class,
> - 	.mpu_irqs	= omap2420_dispc_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_dispc_irqs),
> - 	.main_clk	= "dss1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1254,6 +1254,7 @@ static struct omap_i2c_dev_attr i2c_dev_attr;
> -
> - static struct omap_hwmod_irq_info i2c1_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_I2C1_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info i2c1_sdma_reqs[] = {
> -@@ -1268,7 +1269,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_i2c1_slaves[] = {
> - static struct omap_hwmod omap2420_i2c1_hwmod = {
> - 	.name		= "i2c1",
> - 	.mpu_irqs	= i2c1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(i2c1_mpu_irqs),
> - 	.sdma_reqs	= i2c1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(i2c1_sdma_reqs),
> - 	.main_clk	= "i2c1_fck",
> -@@ -1293,6 +1293,7 @@ static struct omap_hwmod
> omap2420_i2c1_hwmod = {
> -
> - static struct omap_hwmod_irq_info i2c2_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_I2C2_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info i2c2_sdma_reqs[] = {
> -@@ -1307,7 +1308,6 @@ static struct omap_hwmod_ocp_if
> *omap2420_i2c2_slaves[] = {
> - static struct omap_hwmod omap2420_i2c2_hwmod = {
> - 	.name		= "i2c2",
> - 	.mpu_irqs	= i2c2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(i2c2_mpu_irqs),
> - 	.sdma_reqs	= i2c2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(i2c2_sdma_reqs),
> - 	.main_clk	= "i2c2_fck",
> -@@ -1430,6 +1430,7 @@ static struct omap_hwmod_class
> omap242x_gpio_hwmod_class = {
> - /* gpio1 */
> - static struct omap_hwmod_irq_info omap242x_gpio1_irqs[] = {
> - 	{ .irq = 29 }, /* INT_24XX_GPIO_BANK1 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2420_gpio1_slaves[] = {
> -@@ -1440,7 +1441,6 @@ static struct omap_hwmod
> omap2420_gpio1_hwmod = {
> - 	.name		= "gpio1",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap242x_gpio1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap242x_gpio1_irqs),
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1461,6 +1461,7 @@ static struct omap_hwmod
> omap2420_gpio1_hwmod = {
> - /* gpio2 */
> - static struct omap_hwmod_irq_info omap242x_gpio2_irqs[] = {
> - 	{ .irq = 30 }, /* INT_24XX_GPIO_BANK2 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2420_gpio2_slaves[] = {
> -@@ -1471,7 +1472,6 @@ static struct omap_hwmod
> omap2420_gpio2_hwmod = {
> - 	.name		= "gpio2",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap242x_gpio2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap242x_gpio2_irqs),
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1492,6 +1492,7 @@ static struct omap_hwmod
> omap2420_gpio2_hwmod = {
> - /* gpio3 */
> - static struct omap_hwmod_irq_info omap242x_gpio3_irqs[] = {
> - 	{ .irq = 31 }, /* INT_24XX_GPIO_BANK3 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2420_gpio3_slaves[] = {
> -@@ -1502,7 +1503,6 @@ static struct omap_hwmod
> omap2420_gpio3_hwmod = {
> - 	.name		= "gpio3",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap242x_gpio3_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap242x_gpio3_irqs),
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1523,6 +1523,7 @@ static struct omap_hwmod
> omap2420_gpio3_hwmod = {
> - /* gpio4 */
> - static struct omap_hwmod_irq_info omap242x_gpio4_irqs[] = {
> - 	{ .irq = 32 }, /* INT_24XX_GPIO_BANK4 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2420_gpio4_slaves[] = {
> -@@ -1533,7 +1534,6 @@ static struct omap_hwmod
> omap2420_gpio4_hwmod = {
> - 	.name		= "gpio4",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap242x_gpio4_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap242x_gpio4_irqs),
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1580,6 +1580,7 @@ static struct omap_hwmod_irq_info
> omap2420_dma_system_irqs[] = {
> - 	{ .name = "1", .irq = 13 }, /* INT_24XX_SDMA_IRQ1 */
> - 	{ .name = "2", .irq = 14 }, /* INT_24XX_SDMA_IRQ2 */
> - 	{ .name = "3", .irq = 15 }, /* INT_24XX_SDMA_IRQ3 */
> -+	{ .irq = -1 }
> - };
> -
> - /* dma_system -> L3 */
> -@@ -1613,7 +1614,6 @@ static struct omap_hwmod
> omap2420_dma_system_hwmod = {
> - 	.name		= "dma",
> - 	.class		= &omap2420_dma_hwmod_class,
> - 	.mpu_irqs	= omap2420_dma_system_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_dma_system_irqs),
> - 	.main_clk	= "core_l3_ck",
> - 	.slaves		= omap2420_dma_system_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_dma_system_slaves),
> -@@ -1650,6 +1650,7 @@ static struct omap_hwmod
> omap2420_mailbox_hwmod;
> - static struct omap_hwmod_irq_info omap2420_mailbox_irqs[] = {
> - 	{ .name = "dsp", .irq = 26 },
> - 	{ .name = "iva", .irq = 34 },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> mailbox */
> -@@ -1669,7 +1670,6 @@ static struct omap_hwmod
> omap2420_mailbox_hwmod = {
> - 	.name		= "mailbox",
> - 	.class		= &omap2420_mailbox_hwmod_class,
> - 	.mpu_irqs	= omap2420_mailbox_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_mailbox_irqs),
> - 	.main_clk	= "mailboxes_ick",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1711,6 +1711,7 @@ static struct omap_hwmod_class
> omap2420_mcspi_class = {
> - /* mcspi1 */
> - static struct omap_hwmod_irq_info omap2420_mcspi1_mpu_irqs[] = {
> - 	{ .irq = 65 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2420_mcspi1_sdma_reqs[] = {
> -@@ -1735,7 +1736,6 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi1_dev_attr = {
> - static struct omap_hwmod omap2420_mcspi1_hwmod = {
> - 	.name		= "mcspi1_hwmod",
> - 	.mpu_irqs	= omap2420_mcspi1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_mcspi1_mpu_irqs),
> - 	.sdma_reqs	= omap2420_mcspi1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2420_mcspi1_sdma_reqs),
> - 	.main_clk	= "mcspi1_fck",
> -@@ -1758,6 +1758,7 @@ static struct omap_hwmod
> omap2420_mcspi1_hwmod = {
> - /* mcspi2 */
> - static struct omap_hwmod_irq_info omap2420_mcspi2_mpu_irqs[] = {
> - 	{ .irq = 66 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2420_mcspi2_sdma_reqs[] = {
> -@@ -1778,7 +1779,6 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi2_dev_attr = {
> - static struct omap_hwmod omap2420_mcspi2_hwmod = {
> - 	.name		= "mcspi2_hwmod",
> - 	.mpu_irqs	= omap2420_mcspi2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_mcspi2_mpu_irqs),
> - 	.sdma_reqs	= omap2420_mcspi2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2420_mcspi2_sdma_reqs),
> - 	.main_clk	= "mcspi2_fck",
> -@@ -1811,6 +1811,7 @@ static struct omap_hwmod_class
> omap2420_mcbsp_hwmod_class = {
> - static struct omap_hwmod_irq_info omap2420_mcbsp1_irqs[] = {
> - 	{ .name = "tx", .irq = 59 },
> - 	{ .name = "rx", .irq = 60 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2420_mcbsp1_sdma_chs[] = {
> -@@ -1836,7 +1837,6 @@ static struct omap_hwmod
> omap2420_mcbsp1_hwmod = {
> - 	.name		= "mcbsp1",
> - 	.class		= &omap2420_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2420_mcbsp1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_mcbsp1_irqs),
> - 	.sdma_reqs	= omap2420_mcbsp1_sdma_chs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2420_mcbsp1_sdma_chs),
> - 	.main_clk	= "mcbsp1_fck",
> -@@ -1858,6 +1858,7 @@ static struct omap_hwmod
> omap2420_mcbsp1_hwmod = {
> - static struct omap_hwmod_irq_info omap2420_mcbsp2_irqs[] = {
> - 	{ .name = "tx", .irq = 62 },
> - 	{ .name = "rx", .irq = 63 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2420_mcbsp2_sdma_chs[] = {
> -@@ -1883,7 +1884,6 @@ static struct omap_hwmod
> omap2420_mcbsp2_hwmod = {
> - 	.name		= "mcbsp2",
> - 	.class		= &omap2420_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2420_mcbsp2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2420_mcbsp2_irqs),
> - 	.sdma_reqs	= omap2420_mcbsp2_sdma_chs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2420_mcbsp2_sdma_chs),
> - 	.main_clk	= "mcbsp2_fck",
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -index 9531ef2..2c28468 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -@@ -369,6 +369,7 @@ static struct omap_hwmod_class
> omap2430_timer_hwmod_class = {
> - static struct omap_hwmod omap2430_timer1_hwmod;
> - static struct omap_hwmod_irq_info omap2430_timer1_mpu_irqs[] = {
> - 	{ .irq = 37, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap2430_timer1_addrs[] = {
> -@@ -398,7 +399,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer1_slaves[] = {
> - static struct omap_hwmod omap2430_timer1_hwmod = {
> - 	.name		= "timer1",
> - 	.mpu_irqs	= omap2430_timer1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_timer1_mpu_irqs),
> - 	.main_clk	= "gpt1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -419,6 +419,7 @@ static struct omap_hwmod
> omap2430_timer1_hwmod = {
> - static struct omap_hwmod omap2430_timer2_hwmod;
> - static struct omap_hwmod_irq_info omap2430_timer2_mpu_irqs[] = {
> - 	{ .irq = 38, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer2 */
> -@@ -439,7 +440,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer2_slaves[] = {
> - static struct omap_hwmod omap2430_timer2_hwmod = {
> - 	.name		= "timer2",
> - 	.mpu_irqs	= omap2430_timer2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_timer2_mpu_irqs),
> - 	.main_clk	= "gpt2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -460,6 +460,7 @@ static struct omap_hwmod
> omap2430_timer2_hwmod = {
> - static struct omap_hwmod omap2430_timer3_hwmod;
> - static struct omap_hwmod_irq_info omap2430_timer3_mpu_irqs[] = {
> - 	{ .irq = 39, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer3 */
> -@@ -480,7 +481,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer3_slaves[] = {
> - static struct omap_hwmod omap2430_timer3_hwmod = {
> - 	.name		= "timer3",
> - 	.mpu_irqs	= omap2430_timer3_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_timer3_mpu_irqs),
> - 	.main_clk	= "gpt3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -501,6 +501,7 @@ static struct omap_hwmod
> omap2430_timer3_hwmod = {
> - static struct omap_hwmod omap2430_timer4_hwmod;
> - static struct omap_hwmod_irq_info omap2430_timer4_mpu_irqs[] = {
> - 	{ .irq = 40, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer4 */
> -@@ -521,7 +522,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer4_slaves[] = {
> - static struct omap_hwmod omap2430_timer4_hwmod = {
> - 	.name		= "timer4",
> - 	.mpu_irqs	= omap2430_timer4_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_timer4_mpu_irqs),
> - 	.main_clk	= "gpt4_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -542,6 +542,7 @@ static struct omap_hwmod
> omap2430_timer4_hwmod = {
> - static struct omap_hwmod omap2430_timer5_hwmod;
> - static struct omap_hwmod_irq_info omap2430_timer5_mpu_irqs[] = {
> - 	{ .irq = 41, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer5 */
> -@@ -562,7 +563,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer5_slaves[] = {
> - static struct omap_hwmod omap2430_timer5_hwmod = {
> - 	.name		= "timer5",
> - 	.mpu_irqs	= omap2430_timer5_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_timer5_mpu_irqs),
> - 	.main_clk	= "gpt5_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -583,6 +583,7 @@ static struct omap_hwmod
> omap2430_timer5_hwmod = {
> - static struct omap_hwmod omap2430_timer6_hwmod;
> - static struct omap_hwmod_irq_info omap2430_timer6_mpu_irqs[] = {
> - 	{ .irq = 42, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer6 */
> -@@ -603,7 +604,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer6_slaves[] = {
> - static struct omap_hwmod omap2430_timer6_hwmod = {
> - 	.name		= "timer6",
> - 	.mpu_irqs	= omap2430_timer6_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_timer6_mpu_irqs),
> - 	.main_clk	= "gpt6_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -624,6 +624,7 @@ static struct omap_hwmod
> omap2430_timer6_hwmod = {
> - static struct omap_hwmod omap2430_timer7_hwmod;
> - static struct omap_hwmod_irq_info omap2430_timer7_mpu_irqs[] = {
> - 	{ .irq = 43, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer7 */
> -@@ -644,7 +645,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer7_slaves[] = {
> - static struct omap_hwmod omap2430_timer7_hwmod = {
> - 	.name		= "timer7",
> - 	.mpu_irqs	= omap2430_timer7_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_timer7_mpu_irqs),
> - 	.main_clk	= "gpt7_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -665,6 +665,7 @@ static struct omap_hwmod
> omap2430_timer7_hwmod = {
> - static struct omap_hwmod omap2430_timer8_hwmod;
> - static struct omap_hwmod_irq_info omap2430_timer8_mpu_irqs[] = {
> - 	{ .irq = 44, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer8 */
> -@@ -685,7 +686,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer8_slaves[] = {
> - static struct omap_hwmod omap2430_timer8_hwmod = {
> - 	.name		= "timer8",
> - 	.mpu_irqs	= omap2430_timer8_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_timer8_mpu_irqs),
> - 	.main_clk	= "gpt8_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -706,6 +706,7 @@ static struct omap_hwmod
> omap2430_timer8_hwmod = {
> - static struct omap_hwmod omap2430_timer9_hwmod;
> - static struct omap_hwmod_irq_info omap2430_timer9_mpu_irqs[] = {
> - 	{ .irq = 45, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer9 */
> -@@ -726,7 +727,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer9_slaves[] = {
> - static struct omap_hwmod omap2430_timer9_hwmod = {
> - 	.name		= "timer9",
> - 	.mpu_irqs	= omap2430_timer9_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_timer9_mpu_irqs),
> - 	.main_clk	= "gpt9_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -747,6 +747,7 @@ static struct omap_hwmod
> omap2430_timer9_hwmod = {
> - static struct omap_hwmod omap2430_timer10_hwmod;
> - static struct omap_hwmod_irq_info omap2430_timer10_mpu_irqs[] = {
> - 	{ .irq = 46, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer10 */
> -@@ -767,7 +768,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer10_slaves[] = {
> - static struct omap_hwmod omap2430_timer10_hwmod = {
> - 	.name		= "timer10",
> - 	.mpu_irqs	= omap2430_timer10_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_timer10_mpu_irqs),
> - 	.main_clk	= "gpt10_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -788,6 +788,7 @@ static struct omap_hwmod
> omap2430_timer10_hwmod = {
> - static struct omap_hwmod omap2430_timer11_hwmod;
> - static struct omap_hwmod_irq_info omap2430_timer11_mpu_irqs[] = {
> - 	{ .irq = 47, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer11 */
> -@@ -808,7 +809,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer11_slaves[] = {
> - static struct omap_hwmod omap2430_timer11_hwmod = {
> - 	.name		= "timer11",
> - 	.mpu_irqs	= omap2430_timer11_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_timer11_mpu_irqs),
> - 	.main_clk	= "gpt11_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -829,6 +829,7 @@ static struct omap_hwmod
> omap2430_timer11_hwmod = {
> - static struct omap_hwmod omap2430_timer12_hwmod;
> - static struct omap_hwmod_irq_info omap2430_timer12_mpu_irqs[] = {
> - 	{ .irq = 48, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer12 */
> -@@ -849,7 +850,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer12_slaves[] = {
> - static struct omap_hwmod omap2430_timer12_hwmod = {
> - 	.name		= "timer12",
> - 	.mpu_irqs	= omap2430_timer12_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_timer12_mpu_irqs),
> - 	.main_clk	= "gpt12_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -950,6 +950,7 @@ static struct omap_hwmod_class uart_class = {
> -
> - static struct omap_hwmod_irq_info uart1_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_UART1_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
> -@@ -964,7 +965,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_uart1_slaves[] = {
> - static struct omap_hwmod omap2430_uart1_hwmod = {
> - 	.name		= "uart1",
> - 	.mpu_irqs	= uart1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(uart1_mpu_irqs),
> - 	.sdma_reqs	= uart1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart1_sdma_reqs),
> - 	.main_clk	= "uart1_fck",
> -@@ -987,6 +987,7 @@ static struct omap_hwmod omap2430_uart1_hwmod
> = {
> -
> - static struct omap_hwmod_irq_info uart2_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_UART2_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info uart2_sdma_reqs[] = {
> -@@ -1001,7 +1002,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_uart2_slaves[] = {
> - static struct omap_hwmod omap2430_uart2_hwmod = {
> - 	.name		= "uart2",
> - 	.mpu_irqs	= uart2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(uart2_mpu_irqs),
> - 	.sdma_reqs	= uart2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart2_sdma_reqs),
> - 	.main_clk	= "uart2_fck",
> -@@ -1024,6 +1024,7 @@ static struct omap_hwmod
> omap2430_uart2_hwmod = {
> -
> - static struct omap_hwmod_irq_info uart3_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_UART3_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info uart3_sdma_reqs[] = {
> -@@ -1038,7 +1039,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_uart3_slaves[] = {
> - static struct omap_hwmod omap2430_uart3_hwmod = {
> - 	.name		= "uart3",
> - 	.mpu_irqs	= uart3_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(uart3_mpu_irqs),
> - 	.sdma_reqs	= uart3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart3_sdma_reqs),
> - 	.main_clk	= "uart3_fck",
> -@@ -1152,6 +1152,7 @@ static struct omap_hwmod_class
> omap2430_dispc_hwmod_class = {
> -
> - static struct omap_hwmod_irq_info omap2430_dispc_irqs[] = {
> - 	{ .irq = 25 },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> dss_dispc */
> -@@ -1172,7 +1173,6 @@ static struct omap_hwmod
> omap2430_dss_dispc_hwmod = {
> - 	.name		= "dss_dispc",
> - 	.class		= &omap2430_dispc_hwmod_class,
> - 	.mpu_irqs	= omap2430_dispc_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_dispc_irqs),
> - 	.main_clk	= "dss1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1304,6 +1304,7 @@ static struct omap_i2c_dev_attr i2c_dev_attr = {
> -
> - static struct omap_hwmod_irq_info i2c1_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_I2C1_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info i2c1_sdma_reqs[] = {
> -@@ -1318,7 +1319,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_i2c1_slaves[] = {
> - static struct omap_hwmod omap2430_i2c1_hwmod = {
> - 	.name		= "i2c1",
> - 	.mpu_irqs	= i2c1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(i2c1_mpu_irqs),
> - 	.sdma_reqs	= i2c1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(i2c1_sdma_reqs),
> - 	.main_clk	= "i2chs1_fck",
> -@@ -1350,6 +1350,7 @@ static struct omap_hwmod
> omap2430_i2c1_hwmod = {
> -
> - static struct omap_hwmod_irq_info i2c2_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_I2C2_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info i2c2_sdma_reqs[] = {
> -@@ -1364,7 +1365,6 @@ static struct omap_hwmod_ocp_if
> *omap2430_i2c2_slaves[] = {
> - static struct omap_hwmod omap2430_i2c2_hwmod = {
> - 	.name		= "i2c2",
> - 	.mpu_irqs	= i2c2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(i2c2_mpu_irqs),
> - 	.sdma_reqs	= i2c2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(i2c2_sdma_reqs),
> - 	.main_clk	= "i2chs2_fck",
> -@@ -1504,6 +1504,7 @@ static struct omap_hwmod_class
> omap243x_gpio_hwmod_class = {
> - /* gpio1 */
> - static struct omap_hwmod_irq_info omap243x_gpio1_irqs[] = {
> - 	{ .irq = 29 }, /* INT_24XX_GPIO_BANK1 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2430_gpio1_slaves[] = {
> -@@ -1514,7 +1515,6 @@ static struct omap_hwmod
> omap2430_gpio1_hwmod = {
> - 	.name		= "gpio1",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap243x_gpio1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap243x_gpio1_irqs),
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1535,6 +1535,7 @@ static struct omap_hwmod
> omap2430_gpio1_hwmod = {
> - /* gpio2 */
> - static struct omap_hwmod_irq_info omap243x_gpio2_irqs[] = {
> - 	{ .irq = 30 }, /* INT_24XX_GPIO_BANK2 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2430_gpio2_slaves[] = {
> -@@ -1545,7 +1546,6 @@ static struct omap_hwmod
> omap2430_gpio2_hwmod = {
> - 	.name		= "gpio2",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap243x_gpio2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap243x_gpio2_irqs),
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1566,6 +1566,7 @@ static struct omap_hwmod
> omap2430_gpio2_hwmod = {
> - /* gpio3 */
> - static struct omap_hwmod_irq_info omap243x_gpio3_irqs[] = {
> - 	{ .irq = 31 }, /* INT_24XX_GPIO_BANK3 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2430_gpio3_slaves[] = {
> -@@ -1576,7 +1577,6 @@ static struct omap_hwmod
> omap2430_gpio3_hwmod = {
> - 	.name		= "gpio3",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap243x_gpio3_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap243x_gpio3_irqs),
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1597,6 +1597,7 @@ static struct omap_hwmod
> omap2430_gpio3_hwmod = {
> - /* gpio4 */
> - static struct omap_hwmod_irq_info omap243x_gpio4_irqs[] = {
> - 	{ .irq = 32 }, /* INT_24XX_GPIO_BANK4 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2430_gpio4_slaves[] = {
> -@@ -1607,7 +1608,6 @@ static struct omap_hwmod
> omap2430_gpio4_hwmod = {
> - 	.name		= "gpio4",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap243x_gpio4_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap243x_gpio4_irqs),
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1628,6 +1628,7 @@ static struct omap_hwmod
> omap2430_gpio4_hwmod = {
> - /* gpio5 */
> - static struct omap_hwmod_irq_info omap243x_gpio5_irqs[] = {
> - 	{ .irq = 33 }, /* INT_24XX_GPIO_BANK5 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2430_gpio5_slaves[] = {
> -@@ -1638,7 +1639,6 @@ static struct omap_hwmod
> omap2430_gpio5_hwmod = {
> - 	.name		= "gpio5",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap243x_gpio5_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap243x_gpio5_irqs),
> - 	.main_clk	= "gpio5_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1685,6 +1685,7 @@ static struct omap_hwmod_irq_info
> omap2430_dma_system_irqs[] = {
> - 	{ .name = "1", .irq = 13 }, /* INT_24XX_SDMA_IRQ1 */
> - 	{ .name = "2", .irq = 14 }, /* INT_24XX_SDMA_IRQ2 */
> - 	{ .name = "3", .irq = 15 }, /* INT_24XX_SDMA_IRQ3 */
> -+	{ .irq = -1 }
> - };
> -
> - /* dma_system -> L3 */
> -@@ -1718,7 +1719,6 @@ static struct omap_hwmod
> omap2430_dma_system_hwmod = {
> - 	.name		= "dma",
> - 	.class		= &omap2430_dma_hwmod_class,
> - 	.mpu_irqs	= omap2430_dma_system_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_dma_system_irqs),
> - 	.main_clk	= "core_l3_ck",
> - 	.slaves		= omap2430_dma_system_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_dma_system_slaves),
> -@@ -1754,6 +1754,7 @@ static struct omap_hwmod_class
> omap2430_mailbox_hwmod_class = {
> - static struct omap_hwmod omap2430_mailbox_hwmod;
> - static struct omap_hwmod_irq_info omap2430_mailbox_irqs[] = {
> - 	{ .irq = 26 },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> mailbox */
> -@@ -1773,7 +1774,6 @@ static struct omap_hwmod
> omap2430_mailbox_hwmod = {
> - 	.name		= "mailbox",
> - 	.class		= &omap2430_mailbox_hwmod_class,
> - 	.mpu_irqs	= omap2430_mailbox_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_mailbox_irqs),
> - 	.main_clk	= "mailboxes_ick",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1815,6 +1815,7 @@ static struct omap_hwmod_class
> omap2430_mcspi_class = {
> - /* mcspi1 */
> - static struct omap_hwmod_irq_info omap2430_mcspi1_mpu_irqs[] = {
> - 	{ .irq = 65 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2430_mcspi1_sdma_reqs[] = {
> -@@ -1839,7 +1840,6 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi1_dev_attr = {
> - static struct omap_hwmod omap2430_mcspi1_hwmod = {
> - 	.name		= "mcspi1_hwmod",
> - 	.mpu_irqs	= omap2430_mcspi1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_mcspi1_mpu_irqs),
> - 	.sdma_reqs	= omap2430_mcspi1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcspi1_sdma_reqs),
> - 	.main_clk	= "mcspi1_fck",
> -@@ -1862,6 +1862,7 @@ static struct omap_hwmod
> omap2430_mcspi1_hwmod = {
> - /* mcspi2 */
> - static struct omap_hwmod_irq_info omap2430_mcspi2_mpu_irqs[] = {
> - 	{ .irq = 66 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2430_mcspi2_sdma_reqs[] = {
> -@@ -1882,7 +1883,6 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi2_dev_attr = {
> - static struct omap_hwmod omap2430_mcspi2_hwmod = {
> - 	.name		= "mcspi2_hwmod",
> - 	.mpu_irqs	= omap2430_mcspi2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_mcspi2_mpu_irqs),
> - 	.sdma_reqs	= omap2430_mcspi2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcspi2_sdma_reqs),
> - 	.main_clk	= "mcspi2_fck",
> -@@ -1905,6 +1905,7 @@ static struct omap_hwmod
> omap2430_mcspi2_hwmod = {
> - /* mcspi3 */
> - static struct omap_hwmod_irq_info omap2430_mcspi3_mpu_irqs[] = {
> - 	{ .irq = 91 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2430_mcspi3_sdma_reqs[] = {
> -@@ -1925,7 +1926,6 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi3_dev_attr = {
> - static struct omap_hwmod omap2430_mcspi3_hwmod = {
> - 	.name		= "mcspi3_hwmod",
> - 	.mpu_irqs	= omap2430_mcspi3_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_mcspi3_mpu_irqs),
> - 	.sdma_reqs	= omap2430_mcspi3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcspi3_sdma_reqs),
> - 	.main_clk	= "mcspi3_fck",
> -@@ -1970,12 +1970,12 @@ static struct omap_hwmod_irq_info
> omap2430_usbhsotg_mpu_irqs[] = {
> -
> - 	{ .name = "mc", .irq = 92 },
> - 	{ .name = "dma", .irq = 93 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod omap2430_usbhsotg_hwmod = {
> - 	.name		= "usb_otg_hs",
> - 	.mpu_irqs	= omap2430_usbhsotg_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_usbhsotg_mpu_irqs),
> - 	.main_clk	= "usbhs_ick",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2025,6 +2025,7 @@ static struct omap_hwmod_irq_info
> omap2430_mcbsp1_irqs[] = {
> - 	{ .name = "rx",		.irq = 60 },
> - 	{ .name = "ovr",	.irq = 61 },
> - 	{ .name = "common",	.irq = 64 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2430_mcbsp1_sdma_chs[] = {
> -@@ -2050,7 +2051,6 @@ static struct omap_hwmod
> omap2430_mcbsp1_hwmod = {
> - 	.name		= "mcbsp1",
> - 	.class		= &omap2430_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2430_mcbsp1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_mcbsp1_irqs),
> - 	.sdma_reqs	= omap2430_mcbsp1_sdma_chs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcbsp1_sdma_chs),
> - 	.main_clk	= "mcbsp1_fck",
> -@@ -2073,6 +2073,7 @@ static struct omap_hwmod_irq_info
> omap2430_mcbsp2_irqs[] = {
> - 	{ .name = "tx",		.irq = 62 },
> - 	{ .name = "rx",		.irq = 63 },
> - 	{ .name = "common",	.irq = 16 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2430_mcbsp2_sdma_chs[] = {
> -@@ -2098,7 +2099,6 @@ static struct omap_hwmod
> omap2430_mcbsp2_hwmod = {
> - 	.name		= "mcbsp2",
> - 	.class		= &omap2430_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2430_mcbsp2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_mcbsp2_irqs),
> - 	.sdma_reqs	= omap2430_mcbsp2_sdma_chs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcbsp2_sdma_chs),
> - 	.main_clk	= "mcbsp2_fck",
> -@@ -2121,6 +2121,7 @@ static struct omap_hwmod_irq_info
> omap2430_mcbsp3_irqs[] = {
> - 	{ .name = "tx",		.irq = 89 },
> - 	{ .name = "rx",		.irq = 90 },
> - 	{ .name = "common",	.irq = 17 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2430_mcbsp3_sdma_chs[] = {
> -@@ -2156,7 +2157,6 @@ static struct omap_hwmod
> omap2430_mcbsp3_hwmod = {
> - 	.name		= "mcbsp3",
> - 	.class		= &omap2430_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2430_mcbsp3_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_mcbsp3_irqs),
> - 	.sdma_reqs	= omap2430_mcbsp3_sdma_chs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcbsp3_sdma_chs),
> - 	.main_clk	= "mcbsp3_fck",
> -@@ -2179,6 +2179,7 @@ static struct omap_hwmod_irq_info
> omap2430_mcbsp4_irqs[] = {
> - 	{ .name = "tx",		.irq = 54 },
> - 	{ .name = "rx",		.irq = 55 },
> - 	{ .name = "common",	.irq = 18 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2430_mcbsp4_sdma_chs[] = {
> -@@ -2214,7 +2215,6 @@ static struct omap_hwmod
> omap2430_mcbsp4_hwmod = {
> - 	.name		= "mcbsp4",
> - 	.class		= &omap2430_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2430_mcbsp4_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_mcbsp4_irqs),
> - 	.sdma_reqs	= omap2430_mcbsp4_sdma_chs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcbsp4_sdma_chs),
> - 	.main_clk	= "mcbsp4_fck",
> -@@ -2237,6 +2237,7 @@ static struct omap_hwmod_irq_info
> omap2430_mcbsp5_irqs[] = {
> - 	{ .name = "tx",		.irq = 81 },
> - 	{ .name = "rx",		.irq = 82 },
> - 	{ .name = "common",	.irq = 19 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2430_mcbsp5_sdma_chs[] = {
> -@@ -2272,7 +2273,6 @@ static struct omap_hwmod
> omap2430_mcbsp5_hwmod = {
> - 	.name		= "mcbsp5",
> - 	.class		= &omap2430_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2430_mcbsp5_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_mcbsp5_irqs),
> - 	.sdma_reqs	= omap2430_mcbsp5_sdma_chs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcbsp5_sdma_chs),
> - 	.main_clk	= "mcbsp5_fck",
> -@@ -2312,6 +2312,7 @@ static struct omap_hwmod_class
> omap2430_mmc_class = {
> -
> - static struct omap_hwmod_irq_info omap2430_mmc1_mpu_irqs[] = {
> - 	{ .irq = 83 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2430_mmc1_sdma_reqs[] = {
> -@@ -2335,7 +2336,6 @@ static struct omap_hwmod
> omap2430_mmc1_hwmod = {
> - 	.name		= "mmc1",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap2430_mmc1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_mmc1_mpu_irqs),
> - 	.sdma_reqs	= omap2430_mmc1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mmc1_sdma_reqs),
> - 	.opt_clks	= omap2430_mmc1_opt_clks,
> -@@ -2361,6 +2361,7 @@ static struct omap_hwmod
> omap2430_mmc1_hwmod = {
> -
> - static struct omap_hwmod_irq_info omap2430_mmc2_mpu_irqs[] = {
> - 	{ .irq = 86 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap2430_mmc2_sdma_reqs[] = {
> -@@ -2380,7 +2381,6 @@ static struct omap_hwmod
> omap2430_mmc2_hwmod = {
> - 	.name		= "mmc2",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap2430_mmc2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap2430_mmc2_mpu_irqs),
> - 	.sdma_reqs	= omap2430_mmc2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mmc2_sdma_reqs),
> - 	.opt_clks	= omap2430_mmc2_opt_clks,
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -index 791f9b2..cc178b5 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -@@ -103,6 +103,7 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l3_main__l4_per = {
> - static struct omap_hwmod_irq_info omap3xxx_l3_main_irqs[] = {
> - 	{ .irq = INT_34XX_L3_DBG_IRQ },
> - 	{ .irq = INT_34XX_L3_APP_IRQ },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_l3_main_addrs[] = {
> -@@ -151,7 +152,6 @@ static struct omap_hwmod
> omap3xxx_l3_main_hwmod = {
> - 	.name		= "l3_main",
> - 	.class		= &l3_hwmod_class,
> - 	.mpu_irqs       = omap3xxx_l3_main_irqs,
> --	.mpu_irqs_cnt   = ARRAY_SIZE(omap3xxx_l3_main_irqs),
> - 	.masters	= omap3xxx_l3_main_masters,
> - 	.masters_cnt	= ARRAY_SIZE(omap3xxx_l3_main_masters),
> - 	.slaves		= omap3xxx_l3_main_slaves,
> -@@ -574,6 +574,7 @@ static struct omap_hwmod_class
> omap3xxx_timer_hwmod_class = {
> - static struct omap_hwmod omap3xxx_timer1_hwmod;
> - static struct omap_hwmod_irq_info omap3xxx_timer1_mpu_irqs[] = {
> - 	{ .irq = 37, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer1_addrs[] = {
> -@@ -603,7 +604,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer1_slaves[] = {
> - static struct omap_hwmod omap3xxx_timer1_hwmod = {
> - 	.name		= "timer1",
> - 	.mpu_irqs	= omap3xxx_timer1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_timer1_mpu_irqs),
> - 	.main_clk	= "gpt1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -624,6 +624,7 @@ static struct omap_hwmod
> omap3xxx_timer1_hwmod = {
> - static struct omap_hwmod omap3xxx_timer2_hwmod;
> - static struct omap_hwmod_irq_info omap3xxx_timer2_mpu_irqs[] = {
> - 	{ .irq = 38, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer2_addrs[] = {
> -@@ -653,7 +654,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer2_slaves[] = {
> - static struct omap_hwmod omap3xxx_timer2_hwmod = {
> - 	.name		= "timer2",
> - 	.mpu_irqs	= omap3xxx_timer2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_timer2_mpu_irqs),
> - 	.main_clk	= "gpt2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -674,6 +674,7 @@ static struct omap_hwmod
> omap3xxx_timer2_hwmod = {
> - static struct omap_hwmod omap3xxx_timer3_hwmod;
> - static struct omap_hwmod_irq_info omap3xxx_timer3_mpu_irqs[] = {
> - 	{ .irq = 39, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer3_addrs[] = {
> -@@ -703,7 +704,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer3_slaves[] = {
> - static struct omap_hwmod omap3xxx_timer3_hwmod = {
> - 	.name		= "timer3",
> - 	.mpu_irqs	= omap3xxx_timer3_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_timer3_mpu_irqs),
> - 	.main_clk	= "gpt3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -724,6 +724,7 @@ static struct omap_hwmod
> omap3xxx_timer3_hwmod = {
> - static struct omap_hwmod omap3xxx_timer4_hwmod;
> - static struct omap_hwmod_irq_info omap3xxx_timer4_mpu_irqs[] = {
> - 	{ .irq = 40, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer4_addrs[] = {
> -@@ -753,7 +754,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer4_slaves[] = {
> - static struct omap_hwmod omap3xxx_timer4_hwmod = {
> - 	.name		= "timer4",
> - 	.mpu_irqs	= omap3xxx_timer4_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_timer4_mpu_irqs),
> - 	.main_clk	= "gpt4_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -774,6 +774,7 @@ static struct omap_hwmod
> omap3xxx_timer4_hwmod = {
> - static struct omap_hwmod omap3xxx_timer5_hwmod;
> - static struct omap_hwmod_irq_info omap3xxx_timer5_mpu_irqs[] = {
> - 	{ .irq = 41, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer5_addrs[] = {
> -@@ -803,7 +804,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer5_slaves[] = {
> - static struct omap_hwmod omap3xxx_timer5_hwmod = {
> - 	.name		= "timer5",
> - 	.mpu_irqs	= omap3xxx_timer5_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_timer5_mpu_irqs),
> - 	.main_clk	= "gpt5_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -824,6 +824,7 @@ static struct omap_hwmod
> omap3xxx_timer5_hwmod = {
> - static struct omap_hwmod omap3xxx_timer6_hwmod;
> - static struct omap_hwmod_irq_info omap3xxx_timer6_mpu_irqs[] = {
> - 	{ .irq = 42, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer6_addrs[] = {
> -@@ -853,7 +854,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer6_slaves[] = {
> - static struct omap_hwmod omap3xxx_timer6_hwmod = {
> - 	.name		= "timer6",
> - 	.mpu_irqs	= omap3xxx_timer6_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_timer6_mpu_irqs),
> - 	.main_clk	= "gpt6_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -874,6 +874,7 @@ static struct omap_hwmod
> omap3xxx_timer6_hwmod = {
> - static struct omap_hwmod omap3xxx_timer7_hwmod;
> - static struct omap_hwmod_irq_info omap3xxx_timer7_mpu_irqs[] = {
> - 	{ .irq = 43, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer7_addrs[] = {
> -@@ -903,7 +904,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer7_slaves[] = {
> - static struct omap_hwmod omap3xxx_timer7_hwmod = {
> - 	.name		= "timer7",
> - 	.mpu_irqs	= omap3xxx_timer7_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_timer7_mpu_irqs),
> - 	.main_clk	= "gpt7_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -924,6 +924,7 @@ static struct omap_hwmod
> omap3xxx_timer7_hwmod = {
> - static struct omap_hwmod omap3xxx_timer8_hwmod;
> - static struct omap_hwmod_irq_info omap3xxx_timer8_mpu_irqs[] = {
> - 	{ .irq = 44, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer8_addrs[] = {
> -@@ -953,7 +954,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer8_slaves[] = {
> - static struct omap_hwmod omap3xxx_timer8_hwmod = {
> - 	.name		= "timer8",
> - 	.mpu_irqs	= omap3xxx_timer8_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_timer8_mpu_irqs),
> - 	.main_clk	= "gpt8_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -974,6 +974,7 @@ static struct omap_hwmod
> omap3xxx_timer8_hwmod = {
> - static struct omap_hwmod omap3xxx_timer9_hwmod;
> - static struct omap_hwmod_irq_info omap3xxx_timer9_mpu_irqs[] = {
> - 	{ .irq = 45, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer9_addrs[] = {
> -@@ -1003,7 +1004,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer9_slaves[] = {
> - static struct omap_hwmod omap3xxx_timer9_hwmod = {
> - 	.name		= "timer9",
> - 	.mpu_irqs	= omap3xxx_timer9_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_timer9_mpu_irqs),
> - 	.main_clk	= "gpt9_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1024,6 +1024,7 @@ static struct omap_hwmod
> omap3xxx_timer9_hwmod = {
> - static struct omap_hwmod omap3xxx_timer10_hwmod;
> - static struct omap_hwmod_irq_info omap3xxx_timer10_mpu_irqs[] = {
> - 	{ .irq = 46, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer10 */
> -@@ -1044,7 +1045,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer10_slaves[] = {
> - static struct omap_hwmod omap3xxx_timer10_hwmod = {
> - 	.name		= "timer10",
> - 	.mpu_irqs	= omap3xxx_timer10_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_timer10_mpu_irqs),
> - 	.main_clk	= "gpt10_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1065,6 +1065,7 @@ static struct omap_hwmod
> omap3xxx_timer10_hwmod = {
> - static struct omap_hwmod omap3xxx_timer11_hwmod;
> - static struct omap_hwmod_irq_info omap3xxx_timer11_mpu_irqs[] = {
> - 	{ .irq = 47, },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> timer11 */
> -@@ -1085,7 +1086,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer11_slaves[] = {
> - static struct omap_hwmod omap3xxx_timer11_hwmod = {
> - 	.name		= "timer11",
> - 	.mpu_irqs	= omap3xxx_timer11_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_timer11_mpu_irqs),
> - 	.main_clk	= "gpt11_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1106,6 +1106,7 @@ static struct omap_hwmod
> omap3xxx_timer11_hwmod = {
> - static struct omap_hwmod omap3xxx_timer12_hwmod;
> - static struct omap_hwmod_irq_info omap3xxx_timer12_mpu_irqs[] = {
> - 	{ .irq = 95, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer12_addrs[] = {
> -@@ -1135,7 +1136,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer12_slaves[] = {
> - static struct omap_hwmod omap3xxx_timer12_hwmod = {
> - 	.name		= "timer12",
> - 	.mpu_irqs	= omap3xxx_timer12_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_timer12_mpu_irqs),
> - 	.main_clk	= "gpt12_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1256,6 +1256,7 @@ static struct omap_hwmod_class uart_class = {
> -
> - static struct omap_hwmod_irq_info uart1_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_UART1_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
> -@@ -1270,7 +1271,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_uart1_slaves[] = {
> - static struct omap_hwmod omap3xxx_uart1_hwmod = {
> - 	.name		= "uart1",
> - 	.mpu_irqs	= uart1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(uart1_mpu_irqs),
> - 	.sdma_reqs	= uart1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart1_sdma_reqs),
> - 	.main_clk	= "uart1_fck",
> -@@ -1293,6 +1293,7 @@ static struct omap_hwmod
> omap3xxx_uart1_hwmod = {
> -
> - static struct omap_hwmod_irq_info uart2_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_UART2_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info uart2_sdma_reqs[] = {
> -@@ -1307,7 +1308,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_uart2_slaves[] = {
> - static struct omap_hwmod omap3xxx_uart2_hwmod = {
> - 	.name		= "uart2",
> - 	.mpu_irqs	= uart2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(uart2_mpu_irqs),
> - 	.sdma_reqs	= uart2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart2_sdma_reqs),
> - 	.main_clk	= "uart2_fck",
> -@@ -1330,6 +1330,7 @@ static struct omap_hwmod
> omap3xxx_uart2_hwmod = {
> -
> - static struct omap_hwmod_irq_info uart3_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_UART3_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info uart3_sdma_reqs[] = {
> -@@ -1344,7 +1345,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_uart3_slaves[] = {
> - static struct omap_hwmod omap3xxx_uart3_hwmod = {
> - 	.name		= "uart3",
> - 	.mpu_irqs	= uart3_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(uart3_mpu_irqs),
> - 	.sdma_reqs	= uart3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart3_sdma_reqs),
> - 	.main_clk	= "uart3_fck",
> -@@ -1367,6 +1367,7 @@ static struct omap_hwmod
> omap3xxx_uart3_hwmod = {
> -
> - static struct omap_hwmod_irq_info uart4_mpu_irqs[] = {
> - 	{ .irq = INT_36XX_UART4_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info uart4_sdma_reqs[] = {
> -@@ -1381,7 +1382,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_uart4_slaves[] = {
> - static struct omap_hwmod omap3xxx_uart4_hwmod = {
> - 	.name		= "uart4",
> - 	.mpu_irqs	= uart4_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(uart4_mpu_irqs),
> - 	.sdma_reqs	= uart4_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart4_sdma_reqs),
> - 	.main_clk	= "uart4_fck",
> -@@ -1557,6 +1557,7 @@ static struct omap_hwmod_class
> omap3xxx_dispc_hwmod_class = {
> -
> - static struct omap_hwmod_irq_info omap3xxx_dispc_irqs[] = {
> - 	{ .irq = 25 },
> -+	{ .irq = -1 }
> - };
> -
> - /* l4_core -> dss_dispc */
> -@@ -1584,7 +1585,6 @@ static struct omap_hwmod
> omap3xxx_dss_dispc_hwmod = {
> - 	.name		= "dss_dispc",
> - 	.class		= &omap3xxx_dispc_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_dispc_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_dispc_irqs),
> - 	.main_clk	= "dss1_alwon_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1612,6 +1612,7 @@ static struct omap_hwmod_class
> omap3xxx_dsi_hwmod_class = {
> -
> - static struct omap_hwmod_irq_info omap3xxx_dsi1_irqs[] = {
> - 	{ .irq = 25 },
> -+	{ .irq = -1 }
> - };
> -
> - /* dss_dsi1 */
> -@@ -1648,7 +1649,6 @@ static struct omap_hwmod
> omap3xxx_dss_dsi1_hwmod = {
> - 	.name		= "dss_dsi1",
> - 	.class		= &omap3xxx_dsi_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_dsi1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_dsi1_irqs),
> - 	.main_clk	= "dss1_alwon_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1783,6 +1783,7 @@ static struct omap_i2c_dev_attr i2c1_dev_attr = {
> -
> - static struct omap_hwmod_irq_info i2c1_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_I2C1_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info i2c1_sdma_reqs[] = {
> -@@ -1797,7 +1798,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_i2c1_slaves[] = {
> - static struct omap_hwmod omap3xxx_i2c1_hwmod = {
> - 	.name		= "i2c1",
> - 	.mpu_irqs	= i2c1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(i2c1_mpu_irqs),
> - 	.sdma_reqs	= i2c1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(i2c1_sdma_reqs),
> - 	.main_clk	= "i2c1_fck",
> -@@ -1825,6 +1825,7 @@ static struct omap_i2c_dev_attr i2c2_dev_attr = {
> -
> - static struct omap_hwmod_irq_info i2c2_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_I2C2_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info i2c2_sdma_reqs[] = {
> -@@ -1839,7 +1840,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_i2c2_slaves[] = {
> - static struct omap_hwmod omap3xxx_i2c2_hwmod = {
> - 	.name		= "i2c2",
> - 	.mpu_irqs	= i2c2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(i2c2_mpu_irqs),
> - 	.sdma_reqs	= i2c2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(i2c2_sdma_reqs),
> - 	.main_clk	= "i2c2_fck",
> -@@ -1867,6 +1867,7 @@ static struct omap_i2c_dev_attr i2c3_dev_attr = {
> -
> - static struct omap_hwmod_irq_info i2c3_mpu_irqs[] = {
> - 	{ .irq = INT_34XX_I2C3_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info i2c3_sdma_reqs[] = {
> -@@ -1881,7 +1882,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_i2c3_slaves[] = {
> - static struct omap_hwmod omap3xxx_i2c3_hwmod = {
> - 	.name		= "i2c3",
> - 	.mpu_irqs	= i2c3_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(i2c3_mpu_irqs),
> - 	.sdma_reqs	= i2c3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(i2c3_sdma_reqs),
> - 	.main_clk	= "i2c3_fck",
> -@@ -2034,6 +2034,7 @@ static struct omap_gpio_dev_attr gpio_dev_attr = {
> - /* gpio1 */
> - static struct omap_hwmod_irq_info omap3xxx_gpio1_irqs[] = {
> - 	{ .irq = 29 }, /* INT_34XX_GPIO_BANK1 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_opt_clk gpio1_opt_clks[] = {
> -@@ -2048,7 +2049,6 @@ static struct omap_hwmod
> omap3xxx_gpio1_hwmod = {
> - 	.name		= "gpio1",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap3xxx_gpio1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_gpio1_irqs),
> - 	.main_clk	= "gpio1_ick",
> - 	.opt_clks	= gpio1_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(gpio1_opt_clks),
> -@@ -2071,6 +2071,7 @@ static struct omap_hwmod
> omap3xxx_gpio1_hwmod = {
> - /* gpio2 */
> - static struct omap_hwmod_irq_info omap3xxx_gpio2_irqs[] = {
> - 	{ .irq = 30 }, /* INT_34XX_GPIO_BANK2 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_opt_clk gpio2_opt_clks[] = {
> -@@ -2085,7 +2086,6 @@ static struct omap_hwmod
> omap3xxx_gpio2_hwmod = {
> - 	.name		= "gpio2",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap3xxx_gpio2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_gpio2_irqs),
> - 	.main_clk	= "gpio2_ick",
> - 	.opt_clks	= gpio2_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(gpio2_opt_clks),
> -@@ -2108,6 +2108,7 @@ static struct omap_hwmod
> omap3xxx_gpio2_hwmod = {
> - /* gpio3 */
> - static struct omap_hwmod_irq_info omap3xxx_gpio3_irqs[] = {
> - 	{ .irq = 31 }, /* INT_34XX_GPIO_BANK3 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_opt_clk gpio3_opt_clks[] = {
> -@@ -2122,7 +2123,6 @@ static struct omap_hwmod
> omap3xxx_gpio3_hwmod = {
> - 	.name		= "gpio3",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap3xxx_gpio3_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_gpio3_irqs),
> - 	.main_clk	= "gpio3_ick",
> - 	.opt_clks	= gpio3_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(gpio3_opt_clks),
> -@@ -2145,6 +2145,7 @@ static struct omap_hwmod
> omap3xxx_gpio3_hwmod = {
> - /* gpio4 */
> - static struct omap_hwmod_irq_info omap3xxx_gpio4_irqs[] = {
> - 	{ .irq = 32 }, /* INT_34XX_GPIO_BANK4 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_opt_clk gpio4_opt_clks[] = {
> -@@ -2159,7 +2160,6 @@ static struct omap_hwmod
> omap3xxx_gpio4_hwmod = {
> - 	.name		= "gpio4",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap3xxx_gpio4_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_gpio4_irqs),
> - 	.main_clk	= "gpio4_ick",
> - 	.opt_clks	= gpio4_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(gpio4_opt_clks),
> -@@ -2182,6 +2182,7 @@ static struct omap_hwmod
> omap3xxx_gpio4_hwmod = {
> - /* gpio5 */
> - static struct omap_hwmod_irq_info omap3xxx_gpio5_irqs[] = {
> - 	{ .irq = 33 }, /* INT_34XX_GPIO_BANK5 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_opt_clk gpio5_opt_clks[] = {
> -@@ -2196,7 +2197,6 @@ static struct omap_hwmod
> omap3xxx_gpio5_hwmod = {
> - 	.name		= "gpio5",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap3xxx_gpio5_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_gpio5_irqs),
> - 	.main_clk	= "gpio5_ick",
> - 	.opt_clks	= gpio5_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(gpio5_opt_clks),
> -@@ -2219,6 +2219,7 @@ static struct omap_hwmod
> omap3xxx_gpio5_hwmod = {
> - /* gpio6 */
> - static struct omap_hwmod_irq_info omap3xxx_gpio6_irqs[] = {
> - 	{ .irq = 34 }, /* INT_34XX_GPIO_BANK6 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_opt_clk gpio6_opt_clks[] = {
> -@@ -2233,7 +2234,6 @@ static struct omap_hwmod
> omap3xxx_gpio6_hwmod = {
> - 	.name		= "gpio6",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap3xxx_gpio6_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_gpio6_irqs),
> - 	.main_clk	= "gpio6_ick",
> - 	.opt_clks	= gpio6_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(gpio6_opt_clks),
> -@@ -2292,6 +2292,7 @@ static struct omap_hwmod_irq_info
> omap3xxx_dma_system_irqs[] = {
> - 	{ .name = "1", .irq = 13 }, /* INT_24XX_SDMA_IRQ1 */
> - 	{ .name = "2", .irq = 14 }, /* INT_24XX_SDMA_IRQ2 */
> - 	{ .name = "3", .irq = 15 }, /* INT_24XX_SDMA_IRQ3 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_dma_system_addrs[] = {
> -@@ -2326,7 +2327,6 @@ static struct omap_hwmod
> omap3xxx_dma_system_hwmod = {
> - 	.name		= "dma",
> - 	.class		= &omap3xxx_dma_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_dma_system_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_dma_system_irqs),
> - 	.main_clk	= "core_l3_ick",
> - 	.prcm = {
> - 		.omap2 = {
> -@@ -2371,6 +2371,7 @@ static struct omap_hwmod_irq_info
> omap3xxx_mcbsp1_irqs[] = {
> - 	{ .name = "irq", .irq = 16 },
> - 	{ .name = "tx", .irq = 59 },
> - 	{ .name = "rx", .irq = 60 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap3xxx_mcbsp1_sdma_chs[] = {
> -@@ -2406,7 +2407,6 @@ static struct omap_hwmod
> omap3xxx_mcbsp1_hwmod = {
> - 	.name		= "mcbsp1",
> - 	.class		= &omap3xxx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp1_irqs),
> - 	.sdma_reqs	= omap3xxx_mcbsp1_sdma_chs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp1_sdma_chs),
> - 	.main_clk	= "mcbsp1_fck",
> -@@ -2429,6 +2429,7 @@ static struct omap_hwmod_irq_info
> omap3xxx_mcbsp2_irqs[] = {
> - 	{ .name = "irq", .irq = 17 },
> - 	{ .name = "tx", .irq = 62 },
> - 	{ .name = "rx", .irq = 63 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap3xxx_mcbsp2_sdma_chs[] = {
> -@@ -2469,7 +2470,6 @@ static struct omap_hwmod
> omap3xxx_mcbsp2_hwmod = {
> - 	.name		= "mcbsp2",
> - 	.class		= &omap3xxx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp2_irqs),
> - 	.sdma_reqs	= omap3xxx_mcbsp2_sdma_chs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp2_sdma_chs),
> - 	.main_clk	= "mcbsp2_fck",
> -@@ -2493,6 +2493,7 @@ static struct omap_hwmod_irq_info
> omap3xxx_mcbsp3_irqs[] = {
> - 	{ .name = "irq", .irq = 22 },
> - 	{ .name = "tx", .irq = 89 },
> - 	{ .name = "rx", .irq = 90 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap3xxx_mcbsp3_sdma_chs[] = {
> -@@ -2532,7 +2533,6 @@ static struct omap_hwmod
> omap3xxx_mcbsp3_hwmod = {
> - 	.name		= "mcbsp3",
> - 	.class		= &omap3xxx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp3_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp3_irqs),
> - 	.sdma_reqs	= omap3xxx_mcbsp3_sdma_chs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp3_sdma_chs),
> - 	.main_clk	= "mcbsp3_fck",
> -@@ -2556,6 +2556,7 @@ static struct omap_hwmod_irq_info
> omap3xxx_mcbsp4_irqs[] = {
> - 	{ .name = "irq", .irq = 23 },
> - 	{ .name = "tx", .irq = 54 },
> - 	{ .name = "rx", .irq = 55 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap3xxx_mcbsp4_sdma_chs[] = {
> -@@ -2591,7 +2592,6 @@ static struct omap_hwmod
> omap3xxx_mcbsp4_hwmod = {
> - 	.name		= "mcbsp4",
> - 	.class		= &omap3xxx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp4_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp4_irqs),
> - 	.sdma_reqs	= omap3xxx_mcbsp4_sdma_chs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp4_sdma_chs),
> - 	.main_clk	= "mcbsp4_fck",
> -@@ -2614,6 +2614,7 @@ static struct omap_hwmod_irq_info
> omap3xxx_mcbsp5_irqs[] = {
> - 	{ .name = "irq", .irq = 27 },
> - 	{ .name = "tx", .irq = 81 },
> - 	{ .name = "rx", .irq = 82 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap3xxx_mcbsp5_sdma_chs[] = {
> -@@ -2649,7 +2650,6 @@ static struct omap_hwmod
> omap3xxx_mcbsp5_hwmod = {
> - 	.name		= "mcbsp5",
> - 	.class		= &omap3xxx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp5_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp5_irqs),
> - 	.sdma_reqs	= omap3xxx_mcbsp5_sdma_chs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp5_sdma_chs),
> - 	.main_clk	= "mcbsp5_fck",
> -@@ -2682,6 +2682,7 @@ static struct omap_hwmod_class
> omap3xxx_mcbsp_sidetone_hwmod_class = {
> - /* mcbsp2_sidetone */
> - static struct omap_hwmod_irq_info omap3xxx_mcbsp2_sidetone_irqs[] = {
> - 	{ .name = "irq", .irq = 4 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_mcbsp2_sidetone_addrs[]
> = {
> -@@ -2712,7 +2713,6 @@ static struct omap_hwmod
> omap3xxx_mcbsp2_sidetone_hwmod = {
> - 	.name		= "mcbsp2_sidetone",
> - 	.class		= &omap3xxx_mcbsp_sidetone_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp2_sidetone_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp2_sidetone_irqs),
> - 	.main_clk	= "mcbsp2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2731,6 +2731,7 @@ static struct omap_hwmod
> omap3xxx_mcbsp2_sidetone_hwmod = {
> - /* mcbsp3_sidetone */
> - static struct omap_hwmod_irq_info omap3xxx_mcbsp3_sidetone_irqs[] = {
> - 	{ .name = "irq", .irq = 5 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_mcbsp3_sidetone_addrs[]
> = {
> -@@ -2761,7 +2762,6 @@ static struct omap_hwmod
> omap3xxx_mcbsp3_sidetone_hwmod = {
> - 	.name		= "mcbsp3_sidetone",
> - 	.class		= &omap3xxx_mcbsp_sidetone_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp3_sidetone_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp3_sidetone_irqs),
> - 	.main_clk	= "mcbsp3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2931,6 +2931,7 @@ static struct omap_hwmod_class
> omap3xxx_mailbox_hwmod_class = {
> - static struct omap_hwmod omap3xxx_mailbox_hwmod;
> - static struct omap_hwmod_irq_info omap3xxx_mailbox_irqs[] = {
> - 	{ .irq = 26 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_mailbox_addrs[] = {
> -@@ -2959,7 +2960,6 @@ static struct omap_hwmod
> omap3xxx_mailbox_hwmod = {
> - 	.name		= "mailbox",
> - 	.class		= &omap3xxx_mailbox_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mailbox_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_mailbox_irqs),
> - 	.main_clk	= "mailboxes_ick",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -3046,6 +3046,7 @@ static struct omap_hwmod_class
> omap34xx_mcspi_class = {
> - /* mcspi1 */
> - static struct omap_hwmod_irq_info omap34xx_mcspi1_mpu_irqs[] = {
> - 	{ .name = "irq", .irq = 65 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap34xx_mcspi1_sdma_reqs[] = {
> -@@ -3070,7 +3071,6 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi1_dev_attr = {
> - static struct omap_hwmod omap34xx_mcspi1 = {
> - 	.name		= "mcspi1",
> - 	.mpu_irqs	= omap34xx_mcspi1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap34xx_mcspi1_mpu_irqs),
> - 	.sdma_reqs	= omap34xx_mcspi1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mcspi1_sdma_reqs),
> - 	.main_clk	= "mcspi1_fck",
> -@@ -3093,6 +3093,7 @@ static struct omap_hwmod omap34xx_mcspi1 = {
> - /* mcspi2 */
> - static struct omap_hwmod_irq_info omap34xx_mcspi2_mpu_irqs[] = {
> - 	{ .name = "irq", .irq = 66 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap34xx_mcspi2_sdma_reqs[] = {
> -@@ -3113,7 +3114,6 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi2_dev_attr = {
> - static struct omap_hwmod omap34xx_mcspi2 = {
> - 	.name		= "mcspi2",
> - 	.mpu_irqs	= omap34xx_mcspi2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap34xx_mcspi2_mpu_irqs),
> - 	.sdma_reqs	= omap34xx_mcspi2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mcspi2_sdma_reqs),
> - 	.main_clk	= "mcspi2_fck",
> -@@ -3136,6 +3136,7 @@ static struct omap_hwmod omap34xx_mcspi2 = {
> - /* mcspi3 */
> - static struct omap_hwmod_irq_info omap34xx_mcspi3_mpu_irqs[] = {
> - 	{ .name = "irq", .irq = 91 }, /* 91 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap34xx_mcspi3_sdma_reqs[] = {
> -@@ -3156,7 +3157,6 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi3_dev_attr = {
> - static struct omap_hwmod omap34xx_mcspi3 = {
> - 	.name		= "mcspi3",
> - 	.mpu_irqs	= omap34xx_mcspi3_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap34xx_mcspi3_mpu_irqs),
> - 	.sdma_reqs	= omap34xx_mcspi3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mcspi3_sdma_reqs),
> - 	.main_clk	= "mcspi3_fck",
> -@@ -3179,6 +3179,7 @@ static struct omap_hwmod omap34xx_mcspi3 = {
> - /* SPI4 */
> - static struct omap_hwmod_irq_info omap34xx_mcspi4_mpu_irqs[] = {
> - 	{ .name = "irq", .irq = INT_34XX_SPI4_IRQ }, /* 48 */
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap34xx_mcspi4_sdma_reqs[] = {
> -@@ -3197,7 +3198,6 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi4_dev_attr = {
> - static struct omap_hwmod omap34xx_mcspi4 = {
> - 	.name		= "mcspi4",
> - 	.mpu_irqs	= omap34xx_mcspi4_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap34xx_mcspi4_mpu_irqs),
> - 	.sdma_reqs	= omap34xx_mcspi4_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mcspi4_sdma_reqs),
> - 	.main_clk	= "mcspi4_fck",
> -@@ -3241,12 +3241,12 @@ static struct omap_hwmod_irq_info
> omap3xxx_usbhsotg_mpu_irqs[] = {
> -
> - 	{ .name = "mc", .irq = 92 },
> - 	{ .name = "dma", .irq = 93 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod omap3xxx_usbhsotg_hwmod = {
> - 	.name		= "usb_otg_hs",
> - 	.mpu_irqs	= omap3xxx_usbhsotg_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap3xxx_usbhsotg_mpu_irqs),
> - 	.main_clk	= "hsotgusb_ick",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -3278,6 +3278,7 @@ static struct omap_hwmod
> omap3xxx_usbhsotg_hwmod = {
> - static struct omap_hwmod_irq_info am35xx_usbhsotg_mpu_irqs[] = {
> -
> - 	{ .name = "mc", .irq = 71 },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_class am35xx_usbotg_class = {
> -@@ -3288,7 +3289,6 @@ static struct omap_hwmod_class
> am35xx_usbotg_class = {
> - static struct omap_hwmod am35xx_usbhsotg_hwmod = {
> - 	.name		= "am35x_otg_hs",
> - 	.mpu_irqs	= am35xx_usbhsotg_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(am35xx_usbhsotg_mpu_irqs),
> - 	.main_clk	= NULL,
> - 	.prcm = {
> - 		.omap2 = {
> -@@ -3324,6 +3324,7 @@ static struct omap_hwmod_class
> omap34xx_mmc_class = {
> -
> - static struct omap_hwmod_irq_info omap34xx_mmc1_mpu_irqs[] = {
> - 	{ .irq = 83, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap34xx_mmc1_sdma_reqs[] = {
> -@@ -3346,7 +3347,6 @@ static struct omap_mmc_dev_attr mmc1_dev_attr
> = {
> - static struct omap_hwmod omap3xxx_mmc1_hwmod = {
> - 	.name		= "mmc1",
> - 	.mpu_irqs	= omap34xx_mmc1_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap34xx_mmc1_mpu_irqs),
> - 	.sdma_reqs	= omap34xx_mmc1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mmc1_sdma_reqs),
> - 	.opt_clks	= omap34xx_mmc1_opt_clks,
> -@@ -3372,6 +3372,7 @@ static struct omap_hwmod
> omap3xxx_mmc1_hwmod = {
> -
> - static struct omap_hwmod_irq_info omap34xx_mmc2_mpu_irqs[] = {
> - 	{ .irq = INT_24XX_MMC2_IRQ, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap34xx_mmc2_sdma_reqs[] = {
> -@@ -3390,7 +3391,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_mmc2_slaves[] = {
> - static struct omap_hwmod omap3xxx_mmc2_hwmod = {
> - 	.name		= "mmc2",
> - 	.mpu_irqs	= omap34xx_mmc2_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap34xx_mmc2_mpu_irqs),
> - 	.sdma_reqs	= omap34xx_mmc2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mmc2_sdma_reqs),
> - 	.opt_clks	= omap34xx_mmc2_opt_clks,
> -@@ -3415,6 +3415,7 @@ static struct omap_hwmod
> omap3xxx_mmc2_hwmod = {
> -
> - static struct omap_hwmod_irq_info omap34xx_mmc3_mpu_irqs[] = {
> - 	{ .irq = 94, },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap34xx_mmc3_sdma_reqs[] = {
> -@@ -3433,7 +3434,6 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_mmc3_slaves[] = {
> - static struct omap_hwmod omap3xxx_mmc3_hwmod = {
> - 	.name		= "mmc3",
> - 	.mpu_irqs	= omap34xx_mmc3_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap34xx_mmc3_mpu_irqs),
> - 	.sdma_reqs	= omap34xx_mmc3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mmc3_sdma_reqs),
> - 	.opt_clks	= omap34xx_mmc3_opt_clks,
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index f8ccc4a..f7ff937 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -115,6 +115,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_dmm_slaves[] = {
> -
> - static struct omap_hwmod_irq_info omap44xx_dmm_irqs[] = {
> - 	{ .irq = 113 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod omap44xx_dmm_hwmod = {
> -@@ -123,7 +124,6 @@ static struct omap_hwmod omap44xx_dmm_hwmod
> = {
> - 	.slaves		= omap44xx_dmm_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_dmm_slaves),
> - 	.mpu_irqs	= omap44xx_dmm_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_dmm_irqs),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> -@@ -268,6 +268,7 @@ static struct omap_hwmod_ocp_if
> omap44xx_mmc2__l3_main_1 = {
> - static struct omap_hwmod_irq_info omap44xx_l3_targ_irqs[] = {
> - 	{ .irq = 9  + OMAP44XX_IRQ_GIC_START },
> - 	{ .irq = 10 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_l3_main_1_addrs[] = {
> -@@ -303,7 +304,6 @@ static struct omap_hwmod
> omap44xx_l3_main_1_hwmod = {
> - 	.name		= "l3_main_1",
> - 	.class		= &omap44xx_l3_hwmod_class,
> - 	.mpu_irqs	= omap44xx_l3_targ_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_l3_targ_irqs),
> - 	.slaves		= omap44xx_l3_main_1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_main_1_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -673,6 +673,7 @@ static struct omap_hwmod_class
> omap44xx_aess_hwmod_class = {
> - /* aess */
> - static struct omap_hwmod_irq_info omap44xx_aess_irqs[] = {
> - 	{ .irq = 99 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_aess_sdma_reqs[] = {
> -@@ -737,7 +738,6 @@ static struct omap_hwmod omap44xx_aess_hwmod =
> {
> - 	.name		= "aess",
> - 	.class		= &omap44xx_aess_hwmod_class,
> - 	.mpu_irqs	= omap44xx_aess_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_aess_irqs),
> - 	.sdma_reqs	= omap44xx_aess_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_aess_sdma_reqs),
> - 	.main_clk	= "aess_fck",
> -@@ -876,6 +876,7 @@ static struct omap_hwmod_irq_info
> omap44xx_dma_system_irqs[] = {
> - 	{ .name = "1", .irq = 13 + OMAP44XX_IRQ_GIC_START },
> - 	{ .name = "2", .irq = 14 + OMAP44XX_IRQ_GIC_START },
> - 	{ .name = "3", .irq = 15 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - /* dma_system master ports */
> -@@ -910,7 +911,6 @@ static struct omap_hwmod
> omap44xx_dma_system_hwmod = {
> - 	.name		= "dma_system",
> - 	.class		= &omap44xx_dma_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dma_system_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_dma_system_irqs),
> - 	.main_clk	= "l3_div_ck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -949,6 +949,7 @@ static struct omap_hwmod_class
> omap44xx_dmic_hwmod_class = {
> - static struct omap_hwmod omap44xx_dmic_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_dmic_irqs[] = {
> - 	{ .irq = 114 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_dmic_sdma_reqs[] = {
> -@@ -1001,7 +1002,6 @@ static struct omap_hwmod
> omap44xx_dmic_hwmod = {
> - 	.name		= "dmic",
> - 	.class		= &omap44xx_dmic_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dmic_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_dmic_irqs),
> - 	.sdma_reqs	= omap44xx_dmic_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_dmic_sdma_reqs),
> - 	.main_clk	= "dmic_fck",
> -@@ -1027,6 +1027,7 @@ static struct omap_hwmod_class
> omap44xx_dsp_hwmod_class = {
> - /* dsp */
> - static struct omap_hwmod_irq_info omap44xx_dsp_irqs[] = {
> - 	{ .irq = 28 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_rst_info omap44xx_dsp_resets[] = {
> -@@ -1083,7 +1084,6 @@ static struct omap_hwmod omap44xx_dsp_hwmod
> = {
> - 	.name		= "dsp",
> - 	.class		= &omap44xx_dsp_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dsp_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_dsp_irqs),
> - 	.rst_lines	= omap44xx_dsp_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_dsp_resets),
> - 	.main_clk	= "dsp_fck",
> -@@ -1216,6 +1216,7 @@ static struct omap_hwmod_class
> omap44xx_dispc_hwmod_class = {
> - static struct omap_hwmod omap44xx_dss_dispc_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_dss_dispc_irqs[] = {
> - 	{ .irq = 25 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_dss_dispc_sdma_reqs[] = {
> -@@ -1268,7 +1269,6 @@ static struct omap_hwmod
> omap44xx_dss_dispc_hwmod = {
> - 	.name		= "dss_dispc",
> - 	.class		= &omap44xx_dispc_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dss_dispc_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_dss_dispc_irqs),
> - 	.sdma_reqs	= omap44xx_dss_dispc_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_dss_dispc_sdma_reqs),
> - 	.main_clk	= "dss_fck",
> -@@ -1307,6 +1307,7 @@ static struct omap_hwmod_class
> omap44xx_dsi_hwmod_class = {
> - static struct omap_hwmod omap44xx_dss_dsi1_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_dss_dsi1_irqs[] = {
> - 	{ .irq = 53 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_dss_dsi1_sdma_reqs[] = {
> -@@ -1359,7 +1360,6 @@ static struct omap_hwmod
> omap44xx_dss_dsi1_hwmod = {
> - 	.name		= "dss_dsi1",
> - 	.class		= &omap44xx_dsi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dss_dsi1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_dss_dsi1_irqs),
> - 	.sdma_reqs	= omap44xx_dss_dsi1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_dss_dsi1_sdma_reqs),
> - 	.main_clk	= "dss_fck",
> -@@ -1377,6 +1377,7 @@ static struct omap_hwmod
> omap44xx_dss_dsi1_hwmod = {
> - static struct omap_hwmod omap44xx_dss_dsi2_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_dss_dsi2_irqs[] = {
> - 	{ .irq = 84 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_dss_dsi2_sdma_reqs[] = {
> -@@ -1429,7 +1430,6 @@ static struct omap_hwmod
> omap44xx_dss_dsi2_hwmod = {
> - 	.name		= "dss_dsi2",
> - 	.class		= &omap44xx_dsi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dss_dsi2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_dss_dsi2_irqs),
> - 	.sdma_reqs	= omap44xx_dss_dsi2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_dss_dsi2_sdma_reqs),
> - 	.main_clk	= "dss_fck",
> -@@ -1467,6 +1467,7 @@ static struct omap_hwmod_class
> omap44xx_hdmi_hwmod_class = {
> - static struct omap_hwmod omap44xx_dss_hdmi_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_dss_hdmi_irqs[] = {
> - 	{ .irq = 101 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_dss_hdmi_sdma_reqs[] = {
> -@@ -1519,7 +1520,6 @@ static struct omap_hwmod
> omap44xx_dss_hdmi_hwmod = {
> - 	.name		= "dss_hdmi",
> - 	.class		= &omap44xx_hdmi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dss_hdmi_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_dss_hdmi_irqs),
> - 	.sdma_reqs	= omap44xx_dss_hdmi_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_dss_hdmi_sdma_reqs),
> - 	.main_clk	= "dss_fck",
> -@@ -1717,6 +1717,7 @@ static struct omap_gpio_dev_attr gpio_dev_attr = {
> - static struct omap_hwmod omap44xx_gpio1_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_gpio1_irqs[] = {
> - 	{ .irq = 29 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_gpio1_addrs[] = {
> -@@ -1750,7 +1751,6 @@ static struct omap_hwmod
> omap44xx_gpio1_hwmod = {
> - 	.name		= "gpio1",
> - 	.class		= &omap44xx_gpio_hwmod_class,
> - 	.mpu_irqs	= omap44xx_gpio1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_gpio1_irqs),
> - 	.main_clk	= "gpio1_ick",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -1769,6 +1769,7 @@ static struct omap_hwmod
> omap44xx_gpio1_hwmod = {
> - static struct omap_hwmod omap44xx_gpio2_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_gpio2_irqs[] = {
> - 	{ .irq = 30 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_gpio2_addrs[] = {
> -@@ -1803,7 +1804,6 @@ static struct omap_hwmod
> omap44xx_gpio2_hwmod = {
> - 	.class		= &omap44xx_gpio_hwmod_class,
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap44xx_gpio2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_gpio2_irqs),
> - 	.main_clk	= "gpio2_ick",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -1822,6 +1822,7 @@ static struct omap_hwmod
> omap44xx_gpio2_hwmod = {
> - static struct omap_hwmod omap44xx_gpio3_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_gpio3_irqs[] = {
> - 	{ .irq = 31 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_gpio3_addrs[] = {
> -@@ -1856,7 +1857,6 @@ static struct omap_hwmod
> omap44xx_gpio3_hwmod = {
> - 	.class		= &omap44xx_gpio_hwmod_class,
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap44xx_gpio3_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_gpio3_irqs),
> - 	.main_clk	= "gpio3_ick",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -1875,6 +1875,7 @@ static struct omap_hwmod
> omap44xx_gpio3_hwmod = {
> - static struct omap_hwmod omap44xx_gpio4_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_gpio4_irqs[] = {
> - 	{ .irq = 32 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_gpio4_addrs[] = {
> -@@ -1909,7 +1910,6 @@ static struct omap_hwmod
> omap44xx_gpio4_hwmod = {
> - 	.class		= &omap44xx_gpio_hwmod_class,
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap44xx_gpio4_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_gpio4_irqs),
> - 	.main_clk	= "gpio4_ick",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -1928,6 +1928,7 @@ static struct omap_hwmod
> omap44xx_gpio4_hwmod = {
> - static struct omap_hwmod omap44xx_gpio5_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_gpio5_irqs[] = {
> - 	{ .irq = 33 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_gpio5_addrs[] = {
> -@@ -1962,7 +1963,6 @@ static struct omap_hwmod
> omap44xx_gpio5_hwmod = {
> - 	.class		= &omap44xx_gpio_hwmod_class,
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap44xx_gpio5_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_gpio5_irqs),
> - 	.main_clk	= "gpio5_ick",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -1981,6 +1981,7 @@ static struct omap_hwmod
> omap44xx_gpio5_hwmod = {
> - static struct omap_hwmod omap44xx_gpio6_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_gpio6_irqs[] = {
> - 	{ .irq = 34 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_gpio6_addrs[] = {
> -@@ -2015,7 +2016,6 @@ static struct omap_hwmod
> omap44xx_gpio6_hwmod = {
> - 	.class		= &omap44xx_gpio_hwmod_class,
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap44xx_gpio6_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_gpio6_irqs),
> - 	.main_clk	= "gpio6_ick",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -2059,6 +2059,7 @@ static struct omap_hwmod_irq_info
> omap44xx_hsi_irqs[] = {
> - 	{ .name = "mpu_p1", .irq = 67 + OMAP44XX_IRQ_GIC_START },
> - 	{ .name = "mpu_p2", .irq = 68 + OMAP44XX_IRQ_GIC_START },
> - 	{ .name = "mpu_dma", .irq = 71 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - /* hsi master ports */
> -@@ -2093,7 +2094,6 @@ static struct omap_hwmod omap44xx_hsi_hwmod
> = {
> - 	.name		= "hsi",
> - 	.class		= &omap44xx_hsi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_hsi_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_hsi_irqs),
> - 	.main_clk	= "hsi_fck",
> - 	.prcm		= {
> - 		.omap4 = {
> -@@ -2132,6 +2132,7 @@ static struct omap_hwmod_class
> omap44xx_i2c_hwmod_class = {
> - static struct omap_hwmod omap44xx_i2c1_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_i2c1_irqs[] = {
> - 	{ .irq = 56 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_i2c1_sdma_reqs[] = {
> -@@ -2167,7 +2168,6 @@ static struct omap_hwmod
> omap44xx_i2c1_hwmod = {
> - 	.class		= &omap44xx_i2c_hwmod_class,
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_i2c1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_i2c1_irqs),
> - 	.sdma_reqs	= omap44xx_i2c1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_i2c1_sdma_reqs),
> - 	.main_clk	= "i2c1_fck",
> -@@ -2185,6 +2185,7 @@ static struct omap_hwmod
> omap44xx_i2c1_hwmod = {
> - static struct omap_hwmod omap44xx_i2c2_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_i2c2_irqs[] = {
> - 	{ .irq = 57 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_i2c2_sdma_reqs[] = {
> -@@ -2220,7 +2221,6 @@ static struct omap_hwmod
> omap44xx_i2c2_hwmod = {
> - 	.class		= &omap44xx_i2c_hwmod_class,
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_i2c2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_i2c2_irqs),
> - 	.sdma_reqs	= omap44xx_i2c2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_i2c2_sdma_reqs),
> - 	.main_clk	= "i2c2_fck",
> -@@ -2238,6 +2238,7 @@ static struct omap_hwmod
> omap44xx_i2c2_hwmod = {
> - static struct omap_hwmod omap44xx_i2c3_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_i2c3_irqs[] = {
> - 	{ .irq = 61 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_i2c3_sdma_reqs[] = {
> -@@ -2273,7 +2274,6 @@ static struct omap_hwmod
> omap44xx_i2c3_hwmod = {
> - 	.class		= &omap44xx_i2c_hwmod_class,
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_i2c3_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_i2c3_irqs),
> - 	.sdma_reqs	= omap44xx_i2c3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_i2c3_sdma_reqs),
> - 	.main_clk	= "i2c3_fck",
> -@@ -2291,6 +2291,7 @@ static struct omap_hwmod
> omap44xx_i2c3_hwmod = {
> - static struct omap_hwmod omap44xx_i2c4_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_i2c4_irqs[] = {
> - 	{ .irq = 62 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_i2c4_sdma_reqs[] = {
> -@@ -2326,7 +2327,6 @@ static struct omap_hwmod
> omap44xx_i2c4_hwmod = {
> - 	.class		= &omap44xx_i2c_hwmod_class,
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_i2c4_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_i2c4_irqs),
> - 	.sdma_reqs	= omap44xx_i2c4_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_i2c4_sdma_reqs),
> - 	.main_clk	= "i2c4_fck",
> -@@ -2352,6 +2352,7 @@ static struct omap_hwmod_class
> omap44xx_ipu_hwmod_class = {
> - /* ipu */
> - static struct omap_hwmod_irq_info omap44xx_ipu_irqs[] = {
> - 	{ .irq = 100 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_rst_info omap44xx_ipu_c0_resets[] = {
> -@@ -2418,7 +2419,6 @@ static struct omap_hwmod omap44xx_ipu_hwmod
> = {
> - 	.name		= "ipu",
> - 	.class		= &omap44xx_ipu_hwmod_class,
> - 	.mpu_irqs	= omap44xx_ipu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_ipu_irqs),
> - 	.rst_lines	= omap44xx_ipu_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_ipu_resets),
> - 	.main_clk	= "ipu_fck",
> -@@ -2459,6 +2459,7 @@ static struct omap_hwmod_class
> omap44xx_iss_hwmod_class = {
> - /* iss */
> - static struct omap_hwmod_irq_info omap44xx_iss_irqs[] = {
> - 	{ .irq = 24 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_iss_sdma_reqs[] = {
> -@@ -2504,7 +2505,6 @@ static struct omap_hwmod omap44xx_iss_hwmod
> = {
> - 	.name		= "iss",
> - 	.class		= &omap44xx_iss_hwmod_class,
> - 	.mpu_irqs	= omap44xx_iss_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_iss_irqs),
> - 	.sdma_reqs	= omap44xx_iss_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_iss_sdma_reqs),
> - 	.main_clk	= "iss_fck",
> -@@ -2536,6 +2536,7 @@ static struct omap_hwmod_irq_info
> omap44xx_iva_irqs[] = {
> - 	{ .name = "sync_1", .irq = 103 + OMAP44XX_IRQ_GIC_START },
> - 	{ .name = "sync_0", .irq = 104 + OMAP44XX_IRQ_GIC_START },
> - 	{ .name = "mailbox_0", .irq = 107 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_rst_info omap44xx_iva_resets[] = {
> -@@ -2614,7 +2615,6 @@ static struct omap_hwmod omap44xx_iva_hwmod
> = {
> - 	.name		= "iva",
> - 	.class		= &omap44xx_iva_hwmod_class,
> - 	.mpu_irqs	= omap44xx_iva_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_iva_irqs),
> - 	.rst_lines	= omap44xx_iva_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_iva_resets),
> - 	.main_clk	= "iva_fck",
> -@@ -2657,6 +2657,7 @@ static struct omap_hwmod_class
> omap44xx_kbd_hwmod_class = {
> - static struct omap_hwmod omap44xx_kbd_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_kbd_irqs[] = {
> - 	{ .irq = 120 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_kbd_addrs[] = {
> -@@ -2686,7 +2687,6 @@ static struct omap_hwmod
> omap44xx_kbd_hwmod = {
> - 	.name		= "kbd",
> - 	.class		= &omap44xx_kbd_hwmod_class,
> - 	.mpu_irqs	= omap44xx_kbd_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_kbd_irqs),
> - 	.main_clk	= "kbd_fck",
> - 	.prcm		= {
> - 		.omap4 = {
> -@@ -2722,6 +2722,7 @@ static struct omap_hwmod_class
> omap44xx_mailbox_hwmod_class = {
> - static struct omap_hwmod omap44xx_mailbox_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_mailbox_irqs[] = {
> - 	{ .irq = 26 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_mailbox_addrs[] = {
> -@@ -2751,7 +2752,6 @@ static struct omap_hwmod
> omap44xx_mailbox_hwmod = {
> - 	.name		= "mailbox",
> - 	.class		= &omap44xx_mailbox_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mailbox_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mailbox_irqs),
> - 	.prcm		= {
> - 		.omap4 = {
> - 			.clkctrl_reg =
> OMAP4430_CM_L4CFG_MAILBOX_CLKCTRL,
> -@@ -2785,6 +2785,7 @@ static struct omap_hwmod_class
> omap44xx_mcbsp_hwmod_class = {
> - static struct omap_hwmod omap44xx_mcbsp1_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_mcbsp1_irqs[] = {
> - 	{ .irq = 17 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mcbsp1_sdma_reqs[] = {
> -@@ -2840,7 +2841,6 @@ static struct omap_hwmod
> omap44xx_mcbsp1_hwmod = {
> - 	.name		= "mcbsp1",
> - 	.class		= &omap44xx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcbsp1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mcbsp1_irqs),
> - 	.sdma_reqs	= omap44xx_mcbsp1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcbsp1_sdma_reqs),
> - 	.main_clk	= "mcbsp1_fck",
> -@@ -2858,6 +2858,7 @@ static struct omap_hwmod
> omap44xx_mcbsp1_hwmod = {
> - static struct omap_hwmod omap44xx_mcbsp2_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_mcbsp2_irqs[] = {
> - 	{ .irq = 22 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mcbsp2_sdma_reqs[] = {
> -@@ -2913,7 +2914,6 @@ static struct omap_hwmod
> omap44xx_mcbsp2_hwmod = {
> - 	.name		= "mcbsp2",
> - 	.class		= &omap44xx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcbsp2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mcbsp2_irqs),
> - 	.sdma_reqs	= omap44xx_mcbsp2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcbsp2_sdma_reqs),
> - 	.main_clk	= "mcbsp2_fck",
> -@@ -2931,6 +2931,7 @@ static struct omap_hwmod
> omap44xx_mcbsp2_hwmod = {
> - static struct omap_hwmod omap44xx_mcbsp3_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_mcbsp3_irqs[] = {
> - 	{ .irq = 23 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mcbsp3_sdma_reqs[] = {
> -@@ -2986,7 +2987,6 @@ static struct omap_hwmod
> omap44xx_mcbsp3_hwmod = {
> - 	.name		= "mcbsp3",
> - 	.class		= &omap44xx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcbsp3_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mcbsp3_irqs),
> - 	.sdma_reqs	= omap44xx_mcbsp3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcbsp3_sdma_reqs),
> - 	.main_clk	= "mcbsp3_fck",
> -@@ -3004,6 +3004,7 @@ static struct omap_hwmod
> omap44xx_mcbsp3_hwmod = {
> - static struct omap_hwmod omap44xx_mcbsp4_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_mcbsp4_irqs[] = {
> - 	{ .irq = 16 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mcbsp4_sdma_reqs[] = {
> -@@ -3038,7 +3039,6 @@ static struct omap_hwmod
> omap44xx_mcbsp4_hwmod = {
> - 	.name		= "mcbsp4",
> - 	.class		= &omap44xx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcbsp4_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mcbsp4_irqs),
> - 	.sdma_reqs	= omap44xx_mcbsp4_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcbsp4_sdma_reqs),
> - 	.main_clk	= "mcbsp4_fck",
> -@@ -3077,6 +3077,7 @@ static struct omap_hwmod_class
> omap44xx_mcpdm_hwmod_class = {
> - static struct omap_hwmod omap44xx_mcpdm_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_mcpdm_irqs[] = {
> - 	{ .irq = 112 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mcpdm_sdma_reqs[] = {
> -@@ -3130,7 +3131,6 @@ static struct omap_hwmod
> omap44xx_mcpdm_hwmod = {
> - 	.name		= "mcpdm",
> - 	.class		= &omap44xx_mcpdm_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcpdm_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mcpdm_irqs),
> - 	.sdma_reqs	= omap44xx_mcpdm_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcpdm_sdma_reqs),
> - 	.main_clk	= "mcpdm_fck",
> -@@ -3170,6 +3170,7 @@ static struct omap_hwmod_class
> omap44xx_mcspi_hwmod_class = {
> - static struct omap_hwmod omap44xx_mcspi1_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_mcspi1_irqs[] = {
> - 	{ .irq = 65 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mcspi1_sdma_reqs[] = {
> -@@ -3215,7 +3216,6 @@ static struct omap_hwmod
> omap44xx_mcspi1_hwmod = {
> - 	.name		= "mcspi1",
> - 	.class		= &omap44xx_mcspi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcspi1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mcspi1_irqs),
> - 	.sdma_reqs	= omap44xx_mcspi1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcspi1_sdma_reqs),
> - 	.main_clk	= "mcspi1_fck",
> -@@ -3234,6 +3234,7 @@ static struct omap_hwmod
> omap44xx_mcspi1_hwmod = {
> - static struct omap_hwmod omap44xx_mcspi2_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_mcspi2_irqs[] = {
> - 	{ .irq = 66 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mcspi2_sdma_reqs[] = {
> -@@ -3275,7 +3276,6 @@ static struct omap_hwmod
> omap44xx_mcspi2_hwmod = {
> - 	.name		= "mcspi2",
> - 	.class		= &omap44xx_mcspi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcspi2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mcspi2_irqs),
> - 	.sdma_reqs	= omap44xx_mcspi2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcspi2_sdma_reqs),
> - 	.main_clk	= "mcspi2_fck",
> -@@ -3294,6 +3294,7 @@ static struct omap_hwmod
> omap44xx_mcspi2_hwmod = {
> - static struct omap_hwmod omap44xx_mcspi3_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_mcspi3_irqs[] = {
> - 	{ .irq = 91 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mcspi3_sdma_reqs[] = {
> -@@ -3335,7 +3336,6 @@ static struct omap_hwmod
> omap44xx_mcspi3_hwmod = {
> - 	.name		= "mcspi3",
> - 	.class		= &omap44xx_mcspi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcspi3_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mcspi3_irqs),
> - 	.sdma_reqs	= omap44xx_mcspi3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcspi3_sdma_reqs),
> - 	.main_clk	= "mcspi3_fck",
> -@@ -3354,6 +3354,7 @@ static struct omap_hwmod
> omap44xx_mcspi3_hwmod = {
> - static struct omap_hwmod omap44xx_mcspi4_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_mcspi4_irqs[] = {
> - 	{ .irq = 48 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mcspi4_sdma_reqs[] = {
> -@@ -3393,7 +3394,6 @@ static struct omap_hwmod
> omap44xx_mcspi4_hwmod = {
> - 	.name		= "mcspi4",
> - 	.class		= &omap44xx_mcspi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcspi4_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mcspi4_irqs),
> - 	.sdma_reqs	= omap44xx_mcspi4_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcspi4_sdma_reqs),
> - 	.main_clk	= "mcspi4_fck",
> -@@ -3434,6 +3434,7 @@ static struct omap_hwmod_class
> omap44xx_mmc_hwmod_class = {
> -
> - static struct omap_hwmod_irq_info omap44xx_mmc1_irqs[] = {
> - 	{ .irq = 83 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mmc1_sdma_reqs[] = {
> -@@ -3478,7 +3479,6 @@ static struct omap_hwmod
> omap44xx_mmc1_hwmod = {
> - 	.name		= "mmc1",
> - 	.class		= &omap44xx_mmc_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mmc1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mmc1_irqs),
> - 	.sdma_reqs	= omap44xx_mmc1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mmc1_sdma_reqs),
> - 	.main_clk	= "mmc1_fck",
> -@@ -3498,6 +3498,7 @@ static struct omap_hwmod
> omap44xx_mmc1_hwmod = {
> - /* mmc2 */
> - static struct omap_hwmod_irq_info omap44xx_mmc2_irqs[] = {
> - 	{ .irq = 86 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mmc2_sdma_reqs[] = {
> -@@ -3537,7 +3538,6 @@ static struct omap_hwmod
> omap44xx_mmc2_hwmod = {
> - 	.name		= "mmc2",
> - 	.class		= &omap44xx_mmc_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mmc2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mmc2_irqs),
> - 	.sdma_reqs	= omap44xx_mmc2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mmc2_sdma_reqs),
> - 	.main_clk	= "mmc2_fck",
> -@@ -3557,6 +3557,7 @@ static struct omap_hwmod
> omap44xx_mmc2_hwmod = {
> - static struct omap_hwmod omap44xx_mmc3_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_mmc3_irqs[] = {
> - 	{ .irq = 94 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mmc3_sdma_reqs[] = {
> -@@ -3591,7 +3592,6 @@ static struct omap_hwmod
> omap44xx_mmc3_hwmod = {
> - 	.name		= "mmc3",
> - 	.class		= &omap44xx_mmc_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mmc3_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mmc3_irqs),
> - 	.sdma_reqs	= omap44xx_mmc3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mmc3_sdma_reqs),
> - 	.main_clk	= "mmc3_fck",
> -@@ -3609,6 +3609,7 @@ static struct omap_hwmod
> omap44xx_mmc3_hwmod = {
> - static struct omap_hwmod omap44xx_mmc4_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_mmc4_irqs[] = {
> - 	{ .irq = 96 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mmc4_sdma_reqs[] = {
> -@@ -3643,7 +3644,7 @@ static struct omap_hwmod
> omap44xx_mmc4_hwmod = {
> - 	.name		= "mmc4",
> - 	.class		= &omap44xx_mmc_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mmc4_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mmc4_irqs),
> -+
> - 	.sdma_reqs	= omap44xx_mmc4_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mmc4_sdma_reqs),
> - 	.main_clk	= "mmc4_fck",
> -@@ -3661,6 +3662,7 @@ static struct omap_hwmod
> omap44xx_mmc4_hwmod = {
> - static struct omap_hwmod omap44xx_mmc5_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_mmc5_irqs[] = {
> - 	{ .irq = 59 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_mmc5_sdma_reqs[] = {
> -@@ -3695,7 +3697,6 @@ static struct omap_hwmod
> omap44xx_mmc5_hwmod = {
> - 	.name		= "mmc5",
> - 	.class		= &omap44xx_mmc_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mmc5_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mmc5_irqs),
> - 	.sdma_reqs	= omap44xx_mmc5_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mmc5_sdma_reqs),
> - 	.main_clk	= "mmc5_fck",
> -@@ -3723,6 +3724,7 @@ static struct omap_hwmod_irq_info
> omap44xx_mpu_irqs[] = {
> - 	{ .name = "pl310", .irq = 0 + OMAP44XX_IRQ_GIC_START },
> - 	{ .name = "cti0", .irq = 1 + OMAP44XX_IRQ_GIC_START },
> - 	{ .name = "cti1", .irq = 2 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - /* mpu master ports */
> -@@ -3737,7 +3739,6 @@ static struct omap_hwmod
> omap44xx_mpu_hwmod = {
> - 	.class		= &omap44xx_mpu_hwmod_class,
> - 	.flags		= (HWMOD_INIT_NO_IDLE |
> HWMOD_INIT_NO_RESET),
> - 	.mpu_irqs	= omap44xx_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_mpu_irqs),
> - 	.main_clk	= "dpll_mpu_m2_ck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -3779,6 +3780,7 @@ static struct omap_hwmod_class
> omap44xx_smartreflex_hwmod_class = {
> - static struct omap_hwmod omap44xx_smartreflex_core_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_smartreflex_core_irqs[] = {
> - 	{ .irq = 19 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_smartreflex_core_addrs[]
> = {
> -@@ -3808,7 +3810,7 @@ static struct omap_hwmod
> omap44xx_smartreflex_core_hwmod = {
> - 	.name		= "smartreflex_core",
> - 	.class		= &omap44xx_smartreflex_hwmod_class,
> - 	.mpu_irqs	= omap44xx_smartreflex_core_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_smartreflex_core_irqs),
> -+
> - 	.main_clk	= "smartreflex_core_fck",
> - 	.vdd_name	= "core",
> - 	.prcm = {
> -@@ -3825,6 +3827,7 @@ static struct omap_hwmod
> omap44xx_smartreflex_core_hwmod = {
> - static struct omap_hwmod omap44xx_smartreflex_iva_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_smartreflex_iva_irqs[] = {
> - 	{ .irq = 102 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_smartreflex_iva_addrs[] =
> {
> -@@ -3854,7 +3857,6 @@ static struct omap_hwmod
> omap44xx_smartreflex_iva_hwmod = {
> - 	.name		= "smartreflex_iva",
> - 	.class		= &omap44xx_smartreflex_hwmod_class,
> - 	.mpu_irqs	= omap44xx_smartreflex_iva_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_smartreflex_iva_irqs),
> - 	.main_clk	= "smartreflex_iva_fck",
> - 	.vdd_name	= "iva",
> - 	.prcm = {
> -@@ -3871,6 +3873,7 @@ static struct omap_hwmod
> omap44xx_smartreflex_iva_hwmod = {
> - static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_smartreflex_mpu_irqs[] = {
> - 	{ .irq = 18 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_smartreflex_mpu_addrs[]
> = {
> -@@ -3900,7 +3903,6 @@ static struct omap_hwmod
> omap44xx_smartreflex_mpu_hwmod = {
> - 	.name		= "smartreflex_mpu",
> - 	.class		= &omap44xx_smartreflex_hwmod_class,
> - 	.mpu_irqs	= omap44xx_smartreflex_mpu_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_smartreflex_mpu_irqs),
> - 	.main_clk	= "smartreflex_mpu_fck",
> - 	.vdd_name	= "mpu",
> - 	.prcm = {
> -@@ -4016,6 +4018,7 @@ static struct omap_hwmod_class
> omap44xx_timer_hwmod_class = {
> - static struct omap_hwmod omap44xx_timer1_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_timer1_irqs[] = {
> - 	{ .irq = 37 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_timer1_addrs[] = {
> -@@ -4045,7 +4048,6 @@ static struct omap_hwmod
> omap44xx_timer1_hwmod = {
> - 	.name		= "timer1",
> - 	.class		= &omap44xx_timer_1ms_hwmod_class,
> - 	.mpu_irqs	= omap44xx_timer1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_timer1_irqs),
> - 	.main_clk	= "timer1_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4061,6 +4063,7 @@ static struct omap_hwmod
> omap44xx_timer1_hwmod = {
> - static struct omap_hwmod omap44xx_timer2_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_timer2_irqs[] = {
> - 	{ .irq = 38 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_timer2_addrs[] = {
> -@@ -4090,7 +4093,6 @@ static struct omap_hwmod
> omap44xx_timer2_hwmod = {
> - 	.name		= "timer2",
> - 	.class		= &omap44xx_timer_1ms_hwmod_class,
> - 	.mpu_irqs	= omap44xx_timer2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_timer2_irqs),
> - 	.main_clk	= "timer2_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4106,6 +4108,7 @@ static struct omap_hwmod
> omap44xx_timer2_hwmod = {
> - static struct omap_hwmod omap44xx_timer3_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_timer3_irqs[] = {
> - 	{ .irq = 39 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_timer3_addrs[] = {
> -@@ -4135,7 +4138,6 @@ static struct omap_hwmod
> omap44xx_timer3_hwmod = {
> - 	.name		= "timer3",
> - 	.class		= &omap44xx_timer_hwmod_class,
> - 	.mpu_irqs	= omap44xx_timer3_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_timer3_irqs),
> - 	.main_clk	= "timer3_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4151,6 +4153,7 @@ static struct omap_hwmod
> omap44xx_timer3_hwmod = {
> - static struct omap_hwmod omap44xx_timer4_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_timer4_irqs[] = {
> - 	{ .irq = 40 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_timer4_addrs[] = {
> -@@ -4180,7 +4183,6 @@ static struct omap_hwmod
> omap44xx_timer4_hwmod = {
> - 	.name		= "timer4",
> - 	.class		= &omap44xx_timer_hwmod_class,
> - 	.mpu_irqs	= omap44xx_timer4_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_timer4_irqs),
> - 	.main_clk	= "timer4_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4196,6 +4198,7 @@ static struct omap_hwmod
> omap44xx_timer4_hwmod = {
> - static struct omap_hwmod omap44xx_timer5_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_timer5_irqs[] = {
> - 	{ .irq = 41 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_timer5_addrs[] = {
> -@@ -4244,7 +4247,6 @@ static struct omap_hwmod
> omap44xx_timer5_hwmod = {
> - 	.name		= "timer5",
> - 	.class		= &omap44xx_timer_hwmod_class,
> - 	.mpu_irqs	= omap44xx_timer5_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_timer5_irqs),
> - 	.main_clk	= "timer5_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4260,6 +4262,7 @@ static struct omap_hwmod
> omap44xx_timer5_hwmod = {
> - static struct omap_hwmod omap44xx_timer6_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_timer6_irqs[] = {
> - 	{ .irq = 42 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_timer6_addrs[] = {
> -@@ -4308,7 +4311,7 @@ static struct omap_hwmod
> omap44xx_timer6_hwmod = {
> - 	.name		= "timer6",
> - 	.class		= &omap44xx_timer_hwmod_class,
> - 	.mpu_irqs	= omap44xx_timer6_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_timer6_irqs),
> -+
> - 	.main_clk	= "timer6_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4324,6 +4327,7 @@ static struct omap_hwmod
> omap44xx_timer6_hwmod = {
> - static struct omap_hwmod omap44xx_timer7_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_timer7_irqs[] = {
> - 	{ .irq = 43 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_timer7_addrs[] = {
> -@@ -4372,7 +4376,6 @@ static struct omap_hwmod
> omap44xx_timer7_hwmod = {
> - 	.name		= "timer7",
> - 	.class		= &omap44xx_timer_hwmod_class,
> - 	.mpu_irqs	= omap44xx_timer7_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_timer7_irqs),
> - 	.main_clk	= "timer7_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4388,6 +4391,7 @@ static struct omap_hwmod
> omap44xx_timer7_hwmod = {
> - static struct omap_hwmod omap44xx_timer8_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_timer8_irqs[] = {
> - 	{ .irq = 44 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_timer8_addrs[] = {
> -@@ -4436,7 +4440,6 @@ static struct omap_hwmod
> omap44xx_timer8_hwmod = {
> - 	.name		= "timer8",
> - 	.class		= &omap44xx_timer_hwmod_class,
> - 	.mpu_irqs	= omap44xx_timer8_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_timer8_irqs),
> - 	.main_clk	= "timer8_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4452,6 +4455,7 @@ static struct omap_hwmod
> omap44xx_timer8_hwmod = {
> - static struct omap_hwmod omap44xx_timer9_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_timer9_irqs[] = {
> - 	{ .irq = 45 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_timer9_addrs[] = {
> -@@ -4481,7 +4485,6 @@ static struct omap_hwmod
> omap44xx_timer9_hwmod = {
> - 	.name		= "timer9",
> - 	.class		= &omap44xx_timer_hwmod_class,
> - 	.mpu_irqs	= omap44xx_timer9_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_timer9_irqs),
> - 	.main_clk	= "timer9_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4497,6 +4500,7 @@ static struct omap_hwmod
> omap44xx_timer9_hwmod = {
> - static struct omap_hwmod omap44xx_timer10_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_timer10_irqs[] = {
> - 	{ .irq = 46 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_timer10_addrs[] = {
> -@@ -4526,7 +4530,6 @@ static struct omap_hwmod
> omap44xx_timer10_hwmod = {
> - 	.name		= "timer10",
> - 	.class		= &omap44xx_timer_1ms_hwmod_class,
> - 	.mpu_irqs	= omap44xx_timer10_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_timer10_irqs),
> - 	.main_clk	= "timer10_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4542,6 +4545,7 @@ static struct omap_hwmod
> omap44xx_timer10_hwmod = {
> - static struct omap_hwmod omap44xx_timer11_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_timer11_irqs[] = {
> - 	{ .irq = 47 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_timer11_addrs[] = {
> -@@ -4571,7 +4575,6 @@ static struct omap_hwmod
> omap44xx_timer11_hwmod = {
> - 	.name		= "timer11",
> - 	.class		= &omap44xx_timer_hwmod_class,
> - 	.mpu_irqs	= omap44xx_timer11_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_timer11_irqs),
> - 	.main_clk	= "timer11_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4609,6 +4612,7 @@ static struct omap_hwmod_class
> omap44xx_uart_hwmod_class = {
> - static struct omap_hwmod omap44xx_uart1_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_uart1_irqs[] = {
> - 	{ .irq = 72 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_uart1_sdma_reqs[] = {
> -@@ -4643,7 +4647,6 @@ static struct omap_hwmod
> omap44xx_uart1_hwmod = {
> - 	.name		= "uart1",
> - 	.class		= &omap44xx_uart_hwmod_class,
> - 	.mpu_irqs	= omap44xx_uart1_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_uart1_irqs),
> - 	.sdma_reqs	= omap44xx_uart1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_uart1_sdma_reqs),
> - 	.main_clk	= "uart1_fck",
> -@@ -4661,6 +4664,7 @@ static struct omap_hwmod
> omap44xx_uart1_hwmod = {
> - static struct omap_hwmod omap44xx_uart2_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_uart2_irqs[] = {
> - 	{ .irq = 73 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_uart2_sdma_reqs[] = {
> -@@ -4695,7 +4699,6 @@ static struct omap_hwmod
> omap44xx_uart2_hwmod = {
> - 	.name		= "uart2",
> - 	.class		= &omap44xx_uart_hwmod_class,
> - 	.mpu_irqs	= omap44xx_uart2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_uart2_irqs),
> - 	.sdma_reqs	= omap44xx_uart2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_uart2_sdma_reqs),
> - 	.main_clk	= "uart2_fck",
> -@@ -4713,6 +4716,7 @@ static struct omap_hwmod
> omap44xx_uart2_hwmod = {
> - static struct omap_hwmod omap44xx_uart3_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_uart3_irqs[] = {
> - 	{ .irq = 74 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_uart3_sdma_reqs[] = {
> -@@ -4748,7 +4752,6 @@ static struct omap_hwmod
> omap44xx_uart3_hwmod = {
> - 	.class		= &omap44xx_uart_hwmod_class,
> - 	.flags		= (HWMOD_INIT_NO_IDLE |
> HWMOD_INIT_NO_RESET),
> - 	.mpu_irqs	= omap44xx_uart3_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_uart3_irqs),
> - 	.sdma_reqs	= omap44xx_uart3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_uart3_sdma_reqs),
> - 	.main_clk	= "uart3_fck",
> -@@ -4766,6 +4769,7 @@ static struct omap_hwmod
> omap44xx_uart3_hwmod = {
> - static struct omap_hwmod omap44xx_uart4_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_uart4_irqs[] = {
> - 	{ .irq = 70 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_dma_info omap44xx_uart4_sdma_reqs[] = {
> -@@ -4800,7 +4804,6 @@ static struct omap_hwmod
> omap44xx_uart4_hwmod = {
> - 	.name		= "uart4",
> - 	.class		= &omap44xx_uart_hwmod_class,
> - 	.mpu_irqs	= omap44xx_uart4_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_uart4_irqs),
> - 	.sdma_reqs	= omap44xx_uart4_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_uart4_sdma_reqs),
> - 	.main_clk	= "uart4_fck",
> -@@ -4841,6 +4844,7 @@ static struct omap_hwmod_class
> omap44xx_usb_otg_hs_hwmod_class = {
> - static struct omap_hwmod_irq_info omap44xx_usb_otg_hs_irqs[] = {
> - 	{ .name = "mc", .irq = 92 + OMAP44XX_IRQ_GIC_START },
> - 	{ .name = "dma", .irq = 93 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - /* usb_otg_hs master ports */
> -@@ -4880,7 +4884,6 @@ static struct omap_hwmod
> omap44xx_usb_otg_hs_hwmod = {
> - 	.class		= &omap44xx_usb_otg_hs_hwmod_class,
> - 	.flags		= HWMOD_SWSUP_SIDLE |
> HWMOD_SWSUP_MSTANDBY,
> - 	.mpu_irqs	= omap44xx_usb_otg_hs_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_usb_otg_hs_irqs),
> - 	.main_clk	= "usb_otg_hs_ick",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4923,6 +4926,7 @@ static struct omap_hwmod_class
> omap44xx_wd_timer_hwmod_class = {
> - static struct omap_hwmod omap44xx_wd_timer2_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_wd_timer2_irqs[] = {
> - 	{ .irq = 80 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_wd_timer2_addrs[] = {
> -@@ -4952,7 +4956,6 @@ static struct omap_hwmod
> omap44xx_wd_timer2_hwmod = {
> - 	.name		= "wd_timer2",
> - 	.class		= &omap44xx_wd_timer_hwmod_class,
> - 	.mpu_irqs	= omap44xx_wd_timer2_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_wd_timer2_irqs),
> - 	.main_clk	= "wd_timer2_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4968,6 +4971,7 @@ static struct omap_hwmod
> omap44xx_wd_timer2_hwmod = {
> - static struct omap_hwmod omap44xx_wd_timer3_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_wd_timer3_irqs[] = {
> - 	{ .irq = 36 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_wd_timer3_addrs[] = {
> -@@ -5016,7 +5020,6 @@ static struct omap_hwmod
> omap44xx_wd_timer3_hwmod = {
> - 	.name		= "wd_timer3",
> - 	.class		= &omap44xx_wd_timer_hwmod_class,
> - 	.mpu_irqs	= omap44xx_wd_timer3_irqs,
> --	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_wd_timer3_irqs),
> - 	.main_clk	= "wd_timer3_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -index f3a3bff..b8385e2 100644
> ---- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -@@ -97,7 +97,7 @@ struct omap_hwmod_mux_info {
> - /**
> -  * struct omap_hwmod_irq_info - MPU IRQs used by the hwmod
> -  * @name: name of the IRQ channel (module local name)
> -- * @irq_ch: IRQ channel ID
> -+ * @irq: IRQ channel ID (should be non-negative except -1 = terminator)
> -  *
> -  * @name should be something short, e.g., "tx" or "rx".  It is for use
> -  * by platform_get_resource_byname().  It is defined locally to the
> -@@ -105,7 +105,7 @@ struct omap_hwmod_mux_info {
> -  */
> - struct omap_hwmod_irq_info {
> - 	const char	*name;
> --	u16		irq;
> -+	s16		irq;
> - };
> -
> - /**
> -@@ -466,7 +466,7 @@ struct omap_hwmod_class {
> -  * @name: name of the hwmod
> -  * @class: struct omap_hwmod_class * to the class of this hwmod
> -  * @od: struct omap_device currently associated with this hwmod (internal
> use)
> -- * @mpu_irqs: ptr to an array of MPU IRQs (see also mpu_irqs_cnt)
> -+ * @mpu_irqs: ptr to an array of MPU IRQs
> -  * @sdma_reqs: ptr to an array of System DMA request IDs (see
> sdma_reqs_cnt)
> -  * @prcm: PRCM data pertaining to this hwmod
> -  * @main_clk: main clock: OMAP clock name
> -@@ -480,7 +480,6 @@ struct omap_hwmod_class {
> -  * @_sysc_cache: internal-use hwmod flags
> -  * @_mpu_rt_va: cached register target start address (internal use)
> -  * @_mpu_port_index: cached MPU register target slave ID (internal use)
> -- * @mpu_irqs_cnt: number of @mpu_irqs
> -  * @sdma_reqs_cnt: number of @sdma_reqs
> -  * @opt_clks_cnt: number of @opt_clks
> -  * @master_cnt: number of @master entries
> -@@ -529,7 +528,6 @@ struct omap_hwmod {
> - 	u16				flags;
> - 	u8				_mpu_port_index;
> - 	u8				response_lat;
> --	u8				mpu_irqs_cnt;
> - 	u8				sdma_reqs_cnt;
> - 	u8				rst_lines_cnt;
> - 	u8				opt_clks_cnt;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0040-omap_hwmod-
> share-identical-omap_hwmod_mpu_irqs-array.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0040-omap_hwmod-share-identical-
> omap_hwmod_mpu_irqs-array.patch
> deleted file mode 100644
> index fabe223..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0040-omap_hwmod-share-
> identical-omap_hwmod_mpu_irqs-array.patch
> +++ /dev/null
> @@ -1,1815 +0,0 @@
> -From 5cd00a6a7afe6757255da2256157ce5504cf4b1a Mon Sep 17 00:00:00
> 2001
> -From: Paul Walmsley <paul at pwsan.com>
> -Date: Sat, 9 Jul 2011 19:14:07 -0600
> -Subject: [PATCH 040/149] omap_hwmod: share identical
> omap_hwmod_mpu_irqs arrays
> -
> -To reduce kernel source file data duplication, share struct
> -omap_hwmod_mpu_irqs arrays across OMAP2xxx and 3xxx hwmod data files.
> -
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/Makefile                       |   11 +-
> - arch/arm/mach-omap2/omap_hwmod_2420_data.c         |  167 +++------------
> -----
> - arch/arm/mach-omap2/omap_hwmod_2430_data.c         |  166 +++------------
> -----
> - .../mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c |  142
> +++++++++++++++++
> - arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c |   21 +++
> - arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         |  162 +++-------------
> ---
> - arch/arm/mach-omap2/omap_hwmod_common_data.h       |   29 ++++
> - 7 files changed, 275 insertions(+), 423 deletions(-)
> - create mode 100644 arch/arm/mach-
> omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
> - create mode 100644 arch/arm/mach-
> omap2/omap_hwmod_2xxx_ipblock_data.c
> -
> -diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-
> omap2/Makefile
> -index 8a75d17..f343365 100644
> ---- a/arch/arm/mach-omap2/Makefile
> -+++ b/arch/arm/mach-omap2/Makefile
> -@@ -145,13 +145,18 @@ obj-$(CONFIG_SOC_OMAP2420)		+=
> opp2420_data.o
> - obj-$(CONFIG_SOC_OMAP2430)		+= opp2430_data.o
> -
> - # hwmod data
> --obj-$(CONFIG_SOC_OMAP2420)		+=
> omap_hwmod_2xxx_interconnect_data.o \
> -+obj-$(CONFIG_SOC_OMAP2420)		+=
> omap_hwmod_2xxx_ipblock_data.o \
> -+
> omap_hwmod_2xxx_3xxx_ipblock_data.o \
> -+
> omap_hwmod_2xxx_interconnect_data.o \
> -
> omap_hwmod_2xxx_3xxx_interconnect_data.o \
> - 					   omap_hwmod_2420_data.o
> --obj-$(CONFIG_SOC_OMAP2430)		+=
> omap_hwmod_2xxx_interconnect_data.o \
> -+obj-$(CONFIG_SOC_OMAP2430)		+=
> omap_hwmod_2xxx_ipblock_data.o \
> -+
> omap_hwmod_2xxx_3xxx_ipblock_data.o \
> -+
> omap_hwmod_2xxx_interconnect_data.o \
> -
> omap_hwmod_2xxx_3xxx_interconnect_data.o \
> - 					   omap_hwmod_2430_data.o
> --obj-$(CONFIG_ARCH_OMAP3)		+=
> omap_hwmod_2xxx_3xxx_interconnect_data.o \
> -+obj-$(CONFIG_ARCH_OMAP3)		+=
> omap_hwmod_2xxx_3xxx_ipblock_data.o \
> -+
> omap_hwmod_2xxx_3xxx_interconnect_data.o \
> - 					   omap_hwmod_3xxx_data.o
> - obj-$(CONFIG_ARCH_OMAP4)		+= omap_hwmod_44xx_data.o
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -index 04730d3..73157ee 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -@@ -294,10 +294,6 @@ static struct omap_hwmod_class
> omap2420_timer_hwmod_class = {
> -
> - /* timer1 */
> - static struct omap_hwmod omap2420_timer1_hwmod;
> --static struct omap_hwmod_irq_info omap2420_timer1_mpu_irqs[] = {
> --	{ .irq = 37, },
> --	{ .irq = -1 }
> --};
> -
> - static struct omap_hwmod_addr_space omap2420_timer1_addrs[] = {
> - 	{
> -@@ -325,7 +321,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer1_slaves[] = {
> - /* timer1 hwmod */
> - static struct omap_hwmod omap2420_timer1_hwmod = {
> - 	.name		= "timer1",
> --	.mpu_irqs	= omap2420_timer1_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer1_mpu_irqs,
> - 	.main_clk	= "gpt1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -344,11 +340,6 @@ static struct omap_hwmod
> omap2420_timer1_hwmod = {
> -
> - /* timer2 */
> - static struct omap_hwmod omap2420_timer2_hwmod;
> --static struct omap_hwmod_irq_info omap2420_timer2_mpu_irqs[] = {
> --	{ .irq = 38, },
> --	{ .irq = -1 }
> --};
> --
> -
> - /* l4_core -> timer2 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer2 = {
> -@@ -367,7 +358,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer2_slaves[] = {
> - /* timer2 hwmod */
> - static struct omap_hwmod omap2420_timer2_hwmod = {
> - 	.name		= "timer2",
> --	.mpu_irqs	= omap2420_timer2_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer2_mpu_irqs,
> - 	.main_clk	= "gpt2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -386,10 +377,6 @@ static struct omap_hwmod
> omap2420_timer2_hwmod = {
> -
> - /* timer3 */
> - static struct omap_hwmod omap2420_timer3_hwmod;
> --static struct omap_hwmod_irq_info omap2420_timer3_mpu_irqs[] = {
> --	{ .irq = 39, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer3 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer3 = {
> -@@ -408,7 +395,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer3_slaves[] = {
> - /* timer3 hwmod */
> - static struct omap_hwmod omap2420_timer3_hwmod = {
> - 	.name		= "timer3",
> --	.mpu_irqs	= omap2420_timer3_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer3_mpu_irqs,
> - 	.main_clk	= "gpt3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -427,10 +414,6 @@ static struct omap_hwmod
> omap2420_timer3_hwmod = {
> -
> - /* timer4 */
> - static struct omap_hwmod omap2420_timer4_hwmod;
> --static struct omap_hwmod_irq_info omap2420_timer4_mpu_irqs[] = {
> --	{ .irq = 40, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer4 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer4 = {
> -@@ -449,7 +432,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer4_slaves[] = {
> - /* timer4 hwmod */
> - static struct omap_hwmod omap2420_timer4_hwmod = {
> - 	.name		= "timer4",
> --	.mpu_irqs	= omap2420_timer4_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer4_mpu_irqs,
> - 	.main_clk	= "gpt4_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -468,10 +451,6 @@ static struct omap_hwmod
> omap2420_timer4_hwmod = {
> -
> - /* timer5 */
> - static struct omap_hwmod omap2420_timer5_hwmod;
> --static struct omap_hwmod_irq_info omap2420_timer5_mpu_irqs[] = {
> --	{ .irq = 41, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer5 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer5 = {
> -@@ -490,7 +469,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer5_slaves[] = {
> - /* timer5 hwmod */
> - static struct omap_hwmod omap2420_timer5_hwmod = {
> - 	.name		= "timer5",
> --	.mpu_irqs	= omap2420_timer5_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer5_mpu_irqs,
> - 	.main_clk	= "gpt5_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -510,10 +489,6 @@ static struct omap_hwmod
> omap2420_timer5_hwmod = {
> -
> - /* timer6 */
> - static struct omap_hwmod omap2420_timer6_hwmod;
> --static struct omap_hwmod_irq_info omap2420_timer6_mpu_irqs[] = {
> --	{ .irq = 42, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer6 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer6 = {
> -@@ -532,7 +507,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer6_slaves[] = {
> - /* timer6 hwmod */
> - static struct omap_hwmod omap2420_timer6_hwmod = {
> - 	.name		= "timer6",
> --	.mpu_irqs	= omap2420_timer6_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer6_mpu_irqs,
> - 	.main_clk	= "gpt6_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -551,10 +526,6 @@ static struct omap_hwmod
> omap2420_timer6_hwmod = {
> -
> - /* timer7 */
> - static struct omap_hwmod omap2420_timer7_hwmod;
> --static struct omap_hwmod_irq_info omap2420_timer7_mpu_irqs[] = {
> --	{ .irq = 43, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer7 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer7 = {
> -@@ -573,7 +544,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer7_slaves[] = {
> - /* timer7 hwmod */
> - static struct omap_hwmod omap2420_timer7_hwmod = {
> - 	.name		= "timer7",
> --	.mpu_irqs	= omap2420_timer7_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer7_mpu_irqs,
> - 	.main_clk	= "gpt7_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -592,10 +563,6 @@ static struct omap_hwmod
> omap2420_timer7_hwmod = {
> -
> - /* timer8 */
> - static struct omap_hwmod omap2420_timer8_hwmod;
> --static struct omap_hwmod_irq_info omap2420_timer8_mpu_irqs[] = {
> --	{ .irq = 44, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer8 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer8 = {
> -@@ -614,7 +581,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer8_slaves[] = {
> - /* timer8 hwmod */
> - static struct omap_hwmod omap2420_timer8_hwmod = {
> - 	.name		= "timer8",
> --	.mpu_irqs	= omap2420_timer8_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer8_mpu_irqs,
> - 	.main_clk	= "gpt8_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -633,10 +600,6 @@ static struct omap_hwmod
> omap2420_timer8_hwmod = {
> -
> - /* timer9 */
> - static struct omap_hwmod omap2420_timer9_hwmod;
> --static struct omap_hwmod_irq_info omap2420_timer9_mpu_irqs[] = {
> --	{ .irq = 45, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer9 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer9 = {
> -@@ -655,7 +618,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer9_slaves[] = {
> - /* timer9 hwmod */
> - static struct omap_hwmod omap2420_timer9_hwmod = {
> - 	.name		= "timer9",
> --	.mpu_irqs	= omap2420_timer9_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer9_mpu_irqs,
> - 	.main_clk	= "gpt9_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -674,10 +637,6 @@ static struct omap_hwmod
> omap2420_timer9_hwmod = {
> -
> - /* timer10 */
> - static struct omap_hwmod omap2420_timer10_hwmod;
> --static struct omap_hwmod_irq_info omap2420_timer10_mpu_irqs[] = {
> --	{ .irq = 46, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer10 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer10 = {
> -@@ -696,7 +655,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer10_slaves[] = {
> - /* timer10 hwmod */
> - static struct omap_hwmod omap2420_timer10_hwmod = {
> - 	.name		= "timer10",
> --	.mpu_irqs	= omap2420_timer10_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer10_mpu_irqs,
> - 	.main_clk	= "gpt10_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -715,10 +674,6 @@ static struct omap_hwmod
> omap2420_timer10_hwmod = {
> -
> - /* timer11 */
> - static struct omap_hwmod omap2420_timer11_hwmod;
> --static struct omap_hwmod_irq_info omap2420_timer11_mpu_irqs[] = {
> --	{ .irq = 47, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer11 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer11 = {
> -@@ -737,7 +692,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer11_slaves[] = {
> - /* timer11 hwmod */
> - static struct omap_hwmod omap2420_timer11_hwmod = {
> - 	.name		= "timer11",
> --	.mpu_irqs	= omap2420_timer11_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer11_mpu_irqs,
> - 	.main_clk	= "gpt11_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -756,10 +711,6 @@ static struct omap_hwmod
> omap2420_timer11_hwmod = {
> -
> - /* timer12 */
> - static struct omap_hwmod omap2420_timer12_hwmod;
> --static struct omap_hwmod_irq_info omap2420_timer12_mpu_irqs[] = {
> --	{ .irq = 48, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer12 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__timer12 = {
> -@@ -778,7 +729,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_timer12_slaves[] = {
> - /* timer12 hwmod */
> - static struct omap_hwmod omap2420_timer12_hwmod = {
> - 	.name		= "timer12",
> --	.mpu_irqs	= omap2420_timer12_mpu_irqs,
> -+	.mpu_irqs	= omap2xxx_timer12_mpu_irqs,
> - 	.main_clk	= "gpt12_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -877,11 +828,6 @@ static struct omap_hwmod_class uart_class = {
> -
> - /* UART1 */
> -
> --static struct omap_hwmod_irq_info uart1_mpu_irqs[] = {
> --	{ .irq = INT_24XX_UART1_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART1_RX, },
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART1_TX, },
> -@@ -893,7 +839,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_uart1_slaves[] = {
> -
> - static struct omap_hwmod omap2420_uart1_hwmod = {
> - 	.name		= "uart1",
> --	.mpu_irqs	= uart1_mpu_irqs,
> -+	.mpu_irqs	= omap2_uart1_mpu_irqs,
> - 	.sdma_reqs	= uart1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart1_sdma_reqs),
> - 	.main_clk	= "uart1_fck",
> -@@ -914,11 +860,6 @@ static struct omap_hwmod
> omap2420_uart1_hwmod = {
> -
> - /* UART2 */
> -
> --static struct omap_hwmod_irq_info uart2_mpu_irqs[] = {
> --	{ .irq = INT_24XX_UART2_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info uart2_sdma_reqs[] = {
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART2_RX, },
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART2_TX, },
> -@@ -930,7 +871,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_uart2_slaves[] = {
> -
> - static struct omap_hwmod omap2420_uart2_hwmod = {
> - 	.name		= "uart2",
> --	.mpu_irqs	= uart2_mpu_irqs,
> -+	.mpu_irqs	= omap2_uart2_mpu_irqs,
> - 	.sdma_reqs	= uart2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart2_sdma_reqs),
> - 	.main_clk	= "uart2_fck",
> -@@ -951,11 +892,6 @@ static struct omap_hwmod
> omap2420_uart2_hwmod = {
> -
> - /* UART3 */
> -
> --static struct omap_hwmod_irq_info uart3_mpu_irqs[] = {
> --	{ .irq = INT_24XX_UART3_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info uart3_sdma_reqs[] = {
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART3_RX, },
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART3_TX, },
> -@@ -967,7 +903,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_uart3_slaves[] = {
> -
> - static struct omap_hwmod omap2420_uart3_hwmod = {
> - 	.name		= "uart3",
> --	.mpu_irqs	= uart3_mpu_irqs,
> -+	.mpu_irqs	= omap2_uart3_mpu_irqs,
> - 	.sdma_reqs	= uart3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart3_sdma_reqs),
> - 	.main_clk	= "uart3_fck",
> -@@ -1085,11 +1021,6 @@ static struct omap_hwmod_class
> omap2420_dispc_hwmod_class = {
> - 	.sysc = &omap2420_dispc_sysc,
> - };
> -
> --static struct omap_hwmod_irq_info omap2420_dispc_irqs[] = {
> --	{ .irq = 25 },
> --	{ .irq = -1 }
> --};
> --
> - /* l4_core -> dss_dispc */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__dss_dispc = {
> - 	.master		= &omap2420_l4_core_hwmod,
> -@@ -1113,7 +1044,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_dss_dispc_slaves[] = {
> - static struct omap_hwmod omap2420_dss_dispc_hwmod = {
> - 	.name		= "dss_dispc",
> - 	.class		= &omap2420_dispc_hwmod_class,
> --	.mpu_irqs	= omap2420_dispc_irqs,
> -+	.mpu_irqs	= omap2_dispc_irqs,
> - 	.main_clk	= "dss1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1252,11 +1183,6 @@ static struct omap_i2c_dev_attr i2c_dev_attr;
> -
> - /* I2C1 */
> -
> --static struct omap_hwmod_irq_info i2c1_mpu_irqs[] = {
> --	{ .irq = INT_24XX_I2C1_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info i2c1_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C1_TX },
> - 	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C1_RX },
> -@@ -1268,7 +1194,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_i2c1_slaves[] = {
> -
> - static struct omap_hwmod omap2420_i2c1_hwmod = {
> - 	.name		= "i2c1",
> --	.mpu_irqs	= i2c1_mpu_irqs,
> -+	.mpu_irqs	= omap2_i2c1_mpu_irqs,
> - 	.sdma_reqs	= i2c1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(i2c1_sdma_reqs),
> - 	.main_clk	= "i2c1_fck",
> -@@ -1291,11 +1217,6 @@ static struct omap_hwmod
> omap2420_i2c1_hwmod = {
> -
> - /* I2C2 */
> -
> --static struct omap_hwmod_irq_info i2c2_mpu_irqs[] = {
> --	{ .irq = INT_24XX_I2C2_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info i2c2_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C2_TX },
> - 	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C2_RX },
> -@@ -1307,7 +1228,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_i2c2_slaves[] = {
> -
> - static struct omap_hwmod omap2420_i2c2_hwmod = {
> - 	.name		= "i2c2",
> --	.mpu_irqs	= i2c2_mpu_irqs,
> -+	.mpu_irqs	= omap2_i2c2_mpu_irqs,
> - 	.sdma_reqs	= i2c2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(i2c2_sdma_reqs),
> - 	.main_clk	= "i2c2_fck",
> -@@ -1428,11 +1349,6 @@ static struct omap_hwmod_class
> omap242x_gpio_hwmod_class = {
> - };
> -
> - /* gpio1 */
> --static struct omap_hwmod_irq_info omap242x_gpio1_irqs[] = {
> --	{ .irq = 29 }, /* INT_24XX_GPIO_BANK1 */
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2420_gpio1_slaves[] = {
> - 	&omap2420_l4_wkup__gpio1,
> - };
> -@@ -1440,7 +1356,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_gpio1_slaves[] = {
> - static struct omap_hwmod omap2420_gpio1_hwmod = {
> - 	.name		= "gpio1",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> --	.mpu_irqs	= omap242x_gpio1_irqs,
> -+	.mpu_irqs	= omap2_gpio1_irqs,
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1459,11 +1375,6 @@ static struct omap_hwmod
> omap2420_gpio1_hwmod = {
> - };
> -
> - /* gpio2 */
> --static struct omap_hwmod_irq_info omap242x_gpio2_irqs[] = {
> --	{ .irq = 30 }, /* INT_24XX_GPIO_BANK2 */
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2420_gpio2_slaves[] = {
> - 	&omap2420_l4_wkup__gpio2,
> - };
> -@@ -1471,7 +1382,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_gpio2_slaves[] = {
> - static struct omap_hwmod omap2420_gpio2_hwmod = {
> - 	.name		= "gpio2",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> --	.mpu_irqs	= omap242x_gpio2_irqs,
> -+	.mpu_irqs	= omap2_gpio2_irqs,
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1490,11 +1401,6 @@ static struct omap_hwmod
> omap2420_gpio2_hwmod = {
> - };
> -
> - /* gpio3 */
> --static struct omap_hwmod_irq_info omap242x_gpio3_irqs[] = {
> --	{ .irq = 31 }, /* INT_24XX_GPIO_BANK3 */
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2420_gpio3_slaves[] = {
> - 	&omap2420_l4_wkup__gpio3,
> - };
> -@@ -1502,7 +1408,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_gpio3_slaves[] = {
> - static struct omap_hwmod omap2420_gpio3_hwmod = {
> - 	.name		= "gpio3",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> --	.mpu_irqs	= omap242x_gpio3_irqs,
> -+	.mpu_irqs	= omap2_gpio3_irqs,
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1521,11 +1427,6 @@ static struct omap_hwmod
> omap2420_gpio3_hwmod = {
> - };
> -
> - /* gpio4 */
> --static struct omap_hwmod_irq_info omap242x_gpio4_irqs[] = {
> --	{ .irq = 32 }, /* INT_24XX_GPIO_BANK4 */
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2420_gpio4_slaves[] = {
> - 	&omap2420_l4_wkup__gpio4,
> - };
> -@@ -1533,7 +1434,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_gpio4_slaves[] = {
> - static struct omap_hwmod omap2420_gpio4_hwmod = {
> - 	.name		= "gpio4",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> --	.mpu_irqs	= omap242x_gpio4_irqs,
> -+	.mpu_irqs	= omap2_gpio4_irqs,
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1575,14 +1476,6 @@ static struct omap_dma_dev_attr dma_dev_attr =
> {
> - 	.lch_count = 32,
> - };
> -
> --static struct omap_hwmod_irq_info omap2420_dma_system_irqs[] = {
> --	{ .name = "0", .irq = 12 }, /* INT_24XX_SDMA_IRQ0 */
> --	{ .name = "1", .irq = 13 }, /* INT_24XX_SDMA_IRQ1 */
> --	{ .name = "2", .irq = 14 }, /* INT_24XX_SDMA_IRQ2 */
> --	{ .name = "3", .irq = 15 }, /* INT_24XX_SDMA_IRQ3 */
> --	{ .irq = -1 }
> --};
> --
> - /* dma_system -> L3 */
> - static struct omap_hwmod_ocp_if omap2420_dma_system__l3 = {
> - 	.master		= &omap2420_dma_system_hwmod,
> -@@ -1613,7 +1506,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_dma_system_slaves[] = {
> - static struct omap_hwmod omap2420_dma_system_hwmod = {
> - 	.name		= "dma",
> - 	.class		= &omap2420_dma_hwmod_class,
> --	.mpu_irqs	= omap2420_dma_system_irqs,
> -+	.mpu_irqs	= omap2_dma_system_irqs,
> - 	.main_clk	= "core_l3_ck",
> - 	.slaves		= omap2420_dma_system_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_dma_system_slaves),
> -@@ -1709,11 +1602,6 @@ static struct omap_hwmod_class
> omap2420_mcspi_class = {
> - };
> -
> - /* mcspi1 */
> --static struct omap_hwmod_irq_info omap2420_mcspi1_mpu_irqs[] = {
> --	{ .irq = 65 },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info omap2420_mcspi1_sdma_reqs[] = {
> - 	{ .name = "tx0", .dma_req = 35 }, /* DMA_SPI1_TX0 */
> - 	{ .name = "rx0", .dma_req = 36 }, /* DMA_SPI1_RX0 */
> -@@ -1735,7 +1623,7 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi1_dev_attr = {
> -
> - static struct omap_hwmod omap2420_mcspi1_hwmod = {
> - 	.name		= "mcspi1_hwmod",
> --	.mpu_irqs	= omap2420_mcspi1_mpu_irqs,
> -+	.mpu_irqs	= omap2_mcspi1_mpu_irqs,
> - 	.sdma_reqs	= omap2420_mcspi1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2420_mcspi1_sdma_reqs),
> - 	.main_clk	= "mcspi1_fck",
> -@@ -1756,11 +1644,6 @@ static struct omap_hwmod
> omap2420_mcspi1_hwmod = {
> - };
> -
> - /* mcspi2 */
> --static struct omap_hwmod_irq_info omap2420_mcspi2_mpu_irqs[] = {
> --	{ .irq = 66 },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info omap2420_mcspi2_sdma_reqs[] = {
> - 	{ .name = "tx0", .dma_req = 43 }, /* DMA_SPI2_TX0 */
> - 	{ .name = "rx0", .dma_req = 44 }, /* DMA_SPI2_RX0 */
> -@@ -1778,7 +1661,7 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi2_dev_attr = {
> -
> - static struct omap_hwmod omap2420_mcspi2_hwmod = {
> - 	.name		= "mcspi2_hwmod",
> --	.mpu_irqs	= omap2420_mcspi2_mpu_irqs,
> -+	.mpu_irqs	= omap2_mcspi2_mpu_irqs,
> - 	.sdma_reqs	= omap2420_mcspi2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2420_mcspi2_sdma_reqs),
> - 	.main_clk	= "mcspi2_fck",
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -index 2c28468..62ecc68 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -@@ -367,10 +367,6 @@ static struct omap_hwmod_class
> omap2430_timer_hwmod_class = {
> -
> - /* timer1 */
> - static struct omap_hwmod omap2430_timer1_hwmod;
> --static struct omap_hwmod_irq_info omap2430_timer1_mpu_irqs[] = {
> --	{ .irq = 37, },
> --	{ .irq = -1 }
> --};
> -
> - static struct omap_hwmod_addr_space omap2430_timer1_addrs[] = {
> - 	{
> -@@ -398,7 +394,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer1_slaves[] = {
> - /* timer1 hwmod */
> - static struct omap_hwmod omap2430_timer1_hwmod = {
> - 	.name		= "timer1",
> --	.mpu_irqs	= omap2430_timer1_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer1_mpu_irqs,
> - 	.main_clk	= "gpt1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -417,10 +413,6 @@ static struct omap_hwmod
> omap2430_timer1_hwmod = {
> -
> - /* timer2 */
> - static struct omap_hwmod omap2430_timer2_hwmod;
> --static struct omap_hwmod_irq_info omap2430_timer2_mpu_irqs[] = {
> --	{ .irq = 38, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer2 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer2 = {
> -@@ -439,7 +431,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer2_slaves[] = {
> - /* timer2 hwmod */
> - static struct omap_hwmod omap2430_timer2_hwmod = {
> - 	.name		= "timer2",
> --	.mpu_irqs	= omap2430_timer2_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer2_mpu_irqs,
> - 	.main_clk	= "gpt2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -458,10 +450,6 @@ static struct omap_hwmod
> omap2430_timer2_hwmod = {
> -
> - /* timer3 */
> - static struct omap_hwmod omap2430_timer3_hwmod;
> --static struct omap_hwmod_irq_info omap2430_timer3_mpu_irqs[] = {
> --	{ .irq = 39, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer3 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer3 = {
> -@@ -480,7 +468,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer3_slaves[] = {
> - /* timer3 hwmod */
> - static struct omap_hwmod omap2430_timer3_hwmod = {
> - 	.name		= "timer3",
> --	.mpu_irqs	= omap2430_timer3_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer3_mpu_irqs,
> - 	.main_clk	= "gpt3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -499,10 +487,6 @@ static struct omap_hwmod
> omap2430_timer3_hwmod = {
> -
> - /* timer4 */
> - static struct omap_hwmod omap2430_timer4_hwmod;
> --static struct omap_hwmod_irq_info omap2430_timer4_mpu_irqs[] = {
> --	{ .irq = 40, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer4 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer4 = {
> -@@ -521,7 +505,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer4_slaves[] = {
> - /* timer4 hwmod */
> - static struct omap_hwmod omap2430_timer4_hwmod = {
> - 	.name		= "timer4",
> --	.mpu_irqs	= omap2430_timer4_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer4_mpu_irqs,
> - 	.main_clk	= "gpt4_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -540,10 +524,6 @@ static struct omap_hwmod
> omap2430_timer4_hwmod = {
> -
> - /* timer5 */
> - static struct omap_hwmod omap2430_timer5_hwmod;
> --static struct omap_hwmod_irq_info omap2430_timer5_mpu_irqs[] = {
> --	{ .irq = 41, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer5 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer5 = {
> -@@ -562,7 +542,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer5_slaves[] = {
> - /* timer5 hwmod */
> - static struct omap_hwmod omap2430_timer5_hwmod = {
> - 	.name		= "timer5",
> --	.mpu_irqs	= omap2430_timer5_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer5_mpu_irqs,
> - 	.main_clk	= "gpt5_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -581,10 +561,6 @@ static struct omap_hwmod
> omap2430_timer5_hwmod = {
> -
> - /* timer6 */
> - static struct omap_hwmod omap2430_timer6_hwmod;
> --static struct omap_hwmod_irq_info omap2430_timer6_mpu_irqs[] = {
> --	{ .irq = 42, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer6 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer6 = {
> -@@ -603,7 +579,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer6_slaves[] = {
> - /* timer6 hwmod */
> - static struct omap_hwmod omap2430_timer6_hwmod = {
> - 	.name		= "timer6",
> --	.mpu_irqs	= omap2430_timer6_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer6_mpu_irqs,
> - 	.main_clk	= "gpt6_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -622,10 +598,6 @@ static struct omap_hwmod
> omap2430_timer6_hwmod = {
> -
> - /* timer7 */
> - static struct omap_hwmod omap2430_timer7_hwmod;
> --static struct omap_hwmod_irq_info omap2430_timer7_mpu_irqs[] = {
> --	{ .irq = 43, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer7 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer7 = {
> -@@ -644,7 +616,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer7_slaves[] = {
> - /* timer7 hwmod */
> - static struct omap_hwmod omap2430_timer7_hwmod = {
> - 	.name		= "timer7",
> --	.mpu_irqs	= omap2430_timer7_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer7_mpu_irqs,
> - 	.main_clk	= "gpt7_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -663,10 +635,6 @@ static struct omap_hwmod
> omap2430_timer7_hwmod = {
> -
> - /* timer8 */
> - static struct omap_hwmod omap2430_timer8_hwmod;
> --static struct omap_hwmod_irq_info omap2430_timer8_mpu_irqs[] = {
> --	{ .irq = 44, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer8 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer8 = {
> -@@ -685,7 +653,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer8_slaves[] = {
> - /* timer8 hwmod */
> - static struct omap_hwmod omap2430_timer8_hwmod = {
> - 	.name		= "timer8",
> --	.mpu_irqs	= omap2430_timer8_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer8_mpu_irqs,
> - 	.main_clk	= "gpt8_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -704,10 +672,6 @@ static struct omap_hwmod
> omap2430_timer8_hwmod = {
> -
> - /* timer9 */
> - static struct omap_hwmod omap2430_timer9_hwmod;
> --static struct omap_hwmod_irq_info omap2430_timer9_mpu_irqs[] = {
> --	{ .irq = 45, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer9 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer9 = {
> -@@ -726,7 +690,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer9_slaves[] = {
> - /* timer9 hwmod */
> - static struct omap_hwmod omap2430_timer9_hwmod = {
> - 	.name		= "timer9",
> --	.mpu_irqs	= omap2430_timer9_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer9_mpu_irqs,
> - 	.main_clk	= "gpt9_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -745,10 +709,6 @@ static struct omap_hwmod
> omap2430_timer9_hwmod = {
> -
> - /* timer10 */
> - static struct omap_hwmod omap2430_timer10_hwmod;
> --static struct omap_hwmod_irq_info omap2430_timer10_mpu_irqs[] = {
> --	{ .irq = 46, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer10 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer10 = {
> -@@ -767,7 +727,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer10_slaves[] = {
> - /* timer10 hwmod */
> - static struct omap_hwmod omap2430_timer10_hwmod = {
> - 	.name		= "timer10",
> --	.mpu_irqs	= omap2430_timer10_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer10_mpu_irqs,
> - 	.main_clk	= "gpt10_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -786,10 +746,6 @@ static struct omap_hwmod
> omap2430_timer10_hwmod = {
> -
> - /* timer11 */
> - static struct omap_hwmod omap2430_timer11_hwmod;
> --static struct omap_hwmod_irq_info omap2430_timer11_mpu_irqs[] = {
> --	{ .irq = 47, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer11 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer11 = {
> -@@ -808,7 +764,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer11_slaves[] = {
> - /* timer11 hwmod */
> - static struct omap_hwmod omap2430_timer11_hwmod = {
> - 	.name		= "timer11",
> --	.mpu_irqs	= omap2430_timer11_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer11_mpu_irqs,
> - 	.main_clk	= "gpt11_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -827,10 +783,6 @@ static struct omap_hwmod
> omap2430_timer11_hwmod = {
> -
> - /* timer12 */
> - static struct omap_hwmod omap2430_timer12_hwmod;
> --static struct omap_hwmod_irq_info omap2430_timer12_mpu_irqs[] = {
> --	{ .irq = 48, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer12 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__timer12 = {
> -@@ -849,7 +801,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_timer12_slaves[] = {
> - /* timer12 hwmod */
> - static struct omap_hwmod omap2430_timer12_hwmod = {
> - 	.name		= "timer12",
> --	.mpu_irqs	= omap2430_timer12_mpu_irqs,
> -+	.mpu_irqs	= omap2xxx_timer12_mpu_irqs,
> - 	.main_clk	= "gpt12_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -948,11 +900,6 @@ static struct omap_hwmod_class uart_class = {
> -
> - /* UART1 */
> -
> --static struct omap_hwmod_irq_info uart1_mpu_irqs[] = {
> --	{ .irq = INT_24XX_UART1_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART1_RX, },
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART1_TX, },
> -@@ -964,7 +911,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_uart1_slaves[] = {
> -
> - static struct omap_hwmod omap2430_uart1_hwmod = {
> - 	.name		= "uart1",
> --	.mpu_irqs	= uart1_mpu_irqs,
> -+	.mpu_irqs	= omap2_uart1_mpu_irqs,
> - 	.sdma_reqs	= uart1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart1_sdma_reqs),
> - 	.main_clk	= "uart1_fck",
> -@@ -985,11 +932,6 @@ static struct omap_hwmod
> omap2430_uart1_hwmod = {
> -
> - /* UART2 */
> -
> --static struct omap_hwmod_irq_info uart2_mpu_irqs[] = {
> --	{ .irq = INT_24XX_UART2_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info uart2_sdma_reqs[] = {
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART2_RX, },
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART2_TX, },
> -@@ -1001,7 +943,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_uart2_slaves[] = {
> -
> - static struct omap_hwmod omap2430_uart2_hwmod = {
> - 	.name		= "uart2",
> --	.mpu_irqs	= uart2_mpu_irqs,
> -+	.mpu_irqs	= omap2_uart2_mpu_irqs,
> - 	.sdma_reqs	= uart2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart2_sdma_reqs),
> - 	.main_clk	= "uart2_fck",
> -@@ -1022,11 +964,6 @@ static struct omap_hwmod
> omap2430_uart2_hwmod = {
> -
> - /* UART3 */
> -
> --static struct omap_hwmod_irq_info uart3_mpu_irqs[] = {
> --	{ .irq = INT_24XX_UART3_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info uart3_sdma_reqs[] = {
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART3_RX, },
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART3_TX, },
> -@@ -1038,7 +975,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_uart3_slaves[] = {
> -
> - static struct omap_hwmod omap2430_uart3_hwmod = {
> - 	.name		= "uart3",
> --	.mpu_irqs	= uart3_mpu_irqs,
> -+	.mpu_irqs	= omap2_uart3_mpu_irqs,
> - 	.sdma_reqs	= uart3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart3_sdma_reqs),
> - 	.main_clk	= "uart3_fck",
> -@@ -1150,11 +1087,6 @@ static struct omap_hwmod_class
> omap2430_dispc_hwmod_class = {
> - 	.sysc = &omap2430_dispc_sysc,
> - };
> -
> --static struct omap_hwmod_irq_info omap2430_dispc_irqs[] = {
> --	{ .irq = 25 },
> --	{ .irq = -1 }
> --};
> --
> - /* l4_core -> dss_dispc */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__dss_dispc = {
> - 	.master		= &omap2430_l4_core_hwmod,
> -@@ -1172,7 +1104,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_dss_dispc_slaves[] = {
> - static struct omap_hwmod omap2430_dss_dispc_hwmod = {
> - 	.name		= "dss_dispc",
> - 	.class		= &omap2430_dispc_hwmod_class,
> --	.mpu_irqs	= omap2430_dispc_irqs,
> -+	.mpu_irqs	= omap2_dispc_irqs,
> - 	.main_clk	= "dss1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1302,11 +1234,6 @@ static struct omap_i2c_dev_attr i2c_dev_attr = {
> -
> - /* I2C1 */
> -
> --static struct omap_hwmod_irq_info i2c1_mpu_irqs[] = {
> --	{ .irq = INT_24XX_I2C1_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info i2c1_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C1_TX },
> - 	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C1_RX },
> -@@ -1318,7 +1245,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_i2c1_slaves[] = {
> -
> - static struct omap_hwmod omap2430_i2c1_hwmod = {
> - 	.name		= "i2c1",
> --	.mpu_irqs	= i2c1_mpu_irqs,
> -+	.mpu_irqs	= omap2_i2c1_mpu_irqs,
> - 	.sdma_reqs	= i2c1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(i2c1_sdma_reqs),
> - 	.main_clk	= "i2chs1_fck",
> -@@ -1348,11 +1275,6 @@ static struct omap_hwmod
> omap2430_i2c1_hwmod = {
> -
> - /* I2C2 */
> -
> --static struct omap_hwmod_irq_info i2c2_mpu_irqs[] = {
> --	{ .irq = INT_24XX_I2C2_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info i2c2_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C2_TX },
> - 	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C2_RX },
> -@@ -1364,7 +1286,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_i2c2_slaves[] = {
> -
> - static struct omap_hwmod omap2430_i2c2_hwmod = {
> - 	.name		= "i2c2",
> --	.mpu_irqs	= i2c2_mpu_irqs,
> -+	.mpu_irqs	= omap2_i2c2_mpu_irqs,
> - 	.sdma_reqs	= i2c2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(i2c2_sdma_reqs),
> - 	.main_clk	= "i2chs2_fck",
> -@@ -1502,11 +1424,6 @@ static struct omap_hwmod_class
> omap243x_gpio_hwmod_class = {
> - };
> -
> - /* gpio1 */
> --static struct omap_hwmod_irq_info omap243x_gpio1_irqs[] = {
> --	{ .irq = 29 }, /* INT_24XX_GPIO_BANK1 */
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2430_gpio1_slaves[] = {
> - 	&omap2430_l4_wkup__gpio1,
> - };
> -@@ -1514,7 +1431,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_gpio1_slaves[] = {
> - static struct omap_hwmod omap2430_gpio1_hwmod = {
> - 	.name		= "gpio1",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> --	.mpu_irqs	= omap243x_gpio1_irqs,
> -+	.mpu_irqs	= omap2_gpio1_irqs,
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1533,11 +1450,6 @@ static struct omap_hwmod
> omap2430_gpio1_hwmod = {
> - };
> -
> - /* gpio2 */
> --static struct omap_hwmod_irq_info omap243x_gpio2_irqs[] = {
> --	{ .irq = 30 }, /* INT_24XX_GPIO_BANK2 */
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2430_gpio2_slaves[] = {
> - 	&omap2430_l4_wkup__gpio2,
> - };
> -@@ -1545,7 +1457,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_gpio2_slaves[] = {
> - static struct omap_hwmod omap2430_gpio2_hwmod = {
> - 	.name		= "gpio2",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> --	.mpu_irqs	= omap243x_gpio2_irqs,
> -+	.mpu_irqs	= omap2_gpio2_irqs,
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1564,11 +1476,6 @@ static struct omap_hwmod
> omap2430_gpio2_hwmod = {
> - };
> -
> - /* gpio3 */
> --static struct omap_hwmod_irq_info omap243x_gpio3_irqs[] = {
> --	{ .irq = 31 }, /* INT_24XX_GPIO_BANK3 */
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2430_gpio3_slaves[] = {
> - 	&omap2430_l4_wkup__gpio3,
> - };
> -@@ -1576,7 +1483,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_gpio3_slaves[] = {
> - static struct omap_hwmod omap2430_gpio3_hwmod = {
> - 	.name		= "gpio3",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> --	.mpu_irqs	= omap243x_gpio3_irqs,
> -+	.mpu_irqs	= omap2_gpio3_irqs,
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1595,11 +1502,6 @@ static struct omap_hwmod
> omap2430_gpio3_hwmod = {
> - };
> -
> - /* gpio4 */
> --static struct omap_hwmod_irq_info omap243x_gpio4_irqs[] = {
> --	{ .irq = 32 }, /* INT_24XX_GPIO_BANK4 */
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2430_gpio4_slaves[] = {
> - 	&omap2430_l4_wkup__gpio4,
> - };
> -@@ -1607,7 +1509,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_gpio4_slaves[] = {
> - static struct omap_hwmod omap2430_gpio4_hwmod = {
> - 	.name		= "gpio4",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> --	.mpu_irqs	= omap243x_gpio4_irqs,
> -+	.mpu_irqs	= omap2_gpio4_irqs,
> - 	.main_clk	= "gpios_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1680,14 +1582,6 @@ static struct omap_dma_dev_attr dma_dev_attr =
> {
> - 	.lch_count = 32,
> - };
> -
> --static struct omap_hwmod_irq_info omap2430_dma_system_irqs[] = {
> --	{ .name = "0", .irq = 12 }, /* INT_24XX_SDMA_IRQ0 */
> --	{ .name = "1", .irq = 13 }, /* INT_24XX_SDMA_IRQ1 */
> --	{ .name = "2", .irq = 14 }, /* INT_24XX_SDMA_IRQ2 */
> --	{ .name = "3", .irq = 15 }, /* INT_24XX_SDMA_IRQ3 */
> --	{ .irq = -1 }
> --};
> --
> - /* dma_system -> L3 */
> - static struct omap_hwmod_ocp_if omap2430_dma_system__l3 = {
> - 	.master		= &omap2430_dma_system_hwmod,
> -@@ -1718,7 +1612,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_dma_system_slaves[] = {
> - static struct omap_hwmod omap2430_dma_system_hwmod = {
> - 	.name		= "dma",
> - 	.class		= &omap2430_dma_hwmod_class,
> --	.mpu_irqs	= omap2430_dma_system_irqs,
> -+	.mpu_irqs	= omap2_dma_system_irqs,
> - 	.main_clk	= "core_l3_ck",
> - 	.slaves		= omap2430_dma_system_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_dma_system_slaves),
> -@@ -1813,11 +1707,6 @@ static struct omap_hwmod_class
> omap2430_mcspi_class = {
> - };
> -
> - /* mcspi1 */
> --static struct omap_hwmod_irq_info omap2430_mcspi1_mpu_irqs[] = {
> --	{ .irq = 65 },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info omap2430_mcspi1_sdma_reqs[] = {
> - 	{ .name = "tx0", .dma_req = 35 }, /* DMA_SPI1_TX0 */
> - 	{ .name = "rx0", .dma_req = 36 }, /* DMA_SPI1_RX0 */
> -@@ -1839,7 +1728,7 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi1_dev_attr = {
> -
> - static struct omap_hwmod omap2430_mcspi1_hwmod = {
> - 	.name		= "mcspi1_hwmod",
> --	.mpu_irqs	= omap2430_mcspi1_mpu_irqs,
> -+	.mpu_irqs	= omap2_mcspi1_mpu_irqs,
> - 	.sdma_reqs	= omap2430_mcspi1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcspi1_sdma_reqs),
> - 	.main_clk	= "mcspi1_fck",
> -@@ -1860,11 +1749,6 @@ static struct omap_hwmod
> omap2430_mcspi1_hwmod = {
> - };
> -
> - /* mcspi2 */
> --static struct omap_hwmod_irq_info omap2430_mcspi2_mpu_irqs[] = {
> --	{ .irq = 66 },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info omap2430_mcspi2_sdma_reqs[] = {
> - 	{ .name = "tx0", .dma_req = 43 }, /* DMA_SPI2_TX0 */
> - 	{ .name = "rx0", .dma_req = 44 }, /* DMA_SPI2_RX0 */
> -@@ -1882,7 +1766,7 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi2_dev_attr = {
> -
> - static struct omap_hwmod omap2430_mcspi2_hwmod = {
> - 	.name		= "mcspi2_hwmod",
> --	.mpu_irqs	= omap2430_mcspi2_mpu_irqs,
> -+	.mpu_irqs	= omap2_mcspi2_mpu_irqs,
> - 	.sdma_reqs	= omap2430_mcspi2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcspi2_sdma_reqs),
> - 	.main_clk	= "mcspi2_fck",
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
> -new file mode 100644
> -index 0000000..245294b
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
> -@@ -0,0 +1,142 @@
> -+/*
> -+ * omap_hwmod_2xxx_3xxx_ipblock_data.c - common IP block data for
> OMAP2/3
> -+ *
> -+ * Copyright (C) 2011 Nokia Corporation
> -+ * Paul Walmsley
> -+ *
> -+ * This program is free software; you can redistribute it and/or modify
> -+ * it under the terms of the GNU General Public License version 2 as
> -+ * published by the Free Software Foundation.
> -+ */
> -+#include <plat/omap_hwmod.h>
> -+#include <plat/serial.h>
> -+
> -+#include <mach/irqs.h>
> -+
> -+#include "omap_hwmod_common_data.h"
> -+
> -+struct omap_hwmod_irq_info omap2_timer1_mpu_irqs[] = {
> -+	{ .irq = 37, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_timer2_mpu_irqs[] = {
> -+	{ .irq = 38, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_timer3_mpu_irqs[] = {
> -+	{ .irq = 39, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_timer4_mpu_irqs[] = {
> -+	{ .irq = 40, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_timer5_mpu_irqs[] = {
> -+	{ .irq = 41, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_timer6_mpu_irqs[] = {
> -+	{ .irq = 42, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_timer7_mpu_irqs[] = {
> -+	{ .irq = 43, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_timer8_mpu_irqs[] = {
> -+	{ .irq = 44, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_timer9_mpu_irqs[] = {
> -+	{ .irq = 45, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_timer10_mpu_irqs[] = {
> -+	{ .irq = 46, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_timer11_mpu_irqs[] = {
> -+	{ .irq = 47, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_uart1_mpu_irqs[] = {
> -+	{ .irq = INT_24XX_UART1_IRQ, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_uart2_mpu_irqs[] = {
> -+	{ .irq = INT_24XX_UART2_IRQ, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_uart3_mpu_irqs[] = {
> -+	{ .irq = INT_24XX_UART3_IRQ, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_dispc_irqs[] = {
> -+	{ .irq = 25 },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_i2c1_mpu_irqs[] = {
> -+	{ .irq = INT_24XX_I2C1_IRQ, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_i2c2_mpu_irqs[] = {
> -+	{ .irq = INT_24XX_I2C2_IRQ, },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_gpio1_irqs[] = {
> -+	{ .irq = 29 }, /* INT_24XX_GPIO_BANK1 */
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_gpio2_irqs[] = {
> -+	{ .irq = 30 }, /* INT_24XX_GPIO_BANK2 */
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_gpio3_irqs[] = {
> -+	{ .irq = 31 }, /* INT_24XX_GPIO_BANK3 */
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_gpio4_irqs[] = {
> -+	{ .irq = 32 }, /* INT_24XX_GPIO_BANK4 */
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_dma_system_irqs[] = {
> -+	{ .name = "0", .irq = 12 }, /* INT_24XX_SDMA_IRQ0 */
> -+	{ .name = "1", .irq = 13 }, /* INT_24XX_SDMA_IRQ1 */
> -+	{ .name = "2", .irq = 14 }, /* INT_24XX_SDMA_IRQ2 */
> -+	{ .name = "3", .irq = 15 }, /* INT_24XX_SDMA_IRQ3 */
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_mcspi1_mpu_irqs[] = {
> -+	{ .irq = 65 },
> -+	{ .irq = -1 }
> -+};
> -+
> -+struct omap_hwmod_irq_info omap2_mcspi2_mpu_irqs[] = {
> -+	{ .irq = 66 },
> -+	{ .irq = -1 }
> -+};
> -+
> -+
> -+
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
> -new file mode 100644
> -index 0000000..5a078a6
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
> -@@ -0,0 +1,21 @@
> -+/*
> -+ * omap_hwmod_2xxx_ipblock_data.c - common IP block data for OMAP2xxx
> -+ *
> -+ * Copyright (C) 2011 Nokia Corporation
> -+ * Paul Walmsley
> -+ *
> -+ * This program is free software; you can redistribute it and/or modify
> -+ * it under the terms of the GNU General Public License version 2 as
> -+ * published by the Free Software Foundation.
> -+ */
> -+#include <plat/omap_hwmod.h>
> -+#include <plat/serial.h>
> -+
> -+#include <mach/irqs.h>
> -+
> -+#include "omap_hwmod_common_data.h"
> -+
> -+struct omap_hwmod_irq_info omap2xxx_timer12_mpu_irqs[] = {
> -+	{ .irq = 48, },
> -+	{ .irq = -1 }
> -+};
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -index cc178b5..6bac4bb 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -@@ -151,7 +151,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_l3_main_masters[] = {
> - static struct omap_hwmod omap3xxx_l3_main_hwmod = {
> - 	.name		= "l3_main",
> - 	.class		= &l3_hwmod_class,
> --	.mpu_irqs       = omap3xxx_l3_main_irqs,
> -+	.mpu_irqs	= omap3xxx_l3_main_irqs,
> - 	.masters	= omap3xxx_l3_main_masters,
> - 	.masters_cnt	= ARRAY_SIZE(omap3xxx_l3_main_masters),
> - 	.slaves		= omap3xxx_l3_main_slaves,
> -@@ -572,10 +572,6 @@ static struct omap_hwmod_class
> omap3xxx_timer_hwmod_class = {
> -
> - /* timer1 */
> - static struct omap_hwmod omap3xxx_timer1_hwmod;
> --static struct omap_hwmod_irq_info omap3xxx_timer1_mpu_irqs[] = {
> --	{ .irq = 37, },
> --	{ .irq = -1 }
> --};
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer1_addrs[] = {
> - 	{
> -@@ -603,7 +599,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer1_slaves[] = {
> - /* timer1 hwmod */
> - static struct omap_hwmod omap3xxx_timer1_hwmod = {
> - 	.name		= "timer1",
> --	.mpu_irqs	= omap3xxx_timer1_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer1_mpu_irqs,
> - 	.main_clk	= "gpt1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -622,10 +618,6 @@ static struct omap_hwmod
> omap3xxx_timer1_hwmod = {
> -
> - /* timer2 */
> - static struct omap_hwmod omap3xxx_timer2_hwmod;
> --static struct omap_hwmod_irq_info omap3xxx_timer2_mpu_irqs[] = {
> --	{ .irq = 38, },
> --	{ .irq = -1 }
> --};
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer2_addrs[] = {
> - 	{
> -@@ -653,7 +645,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer2_slaves[] = {
> - /* timer2 hwmod */
> - static struct omap_hwmod omap3xxx_timer2_hwmod = {
> - 	.name		= "timer2",
> --	.mpu_irqs	= omap3xxx_timer2_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer2_mpu_irqs,
> - 	.main_clk	= "gpt2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -672,10 +664,6 @@ static struct omap_hwmod
> omap3xxx_timer2_hwmod = {
> -
> - /* timer3 */
> - static struct omap_hwmod omap3xxx_timer3_hwmod;
> --static struct omap_hwmod_irq_info omap3xxx_timer3_mpu_irqs[] = {
> --	{ .irq = 39, },
> --	{ .irq = -1 }
> --};
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer3_addrs[] = {
> - 	{
> -@@ -703,7 +691,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer3_slaves[] = {
> - /* timer3 hwmod */
> - static struct omap_hwmod omap3xxx_timer3_hwmod = {
> - 	.name		= "timer3",
> --	.mpu_irqs	= omap3xxx_timer3_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer3_mpu_irqs,
> - 	.main_clk	= "gpt3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -722,10 +710,6 @@ static struct omap_hwmod
> omap3xxx_timer3_hwmod = {
> -
> - /* timer4 */
> - static struct omap_hwmod omap3xxx_timer4_hwmod;
> --static struct omap_hwmod_irq_info omap3xxx_timer4_mpu_irqs[] = {
> --	{ .irq = 40, },
> --	{ .irq = -1 }
> --};
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer4_addrs[] = {
> - 	{
> -@@ -753,7 +737,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer4_slaves[] = {
> - /* timer4 hwmod */
> - static struct omap_hwmod omap3xxx_timer4_hwmod = {
> - 	.name		= "timer4",
> --	.mpu_irqs	= omap3xxx_timer4_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer4_mpu_irqs,
> - 	.main_clk	= "gpt4_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -772,10 +756,6 @@ static struct omap_hwmod
> omap3xxx_timer4_hwmod = {
> -
> - /* timer5 */
> - static struct omap_hwmod omap3xxx_timer5_hwmod;
> --static struct omap_hwmod_irq_info omap3xxx_timer5_mpu_irqs[] = {
> --	{ .irq = 41, },
> --	{ .irq = -1 }
> --};
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer5_addrs[] = {
> - 	{
> -@@ -803,7 +783,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer5_slaves[] = {
> - /* timer5 hwmod */
> - static struct omap_hwmod omap3xxx_timer5_hwmod = {
> - 	.name		= "timer5",
> --	.mpu_irqs	= omap3xxx_timer5_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer5_mpu_irqs,
> - 	.main_clk	= "gpt5_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -822,10 +802,6 @@ static struct omap_hwmod
> omap3xxx_timer5_hwmod = {
> -
> - /* timer6 */
> - static struct omap_hwmod omap3xxx_timer6_hwmod;
> --static struct omap_hwmod_irq_info omap3xxx_timer6_mpu_irqs[] = {
> --	{ .irq = 42, },
> --	{ .irq = -1 }
> --};
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer6_addrs[] = {
> - 	{
> -@@ -853,7 +829,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer6_slaves[] = {
> - /* timer6 hwmod */
> - static struct omap_hwmod omap3xxx_timer6_hwmod = {
> - 	.name		= "timer6",
> --	.mpu_irqs	= omap3xxx_timer6_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer6_mpu_irqs,
> - 	.main_clk	= "gpt6_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -872,10 +848,6 @@ static struct omap_hwmod
> omap3xxx_timer6_hwmod = {
> -
> - /* timer7 */
> - static struct omap_hwmod omap3xxx_timer7_hwmod;
> --static struct omap_hwmod_irq_info omap3xxx_timer7_mpu_irqs[] = {
> --	{ .irq = 43, },
> --	{ .irq = -1 }
> --};
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer7_addrs[] = {
> - 	{
> -@@ -903,7 +875,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer7_slaves[] = {
> - /* timer7 hwmod */
> - static struct omap_hwmod omap3xxx_timer7_hwmod = {
> - 	.name		= "timer7",
> --	.mpu_irqs	= omap3xxx_timer7_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer7_mpu_irqs,
> - 	.main_clk	= "gpt7_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -922,10 +894,6 @@ static struct omap_hwmod
> omap3xxx_timer7_hwmod = {
> -
> - /* timer8 */
> - static struct omap_hwmod omap3xxx_timer8_hwmod;
> --static struct omap_hwmod_irq_info omap3xxx_timer8_mpu_irqs[] = {
> --	{ .irq = 44, },
> --	{ .irq = -1 }
> --};
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer8_addrs[] = {
> - 	{
> -@@ -953,7 +921,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer8_slaves[] = {
> - /* timer8 hwmod */
> - static struct omap_hwmod omap3xxx_timer8_hwmod = {
> - 	.name		= "timer8",
> --	.mpu_irqs	= omap3xxx_timer8_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer8_mpu_irqs,
> - 	.main_clk	= "gpt8_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -972,10 +940,6 @@ static struct omap_hwmod
> omap3xxx_timer8_hwmod = {
> -
> - /* timer9 */
> - static struct omap_hwmod omap3xxx_timer9_hwmod;
> --static struct omap_hwmod_irq_info omap3xxx_timer9_mpu_irqs[] = {
> --	{ .irq = 45, },
> --	{ .irq = -1 }
> --};
> -
> - static struct omap_hwmod_addr_space omap3xxx_timer9_addrs[] = {
> - 	{
> -@@ -1003,7 +967,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer9_slaves[] = {
> - /* timer9 hwmod */
> - static struct omap_hwmod omap3xxx_timer9_hwmod = {
> - 	.name		= "timer9",
> --	.mpu_irqs	= omap3xxx_timer9_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer9_mpu_irqs,
> - 	.main_clk	= "gpt9_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1022,10 +986,6 @@ static struct omap_hwmod
> omap3xxx_timer9_hwmod = {
> -
> - /* timer10 */
> - static struct omap_hwmod omap3xxx_timer10_hwmod;
> --static struct omap_hwmod_irq_info omap3xxx_timer10_mpu_irqs[] = {
> --	{ .irq = 46, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer10 */
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__timer10 = {
> -@@ -1044,7 +1004,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer10_slaves[] = {
> - /* timer10 hwmod */
> - static struct omap_hwmod omap3xxx_timer10_hwmod = {
> - 	.name		= "timer10",
> --	.mpu_irqs	= omap3xxx_timer10_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer10_mpu_irqs,
> - 	.main_clk	= "gpt10_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1063,10 +1023,6 @@ static struct omap_hwmod
> omap3xxx_timer10_hwmod = {
> -
> - /* timer11 */
> - static struct omap_hwmod omap3xxx_timer11_hwmod;
> --static struct omap_hwmod_irq_info omap3xxx_timer11_mpu_irqs[] = {
> --	{ .irq = 47, },
> --	{ .irq = -1 }
> --};
> -
> - /* l4_core -> timer11 */
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__timer11 = {
> -@@ -1085,7 +1041,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_timer11_slaves[] = {
> - /* timer11 hwmod */
> - static struct omap_hwmod omap3xxx_timer11_hwmod = {
> - 	.name		= "timer11",
> --	.mpu_irqs	= omap3xxx_timer11_mpu_irqs,
> -+	.mpu_irqs	= omap2_timer11_mpu_irqs,
> - 	.main_clk	= "gpt11_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1254,11 +1210,6 @@ static struct omap_hwmod_class uart_class = {
> -
> - /* UART1 */
> -
> --static struct omap_hwmod_irq_info uart1_mpu_irqs[] = {
> --	{ .irq = INT_24XX_UART1_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART1_TX, },
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART1_RX, },
> -@@ -1270,7 +1221,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_uart1_slaves[] = {
> -
> - static struct omap_hwmod omap3xxx_uart1_hwmod = {
> - 	.name		= "uart1",
> --	.mpu_irqs	= uart1_mpu_irqs,
> -+	.mpu_irqs	= omap2_uart1_mpu_irqs,
> - 	.sdma_reqs	= uart1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart1_sdma_reqs),
> - 	.main_clk	= "uart1_fck",
> -@@ -1291,11 +1242,6 @@ static struct omap_hwmod
> omap3xxx_uart1_hwmod = {
> -
> - /* UART2 */
> -
> --static struct omap_hwmod_irq_info uart2_mpu_irqs[] = {
> --	{ .irq = INT_24XX_UART2_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info uart2_sdma_reqs[] = {
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART2_TX, },
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART2_RX, },
> -@@ -1307,7 +1253,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_uart2_slaves[] = {
> -
> - static struct omap_hwmod omap3xxx_uart2_hwmod = {
> - 	.name		= "uart2",
> --	.mpu_irqs	= uart2_mpu_irqs,
> -+	.mpu_irqs	= omap2_uart2_mpu_irqs,
> - 	.sdma_reqs	= uart2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart2_sdma_reqs),
> - 	.main_clk	= "uart2_fck",
> -@@ -1328,11 +1274,6 @@ static struct omap_hwmod
> omap3xxx_uart2_hwmod = {
> -
> - /* UART3 */
> -
> --static struct omap_hwmod_irq_info uart3_mpu_irqs[] = {
> --	{ .irq = INT_24XX_UART3_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info uart3_sdma_reqs[] = {
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART3_TX, },
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART3_RX, },
> -@@ -1344,7 +1285,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_uart3_slaves[] = {
> -
> - static struct omap_hwmod omap3xxx_uart3_hwmod = {
> - 	.name		= "uart3",
> --	.mpu_irqs	= uart3_mpu_irqs,
> -+	.mpu_irqs	= omap2_uart3_mpu_irqs,
> - 	.sdma_reqs	= uart3_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(uart3_sdma_reqs),
> - 	.main_clk	= "uart3_fck",
> -@@ -1555,11 +1496,6 @@ static struct omap_hwmod_class
> omap3xxx_dispc_hwmod_class = {
> - 	.sysc = &omap3xxx_dispc_sysc,
> - };
> -
> --static struct omap_hwmod_irq_info omap3xxx_dispc_irqs[] = {
> --	{ .irq = 25 },
> --	{ .irq = -1 }
> --};
> --
> - /* l4_core -> dss_dispc */
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__dss_dispc = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> -@@ -1584,7 +1520,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_dss_dispc_slaves[] = {
> - static struct omap_hwmod omap3xxx_dss_dispc_hwmod = {
> - 	.name		= "dss_dispc",
> - 	.class		= &omap3xxx_dispc_hwmod_class,
> --	.mpu_irqs	= omap3xxx_dispc_irqs,
> -+	.mpu_irqs	= omap2_dispc_irqs,
> - 	.main_clk	= "dss1_alwon_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1781,11 +1717,6 @@ static struct omap_i2c_dev_attr i2c1_dev_attr = {
> - 	.fifo_depth	= 8, /* bytes */
> - };
> -
> --static struct omap_hwmod_irq_info i2c1_mpu_irqs[] = {
> --	{ .irq = INT_24XX_I2C1_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info i2c1_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C1_TX },
> - 	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C1_RX },
> -@@ -1797,7 +1728,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_i2c1_slaves[] = {
> -
> - static struct omap_hwmod omap3xxx_i2c1_hwmod = {
> - 	.name		= "i2c1",
> --	.mpu_irqs	= i2c1_mpu_irqs,
> -+	.mpu_irqs	= omap2_i2c1_mpu_irqs,
> - 	.sdma_reqs	= i2c1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(i2c1_sdma_reqs),
> - 	.main_clk	= "i2c1_fck",
> -@@ -1823,11 +1754,6 @@ static struct omap_i2c_dev_attr i2c2_dev_attr = {
> - 	.fifo_depth	= 8, /* bytes */
> - };
> -
> --static struct omap_hwmod_irq_info i2c2_mpu_irqs[] = {
> --	{ .irq = INT_24XX_I2C2_IRQ, },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info i2c2_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C2_TX },
> - 	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C2_RX },
> -@@ -1839,7 +1765,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_i2c2_slaves[] = {
> -
> - static struct omap_hwmod omap3xxx_i2c2_hwmod = {
> - 	.name		= "i2c2",
> --	.mpu_irqs	= i2c2_mpu_irqs,
> -+	.mpu_irqs	= omap2_i2c2_mpu_irqs,
> - 	.sdma_reqs	= i2c2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(i2c2_sdma_reqs),
> - 	.main_clk	= "i2c2_fck",
> -@@ -2032,11 +1958,6 @@ static struct omap_gpio_dev_attr gpio_dev_attr =
> {
> - };
> -
> - /* gpio1 */
> --static struct omap_hwmod_irq_info omap3xxx_gpio1_irqs[] = {
> --	{ .irq = 29 }, /* INT_34XX_GPIO_BANK1 */
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_opt_clk gpio1_opt_clks[] = {
> - 	{ .role = "dbclk", .clk = "gpio1_dbck", },
> - };
> -@@ -2048,7 +1969,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_gpio1_slaves[] = {
> - static struct omap_hwmod omap3xxx_gpio1_hwmod = {
> - 	.name		= "gpio1",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> --	.mpu_irqs	= omap3xxx_gpio1_irqs,
> -+	.mpu_irqs	= omap2_gpio1_irqs,
> - 	.main_clk	= "gpio1_ick",
> - 	.opt_clks	= gpio1_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(gpio1_opt_clks),
> -@@ -2069,11 +1990,6 @@ static struct omap_hwmod
> omap3xxx_gpio1_hwmod = {
> - };
> -
> - /* gpio2 */
> --static struct omap_hwmod_irq_info omap3xxx_gpio2_irqs[] = {
> --	{ .irq = 30 }, /* INT_34XX_GPIO_BANK2 */
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_opt_clk gpio2_opt_clks[] = {
> - 	{ .role = "dbclk", .clk = "gpio2_dbck", },
> - };
> -@@ -2085,7 +2001,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_gpio2_slaves[] = {
> - static struct omap_hwmod omap3xxx_gpio2_hwmod = {
> - 	.name		= "gpio2",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> --	.mpu_irqs	= omap3xxx_gpio2_irqs,
> -+	.mpu_irqs	= omap2_gpio2_irqs,
> - 	.main_clk	= "gpio2_ick",
> - 	.opt_clks	= gpio2_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(gpio2_opt_clks),
> -@@ -2106,11 +2022,6 @@ static struct omap_hwmod
> omap3xxx_gpio2_hwmod = {
> - };
> -
> - /* gpio3 */
> --static struct omap_hwmod_irq_info omap3xxx_gpio3_irqs[] = {
> --	{ .irq = 31 }, /* INT_34XX_GPIO_BANK3 */
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_opt_clk gpio3_opt_clks[] = {
> - 	{ .role = "dbclk", .clk = "gpio3_dbck", },
> - };
> -@@ -2122,7 +2033,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_gpio3_slaves[] = {
> - static struct omap_hwmod omap3xxx_gpio3_hwmod = {
> - 	.name		= "gpio3",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> --	.mpu_irqs	= omap3xxx_gpio3_irqs,
> -+	.mpu_irqs	= omap2_gpio3_irqs,
> - 	.main_clk	= "gpio3_ick",
> - 	.opt_clks	= gpio3_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(gpio3_opt_clks),
> -@@ -2143,11 +2054,6 @@ static struct omap_hwmod
> omap3xxx_gpio3_hwmod = {
> - };
> -
> - /* gpio4 */
> --static struct omap_hwmod_irq_info omap3xxx_gpio4_irqs[] = {
> --	{ .irq = 32 }, /* INT_34XX_GPIO_BANK4 */
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_opt_clk gpio4_opt_clks[] = {
> - 	{ .role = "dbclk", .clk = "gpio4_dbck", },
> - };
> -@@ -2159,7 +2065,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_gpio4_slaves[] = {
> - static struct omap_hwmod omap3xxx_gpio4_hwmod = {
> - 	.name		= "gpio4",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> --	.mpu_irqs	= omap3xxx_gpio4_irqs,
> -+	.mpu_irqs	= omap2_gpio4_irqs,
> - 	.main_clk	= "gpio4_ick",
> - 	.opt_clks	= gpio4_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(gpio4_opt_clks),
> -@@ -2287,14 +2193,6 @@ static struct omap_hwmod_class
> omap3xxx_dma_hwmod_class = {
> - };
> -
> - /* dma_system */
> --static struct omap_hwmod_irq_info omap3xxx_dma_system_irqs[] = {
> --	{ .name = "0", .irq = 12 }, /* INT_24XX_SDMA_IRQ0 */
> --	{ .name = "1", .irq = 13 }, /* INT_24XX_SDMA_IRQ1 */
> --	{ .name = "2", .irq = 14 }, /* INT_24XX_SDMA_IRQ2 */
> --	{ .name = "3", .irq = 15 }, /* INT_24XX_SDMA_IRQ3 */
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_addr_space omap3xxx_dma_system_addrs[] = {
> - 	{
> - 		.pa_start	= 0x48056000,
> -@@ -2326,7 +2224,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_dma_system_slaves[] = {
> - static struct omap_hwmod omap3xxx_dma_system_hwmod = {
> - 	.name		= "dma",
> - 	.class		= &omap3xxx_dma_hwmod_class,
> --	.mpu_irqs	= omap3xxx_dma_system_irqs,
> -+	.mpu_irqs	= omap2_dma_system_irqs,
> - 	.main_clk	= "core_l3_ick",
> - 	.prcm = {
> - 		.omap2 = {
> -@@ -3044,11 +2942,6 @@ static struct omap_hwmod_class
> omap34xx_mcspi_class = {
> - };
> -
> - /* mcspi1 */
> --static struct omap_hwmod_irq_info omap34xx_mcspi1_mpu_irqs[] = {
> --	{ .name = "irq", .irq = 65 },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info omap34xx_mcspi1_sdma_reqs[] = {
> - 	{ .name = "tx0", .dma_req = 35 },
> - 	{ .name = "rx0", .dma_req = 36 },
> -@@ -3070,7 +2963,7 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi1_dev_attr = {
> -
> - static struct omap_hwmod omap34xx_mcspi1 = {
> - 	.name		= "mcspi1",
> --	.mpu_irqs	= omap34xx_mcspi1_mpu_irqs,
> -+	.mpu_irqs	= omap2_mcspi1_mpu_irqs,
> - 	.sdma_reqs	= omap34xx_mcspi1_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mcspi1_sdma_reqs),
> - 	.main_clk	= "mcspi1_fck",
> -@@ -3091,11 +2984,6 @@ static struct omap_hwmod omap34xx_mcspi1 = {
> - };
> -
> - /* mcspi2 */
> --static struct omap_hwmod_irq_info omap34xx_mcspi2_mpu_irqs[] = {
> --	{ .name = "irq", .irq = 66 },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_dma_info omap34xx_mcspi2_sdma_reqs[] = {
> - 	{ .name = "tx0", .dma_req = 43 },
> - 	{ .name = "rx0", .dma_req = 44 },
> -@@ -3113,7 +3001,7 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi2_dev_attr = {
> -
> - static struct omap_hwmod omap34xx_mcspi2 = {
> - 	.name		= "mcspi2",
> --	.mpu_irqs	= omap34xx_mcspi2_mpu_irqs,
> -+	.mpu_irqs	= omap2_mcspi2_mpu_irqs,
> - 	.sdma_reqs	= omap34xx_mcspi2_sdma_reqs,
> - 	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mcspi2_sdma_reqs),
> - 	.main_clk	= "mcspi2_fck",
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_common_data.h
> b/arch/arm/mach-omap2/omap_hwmod_common_data.h
> -index 76a2f11..1ac878c 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_common_data.h
> -+++ b/arch/arm/mach-omap2/omap_hwmod_common_data.h
> -@@ -49,6 +49,35 @@ extern struct omap_hwmod_addr_space
> omap2_dma_system_addrs[];
> - extern struct omap_hwmod_addr_space omap2_mailbox_addrs[];
> - extern struct omap_hwmod_addr_space omap2_mcbsp1_addrs[];
> -
> -+/* Common IP block data across OMAP2xxx */
> -+extern struct omap_hwmod_irq_info omap2xxx_timer12_mpu_irqs[];
> -+
> -+/* Common IP block data across OMAP2/3 */
> -+extern struct omap_hwmod_irq_info omap2_timer1_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_timer2_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_timer3_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_timer4_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_timer5_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_timer6_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_timer7_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_timer8_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_timer9_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_timer10_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_timer11_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_uart1_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_uart2_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_uart3_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_dispc_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_i2c1_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_i2c2_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_gpio1_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_gpio2_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_gpio3_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_gpio4_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_dma_system_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_mcspi1_mpu_irqs[];
> -+extern struct omap_hwmod_irq_info omap2_mcspi2_mpu_irqs[];
> -+
> - /* OMAP hwmod classes - forward declarations */
> - extern struct omap_hwmod_class l3_hwmod_class;
> - extern struct omap_hwmod_class l4_hwmod_class;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0041-omap_hwmod-
> use-a-terminator-record-with-omap_hwmod_d.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0041-omap_hwmod-use-a-terminator-
> record-with-omap_hwmod_d.patch
> deleted file mode 100644
> index b1722a2..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0041-omap_hwmod-use-a-
> terminator-record-with-omap_hwmod_d.patch
> +++ /dev/null
> @@ -1,1382 +0,0 @@
> -From e890f701dbd58ecb9377097e1a565e34cbf73e4b Mon Sep 17 00:00:00
> 2001
> -From: Paul Walmsley <paul at pwsan.com>
> -Date: Sat, 9 Jul 2011 19:14:07 -0600
> -Subject: [PATCH 041/149] omap_hwmod: use a terminator record with
> omap_hwmod_dma_info arrays
> -
> -Previously, struct omap_hwmod_dma_info arrays were unterminated; and
> -users of these arrays used the ARRAY_SIZE() macro to determine the
> -length of the array.  However, ARRAY_SIZE() only works when the array
> -is in the same scope as the macro user.
> -
> -So far this hasn't been a problem.  However, to reduce duplicated
> -data, a subsequent patch will move common data to a separate, shared
> -file.  When this is done, ARRAY_SIZE() will no longer be usable.
> -
> -This patch removes ARRAY_SIZE() usage for struct omap_hwmod_dma_info
> -arrays and uses a sentinel value (irq == -1) as the array terminator
> -instead.
> -
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod.c             |   30 ++++++++++++-
> - arch/arm/mach-omap2/omap_hwmod_2420_data.c   |   20 ++++----
> - arch/arm/mach-omap2/omap_hwmod_2430_data.c   |   32 +++++++-------
> - arch/arm/mach-omap2/omap_hwmod_3xxx_data.c   |   43 +++++++++--------
> --
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c   |   60 +++++++++++++-
> ------------
> - arch/arm/plat-omap/include/plat/omap_hwmod.h |    8 +--
> - 6 files changed, 106 insertions(+), 87 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index b761968..7d242c9 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -702,6 +702,29 @@ static int _count_mpu_irqs(struct omap_hwmod
> *oh)
> - }
> -
> - /**
> -+ * _count_sdma_reqs - count the number of SDMA request lines associated
> with @oh
> -+ * @oh: struct omap_hwmod *oh
> -+ *
> -+ * Count and return the number of SDMA request lines associated with
> -+ * the hwmod @oh.  Used to allocate struct resource data.  Returns 0
> -+ * if @oh is NULL.
> -+ */
> -+static int _count_sdma_reqs(struct omap_hwmod *oh)
> -+{
> -+	struct omap_hwmod_dma_info *ohdi;
> -+	int i = 0;
> -+
> -+	if (!oh || !oh->sdma_reqs)
> -+		return 0;
> -+
> -+	do {
> -+		ohdi = &oh->sdma_reqs[i++];
> -+	} while (ohdi->dma_req != -1);
> -+
> -+	return i;
> -+}
> -+
> -+/**
> -  * _count_ocp_if_addr_spaces - count the number of address space entries for
> @oh
> -  * @oh: struct omap_hwmod *oh
> -  *
> -@@ -2007,7 +2030,7 @@ int omap_hwmod_count_resources(struct
> omap_hwmod *oh)
> - {
> - 	int ret, i;
> -
> --	ret = _count_mpu_irqs(oh) + oh->sdma_reqs_cnt;
> -+	ret = _count_mpu_irqs(oh) + _count_sdma_reqs(oh);
> -
> - 	for (i = 0; i < oh->slaves_cnt; i++)
> - 		ret += _count_ocp_if_addr_spaces(oh->slaves[i]);
> -@@ -2027,7 +2050,7 @@ int omap_hwmod_count_resources(struct
> omap_hwmod *oh)
> -  */
> - int omap_hwmod_fill_resources(struct omap_hwmod *oh, struct resource
> *res)
> - {
> --	int i, j, mpu_irqs_cnt;
> -+	int i, j, mpu_irqs_cnt, sdma_reqs_cnt;
> - 	int r = 0;
> -
> - 	/* For each IRQ, DMA, memory area, fill in array.*/
> -@@ -2041,7 +2064,8 @@ int omap_hwmod_fill_resources(struct
> omap_hwmod *oh, struct resource *res)
> - 		r++;
> - 	}
> -
> --	for (i = 0; i < oh->sdma_reqs_cnt; i++) {
> -+	sdma_reqs_cnt = _count_sdma_reqs(oh);
> -+	for (i = 0; i < sdma_reqs_cnt; i++) {
> - 		(res + r)->name = (oh->sdma_reqs + i)->name;
> - 		(res + r)->start = (oh->sdma_reqs + i)->dma_req;
> - 		(res + r)->end = (oh->sdma_reqs + i)->dma_req;
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -index 73157ee..60c817e 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -@@ -831,6 +831,7 @@ static struct omap_hwmod_class uart_class = {
> - static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART1_RX, },
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART1_TX, },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2420_uart1_slaves[] = {
> -@@ -841,7 +842,6 @@ static struct omap_hwmod omap2420_uart1_hwmod
> = {
> - 	.name		= "uart1",
> - 	.mpu_irqs	= omap2_uart1_mpu_irqs,
> - 	.sdma_reqs	= uart1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(uart1_sdma_reqs),
> - 	.main_clk	= "uart1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -863,6 +863,7 @@ static struct omap_hwmod omap2420_uart1_hwmod
> = {
> - static struct omap_hwmod_dma_info uart2_sdma_reqs[] = {
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART2_RX, },
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART2_TX, },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2420_uart2_slaves[] = {
> -@@ -873,7 +874,6 @@ static struct omap_hwmod omap2420_uart2_hwmod
> = {
> - 	.name		= "uart2",
> - 	.mpu_irqs	= omap2_uart2_mpu_irqs,
> - 	.sdma_reqs	= uart2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(uart2_sdma_reqs),
> - 	.main_clk	= "uart2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -895,6 +895,7 @@ static struct omap_hwmod omap2420_uart2_hwmod
> = {
> - static struct omap_hwmod_dma_info uart3_sdma_reqs[] = {
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART3_RX, },
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART3_TX, },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2420_uart3_slaves[] = {
> -@@ -905,7 +906,6 @@ static struct omap_hwmod omap2420_uart3_hwmod
> = {
> - 	.name		= "uart3",
> - 	.mpu_irqs	= omap2_uart3_mpu_irqs,
> - 	.sdma_reqs	= uart3_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(uart3_sdma_reqs),
> - 	.main_clk	= "uart3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -942,6 +942,7 @@ static struct omap_hwmod_class
> omap2420_dss_hwmod_class = {
> -
> - static struct omap_hwmod_dma_info omap2420_dss_sdma_chs[] = {
> - 	{ .name = "dispc", .dma_req = 5 },
> -+	{ .dma_req = -1 }
> - };
> -
> - /* dss */
> -@@ -980,7 +981,6 @@ static struct omap_hwmod
> omap2420_dss_core_hwmod = {
> - 	.class		= &omap2420_dss_hwmod_class,
> - 	.main_clk	= "dss1_fck", /* instead of dss_fck */
> - 	.sdma_reqs	= omap2420_dss_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2420_dss_sdma_chs),
> - 	.prcm		= {
> - 		.omap2 = {
> - 			.prcm_reg_id = 1,
> -@@ -1186,6 +1186,7 @@ static struct omap_i2c_dev_attr i2c_dev_attr;
> - static struct omap_hwmod_dma_info i2c1_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C1_TX },
> - 	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C1_RX },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2420_i2c1_slaves[] = {
> -@@ -1196,7 +1197,6 @@ static struct omap_hwmod
> omap2420_i2c1_hwmod = {
> - 	.name		= "i2c1",
> - 	.mpu_irqs	= omap2_i2c1_mpu_irqs,
> - 	.sdma_reqs	= i2c1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(i2c1_sdma_reqs),
> - 	.main_clk	= "i2c1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1220,6 +1220,7 @@ static struct omap_hwmod
> omap2420_i2c1_hwmod = {
> - static struct omap_hwmod_dma_info i2c2_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C2_TX },
> - 	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C2_RX },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2420_i2c2_slaves[] = {
> -@@ -1230,7 +1231,6 @@ static struct omap_hwmod
> omap2420_i2c2_hwmod = {
> - 	.name		= "i2c2",
> - 	.mpu_irqs	= omap2_i2c2_mpu_irqs,
> - 	.sdma_reqs	= i2c2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(i2c2_sdma_reqs),
> - 	.main_clk	= "i2c2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1611,6 +1611,7 @@ static struct omap_hwmod_dma_info
> omap2420_mcspi1_sdma_reqs[] = {
> - 	{ .name = "rx2", .dma_req = 40 }, /* DMA_SPI1_RX2 */
> - 	{ .name = "tx3", .dma_req = 41 }, /* DMA_SPI1_TX3 */
> - 	{ .name = "rx3", .dma_req = 42 }, /* DMA_SPI1_RX3 */
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2420_mcspi1_slaves[] = {
> -@@ -1625,7 +1626,6 @@ static struct omap_hwmod
> omap2420_mcspi1_hwmod = {
> - 	.name		= "mcspi1_hwmod",
> - 	.mpu_irqs	= omap2_mcspi1_mpu_irqs,
> - 	.sdma_reqs	= omap2420_mcspi1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2420_mcspi1_sdma_reqs),
> - 	.main_clk	= "mcspi1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1649,6 +1649,7 @@ static struct omap_hwmod_dma_info
> omap2420_mcspi2_sdma_reqs[] = {
> - 	{ .name = "rx0", .dma_req = 44 }, /* DMA_SPI2_RX0 */
> - 	{ .name = "tx1", .dma_req = 45 }, /* DMA_SPI2_TX1 */
> - 	{ .name = "rx1", .dma_req = 46 }, /* DMA_SPI2_RX1 */
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2420_mcspi2_slaves[] = {
> -@@ -1663,7 +1664,6 @@ static struct omap_hwmod
> omap2420_mcspi2_hwmod = {
> - 	.name		= "mcspi2_hwmod",
> - 	.mpu_irqs	= omap2_mcspi2_mpu_irqs,
> - 	.sdma_reqs	= omap2420_mcspi2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2420_mcspi2_sdma_reqs),
> - 	.main_clk	= "mcspi2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1700,6 +1700,7 @@ static struct omap_hwmod_irq_info
> omap2420_mcbsp1_irqs[] = {
> - static struct omap_hwmod_dma_info omap2420_mcbsp1_sdma_chs[] = {
> - 	{ .name = "rx", .dma_req = 32 },
> - 	{ .name = "tx", .dma_req = 31 },
> -+	{ .dma_req = -1 }
> - };
> -
> - /* l4_core -> mcbsp1 */
> -@@ -1721,7 +1722,6 @@ static struct omap_hwmod
> omap2420_mcbsp1_hwmod = {
> - 	.class		= &omap2420_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2420_mcbsp1_irqs,
> - 	.sdma_reqs	= omap2420_mcbsp1_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2420_mcbsp1_sdma_chs),
> - 	.main_clk	= "mcbsp1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1747,6 +1747,7 @@ static struct omap_hwmod_irq_info
> omap2420_mcbsp2_irqs[] = {
> - static struct omap_hwmod_dma_info omap2420_mcbsp2_sdma_chs[] = {
> - 	{ .name = "rx", .dma_req = 34 },
> - 	{ .name = "tx", .dma_req = 33 },
> -+	{ .dma_req = -1 }
> - };
> -
> - /* l4_core -> mcbsp2 */
> -@@ -1768,7 +1769,6 @@ static struct omap_hwmod
> omap2420_mcbsp2_hwmod = {
> - 	.class		= &omap2420_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2420_mcbsp2_irqs,
> - 	.sdma_reqs	= omap2420_mcbsp2_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2420_mcbsp2_sdma_chs),
> - 	.main_clk	= "mcbsp2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -index 62ecc68..af758b3 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -@@ -903,6 +903,7 @@ static struct omap_hwmod_class uart_class = {
> - static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART1_RX, },
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART1_TX, },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2430_uart1_slaves[] = {
> -@@ -913,7 +914,6 @@ static struct omap_hwmod omap2430_uart1_hwmod
> = {
> - 	.name		= "uart1",
> - 	.mpu_irqs	= omap2_uart1_mpu_irqs,
> - 	.sdma_reqs	= uart1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(uart1_sdma_reqs),
> - 	.main_clk	= "uart1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -935,6 +935,7 @@ static struct omap_hwmod omap2430_uart1_hwmod
> = {
> - static struct omap_hwmod_dma_info uart2_sdma_reqs[] = {
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART2_RX, },
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART2_TX, },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2430_uart2_slaves[] = {
> -@@ -945,7 +946,6 @@ static struct omap_hwmod omap2430_uart2_hwmod
> = {
> - 	.name		= "uart2",
> - 	.mpu_irqs	= omap2_uart2_mpu_irqs,
> - 	.sdma_reqs	= uart2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(uart2_sdma_reqs),
> - 	.main_clk	= "uart2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -967,6 +967,7 @@ static struct omap_hwmod omap2430_uart2_hwmod
> = {
> - static struct omap_hwmod_dma_info uart3_sdma_reqs[] = {
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART3_RX, },
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART3_TX, },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2430_uart3_slaves[] = {
> -@@ -977,7 +978,6 @@ static struct omap_hwmod omap2430_uart3_hwmod
> = {
> - 	.name		= "uart3",
> - 	.mpu_irqs	= omap2_uart3_mpu_irqs,
> - 	.sdma_reqs	= uart3_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(uart3_sdma_reqs),
> - 	.main_clk	= "uart3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1014,6 +1014,7 @@ static struct omap_hwmod_class
> omap2430_dss_hwmod_class = {
> -
> - static struct omap_hwmod_dma_info omap2430_dss_sdma_chs[] = {
> - 	{ .name = "dispc", .dma_req = 5 },
> -+	{ .dma_req = -1 }
> - };
> -
> - /* dss */
> -@@ -1046,7 +1047,6 @@ static struct omap_hwmod
> omap2430_dss_core_hwmod = {
> - 	.class		= &omap2430_dss_hwmod_class,
> - 	.main_clk	= "dss1_fck", /* instead of dss_fck */
> - 	.sdma_reqs	= omap2430_dss_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_dss_sdma_chs),
> - 	.prcm		= {
> - 		.omap2 = {
> - 			.prcm_reg_id = 1,
> -@@ -1237,6 +1237,7 @@ static struct omap_i2c_dev_attr i2c_dev_attr = {
> - static struct omap_hwmod_dma_info i2c1_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C1_TX },
> - 	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C1_RX },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2430_i2c1_slaves[] = {
> -@@ -1247,7 +1248,6 @@ static struct omap_hwmod
> omap2430_i2c1_hwmod = {
> - 	.name		= "i2c1",
> - 	.mpu_irqs	= omap2_i2c1_mpu_irqs,
> - 	.sdma_reqs	= i2c1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(i2c1_sdma_reqs),
> - 	.main_clk	= "i2chs1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1278,6 +1278,7 @@ static struct omap_hwmod
> omap2430_i2c1_hwmod = {
> - static struct omap_hwmod_dma_info i2c2_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C2_TX },
> - 	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C2_RX },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2430_i2c2_slaves[] = {
> -@@ -1288,7 +1289,6 @@ static struct omap_hwmod
> omap2430_i2c2_hwmod = {
> - 	.name		= "i2c2",
> - 	.mpu_irqs	= omap2_i2c2_mpu_irqs,
> - 	.sdma_reqs	= i2c2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(i2c2_sdma_reqs),
> - 	.main_clk	= "i2chs2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1716,6 +1716,7 @@ static struct omap_hwmod_dma_info
> omap2430_mcspi1_sdma_reqs[] = {
> - 	{ .name = "rx2", .dma_req = 40 }, /* DMA_SPI1_RX2 */
> - 	{ .name = "tx3", .dma_req = 41 }, /* DMA_SPI1_TX3 */
> - 	{ .name = "rx3", .dma_req = 42 }, /* DMA_SPI1_RX3 */
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2430_mcspi1_slaves[] = {
> -@@ -1730,7 +1731,6 @@ static struct omap_hwmod
> omap2430_mcspi1_hwmod = {
> - 	.name		= "mcspi1_hwmod",
> - 	.mpu_irqs	= omap2_mcspi1_mpu_irqs,
> - 	.sdma_reqs	= omap2430_mcspi1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcspi1_sdma_reqs),
> - 	.main_clk	= "mcspi1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1754,6 +1754,7 @@ static struct omap_hwmod_dma_info
> omap2430_mcspi2_sdma_reqs[] = {
> - 	{ .name = "rx0", .dma_req = 44 }, /* DMA_SPI2_RX0 */
> - 	{ .name = "tx1", .dma_req = 45 }, /* DMA_SPI2_TX1 */
> - 	{ .name = "rx1", .dma_req = 46 }, /* DMA_SPI2_RX1 */
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2430_mcspi2_slaves[] = {
> -@@ -1768,7 +1769,6 @@ static struct omap_hwmod
> omap2430_mcspi2_hwmod = {
> - 	.name		= "mcspi2_hwmod",
> - 	.mpu_irqs	= omap2_mcspi2_mpu_irqs,
> - 	.sdma_reqs	= omap2430_mcspi2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcspi2_sdma_reqs),
> - 	.main_clk	= "mcspi2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1797,6 +1797,7 @@ static struct omap_hwmod_dma_info
> omap2430_mcspi3_sdma_reqs[] = {
> - 	{ .name = "rx0", .dma_req = 16 }, /* DMA_SPI3_RX0 */
> - 	{ .name = "tx1", .dma_req = 23 }, /* DMA_SPI3_TX1 */
> - 	{ .name = "rx1", .dma_req = 24 }, /* DMA_SPI3_RX1 */
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap2430_mcspi3_slaves[] = {
> -@@ -1811,7 +1812,6 @@ static struct omap_hwmod
> omap2430_mcspi3_hwmod = {
> - 	.name		= "mcspi3_hwmod",
> - 	.mpu_irqs	= omap2430_mcspi3_mpu_irqs,
> - 	.sdma_reqs	= omap2430_mcspi3_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcspi3_sdma_reqs),
> - 	.main_clk	= "mcspi3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1915,6 +1915,7 @@ static struct omap_hwmod_irq_info
> omap2430_mcbsp1_irqs[] = {
> - static struct omap_hwmod_dma_info omap2430_mcbsp1_sdma_chs[] = {
> - 	{ .name = "rx", .dma_req = 32 },
> - 	{ .name = "tx", .dma_req = 31 },
> -+	{ .dma_req = -1 }
> - };
> -
> - /* l4_core -> mcbsp1 */
> -@@ -1936,7 +1937,6 @@ static struct omap_hwmod
> omap2430_mcbsp1_hwmod = {
> - 	.class		= &omap2430_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2430_mcbsp1_irqs,
> - 	.sdma_reqs	= omap2430_mcbsp1_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcbsp1_sdma_chs),
> - 	.main_clk	= "mcbsp1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1963,6 +1963,7 @@ static struct omap_hwmod_irq_info
> omap2430_mcbsp2_irqs[] = {
> - static struct omap_hwmod_dma_info omap2430_mcbsp2_sdma_chs[] = {
> - 	{ .name = "rx", .dma_req = 34 },
> - 	{ .name = "tx", .dma_req = 33 },
> -+	{ .dma_req = -1 }
> - };
> -
> - /* l4_core -> mcbsp2 */
> -@@ -1984,7 +1985,6 @@ static struct omap_hwmod
> omap2430_mcbsp2_hwmod = {
> - 	.class		= &omap2430_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2430_mcbsp2_irqs,
> - 	.sdma_reqs	= omap2430_mcbsp2_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcbsp2_sdma_chs),
> - 	.main_clk	= "mcbsp2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2011,6 +2011,7 @@ static struct omap_hwmod_irq_info
> omap2430_mcbsp3_irqs[] = {
> - static struct omap_hwmod_dma_info omap2430_mcbsp3_sdma_chs[] = {
> - 	{ .name = "rx", .dma_req = 18 },
> - 	{ .name = "tx", .dma_req = 17 },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap2430_mcbsp3_addrs[] = {
> -@@ -2042,7 +2043,6 @@ static struct omap_hwmod
> omap2430_mcbsp3_hwmod = {
> - 	.class		= &omap2430_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2430_mcbsp3_irqs,
> - 	.sdma_reqs	= omap2430_mcbsp3_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcbsp3_sdma_chs),
> - 	.main_clk	= "mcbsp3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2069,6 +2069,7 @@ static struct omap_hwmod_irq_info
> omap2430_mcbsp4_irqs[] = {
> - static struct omap_hwmod_dma_info omap2430_mcbsp4_sdma_chs[] = {
> - 	{ .name = "rx", .dma_req = 20 },
> - 	{ .name = "tx", .dma_req = 19 },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap2430_mcbsp4_addrs[] = {
> -@@ -2100,7 +2101,6 @@ static struct omap_hwmod
> omap2430_mcbsp4_hwmod = {
> - 	.class		= &omap2430_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2430_mcbsp4_irqs,
> - 	.sdma_reqs	= omap2430_mcbsp4_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcbsp4_sdma_chs),
> - 	.main_clk	= "mcbsp4_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2127,6 +2127,7 @@ static struct omap_hwmod_irq_info
> omap2430_mcbsp5_irqs[] = {
> - static struct omap_hwmod_dma_info omap2430_mcbsp5_sdma_chs[] = {
> - 	{ .name = "rx", .dma_req = 22 },
> - 	{ .name = "tx", .dma_req = 21 },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap2430_mcbsp5_addrs[] = {
> -@@ -2158,7 +2159,6 @@ static struct omap_hwmod
> omap2430_mcbsp5_hwmod = {
> - 	.class		= &omap2430_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2430_mcbsp5_irqs,
> - 	.sdma_reqs	= omap2430_mcbsp5_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mcbsp5_sdma_chs),
> - 	.main_clk	= "mcbsp5_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2202,6 +2202,7 @@ static struct omap_hwmod_irq_info
> omap2430_mmc1_mpu_irqs[] = {
> - static struct omap_hwmod_dma_info omap2430_mmc1_sdma_reqs[] = {
> - 	{ .name = "tx",	.dma_req = 61 }, /* DMA_MMC1_TX */
> - 	{ .name = "rx",	.dma_req = 62 }, /* DMA_MMC1_RX */
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_opt_clk omap2430_mmc1_opt_clks[] = {
> -@@ -2221,7 +2222,6 @@ static struct omap_hwmod
> omap2430_mmc1_hwmod = {
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap2430_mmc1_mpu_irqs,
> - 	.sdma_reqs	= omap2430_mmc1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mmc1_sdma_reqs),
> - 	.opt_clks	= omap2430_mmc1_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(omap2430_mmc1_opt_clks),
> - 	.main_clk	= "mmchs1_fck",
> -@@ -2251,6 +2251,7 @@ static struct omap_hwmod_irq_info
> omap2430_mmc2_mpu_irqs[] = {
> - static struct omap_hwmod_dma_info omap2430_mmc2_sdma_reqs[] = {
> - 	{ .name = "tx",	.dma_req = 47 }, /* DMA_MMC2_TX */
> - 	{ .name = "rx",	.dma_req = 48 }, /* DMA_MMC2_RX */
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_opt_clk omap2430_mmc2_opt_clks[] = {
> -@@ -2266,7 +2267,6 @@ static struct omap_hwmod
> omap2430_mmc2_hwmod = {
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap2430_mmc2_mpu_irqs,
> - 	.sdma_reqs	= omap2430_mmc2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap2430_mmc2_sdma_reqs),
> - 	.opt_clks	= omap2430_mmc2_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(omap2430_mmc2_opt_clks),
> - 	.main_clk	= "mmchs2_fck",
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -index 6bac4bb..265f0b1 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -@@ -1213,6 +1213,7 @@ static struct omap_hwmod_class uart_class = {
> - static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART1_TX, },
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART1_RX, },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap3xxx_uart1_slaves[] = {
> -@@ -1223,7 +1224,6 @@ static struct omap_hwmod
> omap3xxx_uart1_hwmod = {
> - 	.name		= "uart1",
> - 	.mpu_irqs	= omap2_uart1_mpu_irqs,
> - 	.sdma_reqs	= uart1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(uart1_sdma_reqs),
> - 	.main_clk	= "uart1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1245,6 +1245,7 @@ static struct omap_hwmod
> omap3xxx_uart1_hwmod = {
> - static struct omap_hwmod_dma_info uart2_sdma_reqs[] = {
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART2_TX, },
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART2_RX, },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap3xxx_uart2_slaves[] = {
> -@@ -1255,7 +1256,6 @@ static struct omap_hwmod
> omap3xxx_uart2_hwmod = {
> - 	.name		= "uart2",
> - 	.mpu_irqs	= omap2_uart2_mpu_irqs,
> - 	.sdma_reqs	= uart2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(uart2_sdma_reqs),
> - 	.main_clk	= "uart2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1277,6 +1277,7 @@ static struct omap_hwmod
> omap3xxx_uart2_hwmod = {
> - static struct omap_hwmod_dma_info uart3_sdma_reqs[] = {
> - 	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART3_TX, },
> - 	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART3_RX, },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap3xxx_uart3_slaves[] = {
> -@@ -1287,7 +1288,6 @@ static struct omap_hwmod
> omap3xxx_uart3_hwmod = {
> - 	.name		= "uart3",
> - 	.mpu_irqs	= omap2_uart3_mpu_irqs,
> - 	.sdma_reqs	= uart3_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(uart3_sdma_reqs),
> - 	.main_clk	= "uart3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1314,6 +1314,7 @@ static struct omap_hwmod_irq_info
> uart4_mpu_irqs[] = {
> - static struct omap_hwmod_dma_info uart4_sdma_reqs[] = {
> - 	{ .name = "rx",	.dma_req = OMAP36XX_DMA_UART4_RX, },
> - 	{ .name = "tx",	.dma_req = OMAP36XX_DMA_UART4_TX, },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap3xxx_uart4_slaves[] = {
> -@@ -1324,7 +1325,6 @@ static struct omap_hwmod
> omap3xxx_uart4_hwmod = {
> - 	.name		= "uart4",
> - 	.mpu_irqs	= uart4_mpu_irqs,
> - 	.sdma_reqs	= uart4_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(uart4_sdma_reqs),
> - 	.main_clk	= "uart4_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1367,6 +1367,7 @@ static struct omap_hwmod_class
> omap3xxx_dss_hwmod_class = {
> - static struct omap_hwmod_dma_info omap3xxx_dss_sdma_chs[] = {
> - 	{ .name = "dispc", .dma_req = 5 },
> - 	{ .name = "dsi1", .dma_req = 74 },
> -+	{ .dma_req = -1 }
> - };
> -
> - /* dss */
> -@@ -1426,8 +1427,6 @@ static struct omap_hwmod
> omap3430es1_dss_core_hwmod = {
> - 	.class		= &omap3xxx_dss_hwmod_class,
> - 	.main_clk	= "dss1_alwon_fck", /* instead of dss_fck */
> - 	.sdma_reqs	= omap3xxx_dss_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap3xxx_dss_sdma_chs),
> --
> - 	.prcm		= {
> - 		.omap2 = {
> - 			.prcm_reg_id = 1,
> -@@ -1452,8 +1451,6 @@ static struct omap_hwmod
> omap3xxx_dss_core_hwmod = {
> - 	.class		= &omap3xxx_dss_hwmod_class,
> - 	.main_clk	= "dss1_alwon_fck", /* instead of dss_fck */
> - 	.sdma_reqs	= omap3xxx_dss_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap3xxx_dss_sdma_chs),
> --
> - 	.prcm		= {
> - 		.omap2 = {
> - 			.prcm_reg_id = 1,
> -@@ -1720,6 +1717,7 @@ static struct omap_i2c_dev_attr i2c1_dev_attr = {
> - static struct omap_hwmod_dma_info i2c1_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C1_TX },
> - 	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C1_RX },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap3xxx_i2c1_slaves[] = {
> -@@ -1730,7 +1728,6 @@ static struct omap_hwmod
> omap3xxx_i2c1_hwmod = {
> - 	.name		= "i2c1",
> - 	.mpu_irqs	= omap2_i2c1_mpu_irqs,
> - 	.sdma_reqs	= i2c1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(i2c1_sdma_reqs),
> - 	.main_clk	= "i2c1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1757,6 +1754,7 @@ static struct omap_i2c_dev_attr i2c2_dev_attr = {
> - static struct omap_hwmod_dma_info i2c2_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C2_TX },
> - 	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C2_RX },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap3xxx_i2c2_slaves[] = {
> -@@ -1767,7 +1765,6 @@ static struct omap_hwmod
> omap3xxx_i2c2_hwmod = {
> - 	.name		= "i2c2",
> - 	.mpu_irqs	= omap2_i2c2_mpu_irqs,
> - 	.sdma_reqs	= i2c2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(i2c2_sdma_reqs),
> - 	.main_clk	= "i2c2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1799,6 +1796,7 @@ static struct omap_hwmod_irq_info
> i2c3_mpu_irqs[] = {
> - static struct omap_hwmod_dma_info i2c3_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = OMAP34XX_DMA_I2C3_TX },
> - 	{ .name = "rx", .dma_req = OMAP34XX_DMA_I2C3_RX },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap3xxx_i2c3_slaves[] = {
> -@@ -1809,7 +1807,6 @@ static struct omap_hwmod
> omap3xxx_i2c3_hwmod = {
> - 	.name		= "i2c3",
> - 	.mpu_irqs	= i2c3_mpu_irqs,
> - 	.sdma_reqs	= i2c3_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(i2c3_sdma_reqs),
> - 	.main_clk	= "i2c3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2275,6 +2272,7 @@ static struct omap_hwmod_irq_info
> omap3xxx_mcbsp1_irqs[] = {
> - static struct omap_hwmod_dma_info omap3xxx_mcbsp1_sdma_chs[] = {
> - 	{ .name = "rx", .dma_req = 32 },
> - 	{ .name = "tx", .dma_req = 31 },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_mcbsp1_addrs[] = {
> -@@ -2306,7 +2304,6 @@ static struct omap_hwmod
> omap3xxx_mcbsp1_hwmod = {
> - 	.class		= &omap3xxx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp1_irqs,
> - 	.sdma_reqs	= omap3xxx_mcbsp1_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp1_sdma_chs),
> - 	.main_clk	= "mcbsp1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2333,6 +2330,7 @@ static struct omap_hwmod_irq_info
> omap3xxx_mcbsp2_irqs[] = {
> - static struct omap_hwmod_dma_info omap3xxx_mcbsp2_sdma_chs[] = {
> - 	{ .name = "rx", .dma_req = 34 },
> - 	{ .name = "tx", .dma_req = 33 },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_mcbsp2_addrs[] = {
> -@@ -2369,7 +2367,6 @@ static struct omap_hwmod
> omap3xxx_mcbsp2_hwmod = {
> - 	.class		= &omap3xxx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp2_irqs,
> - 	.sdma_reqs	= omap3xxx_mcbsp2_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp2_sdma_chs),
> - 	.main_clk	= "mcbsp2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2397,6 +2394,7 @@ static struct omap_hwmod_irq_info
> omap3xxx_mcbsp3_irqs[] = {
> - static struct omap_hwmod_dma_info omap3xxx_mcbsp3_sdma_chs[] = {
> - 	{ .name = "rx", .dma_req = 18 },
> - 	{ .name = "tx", .dma_req = 17 },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_mcbsp3_addrs[] = {
> -@@ -2432,7 +2430,6 @@ static struct omap_hwmod
> omap3xxx_mcbsp3_hwmod = {
> - 	.class		= &omap3xxx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp3_irqs,
> - 	.sdma_reqs	= omap3xxx_mcbsp3_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp3_sdma_chs),
> - 	.main_clk	= "mcbsp3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2460,6 +2457,7 @@ static struct omap_hwmod_irq_info
> omap3xxx_mcbsp4_irqs[] = {
> - static struct omap_hwmod_dma_info omap3xxx_mcbsp4_sdma_chs[] = {
> - 	{ .name = "rx", .dma_req = 20 },
> - 	{ .name = "tx", .dma_req = 19 },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_mcbsp4_addrs[] = {
> -@@ -2491,7 +2489,6 @@ static struct omap_hwmod
> omap3xxx_mcbsp4_hwmod = {
> - 	.class		= &omap3xxx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp4_irqs,
> - 	.sdma_reqs	= omap3xxx_mcbsp4_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp4_sdma_chs),
> - 	.main_clk	= "mcbsp4_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2518,6 +2515,7 @@ static struct omap_hwmod_irq_info
> omap3xxx_mcbsp5_irqs[] = {
> - static struct omap_hwmod_dma_info omap3xxx_mcbsp5_sdma_chs[] = {
> - 	{ .name = "rx", .dma_req = 22 },
> - 	{ .name = "tx", .dma_req = 21 },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap3xxx_mcbsp5_addrs[] = {
> -@@ -2549,7 +2547,6 @@ static struct omap_hwmod
> omap3xxx_mcbsp5_hwmod = {
> - 	.class		= &omap3xxx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp5_irqs,
> - 	.sdma_reqs	= omap3xxx_mcbsp5_sdma_chs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap3xxx_mcbsp5_sdma_chs),
> - 	.main_clk	= "mcbsp5_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2951,6 +2948,7 @@ static struct omap_hwmod_dma_info
> omap34xx_mcspi1_sdma_reqs[] = {
> - 	{ .name = "rx2", .dma_req = 40 },
> - 	{ .name = "tx3", .dma_req = 41 },
> - 	{ .name = "rx3", .dma_req = 42 },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap34xx_mcspi1_slaves[] = {
> -@@ -2965,7 +2963,6 @@ static struct omap_hwmod omap34xx_mcspi1 = {
> - 	.name		= "mcspi1",
> - 	.mpu_irqs	= omap2_mcspi1_mpu_irqs,
> - 	.sdma_reqs	= omap34xx_mcspi1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mcspi1_sdma_reqs),
> - 	.main_clk	= "mcspi1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2989,6 +2986,7 @@ static struct omap_hwmod_dma_info
> omap34xx_mcspi2_sdma_reqs[] = {
> - 	{ .name = "rx0", .dma_req = 44 },
> - 	{ .name = "tx1", .dma_req = 45 },
> - 	{ .name = "rx1", .dma_req = 46 },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap34xx_mcspi2_slaves[] = {
> -@@ -3003,7 +3001,6 @@ static struct omap_hwmod omap34xx_mcspi2 = {
> - 	.name		= "mcspi2",
> - 	.mpu_irqs	= omap2_mcspi2_mpu_irqs,
> - 	.sdma_reqs	= omap34xx_mcspi2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mcspi2_sdma_reqs),
> - 	.main_clk	= "mcspi2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -3032,6 +3029,7 @@ static struct omap_hwmod_dma_info
> omap34xx_mcspi3_sdma_reqs[] = {
> - 	{ .name = "rx0", .dma_req = 16 },
> - 	{ .name = "tx1", .dma_req = 23 },
> - 	{ .name = "rx1", .dma_req = 24 },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap34xx_mcspi3_slaves[] = {
> -@@ -3046,7 +3044,6 @@ static struct omap_hwmod omap34xx_mcspi3 = {
> - 	.name		= "mcspi3",
> - 	.mpu_irqs	= omap34xx_mcspi3_mpu_irqs,
> - 	.sdma_reqs	= omap34xx_mcspi3_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mcspi3_sdma_reqs),
> - 	.main_clk	= "mcspi3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -3073,6 +3070,7 @@ static struct omap_hwmod_irq_info
> omap34xx_mcspi4_mpu_irqs[] = {
> - static struct omap_hwmod_dma_info omap34xx_mcspi4_sdma_reqs[] = {
> - 	{ .name = "tx0", .dma_req = 70 }, /* DMA_SPI4_TX0 */
> - 	{ .name = "rx0", .dma_req = 71 }, /* DMA_SPI4_RX0 */
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_ocp_if *omap34xx_mcspi4_slaves[] = {
> -@@ -3087,7 +3085,6 @@ static struct omap_hwmod omap34xx_mcspi4 = {
> - 	.name		= "mcspi4",
> - 	.mpu_irqs	= omap34xx_mcspi4_mpu_irqs,
> - 	.sdma_reqs	= omap34xx_mcspi4_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mcspi4_sdma_reqs),
> - 	.main_clk	= "mcspi4_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -3218,6 +3215,7 @@ static struct omap_hwmod_irq_info
> omap34xx_mmc1_mpu_irqs[] = {
> - static struct omap_hwmod_dma_info omap34xx_mmc1_sdma_reqs[] = {
> - 	{ .name = "tx",	.dma_req = 61, },
> - 	{ .name = "rx",	.dma_req = 62, },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_opt_clk omap34xx_mmc1_opt_clks[] = {
> -@@ -3236,7 +3234,6 @@ static struct omap_hwmod
> omap3xxx_mmc1_hwmod = {
> - 	.name		= "mmc1",
> - 	.mpu_irqs	= omap34xx_mmc1_mpu_irqs,
> - 	.sdma_reqs	= omap34xx_mmc1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mmc1_sdma_reqs),
> - 	.opt_clks	= omap34xx_mmc1_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(omap34xx_mmc1_opt_clks),
> - 	.main_clk	= "mmchs1_fck",
> -@@ -3266,6 +3263,7 @@ static struct omap_hwmod_irq_info
> omap34xx_mmc2_mpu_irqs[] = {
> - static struct omap_hwmod_dma_info omap34xx_mmc2_sdma_reqs[] = {
> - 	{ .name = "tx",	.dma_req = 47, },
> - 	{ .name = "rx",	.dma_req = 48, },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_opt_clk omap34xx_mmc2_opt_clks[] = {
> -@@ -3280,7 +3278,6 @@ static struct omap_hwmod
> omap3xxx_mmc2_hwmod = {
> - 	.name		= "mmc2",
> - 	.mpu_irqs	= omap34xx_mmc2_mpu_irqs,
> - 	.sdma_reqs	= omap34xx_mmc2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mmc2_sdma_reqs),
> - 	.opt_clks	= omap34xx_mmc2_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(omap34xx_mmc2_opt_clks),
> - 	.main_clk	= "mmchs2_fck",
> -@@ -3309,6 +3306,7 @@ static struct omap_hwmod_irq_info
> omap34xx_mmc3_mpu_irqs[] = {
> - static struct omap_hwmod_dma_info omap34xx_mmc3_sdma_reqs[] = {
> - 	{ .name = "tx",	.dma_req = 77, },
> - 	{ .name = "rx",	.dma_req = 78, },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_opt_clk omap34xx_mmc3_opt_clks[] = {
> -@@ -3323,7 +3321,6 @@ static struct omap_hwmod
> omap3xxx_mmc3_hwmod = {
> - 	.name		= "mmc3",
> - 	.mpu_irqs	= omap34xx_mmc3_mpu_irqs,
> - 	.sdma_reqs	= omap34xx_mmc3_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap34xx_mmc3_sdma_reqs),
> - 	.opt_clks	= omap34xx_mmc3_opt_clks,
> - 	.opt_clks_cnt	= ARRAY_SIZE(omap34xx_mmc3_opt_clks),
> - 	.main_clk	= "mmchs3_fck",
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index f7ff937..316e922 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -685,6 +685,7 @@ static struct omap_hwmod_dma_info
> omap44xx_aess_sdma_reqs[] = {
> - 	{ .name = "fifo5", .dma_req = 105 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "fifo6", .dma_req = 106 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "fifo7", .dma_req = 107 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - /* aess master ports */
> -@@ -739,7 +740,6 @@ static struct omap_hwmod omap44xx_aess_hwmod =
> {
> - 	.class		= &omap44xx_aess_hwmod_class,
> - 	.mpu_irqs	= omap44xx_aess_irqs,
> - 	.sdma_reqs	= omap44xx_aess_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_aess_sdma_reqs),
> - 	.main_clk	= "aess_fck",
> - 	.prcm		= {
> - 		.omap4 = {
> -@@ -954,6 +954,7 @@ static struct omap_hwmod_irq_info
> omap44xx_dmic_irqs[] = {
> -
> - static struct omap_hwmod_dma_info omap44xx_dmic_sdma_reqs[] = {
> - 	{ .dma_req = 66 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_dmic_addrs[] = {
> -@@ -1003,7 +1004,6 @@ static struct omap_hwmod
> omap44xx_dmic_hwmod = {
> - 	.class		= &omap44xx_dmic_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dmic_irqs,
> - 	.sdma_reqs	= omap44xx_dmic_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_dmic_sdma_reqs),
> - 	.main_clk	= "dmic_fck",
> - 	.prcm		= {
> - 		.omap4 = {
> -@@ -1221,6 +1221,7 @@ static struct omap_hwmod_irq_info
> omap44xx_dss_dispc_irqs[] = {
> -
> - static struct omap_hwmod_dma_info omap44xx_dss_dispc_sdma_reqs[] = {
> - 	{ .dma_req = 5 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_dss_dispc_dma_addrs[] =
> {
> -@@ -1270,7 +1271,6 @@ static struct omap_hwmod
> omap44xx_dss_dispc_hwmod = {
> - 	.class		= &omap44xx_dispc_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dss_dispc_irqs,
> - 	.sdma_reqs	= omap44xx_dss_dispc_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_dss_dispc_sdma_reqs),
> - 	.main_clk	= "dss_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -1312,6 +1312,7 @@ static struct omap_hwmod_irq_info
> omap44xx_dss_dsi1_irqs[] = {
> -
> - static struct omap_hwmod_dma_info omap44xx_dss_dsi1_sdma_reqs[] = {
> - 	{ .dma_req = 74 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_dss_dsi1_dma_addrs[] = {
> -@@ -1361,7 +1362,6 @@ static struct omap_hwmod
> omap44xx_dss_dsi1_hwmod = {
> - 	.class		= &omap44xx_dsi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dss_dsi1_irqs,
> - 	.sdma_reqs	= omap44xx_dss_dsi1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_dss_dsi1_sdma_reqs),
> - 	.main_clk	= "dss_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -1382,6 +1382,7 @@ static struct omap_hwmod_irq_info
> omap44xx_dss_dsi2_irqs[] = {
> -
> - static struct omap_hwmod_dma_info omap44xx_dss_dsi2_sdma_reqs[] = {
> - 	{ .dma_req = 83 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_dss_dsi2_dma_addrs[] = {
> -@@ -1431,7 +1432,6 @@ static struct omap_hwmod
> omap44xx_dss_dsi2_hwmod = {
> - 	.class		= &omap44xx_dsi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dss_dsi2_irqs,
> - 	.sdma_reqs	= omap44xx_dss_dsi2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_dss_dsi2_sdma_reqs),
> - 	.main_clk	= "dss_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -1472,6 +1472,7 @@ static struct omap_hwmod_irq_info
> omap44xx_dss_hdmi_irqs[] = {
> -
> - static struct omap_hwmod_dma_info omap44xx_dss_hdmi_sdma_reqs[] = {
> - 	{ .dma_req = 75 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_dss_hdmi_dma_addrs[] =
> {
> -@@ -1521,7 +1522,6 @@ static struct omap_hwmod
> omap44xx_dss_hdmi_hwmod = {
> - 	.class		= &omap44xx_hdmi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dss_hdmi_irqs,
> - 	.sdma_reqs	= omap44xx_dss_hdmi_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_dss_hdmi_sdma_reqs),
> - 	.main_clk	= "dss_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -1557,6 +1557,7 @@ static struct omap_hwmod_class
> omap44xx_rfbi_hwmod_class = {
> - static struct omap_hwmod omap44xx_dss_rfbi_hwmod;
> - static struct omap_hwmod_dma_info omap44xx_dss_rfbi_sdma_reqs[] = {
> - 	{ .dma_req = 13 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_dss_rfbi_dma_addrs[] = {
> -@@ -1605,7 +1606,6 @@ static struct omap_hwmod
> omap44xx_dss_rfbi_hwmod = {
> - 	.name		= "dss_rfbi",
> - 	.class		= &omap44xx_rfbi_hwmod_class,
> - 	.sdma_reqs	= omap44xx_dss_rfbi_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_dss_rfbi_sdma_reqs),
> - 	.main_clk	= "dss_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -2138,6 +2138,7 @@ static struct omap_hwmod_irq_info
> omap44xx_i2c1_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_i2c1_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 26 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 27 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_i2c1_addrs[] = {
> -@@ -2169,7 +2170,6 @@ static struct omap_hwmod
> omap44xx_i2c1_hwmod = {
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_i2c1_irqs,
> - 	.sdma_reqs	= omap44xx_i2c1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_i2c1_sdma_reqs),
> - 	.main_clk	= "i2c1_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -2191,6 +2191,7 @@ static struct omap_hwmod_irq_info
> omap44xx_i2c2_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_i2c2_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 28 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 29 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_i2c2_addrs[] = {
> -@@ -2222,7 +2223,6 @@ static struct omap_hwmod
> omap44xx_i2c2_hwmod = {
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_i2c2_irqs,
> - 	.sdma_reqs	= omap44xx_i2c2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_i2c2_sdma_reqs),
> - 	.main_clk	= "i2c2_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -2244,6 +2244,7 @@ static struct omap_hwmod_irq_info
> omap44xx_i2c3_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_i2c3_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 24 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 25 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_i2c3_addrs[] = {
> -@@ -2275,7 +2276,6 @@ static struct omap_hwmod
> omap44xx_i2c3_hwmod = {
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_i2c3_irqs,
> - 	.sdma_reqs	= omap44xx_i2c3_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_i2c3_sdma_reqs),
> - 	.main_clk	= "i2c3_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -2297,6 +2297,7 @@ static struct omap_hwmod_irq_info
> omap44xx_i2c4_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_i2c4_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 123 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 124 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_i2c4_addrs[] = {
> -@@ -2328,7 +2329,6 @@ static struct omap_hwmod
> omap44xx_i2c4_hwmod = {
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_i2c4_irqs,
> - 	.sdma_reqs	= omap44xx_i2c4_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_i2c4_sdma_reqs),
> - 	.main_clk	= "i2c4_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -2467,6 +2467,7 @@ static struct omap_hwmod_dma_info
> omap44xx_iss_sdma_reqs[] = {
> - 	{ .name = "2", .dma_req = 9 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "3", .dma_req = 11 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "4", .dma_req = 12 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - /* iss master ports */
> -@@ -2506,7 +2507,6 @@ static struct omap_hwmod omap44xx_iss_hwmod
> = {
> - 	.class		= &omap44xx_iss_hwmod_class,
> - 	.mpu_irqs	= omap44xx_iss_irqs,
> - 	.sdma_reqs	= omap44xx_iss_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_iss_sdma_reqs),
> - 	.main_clk	= "iss_fck",
> - 	.prcm		= {
> - 		.omap4 = {
> -@@ -2791,6 +2791,7 @@ static struct omap_hwmod_irq_info
> omap44xx_mcbsp1_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_mcbsp1_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 32 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 33 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_mcbsp1_addrs[] = {
> -@@ -2842,7 +2843,6 @@ static struct omap_hwmod
> omap44xx_mcbsp1_hwmod = {
> - 	.class		= &omap44xx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcbsp1_irqs,
> - 	.sdma_reqs	= omap44xx_mcbsp1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcbsp1_sdma_reqs),
> - 	.main_clk	= "mcbsp1_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -2864,6 +2864,7 @@ static struct omap_hwmod_irq_info
> omap44xx_mcbsp2_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_mcbsp2_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 16 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 17 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_mcbsp2_addrs[] = {
> -@@ -2915,7 +2916,6 @@ static struct omap_hwmod
> omap44xx_mcbsp2_hwmod = {
> - 	.class		= &omap44xx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcbsp2_irqs,
> - 	.sdma_reqs	= omap44xx_mcbsp2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcbsp2_sdma_reqs),
> - 	.main_clk	= "mcbsp2_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -2937,6 +2937,7 @@ static struct omap_hwmod_irq_info
> omap44xx_mcbsp3_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_mcbsp3_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 18 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 19 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_mcbsp3_addrs[] = {
> -@@ -2988,7 +2989,6 @@ static struct omap_hwmod
> omap44xx_mcbsp3_hwmod = {
> - 	.class		= &omap44xx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcbsp3_irqs,
> - 	.sdma_reqs	= omap44xx_mcbsp3_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcbsp3_sdma_reqs),
> - 	.main_clk	= "mcbsp3_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -3010,6 +3010,7 @@ static struct omap_hwmod_irq_info
> omap44xx_mcbsp4_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_mcbsp4_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 30 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 31 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_mcbsp4_addrs[] = {
> -@@ -3040,7 +3041,6 @@ static struct omap_hwmod
> omap44xx_mcbsp4_hwmod = {
> - 	.class		= &omap44xx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcbsp4_irqs,
> - 	.sdma_reqs	= omap44xx_mcbsp4_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcbsp4_sdma_reqs),
> - 	.main_clk	= "mcbsp4_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -3083,6 +3083,7 @@ static struct omap_hwmod_irq_info
> omap44xx_mcpdm_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_mcpdm_sdma_reqs[] = {
> - 	{ .name = "up_link", .dma_req = 64 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "dn_link", .dma_req = 65 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_mcpdm_addrs[] = {
> -@@ -3132,7 +3133,6 @@ static struct omap_hwmod
> omap44xx_mcpdm_hwmod = {
> - 	.class		= &omap44xx_mcpdm_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcpdm_irqs,
> - 	.sdma_reqs	= omap44xx_mcpdm_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcpdm_sdma_reqs),
> - 	.main_clk	= "mcpdm_fck",
> - 	.prcm		= {
> - 		.omap4 = {
> -@@ -3182,6 +3182,7 @@ static struct omap_hwmod_dma_info
> omap44xx_mcspi1_sdma_reqs[] = {
> - 	{ .name = "rx2", .dma_req = 39 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "tx3", .dma_req = 40 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx3", .dma_req = 41 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_mcspi1_addrs[] = {
> -@@ -3217,7 +3218,6 @@ static struct omap_hwmod
> omap44xx_mcspi1_hwmod = {
> - 	.class		= &omap44xx_mcspi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcspi1_irqs,
> - 	.sdma_reqs	= omap44xx_mcspi1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcspi1_sdma_reqs),
> - 	.main_clk	= "mcspi1_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -3242,6 +3242,7 @@ static struct omap_hwmod_dma_info
> omap44xx_mcspi2_sdma_reqs[] = {
> - 	{ .name = "rx0", .dma_req = 43 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "tx1", .dma_req = 44 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx1", .dma_req = 45 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_mcspi2_addrs[] = {
> -@@ -3277,7 +3278,6 @@ static struct omap_hwmod
> omap44xx_mcspi2_hwmod = {
> - 	.class		= &omap44xx_mcspi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcspi2_irqs,
> - 	.sdma_reqs	= omap44xx_mcspi2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcspi2_sdma_reqs),
> - 	.main_clk	= "mcspi2_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -3302,6 +3302,7 @@ static struct omap_hwmod_dma_info
> omap44xx_mcspi3_sdma_reqs[] = {
> - 	{ .name = "rx0", .dma_req = 15 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "tx1", .dma_req = 22 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx1", .dma_req = 23 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_mcspi3_addrs[] = {
> -@@ -3337,7 +3338,6 @@ static struct omap_hwmod
> omap44xx_mcspi3_hwmod = {
> - 	.class		= &omap44xx_mcspi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcspi3_irqs,
> - 	.sdma_reqs	= omap44xx_mcspi3_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcspi3_sdma_reqs),
> - 	.main_clk	= "mcspi3_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -3360,6 +3360,7 @@ static struct omap_hwmod_irq_info
> omap44xx_mcspi4_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_mcspi4_sdma_reqs[] = {
> - 	{ .name = "tx0", .dma_req = 69 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx0", .dma_req = 70 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_mcspi4_addrs[] = {
> -@@ -3395,7 +3396,6 @@ static struct omap_hwmod
> omap44xx_mcspi4_hwmod = {
> - 	.class		= &omap44xx_mcspi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mcspi4_irqs,
> - 	.sdma_reqs	= omap44xx_mcspi4_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mcspi4_sdma_reqs),
> - 	.main_clk	= "mcspi4_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -3440,6 +3440,7 @@ static struct omap_hwmod_irq_info
> omap44xx_mmc1_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_mmc1_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 60 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 61 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - /* mmc1 master ports */
> -@@ -3480,7 +3481,6 @@ static struct omap_hwmod
> omap44xx_mmc1_hwmod = {
> - 	.class		= &omap44xx_mmc_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mmc1_irqs,
> - 	.sdma_reqs	= omap44xx_mmc1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mmc1_sdma_reqs),
> - 	.main_clk	= "mmc1_fck",
> - 	.prcm		= {
> - 		.omap4 = {
> -@@ -3504,6 +3504,7 @@ static struct omap_hwmod_irq_info
> omap44xx_mmc2_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_mmc2_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 46 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 47 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - /* mmc2 master ports */
> -@@ -3539,7 +3540,6 @@ static struct omap_hwmod
> omap44xx_mmc2_hwmod = {
> - 	.class		= &omap44xx_mmc_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mmc2_irqs,
> - 	.sdma_reqs	= omap44xx_mmc2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mmc2_sdma_reqs),
> - 	.main_clk	= "mmc2_fck",
> - 	.prcm		= {
> - 		.omap4 = {
> -@@ -3563,6 +3563,7 @@ static struct omap_hwmod_irq_info
> omap44xx_mmc3_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_mmc3_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 76 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 77 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_mmc3_addrs[] = {
> -@@ -3593,7 +3594,6 @@ static struct omap_hwmod
> omap44xx_mmc3_hwmod = {
> - 	.class		= &omap44xx_mmc_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mmc3_irqs,
> - 	.sdma_reqs	= omap44xx_mmc3_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mmc3_sdma_reqs),
> - 	.main_clk	= "mmc3_fck",
> - 	.prcm		= {
> - 		.omap4 = {
> -@@ -3615,6 +3615,7 @@ static struct omap_hwmod_irq_info
> omap44xx_mmc4_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_mmc4_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 56 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 57 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_mmc4_addrs[] = {
> -@@ -3646,7 +3647,6 @@ static struct omap_hwmod
> omap44xx_mmc4_hwmod = {
> - 	.mpu_irqs	= omap44xx_mmc4_irqs,
> -
> - 	.sdma_reqs	= omap44xx_mmc4_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mmc4_sdma_reqs),
> - 	.main_clk	= "mmc4_fck",
> - 	.prcm		= {
> - 		.omap4 = {
> -@@ -3668,6 +3668,7 @@ static struct omap_hwmod_irq_info
> omap44xx_mmc5_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_mmc5_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 58 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 59 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_mmc5_addrs[] = {
> -@@ -3698,7 +3699,6 @@ static struct omap_hwmod
> omap44xx_mmc5_hwmod = {
> - 	.class		= &omap44xx_mmc_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mmc5_irqs,
> - 	.sdma_reqs	= omap44xx_mmc5_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_mmc5_sdma_reqs),
> - 	.main_clk	= "mmc5_fck",
> - 	.prcm		= {
> - 		.omap4 = {
> -@@ -4618,6 +4618,7 @@ static struct omap_hwmod_irq_info
> omap44xx_uart1_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_uart1_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 48 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 49 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_uart1_addrs[] = {
> -@@ -4648,7 +4649,6 @@ static struct omap_hwmod
> omap44xx_uart1_hwmod = {
> - 	.class		= &omap44xx_uart_hwmod_class,
> - 	.mpu_irqs	= omap44xx_uart1_irqs,
> - 	.sdma_reqs	= omap44xx_uart1_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_uart1_sdma_reqs),
> - 	.main_clk	= "uart1_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4670,6 +4670,7 @@ static struct omap_hwmod_irq_info
> omap44xx_uart2_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_uart2_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 50 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 51 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_uart2_addrs[] = {
> -@@ -4700,7 +4701,6 @@ static struct omap_hwmod
> omap44xx_uart2_hwmod = {
> - 	.class		= &omap44xx_uart_hwmod_class,
> - 	.mpu_irqs	= omap44xx_uart2_irqs,
> - 	.sdma_reqs	= omap44xx_uart2_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_uart2_sdma_reqs),
> - 	.main_clk	= "uart2_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4722,6 +4722,7 @@ static struct omap_hwmod_irq_info
> omap44xx_uart3_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_uart3_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 52 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 53 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_uart3_addrs[] = {
> -@@ -4753,7 +4754,6 @@ static struct omap_hwmod
> omap44xx_uart3_hwmod = {
> - 	.flags		= (HWMOD_INIT_NO_IDLE |
> HWMOD_INIT_NO_RESET),
> - 	.mpu_irqs	= omap44xx_uart3_irqs,
> - 	.sdma_reqs	= omap44xx_uart3_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_uart3_sdma_reqs),
> - 	.main_clk	= "uart3_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -4775,6 +4775,7 @@ static struct omap_hwmod_irq_info
> omap44xx_uart4_irqs[] = {
> - static struct omap_hwmod_dma_info omap44xx_uart4_sdma_reqs[] = {
> - 	{ .name = "tx", .dma_req = 54 + OMAP44XX_DMA_REQ_START },
> - 	{ .name = "rx", .dma_req = 55 + OMAP44XX_DMA_REQ_START },
> -+	{ .dma_req = -1 }
> - };
> -
> - static struct omap_hwmod_addr_space omap44xx_uart4_addrs[] = {
> -@@ -4805,7 +4806,6 @@ static struct omap_hwmod
> omap44xx_uart4_hwmod = {
> - 	.class		= &omap44xx_uart_hwmod_class,
> - 	.mpu_irqs	= omap44xx_uart4_irqs,
> - 	.sdma_reqs	= omap44xx_uart4_sdma_reqs,
> --	.sdma_reqs_cnt	= ARRAY_SIZE(omap44xx_uart4_sdma_reqs),
> - 	.main_clk	= "uart4_fck",
> - 	.prcm = {
> - 		.omap4 = {
> -diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -index b8385e2..ce06ac6 100644
> ---- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -@@ -111,7 +111,7 @@ struct omap_hwmod_irq_info {
> - /**
> -  * struct omap_hwmod_dma_info - DMA channels used by the hwmod
> -  * @name: name of the DMA channel (module local name)
> -- * @dma_req: DMA request ID
> -+ * @dma_req: DMA request ID (should be non-negative except -1 =
> terminator)
> -  *
> -  * @name should be something short, e.g., "tx" or "rx".  It is for use
> -  * by platform_get_resource_byname().  It is defined locally to the
> -@@ -119,7 +119,7 @@ struct omap_hwmod_irq_info {
> -  */
> - struct omap_hwmod_dma_info {
> - 	const char	*name;
> --	u16		dma_req;
> -+	s16		dma_req;
> - };
> -
> - /**
> -@@ -467,7 +467,7 @@ struct omap_hwmod_class {
> -  * @class: struct omap_hwmod_class * to the class of this hwmod
> -  * @od: struct omap_device currently associated with this hwmod (internal
> use)
> -  * @mpu_irqs: ptr to an array of MPU IRQs
> -- * @sdma_reqs: ptr to an array of System DMA request IDs (see
> sdma_reqs_cnt)
> -+ * @sdma_reqs: ptr to an array of System DMA request IDs
> -  * @prcm: PRCM data pertaining to this hwmod
> -  * @main_clk: main clock: OMAP clock name
> -  * @_clk: pointer to the main struct clk (filled in at runtime)
> -@@ -480,7 +480,6 @@ struct omap_hwmod_class {
> -  * @_sysc_cache: internal-use hwmod flags
> -  * @_mpu_rt_va: cached register target start address (internal use)
> -  * @_mpu_port_index: cached MPU register target slave ID (internal use)
> -- * @sdma_reqs_cnt: number of @sdma_reqs
> -  * @opt_clks_cnt: number of @opt_clks
> -  * @master_cnt: number of @master entries
> -  * @slaves_cnt: number of @slave entries
> -@@ -528,7 +527,6 @@ struct omap_hwmod {
> - 	u16				flags;
> - 	u8				_mpu_port_index;
> - 	u8				response_lat;
> --	u8				sdma_reqs_cnt;
> - 	u8				rst_lines_cnt;
> - 	u8				opt_clks_cnt;
> - 	u8				masters_cnt;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0042-omap_hwmod-
> share-identical-omap_hwmod_dma_info-array.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0042-omap_hwmod-share-identical-
> omap_hwmod_dma_info-array.patch
> deleted file mode 100644
> index 56bc227..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0042-omap_hwmod-share-
> identical-omap_hwmod_dma_info-array.patch
> +++ /dev/null
> @@ -1,935 +0,0 @@
> -From 79a8b76e605e0930ef1c52c2a757eb523340cda1 Mon Sep 17 00:00:00
> 2001
> -From: Paul Walmsley <paul at pwsan.com>
> -Date: Sat, 9 Jul 2011 19:14:07 -0600
> -Subject: [PATCH 042/149] omap_hwmod: share identical
> omap_hwmod_dma_info arrays
> -
> -To reduce kernel source file data duplication, share struct
> -omap_hwmod_dma_info arrays across OMAP2xxx and 3xxx hwmod data files.
> -
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_2420_data.c         |   87 ++---------------
> -
> - arch/arm/mach-omap2/omap_hwmod_2430_data.c         |   95 +++-------------
> ----
> - .../mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c |   92
> +++++++++++++++++++
> - arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c |    6 ++
> - arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         |   89 ++----------------
> - arch/arm/mach-omap2/omap_hwmod_common_data.c       |   20 ----
> - arch/arm/mach-omap2/omap_hwmod_common_data.h       |   15 +++
> - 7 files changed, 144 insertions(+), 260 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -index 60c817e..6acc01f 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -@@ -828,12 +828,6 @@ static struct omap_hwmod_class uart_class = {
> -
> - /* UART1 */
> -
> --static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
> --	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART1_RX, },
> --	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART1_TX, },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2420_uart1_slaves[] = {
> - 	&omap2_l4_core__uart1,
> - };
> -@@ -841,7 +835,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_uart1_slaves[] = {
> - static struct omap_hwmod omap2420_uart1_hwmod = {
> - 	.name		= "uart1",
> - 	.mpu_irqs	= omap2_uart1_mpu_irqs,
> --	.sdma_reqs	= uart1_sdma_reqs,
> -+	.sdma_reqs	= omap2_uart1_sdma_reqs,
> - 	.main_clk	= "uart1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -860,12 +854,6 @@ static struct omap_hwmod
> omap2420_uart1_hwmod = {
> -
> - /* UART2 */
> -
> --static struct omap_hwmod_dma_info uart2_sdma_reqs[] = {
> --	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART2_RX, },
> --	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART2_TX, },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2420_uart2_slaves[] = {
> - 	&omap2_l4_core__uart2,
> - };
> -@@ -873,7 +861,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_uart2_slaves[] = {
> - static struct omap_hwmod omap2420_uart2_hwmod = {
> - 	.name		= "uart2",
> - 	.mpu_irqs	= omap2_uart2_mpu_irqs,
> --	.sdma_reqs	= uart2_sdma_reqs,
> -+	.sdma_reqs	= omap2_uart2_sdma_reqs,
> - 	.main_clk	= "uart2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -892,12 +880,6 @@ static struct omap_hwmod
> omap2420_uart2_hwmod = {
> -
> - /* UART3 */
> -
> --static struct omap_hwmod_dma_info uart3_sdma_reqs[] = {
> --	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART3_RX, },
> --	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART3_TX, },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2420_uart3_slaves[] = {
> - 	&omap2_l4_core__uart3,
> - };
> -@@ -905,7 +887,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_uart3_slaves[] = {
> - static struct omap_hwmod omap2420_uart3_hwmod = {
> - 	.name		= "uart3",
> - 	.mpu_irqs	= omap2_uart3_mpu_irqs,
> --	.sdma_reqs	= uart3_sdma_reqs,
> -+	.sdma_reqs	= omap2_uart3_sdma_reqs,
> - 	.main_clk	= "uart3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -940,11 +922,6 @@ static struct omap_hwmod_class
> omap2420_dss_hwmod_class = {
> - 	.sysc = &omap2420_dss_sysc,
> - };
> -
> --static struct omap_hwmod_dma_info omap2420_dss_sdma_chs[] = {
> --	{ .name = "dispc", .dma_req = 5 },
> --	{ .dma_req = -1 }
> --};
> --
> - /* dss */
> - /* dss master ports */
> - static struct omap_hwmod_ocp_if *omap2420_dss_masters[] = {
> -@@ -980,7 +957,7 @@ static struct omap_hwmod
> omap2420_dss_core_hwmod = {
> - 	.name		= "dss_core",
> - 	.class		= &omap2420_dss_hwmod_class,
> - 	.main_clk	= "dss1_fck", /* instead of dss_fck */
> --	.sdma_reqs	= omap2420_dss_sdma_chs,
> -+	.sdma_reqs	= omap2xxx_dss_sdma_chs,
> - 	.prcm		= {
> - 		.omap2 = {
> - 			.prcm_reg_id = 1,
> -@@ -1183,12 +1160,6 @@ static struct omap_i2c_dev_attr i2c_dev_attr;
> -
> - /* I2C1 */
> -
> --static struct omap_hwmod_dma_info i2c1_sdma_reqs[] = {
> --	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C1_TX },
> --	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C1_RX },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2420_i2c1_slaves[] = {
> - 	&omap2420_l4_core__i2c1,
> - };
> -@@ -1196,7 +1167,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_i2c1_slaves[] = {
> - static struct omap_hwmod omap2420_i2c1_hwmod = {
> - 	.name		= "i2c1",
> - 	.mpu_irqs	= omap2_i2c1_mpu_irqs,
> --	.sdma_reqs	= i2c1_sdma_reqs,
> -+	.sdma_reqs	= omap2_i2c1_sdma_reqs,
> - 	.main_clk	= "i2c1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1217,12 +1188,6 @@ static struct omap_hwmod
> omap2420_i2c1_hwmod = {
> -
> - /* I2C2 */
> -
> --static struct omap_hwmod_dma_info i2c2_sdma_reqs[] = {
> --	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C2_TX },
> --	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C2_RX },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2420_i2c2_slaves[] = {
> - 	&omap2420_l4_core__i2c2,
> - };
> -@@ -1230,7 +1195,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_i2c2_slaves[] = {
> - static struct omap_hwmod omap2420_i2c2_hwmod = {
> - 	.name		= "i2c2",
> - 	.mpu_irqs	= omap2_i2c2_mpu_irqs,
> --	.sdma_reqs	= i2c2_sdma_reqs,
> -+	.sdma_reqs	= omap2_i2c2_sdma_reqs,
> - 	.main_clk	= "i2c2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1602,18 +1567,6 @@ static struct omap_hwmod_class
> omap2420_mcspi_class = {
> - };
> -
> - /* mcspi1 */
> --static struct omap_hwmod_dma_info omap2420_mcspi1_sdma_reqs[] = {
> --	{ .name = "tx0", .dma_req = 35 }, /* DMA_SPI1_TX0 */
> --	{ .name = "rx0", .dma_req = 36 }, /* DMA_SPI1_RX0 */
> --	{ .name = "tx1", .dma_req = 37 }, /* DMA_SPI1_TX1 */
> --	{ .name = "rx1", .dma_req = 38 }, /* DMA_SPI1_RX1 */
> --	{ .name = "tx2", .dma_req = 39 }, /* DMA_SPI1_TX2 */
> --	{ .name = "rx2", .dma_req = 40 }, /* DMA_SPI1_RX2 */
> --	{ .name = "tx3", .dma_req = 41 }, /* DMA_SPI1_TX3 */
> --	{ .name = "rx3", .dma_req = 42 }, /* DMA_SPI1_RX3 */
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2420_mcspi1_slaves[] = {
> - 	&omap2420_l4_core__mcspi1,
> - };
> -@@ -1625,7 +1578,7 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi1_dev_attr = {
> - static struct omap_hwmod omap2420_mcspi1_hwmod = {
> - 	.name		= "mcspi1_hwmod",
> - 	.mpu_irqs	= omap2_mcspi1_mpu_irqs,
> --	.sdma_reqs	= omap2420_mcspi1_sdma_reqs,
> -+	.sdma_reqs	= omap2_mcspi1_sdma_reqs,
> - 	.main_clk	= "mcspi1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1644,14 +1597,6 @@ static struct omap_hwmod
> omap2420_mcspi1_hwmod = {
> - };
> -
> - /* mcspi2 */
> --static struct omap_hwmod_dma_info omap2420_mcspi2_sdma_reqs[] = {
> --	{ .name = "tx0", .dma_req = 43 }, /* DMA_SPI2_TX0 */
> --	{ .name = "rx0", .dma_req = 44 }, /* DMA_SPI2_RX0 */
> --	{ .name = "tx1", .dma_req = 45 }, /* DMA_SPI2_TX1 */
> --	{ .name = "rx1", .dma_req = 46 }, /* DMA_SPI2_RX1 */
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2420_mcspi2_slaves[] = {
> - 	&omap2420_l4_core__mcspi2,
> - };
> -@@ -1663,7 +1608,7 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi2_dev_attr = {
> - static struct omap_hwmod omap2420_mcspi2_hwmod = {
> - 	.name		= "mcspi2_hwmod",
> - 	.mpu_irqs	= omap2_mcspi2_mpu_irqs,
> --	.sdma_reqs	= omap2420_mcspi2_sdma_reqs,
> -+	.sdma_reqs	= omap2_mcspi2_sdma_reqs,
> - 	.main_clk	= "mcspi2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1697,12 +1642,6 @@ static struct omap_hwmod_irq_info
> omap2420_mcbsp1_irqs[] = {
> - 	{ .irq = -1 }
> - };
> -
> --static struct omap_hwmod_dma_info omap2420_mcbsp1_sdma_chs[] = {
> --	{ .name = "rx", .dma_req = 32 },
> --	{ .name = "tx", .dma_req = 31 },
> --	{ .dma_req = -1 }
> --};
> --
> - /* l4_core -> mcbsp1 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__mcbsp1 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> -@@ -1721,7 +1660,7 @@ static struct omap_hwmod
> omap2420_mcbsp1_hwmod = {
> - 	.name		= "mcbsp1",
> - 	.class		= &omap2420_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2420_mcbsp1_irqs,
> --	.sdma_reqs	= omap2420_mcbsp1_sdma_chs,
> -+	.sdma_reqs	= omap2_mcbsp1_sdma_reqs,
> - 	.main_clk	= "mcbsp1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1744,12 +1683,6 @@ static struct omap_hwmod_irq_info
> omap2420_mcbsp2_irqs[] = {
> - 	{ .irq = -1 }
> - };
> -
> --static struct omap_hwmod_dma_info omap2420_mcbsp2_sdma_chs[] = {
> --	{ .name = "rx", .dma_req = 34 },
> --	{ .name = "tx", .dma_req = 33 },
> --	{ .dma_req = -1 }
> --};
> --
> - /* l4_core -> mcbsp2 */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__mcbsp2 = {
> - 	.master		= &omap2420_l4_core_hwmod,
> -@@ -1768,7 +1701,7 @@ static struct omap_hwmod
> omap2420_mcbsp2_hwmod = {
> - 	.name		= "mcbsp2",
> - 	.class		= &omap2420_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2420_mcbsp2_irqs,
> --	.sdma_reqs	= omap2420_mcbsp2_sdma_chs,
> -+	.sdma_reqs	= omap2_mcbsp2_sdma_reqs,
> - 	.main_clk	= "mcbsp2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -index af758b3..639acd5 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -@@ -900,12 +900,6 @@ static struct omap_hwmod_class uart_class = {
> -
> - /* UART1 */
> -
> --static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
> --	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART1_RX, },
> --	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART1_TX, },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2430_uart1_slaves[] = {
> - 	&omap2_l4_core__uart1,
> - };
> -@@ -913,7 +907,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_uart1_slaves[] = {
> - static struct omap_hwmod omap2430_uart1_hwmod = {
> - 	.name		= "uart1",
> - 	.mpu_irqs	= omap2_uart1_mpu_irqs,
> --	.sdma_reqs	= uart1_sdma_reqs,
> -+	.sdma_reqs	= omap2_uart1_sdma_reqs,
> - 	.main_clk	= "uart1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -932,12 +926,6 @@ static struct omap_hwmod
> omap2430_uart1_hwmod = {
> -
> - /* UART2 */
> -
> --static struct omap_hwmod_dma_info uart2_sdma_reqs[] = {
> --	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART2_RX, },
> --	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART2_TX, },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2430_uart2_slaves[] = {
> - 	&omap2_l4_core__uart2,
> - };
> -@@ -945,7 +933,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_uart2_slaves[] = {
> - static struct omap_hwmod omap2430_uart2_hwmod = {
> - 	.name		= "uart2",
> - 	.mpu_irqs	= omap2_uart2_mpu_irqs,
> --	.sdma_reqs	= uart2_sdma_reqs,
> -+	.sdma_reqs	= omap2_uart2_sdma_reqs,
> - 	.main_clk	= "uart2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -964,12 +952,6 @@ static struct omap_hwmod
> omap2430_uart2_hwmod = {
> -
> - /* UART3 */
> -
> --static struct omap_hwmod_dma_info uart3_sdma_reqs[] = {
> --	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART3_RX, },
> --	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART3_TX, },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2430_uart3_slaves[] = {
> - 	&omap2_l4_core__uart3,
> - };
> -@@ -977,7 +959,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_uart3_slaves[] = {
> - static struct omap_hwmod omap2430_uart3_hwmod = {
> - 	.name		= "uart3",
> - 	.mpu_irqs	= omap2_uart3_mpu_irqs,
> --	.sdma_reqs	= uart3_sdma_reqs,
> -+	.sdma_reqs	= omap2_uart3_sdma_reqs,
> - 	.main_clk	= "uart3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1012,11 +994,6 @@ static struct omap_hwmod_class
> omap2430_dss_hwmod_class = {
> - 	.sysc = &omap2430_dss_sysc,
> - };
> -
> --static struct omap_hwmod_dma_info omap2430_dss_sdma_chs[] = {
> --	{ .name = "dispc", .dma_req = 5 },
> --	{ .dma_req = -1 }
> --};
> --
> - /* dss */
> - /* dss master ports */
> - static struct omap_hwmod_ocp_if *omap2430_dss_masters[] = {
> -@@ -1046,7 +1023,7 @@ static struct omap_hwmod
> omap2430_dss_core_hwmod = {
> - 	.name		= "dss_core",
> - 	.class		= &omap2430_dss_hwmod_class,
> - 	.main_clk	= "dss1_fck", /* instead of dss_fck */
> --	.sdma_reqs	= omap2430_dss_sdma_chs,
> -+	.sdma_reqs	= omap2xxx_dss_sdma_chs,
> - 	.prcm		= {
> - 		.omap2 = {
> - 			.prcm_reg_id = 1,
> -@@ -1234,12 +1211,6 @@ static struct omap_i2c_dev_attr i2c_dev_attr = {
> -
> - /* I2C1 */
> -
> --static struct omap_hwmod_dma_info i2c1_sdma_reqs[] = {
> --	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C1_TX },
> --	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C1_RX },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2430_i2c1_slaves[] = {
> - 	&omap2430_l4_core__i2c1,
> - };
> -@@ -1247,7 +1218,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_i2c1_slaves[] = {
> - static struct omap_hwmod omap2430_i2c1_hwmod = {
> - 	.name		= "i2c1",
> - 	.mpu_irqs	= omap2_i2c1_mpu_irqs,
> --	.sdma_reqs	= i2c1_sdma_reqs,
> -+	.sdma_reqs	= omap2_i2c1_sdma_reqs,
> - 	.main_clk	= "i2chs1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1275,12 +1246,6 @@ static struct omap_hwmod
> omap2430_i2c1_hwmod = {
> -
> - /* I2C2 */
> -
> --static struct omap_hwmod_dma_info i2c2_sdma_reqs[] = {
> --	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C2_TX },
> --	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C2_RX },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2430_i2c2_slaves[] = {
> - 	&omap2430_l4_core__i2c2,
> - };
> -@@ -1288,7 +1253,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_i2c2_slaves[] = {
> - static struct omap_hwmod omap2430_i2c2_hwmod = {
> - 	.name		= "i2c2",
> - 	.mpu_irqs	= omap2_i2c2_mpu_irqs,
> --	.sdma_reqs	= i2c2_sdma_reqs,
> -+	.sdma_reqs	= omap2_i2c2_sdma_reqs,
> - 	.main_clk	= "i2chs2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1707,18 +1672,6 @@ static struct omap_hwmod_class
> omap2430_mcspi_class = {
> - };
> -
> - /* mcspi1 */
> --static struct omap_hwmod_dma_info omap2430_mcspi1_sdma_reqs[] = {
> --	{ .name = "tx0", .dma_req = 35 }, /* DMA_SPI1_TX0 */
> --	{ .name = "rx0", .dma_req = 36 }, /* DMA_SPI1_RX0 */
> --	{ .name = "tx1", .dma_req = 37 }, /* DMA_SPI1_TX1 */
> --	{ .name = "rx1", .dma_req = 38 }, /* DMA_SPI1_RX1 */
> --	{ .name = "tx2", .dma_req = 39 }, /* DMA_SPI1_TX2 */
> --	{ .name = "rx2", .dma_req = 40 }, /* DMA_SPI1_RX2 */
> --	{ .name = "tx3", .dma_req = 41 }, /* DMA_SPI1_TX3 */
> --	{ .name = "rx3", .dma_req = 42 }, /* DMA_SPI1_RX3 */
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2430_mcspi1_slaves[] = {
> - 	&omap2430_l4_core__mcspi1,
> - };
> -@@ -1730,7 +1683,7 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi1_dev_attr = {
> - static struct omap_hwmod omap2430_mcspi1_hwmod = {
> - 	.name		= "mcspi1_hwmod",
> - 	.mpu_irqs	= omap2_mcspi1_mpu_irqs,
> --	.sdma_reqs	= omap2430_mcspi1_sdma_reqs,
> -+	.sdma_reqs	= omap2_mcspi1_sdma_reqs,
> - 	.main_clk	= "mcspi1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1749,14 +1702,6 @@ static struct omap_hwmod
> omap2430_mcspi1_hwmod = {
> - };
> -
> - /* mcspi2 */
> --static struct omap_hwmod_dma_info omap2430_mcspi2_sdma_reqs[] = {
> --	{ .name = "tx0", .dma_req = 43 }, /* DMA_SPI2_TX0 */
> --	{ .name = "rx0", .dma_req = 44 }, /* DMA_SPI2_RX0 */
> --	{ .name = "tx1", .dma_req = 45 }, /* DMA_SPI2_TX1 */
> --	{ .name = "rx1", .dma_req = 46 }, /* DMA_SPI2_RX1 */
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap2430_mcspi2_slaves[] = {
> - 	&omap2430_l4_core__mcspi2,
> - };
> -@@ -1768,7 +1713,7 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi2_dev_attr = {
> - static struct omap_hwmod omap2430_mcspi2_hwmod = {
> - 	.name		= "mcspi2_hwmod",
> - 	.mpu_irqs	= omap2_mcspi2_mpu_irqs,
> --	.sdma_reqs	= omap2430_mcspi2_sdma_reqs,
> -+	.sdma_reqs	= omap2_mcspi2_sdma_reqs,
> - 	.main_clk	= "mcspi2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1912,12 +1857,6 @@ static struct omap_hwmod_irq_info
> omap2430_mcbsp1_irqs[] = {
> - 	{ .irq = -1 }
> - };
> -
> --static struct omap_hwmod_dma_info omap2430_mcbsp1_sdma_chs[] = {
> --	{ .name = "rx", .dma_req = 32 },
> --	{ .name = "tx", .dma_req = 31 },
> --	{ .dma_req = -1 }
> --};
> --
> - /* l4_core -> mcbsp1 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mcbsp1 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> -@@ -1936,7 +1875,7 @@ static struct omap_hwmod
> omap2430_mcbsp1_hwmod = {
> - 	.name		= "mcbsp1",
> - 	.class		= &omap2430_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2430_mcbsp1_irqs,
> --	.sdma_reqs	= omap2430_mcbsp1_sdma_chs,
> -+	.sdma_reqs	= omap2_mcbsp1_sdma_reqs,
> - 	.main_clk	= "mcbsp1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1960,12 +1899,6 @@ static struct omap_hwmod_irq_info
> omap2430_mcbsp2_irqs[] = {
> - 	{ .irq = -1 }
> - };
> -
> --static struct omap_hwmod_dma_info omap2430_mcbsp2_sdma_chs[] = {
> --	{ .name = "rx", .dma_req = 34 },
> --	{ .name = "tx", .dma_req = 33 },
> --	{ .dma_req = -1 }
> --};
> --
> - /* l4_core -> mcbsp2 */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__mcbsp2 = {
> - 	.master		= &omap2430_l4_core_hwmod,
> -@@ -1984,7 +1917,7 @@ static struct omap_hwmod
> omap2430_mcbsp2_hwmod = {
> - 	.name		= "mcbsp2",
> - 	.class		= &omap2430_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2430_mcbsp2_irqs,
> --	.sdma_reqs	= omap2430_mcbsp2_sdma_chs,
> -+	.sdma_reqs	= omap2_mcbsp2_sdma_reqs,
> - 	.main_clk	= "mcbsp2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2008,12 +1941,6 @@ static struct omap_hwmod_irq_info
> omap2430_mcbsp3_irqs[] = {
> - 	{ .irq = -1 }
> - };
> -
> --static struct omap_hwmod_dma_info omap2430_mcbsp3_sdma_chs[] = {
> --	{ .name = "rx", .dma_req = 18 },
> --	{ .name = "tx", .dma_req = 17 },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_addr_space omap2430_mcbsp3_addrs[] = {
> - 	{
> - 		.name		= "mpu",
> -@@ -2042,7 +1969,7 @@ static struct omap_hwmod
> omap2430_mcbsp3_hwmod = {
> - 	.name		= "mcbsp3",
> - 	.class		= &omap2430_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap2430_mcbsp3_irqs,
> --	.sdma_reqs	= omap2430_mcbsp3_sdma_chs,
> -+	.sdma_reqs	= omap2_mcbsp3_sdma_reqs,
> - 	.main_clk	= "mcbsp3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
> -index 245294b..7c4f5ab 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
> -@@ -10,11 +10,35 @@
> -  */
> - #include <plat/omap_hwmod.h>
> - #include <plat/serial.h>
> -+#include <plat/dma.h>
> -
> - #include <mach/irqs.h>
> -
> - #include "omap_hwmod_common_data.h"
> -
> -+
> -+/*
> -+ * omap_hwmod class data
> -+ */
> -+
> -+struct omap_hwmod_class l3_hwmod_class = {
> -+	.name = "l3"
> -+};
> -+
> -+struct omap_hwmod_class l4_hwmod_class = {
> -+	.name = "l4"
> -+};
> -+
> -+struct omap_hwmod_class mpu_hwmod_class = {
> -+	.name = "mpu"
> -+};
> -+
> -+struct omap_hwmod_class iva_hwmod_class = {
> -+	.name = "iva"
> -+};
> -+
> -+/* Common MPU IRQ line data */
> -+
> - struct omap_hwmod_irq_info omap2_timer1_mpu_irqs[] = {
> - 	{ .irq = 37, },
> - 	{ .irq = -1 }
> -@@ -138,5 +162,73 @@ struct omap_hwmod_irq_info
> omap2_mcspi2_mpu_irqs[] = {
> - 	{ .irq = -1 }
> - };
> -
> -+/* Common DMA request line data */
> -+struct omap_hwmod_dma_info omap2_uart1_sdma_reqs[] = {
> -+	{ .name = "rx", .dma_req = OMAP24XX_DMA_UART1_RX, },
> -+	{ .name = "tx", .dma_req = OMAP24XX_DMA_UART1_TX, },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_uart2_sdma_reqs[] = {
> -+	{ .name = "rx", .dma_req = OMAP24XX_DMA_UART2_RX, },
> -+	{ .name = "tx", .dma_req = OMAP24XX_DMA_UART2_TX, },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_uart3_sdma_reqs[] = {
> -+	{ .name = "rx", .dma_req = OMAP24XX_DMA_UART3_RX, },
> -+	{ .name = "tx", .dma_req = OMAP24XX_DMA_UART3_TX, },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_i2c1_sdma_reqs[] = {
> -+	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C1_TX },
> -+	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C1_RX },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_i2c2_sdma_reqs[] = {
> -+	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C2_TX },
> -+	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C2_RX },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_mcspi1_sdma_reqs[] = {
> -+	{ .name = "tx0", .dma_req = 35 }, /* DMA_SPI1_TX0 */
> -+	{ .name = "rx0", .dma_req = 36 }, /* DMA_SPI1_RX0 */
> -+	{ .name = "tx1", .dma_req = 37 }, /* DMA_SPI1_TX1 */
> -+	{ .name = "rx1", .dma_req = 38 }, /* DMA_SPI1_RX1 */
> -+	{ .name = "tx2", .dma_req = 39 }, /* DMA_SPI1_TX2 */
> -+	{ .name = "rx2", .dma_req = 40 }, /* DMA_SPI1_RX2 */
> -+	{ .name = "tx3", .dma_req = 41 }, /* DMA_SPI1_TX3 */
> -+	{ .name = "rx3", .dma_req = 42 }, /* DMA_SPI1_RX3 */
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_mcspi2_sdma_reqs[] = {
> -+	{ .name = "tx0", .dma_req = 43 }, /* DMA_SPI2_TX0 */
> -+	{ .name = "rx0", .dma_req = 44 }, /* DMA_SPI2_RX0 */
> -+	{ .name = "tx1", .dma_req = 45 }, /* DMA_SPI2_TX1 */
> -+	{ .name = "rx1", .dma_req = 46 }, /* DMA_SPI2_RX1 */
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_mcbsp1_sdma_reqs[] = {
> -+	{ .name = "rx", .dma_req = 32 },
> -+	{ .name = "tx", .dma_req = 31 },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_mcbsp2_sdma_reqs[] = {
> -+	{ .name = "rx", .dma_req = 34 },
> -+	{ .name = "tx", .dma_req = 33 },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_mcbsp3_sdma_reqs[] = {
> -+	{ .name = "rx", .dma_req = 18 },
> -+	{ .name = "tx", .dma_req = 17 },
> -+	{ .dma_req = -1 }
> -+};
> -
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
> -index 5a078a6..f5b63ef 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
> -@@ -10,6 +10,7 @@
> -  */
> - #include <plat/omap_hwmod.h>
> - #include <plat/serial.h>
> -+#include <plat/dma.h>
> -
> - #include <mach/irqs.h>
> -
> -@@ -19,3 +20,8 @@ struct omap_hwmod_irq_info
> omap2xxx_timer12_mpu_irqs[] = {
> - 	{ .irq = 48, },
> - 	{ .irq = -1 }
> - };
> -+
> -+struct omap_hwmod_dma_info omap2xxx_dss_sdma_chs[] = {
> -+	{ .name = "dispc", .dma_req = 5 },
> -+	{ .dma_req = -1 }
> -+};
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -index 265f0b1..001f67b 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -@@ -1210,12 +1210,6 @@ static struct omap_hwmod_class uart_class = {
> -
> - /* UART1 */
> -
> --static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
> --	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART1_TX, },
> --	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART1_RX, },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap3xxx_uart1_slaves[] = {
> - 	&omap3_l4_core__uart1,
> - };
> -@@ -1223,7 +1217,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_uart1_slaves[] = {
> - static struct omap_hwmod omap3xxx_uart1_hwmod = {
> - 	.name		= "uart1",
> - 	.mpu_irqs	= omap2_uart1_mpu_irqs,
> --	.sdma_reqs	= uart1_sdma_reqs,
> -+	.sdma_reqs	= omap2_uart1_sdma_reqs,
> - 	.main_clk	= "uart1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1242,12 +1236,6 @@ static struct omap_hwmod
> omap3xxx_uart1_hwmod = {
> -
> - /* UART2 */
> -
> --static struct omap_hwmod_dma_info uart2_sdma_reqs[] = {
> --	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART2_TX, },
> --	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART2_RX, },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap3xxx_uart2_slaves[] = {
> - 	&omap3_l4_core__uart2,
> - };
> -@@ -1255,7 +1243,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_uart2_slaves[] = {
> - static struct omap_hwmod omap3xxx_uart2_hwmod = {
> - 	.name		= "uart2",
> - 	.mpu_irqs	= omap2_uart2_mpu_irqs,
> --	.sdma_reqs	= uart2_sdma_reqs,
> -+	.sdma_reqs	= omap2_uart2_sdma_reqs,
> - 	.main_clk	= "uart2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1274,12 +1262,6 @@ static struct omap_hwmod
> omap3xxx_uart2_hwmod = {
> -
> - /* UART3 */
> -
> --static struct omap_hwmod_dma_info uart3_sdma_reqs[] = {
> --	{ .name = "tx",	.dma_req = OMAP24XX_DMA_UART3_TX, },
> --	{ .name = "rx",	.dma_req = OMAP24XX_DMA_UART3_RX, },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap3xxx_uart3_slaves[] = {
> - 	&omap3_l4_per__uart3,
> - };
> -@@ -1287,7 +1269,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_uart3_slaves[] = {
> - static struct omap_hwmod omap3xxx_uart3_hwmod = {
> - 	.name		= "uart3",
> - 	.mpu_irqs	= omap2_uart3_mpu_irqs,
> --	.sdma_reqs	= uart3_sdma_reqs,
> -+	.sdma_reqs	= omap2_uart3_sdma_reqs,
> - 	.main_clk	= "uart3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1714,12 +1696,6 @@ static struct omap_i2c_dev_attr i2c1_dev_attr = {
> - 	.fifo_depth	= 8, /* bytes */
> - };
> -
> --static struct omap_hwmod_dma_info i2c1_sdma_reqs[] = {
> --	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C1_TX },
> --	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C1_RX },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap3xxx_i2c1_slaves[] = {
> - 	&omap3_l4_core__i2c1,
> - };
> -@@ -1727,7 +1703,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_i2c1_slaves[] = {
> - static struct omap_hwmod omap3xxx_i2c1_hwmod = {
> - 	.name		= "i2c1",
> - 	.mpu_irqs	= omap2_i2c1_mpu_irqs,
> --	.sdma_reqs	= i2c1_sdma_reqs,
> -+	.sdma_reqs	= omap2_i2c1_sdma_reqs,
> - 	.main_clk	= "i2c1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1751,12 +1727,6 @@ static struct omap_i2c_dev_attr i2c2_dev_attr = {
> - 	.fifo_depth	= 8, /* bytes */
> - };
> -
> --static struct omap_hwmod_dma_info i2c2_sdma_reqs[] = {
> --	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C2_TX },
> --	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C2_RX },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap3xxx_i2c2_slaves[] = {
> - 	&omap3_l4_core__i2c2,
> - };
> -@@ -1764,7 +1734,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_i2c2_slaves[] = {
> - static struct omap_hwmod omap3xxx_i2c2_hwmod = {
> - 	.name		= "i2c2",
> - 	.mpu_irqs	= omap2_i2c2_mpu_irqs,
> --	.sdma_reqs	= i2c2_sdma_reqs,
> -+	.sdma_reqs	= omap2_i2c2_sdma_reqs,
> - 	.main_clk	= "i2c2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2269,12 +2239,6 @@ static struct omap_hwmod_irq_info
> omap3xxx_mcbsp1_irqs[] = {
> - 	{ .irq = -1 }
> - };
> -
> --static struct omap_hwmod_dma_info omap3xxx_mcbsp1_sdma_chs[] = {
> --	{ .name = "rx", .dma_req = 32 },
> --	{ .name = "tx", .dma_req = 31 },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_addr_space omap3xxx_mcbsp1_addrs[] = {
> - 	{
> - 		.name		= "mpu",
> -@@ -2303,7 +2267,7 @@ static struct omap_hwmod
> omap3xxx_mcbsp1_hwmod = {
> - 	.name		= "mcbsp1",
> - 	.class		= &omap3xxx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp1_irqs,
> --	.sdma_reqs	= omap3xxx_mcbsp1_sdma_chs,
> -+	.sdma_reqs	= omap2_mcbsp1_sdma_reqs,
> - 	.main_clk	= "mcbsp1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2327,12 +2291,6 @@ static struct omap_hwmod_irq_info
> omap3xxx_mcbsp2_irqs[] = {
> - 	{ .irq = -1 }
> - };
> -
> --static struct omap_hwmod_dma_info omap3xxx_mcbsp2_sdma_chs[] = {
> --	{ .name = "rx", .dma_req = 34 },
> --	{ .name = "tx", .dma_req = 33 },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_addr_space omap3xxx_mcbsp2_addrs[] = {
> - 	{
> - 		.name		= "mpu",
> -@@ -2349,7 +2307,6 @@ static struct omap_hwmod_ocp_if
> omap3xxx_l4_per__mcbsp2 = {
> - 	.slave		= &omap3xxx_mcbsp2_hwmod,
> - 	.clk		= "mcbsp2_ick",
> - 	.addr		= omap3xxx_mcbsp2_addrs,
> --
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> -@@ -2366,7 +2323,7 @@ static struct omap_hwmod
> omap3xxx_mcbsp2_hwmod = {
> - 	.name		= "mcbsp2",
> - 	.class		= &omap3xxx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp2_irqs,
> --	.sdma_reqs	= omap3xxx_mcbsp2_sdma_chs,
> -+	.sdma_reqs	= omap2_mcbsp2_sdma_reqs,
> - 	.main_clk	= "mcbsp2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2391,12 +2348,6 @@ static struct omap_hwmod_irq_info
> omap3xxx_mcbsp3_irqs[] = {
> - 	{ .irq = -1 }
> - };
> -
> --static struct omap_hwmod_dma_info omap3xxx_mcbsp3_sdma_chs[] = {
> --	{ .name = "rx", .dma_req = 18 },
> --	{ .name = "tx", .dma_req = 17 },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_addr_space omap3xxx_mcbsp3_addrs[] = {
> - 	{
> - 		.name		= "mpu",
> -@@ -2429,7 +2380,7 @@ static struct omap_hwmod
> omap3xxx_mcbsp3_hwmod = {
> - 	.name		= "mcbsp3",
> - 	.class		= &omap3xxx_mcbsp_hwmod_class,
> - 	.mpu_irqs	= omap3xxx_mcbsp3_irqs,
> --	.sdma_reqs	= omap3xxx_mcbsp3_sdma_chs,
> -+	.sdma_reqs	= omap2_mcbsp3_sdma_reqs,
> - 	.main_clk	= "mcbsp3_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2939,18 +2890,6 @@ static struct omap_hwmod_class
> omap34xx_mcspi_class = {
> - };
> -
> - /* mcspi1 */
> --static struct omap_hwmod_dma_info omap34xx_mcspi1_sdma_reqs[] = {
> --	{ .name = "tx0", .dma_req = 35 },
> --	{ .name = "rx0", .dma_req = 36 },
> --	{ .name = "tx1", .dma_req = 37 },
> --	{ .name = "rx1", .dma_req = 38 },
> --	{ .name = "tx2", .dma_req = 39 },
> --	{ .name = "rx2", .dma_req = 40 },
> --	{ .name = "tx3", .dma_req = 41 },
> --	{ .name = "rx3", .dma_req = 42 },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap34xx_mcspi1_slaves[] = {
> - 	&omap34xx_l4_core__mcspi1,
> - };
> -@@ -2962,7 +2901,7 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi1_dev_attr = {
> - static struct omap_hwmod omap34xx_mcspi1 = {
> - 	.name		= "mcspi1",
> - 	.mpu_irqs	= omap2_mcspi1_mpu_irqs,
> --	.sdma_reqs	= omap34xx_mcspi1_sdma_reqs,
> -+	.sdma_reqs	= omap2_mcspi1_sdma_reqs,
> - 	.main_clk	= "mcspi1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -2981,14 +2920,6 @@ static struct omap_hwmod omap34xx_mcspi1 = {
> - };
> -
> - /* mcspi2 */
> --static struct omap_hwmod_dma_info omap34xx_mcspi2_sdma_reqs[] = {
> --	{ .name = "tx0", .dma_req = 43 },
> --	{ .name = "rx0", .dma_req = 44 },
> --	{ .name = "tx1", .dma_req = 45 },
> --	{ .name = "rx1", .dma_req = 46 },
> --	{ .dma_req = -1 }
> --};
> --
> - static struct omap_hwmod_ocp_if *omap34xx_mcspi2_slaves[] = {
> - 	&omap34xx_l4_core__mcspi2,
> - };
> -@@ -3000,7 +2931,7 @@ static struct omap2_mcspi_dev_attr
> omap_mcspi2_dev_attr = {
> - static struct omap_hwmod omap34xx_mcspi2 = {
> - 	.name		= "mcspi2",
> - 	.mpu_irqs	= omap2_mcspi2_mpu_irqs,
> --	.sdma_reqs	= omap34xx_mcspi2_sdma_reqs,
> -+	.sdma_reqs	= omap2_mcspi2_sdma_reqs,
> - 	.main_clk	= "mcspi2_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_common_data.c
> b/arch/arm/mach-omap2/omap_hwmod_common_data.c
> -index 08a1342..de832eb 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_common_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_common_data.c
> -@@ -49,23 +49,3 @@ struct omap_hwmod_sysc_fields
> omap_hwmod_sysc_type2 = {
> - 	.srst_shift	= SYSC_TYPE2_SOFTRESET_SHIFT,
> - };
> -
> --
> --/*
> -- * omap_hwmod class data
> -- */
> --
> --struct omap_hwmod_class l3_hwmod_class = {
> --	.name = "l3"
> --};
> --
> --struct omap_hwmod_class l4_hwmod_class = {
> --	.name = "l4"
> --};
> --
> --struct omap_hwmod_class mpu_hwmod_class = {
> --	.name = "mpu"
> --};
> --
> --struct omap_hwmod_class iva_hwmod_class = {
> --	.name = "iva"
> --};
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_common_data.h
> b/arch/arm/mach-omap2/omap_hwmod_common_data.h
> -index 1ac878c..b636cf6 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_common_data.h
> -+++ b/arch/arm/mach-omap2/omap_hwmod_common_data.h
> -@@ -51,6 +51,21 @@ extern struct omap_hwmod_addr_space
> omap2_mcbsp1_addrs[];
> -
> - /* Common IP block data across OMAP2xxx */
> - extern struct omap_hwmod_irq_info omap2xxx_timer12_mpu_irqs[];
> -+extern struct omap_hwmod_dma_info omap2xxx_dss_sdma_chs[];
> -+
> -+/* Common IP block data */
> -+extern struct omap_hwmod_dma_info omap2_uart1_sdma_reqs[];
> -+extern struct omap_hwmod_dma_info omap2_uart2_sdma_reqs[];
> -+extern struct omap_hwmod_dma_info omap2_uart3_sdma_reqs[];
> -+extern struct omap_hwmod_dma_info omap2_i2c1_sdma_reqs[];
> -+extern struct omap_hwmod_dma_info omap2_i2c2_sdma_reqs[];
> -+extern struct omap_hwmod_dma_info omap2_mcspi1_sdma_reqs[];
> -+extern struct omap_hwmod_dma_info omap2_mcspi2_sdma_reqs[];
> -+extern struct omap_hwmod_dma_info omap2_mcbsp1_sdma_reqs[];
> -+extern struct omap_hwmod_dma_info omap2_mcbsp2_sdma_reqs[];
> -+
> -+/* Common IP block data on OMAP2430/OMAP3 */
> -+extern struct omap_hwmod_dma_info omap2_mcbsp3_sdma_reqs[];
> -
> - /* Common IP block data across OMAP2/3 */
> - extern struct omap_hwmod_irq_info omap2_timer1_mpu_irqs[];
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0043-omap_hwmod-
> share-identical-omap_hwmod_class-omap_hwm.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0043-omap_hwmod-share-identical-
> omap_hwmod_class-omap_hwm.patch
> deleted file mode 100644
> index f4e644b..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0043-omap_hwmod-share-
> identical-omap_hwmod_class-omap_hwm.patch
> +++ /dev/null
> @@ -1,1730 +0,0 @@
> -From 7fb59da1fff606542858e006b001e1cb63e1d708 Mon Sep 17 00:00:00
> 2001
> -From: Paul Walmsley <paul at pwsan.com>
> -Date: Sat, 9 Jul 2011 19:14:08 -0600
> -Subject: [PATCH 043/149] omap_hwmod: share identical omap_hwmod_class,
> omap_hwmod_class_sysconfig arrays
> -
> -To reduce kernel source file data duplication, share struct
> -omap_hwmod_class and omap_hwmod_class_sysconfig arrays across
> OMAP2xxx
> -and 3xxx hwmod data files.
> -
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_2420_data.c         |  267 +++------------
> -----
> - arch/arm/mach-omap2/omap_hwmod_2430_data.c         |  273 +++------------
> -----
> - .../mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c |  228
> +++++++++++-----
> - arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c |  123
> +++++++++
> - arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         |  105 +-------
> - arch/arm/mach-omap2/omap_hwmod_common_data.h       |   11 +
> - 6 files changed, 364 insertions(+), 643 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -index 6acc01f..f3901ab 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -@@ -274,24 +274,6 @@ static struct omap_hwmod omap2420_iva_hwmod
> = {
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
> - };
> -
> --/* Timer Common */
> --static struct omap_hwmod_class_sysconfig omap2420_timer_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_SIDLEMODE |
> SYSC_HAS_CLOCKACTIVITY |
> --			   SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET |
> --			   SYSC_HAS_AUTOIDLE),
> --	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
> --	.sysc_fields    = &omap_hwmod_sysc_type1,
> --};
> --
> --static struct omap_hwmod_class omap2420_timer_hwmod_class = {
> --	.name = "timer",
> --	.sysc = &omap2420_timer_sysc,
> --	.rev = OMAP_TIMER_IP_VERSION_1,
> --};
> --
> - /* timer1 */
> - static struct omap_hwmod omap2420_timer1_hwmod;
> -
> -@@ -334,7 +316,7 @@ static struct omap_hwmod
> omap2420_timer1_hwmod = {
> - 	},
> - 	.slaves		= omap2420_timer1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_timer1_slaves),
> --	.class		= &omap2420_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
> - };
> -
> -@@ -371,7 +353,7 @@ static struct omap_hwmod
> omap2420_timer2_hwmod = {
> - 	},
> - 	.slaves		= omap2420_timer2_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_timer2_slaves),
> --	.class		= &omap2420_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
> - };
> -
> -@@ -408,7 +390,7 @@ static struct omap_hwmod
> omap2420_timer3_hwmod = {
> - 	},
> - 	.slaves		= omap2420_timer3_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_timer3_slaves),
> --	.class		= &omap2420_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
> - };
> -
> -@@ -445,7 +427,7 @@ static struct omap_hwmod
> omap2420_timer4_hwmod = {
> - 	},
> - 	.slaves		= omap2420_timer4_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_timer4_slaves),
> --	.class		= &omap2420_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
> - };
> -
> -@@ -482,7 +464,7 @@ static struct omap_hwmod
> omap2420_timer5_hwmod = {
> - 	},
> - 	.slaves		= omap2420_timer5_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_timer5_slaves),
> --	.class		= &omap2420_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
> - };
> -
> -@@ -520,7 +502,7 @@ static struct omap_hwmod
> omap2420_timer6_hwmod = {
> - 	},
> - 	.slaves		= omap2420_timer6_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_timer6_slaves),
> --	.class		= &omap2420_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
> - };
> -
> -@@ -557,7 +539,7 @@ static struct omap_hwmod
> omap2420_timer7_hwmod = {
> - 	},
> - 	.slaves		= omap2420_timer7_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_timer7_slaves),
> --	.class		= &omap2420_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
> - };
> -
> -@@ -594,7 +576,7 @@ static struct omap_hwmod
> omap2420_timer8_hwmod = {
> - 	},
> - 	.slaves		= omap2420_timer8_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_timer8_slaves),
> --	.class		= &omap2420_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
> - };
> -
> -@@ -631,7 +613,7 @@ static struct omap_hwmod
> omap2420_timer9_hwmod = {
> - 	},
> - 	.slaves		= omap2420_timer9_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_timer9_slaves),
> --	.class		= &omap2420_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
> - };
> -
> -@@ -668,7 +650,7 @@ static struct omap_hwmod
> omap2420_timer10_hwmod = {
> - 	},
> - 	.slaves		= omap2420_timer10_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_timer10_slaves),
> --	.class		= &omap2420_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
> - };
> -
> -@@ -705,7 +687,7 @@ static struct omap_hwmod
> omap2420_timer11_hwmod = {
> - 	},
> - 	.slaves		= omap2420_timer11_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_timer11_slaves),
> --	.class		= &omap2420_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
> - };
> -
> -@@ -742,7 +724,7 @@ static struct omap_hwmod
> omap2420_timer12_hwmod = {
> - 	},
> - 	.slaves		= omap2420_timer12_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_timer12_slaves),
> --	.class		= &omap2420_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
> - };
> -
> -@@ -764,27 +746,6 @@ static struct omap_hwmod_ocp_if
> omap2420_l4_wkup__wd_timer2 = {
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> --/*
> -- * 'wd_timer' class
> -- * 32-bit watchdog upward counter that generates a pulse on the reset pin on
> -- * overflow condition
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap2420_wd_timer_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_EMUFREE | SYSC_HAS_SOFTRESET |
> --			   SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS),
> --	.sysc_fields    = &omap_hwmod_sysc_type1,
> --};
> --
> --static struct omap_hwmod_class omap2420_wd_timer_hwmod_class = {
> --	.name		= "wd_timer",
> --	.sysc		= &omap2420_wd_timer_sysc,
> --	.pre_shutdown	= &omap2_wd_timer_disable
> --};
> --
> - /* wd_timer2 */
> - static struct omap_hwmod_ocp_if *omap2420_wd_timer2_slaves[] = {
> - 	&omap2420_l4_wkup__wd_timer2,
> -@@ -792,7 +753,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_wd_timer2_slaves[] = {
> -
> - static struct omap_hwmod omap2420_wd_timer2_hwmod = {
> - 	.name		= "wd_timer2",
> --	.class		= &omap2420_wd_timer_hwmod_class,
> -+	.class		= &omap2xxx_wd_timer_hwmod_class,
> - 	.main_clk	= "mpu_wdt_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -808,24 +769,6 @@ static struct omap_hwmod
> omap2420_wd_timer2_hwmod = {
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
> - };
> -
> --/* UART */
> --
> --static struct omap_hwmod_class_sysconfig uart_sysc = {
> --	.rev_offs	= 0x50,
> --	.sysc_offs	= 0x54,
> --	.syss_offs	= 0x58,
> --	.sysc_flags	= (SYSC_HAS_SIDLEMODE |
> --			   SYSC_HAS_ENAWAKEUP | 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 uart_class = {
> --	.name = "uart",
> --	.sysc = &uart_sysc,
> --};
> --
> - /* UART1 */
> -
> - static struct omap_hwmod_ocp_if *omap2420_uart1_slaves[] = {
> -@@ -848,7 +791,7 @@ static struct omap_hwmod omap2420_uart1_hwmod
> = {
> - 	},
> - 	.slaves		= omap2420_uart1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_uart1_slaves),
> --	.class		= &uart_class,
> -+	.class		= &omap2_uart_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
> - };
> -
> -@@ -874,7 +817,7 @@ static struct omap_hwmod omap2420_uart2_hwmod
> = {
> - 	},
> - 	.slaves		= omap2420_uart2_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_uart2_slaves),
> --	.class		= &uart_class,
> -+	.class		= &omap2_uart_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
> - };
> -
> -@@ -900,28 +843,10 @@ static struct omap_hwmod
> omap2420_uart3_hwmod = {
> - 	},
> - 	.slaves		= omap2420_uart3_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_uart3_slaves),
> --	.class		= &uart_class,
> -+	.class		= &omap2_uart_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
> - };
> -
> --/*
> -- * 'dss' class
> -- * display sub-system
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap2420_dss_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
> --	.sysc_fields	= &omap_hwmod_sysc_type1,
> --};
> --
> --static struct omap_hwmod_class omap2420_dss_hwmod_class = {
> --	.name = "dss",
> --	.sysc = &omap2420_dss_sysc,
> --};
> --
> - /* dss */
> - /* dss master ports */
> - static struct omap_hwmod_ocp_if *omap2420_dss_masters[] = {
> -@@ -955,7 +880,7 @@ static struct omap_hwmod_opt_clk dss_opt_clks[] = {
> -
> - static struct omap_hwmod omap2420_dss_core_hwmod = {
> - 	.name		= "dss_core",
> --	.class		= &omap2420_dss_hwmod_class,
> -+	.class		= &omap2_dss_hwmod_class,
> - 	.main_clk	= "dss1_fck", /* instead of dss_fck */
> - 	.sdma_reqs	= omap2xxx_dss_sdma_chs,
> - 	.prcm		= {
> -@@ -977,27 +902,6 @@ static struct omap_hwmod
> omap2420_dss_core_hwmod = {
> - 	.flags		= HWMOD_NO_IDLEST,
> - };
> -
> --/*
> -- * 'dispc' class
> -- * display controller
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap2420_dispc_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE |
> --			   SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
> --	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> --			   MSTANDBY_FORCE | MSTANDBY_NO |
> MSTANDBY_SMART),
> --	.sysc_fields	= &omap_hwmod_sysc_type1,
> --};
> --
> --static struct omap_hwmod_class omap2420_dispc_hwmod_class = {
> --	.name = "dispc",
> --	.sysc = &omap2420_dispc_sysc,
> --};
> --
> - /* l4_core -> dss_dispc */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__dss_dispc = {
> - 	.master		= &omap2420_l4_core_hwmod,
> -@@ -1020,7 +924,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_dss_dispc_slaves[] = {
> -
> - static struct omap_hwmod omap2420_dss_dispc_hwmod = {
> - 	.name		= "dss_dispc",
> --	.class		= &omap2420_dispc_hwmod_class,
> -+	.class		= &omap2_dispc_hwmod_class,
> - 	.mpu_irqs	= omap2_dispc_irqs,
> - 	.main_clk	= "dss1_fck",
> - 	.prcm		= {
> -@@ -1038,26 +942,6 @@ static struct omap_hwmod
> omap2420_dss_dispc_hwmod = {
> - 	.flags		= HWMOD_NO_IDLEST,
> - };
> -
> --/*
> -- * 'rfbi' class
> -- * remote frame buffer interface
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap2420_rfbi_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (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 omap2420_rfbi_hwmod_class = {
> --	.name = "rfbi",
> --	.sysc = &omap2420_rfbi_sysc,
> --};
> --
> - /* l4_core -> dss_rfbi */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__dss_rfbi = {
> - 	.master		= &omap2420_l4_core_hwmod,
> -@@ -1080,7 +964,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_dss_rfbi_slaves[] = {
> -
> - static struct omap_hwmod omap2420_dss_rfbi_hwmod = {
> - 	.name		= "dss_rfbi",
> --	.class		= &omap2420_rfbi_hwmod_class,
> -+	.class		= &omap2_rfbi_hwmod_class,
> - 	.main_clk	= "dss1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1095,15 +979,6 @@ static struct omap_hwmod
> omap2420_dss_rfbi_hwmod = {
> - 	.flags		= HWMOD_NO_IDLEST,
> - };
> -
> --/*
> -- * 'venc' class
> -- * video encoder
> -- */
> --
> --static struct omap_hwmod_class omap2420_venc_hwmod_class = {
> --	.name = "venc",
> --};
> --
> - /* l4_core -> dss_venc */
> - static struct omap_hwmod_ocp_if omap2420_l4_core__dss_venc = {
> - 	.master		= &omap2420_l4_core_hwmod,
> -@@ -1127,7 +1002,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_dss_venc_slaves[] = {
> -
> - static struct omap_hwmod omap2420_dss_venc_hwmod = {
> - 	.name		= "dss_venc",
> --	.class		= &omap2420_venc_hwmod_class,
> -+	.class		= &omap2_venc_hwmod_class,
> - 	.main_clk	= "dss1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1292,27 +1167,6 @@ static struct omap_gpio_dev_attr gpio_dev_attr =
> {
> - 	.dbck_flag = false,
> - };
> -
> --static struct omap_hwmod_class_sysconfig omap242x_gpio_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_ENAWAKEUP | 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,
> --};
> --
> --/*
> -- * 'gpio' class
> -- * general purpose io module
> -- */
> --static struct omap_hwmod_class omap242x_gpio_hwmod_class = {
> --	.name = "gpio",
> --	.sysc = &omap242x_gpio_sysc,
> --	.rev = 0,
> --};
> --
> - /* gpio1 */
> - static struct omap_hwmod_ocp_if *omap2420_gpio1_slaves[] = {
> - 	&omap2420_l4_wkup__gpio1,
> -@@ -1334,7 +1188,7 @@ static struct omap_hwmod
> omap2420_gpio1_hwmod = {
> - 	},
> - 	.slaves		= omap2420_gpio1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_gpio1_slaves),
> --	.class		= &omap242x_gpio_hwmod_class,
> -+	.class		= &omap2xxx_gpio_hwmod_class,
> - 	.dev_attr	= &gpio_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
> - };
> -@@ -1360,7 +1214,7 @@ static struct omap_hwmod
> omap2420_gpio2_hwmod = {
> - 	},
> - 	.slaves		= omap2420_gpio2_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_gpio2_slaves),
> --	.class		= &omap242x_gpio_hwmod_class,
> -+	.class		= &omap2xxx_gpio_hwmod_class,
> - 	.dev_attr	= &gpio_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
> - };
> -@@ -1386,7 +1240,7 @@ static struct omap_hwmod
> omap2420_gpio3_hwmod = {
> - 	},
> - 	.slaves		= omap2420_gpio3_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_gpio3_slaves),
> --	.class		= &omap242x_gpio_hwmod_class,
> -+	.class		= &omap2xxx_gpio_hwmod_class,
> - 	.dev_attr	= &gpio_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
> - };
> -@@ -1412,28 +1266,11 @@ static struct omap_hwmod
> omap2420_gpio4_hwmod = {
> - 	},
> - 	.slaves		= omap2420_gpio4_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_gpio4_slaves),
> --	.class		= &omap242x_gpio_hwmod_class,
> -+	.class		= &omap2xxx_gpio_hwmod_class,
> - 	.dev_attr	= &gpio_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
> - };
> -
> --/* system dma */
> --static struct omap_hwmod_class_sysconfig omap2420_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,
> --};
> --
> --static struct omap_hwmod_class omap2420_dma_hwmod_class = {
> --	.name = "dma",
> --	.sysc = &omap2420_dma_sysc,
> --};
> --
> - /* dma attributes */
> - static struct omap_dma_dev_attr dma_dev_attr = {
> - 	.dev_caps  = RESERVE_CHANNEL | DMA_LINKED_LCH |
> GLOBAL_PRIORITY |
> -@@ -1470,7 +1307,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_dma_system_slaves[] = {
> -
> - static struct omap_hwmod omap2420_dma_system_hwmod = {
> - 	.name		= "dma",
> --	.class		= &omap2420_dma_hwmod_class,
> -+	.class		= &omap2xxx_dma_hwmod_class,
> - 	.mpu_irqs	= omap2_dma_system_irqs,
> - 	.main_clk	= "core_l3_ck",
> - 	.slaves		= omap2420_dma_system_slaves,
> -@@ -1482,27 +1319,6 @@ static struct omap_hwmod
> omap2420_dma_system_hwmod = {
> - 	.flags		= HWMOD_NO_IDLEST,
> - };
> -
> --/*
> -- * 'mailbox' class
> -- * mailbox module allowing communication between the on-chip processors
> -- * using a queued mailbox-interrupt mechanism.
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap2420_mailbox_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 omap2420_mailbox_hwmod_class = {
> --	.name = "mailbox",
> --	.sysc = &omap2420_mailbox_sysc,
> --};
> --
> - /* mailbox */
> - static struct omap_hwmod omap2420_mailbox_hwmod;
> - static struct omap_hwmod_irq_info omap2420_mailbox_irqs[] = {
> -@@ -1526,7 +1342,7 @@ static struct omap_hwmod_ocp_if
> *omap2420_mailbox_slaves[] = {
> -
> - static struct omap_hwmod omap2420_mailbox_hwmod = {
> - 	.name		= "mailbox",
> --	.class		= &omap2420_mailbox_hwmod_class,
> -+	.class		= &omap2xxx_mailbox_hwmod_class,
> - 	.mpu_irqs	= omap2420_mailbox_irqs,
> - 	.main_clk	= "mailboxes_ick",
> - 	.prcm		= {
> -@@ -1543,29 +1359,6 @@ static struct omap_hwmod
> omap2420_mailbox_hwmod = {
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
> - };
> -
> --/*
> -- * 'mcspi' class
> -- * multichannel serial port interface (mcspi) / master/slave synchronous serial
> -- * bus
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap2420_mcspi_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_CLOCKACTIVITY |
> SYSC_HAS_SIDLEMODE |
> --				SYSC_HAS_ENAWAKEUP |
> 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 omap2420_mcspi_class = {
> --	.name = "mcspi",
> --	.sysc = &omap2420_mcspi_sysc,
> --	.rev = OMAP2_MCSPI_REV,
> --};
> --
> - /* mcspi1 */
> - static struct omap_hwmod_ocp_if *omap2420_mcspi1_slaves[] = {
> - 	&omap2420_l4_core__mcspi1,
> -@@ -1591,8 +1384,8 @@ static struct omap_hwmod
> omap2420_mcspi1_hwmod = {
> - 	},
> - 	.slaves		= omap2420_mcspi1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_mcspi1_slaves),
> --	.class		= &omap2420_mcspi_class,
> --	.dev_attr       = &omap_mcspi1_dev_attr,
> -+	.class		= &omap2xxx_mcspi_class,
> -+	.dev_attr	= &omap_mcspi1_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
> - };
> -
> -@@ -1621,8 +1414,8 @@ static struct omap_hwmod
> omap2420_mcspi2_hwmod = {
> - 	},
> - 	.slaves		= omap2420_mcspi2_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2420_mcspi2_slaves),
> --	.class		= &omap2420_mcspi_class,
> --	.dev_attr       = &omap_mcspi2_dev_attr,
> -+	.class		= &omap2xxx_mcspi_class,
> -+	.dev_attr	= &omap_mcspi2_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
> - };
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -index 639acd5..2a52f02 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -@@ -347,24 +347,6 @@ static struct omap_hwmod omap2430_iva_hwmod
> = {
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430)
> - };
> -
> --/* Timer Common */
> --static struct omap_hwmod_class_sysconfig omap2430_timer_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_SIDLEMODE |
> SYSC_HAS_CLOCKACTIVITY |
> --			   SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET |
> --			   SYSC_HAS_AUTOIDLE),
> --	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
> --	.sysc_fields    = &omap_hwmod_sysc_type1,
> --};
> --
> --static struct omap_hwmod_class omap2430_timer_hwmod_class = {
> --	.name = "timer",
> --	.sysc = &omap2430_timer_sysc,
> --	.rev = OMAP_TIMER_IP_VERSION_1,
> --};
> --
> - /* timer1 */
> - static struct omap_hwmod omap2430_timer1_hwmod;
> -
> -@@ -407,7 +389,7 @@ static struct omap_hwmod
> omap2430_timer1_hwmod = {
> - 	},
> - 	.slaves		= omap2430_timer1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_timer1_slaves),
> --	.class		= &omap2430_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430)
> - };
> -
> -@@ -444,7 +426,7 @@ static struct omap_hwmod
> omap2430_timer2_hwmod = {
> - 	},
> - 	.slaves		= omap2430_timer2_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_timer2_slaves),
> --	.class		= &omap2430_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430)
> - };
> -
> -@@ -481,7 +463,7 @@ static struct omap_hwmod
> omap2430_timer3_hwmod = {
> - 	},
> - 	.slaves		= omap2430_timer3_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_timer3_slaves),
> --	.class		= &omap2430_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430)
> - };
> -
> -@@ -518,7 +500,7 @@ static struct omap_hwmod
> omap2430_timer4_hwmod = {
> - 	},
> - 	.slaves		= omap2430_timer4_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_timer4_slaves),
> --	.class		= &omap2430_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430)
> - };
> -
> -@@ -555,7 +537,7 @@ static struct omap_hwmod
> omap2430_timer5_hwmod = {
> - 	},
> - 	.slaves		= omap2430_timer5_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_timer5_slaves),
> --	.class		= &omap2430_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430)
> - };
> -
> -@@ -592,7 +574,7 @@ static struct omap_hwmod
> omap2430_timer6_hwmod = {
> - 	},
> - 	.slaves		= omap2430_timer6_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_timer6_slaves),
> --	.class		= &omap2430_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430)
> - };
> -
> -@@ -629,7 +611,7 @@ static struct omap_hwmod
> omap2430_timer7_hwmod = {
> - 	},
> - 	.slaves		= omap2430_timer7_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_timer7_slaves),
> --	.class		= &omap2430_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430)
> - };
> -
> -@@ -666,7 +648,7 @@ static struct omap_hwmod
> omap2430_timer8_hwmod = {
> - 	},
> - 	.slaves		= omap2430_timer8_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_timer8_slaves),
> --	.class		= &omap2430_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430)
> - };
> -
> -@@ -703,7 +685,7 @@ static struct omap_hwmod
> omap2430_timer9_hwmod = {
> - 	},
> - 	.slaves		= omap2430_timer9_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_timer9_slaves),
> --	.class		= &omap2430_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430)
> - };
> -
> -@@ -740,7 +722,7 @@ static struct omap_hwmod
> omap2430_timer10_hwmod = {
> - 	},
> - 	.slaves		= omap2430_timer10_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_timer10_slaves),
> --	.class		= &omap2430_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430)
> - };
> -
> -@@ -777,7 +759,7 @@ static struct omap_hwmod
> omap2430_timer11_hwmod = {
> - 	},
> - 	.slaves		= omap2430_timer11_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_timer11_slaves),
> --	.class		= &omap2430_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430)
> - };
> -
> -@@ -814,7 +796,7 @@ static struct omap_hwmod
> omap2430_timer12_hwmod = {
> - 	},
> - 	.slaves		= omap2430_timer12_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_timer12_slaves),
> --	.class		= &omap2430_timer_hwmod_class,
> -+	.class		= &omap2xxx_timer_hwmod_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430)
> - };
> -
> -@@ -836,27 +818,6 @@ static struct omap_hwmod_ocp_if
> omap2430_l4_wkup__wd_timer2 = {
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> --/*
> -- * 'wd_timer' class
> -- * 32-bit watchdog upward counter that generates a pulse on the reset pin on
> -- * overflow condition
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap2430_wd_timer_sysc = {
> --	.rev_offs	= 0x0,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_EMUFREE | SYSC_HAS_SOFTRESET |
> --			   SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS),
> --	.sysc_fields    = &omap_hwmod_sysc_type1,
> --};
> --
> --static struct omap_hwmod_class omap2430_wd_timer_hwmod_class = {
> --	.name		= "wd_timer",
> --	.sysc		= &omap2430_wd_timer_sysc,
> --	.pre_shutdown	= &omap2_wd_timer_disable
> --};
> --
> - /* wd_timer2 */
> - static struct omap_hwmod_ocp_if *omap2430_wd_timer2_slaves[] = {
> - 	&omap2430_l4_wkup__wd_timer2,
> -@@ -864,7 +825,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_wd_timer2_slaves[] = {
> -
> - static struct omap_hwmod omap2430_wd_timer2_hwmod = {
> - 	.name		= "wd_timer2",
> --	.class		= &omap2430_wd_timer_hwmod_class,
> -+	.class		= &omap2xxx_wd_timer_hwmod_class,
> - 	.main_clk	= "mpu_wdt_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -880,24 +841,6 @@ static struct omap_hwmod
> omap2430_wd_timer2_hwmod = {
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
> - };
> -
> --/* UART */
> --
> --static struct omap_hwmod_class_sysconfig uart_sysc = {
> --	.rev_offs	= 0x50,
> --	.sysc_offs	= 0x54,
> --	.syss_offs	= 0x58,
> --	.sysc_flags	= (SYSC_HAS_SIDLEMODE |
> --			   SYSC_HAS_ENAWAKEUP | 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 uart_class = {
> --	.name = "uart",
> --	.sysc = &uart_sysc,
> --};
> --
> - /* UART1 */
> -
> - static struct omap_hwmod_ocp_if *omap2430_uart1_slaves[] = {
> -@@ -920,7 +863,7 @@ static struct omap_hwmod omap2430_uart1_hwmod
> = {
> - 	},
> - 	.slaves		= omap2430_uart1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_uart1_slaves),
> --	.class		= &uart_class,
> -+	.class		= &omap2_uart_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
> - };
> -
> -@@ -946,7 +889,7 @@ static struct omap_hwmod omap2430_uart2_hwmod
> = {
> - 	},
> - 	.slaves		= omap2430_uart2_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_uart2_slaves),
> --	.class		= &uart_class,
> -+	.class		= &omap2_uart_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
> - };
> -
> -@@ -972,28 +915,10 @@ static struct omap_hwmod
> omap2430_uart3_hwmod = {
> - 	},
> - 	.slaves		= omap2430_uart3_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_uart3_slaves),
> --	.class		= &uart_class,
> -+	.class		= &omap2_uart_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
> - };
> -
> --/*
> -- * 'dss' class
> -- * display sub-system
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap2430_dss_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
> --	.sysc_fields	= &omap_hwmod_sysc_type1,
> --};
> --
> --static struct omap_hwmod_class omap2430_dss_hwmod_class = {
> --	.name = "dss",
> --	.sysc = &omap2430_dss_sysc,
> --};
> --
> - /* dss */
> - /* dss master ports */
> - static struct omap_hwmod_ocp_if *omap2430_dss_masters[] = {
> -@@ -1021,7 +946,7 @@ static struct omap_hwmod_opt_clk dss_opt_clks[] =
> {
> -
> - static struct omap_hwmod omap2430_dss_core_hwmod = {
> - 	.name		= "dss_core",
> --	.class		= &omap2430_dss_hwmod_class,
> -+	.class		= &omap2_dss_hwmod_class,
> - 	.main_clk	= "dss1_fck", /* instead of dss_fck */
> - 	.sdma_reqs	= omap2xxx_dss_sdma_chs,
> - 	.prcm		= {
> -@@ -1043,27 +968,6 @@ static struct omap_hwmod
> omap2430_dss_core_hwmod = {
> - 	.flags		= HWMOD_NO_IDLEST,
> - };
> -
> --/*
> -- * 'dispc' class
> -- * display controller
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap2430_dispc_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE |
> --			   SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
> --	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> --			   MSTANDBY_FORCE | MSTANDBY_NO |
> MSTANDBY_SMART),
> --	.sysc_fields	= &omap_hwmod_sysc_type1,
> --};
> --
> --static struct omap_hwmod_class omap2430_dispc_hwmod_class = {
> --	.name = "dispc",
> --	.sysc = &omap2430_dispc_sysc,
> --};
> --
> - /* l4_core -> dss_dispc */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__dss_dispc = {
> - 	.master		= &omap2430_l4_core_hwmod,
> -@@ -1080,7 +984,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_dss_dispc_slaves[] = {
> -
> - static struct omap_hwmod omap2430_dss_dispc_hwmod = {
> - 	.name		= "dss_dispc",
> --	.class		= &omap2430_dispc_hwmod_class,
> -+	.class		= &omap2_dispc_hwmod_class,
> - 	.mpu_irqs	= omap2_dispc_irqs,
> - 	.main_clk	= "dss1_fck",
> - 	.prcm		= {
> -@@ -1098,26 +1002,6 @@ static struct omap_hwmod
> omap2430_dss_dispc_hwmod = {
> - 	.flags		= HWMOD_NO_IDLEST,
> - };
> -
> --/*
> -- * 'rfbi' class
> -- * remote frame buffer interface
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap2430_rfbi_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (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 omap2430_rfbi_hwmod_class = {
> --	.name = "rfbi",
> --	.sysc = &omap2430_rfbi_sysc,
> --};
> --
> - /* l4_core -> dss_rfbi */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__dss_rfbi = {
> - 	.master		= &omap2430_l4_core_hwmod,
> -@@ -1134,7 +1018,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_dss_rfbi_slaves[] = {
> -
> - static struct omap_hwmod omap2430_dss_rfbi_hwmod = {
> - 	.name		= "dss_rfbi",
> --	.class		= &omap2430_rfbi_hwmod_class,
> -+	.class		= &omap2_rfbi_hwmod_class,
> - 	.main_clk	= "dss1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1149,15 +1033,6 @@ static struct omap_hwmod
> omap2430_dss_rfbi_hwmod = {
> - 	.flags		= HWMOD_NO_IDLEST,
> - };
> -
> --/*
> -- * 'venc' class
> -- * video encoder
> -- */
> --
> --static struct omap_hwmod_class omap2430_venc_hwmod_class = {
> --	.name = "venc",
> --};
> --
> - /* l4_core -> dss_venc */
> - static struct omap_hwmod_ocp_if omap2430_l4_core__dss_venc = {
> - 	.master		= &omap2430_l4_core_hwmod,
> -@@ -1175,7 +1050,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_dss_venc_slaves[] = {
> -
> - static struct omap_hwmod omap2430_dss_venc_hwmod = {
> - 	.name		= "dss_venc",
> --	.class		= &omap2430_venc_hwmod_class,
> -+	.class		= &omap2_venc_hwmod_class,
> - 	.main_clk	= "dss1_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1367,27 +1242,6 @@ static struct omap_gpio_dev_attr gpio_dev_attr =
> {
> - 	.dbck_flag = false,
> - };
> -
> --static struct omap_hwmod_class_sysconfig omap243x_gpio_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_ENAWAKEUP | 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,
> --};
> --
> --/*
> -- * 'gpio' class
> -- * general purpose io module
> -- */
> --static struct omap_hwmod_class omap243x_gpio_hwmod_class = {
> --	.name = "gpio",
> --	.sysc = &omap243x_gpio_sysc,
> --	.rev = 0,
> --};
> --
> - /* gpio1 */
> - static struct omap_hwmod_ocp_if *omap2430_gpio1_slaves[] = {
> - 	&omap2430_l4_wkup__gpio1,
> -@@ -1409,7 +1263,7 @@ static struct omap_hwmod
> omap2430_gpio1_hwmod = {
> - 	},
> - 	.slaves		= omap2430_gpio1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_gpio1_slaves),
> --	.class		= &omap243x_gpio_hwmod_class,
> -+	.class		= &omap2xxx_gpio_hwmod_class,
> - 	.dev_attr	= &gpio_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
> - };
> -@@ -1435,7 +1289,7 @@ static struct omap_hwmod
> omap2430_gpio2_hwmod = {
> - 	},
> - 	.slaves		= omap2430_gpio2_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_gpio2_slaves),
> --	.class		= &omap243x_gpio_hwmod_class,
> -+	.class		= &omap2xxx_gpio_hwmod_class,
> - 	.dev_attr	= &gpio_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
> - };
> -@@ -1461,7 +1315,7 @@ static struct omap_hwmod
> omap2430_gpio3_hwmod = {
> - 	},
> - 	.slaves		= omap2430_gpio3_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_gpio3_slaves),
> --	.class		= &omap243x_gpio_hwmod_class,
> -+	.class		= &omap2xxx_gpio_hwmod_class,
> - 	.dev_attr	= &gpio_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
> - };
> -@@ -1487,7 +1341,7 @@ static struct omap_hwmod
> omap2430_gpio4_hwmod = {
> - 	},
> - 	.slaves		= omap2430_gpio4_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_gpio4_slaves),
> --	.class		= &omap243x_gpio_hwmod_class,
> -+	.class		= &omap2xxx_gpio_hwmod_class,
> - 	.dev_attr	= &gpio_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
> - };
> -@@ -1518,28 +1372,11 @@ static struct omap_hwmod
> omap2430_gpio5_hwmod = {
> - 	},
> - 	.slaves		= omap2430_gpio5_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_gpio5_slaves),
> --	.class		= &omap243x_gpio_hwmod_class,
> -+	.class		= &omap2xxx_gpio_hwmod_class,
> - 	.dev_attr	= &gpio_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
> - };
> -
> --/* dma_system */
> --static struct omap_hwmod_class_sysconfig omap2430_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,
> --};
> --
> --static struct omap_hwmod_class omap2430_dma_hwmod_class = {
> --	.name = "dma",
> --	.sysc = &omap2430_dma_sysc,
> --};
> --
> - /* dma attributes */
> - static struct omap_dma_dev_attr dma_dev_attr = {
> - 	.dev_caps  = RESERVE_CHANNEL | DMA_LINKED_LCH |
> GLOBAL_PRIORITY |
> -@@ -1576,7 +1413,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_dma_system_slaves[] = {
> -
> - static struct omap_hwmod omap2430_dma_system_hwmod = {
> - 	.name		= "dma",
> --	.class		= &omap2430_dma_hwmod_class,
> -+	.class		= &omap2xxx_dma_hwmod_class,
> - 	.mpu_irqs	= omap2_dma_system_irqs,
> - 	.main_clk	= "core_l3_ck",
> - 	.slaves		= omap2430_dma_system_slaves,
> -@@ -1588,27 +1425,6 @@ static struct omap_hwmod
> omap2430_dma_system_hwmod = {
> - 	.flags		= HWMOD_NO_IDLEST,
> - };
> -
> --/*
> -- * 'mailbox' class
> -- * mailbox module allowing communication between the on-chip processors
> -- * using a queued mailbox-interrupt mechanism.
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap2430_mailbox_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 omap2430_mailbox_hwmod_class = {
> --	.name = "mailbox",
> --	.sysc = &omap2430_mailbox_sysc,
> --};
> --
> - /* mailbox */
> - static struct omap_hwmod omap2430_mailbox_hwmod;
> - static struct omap_hwmod_irq_info omap2430_mailbox_irqs[] = {
> -@@ -1631,7 +1447,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_mailbox_slaves[] = {
> -
> - static struct omap_hwmod omap2430_mailbox_hwmod = {
> - 	.name		= "mailbox",
> --	.class		= &omap2430_mailbox_hwmod_class,
> -+	.class		= &omap2xxx_mailbox_hwmod_class,
> - 	.mpu_irqs	= omap2430_mailbox_irqs,
> - 	.main_clk	= "mailboxes_ick",
> - 	.prcm		= {
> -@@ -1648,29 +1464,6 @@ static struct omap_hwmod
> omap2430_mailbox_hwmod = {
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
> - };
> -
> --/*
> -- * 'mcspi' class
> -- * multichannel serial port interface (mcspi) / master/slave synchronous serial
> -- * bus
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap2430_mcspi_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_CLOCKACTIVITY |
> SYSC_HAS_SIDLEMODE |
> --				SYSC_HAS_ENAWAKEUP |
> 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 omap2430_mcspi_class = {
> --	.name = "mcspi",
> --	.sysc = &omap2430_mcspi_sysc,
> --	.rev = OMAP2_MCSPI_REV,
> --};
> --
> - /* mcspi1 */
> - static struct omap_hwmod_ocp_if *omap2430_mcspi1_slaves[] = {
> - 	&omap2430_l4_core__mcspi1,
> -@@ -1696,8 +1489,8 @@ static struct omap_hwmod
> omap2430_mcspi1_hwmod = {
> - 	},
> - 	.slaves		= omap2430_mcspi1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_mcspi1_slaves),
> --	.class		= &omap2430_mcspi_class,
> --	.dev_attr       = &omap_mcspi1_dev_attr,
> -+	.class		= &omap2xxx_mcspi_class,
> -+	.dev_attr	= &omap_mcspi1_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
> - };
> -
> -@@ -1726,8 +1519,8 @@ static struct omap_hwmod
> omap2430_mcspi2_hwmod = {
> - 	},
> - 	.slaves		= omap2430_mcspi2_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_mcspi2_slaves),
> --	.class		= &omap2430_mcspi_class,
> --	.dev_attr       = &omap_mcspi2_dev_attr,
> -+	.class		= &omap2xxx_mcspi_class,
> -+	.dev_attr	= &omap_mcspi2_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
> - };
> -
> -@@ -1769,8 +1562,8 @@ static struct omap_hwmod
> omap2430_mcspi3_hwmod = {
> - 	},
> - 	.slaves		= omap2430_mcspi3_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap2430_mcspi3_slaves),
> --	.class		= &omap2430_mcspi_class,
> --	.dev_attr       = &omap_mcspi3_dev_attr,
> -+	.class		= &omap2xxx_mcspi_class,
> -+	.dev_attr	= &omap_mcspi3_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
> - };
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
> -index 7c4f5ab..c451729 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
> -@@ -16,6 +16,164 @@
> -
> - #include "omap_hwmod_common_data.h"
> -
> -+/* UART */
> -+
> -+static struct omap_hwmod_class_sysconfig omap2_uart_sysc = {
> -+	.rev_offs	= 0x50,
> -+	.sysc_offs	= 0x54,
> -+	.syss_offs	= 0x58,
> -+	.sysc_flags	= (SYSC_HAS_SIDLEMODE |
> -+			   SYSC_HAS_ENAWAKEUP | 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 omap2_uart_class = {
> -+	.name	= "uart",
> -+	.sysc	= &omap2_uart_sysc,
> -+};
> -+
> -+/*
> -+ * 'dss' class
> -+ * display sub-system
> -+ */
> -+
> -+static struct omap_hwmod_class_sysconfig omap2_dss_sysc = {
> -+	.rev_offs	= 0x0000,
> -+	.sysc_offs	= 0x0010,
> -+	.syss_offs	= 0x0014,
> -+	.sysc_flags	= (SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
> -+	.sysc_fields	= &omap_hwmod_sysc_type1,
> -+};
> -+
> -+struct omap_hwmod_class omap2_dss_hwmod_class = {
> -+	.name	= "dss",
> -+	.sysc	= &omap2_dss_sysc,
> -+};
> -+
> -+/*
> -+ * 'dispc' class
> -+ * display controller
> -+ */
> -+
> -+static struct omap_hwmod_class_sysconfig omap2_dispc_sysc = {
> -+	.rev_offs	= 0x0000,
> -+	.sysc_offs	= 0x0010,
> -+	.syss_offs	= 0x0014,
> -+	.sysc_flags	= (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE |
> -+			   SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
> -+	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> -+			   MSTANDBY_FORCE | MSTANDBY_NO |
> MSTANDBY_SMART),
> -+	.sysc_fields	= &omap_hwmod_sysc_type1,
> -+};
> -+
> -+struct omap_hwmod_class omap2_dispc_hwmod_class = {
> -+	.name	= "dispc",
> -+	.sysc	= &omap2_dispc_sysc,
> -+};
> -+
> -+/*
> -+ * 'rfbi' class
> -+ * remote frame buffer interface
> -+ */
> -+
> -+static struct omap_hwmod_class_sysconfig omap2_rfbi_sysc = {
> -+	.rev_offs	= 0x0000,
> -+	.sysc_offs	= 0x0010,
> -+	.syss_offs	= 0x0014,
> -+	.sysc_flags	= (SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
> -+			   SYSC_HAS_AUTOIDLE),
> -+	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
> -+	.sysc_fields	= &omap_hwmod_sysc_type1,
> -+};
> -+
> -+struct omap_hwmod_class omap2_rfbi_hwmod_class = {
> -+	.name	= "rfbi",
> -+	.sysc	= &omap2_rfbi_sysc,
> -+};
> -+
> -+/*
> -+ * 'venc' class
> -+ * video encoder
> -+ */
> -+
> -+struct omap_hwmod_class omap2_venc_hwmod_class = {
> -+	.name = "venc",
> -+};
> -+
> -+
> -+/* Common DMA request line data */
> -+struct omap_hwmod_dma_info omap2_uart1_sdma_reqs[] = {
> -+	{ .name = "rx", .dma_req = OMAP24XX_DMA_UART1_RX, },
> -+	{ .name = "tx", .dma_req = OMAP24XX_DMA_UART1_TX, },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_uart2_sdma_reqs[] = {
> -+	{ .name = "rx", .dma_req = OMAP24XX_DMA_UART2_RX, },
> -+	{ .name = "tx", .dma_req = OMAP24XX_DMA_UART2_TX, },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_uart3_sdma_reqs[] = {
> -+	{ .name = "rx", .dma_req = OMAP24XX_DMA_UART3_RX, },
> -+	{ .name = "tx", .dma_req = OMAP24XX_DMA_UART3_TX, },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_i2c1_sdma_reqs[] = {
> -+	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C1_TX },
> -+	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C1_RX },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_i2c2_sdma_reqs[] = {
> -+	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C2_TX },
> -+	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C2_RX },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_mcspi1_sdma_reqs[] = {
> -+	{ .name = "tx0", .dma_req = 35 }, /* DMA_SPI1_TX0 */
> -+	{ .name = "rx0", .dma_req = 36 }, /* DMA_SPI1_RX0 */
> -+	{ .name = "tx1", .dma_req = 37 }, /* DMA_SPI1_TX1 */
> -+	{ .name = "rx1", .dma_req = 38 }, /* DMA_SPI1_RX1 */
> -+	{ .name = "tx2", .dma_req = 39 }, /* DMA_SPI1_TX2 */
> -+	{ .name = "rx2", .dma_req = 40 }, /* DMA_SPI1_RX2 */
> -+	{ .name = "tx3", .dma_req = 41 }, /* DMA_SPI1_TX3 */
> -+	{ .name = "rx3", .dma_req = 42 }, /* DMA_SPI1_RX3 */
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_mcspi2_sdma_reqs[] = {
> -+	{ .name = "tx0", .dma_req = 43 }, /* DMA_SPI2_TX0 */
> -+	{ .name = "rx0", .dma_req = 44 }, /* DMA_SPI2_RX0 */
> -+	{ .name = "tx1", .dma_req = 45 }, /* DMA_SPI2_TX1 */
> -+	{ .name = "rx1", .dma_req = 46 }, /* DMA_SPI2_RX1 */
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_mcbsp1_sdma_reqs[] = {
> -+	{ .name = "rx", .dma_req = 32 },
> -+	{ .name = "tx", .dma_req = 31 },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_mcbsp2_sdma_reqs[] = {
> -+	{ .name = "rx", .dma_req = 34 },
> -+	{ .name = "tx", .dma_req = 33 },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+struct omap_hwmod_dma_info omap2_mcbsp3_sdma_reqs[] = {
> -+	{ .name = "rx", .dma_req = 18 },
> -+	{ .name = "tx", .dma_req = 17 },
> -+	{ .dma_req = -1 }
> -+};
> -+
> -+/* Other IP block data */
> -+
> -
> - /*
> -  * omap_hwmod class data
> -@@ -162,73 +320,3 @@ struct omap_hwmod_irq_info
> omap2_mcspi2_mpu_irqs[] = {
> - 	{ .irq = -1 }
> - };
> -
> --/* Common DMA request line data */
> --struct omap_hwmod_dma_info omap2_uart1_sdma_reqs[] = {
> --	{ .name = "rx", .dma_req = OMAP24XX_DMA_UART1_RX, },
> --	{ .name = "tx", .dma_req = OMAP24XX_DMA_UART1_TX, },
> --	{ .dma_req = -1 }
> --};
> --
> --struct omap_hwmod_dma_info omap2_uart2_sdma_reqs[] = {
> --	{ .name = "rx", .dma_req = OMAP24XX_DMA_UART2_RX, },
> --	{ .name = "tx", .dma_req = OMAP24XX_DMA_UART2_TX, },
> --	{ .dma_req = -1 }
> --};
> --
> --struct omap_hwmod_dma_info omap2_uart3_sdma_reqs[] = {
> --	{ .name = "rx", .dma_req = OMAP24XX_DMA_UART3_RX, },
> --	{ .name = "tx", .dma_req = OMAP24XX_DMA_UART3_TX, },
> --	{ .dma_req = -1 }
> --};
> --
> --struct omap_hwmod_dma_info omap2_i2c1_sdma_reqs[] = {
> --	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C1_TX },
> --	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C1_RX },
> --	{ .dma_req = -1 }
> --};
> --
> --struct omap_hwmod_dma_info omap2_i2c2_sdma_reqs[] = {
> --	{ .name = "tx", .dma_req = OMAP24XX_DMA_I2C2_TX },
> --	{ .name = "rx", .dma_req = OMAP24XX_DMA_I2C2_RX },
> --	{ .dma_req = -1 }
> --};
> --
> --struct omap_hwmod_dma_info omap2_mcspi1_sdma_reqs[] = {
> --	{ .name = "tx0", .dma_req = 35 }, /* DMA_SPI1_TX0 */
> --	{ .name = "rx0", .dma_req = 36 }, /* DMA_SPI1_RX0 */
> --	{ .name = "tx1", .dma_req = 37 }, /* DMA_SPI1_TX1 */
> --	{ .name = "rx1", .dma_req = 38 }, /* DMA_SPI1_RX1 */
> --	{ .name = "tx2", .dma_req = 39 }, /* DMA_SPI1_TX2 */
> --	{ .name = "rx2", .dma_req = 40 }, /* DMA_SPI1_RX2 */
> --	{ .name = "tx3", .dma_req = 41 }, /* DMA_SPI1_TX3 */
> --	{ .name = "rx3", .dma_req = 42 }, /* DMA_SPI1_RX3 */
> --	{ .dma_req = -1 }
> --};
> --
> --struct omap_hwmod_dma_info omap2_mcspi2_sdma_reqs[] = {
> --	{ .name = "tx0", .dma_req = 43 }, /* DMA_SPI2_TX0 */
> --	{ .name = "rx0", .dma_req = 44 }, /* DMA_SPI2_RX0 */
> --	{ .name = "tx1", .dma_req = 45 }, /* DMA_SPI2_TX1 */
> --	{ .name = "rx1", .dma_req = 46 }, /* DMA_SPI2_RX1 */
> --	{ .dma_req = -1 }
> --};
> --
> --struct omap_hwmod_dma_info omap2_mcbsp1_sdma_reqs[] = {
> --	{ .name = "rx", .dma_req = 32 },
> --	{ .name = "tx", .dma_req = 31 },
> --	{ .dma_req = -1 }
> --};
> --
> --struct omap_hwmod_dma_info omap2_mcbsp2_sdma_reqs[] = {
> --	{ .name = "rx", .dma_req = 34 },
> --	{ .name = "tx", .dma_req = 33 },
> --	{ .dma_req = -1 }
> --};
> --
> --struct omap_hwmod_dma_info omap2_mcbsp3_sdma_reqs[] = {
> --	{ .name = "rx", .dma_req = 18 },
> --	{ .name = "tx", .dma_req = 17 },
> --	{ .dma_req = -1 }
> --};
> --
> --
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
> -index f5b63ef..177dee2 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
> -@@ -11,10 +11,13 @@
> - #include <plat/omap_hwmod.h>
> - #include <plat/serial.h>
> - #include <plat/dma.h>
> -+#include <plat/dmtimer.h>
> -+#include <plat/mcspi.h>
> -
> - #include <mach/irqs.h>
> -
> - #include "omap_hwmod_common_data.h"
> -+#include "wd_timer.h"
> -
> - struct omap_hwmod_irq_info omap2xxx_timer12_mpu_irqs[] = {
> - 	{ .irq = 48, },
> -@@ -25,3 +28,123 @@ struct omap_hwmod_dma_info
> omap2xxx_dss_sdma_chs[] = {
> - 	{ .name = "dispc", .dma_req = 5 },
> - 	{ .dma_req = -1 }
> - };
> -+/* OMAP2xxx Timer Common */
> -+static struct omap_hwmod_class_sysconfig omap2xxx_timer_sysc = {
> -+	.rev_offs	= 0x0000,
> -+	.sysc_offs	= 0x0010,
> -+	.syss_offs	= 0x0014,
> -+	.sysc_flags	= (SYSC_HAS_SIDLEMODE |
> SYSC_HAS_CLOCKACTIVITY |
> -+			   SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET |
> -+			   SYSC_HAS_AUTOIDLE),
> -+	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
> -+	.sysc_fields	= &omap_hwmod_sysc_type1,
> -+};
> -+
> -+struct omap_hwmod_class omap2xxx_timer_hwmod_class = {
> -+	.name	= "timer",
> -+	.sysc	= &omap2xxx_timer_sysc,
> -+	.rev	= OMAP_TIMER_IP_VERSION_1,
> -+};
> -+
> -+/*
> -+ * 'wd_timer' class
> -+ * 32-bit watchdog upward counter that generates a pulse on the reset pin on
> -+ * overflow condition
> -+ */
> -+
> -+static struct omap_hwmod_class_sysconfig omap2xxx_wd_timer_sysc = {
> -+	.rev_offs	= 0x0000,
> -+	.sysc_offs	= 0x0010,
> -+	.syss_offs	= 0x0014,
> -+	.sysc_flags	= (SYSC_HAS_EMUFREE | SYSC_HAS_SOFTRESET |
> -+			   SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS),
> -+	.sysc_fields	= &omap_hwmod_sysc_type1,
> -+};
> -+
> -+struct omap_hwmod_class omap2xxx_wd_timer_hwmod_class = {
> -+	.name		= "wd_timer",
> -+	.sysc		= &omap2xxx_wd_timer_sysc,
> -+	.pre_shutdown	= &omap2_wd_timer_disable
> -+};
> -+
> -+/*
> -+ * 'gpio' class
> -+ * general purpose io module
> -+ */
> -+static struct omap_hwmod_class_sysconfig omap2xxx_gpio_sysc = {
> -+	.rev_offs	= 0x0000,
> -+	.sysc_offs	= 0x0010,
> -+	.syss_offs	= 0x0014,
> -+	.sysc_flags	= (SYSC_HAS_ENAWAKEUP | 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 omap2xxx_gpio_hwmod_class = {
> -+	.name = "gpio",
> -+	.sysc = &omap2xxx_gpio_sysc,
> -+	.rev = 0,
> -+};
> -+
> -+/* 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 module allowing communication between the on-chip processors
> -+ * using a queued mailbox-interrupt mechanism.
> -+ */
> -+
> -+static struct omap_hwmod_class_sysconfig omap2xxx_mailbox_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,
> -+};
> -+
> -+struct omap_hwmod_class omap2xxx_mailbox_hwmod_class = {
> -+	.name	= "mailbox",
> -+	.sysc	= &omap2xxx_mailbox_sysc,
> -+};
> -+
> -+/*
> -+ * 'mcspi' class
> -+ * multichannel serial port interface (mcspi) / master/slave synchronous serial
> -+ * bus
> -+ */
> -+
> -+static struct omap_hwmod_class_sysconfig omap2xxx_mcspi_sysc = {
> -+	.rev_offs	= 0x0000,
> -+	.sysc_offs	= 0x0010,
> -+	.syss_offs	= 0x0014,
> -+	.sysc_flags	= (SYSC_HAS_CLOCKACTIVITY |
> SYSC_HAS_SIDLEMODE |
> -+				SYSC_HAS_ENAWAKEUP |
> 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 omap2xxx_mcspi_class = {
> -+	.name	= "mcspi",
> -+	.sysc	= &omap2xxx_mcspi_sysc,
> -+	.rev	= OMAP2_MCSPI_REV,
> -+};
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -index 001f67b..1a52716 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -@@ -1190,24 +1190,6 @@ static struct omap_hwmod
> omap3xxx_wd_timer2_hwmod = {
> - 	.flags		= HWMOD_SWSUP_SIDLE,
> - };
> -
> --/* UART common */
> --
> --static struct omap_hwmod_class_sysconfig uart_sysc = {
> --	.rev_offs	= 0x50,
> --	.sysc_offs	= 0x54,
> --	.syss_offs	= 0x58,
> --	.sysc_flags	= (SYSC_HAS_SIDLEMODE |
> --			   SYSC_HAS_ENAWAKEUP | 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 uart_class = {
> --	.name = "uart",
> --	.sysc = &uart_sysc,
> --};
> --
> - /* UART1 */
> -
> - static struct omap_hwmod_ocp_if *omap3xxx_uart1_slaves[] = {
> -@@ -1230,7 +1212,7 @@ static struct omap_hwmod
> omap3xxx_uart1_hwmod = {
> - 	},
> - 	.slaves		= omap3xxx_uart1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap3xxx_uart1_slaves),
> --	.class		= &uart_class,
> -+	.class		= &omap2_uart_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
> - };
> -
> -@@ -1256,7 +1238,7 @@ static struct omap_hwmod
> omap3xxx_uart2_hwmod = {
> - 	},
> - 	.slaves		= omap3xxx_uart2_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap3xxx_uart2_slaves),
> --	.class		= &uart_class,
> -+	.class		= &omap2_uart_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
> - };
> -
> -@@ -1282,7 +1264,7 @@ static struct omap_hwmod
> omap3xxx_uart3_hwmod = {
> - 	},
> - 	.slaves		= omap3xxx_uart3_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap3xxx_uart3_slaves),
> --	.class		= &uart_class,
> -+	.class		= &omap2_uart_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
> - };
> -
> -@@ -1319,7 +1301,7 @@ static struct omap_hwmod
> omap3xxx_uart4_hwmod = {
> - 	},
> - 	.slaves		= omap3xxx_uart4_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap3xxx_uart4_slaves),
> --	.class		= &uart_class,
> -+	.class		= &omap2_uart_class,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1),
> - };
> -
> -@@ -1328,24 +1310,6 @@ static struct omap_hwmod_class i2c_class = {
> - 	.sysc = &i2c_sysc,
> - };
> -
> --/*
> -- * 'dss' class
> -- * display sub-system
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap3xxx_dss_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
> --	.sysc_fields	= &omap_hwmod_sysc_type1,
> --};
> --
> --static struct omap_hwmod_class omap3xxx_dss_hwmod_class = {
> --	.name = "dss",
> --	.sysc = &omap3xxx_dss_sysc,
> --};
> --
> - static struct omap_hwmod_dma_info omap3xxx_dss_sdma_chs[] = {
> - 	{ .name = "dispc", .dma_req = 5 },
> - 	{ .name = "dsi1", .dma_req = 74 },
> -@@ -1406,7 +1370,7 @@ static struct omap_hwmod_opt_clk dss_opt_clks[]
> = {
> -
> - static struct omap_hwmod omap3430es1_dss_core_hwmod = {
> - 	.name		= "dss_core",
> --	.class		= &omap3xxx_dss_hwmod_class,
> -+	.class		= &omap2_dss_hwmod_class,
> - 	.main_clk	= "dss1_alwon_fck", /* instead of dss_fck */
> - 	.sdma_reqs	= omap3xxx_dss_sdma_chs,
> - 	.prcm		= {
> -@@ -1430,7 +1394,7 @@ static struct omap_hwmod
> omap3430es1_dss_core_hwmod = {
> -
> - static struct omap_hwmod omap3xxx_dss_core_hwmod = {
> - 	.name		= "dss_core",
> --	.class		= &omap3xxx_dss_hwmod_class,
> -+	.class		= &omap2_dss_hwmod_class,
> - 	.main_clk	= "dss1_alwon_fck", /* instead of dss_fck */
> - 	.sdma_reqs	= omap3xxx_dss_sdma_chs,
> - 	.prcm		= {
> -@@ -1453,28 +1417,6 @@ static struct omap_hwmod
> omap3xxx_dss_core_hwmod = {
> - 				CHIP_IS_OMAP3630ES1 |
> CHIP_GE_OMAP3630ES1_1),
> - };
> -
> --/*
> -- * 'dispc' class
> -- * display controller
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap3xxx_dispc_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (SYSC_HAS_SIDLEMODE |
> SYSC_HAS_CLOCKACTIVITY |
> --			   SYSC_HAS_MIDLEMODE | SYSC_HAS_ENAWAKEUP |
> --			   SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
> --	.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_dispc_hwmod_class = {
> --	.name = "dispc",
> --	.sysc = &omap3xxx_dispc_sysc,
> --};
> --
> - /* l4_core -> dss_dispc */
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__dss_dispc = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> -@@ -1498,7 +1440,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_dss_dispc_slaves[] = {
> -
> - static struct omap_hwmod omap3xxx_dss_dispc_hwmod = {
> - 	.name		= "dss_dispc",
> --	.class		= &omap3xxx_dispc_hwmod_class,
> -+	.class		= &omap2_dispc_hwmod_class,
> - 	.mpu_irqs	= omap2_dispc_irqs,
> - 	.main_clk	= "dss1_alwon_fck",
> - 	.prcm		= {
> -@@ -1580,26 +1522,6 @@ static struct omap_hwmod
> omap3xxx_dss_dsi1_hwmod = {
> - 	.flags		= HWMOD_NO_IDLEST,
> - };
> -
> --/*
> -- * 'rfbi' class
> -- * remote frame buffer interface
> -- */
> --
> --static struct omap_hwmod_class_sysconfig omap3xxx_rfbi_sysc = {
> --	.rev_offs	= 0x0000,
> --	.sysc_offs	= 0x0010,
> --	.syss_offs	= 0x0014,
> --	.sysc_flags	= (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 omap3xxx_rfbi_hwmod_class = {
> --	.name = "rfbi",
> --	.sysc = &omap3xxx_rfbi_sysc,
> --};
> --
> - /* l4_core -> dss_rfbi */
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__dss_rfbi = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> -@@ -1623,7 +1545,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_dss_rfbi_slaves[] = {
> -
> - static struct omap_hwmod omap3xxx_dss_rfbi_hwmod = {
> - 	.name		= "dss_rfbi",
> --	.class		= &omap3xxx_rfbi_hwmod_class,
> -+	.class		= &omap2_rfbi_hwmod_class,
> - 	.main_clk	= "dss1_alwon_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -@@ -1640,15 +1562,6 @@ static struct omap_hwmod
> omap3xxx_dss_rfbi_hwmod = {
> - 	.flags		= HWMOD_NO_IDLEST,
> - };
> -
> --/*
> -- * 'venc' class
> -- * video encoder
> -- */
> --
> --static struct omap_hwmod_class omap3xxx_venc_hwmod_class = {
> --	.name = "venc",
> --};
> --
> - /* l4_core -> dss_venc */
> - static struct omap_hwmod_ocp_if omap3xxx_l4_core__dss_venc = {
> - 	.master		= &omap3xxx_l4_core_hwmod,
> -@@ -1673,7 +1586,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_dss_venc_slaves[] = {
> -
> - static struct omap_hwmod omap3xxx_dss_venc_hwmod = {
> - 	.name		= "dss_venc",
> --	.class		= &omap3xxx_venc_hwmod_class,
> -+	.class		= &omap2_venc_hwmod_class,
> - 	.main_clk	= "dss1_alwon_fck",
> - 	.prcm		= {
> - 		.omap2 = {
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_common_data.h
> b/arch/arm/mach-omap2/omap_hwmod_common_data.h
> -index b636cf6..39a7c37 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_common_data.h
> -+++ b/arch/arm/mach-omap2/omap_hwmod_common_data.h
> -@@ -98,6 +98,17 @@ extern struct omap_hwmod_class l3_hwmod_class;
> - extern struct omap_hwmod_class l4_hwmod_class;
> - extern struct omap_hwmod_class mpu_hwmod_class;
> - extern struct omap_hwmod_class iva_hwmod_class;
> -+extern struct omap_hwmod_class omap2_uart_class;
> -+extern struct omap_hwmod_class omap2_dss_hwmod_class;
> -+extern struct omap_hwmod_class omap2_dispc_hwmod_class;
> -+extern struct omap_hwmod_class omap2_rfbi_hwmod_class;
> -+extern struct omap_hwmod_class omap2_venc_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_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_mcspi_class;
> -
> - #endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0044-OMAP4-
> hwmod-data-Fix-L3-interconnect-data-order-and-.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0044-OMAP4-hwmod-data-Fix-L3-
> interconnect-data-order-and-.patch
> deleted file mode 100644
> index 0609f08..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0044-OMAP4-hwmod-
> data-Fix-L3-interconnect-data-order-and-.patch
> +++ /dev/null
> @@ -1,116 +0,0 @@
> -From 9723d81494f83fd1f9beb8af0f440b0ed30435fb Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:14:27 -0600
> -Subject: [PATCH 044/149] OMAP4: hwmod data: Fix L3 interconnect data
> order and alignement
> -
> -Change the position of the ocp_if structure to match the template.
> -
> -Remove unneeded comma at the end of address space flag field.
> -
> -Remove USER_SDMA since this ocp link is only from the l3_main_1
> -path that is accessible only from the MPU in that case and not
> -the SDMA.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c |   27 +++++++++++++---
> -----------
> - 1 files changed, 13 insertions(+), 14 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index 316e922..94c0b60 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -216,6 +216,12 @@ static struct omap_hwmod
> omap44xx_l3_instr_hwmod = {
> - };
> -
> - /* l3_main_1 interface data */
> -+static struct omap_hwmod_irq_info omap44xx_l3_main_1_irqs[] = {
> -+	{ .name = "dbg_err", .irq = 9 + OMAP44XX_IRQ_GIC_START },
> -+	{ .name = "app_err", .irq = 10 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> -+};
> -+
> - /* dsp -> l3_main_1 */
> - static struct omap_hwmod_ocp_if omap44xx_dsp__l3_main_1 = {
> - 	.master		= &omap44xx_dsp_hwmod,
> -@@ -264,18 +270,11 @@ static struct omap_hwmod_ocp_if
> omap44xx_mmc2__l3_main_1 = {
> - 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> - };
> -
> --/* L3 target configuration and error log registers */
> --static struct omap_hwmod_irq_info omap44xx_l3_targ_irqs[] = {
> --	{ .irq = 9  + OMAP44XX_IRQ_GIC_START },
> --	{ .irq = 10 + OMAP44XX_IRQ_GIC_START },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod_addr_space omap44xx_l3_main_1_addrs[] = {
> - 	{
> - 		.pa_start	= 0x44000000,
> - 		.pa_end		= 0x44000fff,
> --		.flags		= ADDR_TYPE_RT,
> -+		.flags		= ADDR_TYPE_RT
> - 	},
> - 	{ }
> - };
> -@@ -286,7 +285,7 @@ static struct omap_hwmod_ocp_if
> omap44xx_mpu__l3_main_1 = {
> - 	.slave		= &omap44xx_l3_main_1_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_l3_main_1_addrs,
> --	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> -+	.user		= OCP_USER_MPU,
> - };
> -
> - /* l3_main_1 slave ports */
> -@@ -303,9 +302,9 @@ static struct omap_hwmod_ocp_if
> *omap44xx_l3_main_1_slaves[] = {
> - static struct omap_hwmod omap44xx_l3_main_1_hwmod = {
> - 	.name		= "l3_main_1",
> - 	.class		= &omap44xx_l3_hwmod_class,
> --	.mpu_irqs	= omap44xx_l3_targ_irqs,
> - 	.slaves		= omap44xx_l3_main_1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_main_1_slaves),
> -+	.mpu_irqs	= omap44xx_l3_main_1_irqs,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> -@@ -354,7 +353,7 @@ static struct omap_hwmod_addr_space
> omap44xx_l3_main_2_addrs[] = {
> - 	{
> - 		.pa_start	= 0x44800000,
> - 		.pa_end		= 0x44801fff,
> --		.flags		= ADDR_TYPE_RT,
> -+		.flags		= ADDR_TYPE_RT
> - 	},
> - 	{ }
> - };
> -@@ -365,7 +364,7 @@ static struct omap_hwmod_ocp_if
> omap44xx_l3_main_1__l3_main_2 = {
> - 	.slave		= &omap44xx_l3_main_2_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_l3_main_2_addrs,
> --	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> -+	.user		= OCP_USER_MPU,
> - };
> -
> - /* l4_cfg -> l3_main_2 */
> -@@ -409,7 +408,7 @@ static struct omap_hwmod_addr_space
> omap44xx_l3_main_3_addrs[] = {
> - 	{
> - 		.pa_start	= 0x45000000,
> - 		.pa_end		= 0x45000fff,
> --		.flags		= ADDR_TYPE_RT,
> -+		.flags		= ADDR_TYPE_RT
> - 	},
> - 	{ }
> - };
> -@@ -420,7 +419,7 @@ static struct omap_hwmod_ocp_if
> omap44xx_l3_main_1__l3_main_3 = {
> - 	.slave		= &omap44xx_l3_main_3_hwmod,
> - 	.clk		= "l3_div_ck",
> - 	.addr		= omap44xx_l3_main_3_addrs,
> --	.user		= OCP_USER_MPU | OCP_USER_SDMA,
> -+	.user		= OCP_USER_MPU,
> - };
> -
> - /* l3_main_2 -> l3_main_3 */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0045-OMAP4-
> hwmod-data-Remove-un-needed-parens.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0045-OMAP4-hwmod-data-Remove-un-needed-
> parens.patch
> deleted file mode 100644
> index eaf456e..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0045-OMAP4-hwmod-
> data-Remove-un-needed-parens.patch
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -From 27107815284e473d39b81df2ee65c1141f60a6cc Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:14:28 -0600
> -Subject: [PATCH 045/149] OMAP4: hwmod data: Remove un-needed parens
> -
> -A couple of parens were added around some flags.
> -
> -Remove them, since they are not needed and not used
> -for any other hwmods.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    4 ++--
> - 1 files changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index 94c0b60..7eed6a2 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -3736,7 +3736,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_mpu_masters[] = {
> - static struct omap_hwmod omap44xx_mpu_hwmod = {
> - 	.name		= "mpu",
> - 	.class		= &omap44xx_mpu_hwmod_class,
> --	.flags		= (HWMOD_INIT_NO_IDLE |
> HWMOD_INIT_NO_RESET),
> -+	.flags		= HWMOD_INIT_NO_IDLE |
> HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_mpu_irqs,
> - 	.main_clk	= "dpll_mpu_m2_ck",
> - 	.prcm = {
> -@@ -4750,7 +4750,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_uart3_slaves[] = {
> - static struct omap_hwmod omap44xx_uart3_hwmod = {
> - 	.name		= "uart3",
> - 	.class		= &omap44xx_uart_hwmod_class,
> --	.flags		= (HWMOD_INIT_NO_IDLE |
> HWMOD_INIT_NO_RESET),
> -+	.flags		= HWMOD_INIT_NO_IDLE |
> HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_uart3_irqs,
> - 	.sdma_reqs	= omap44xx_uart3_sdma_reqs,
> - 	.main_clk	= "uart3_fck",
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0046-OMAP4-
> hwmod-data-Fix-bad-alignement.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0046-OMAP4-hwmod-data-Fix-bad-alignement.patch
> deleted file mode 100644
> index b60f299..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0046-OMAP4-hwmod-
> data-Fix-bad-alignement.patch
> +++ /dev/null
> @@ -1,218 +0,0 @@
> -From b3ef885514cc4b31d763b09dd78f26e2134c47c5 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:14:28 -0600
> -Subject: [PATCH 046/149] OMAP4: hwmod data: Fix bad alignement
> -
> -Fix .prcm alignement and usb_otg_hs class and hwmod structures.
> -
> -Add a couple of more potential hwmods in the comment.
> -Remove hsi, since it is already included in the data.
> -
> -Remove one blank line.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c |   45 ++++++++++++++-
> ------------
> - 1 files changed, 23 insertions(+), 22 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index 7eed6a2..1975b05 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -632,7 +632,9 @@ static struct omap_hwmod
> omap44xx_mpu_private_hwmod = {
> -  *  gpmc
> -  *  gpu
> -  *  hdq1w
> -- *  hsi
> -+ *  mcasp
> -+ *  mpu_c0
> -+ *  mpu_c1
> -  *  ocmc_ram
> -  *  ocp2scp_usb_phy
> -  *  ocp_wp_noc
> -@@ -740,7 +742,7 @@ static struct omap_hwmod omap44xx_aess_hwmod =
> {
> - 	.mpu_irqs	= omap44xx_aess_irqs,
> - 	.sdma_reqs	= omap44xx_aess_sdma_reqs,
> - 	.main_clk	= "aess_fck",
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg = OMAP4430_CM1_ABE_AESS_CLKCTRL,
> - 		},
> -@@ -769,7 +771,7 @@ static struct omap_hwmod_opt_clk
> bandgap_opt_clks[] = {
> - static struct omap_hwmod omap44xx_bandgap_hwmod = {
> - 	.name		= "bandgap",
> - 	.class		= &omap44xx_bandgap_hwmod_class,
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg =
> OMAP4430_CM_WKUP_BANDGAP_CLKCTRL,
> - 		},
> -@@ -828,7 +830,7 @@ static struct omap_hwmod
> omap44xx_counter_32k_hwmod = {
> - 	.class		= &omap44xx_counter_hwmod_class,
> - 	.flags		= HWMOD_SWSUP_SIDLE,
> - 	.main_clk	= "sys_32k_ck",
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg =
> OMAP4430_CM_WKUP_SYNCTIMER_CLKCTRL,
> - 		},
> -@@ -1004,7 +1006,7 @@ static struct omap_hwmod
> omap44xx_dmic_hwmod = {
> - 	.mpu_irqs	= omap44xx_dmic_irqs,
> - 	.sdma_reqs	= omap44xx_dmic_sdma_reqs,
> - 	.main_clk	= "dmic_fck",
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg = OMAP4430_CM1_ABE_DMIC_CLKCTRL,
> - 		},
> -@@ -2094,7 +2096,7 @@ static struct omap_hwmod omap44xx_hsi_hwmod
> = {
> - 	.class		= &omap44xx_hsi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_hsi_irqs,
> - 	.main_clk	= "hsi_fck",
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg = OMAP4430_CM_L3INIT_HSI_CLKCTRL,
> - 		},
> -@@ -2391,7 +2393,7 @@ static struct omap_hwmod
> omap44xx_ipu_c0_hwmod = {
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.rst_lines	= omap44xx_ipu_c0_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_ipu_c0_resets),
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.rstctrl_reg = OMAP4430_RM_DUCATI_RSTCTRL,
> - 		},
> -@@ -2406,7 +2408,7 @@ static struct omap_hwmod
> omap44xx_ipu_c1_hwmod = {
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.rst_lines	= omap44xx_ipu_c1_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_ipu_c1_resets),
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.rstctrl_reg = OMAP4430_RM_DUCATI_RSTCTRL,
> - 		},
> -@@ -2421,7 +2423,7 @@ static struct omap_hwmod omap44xx_ipu_hwmod
> = {
> - 	.rst_lines	= omap44xx_ipu_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_ipu_resets),
> - 	.main_clk	= "ipu_fck",
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg =
> OMAP4430_CM_DUCATI_DUCATI_CLKCTRL,
> - 			.rstctrl_reg = OMAP4430_RM_DUCATI_RSTCTRL,
> -@@ -2507,7 +2509,7 @@ static struct omap_hwmod omap44xx_iss_hwmod
> = {
> - 	.mpu_irqs	= omap44xx_iss_irqs,
> - 	.sdma_reqs	= omap44xx_iss_sdma_reqs,
> - 	.main_clk	= "iss_fck",
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg = OMAP4430_CM_CAM_ISS_CLKCTRL,
> - 		},
> -@@ -2687,7 +2689,7 @@ static struct omap_hwmod
> omap44xx_kbd_hwmod = {
> - 	.class		= &omap44xx_kbd_hwmod_class,
> - 	.mpu_irqs	= omap44xx_kbd_irqs,
> - 	.main_clk	= "kbd_fck",
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg =
> OMAP4430_CM_WKUP_KEYBOARD_CLKCTRL,
> - 		},
> -@@ -2751,7 +2753,7 @@ static struct omap_hwmod
> omap44xx_mailbox_hwmod = {
> - 	.name		= "mailbox",
> - 	.class		= &omap44xx_mailbox_hwmod_class,
> - 	.mpu_irqs	= omap44xx_mailbox_irqs,
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg =
> OMAP4430_CM_L4CFG_MAILBOX_CLKCTRL,
> - 		},
> -@@ -3133,7 +3135,7 @@ static struct omap_hwmod
> omap44xx_mcpdm_hwmod = {
> - 	.mpu_irqs	= omap44xx_mcpdm_irqs,
> - 	.sdma_reqs	= omap44xx_mcpdm_sdma_reqs,
> - 	.main_clk	= "mcpdm_fck",
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg = OMAP4430_CM1_ABE_PDM_CLKCTRL,
> - 		},
> -@@ -3430,7 +3432,6 @@ static struct omap_hwmod_class
> omap44xx_mmc_hwmod_class = {
> - };
> -
> - /* mmc1 */
> --
> - static struct omap_hwmod_irq_info omap44xx_mmc1_irqs[] = {
> - 	{ .irq = 83 + OMAP44XX_IRQ_GIC_START },
> - 	{ .irq = -1 }
> -@@ -3481,7 +3482,7 @@ static struct omap_hwmod
> omap44xx_mmc1_hwmod = {
> - 	.mpu_irqs	= omap44xx_mmc1_irqs,
> - 	.sdma_reqs	= omap44xx_mmc1_sdma_reqs,
> - 	.main_clk	= "mmc1_fck",
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg =
> OMAP4430_CM_L3INIT_MMC1_CLKCTRL,
> - 		},
> -@@ -3540,7 +3541,7 @@ static struct omap_hwmod
> omap44xx_mmc2_hwmod = {
> - 	.mpu_irqs	= omap44xx_mmc2_irqs,
> - 	.sdma_reqs	= omap44xx_mmc2_sdma_reqs,
> - 	.main_clk	= "mmc2_fck",
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg =
> OMAP4430_CM_L3INIT_MMC2_CLKCTRL,
> - 		},
> -@@ -3594,7 +3595,7 @@ static struct omap_hwmod
> omap44xx_mmc3_hwmod = {
> - 	.mpu_irqs	= omap44xx_mmc3_irqs,
> - 	.sdma_reqs	= omap44xx_mmc3_sdma_reqs,
> - 	.main_clk	= "mmc3_fck",
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg =
> OMAP4430_CM_L4PER_MMCSD3_CLKCTRL,
> - 		},
> -@@ -3647,7 +3648,7 @@ static struct omap_hwmod
> omap44xx_mmc4_hwmod = {
> -
> - 	.sdma_reqs	= omap44xx_mmc4_sdma_reqs,
> - 	.main_clk	= "mmc4_fck",
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg =
> OMAP4430_CM_L4PER_MMCSD4_CLKCTRL,
> - 		},
> -@@ -3699,7 +3700,7 @@ static struct omap_hwmod
> omap44xx_mmc5_hwmod = {
> - 	.mpu_irqs	= omap44xx_mmc5_irqs,
> - 	.sdma_reqs	= omap44xx_mmc5_sdma_reqs,
> - 	.main_clk	= "mmc5_fck",
> --	.prcm		= {
> -+	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg =
> OMAP4430_CM_L4PER_MMCSD5_CLKCTRL,
> - 		},
> -@@ -4835,8 +4836,8 @@ static struct omap_hwmod_class_sysconfig
> omap44xx_usb_otg_hs_sysc = {
> - };
> -
> - static struct omap_hwmod_class omap44xx_usb_otg_hs_hwmod_class = {
> --	.name = "usb_otg_hs",
> --	.sysc = &omap44xx_usb_otg_hs_sysc,
> -+	.name	= "usb_otg_hs",
> -+	.sysc	= &omap44xx_usb_otg_hs_sysc,
> - };
> -
> - /* usb_otg_hs */
> -@@ -4890,7 +4891,7 @@ static struct omap_hwmod
> omap44xx_usb_otg_hs_hwmod = {
> - 		},
> - 	},
> - 	.opt_clks	= usb_otg_hs_opt_clks,
> --	.opt_clks_cnt = ARRAY_SIZE(usb_otg_hs_opt_clks),
> -+	.opt_clks_cnt	= ARRAY_SIZE(usb_otg_hs_opt_clks),
> - 	.slaves		= omap44xx_usb_otg_hs_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_usb_otg_hs_slaves),
> - 	.masters	= omap44xx_usb_otg_hs_masters,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0047-OMAP4-
> hwmod-data-Align-interconnect-format-with-regu.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0047-OMAP4-hwmod-data-Align-
> interconnect-format-with-regu.patch
> deleted file mode 100644
> index f4b4857..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0047-OMAP4-hwmod-
> data-Align-interconnect-format-with-regu.patch
> +++ /dev/null
> @@ -1,154 +0,0 @@
> -From b47c49426b8f986331816c48996d9a64f0ebc0aa Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:14:28 -0600
> -Subject: [PATCH 047/149] OMAP4: hwmod data: Align interconnect format
> with regular modules
> -
> -The interconnect modules were using a slightly different layout than
> -the regular modules.
> -Align the layout for better consitency.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c |   36 ++++++++++++++-
> -------------
> - 1 files changed, 18 insertions(+), 18 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index 1975b05..e011437 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -80,7 +80,12 @@ static struct omap_hwmod_class
> omap44xx_dmm_hwmod_class = {
> - 	.name	= "dmm",
> - };
> -
> --/* dmm interface data */
> -+/* dmm */
> -+static struct omap_hwmod_irq_info omap44xx_dmm_irqs[] = {
> -+	{ .irq = 113 + OMAP44XX_IRQ_GIC_START },
> -+	{ .irq = -1 }
> -+};
> -+
> - /* l3_main_1 -> dmm */
> - static struct omap_hwmod_ocp_if omap44xx_l3_main_1__dmm = {
> - 	.master		= &omap44xx_l3_main_1_hwmod,
> -@@ -113,17 +118,12 @@ static struct omap_hwmod_ocp_if
> *omap44xx_dmm_slaves[] = {
> - 	&omap44xx_mpu__dmm,
> - };
> -
> --static struct omap_hwmod_irq_info omap44xx_dmm_irqs[] = {
> --	{ .irq = 113 + OMAP44XX_IRQ_GIC_START },
> --	{ .irq = -1 }
> --};
> --
> - static struct omap_hwmod omap44xx_dmm_hwmod = {
> - 	.name		= "dmm",
> - 	.class		= &omap44xx_dmm_hwmod_class,
> -+	.mpu_irqs	= omap44xx_dmm_irqs,
> - 	.slaves		= omap44xx_dmm_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_dmm_slaves),
> --	.mpu_irqs	= omap44xx_dmm_irqs,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> -@@ -135,7 +135,7 @@ static struct omap_hwmod_class
> omap44xx_emif_fw_hwmod_class = {
> - 	.name	= "emif_fw",
> - };
> -
> --/* emif_fw interface data */
> -+/* emif_fw */
> - /* dmm -> emif_fw */
> - static struct omap_hwmod_ocp_if omap44xx_dmm__emif_fw = {
> - 	.master		= &omap44xx_dmm_hwmod,
> -@@ -184,7 +184,7 @@ static struct omap_hwmod_class
> omap44xx_l3_hwmod_class = {
> - 	.name	= "l3",
> - };
> -
> --/* l3_instr interface data */
> -+/* l3_instr */
> - /* iva -> l3_instr */
> - static struct omap_hwmod_ocp_if omap44xx_iva__l3_instr = {
> - 	.master		= &omap44xx_iva_hwmod,
> -@@ -215,7 +215,7 @@ static struct omap_hwmod
> omap44xx_l3_instr_hwmod = {
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> --/* l3_main_1 interface data */
> -+/* l3_main_1 */
> - static struct omap_hwmod_irq_info omap44xx_l3_main_1_irqs[] = {
> - 	{ .name = "dbg_err", .irq = 9 + OMAP44XX_IRQ_GIC_START },
> - 	{ .name = "app_err", .irq = 10 + OMAP44XX_IRQ_GIC_START },
> -@@ -302,13 +302,13 @@ static struct omap_hwmod_ocp_if
> *omap44xx_l3_main_1_slaves[] = {
> - static struct omap_hwmod omap44xx_l3_main_1_hwmod = {
> - 	.name		= "l3_main_1",
> - 	.class		= &omap44xx_l3_hwmod_class,
> -+	.mpu_irqs	= omap44xx_l3_main_1_irqs,
> - 	.slaves		= omap44xx_l3_main_1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_main_1_slaves),
> --	.mpu_irqs	= omap44xx_l3_main_1_irqs,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> --/* l3_main_2 interface data */
> -+/* l3_main_2 */
> - /* dma_system -> l3_main_2 */
> - static struct omap_hwmod_ocp_if omap44xx_dma_system__l3_main_2 = {
> - 	.master		= &omap44xx_dma_system_hwmod,
> -@@ -403,7 +403,7 @@ static struct omap_hwmod
> omap44xx_l3_main_2_hwmod = {
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> --/* l3_main_3 interface data */
> -+/* l3_main_3 */
> - static struct omap_hwmod_addr_space omap44xx_l3_main_3_addrs[] = {
> - 	{
> - 		.pa_start	= 0x45000000,
> -@@ -461,7 +461,7 @@ static struct omap_hwmod_class
> omap44xx_l4_hwmod_class = {
> - 	.name	= "l4",
> - };
> -
> --/* l4_abe interface data */
> -+/* l4_abe */
> - /* aess -> l4_abe */
> - static struct omap_hwmod_ocp_if omap44xx_aess__l4_abe = {
> - 	.master		= &omap44xx_aess_hwmod,
> -@@ -510,7 +510,7 @@ static struct omap_hwmod
> omap44xx_l4_abe_hwmod = {
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> --/* l4_cfg interface data */
> -+/* l4_cfg */
> - /* l3_main_1 -> l4_cfg */
> - static struct omap_hwmod_ocp_if omap44xx_l3_main_1__l4_cfg = {
> - 	.master		= &omap44xx_l3_main_1_hwmod,
> -@@ -532,7 +532,7 @@ static struct omap_hwmod omap44xx_l4_cfg_hwmod
> = {
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> --/* l4_per interface data */
> -+/* l4_per */
> - /* l3_main_2 -> l4_per */
> - static struct omap_hwmod_ocp_if omap44xx_l3_main_2__l4_per = {
> - 	.master		= &omap44xx_l3_main_2_hwmod,
> -@@ -554,7 +554,7 @@ static struct omap_hwmod
> omap44xx_l4_per_hwmod = {
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> --/* l4_wkup interface data */
> -+/* l4_wkup */
> - /* l4_cfg -> l4_wkup */
> - static struct omap_hwmod_ocp_if omap44xx_l4_cfg__l4_wkup = {
> - 	.master		= &omap44xx_l4_cfg_hwmod,
> -@@ -584,7 +584,7 @@ static struct omap_hwmod_class
> omap44xx_mpu_bus_hwmod_class = {
> - 	.name	= "mpu_bus",
> - };
> -
> --/* mpu_private interface data */
> -+/* mpu_private */
> - /* mpu -> mpu_private */
> - static struct omap_hwmod_ocp_if omap44xx_mpu__mpu_private = {
> - 	.master		= &omap44xx_mpu_hwmod,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0048-OMAP4-clock-
> data-Add-sddiv-to-USB-DPLL.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0048-OMAP4-clock-data-Add-sddiv-to-USB-DPLL.patch
> deleted file mode 100644
> index e3a50ac..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0048-OMAP4-clock-data-
> Add-sddiv-to-USB-DPLL.patch
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -From 4f6739c756baab556e7ad8ddb33c0d3fb822179a Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:14:45 -0600
> -Subject: [PATCH 048/149] OMAP4: clock data: Add sddiv to USB DPLL
> -
> -The USB DPLL is a J-Type DPLL with the sddiv extra parameter.  Add it
> -in USB DPLL.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -[paul at pwsan.com: dropped UNIPRO change since it is removed in a later
> patch]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clock44xx_data.c |    1 +
> - 1 files changed, 1 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-
> omap2/clock44xx_data.c
> -index 8c96567..f28a9c9 100644
> ---- a/arch/arm/mach-omap2/clock44xx_data.c
> -+++ b/arch/arm/mach-omap2/clock44xx_data.c
> -@@ -1015,6 +1015,7 @@ static struct dpll_data dpll_usb_dd = {
> - 	.enable_mask	= OMAP4430_DPLL_EN_MASK,
> - 	.autoidle_mask	= OMAP4430_AUTO_DPLL_MODE_MASK,
> - 	.idlest_mask	= OMAP4430_ST_DPLL_CLK_MASK,
> -+	.sddiv_mask	= OMAP4430_DPLL_SD_DIV_MASK,
> - 	.max_multiplier	= OMAP4430_MAX_DPLL_MULT,
> - 	.max_divider	= OMAP4430_MAX_DPLL_DIV,
> - 	.min_divider	= 1,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0049-OMAP4-clock-
> data-Remove-usb_host_fs-clkdev-with-NULL.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0049-OMAP4-clock-data-Remove-usb_host_fs-clkdev-
> with-NULL.patch
> deleted file mode 100644
> index 8cb1123..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0049-OMAP4-clock-data-
> Remove-usb_host_fs-clkdev-with-NULL.patch
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -From 776007fbd8db1764179c9cf9f93d3b5ef2fef782 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:14:45 -0600
> -Subject: [PATCH 049/149] OMAP4: clock data: Remove usb_host_fs clkdev
> with NULL dev
> -
> -usb_host_fs_fck does have a clkdev mapping with "usbhs-omap.0"
> -and "fs_fck" alias used by the driver.
> -The entry with NULL dev is thus not needed anymore.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Felipe Balbi <balbi at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clock44xx_data.c |    3 ---
> - 1 files changed, 0 insertions(+), 3 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-
> omap2/clock44xx_data.c
> -index f28a9c9..0fa1cb8 100644
> ---- a/arch/arm/mach-omap2/clock44xx_data.c
> -+++ b/arch/arm/mach-omap2/clock44xx_data.c
> -@@ -3205,7 +3205,6 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK(NULL,	"uart2_fck",			&uart2_fck,
> 	CK_443X),
> - 	CLK(NULL,	"uart3_fck",			&uart3_fck,
> 	CK_443X),
> - 	CLK(NULL,	"uart4_fck",			&uart4_fck,
> 	CK_443X),
> --	CLK(NULL,	"usb_host_fs_fck",		&usb_host_fs_fck,
> 	CK_443X),
> - 	CLK("usbhs-omap.0",	"fs_fck",		&usb_host_fs_fck,
> 	CK_443X),
> - 	CLK(NULL,	"utmi_p1_gfclk",		&utmi_p1_gfclk,
> 	CK_443X),
> - 	CLK(NULL,	"usb_host_hs_utmi_p1_clk",
> 	&usb_host_hs_utmi_p1_clk,	CK_443X),
> -@@ -3217,7 +3216,6 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK(NULL,	"usb_host_hs_hsic60m_p2_clk",
> 	&usb_host_hs_hsic60m_p2_clk,	CK_443X),
> - 	CLK(NULL,	"usb_host_hs_hsic480m_p2_clk",
> 	&usb_host_hs_hsic480m_p2_clk,	CK_443X),
> - 	CLK(NULL,	"usb_host_hs_func48mclk",
> 	&usb_host_hs_func48mclk,	CK_443X),
> --	CLK(NULL,	"usb_host_hs_fck",		&usb_host_hs_fck,
> 	CK_443X),
> - 	CLK("usbhs-omap.0",	"hs_fck",		&usb_host_hs_fck,
> 	CK_443X),
> - 	CLK("usbhs-omap.0",	"usbhost_ick",		&dummy_ck,
> 	CK_443X),
> - 	CLK(NULL,	"otg_60m_gfclk",		&otg_60m_gfclk,
> 	CK_443X),
> -@@ -3227,7 +3225,6 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK(NULL,	"usb_tll_hs_usb_ch2_clk",
> 	&usb_tll_hs_usb_ch2_clk,	CK_443X),
> - 	CLK(NULL,	"usb_tll_hs_usb_ch0_clk",
> 	&usb_tll_hs_usb_ch0_clk,	CK_443X),
> - 	CLK(NULL,	"usb_tll_hs_usb_ch1_clk",
> 	&usb_tll_hs_usb_ch1_clk,	CK_443X),
> --	CLK(NULL,	"usb_tll_hs_ick",		&usb_tll_hs_ick,
> 	CK_443X),
> - 	CLK("usbhs-omap.0",	"usbtll_ick",		&usb_tll_hs_ick,
> 	CK_443X),
> - 	CLK("usbhs-omap.0",	"usbtll_fck",		&dummy_ck,
> 	CK_443X),
> - 	CLK(NULL,	"usim_ck",			&usim_ck,
> 	CK_443X),
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0050-OMAP4-clock-
> data-Re-order-some-clock-nodes-and-struc.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0050-OMAP4-clock-data-Re-order-some-clock-nodes-and-
> struc.patch
> deleted file mode 100644
> index 24a888c..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0050-OMAP4-clock-data-
> Re-order-some-clock-nodes-and-struc.patch
> +++ /dev/null
> @@ -1,229 +0,0 @@
> -From e19d3b7293245b4aad98b5ace320caad14e27c11 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:14:45 -0600
> -Subject: [PATCH 050/149] OMAP4: clock data: Re-order some clock nodes and
> structure fields
> -
> -A couple of fieds were edited manually and thus do not stick
> -to the template used by the generator and by other structures.
> -
> -Move them to the correct location.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -[paul at pwsan.com: dropped the UNIPRO changes since those will be removed
> - in a later patch]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clock44xx_data.c |   66 +++++++++++++++++----------
> ------
> - 1 files changed, 34 insertions(+), 32 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-
> omap2/clock44xx_data.c
> -index 0fa1cb8..4b57d55 100644
> ---- a/arch/arm/mach-omap2/clock44xx_data.c
> -+++ b/arch/arm/mach-omap2/clock44xx_data.c
> -@@ -53,9 +53,9 @@ static struct clk extalt_clkin_ck = {
> - static struct clk pad_clks_ck = {
> - 	.name		= "pad_clks_ck",
> - 	.rate		= 12000000,
> --	.ops            = &clkops_omap2_dflt,
> --	.enable_reg     = OMAP4430_CM_CLKSEL_ABE,
> --	.enable_bit     = OMAP4430_PAD_CLKS_GATE_SHIFT,
> -+	.ops		= &clkops_omap2_dflt,
> -+	.enable_reg	= OMAP4430_CM_CLKSEL_ABE,
> -+	.enable_bit	= OMAP4430_PAD_CLKS_GATE_SHIFT,
> - };
> -
> - static struct clk pad_slimbus_core_clks_ck = {
> -@@ -73,9 +73,9 @@ static struct clk secure_32k_clk_src_ck = {
> - static struct clk slimbus_clk = {
> - 	.name		= "slimbus_clk",
> - 	.rate		= 12000000,
> --	.ops            = &clkops_omap2_dflt,
> --	.enable_reg     = OMAP4430_CM_CLKSEL_ABE,
> --	.enable_bit     = OMAP4430_SLIMBUS_CLK_GATE_SHIFT,
> -+	.ops		= &clkops_omap2_dflt,
> -+	.enable_reg	= OMAP4430_CM_CLKSEL_ABE,
> -+	.enable_bit	= OMAP4430_SLIMBUS_CLK_GATE_SHIFT,
> - };
> -
> - static struct clk sys_32k_ck = {
> -@@ -278,10 +278,10 @@ static struct clk dpll_abe_ck = {
> - static struct clk dpll_abe_x2_ck = {
> - 	.name		= "dpll_abe_x2_ck",
> - 	.parent		= &dpll_abe_ck,
> -+	.clksel_reg	= OMAP4430_CM_DIV_M2_DPLL_ABE,
> - 	.flags		= CLOCK_CLKOUTX2,
> - 	.ops		= &clkops_omap4_dpllmx_ops,
> - 	.recalc		= &omap3_clkoutx2_recalc,
> --	.clksel_reg	= OMAP4430_CM_DIV_M2_DPLL_ABE,
> - };
> -
> - static const struct clksel_rate div31_1to31_rates[] = {
> -@@ -622,11 +622,11 @@ static struct clk dpll_core_m3x2_ck = {
> - 	.clksel_reg	= OMAP4430_CM_DIV_M3_DPLL_CORE,
> - 	.clksel_mask	= OMAP4430_DPLL_CLKOUTHIF_DIV_MASK,
> - 	.ops		= &clkops_omap2_dflt,
> --	.enable_reg	= OMAP4430_CM_DIV_M3_DPLL_CORE,
> --	.enable_bit	= OMAP4430_DPLL_CLKOUTHIF_GATE_CTRL_SHIFT,
> - 	.recalc		= &omap2_clksel_recalc,
> - 	.round_rate	= &omap2_clksel_round_rate,
> - 	.set_rate	= &omap2_clksel_set_rate,
> -+	.enable_reg	= OMAP4430_CM_DIV_M3_DPLL_CORE,
> -+	.enable_bit	= OMAP4430_DPLL_CLKOUTHIF_GATE_CTRL_SHIFT,
> - };
> -
> - static struct clk dpll_core_m7x2_ck = {
> -@@ -850,10 +850,10 @@ static struct clk dpll_per_m2_ck = {
> - static struct clk dpll_per_x2_ck = {
> - 	.name		= "dpll_per_x2_ck",
> - 	.parent		= &dpll_per_ck,
> -+	.clksel_reg	= OMAP4430_CM_DIV_M2_DPLL_PER,
> - 	.flags		= CLOCK_CLKOUTX2,
> - 	.ops		= &clkops_omap4_dpllmx_ops,
> - 	.recalc		= &omap3_clkoutx2_recalc,
> --	.clksel_reg	= OMAP4430_CM_DIV_M2_DPLL_PER,
> - };
> -
> - static const struct clksel dpll_per_m2x2_div[] = {
> -@@ -880,11 +880,11 @@ static struct clk dpll_per_m3x2_ck = {
> - 	.clksel_reg	= OMAP4430_CM_DIV_M3_DPLL_PER,
> - 	.clksel_mask	= OMAP4430_DPLL_CLKOUTHIF_DIV_MASK,
> - 	.ops		= &clkops_omap2_dflt,
> --	.enable_reg	= OMAP4430_CM_DIV_M3_DPLL_PER,
> --	.enable_bit	= OMAP4430_DPLL_CLKOUTHIF_GATE_CTRL_SHIFT,
> - 	.recalc		= &omap2_clksel_recalc,
> - 	.round_rate	= &omap2_clksel_round_rate,
> - 	.set_rate	= &omap2_clksel_set_rate,
> -+	.enable_reg	= OMAP4430_CM_DIV_M3_DPLL_PER,
> -+	.enable_bit	= OMAP4430_DPLL_CLKOUTHIF_GATE_CTRL_SHIFT,
> - };
> -
> - static struct clk dpll_per_m4x2_ck = {
> -@@ -970,8 +970,9 @@ static struct clk dpll_unipro_ck = {
> - static struct clk dpll_unipro_x2_ck = {
> - 	.name		= "dpll_unipro_x2_ck",
> - 	.parent		= &dpll_unipro_ck,
> -+	.clksel_reg	= OMAP4430_CM_DIV_M2_DPLL_UNIPRO,
> - 	.flags		= CLOCK_CLKOUTX2,
> --	.ops		= &clkops_null,
> -+	.ops		= &clkops_omap4_dpllmx_ops,
> - 	.recalc		= &omap3_clkoutx2_recalc,
> - };
> -
> -@@ -1036,8 +1037,8 @@ static struct clk dpll_usb_ck = {
> - static struct clk dpll_usb_clkdcoldo_ck = {
> - 	.name		= "dpll_usb_clkdcoldo_ck",
> - 	.parent		= &dpll_usb_ck,
> --	.ops		= &clkops_omap4_dpllmx_ops,
> - 	.clksel_reg	= OMAP4430_CM_CLKDCOLDO_DPLL_USB,
> -+	.ops		= &clkops_omap4_dpllmx_ops,
> - 	.recalc		= &followparent_recalc,
> - };
> -
> -@@ -1847,8 +1848,8 @@ static struct clk l3_instr_ick = {
> - 	.ops		= &clkops_omap2_dflt,
> - 	.enable_reg	= OMAP4430_CM_L3INSTR_L3_INSTR_CLKCTRL,
> - 	.enable_bit	= OMAP4430_MODULEMODE_HWCTRL,
> --	.clkdm_name	= "l3_instr_clkdm",
> - 	.flags		= ENABLE_ON_INIT,
> -+	.clkdm_name	= "l3_instr_clkdm",
> - 	.parent		= &l3_div_ck,
> - 	.recalc		= &followparent_recalc,
> - };
> -@@ -1858,8 +1859,8 @@ static struct clk l3_main_3_ick = {
> - 	.ops		= &clkops_omap2_dflt,
> - 	.enable_reg	= OMAP4430_CM_L3INSTR_L3_3_CLKCTRL,
> - 	.enable_bit	= OMAP4430_MODULEMODE_HWCTRL,
> --	.clkdm_name	= "l3_instr_clkdm",
> - 	.flags		= ENABLE_ON_INIT,
> -+	.clkdm_name	= "l3_instr_clkdm",
> - 	.parent		= &l3_div_ck,
> - 	.recalc		= &followparent_recalc,
> - };
> -@@ -2163,8 +2164,8 @@ static struct clk ocp_wp_noc_ick = {
> - 	.ops		= &clkops_omap2_dflt,
> - 	.enable_reg	= OMAP4430_CM_L3INSTR_OCP_WP1_CLKCTRL,
> - 	.enable_bit	= OMAP4430_MODULEMODE_HWCTRL,
> --	.clkdm_name	= "l3_instr_clkdm",
> - 	.flags		= ENABLE_ON_INIT,
> -+	.clkdm_name	= "l3_instr_clkdm",
> - 	.parent		= &l3_div_ck,
> - 	.recalc		= &followparent_recalc,
> - };
> -@@ -2896,6 +2897,7 @@ static struct clk auxclk2_ck = {
> - 	.enable_reg	= OMAP4_SCRM_AUXCLK2,
> - 	.enable_bit	= OMAP4_ENABLE_SHIFT,
> - };
> -+
> - static struct clk auxclk3_ck = {
> - 	.name		= "auxclk3_ck",
> - 	.parent		= &sys_clkin_ck,
> -@@ -3217,7 +3219,6 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK(NULL,	"usb_host_hs_hsic480m_p2_clk",
> 	&usb_host_hs_hsic480m_p2_clk,	CK_443X),
> - 	CLK(NULL,	"usb_host_hs_func48mclk",
> 	&usb_host_hs_func48mclk,	CK_443X),
> - 	CLK("usbhs-omap.0",	"hs_fck",		&usb_host_hs_fck,
> 	CK_443X),
> --	CLK("usbhs-omap.0",	"usbhost_ick",		&dummy_ck,
> 	CK_443X),
> - 	CLK(NULL,	"otg_60m_gfclk",		&otg_60m_gfclk,
> 	CK_443X),
> - 	CLK(NULL,	"usb_otg_hs_xclk",		&usb_otg_hs_xclk,
> 	CK_443X),
> - 	CLK("musb-omap2430",	"ick",
> 	&usb_otg_hs_ick,	CK_443X),
> -@@ -3226,15 +3227,25 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK(NULL,	"usb_tll_hs_usb_ch0_clk",
> 	&usb_tll_hs_usb_ch0_clk,	CK_443X),
> - 	CLK(NULL,	"usb_tll_hs_usb_ch1_clk",
> 	&usb_tll_hs_usb_ch1_clk,	CK_443X),
> - 	CLK("usbhs-omap.0",	"usbtll_ick",		&usb_tll_hs_ick,
> 	CK_443X),
> --	CLK("usbhs-omap.0",	"usbtll_fck",		&dummy_ck,
> 	CK_443X),
> - 	CLK(NULL,	"usim_ck",			&usim_ck,
> 	CK_443X),
> - 	CLK(NULL,	"usim_fclk",			&usim_fclk,
> 	CK_443X),
> - 	CLK(NULL,	"usim_fck",			&usim_fck,
> 	CK_443X),
> - 	CLK("omap_wdt",	"fck",
> 	&wd_timer2_fck,	CK_443X),
> --	CLK(NULL,	"mailboxes_ick",		&dummy_ck,
> 	CK_443X),
> - 	CLK(NULL,	"wd_timer3_fck",		&wd_timer3_fck,
> 	CK_443X),
> - 	CLK(NULL,	"stm_clk_div_ck",		&stm_clk_div_ck,
> 	CK_443X),
> - 	CLK(NULL,	"trace_clk_div_ck",		&trace_clk_div_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk0_ck",			&auxclk0_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk1_ck",			&auxclk1_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk2_ck",			&auxclk2_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk3_ck",			&auxclk3_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk4_ck",			&auxclk4_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk5_ck",			&auxclk5_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclkreq0_ck",		&auxclkreq0_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclkreq1_ck",		&auxclkreq1_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclkreq2_ck",		&auxclkreq2_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclkreq3_ck",		&auxclkreq3_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclkreq4_ck",		&auxclkreq4_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclkreq5_ck",		&auxclkreq5_ck,
> 	CK_443X),
> - 	CLK(NULL,	"gpmc_ck",			&dummy_ck,
> 	CK_443X),
> - 	CLK(NULL,	"gpt1_ick",			&dummy_ck,
> 	CK_443X),
> - 	CLK(NULL,	"gpt2_ick",			&dummy_ck,
> 	CK_443X),
> -@@ -3251,6 +3262,7 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK("omap_i2c.2",	"ick",				&dummy_ck,
> 	CK_443X),
> - 	CLK("omap_i2c.3",	"ick",				&dummy_ck,
> 	CK_443X),
> - 	CLK("omap_i2c.4",	"ick",				&dummy_ck,
> 	CK_443X),
> -+	CLK(NULL,	"mailboxes_ick",		&dummy_ck,
> 	CK_443X),
> - 	CLK("omap_hsmmc.0",	"ick",				&dummy_ck,
> 	CK_443X),
> - 	CLK("omap_hsmmc.1",	"ick",				&dummy_ck,
> 	CK_443X),
> - 	CLK("omap_hsmmc.2",	"ick",				&dummy_ck,
> 	CK_443X),
> -@@ -3268,19 +3280,9 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK(NULL,	"uart2_ick",			&dummy_ck,
> 	CK_443X),
> - 	CLK(NULL,	"uart3_ick",			&dummy_ck,
> 	CK_443X),
> - 	CLK(NULL,	"uart4_ick",			&dummy_ck,
> 	CK_443X),
> -+	CLK("usbhs-omap.0",	"usbhost_ick",		&dummy_ck,
> 	CK_443X),
> -+	CLK("usbhs-omap.0",	"usbtll_fck",		&dummy_ck,
> 	CK_443X),
> - 	CLK("omap_wdt",	"ick",				&dummy_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclk0_ck",			&auxclk0_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclk1_ck",			&auxclk1_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclk2_ck",			&auxclk2_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclk3_ck",			&auxclk3_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclk4_ck",			&auxclk4_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclk5_ck",			&auxclk5_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclkreq0_ck",		&auxclkreq0_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclkreq1_ck",		&auxclkreq1_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclkreq2_ck",		&auxclkreq2_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclkreq3_ck",		&auxclkreq3_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclkreq4_ck",		&auxclkreq4_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclkreq5_ck",		&auxclkreq5_ck,
> 	CK_443X),
> - };
> -
> - int __init omap4xxx_clk_init(void)
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0051-OMAP4-clock-
> data-Fix-max-mult-and-div-for-USB-DPLL.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0051-OMAP4-clock-data-Fix-max-mult-and-div-for-USB-
> DPLL.patch
> deleted file mode 100644
> index c04c192..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0051-OMAP4-clock-data-
> Fix-max-mult-and-div-for-USB-DPLL.patch
> +++ /dev/null
> @@ -1,143 +0,0 @@
> -From 6fdbb61306456ada90c0b0e3ee2c8245077b7b02 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:14:46 -0600
> -Subject: [PATCH 051/149] OMAP4: clock data: Fix max mult and div for USB
> DPLL
> -
> -The DPLL USB can generate higher speed (x2) than the regular ones.
> -The max multiplication value is then twice the previous value.
> -
> -Fix both max_mult and max_div with that correct values.
> -
> -Change the max_div variable type to u16 to allow storing up to 256.
> -
> -Replace as well the define with the value to avoid
> -unneeded indirection and provide a better readability.
> -
> -Remove the defines that become useless.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clock44xx.h         |    7 -------
> - arch/arm/mach-omap2/clock44xx_data.c    |   29 ++++++++++++++-------------
> --
> - arch/arm/plat-omap/include/plat/clock.h |    2 +-
> - 3 files changed, 15 insertions(+), 23 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clock44xx.h b/arch/arm/mach-
> omap2/clock44xx.h
> -index 6be1095..7ceb870 100644
> ---- a/arch/arm/mach-omap2/clock44xx.h
> -+++ b/arch/arm/mach-omap2/clock44xx.h
> -@@ -8,13 +8,6 @@
> - #ifndef __ARCH_ARM_MACH_OMAP2_CLOCK44XX_H
> - #define __ARCH_ARM_MACH_OMAP2_CLOCK44XX_H
> -
> --/*
> -- * XXX Missing values for the OMAP4 DPLL_USB
> -- * XXX Missing min_multiplier values for all OMAP4 DPLLs
> -- */
> --#define OMAP4430_MAX_DPLL_MULT	2047
> --#define OMAP4430_MAX_DPLL_DIV	128
> --
> - int omap4xxx_clk_init(void);
> -
> - #endif
> -diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-
> omap2/clock44xx_data.c
> -index 4b57d55..8307c9e 100644
> ---- a/arch/arm/mach-omap2/clock44xx_data.c
> -+++ b/arch/arm/mach-omap2/clock44xx_data.c
> -@@ -258,8 +258,8 @@ static struct dpll_data dpll_abe_dd = {
> - 	.enable_mask	= OMAP4430_DPLL_EN_MASK,
> - 	.autoidle_mask	= OMAP4430_AUTO_DPLL_MODE_MASK,
> - 	.idlest_mask	= OMAP4430_ST_DPLL_CLK_MASK,
> --	.max_multiplier	= OMAP4430_MAX_DPLL_MULT,
> --	.max_divider	= OMAP4430_MAX_DPLL_DIV,
> -+	.max_multiplier	= 2047,
> -+	.max_divider	= 128,
> - 	.min_divider	= 1,
> - };
> -
> -@@ -434,8 +434,8 @@ static struct dpll_data dpll_core_dd = {
> - 	.enable_mask	= OMAP4430_DPLL_EN_MASK,
> - 	.autoidle_mask	= OMAP4430_AUTO_DPLL_MODE_MASK,
> - 	.idlest_mask	= OMAP4430_ST_DPLL_CLK_MASK,
> --	.max_multiplier	= OMAP4430_MAX_DPLL_MULT,
> --	.max_divider	= OMAP4430_MAX_DPLL_DIV,
> -+	.max_multiplier	= 2047,
> -+	.max_divider	= 128,
> - 	.min_divider	= 1,
> - };
> -
> -@@ -672,8 +672,8 @@ static struct dpll_data dpll_iva_dd = {
> - 	.enable_mask	= OMAP4430_DPLL_EN_MASK,
> - 	.autoidle_mask	= OMAP4430_AUTO_DPLL_MODE_MASK,
> - 	.idlest_mask	= OMAP4430_ST_DPLL_CLK_MASK,
> --	.max_multiplier	= OMAP4430_MAX_DPLL_MULT,
> --	.max_divider	= OMAP4430_MAX_DPLL_DIV,
> -+	.max_multiplier	= 2047,
> -+	.max_divider	= 128,
> - 	.min_divider	= 1,
> - };
> -
> -@@ -740,8 +740,8 @@ static struct dpll_data dpll_mpu_dd = {
> - 	.enable_mask	= OMAP4430_DPLL_EN_MASK,
> - 	.autoidle_mask	= OMAP4430_AUTO_DPLL_MODE_MASK,
> - 	.idlest_mask	= OMAP4430_ST_DPLL_CLK_MASK,
> --	.max_multiplier	= OMAP4430_MAX_DPLL_MULT,
> --	.max_divider	= OMAP4430_MAX_DPLL_DIV,
> -+	.max_multiplier	= 2047,
> -+	.max_divider	= 128,
> - 	.min_divider	= 1,
> - };
> -
> -@@ -813,8 +813,8 @@ static struct dpll_data dpll_per_dd = {
> - 	.enable_mask	= OMAP4430_DPLL_EN_MASK,
> - 	.autoidle_mask	= OMAP4430_AUTO_DPLL_MODE_MASK,
> - 	.idlest_mask	= OMAP4430_ST_DPLL_CLK_MASK,
> --	.max_multiplier	= OMAP4430_MAX_DPLL_MULT,
> --	.max_divider	= OMAP4430_MAX_DPLL_DIV,
> -+	.max_multiplier	= 2047,
> -+	.max_divider	= 128,
> - 	.min_divider	= 1,
> - };
> -
> -@@ -949,9 +949,8 @@ static struct dpll_data dpll_unipro_dd = {
> - 	.enable_mask	= OMAP4430_DPLL_EN_MASK,
> - 	.autoidle_mask	= OMAP4430_AUTO_DPLL_MODE_MASK,
> - 	.idlest_mask	= OMAP4430_ST_DPLL_CLK_MASK,
> --	.sddiv_mask	= OMAP4430_DPLL_SD_DIV_MASK,
> --	.max_multiplier	= OMAP4430_MAX_DPLL_MULT,
> --	.max_divider	= OMAP4430_MAX_DPLL_DIV,
> -+	.max_multiplier	= 2047,
> -+	.max_divider	= 128,
> - 	.min_divider	= 1,
> - };
> -
> -@@ -1017,8 +1016,8 @@ static struct dpll_data dpll_usb_dd = {
> - 	.autoidle_mask	= OMAP4430_AUTO_DPLL_MODE_MASK,
> - 	.idlest_mask	= OMAP4430_ST_DPLL_CLK_MASK,
> - 	.sddiv_mask	= OMAP4430_DPLL_SD_DIV_MASK,
> --	.max_multiplier	= OMAP4430_MAX_DPLL_MULT,
> --	.max_divider	= OMAP4430_MAX_DPLL_DIV,
> -+	.max_multiplier	= 4095,
> -+	.max_divider	= 256,
> - 	.min_divider	= 1,
> - };
> -
> -diff --git a/arch/arm/plat-omap/include/plat/clock.h b/arch/arm/plat-
> omap/include/plat/clock.h
> -index 006e599..f57e064 100644
> ---- a/arch/arm/plat-omap/include/plat/clock.h
> -+++ b/arch/arm/plat-omap/include/plat/clock.h
> -@@ -152,7 +152,7 @@ struct dpll_data {
> - 	u16			max_multiplier;
> - 	u8			last_rounded_n;
> - 	u8			min_divider;
> --	u8			max_divider;
> -+	u16			max_divider;
> - 	u8			modes;
> - #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
> - 	void __iomem		*autoidle_reg;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0052-OMAP4-prcm-
> Fix-errors-in-few-defines-name.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0052-OMAP4-prcm-Fix-errors-in-few-defines-name.patch
> deleted file mode 100644
> index e370992..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0052-OMAP4-prcm-Fix-
> errors-in-few-defines-name.patch
> +++ /dev/null
> @@ -1,256 +0,0 @@
> -From e96136d547a0de958c051e0ec6a0873f27a94537 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:15:04 -0600
> -Subject: [PATCH 052/149] OMAP4: prcm: Fix errors in few defines name
> -
> -A couple of macros were wrongly changed during the _MOD to _INST
> -rename done in the following commit:
> -
> -  OMAP4: PRCM: rename _MOD macros to _INST
> -  cdb54c4457d68994da7c2e16907adfbfc130060d
> -
> -Fix them to their original name.
> -
> -Some CM and PRM instances were not well aligned. Align them.
> -
> -Remove one blank line in cm2_44xx.h to align the output with
> -the other (cm1_44xx.h, prm44xx.h) files.
> -
> -Update header copyright date.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/cm1_44xx.h |   28 ++++++++++++++--------------
> - arch/arm/mach-omap2/cm2_44xx.h |   23 +++++++++++------------
> - arch/arm/mach-omap2/prm44xx.h  |   22 +++++++++++-----------
> - 3 files changed, 36 insertions(+), 37 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/cm1_44xx.h b/arch/arm/mach-
> omap2/cm1_44xx.h
> -index e2d7a56..fc649f5 100644
> ---- a/arch/arm/mach-omap2/cm1_44xx.h
> -+++ b/arch/arm/mach-omap2/cm1_44xx.h
> -@@ -1,7 +1,7 @@
> - /*
> -  * OMAP44xx CM1 instance offset macros
> -  *
> -- * Copyright (C) 2009-2010 Texas Instruments, Inc.
> -+ * Copyright (C) 2009-2011 Texas Instruments, Inc.
> -  * Copyright (C) 2009-2010 Nokia Corporation
> -  *
> -  * Paul Walmsley (paul at pwsan.com)
> -@@ -41,9 +41,9 @@
> - #define OMAP4430_CM1_INSTR_INST		0x0f00
> -
> - /* CM1 clockdomain register offsets (from instance start) */
> --#define OMAP4430_CM1_ABE_ABE_CDOFFS		0x0000
> --#define OMAP4430_CM1_MPU_MPU_CDOFFS		0x0000
> --#define OMAP4430_CM1_TESLA_TESLA_CDOFFS		0x0000
> -+#define OMAP4430_CM1_MPU_MPU_CDOFFS	0x0000
> -+#define OMAP4430_CM1_TESLA_TESLA_CDOFFS	0x0000
> -+#define OMAP4430_CM1_ABE_ABE_CDOFFS	0x0000
> -
> - /* CM1 */
> -
> -@@ -82,8 +82,8 @@
> - #define OMAP4430_CM_DIV_M7_DPLL_CORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0044)
> - #define OMAP4_CM_SSC_DELTAMSTEP_DPLL_CORE_OFFSET	0x0048
> - #define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_CORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0048)
> --#define OMAP4_CM_SSC_INSTFREQDIV_DPLL_CORE_OFFSET	0x004c
> --#define OMAP4430_CM_SSC_INSTFREQDIV_DPLL_CORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x004c)
> -+#define OMAP4_CM_SSC_MODFREQDIV_DPLL_CORE_OFFSET	0x004c
> -+#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_CORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x004c)
> - #define OMAP4_CM_EMU_OVERRIDE_DPLL_CORE_OFFSET
> 	0x0050
> - #define OMAP4430_CM_EMU_OVERRIDE_DPLL_CORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0050)
> - #define OMAP4_CM_CLKMODE_DPLL_MPU_OFFSET		0x0060
> -@@ -98,8 +98,8 @@
> - #define OMAP4430_CM_DIV_M2_DPLL_MPU
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0070)
> - #define OMAP4_CM_SSC_DELTAMSTEP_DPLL_MPU_OFFSET
> 	0x0088
> - #define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_MPU
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0088)
> --#define OMAP4_CM_SSC_INSTFREQDIV_DPLL_MPU_OFFSET
> 	0x008c
> --#define OMAP4430_CM_SSC_INSTFREQDIV_DPLL_MPU
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x008c)
> -+#define OMAP4_CM_SSC_MODFREQDIV_DPLL_MPU_OFFSET
> 	0x008c
> -+#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_MPU
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x008c)
> - #define OMAP4_CM_BYPCLK_DPLL_MPU_OFFSET
> 	0x009c
> - #define OMAP4430_CM_BYPCLK_DPLL_MPU
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x009c)
> - #define OMAP4_CM_CLKMODE_DPLL_IVA_OFFSET		0x00a0
> -@@ -116,8 +116,8 @@
> - #define OMAP4430_CM_DIV_M5_DPLL_IVA
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x00bc)
> - #define OMAP4_CM_SSC_DELTAMSTEP_DPLL_IVA_OFFSET
> 	0x00c8
> - #define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_IVA
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x00c8)
> --#define OMAP4_CM_SSC_INSTFREQDIV_DPLL_IVA_OFFSET
> 	0x00cc
> --#define OMAP4430_CM_SSC_INSTFREQDIV_DPLL_IVA
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x00cc)
> -+#define OMAP4_CM_SSC_MODFREQDIV_DPLL_IVA_OFFSET
> 	0x00cc
> -+#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_IVA
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x00cc)
> - #define OMAP4_CM_BYPCLK_DPLL_IVA_OFFSET
> 	0x00dc
> - #define OMAP4430_CM_BYPCLK_DPLL_IVA
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x00dc)
> - #define OMAP4_CM_CLKMODE_DPLL_ABE_OFFSET		0x00e0
> -@@ -134,8 +134,8 @@
> - #define OMAP4430_CM_DIV_M3_DPLL_ABE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x00f4)
> - #define OMAP4_CM_SSC_DELTAMSTEP_DPLL_ABE_OFFSET
> 	0x0108
> - #define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_ABE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0108)
> --#define OMAP4_CM_SSC_INSTFREQDIV_DPLL_ABE_OFFSET
> 	0x010c
> --#define OMAP4430_CM_SSC_INSTFREQDIV_DPLL_ABE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x010c)
> -+#define OMAP4_CM_SSC_MODFREQDIV_DPLL_ABE_OFFSET
> 	0x010c
> -+#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_ABE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x010c)
> - #define OMAP4_CM_CLKMODE_DPLL_DDRPHY_OFFSET
> 	0x0120
> - #define OMAP4430_CM_CLKMODE_DPLL_DDRPHY
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0120)
> - #define OMAP4_CM_IDLEST_DPLL_DDRPHY_OFFSET		0x0124
> -@@ -154,8 +154,8 @@
> - #define OMAP4430_CM_DIV_M6_DPLL_DDRPHY
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0140)
> - #define OMAP4_CM_SSC_DELTAMSTEP_DPLL_DDRPHY_OFFSET
> 	0x0148
> - #define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_DDRPHY
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0148)
> --#define OMAP4_CM_SSC_INSTFREQDIV_DPLL_DDRPHY_OFFSET
> 	0x014c
> --#define OMAP4430_CM_SSC_INSTFREQDIV_DPLL_DDRPHY
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x014c)
> -+#define OMAP4_CM_SSC_MODFREQDIV_DPLL_DDRPHY_OFFSET
> 	0x014c
> -+#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_DDRPHY
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x014c)
> - #define OMAP4_CM_SHADOW_FREQ_CONFIG1_OFFSET
> 	0x0160
> - #define OMAP4430_CM_SHADOW_FREQ_CONFIG1
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0160)
> - #define OMAP4_CM_SHADOW_FREQ_CONFIG2_OFFSET
> 	0x0164
> -diff --git a/arch/arm/mach-omap2/cm2_44xx.h b/arch/arm/mach-
> omap2/cm2_44xx.h
> -index aa47450..8036a16 100644
> ---- a/arch/arm/mach-omap2/cm2_44xx.h
> -+++ b/arch/arm/mach-omap2/cm2_44xx.h
> -@@ -1,7 +1,7 @@
> - /*
> -  * OMAP44xx CM2 instance offset macros
> -  *
> -- * Copyright (C) 2009-2010 Texas Instruments, Inc.
> -+ * Copyright (C) 2009-2011 Texas Instruments, Inc.
> -  * Copyright (C) 2009-2010 Nokia Corporation
> -  *
> -  * Paul Walmsley (paul at pwsan.com)
> -@@ -40,9 +40,9 @@
> - #define OMAP4430_CM2_CAM_INST		0x1000
> - #define OMAP4430_CM2_DSS_INST		0x1100
> - #define OMAP4430_CM2_GFX_INST		0x1200
> --#define OMAP4430_CM2_L3INIT_INST		0x1300
> -+#define OMAP4430_CM2_L3INIT_INST	0x1300
> - #define OMAP4430_CM2_L4PER_INST		0x1400
> --#define OMAP4430_CM2_CEFUSE_INST		0x1600
> -+#define OMAP4430_CM2_CEFUSE_INST	0x1600
> - #define OMAP4430_CM2_RESTORE_INST	0x1e00
> - #define OMAP4430_CM2_INSTR_INST		0x1f00
> -
> -@@ -65,7 +65,6 @@
> - #define OMAP4430_CM2_L4PER_L4SEC_CDOFFS		0x0180
> - #define OMAP4430_CM2_CEFUSE_CEFUSE_CDOFFS	0x0000
> -
> --
> - /* CM2 */
> -
> - /* CM2.OCP_SOCKET_CM2 register offsets */
> -@@ -121,8 +120,8 @@
> - #define OMAP4430_CM_DIV_M7_DPLL_PER
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x0064)
> - #define OMAP4_CM_SSC_DELTAMSTEP_DPLL_PER_OFFSET
> 	0x0068
> - #define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_PER
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x0068)
> --#define OMAP4_CM_SSC_INSTFREQDIV_DPLL_PER_OFFSET
> 	0x006c
> --#define OMAP4430_CM_SSC_INSTFREQDIV_DPLL_PER
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x006c)
> -+#define OMAP4_CM_SSC_MODFREQDIV_DPLL_PER_OFFSET
> 	0x006c
> -+#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_PER
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x006c)
> - #define OMAP4_CM_CLKMODE_DPLL_USB_OFFSET		0x0080
> - #define OMAP4430_CM_CLKMODE_DPLL_USB
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x0080)
> - #define OMAP4_CM_IDLEST_DPLL_USB_OFFSET
> 	0x0084
> -@@ -135,8 +134,8 @@
> - #define OMAP4430_CM_DIV_M2_DPLL_USB
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x0090)
> - #define OMAP4_CM_SSC_DELTAMSTEP_DPLL_USB_OFFSET
> 	0x00a8
> - #define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_USB
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00a8)
> --#define OMAP4_CM_SSC_INSTFREQDIV_DPLL_USB_OFFSET
> 	0x00ac
> --#define OMAP4430_CM_SSC_INSTFREQDIV_DPLL_USB
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00ac)
> -+#define OMAP4_CM_SSC_MODFREQDIV_DPLL_USB_OFFSET
> 	0x00ac
> -+#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_USB
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00ac)
> - #define OMAP4_CM_CLKDCOLDO_DPLL_USB_OFFSET		0x00b4
> - #define OMAP4430_CM_CLKDCOLDO_DPLL_USB
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00b4)
> - #define OMAP4_CM_CLKMODE_DPLL_UNIPRO_OFFSET
> 	0x00c0
> -@@ -151,8 +150,8 @@
> - #define OMAP4430_CM_DIV_M2_DPLL_UNIPRO
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00d0)
> - #define OMAP4_CM_SSC_DELTAMSTEP_DPLL_UNIPRO_OFFSET
> 	0x00e8
> - #define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_UNIPRO
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00e8)
> --#define OMAP4_CM_SSC_INSTFREQDIV_DPLL_UNIPRO_OFFSET
> 	0x00ec
> --#define OMAP4430_CM_SSC_INSTFREQDIV_DPLL_UNIPRO
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00ec)
> -+#define OMAP4_CM_SSC_MODFREQDIV_DPLL_UNIPRO_OFFSET
> 	0x00ec
> -+#define OMAP4430_CM_SSC_MODFREQDIV_DPLL_UNIPRO
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00ec)
> -
> - /* CM2.ALWAYS_ON_CM2 register offsets */
> - #define OMAP4_CM_ALWON_CLKSTCTRL_OFFSET
> 	0x0000
> -@@ -227,8 +226,8 @@
> - #define OMAP4430_CM_D2D_DYNAMICDEP
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_INST, 0x0508)
> - #define OMAP4_CM_D2D_SAD2D_CLKCTRL_OFFSET		0x0520
> - #define OMAP4430_CM_D2D_SAD2D_CLKCTRL
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_INST, 0x0520)
> --#define OMAP4_CM_D2D_INSTEM_ICR_CLKCTRL_OFFSET
> 	0x0528
> --#define OMAP4430_CM_D2D_INSTEM_ICR_CLKCTRL
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_INST, 0x0528)
> -+#define OMAP4_CM_D2D_MODEM_ICR_CLKCTRL_OFFSET
> 	0x0528
> -+#define OMAP4430_CM_D2D_MODEM_ICR_CLKCTRL
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_INST, 0x0528)
> - #define OMAP4_CM_D2D_SAD2D_FW_CLKCTRL_OFFSET
> 	0x0530
> - #define OMAP4430_CM_D2D_SAD2D_FW_CLKCTRL
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_INST, 0x0530)
> - #define OMAP4_CM_L4CFG_CLKSTCTRL_OFFSET
> 	0x0600
> -diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-
> omap2/prm44xx.h
> -index 67a0d3f..2aec8c8 100644
> ---- a/arch/arm/mach-omap2/prm44xx.h
> -+++ b/arch/arm/mach-omap2/prm44xx.h
> -@@ -31,7 +31,7 @@
> - #define OMAP4430_PRM_BASE		0x4a306000
> -
> - #define OMAP44XX_PRM_REGADDR(inst, reg)				\
> --	OMAP2_L4_IO_ADDRESS(OMAP4430_PRM_BASE +	(inst) + (reg))
> -+	OMAP2_L4_IO_ADDRESS(OMAP4430_PRM_BASE + (inst) + (reg))
> -
> -
> - /* PRM instances */
> -@@ -46,14 +46,14 @@
> - #define OMAP4430_PRM_CAM_INST		0x1000
> - #define OMAP4430_PRM_DSS_INST		0x1100
> - #define OMAP4430_PRM_GFX_INST		0x1200
> --#define OMAP4430_PRM_L3INIT_INST		0x1300
> -+#define OMAP4430_PRM_L3INIT_INST	0x1300
> - #define OMAP4430_PRM_L4PER_INST		0x1400
> --#define OMAP4430_PRM_CEFUSE_INST		0x1600
> -+#define OMAP4430_PRM_CEFUSE_INST	0x1600
> - #define OMAP4430_PRM_WKUP_INST		0x1700
> - #define OMAP4430_PRM_WKUP_CM_INST	0x1800
> - #define OMAP4430_PRM_EMU_INST		0x1900
> --#define OMAP4430_PRM_EMU_CM_INST		0x1a00
> --#define OMAP4430_PRM_DEVICE_INST		0x1b00
> -+#define OMAP4430_PRM_EMU_CM_INST	0x1a00
> -+#define OMAP4430_PRM_DEVICE_INST	0x1b00
> - #define OMAP4430_PRM_INSTR_INST		0x1f00
> -
> - /* PRM clockdomain register offsets (from instance start) */
> -@@ -247,8 +247,8 @@
> - #define OMAP4430_RM_MEMIF_DLL_H_CONTEXT
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_INST, 0x0464)
> - #define OMAP4_RM_D2D_SAD2D_CONTEXT_OFFSET		0x0524
> - #define OMAP4430_RM_D2D_SAD2D_CONTEXT
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_INST, 0x0524)
> --#define OMAP4_RM_D2D_INSTEM_ICR_CONTEXT_OFFSET
> 	0x052c
> --#define OMAP4430_RM_D2D_INSTEM_ICR_CONTEXT
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_INST, 0x052c)
> -+#define OMAP4_RM_D2D_MODEM_ICR_CONTEXT_OFFSET
> 	0x052c
> -+#define OMAP4430_RM_D2D_MODEM_ICR_CONTEXT
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_INST, 0x052c)
> - #define OMAP4_RM_D2D_SAD2D_FW_CONTEXT_OFFSET
> 	0x0534
> - #define OMAP4430_RM_D2D_SAD2D_FW_CONTEXT
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_CORE_INST, 0x0534)
> - #define OMAP4_RM_L4CFG_L4_CFG_CONTEXT_OFFSET
> 	0x0624
> -@@ -713,8 +713,8 @@
> - #define OMAP4430_PRM_VC_VAL_BYPASS
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_INST, 0x00a0)
> - #define OMAP4_PRM_VC_CFG_CHANNEL_OFFSET
> 	0x00a4
> - #define OMAP4430_PRM_VC_CFG_CHANNEL
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_INST, 0x00a4)
> --#define OMAP4_PRM_VC_CFG_I2C_INSTE_OFFSET		0x00a8
> --#define OMAP4430_PRM_VC_CFG_I2C_INSTE
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_INST, 0x00a8)
> -+#define OMAP4_PRM_VC_CFG_I2C_MODE_OFFSET		0x00a8
> -+#define OMAP4430_PRM_VC_CFG_I2C_MODE
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_INST, 0x00a8)
> - #define OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET
> 	0x00ac
> - #define OMAP4430_PRM_VC_CFG_I2C_CLK
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_INST, 0x00ac)
> - #define OMAP4_PRM_SRAM_COUNT_OFFSET			0x00b0
> -@@ -751,8 +751,8 @@
> - #define OMAP4430_PRM_PHASE2A_CNDP
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_INST, 0x00ec)
> - #define OMAP4_PRM_PHASE2B_CNDP_OFFSET
> 	0x00f0
> - #define OMAP4430_PRM_PHASE2B_CNDP
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_INST, 0x00f0)
> --#define OMAP4_PRM_INSTEM_IF_CTRL_OFFSET
> 	0x00f4
> --#define OMAP4430_PRM_INSTEM_IF_CTRL
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_INST, 0x00f4)
> -+#define OMAP4_PRM_MODEM_IF_CTRL_OFFSET
> 	0x00f4
> -+#define OMAP4430_PRM_MODEM_IF_CTRL
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_INST, 0x00f4)
> - #define OMAP4_PRM_VC_ERRST_OFFSET			0x00f8
> - #define OMAP4430_PRM_VC_ERRST
> 	OMAP44XX_PRM_REGADDR(OMAP4430_PRM_DEVICE_INST, 0x00f8)
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0053-OMAP4-prm-
> Remove-wrong-clockdomain-offsets.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0053-OMAP4-prm-Remove-wrong-clockdomain-offsets.patch
> deleted file mode 100644
> index ea6138e..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0053-OMAP4-prm-
> Remove-wrong-clockdomain-offsets.patch
> +++ /dev/null
> @@ -1,50 +0,0 @@
> -From 6066c8802de9f6a1006a8e31aa833615060a2a5b Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:15:04 -0600
> -Subject: [PATCH 053/149] OMAP4: prm: Remove wrong clockdomain offsets
> -
> -The following commit introduced new macros to define an offset
> -per clock domain in an instance.
> -
> -commit e4156ee52fe617c2c2d80b5db993ff4bf07d7c3c
> -
> -    OMAP4: CM instances: add clockdomain register offsets
> -
> -The PRM contains only two clock controls management entities:
> -EMU and WKUP.
> -Remove the other ones.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/prm44xx.h |   12 ------------
> - 1 files changed, 0 insertions(+), 12 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-
> omap2/prm44xx.h
> -index 2aec8c8..6e53120 100644
> ---- a/arch/arm/mach-omap2/prm44xx.h
> -+++ b/arch/arm/mach-omap2/prm44xx.h
> -@@ -57,19 +57,7 @@
> - #define OMAP4430_PRM_INSTR_INST		0x1f00
> -
> - /* PRM clockdomain register offsets (from instance start) */
> --#define OMAP4430_PRM_MPU_MPU_CDOFFS		0x0000
> --#define OMAP4430_PRM_TESLA_TESLA_CDOFFS		0x0000
> --#define OMAP4430_PRM_ABE_ABE_CDOFFS		0x0000
> --#define OMAP4430_PRM_CORE_CORE_CDOFFS		0x0000
> --#define OMAP4430_PRM_IVAHD_IVAHD_CDOFFS		0x0000
> --#define OMAP4430_PRM_CAM_CAM_CDOFFS		0x0000
> --#define OMAP4430_PRM_DSS_DSS_CDOFFS		0x0000
> --#define OMAP4430_PRM_GFX_GFX_CDOFFS		0x0000
> --#define OMAP4430_PRM_L3INIT_L3INIT_CDOFFS	0x0000
> --#define OMAP4430_PRM_L4PER_L4PER_CDOFFS		0x0000
> --#define OMAP4430_PRM_CEFUSE_CEFUSE_CDOFFS	0x0000
> - #define OMAP4430_PRM_WKUP_CM_WKUP_CDOFFS	0x0000
> --#define OMAP4430_PRM_EMU_EMU_CDOFFS		0x0000
> - #define OMAP4430_PRM_EMU_CM_EMU_CDOFFS		0x0000
> -
> - /* OMAP4 specific register offsets */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0054-OMAP4-
> powerdomain-data-Fix-indentation.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0054-OMAP4-powerdomain-data-Fix-indentation.patch
> deleted file mode 100644
> index 93f10b1..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0054-OMAP4-
> powerdomain-data-Fix-indentation.patch
> +++ /dev/null
> @@ -1,109 +0,0 @@
> -From 7845ad0aca7c2976dc4021ed0c080f6605aacf09 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:15:05 -0600
> -Subject: [PATCH 054/149] OMAP4: powerdomain data: Fix indentation
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -Indent flags to be aligned with other fields.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Cc: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -[paul at pwsan.com: split this patch from an earlier patch by Benoît;
> - edited commit message]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/powerdomains44xx_data.c |   18 +++++++++---------
> - 1 files changed, 9 insertions(+), 9 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/powerdomains44xx_data.c
> b/arch/arm/mach-omap2/powerdomains44xx_data.c
> -index c4222c7..3a7e678 100644
> ---- a/arch/arm/mach-omap2/powerdomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/powerdomains44xx_data.c
> -@@ -53,7 +53,7 @@ static struct powerdomain core_44xx_pwrdm = {
> - 		[3] = PWRSTS_ON,	/* ducati_l2ram */
> - 		[4] = PWRSTS_ON,	/* ducati_unicache */
> - 	},
> --	.flags		= PWRDM_HAS_LOWPOWERSTATECHANGE,
> -+	.flags		  = PWRDM_HAS_LOWPOWERSTATECHANGE,
> - };
> -
> - /* gfx_44xx_pwrdm: 3D accelerator power domain */
> -@@ -70,7 +70,7 @@ static struct powerdomain gfx_44xx_pwrdm = {
> - 	.pwrsts_mem_on	= {
> - 		[0] = PWRSTS_ON,	/* gfx_mem */
> - 	},
> --	.flags		= PWRDM_HAS_LOWPOWERSTATECHANGE,
> -+	.flags		  = PWRDM_HAS_LOWPOWERSTATECHANGE,
> - };
> -
> - /* abe_44xx_pwrdm: Audio back end power domain */
> -@@ -90,7 +90,7 @@ static struct powerdomain abe_44xx_pwrdm = {
> - 		[0] = PWRSTS_ON,	/* aessmem */
> - 		[1] = PWRSTS_ON,	/* periphmem */
> - 	},
> --	.flags		= PWRDM_HAS_LOWPOWERSTATECHANGE,
> -+	.flags		  = PWRDM_HAS_LOWPOWERSTATECHANGE,
> - };
> -
> - /* dss_44xx_pwrdm: Display subsystem power domain */
> -@@ -108,7 +108,7 @@ static struct powerdomain dss_44xx_pwrdm = {
> - 	.pwrsts_mem_on	= {
> - 		[0] = PWRSTS_ON,	/* dss_mem */
> - 	},
> --	.flags		= PWRDM_HAS_LOWPOWERSTATECHANGE,
> -+	.flags		  = PWRDM_HAS_LOWPOWERSTATECHANGE,
> - };
> -
> - /* tesla_44xx_pwrdm: Tesla processor power domain */
> -@@ -130,7 +130,7 @@ static struct powerdomain tesla_44xx_pwrdm = {
> - 		[1] = PWRSTS_ON,	/* tesla_l1 */
> - 		[2] = PWRSTS_ON,	/* tesla_l2 */
> - 	},
> --	.flags		= PWRDM_HAS_LOWPOWERSTATECHANGE,
> -+	.flags		  = PWRDM_HAS_LOWPOWERSTATECHANGE,
> - };
> -
> - /* wkup_44xx_pwrdm: Wake-up power domain */
> -@@ -241,7 +241,7 @@ static struct powerdomain ivahd_44xx_pwrdm = {
> - 		[2] = PWRSTS_ON,	/* tcm1_mem */
> - 		[3] = PWRSTS_ON,	/* tcm2_mem */
> - 	},
> --	.flags		= PWRDM_HAS_LOWPOWERSTATECHANGE,
> -+	.flags		  = PWRDM_HAS_LOWPOWERSTATECHANGE,
> - };
> -
> - /* cam_44xx_pwrdm: Camera subsystem power domain */
> -@@ -258,7 +258,7 @@ static struct powerdomain cam_44xx_pwrdm = {
> - 	.pwrsts_mem_on	= {
> - 		[0] = PWRSTS_ON,	/* cam_mem */
> - 	},
> --	.flags		= PWRDM_HAS_LOWPOWERSTATECHANGE,
> -+	.flags		  = PWRDM_HAS_LOWPOWERSTATECHANGE,
> - };
> -
> - /* l3init_44xx_pwrdm: L3 initators pheripherals power domain  */
> -@@ -276,7 +276,7 @@ static struct powerdomain l3init_44xx_pwrdm = {
> - 	.pwrsts_mem_on	= {
> - 		[0] = PWRSTS_ON,	/* l3init_bank1 */
> - 	},
> --	.flags		= PWRDM_HAS_LOWPOWERSTATECHANGE,
> -+	.flags		  = PWRDM_HAS_LOWPOWERSTATECHANGE,
> - };
> -
> - /* l4per_44xx_pwrdm: Target peripherals power domain */
> -@@ -296,7 +296,7 @@ static struct powerdomain l4per_44xx_pwrdm = {
> - 		[0] = PWRSTS_ON,	/* nonretained_bank */
> - 		[1] = PWRSTS_ON,	/* retained_bank */
> - 	},
> --	.flags		= PWRDM_HAS_LOWPOWERSTATECHANGE,
> -+	.flags		  = PWRDM_HAS_LOWPOWERSTATECHANGE,
> - };
> -
> - /*
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0055-OMAP4-cm-
> Remove-RESTORE-macros-to-avoid-access-from-.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0055-OMAP4-cm-Remove-RESTORE-
> macros-to-avoid-access-from-.patch
> deleted file mode 100644
> index a30bfc3..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0055-OMAP4-cm-Remove-
> RESTORE-macros-to-avoid-access-from-.patch
> +++ /dev/null
> @@ -1,1523 +0,0 @@
> -From 8471ffc0eead8b884b6a00462fc57a2018fd9289 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:15:05 -0600
> -Subject: [PATCH 055/149] OMAP4: cm: Remove RESTORE macros to avoid
> access from SW
> -
> -The restore part of the CM is an alias of some regular registers
> -used only during the SAR restore to facilate the dma to write
> -a contiguous set of registers.
> -The registers should never be used by the SW, only the original
> -register have to be used.
> -
> -Remove them from cmX_44xx.h files to avoid anybody to use them by
> -mistake.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Cc: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/cm-regbits-44xx.h |  623 ++++++++++++++-------------
> ------
> - arch/arm/mach-omap2/cm1_44xx.h        |   36 --
> - arch/arm/mach-omap2/cm2_44xx.h        |   50 ---
> - 3 files changed, 254 insertions(+), 455 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/cm-regbits-44xx.h b/arch/arm/mach-
> omap2/cm-regbits-44xx.h
> -index 9d47a05..0e77945 100644
> ---- a/arch/arm/mach-omap2/cm-regbits-44xx.h
> -+++ b/arch/arm/mach-omap2/cm-regbits-44xx.h
> -@@ -22,22 +22,18 @@
> - #ifndef __ARCH_ARM_MACH_OMAP2_CM_REGBITS_44XX_H
> - #define __ARCH_ARM_MACH_OMAP2_CM_REGBITS_44XX_H
> -
> --/*
> -- * Used by CM_L3_1_DYNAMICDEP, CM_L3_1_DYNAMICDEP_RESTORE,
> CM_MPU_DYNAMICDEP,
> -- * CM_TESLA_DYNAMICDEP
> -- */
> -+/* Used by CM_L3_1_DYNAMICDEP, CM_MPU_DYNAMICDEP,
> CM_TESLA_DYNAMICDEP */
> - #define OMAP4430_ABE_DYNDEP_SHIFT				3
> - #define OMAP4430_ABE_DYNDEP_MASK				(1 <<
> 3)
> -
> - /*
> -- * Used by CM_D2D_STATICDEP, CM_D2D_STATICDEP_RESTORE,
> CM_DUCATI_STATICDEP,
> -- * CM_L3INIT_STATICDEP, CM_MPU_STATICDEP, CM_SDMA_STATICDEP,
> -- * CM_SDMA_STATICDEP_RESTORE, CM_TESLA_STATICDEP
> -+ * Used by CM_D2D_STATICDEP, CM_DUCATI_STATICDEP,
> CM_L3INIT_STATICDEP,
> -+ * CM_MPU_STATICDEP, CM_SDMA_STATICDEP, CM_TESLA_STATICDEP
> -  */
> - #define OMAP4430_ABE_STATDEP_SHIFT				3
> - #define OMAP4430_ABE_STATDEP_MASK				(1 <<
> 3)
> -
> --/* Used by CM_L4CFG_DYNAMICDEP, CM_L4CFG_DYNAMICDEP_RESTORE */
> -+/* Used by CM_L4CFG_DYNAMICDEP */
> - #define OMAP4430_ALWONCORE_DYNDEP_SHIFT
> 	16
> - #define OMAP4430_ALWONCORE_DYNDEP_MASK
> 	(1 << 16)
> -
> -@@ -47,14 +43,13 @@
> -
> - /*
> -  * Used by CM_AUTOIDLE_DPLL_ABE, CM_AUTOIDLE_DPLL_CORE,
> -- * CM_AUTOIDLE_DPLL_CORE_RESTORE, CM_AUTOIDLE_DPLL_DDRPHY,
> -- * CM_AUTOIDLE_DPLL_IVA, CM_AUTOIDLE_DPLL_MPU,
> CM_AUTOIDLE_DPLL_PER,
> -- * CM_AUTOIDLE_DPLL_UNIPRO, CM_AUTOIDLE_DPLL_USB
> -+ * CM_AUTOIDLE_DPLL_DDRPHY, CM_AUTOIDLE_DPLL_IVA,
> CM_AUTOIDLE_DPLL_MPU,
> -+ * CM_AUTOIDLE_DPLL_PER, CM_AUTOIDLE_DPLL_UNIPRO,
> CM_AUTOIDLE_DPLL_USB
> -  */
> - #define OMAP4430_AUTO_DPLL_MODE_SHIFT
> 	0
> - #define OMAP4430_AUTO_DPLL_MODE_MASK
> 	(0x7 << 0)
> -
> --/* Used by CM_L4CFG_DYNAMICDEP, CM_L4CFG_DYNAMICDEP_RESTORE */
> -+/* Used by CM_L4CFG_DYNAMICDEP */
> - #define OMAP4430_CEFUSE_DYNDEP_SHIFT				17
> - #define OMAP4430_CEFUSE_DYNDEP_MASK				(1 <<
> 17)
> -
> -@@ -82,15 +77,15 @@
> - #define OMAP4430_CLKACTIVITY_ABE_X2_CLK_SHIFT			8
> - #define OMAP4430_CLKACTIVITY_ABE_X2_CLK_MASK			(1 <<
> 8)
> -
> --/* Used by CM_MEMIF_CLKSTCTRL, CM_MEMIF_CLKSTCTRL_RESTORE */
> -+/* Used by CM_MEMIF_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_ASYNC_DLL_CLK_SHIFT		11
> - #define OMAP4430_CLKACTIVITY_ASYNC_DLL_CLK_MASK
> 	(1 << 11)
> -
> --/* Used by CM_MEMIF_CLKSTCTRL, CM_MEMIF_CLKSTCTRL_RESTORE */
> -+/* Used by CM_MEMIF_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_ASYNC_PHY1_CLK_SHIFT		12
> - #define OMAP4430_CLKACTIVITY_ASYNC_PHY1_CLK_MASK		(1 <<
> 12)
> -
> --/* Used by CM_MEMIF_CLKSTCTRL, CM_MEMIF_CLKSTCTRL_RESTORE */
> -+/* Used by CM_MEMIF_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_ASYNC_PHY2_CLK_SHIFT		13
> - #define OMAP4430_CLKACTIVITY_ASYNC_PHY2_CLK_MASK		(1 <<
> 13)
> -
> -@@ -110,31 +105,31 @@
> - #define OMAP4430_CLKACTIVITY_CUST_EFUSE_SYS_CLK_SHIFT
> 	9
> - #define OMAP4430_CLKACTIVITY_CUST_EFUSE_SYS_CLK_MASK
> 	(1 << 9)
> -
> --/* Used by CM_MEMIF_CLKSTCTRL, CM_MEMIF_CLKSTCTRL_RESTORE */
> -+/* Used by CM_MEMIF_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_DLL_CLK_SHIFT			9
> - #define OMAP4430_CLKACTIVITY_DLL_CLK_MASK			(1 <<
> 9)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_DMT10_GFCLK_SHIFT
> 	9
> - #define OMAP4430_CLKACTIVITY_DMT10_GFCLK_MASK
> 	(1 << 9)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_DMT11_GFCLK_SHIFT
> 	10
> - #define OMAP4430_CLKACTIVITY_DMT11_GFCLK_MASK
> 	(1 << 10)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_DMT2_GFCLK_SHIFT			11
> - #define OMAP4430_CLKACTIVITY_DMT2_GFCLK_MASK
> 	(1 << 11)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_DMT3_GFCLK_SHIFT			12
> - #define OMAP4430_CLKACTIVITY_DMT3_GFCLK_MASK
> 	(1 << 12)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_DMT4_GFCLK_SHIFT			13
> - #define OMAP4430_CLKACTIVITY_DMT4_GFCLK_MASK
> 	(1 << 13)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_DMT9_GFCLK_SHIFT			14
> - #define OMAP4430_CLKACTIVITY_DMT9_GFCLK_MASK
> 	(1 << 14)
> -
> -@@ -158,7 +153,7 @@
> - #define OMAP4430_CLKACTIVITY_FDIF_GFCLK_SHIFT			10
> - #define OMAP4430_CLKACTIVITY_FDIF_GFCLK_MASK			(1 <<
> 10)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_FUNC_12M_GFCLK_SHIFT		15
> - #define OMAP4430_CLKACTIVITY_FUNC_12M_GFCLK_MASK		(1 <<
> 15)
> -
> -@@ -170,55 +165,55 @@
> - #define OMAP4430_CLKACTIVITY_HDMI_PHY_48MHZ_GFCLK_SHIFT
> 	11
> - #define OMAP4430_CLKACTIVITY_HDMI_PHY_48MHZ_GFCLK_MASK
> 	(1 << 11)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_HSIC_P1_480M_GFCLK_SHIFT
> 	20
> - #define OMAP4430_CLKACTIVITY_HSIC_P1_480M_GFCLK_MASK
> 	(1 << 20)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_HSIC_P1_GFCLK_SHIFT		26
> - #define OMAP4430_CLKACTIVITY_HSIC_P1_GFCLK_MASK
> 	(1 << 26)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_HSIC_P2_480M_GFCLK_SHIFT
> 	21
> - #define OMAP4430_CLKACTIVITY_HSIC_P2_480M_GFCLK_MASK
> 	(1 << 21)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_HSIC_P2_GFCLK_SHIFT		27
> - #define OMAP4430_CLKACTIVITY_HSIC_P2_GFCLK_MASK
> 	(1 << 27)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_INIT_48MC_GFCLK_SHIFT		13
> - #define OMAP4430_CLKACTIVITY_INIT_48MC_GFCLK_MASK		(1 <<
> 13)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_INIT_48M_GFCLK_SHIFT		12
> - #define OMAP4430_CLKACTIVITY_INIT_48M_GFCLK_MASK		(1 <<
> 12)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_INIT_60M_P1_GFCLK_SHIFT		28
> - #define OMAP4430_CLKACTIVITY_INIT_60M_P1_GFCLK_MASK		(1 <<
> 28)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_INIT_60M_P2_GFCLK_SHIFT		29
> - #define OMAP4430_CLKACTIVITY_INIT_60M_P2_GFCLK_MASK		(1 <<
> 29)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_INIT_96M_GFCLK_SHIFT		11
> - #define OMAP4430_CLKACTIVITY_INIT_96M_GFCLK_MASK		(1 <<
> 11)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_INIT_HSI_GFCLK_SHIFT		16
> - #define OMAP4430_CLKACTIVITY_INIT_HSI_GFCLK_MASK		(1 <<
> 16)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_INIT_HSMMC1_GFCLK_SHIFT
> 	17
> - #define OMAP4430_CLKACTIVITY_INIT_HSMMC1_GFCLK_MASK
> 	(1 << 17)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_INIT_HSMMC2_GFCLK_SHIFT
> 	18
> - #define OMAP4430_CLKACTIVITY_INIT_HSMMC2_GFCLK_MASK
> 	(1 << 18)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_INIT_HSMMC6_GFCLK_SHIFT
> 	19
> - #define OMAP4430_CLKACTIVITY_INIT_HSMMC6_GFCLK_MASK
> 	(1 << 19)
> -
> -@@ -234,11 +229,11 @@
> - #define OMAP4430_CLKACTIVITY_L3X2_D2D_GICLK_SHIFT		10
> - #define OMAP4430_CLKACTIVITY_L3X2_D2D_GICLK_MASK		(1 <<
> 10)
> -
> --/* Used by CM_L3_1_CLKSTCTRL, CM_L3_1_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3_1_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_L3_1_GICLK_SHIFT			8
> - #define OMAP4430_CLKACTIVITY_L3_1_GICLK_MASK			(1 <<
> 8)
> -
> --/* Used by CM_L3_2_CLKSTCTRL, CM_L3_2_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3_2_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_L3_2_GICLK_SHIFT			8
> - #define OMAP4430_CLKACTIVITY_L3_2_GICLK_MASK			(1 <<
> 8)
> -
> -@@ -254,7 +249,7 @@
> - #define OMAP4430_CLKACTIVITY_L3_DSS_GICLK_SHIFT
> 	8
> - #define OMAP4430_CLKACTIVITY_L3_DSS_GICLK_MASK
> 	(1 << 8)
> -
> --/* Used by CM_MEMIF_CLKSTCTRL, CM_MEMIF_CLKSTCTRL_RESTORE */
> -+/* Used by CM_MEMIF_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_L3_EMIF_GICLK_SHIFT		8
> - #define OMAP4430_CLKACTIVITY_L3_EMIF_GICLK_MASK
> 	(1 << 8)
> -
> -@@ -262,7 +257,7 @@
> - #define OMAP4430_CLKACTIVITY_L3_GFX_GICLK_SHIFT
> 	8
> - #define OMAP4430_CLKACTIVITY_L3_GFX_GICLK_MASK
> 	(1 << 8)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_L3_INIT_GICLK_SHIFT		8
> - #define OMAP4430_CLKACTIVITY_L3_INIT_GICLK_MASK
> 	(1 << 8)
> -
> -@@ -282,7 +277,7 @@
> - #define OMAP4430_CLKACTIVITY_L4_CEFUSE_GICLK_SHIFT		8
> - #define OMAP4430_CLKACTIVITY_L4_CEFUSE_GICLK_MASK		(1 <<
> 8)
> -
> --/* Used by CM_L4CFG_CLKSTCTRL, CM_L4CFG_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4CFG_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_L4_CFG_GICLK_SHIFT
> 	8
> - #define OMAP4430_CLKACTIVITY_L4_CFG_GICLK_MASK
> 	(1 << 8)
> -
> -@@ -290,11 +285,11 @@
> - #define OMAP4430_CLKACTIVITY_L4_D2D_GICLK_SHIFT
> 	9
> - #define OMAP4430_CLKACTIVITY_L4_D2D_GICLK_MASK
> 	(1 << 9)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_L4_INIT_GICLK_SHIFT		9
> - #define OMAP4430_CLKACTIVITY_L4_INIT_GICLK_MASK
> 	(1 << 9)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_L4_PER_GICLK_SHIFT
> 	8
> - #define OMAP4430_CLKACTIVITY_L4_PER_GICLK_MASK
> 	(1 << 8)
> -
> -@@ -306,7 +301,7 @@
> - #define OMAP4430_CLKACTIVITY_L4_WKUP_GICLK_SHIFT		12
> - #define OMAP4430_CLKACTIVITY_L4_WKUP_GICLK_MASK
> 	(1 << 12)
> -
> --/* Used by CM_MPU_CLKSTCTRL, CM_MPU_CLKSTCTRL_RESTORE */
> -+/* Used by CM_MPU_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_MPU_DPLL_CLK_SHIFT
> 	8
> - #define OMAP4430_CLKACTIVITY_MPU_DPLL_CLK_MASK
> 	(1 << 8)
> -
> -@@ -314,43 +309,43 @@
> - #define OMAP4430_CLKACTIVITY_OCP_ABE_GICLK_SHIFT		9
> - #define OMAP4430_CLKACTIVITY_OCP_ABE_GICLK_MASK
> 	(1 << 9)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_PER_24MC_GFCLK_SHIFT		16
> - #define OMAP4430_CLKACTIVITY_PER_24MC_GFCLK_MASK		(1 <<
> 16)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_PER_32K_GFCLK_SHIFT		17
> - #define OMAP4430_CLKACTIVITY_PER_32K_GFCLK_MASK
> 	(1 << 17)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_PER_48M_GFCLK_SHIFT		18
> - #define OMAP4430_CLKACTIVITY_PER_48M_GFCLK_MASK
> 	(1 << 18)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_PER_96M_GFCLK_SHIFT		19
> - #define OMAP4430_CLKACTIVITY_PER_96M_GFCLK_MASK
> 	(1 << 19)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_PER_ABE_24M_GFCLK_SHIFT
> 	25
> - #define OMAP4430_CLKACTIVITY_PER_ABE_24M_GFCLK_MASK
> 	(1 << 25)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_PER_MCASP2_GFCLK_SHIFT		20
> - #define OMAP4430_CLKACTIVITY_PER_MCASP2_GFCLK_MASK		(1 <<
> 20)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_PER_MCASP3_GFCLK_SHIFT		21
> - #define OMAP4430_CLKACTIVITY_PER_MCASP3_GFCLK_MASK		(1 <<
> 21)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_PER_MCBSP4_GFCLK_SHIFT		22
> - #define OMAP4430_CLKACTIVITY_PER_MCBSP4_GFCLK_MASK		(1 <<
> 22)
> -
> --/* Used by CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L4PER_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_PER_SYS_GFCLK_SHIFT		24
> - #define OMAP4430_CLKACTIVITY_PER_SYS_GFCLK_MASK
> 	(1 << 24)
> -
> --/* Used by CM_MEMIF_CLKSTCTRL, CM_MEMIF_CLKSTCTRL_RESTORE */
> -+/* Used by CM_MEMIF_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_PHY_ROOT_CLK_SHIFT
> 	10
> - #define OMAP4430_CLKACTIVITY_PHY_ROOT_CLK_MASK
> 	(1 << 10)
> -
> -@@ -378,27 +373,27 @@
> - #define OMAP4430_CLKACTIVITY_TESLA_ROOT_CLK_SHIFT		8
> - #define OMAP4430_CLKACTIVITY_TESLA_ROOT_CLK_MASK		(1 <<
> 8)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_TLL_CH0_GFCLK_SHIFT		22
> - #define OMAP4430_CLKACTIVITY_TLL_CH0_GFCLK_MASK
> 	(1 << 22)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_TLL_CH1_GFCLK_SHIFT		23
> - #define OMAP4430_CLKACTIVITY_TLL_CH1_GFCLK_MASK
> 	(1 << 23)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_TLL_CH2_GFCLK_SHIFT		24
> - #define OMAP4430_CLKACTIVITY_TLL_CH2_GFCLK_MASK
> 	(1 << 24)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_UNIPRO_DPLL_CLK_SHIFT		10
> - #define OMAP4430_CLKACTIVITY_UNIPRO_DPLL_CLK_MASK		(1 <<
> 10)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_USB_DPLL_CLK_SHIFT
> 	14
> - #define OMAP4430_CLKACTIVITY_USB_DPLL_CLK_MASK
> 	(1 << 14)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_USB_DPLL_HS_CLK_SHIFT		15
> - #define OMAP4430_CLKACTIVITY_USB_DPLL_HS_CLK_MASK		(1 <<
> 15)
> -
> -@@ -406,11 +401,11 @@
> - #define OMAP4430_CLKACTIVITY_USIM_GFCLK_SHIFT			10
> - #define OMAP4430_CLKACTIVITY_USIM_GFCLK_MASK			(1 <<
> 10)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_UTMI_P3_GFCLK_SHIFT		30
> - #define OMAP4430_CLKACTIVITY_UTMI_P3_GFCLK_MASK
> 	(1 << 30)
> -
> --/* Used by CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE */
> -+/* Used by CM_L3INIT_CLKSTCTRL */
> - #define OMAP4430_CLKACTIVITY_UTMI_ROOT_GFCLK_SHIFT		25
> - #define OMAP4430_CLKACTIVITY_UTMI_ROOT_GFCLK_MASK		(1 <<
> 25)
> -
> -@@ -432,7 +427,7 @@
> -
> - /*
> -  * Renamed from CLKSEL Used by CM_ABE_DSS_SYS_CLKSEL,
> CM_ABE_PLL_REF_CLKSEL,
> -- * CM_L4_WKUP_CLKSEL, CM_CLKSEL_DUCATI_ISS_ROOT,
> CM_CLKSEL_USB_60MHZ
> -+ * CM_CLKSEL_DUCATI_ISS_ROOT, CM_CLKSEL_USB_60MHZ,
> CM_L4_WKUP_CLKSEL
> -  */
> - #define OMAP4430_CLKSEL_0_0_SHIFT				0
> - #define OMAP4430_CLKSEL_0_0_MASK				(1 <<
> 0)
> -@@ -453,14 +448,11 @@
> - #define OMAP4430_CLKSEL_AESS_FCLK_SHIFT				24
> - #define OMAP4430_CLKSEL_AESS_FCLK_MASK
> 	(1 << 24)
> -
> --/* Used by CM_CLKSEL_CORE, CM_CLKSEL_CORE_RESTORE */
> -+/* Used by CM_CLKSEL_CORE */
> - #define OMAP4430_CLKSEL_CORE_SHIFT				0
> - #define OMAP4430_CLKSEL_CORE_MASK				(1 <<
> 0)
> -
> --/*
> -- * Renamed from CLKSEL_CORE Used by
> CM_SHADOW_FREQ_CONFIG2_RESTORE,
> -- * CM_SHADOW_FREQ_CONFIG2
> -- */
> -+/* Renamed from CLKSEL_CORE Used by CM_SHADOW_FREQ_CONFIG2 */
> - #define OMAP4430_CLKSEL_CORE_1_1_SHIFT				1
> - #define OMAP4430_CLKSEL_CORE_1_1_MASK				(1 <<
> 1)
> -
> -@@ -484,18 +476,15 @@
> - #define OMAP4430_CLKSEL_INTERNAL_SOURCE_CM1_ABE_DMIC_SHIFT
> 	26
> - #define OMAP4430_CLKSEL_INTERNAL_SOURCE_CM1_ABE_DMIC_MASK
> 	(0x3 << 26)
> -
> --/* Used by CM_CLKSEL_CORE, CM_CLKSEL_CORE_RESTORE */
> -+/* Used by CM_CLKSEL_CORE */
> - #define OMAP4430_CLKSEL_L3_SHIFT				4
> - #define OMAP4430_CLKSEL_L3_MASK					(1 <<
> 4)
> -
> --/*
> -- * Renamed from CLKSEL_L3 Used by
> CM_SHADOW_FREQ_CONFIG2_RESTORE,
> -- * CM_SHADOW_FREQ_CONFIG2
> -- */
> -+/* Renamed from CLKSEL_L3 Used by CM_SHADOW_FREQ_CONFIG2 */
> - #define OMAP4430_CLKSEL_L3_SHADOW_SHIFT
> 	2
> - #define OMAP4430_CLKSEL_L3_SHADOW_MASK
> 	(1 << 2)
> -
> --/* Used by CM_CLKSEL_CORE, CM_CLKSEL_CORE_RESTORE */
> -+/* Used by CM_CLKSEL_CORE */
> - #define OMAP4430_CLKSEL_L4_SHIFT				8
> - #define OMAP4430_CLKSEL_L4_MASK					(1 <<
> 8)
> -
> -@@ -526,11 +515,11 @@
> - #define OMAP4430_CLKSEL_SOURCE_24_24_SHIFT			24
> - #define OMAP4430_CLKSEL_SOURCE_24_24_MASK			(1 <<
> 24)
> -
> --/* Used by CM_L3INIT_USB_HOST_CLKCTRL,
> CM_L3INIT_USB_HOST_CLKCTRL_RESTORE */
> -+/* Used by CM_L3INIT_USB_HOST_CLKCTRL */
> - #define OMAP4430_CLKSEL_UTMI_P1_SHIFT				24
> - #define OMAP4430_CLKSEL_UTMI_P1_MASK				(1 <<
> 24)
> -
> --/* Used by CM_L3INIT_USB_HOST_CLKCTRL,
> CM_L3INIT_USB_HOST_CLKCTRL_RESTORE */
> -+/* Used by CM_L3INIT_USB_HOST_CLKCTRL */
> - #define OMAP4430_CLKSEL_UTMI_P2_SHIFT				25
> - #define OMAP4430_CLKSEL_UTMI_P2_MASK				(1 <<
> 25)
> -
> -@@ -538,13 +527,10 @@
> -  * Used by CM1_ABE_CLKSTCTRL, CM_ALWON_CLKSTCTRL,
> CM_CAM_CLKSTCTRL,
> -  * CM_CEFUSE_CLKSTCTRL, CM_D2D_CLKSTCTRL, CM_DSS_CLKSTCTRL,
> -  * CM_DUCATI_CLKSTCTRL, CM_EMU_CLKSTCTRL, CM_GFX_CLKSTCTRL,
> CM_IVAHD_CLKSTCTRL,
> -- * CM_L3INIT_CLKSTCTRL, CM_L3INIT_CLKSTCTRL_RESTORE,
> CM_L3INSTR_CLKSTCTRL,
> -- * CM_L3_1_CLKSTCTRL, CM_L3_1_CLKSTCTRL_RESTORE,
> CM_L3_2_CLKSTCTRL,
> -- * CM_L3_2_CLKSTCTRL_RESTORE, CM_L4CFG_CLKSTCTRL,
> CM_L4CFG_CLKSTCTRL_RESTORE,
> -- * CM_L4PER_CLKSTCTRL, CM_L4PER_CLKSTCTRL_RESTORE,
> CM_L4SEC_CLKSTCTRL,
> -- * CM_MEMIF_CLKSTCTRL, CM_MEMIF_CLKSTCTRL_RESTORE,
> CM_MPU_CLKSTCTRL,
> -- * CM_MPU_CLKSTCTRL_RESTORE, CM_SDMA_CLKSTCTRL,
> CM_TESLA_CLKSTCTRL,
> -- * CM_WKUP_CLKSTCTRL
> -+ * CM_L3INIT_CLKSTCTRL, CM_L3INSTR_CLKSTCTRL, CM_L3_1_CLKSTCTRL,
> -+ * CM_L3_2_CLKSTCTRL, CM_L4CFG_CLKSTCTRL, CM_L4PER_CLKSTCTRL,
> -+ * CM_L4SEC_CLKSTCTRL, CM_MEMIF_CLKSTCTRL, CM_MPU_CLKSTCTRL,
> CM_SDMA_CLKSTCTRL,
> -+ * CM_TESLA_CLKSTCTRL, CM_WKUP_CLKSTCTRL
> -  */
> - #define OMAP4430_CLKTRCTRL_SHIFT				0
> - #define OMAP4430_CLKTRCTRL_MASK					(0x3
> << 0)
> -@@ -561,10 +547,7 @@
> - #define OMAP4430_CUSTOM_SHIFT					6
> - #define OMAP4430_CUSTOM_MASK					(0x3
> << 6)
> -
> --/*
> -- * Used by CM_L3_2_DYNAMICDEP, CM_L3_2_DYNAMICDEP_RESTORE,
> CM_L4CFG_DYNAMICDEP,
> -- * CM_L4CFG_DYNAMICDEP_RESTORE
> -- */
> -+/* Used by CM_L3_2_DYNAMICDEP, CM_L4CFG_DYNAMICDEP */
> - #define OMAP4430_D2D_DYNDEP_SHIFT				18
> - #define OMAP4430_D2D_DYNDEP_MASK				(1 <<
> 18)
> -
> -@@ -574,31 +557,29 @@
> -
> - /*
> -  * Used by CM_SSC_DELTAMSTEP_DPLL_ABE,
> CM_SSC_DELTAMSTEP_DPLL_CORE,
> -- * CM_SSC_DELTAMSTEP_DPLL_CORE_RESTORE,
> CM_SSC_DELTAMSTEP_DPLL_DDRPHY,
> -- * CM_SSC_DELTAMSTEP_DPLL_IVA, CM_SSC_DELTAMSTEP_DPLL_MPU,
> -- * CM_SSC_DELTAMSTEP_DPLL_PER, CM_SSC_DELTAMSTEP_DPLL_UNIPRO,
> -- * CM_SSC_DELTAMSTEP_DPLL_USB
> -+ * CM_SSC_DELTAMSTEP_DPLL_DDRPHY, CM_SSC_DELTAMSTEP_DPLL_IVA,
> -+ * CM_SSC_DELTAMSTEP_DPLL_MPU, CM_SSC_DELTAMSTEP_DPLL_PER,
> -+ * CM_SSC_DELTAMSTEP_DPLL_UNIPRO, CM_SSC_DELTAMSTEP_DPLL_USB
> -  */
> - #define OMAP4430_DELTAMSTEP_SHIFT				0
> - #define OMAP4430_DELTAMSTEP_MASK
> 	(0xfffff << 0)
> -
> --/* Used by CM_SHADOW_FREQ_CONFIG1,
> CM_SHADOW_FREQ_CONFIG1_RESTORE */
> --#define OMAP4430_DLL_OVERRIDE_SHIFT				2
> --#define OMAP4430_DLL_OVERRIDE_MASK				(1 <<
> 2)
> -+/* Used by CM_DLL_CTRL */
> -+#define OMAP4430_DLL_OVERRIDE_SHIFT				0
> -+#define OMAP4430_DLL_OVERRIDE_MASK				(1 <<
> 0)
> -
> --/* Renamed from DLL_OVERRIDE Used by CM_DLL_CTRL */
> --#define OMAP4430_DLL_OVERRIDE_0_0_SHIFT
> 	0
> --#define OMAP4430_DLL_OVERRIDE_0_0_MASK
> 	(1 << 0)
> -+/* Renamed from DLL_OVERRIDE Used by CM_SHADOW_FREQ_CONFIG1 */
> -+#define OMAP4430_DLL_OVERRIDE_2_2_SHIFT
> 	2
> -+#define OMAP4430_DLL_OVERRIDE_2_2_MASK
> 	(1 << 2)
> -
> --/* Used by CM_SHADOW_FREQ_CONFIG1,
> CM_SHADOW_FREQ_CONFIG1_RESTORE */
> -+/* Used by CM_SHADOW_FREQ_CONFIG1 */
> - #define OMAP4430_DLL_RESET_SHIFT				3
> - #define OMAP4430_DLL_RESET_MASK					(1 <<
> 3)
> -
> - /*
> -- * Used by CM_CLKSEL_DPLL_ABE, CM_CLKSEL_DPLL_CORE,
> -- * CM_CLKSEL_DPLL_CORE_RESTORE, CM_CLKSEL_DPLL_DDRPHY,
> CM_CLKSEL_DPLL_IVA,
> -- * CM_CLKSEL_DPLL_MPU, CM_CLKSEL_DPLL_PER,
> CM_CLKSEL_DPLL_UNIPRO,
> -- * CM_CLKSEL_DPLL_USB
> -+ * Used by CM_CLKSEL_DPLL_ABE, CM_CLKSEL_DPLL_CORE,
> CM_CLKSEL_DPLL_DDRPHY,
> -+ * CM_CLKSEL_DPLL_IVA, CM_CLKSEL_DPLL_MPU, CM_CLKSEL_DPLL_PER,
> -+ * CM_CLKSEL_DPLL_UNIPRO, CM_CLKSEL_DPLL_USB
> -  */
> - #define OMAP4430_DPLL_BYP_CLKSEL_SHIFT				23
> - #define OMAP4430_DPLL_BYP_CLKSEL_MASK				(1 <<
> 23)
> -@@ -607,28 +588,19 @@
> - #define OMAP4430_DPLL_CLKDCOLDO_GATE_CTRL_SHIFT
> 	8
> - #define OMAP4430_DPLL_CLKDCOLDO_GATE_CTRL_MASK
> 	(1 << 8)
> -
> --/* Used by CM_CLKSEL_DPLL_CORE, CM_CLKSEL_DPLL_CORE_RESTORE */
> -+/* Used by CM_CLKSEL_DPLL_CORE */
> - #define OMAP4430_DPLL_CLKOUTHIF_CLKSEL_SHIFT			20
> - #define OMAP4430_DPLL_CLKOUTHIF_CLKSEL_MASK			(1 <<
> 20)
> -
> --/*
> -- * Used by CM_DIV_M3_DPLL_ABE, CM_DIV_M3_DPLL_CORE,
> -- * CM_DIV_M3_DPLL_CORE_RESTORE, CM_DIV_M3_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M3_DPLL_ABE, CM_DIV_M3_DPLL_CORE,
> CM_DIV_M3_DPLL_PER */
> - #define OMAP4430_DPLL_CLKOUTHIF_DIV_SHIFT			0
> - #define OMAP4430_DPLL_CLKOUTHIF_DIV_MASK			(0x1f
> << 0)
> -
> --/*
> -- * Used by CM_DIV_M3_DPLL_ABE, CM_DIV_M3_DPLL_CORE,
> -- * CM_DIV_M3_DPLL_CORE_RESTORE, CM_DIV_M3_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M3_DPLL_ABE, CM_DIV_M3_DPLL_CORE,
> CM_DIV_M3_DPLL_PER */
> - #define OMAP4430_DPLL_CLKOUTHIF_DIVCHACK_SHIFT
> 	5
> - #define OMAP4430_DPLL_CLKOUTHIF_DIVCHACK_MASK
> 	(1 << 5)
> -
> --/*
> -- * Used by CM_DIV_M3_DPLL_ABE, CM_DIV_M3_DPLL_CORE,
> -- * CM_DIV_M3_DPLL_CORE_RESTORE, CM_DIV_M3_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M3_DPLL_ABE, CM_DIV_M3_DPLL_CORE,
> CM_DIV_M3_DPLL_PER */
> - #define OMAP4430_DPLL_CLKOUTHIF_GATE_CTRL_SHIFT
> 	8
> - #define OMAP4430_DPLL_CLKOUTHIF_GATE_CTRL_MASK
> 	(1 << 8)
> -
> -@@ -637,9 +609,8 @@
> - #define OMAP4430_DPLL_CLKOUTX2_GATE_CTRL_MASK
> 	(1 << 10)
> -
> - /*
> -- * Used by CM_DIV_M2_DPLL_ABE, CM_DIV_M2_DPLL_CORE,
> -- * CM_DIV_M2_DPLL_CORE_RESTORE, CM_DIV_M2_DPLL_DDRPHY,
> CM_DIV_M2_DPLL_MPU,
> -- * CM_DIV_M2_DPLL_PER, CM_DIV_M2_DPLL_UNIPRO
> -+ * Used by CM_DIV_M2_DPLL_ABE, CM_DIV_M2_DPLL_CORE,
> CM_DIV_M2_DPLL_DDRPHY,
> -+ * CM_DIV_M2_DPLL_MPU, CM_DIV_M2_DPLL_PER,
> CM_DIV_M2_DPLL_UNIPRO
> -  */
> - #define OMAP4430_DPLL_CLKOUT_DIV_SHIFT				0
> - #define OMAP4430_DPLL_CLKOUT_DIV_MASK				(0x1f
> << 0)
> -@@ -649,9 +620,8 @@
> - #define OMAP4430_DPLL_CLKOUT_DIV_0_6_MASK			(0x7f
> << 0)
> -
> - /*
> -- * Used by CM_DIV_M2_DPLL_ABE, CM_DIV_M2_DPLL_CORE,
> -- * CM_DIV_M2_DPLL_CORE_RESTORE, CM_DIV_M2_DPLL_DDRPHY,
> CM_DIV_M2_DPLL_MPU,
> -- * CM_DIV_M2_DPLL_PER, CM_DIV_M2_DPLL_UNIPRO
> -+ * Used by CM_DIV_M2_DPLL_ABE, CM_DIV_M2_DPLL_CORE,
> CM_DIV_M2_DPLL_DDRPHY,
> -+ * CM_DIV_M2_DPLL_MPU, CM_DIV_M2_DPLL_PER,
> CM_DIV_M2_DPLL_UNIPRO
> -  */
> - #define OMAP4430_DPLL_CLKOUT_DIVCHACK_SHIFT			5
> - #define OMAP4430_DPLL_CLKOUT_DIVCHACK_MASK			(1 <<
> 5)
> -@@ -661,29 +631,28 @@
> - #define OMAP4430_DPLL_CLKOUT_DIVCHACK_M2_USB_MASK
> 	(1 << 7)
> -
> - /*
> -- * Used by CM_DIV_M2_DPLL_ABE, CM_DIV_M2_DPLL_CORE,
> -- * CM_DIV_M2_DPLL_CORE_RESTORE, CM_DIV_M2_DPLL_DDRPHY,
> CM_DIV_M2_DPLL_MPU,
> -- * CM_DIV_M2_DPLL_PER, CM_DIV_M2_DPLL_USB
> -+ * Used by CM_DIV_M2_DPLL_ABE, CM_DIV_M2_DPLL_CORE,
> CM_DIV_M2_DPLL_DDRPHY,
> -+ * CM_DIV_M2_DPLL_MPU, CM_DIV_M2_DPLL_PER,
> CM_DIV_M2_DPLL_USB
> -  */
> - #define OMAP4430_DPLL_CLKOUT_GATE_CTRL_SHIFT			8
> - #define OMAP4430_DPLL_CLKOUT_GATE_CTRL_MASK			(1 <<
> 8)
> -
> --/* Used by CM_SHADOW_FREQ_CONFIG1,
> CM_SHADOW_FREQ_CONFIG1_RESTORE */
> -+/* Used by CM_SHADOW_FREQ_CONFIG1 */
> - #define OMAP4430_DPLL_CORE_DPLL_EN_SHIFT			8
> - #define OMAP4430_DPLL_CORE_DPLL_EN_MASK
> 	(0x7 << 8)
> -
> --/* Used by CM_SHADOW_FREQ_CONFIG1,
> CM_SHADOW_FREQ_CONFIG1_RESTORE */
> -+/* Used by CM_SHADOW_FREQ_CONFIG1 */
> - #define OMAP4430_DPLL_CORE_M2_DIV_SHIFT
> 	11
> - #define OMAP4430_DPLL_CORE_M2_DIV_MASK
> 	(0x1f << 11)
> -
> --/* Used by CM_SHADOW_FREQ_CONFIG2,
> CM_SHADOW_FREQ_CONFIG2_RESTORE */
> -+/* Used by CM_SHADOW_FREQ_CONFIG2 */
> - #define OMAP4430_DPLL_CORE_M5_DIV_SHIFT
> 	3
> - #define OMAP4430_DPLL_CORE_M5_DIV_MASK
> 	(0x1f << 3)
> -
> - /*
> -- * Used by CM_CLKSEL_DPLL_ABE, CM_CLKSEL_DPLL_CORE,
> -- * CM_CLKSEL_DPLL_CORE_RESTORE, CM_CLKSEL_DPLL_DDRPHY,
> CM_CLKSEL_DPLL_IVA,
> -- * CM_CLKSEL_DPLL_MPU, CM_CLKSEL_DPLL_PER,
> CM_CLKSEL_DPLL_UNIPRO
> -+ * Used by CM_CLKSEL_DPLL_ABE, CM_CLKSEL_DPLL_CORE,
> CM_CLKSEL_DPLL_DDRPHY,
> -+ * CM_CLKSEL_DPLL_IVA, CM_CLKSEL_DPLL_MPU, CM_CLKSEL_DPLL_PER,
> -+ * CM_CLKSEL_DPLL_UNIPRO
> -  */
> - #define OMAP4430_DPLL_DIV_SHIFT					0
> - #define OMAP4430_DPLL_DIV_MASK					(0x7f
> << 0)
> -@@ -693,9 +662,8 @@
> - #define OMAP4430_DPLL_DIV_0_7_MASK				(0xff
> << 0)
> -
> - /*
> -- * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> -- * CM_CLKMODE_DPLL_CORE_RESTORE, CM_CLKMODE_DPLL_DDRPHY,
> CM_CLKMODE_DPLL_IVA,
> -- * CM_CLKMODE_DPLL_MPU, CM_CLKMODE_DPLL_PER
> -+ * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> CM_CLKMODE_DPLL_DDRPHY,
> -+ * CM_CLKMODE_DPLL_IVA, CM_CLKMODE_DPLL_MPU,
> CM_CLKMODE_DPLL_PER
> -  */
> - #define OMAP4430_DPLL_DRIFTGUARD_EN_SHIFT			8
> - #define OMAP4430_DPLL_DRIFTGUARD_EN_MASK			(1 <<
> 8)
> -@@ -705,26 +673,25 @@
> - #define OMAP4430_DPLL_DRIFTGUARD_EN_3_3_MASK
> 	(1 << 3)
> -
> - /*
> -- * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> -- * CM_CLKMODE_DPLL_CORE_RESTORE, CM_CLKMODE_DPLL_DDRPHY,
> CM_CLKMODE_DPLL_IVA,
> -- * CM_CLKMODE_DPLL_MPU, CM_CLKMODE_DPLL_PER,
> CM_CLKMODE_DPLL_UNIPRO,
> -- * CM_CLKMODE_DPLL_USB
> -+ * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> CM_CLKMODE_DPLL_DDRPHY,
> -+ * CM_CLKMODE_DPLL_IVA, CM_CLKMODE_DPLL_MPU,
> CM_CLKMODE_DPLL_PER,
> -+ * CM_CLKMODE_DPLL_UNIPRO, CM_CLKMODE_DPLL_USB
> -  */
> - #define OMAP4430_DPLL_EN_SHIFT					0
> - #define OMAP4430_DPLL_EN_MASK					(0x7
> << 0)
> -
> - /*
> -- * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> -- * CM_CLKMODE_DPLL_CORE_RESTORE, CM_CLKMODE_DPLL_DDRPHY,
> CM_CLKMODE_DPLL_IVA,
> -- * CM_CLKMODE_DPLL_MPU, CM_CLKMODE_DPLL_PER,
> CM_CLKMODE_DPLL_UNIPRO
> -+ * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> CM_CLKMODE_DPLL_DDRPHY,
> -+ * CM_CLKMODE_DPLL_IVA, CM_CLKMODE_DPLL_MPU,
> CM_CLKMODE_DPLL_PER,
> -+ * CM_CLKMODE_DPLL_UNIPRO
> -  */
> - #define OMAP4430_DPLL_LPMODE_EN_SHIFT				10
> - #define OMAP4430_DPLL_LPMODE_EN_MASK				(1 <<
> 10)
> -
> - /*
> -- * Used by CM_CLKSEL_DPLL_ABE, CM_CLKSEL_DPLL_CORE,
> -- * CM_CLKSEL_DPLL_CORE_RESTORE, CM_CLKSEL_DPLL_DDRPHY,
> CM_CLKSEL_DPLL_IVA,
> -- * CM_CLKSEL_DPLL_MPU, CM_CLKSEL_DPLL_PER,
> CM_CLKSEL_DPLL_UNIPRO
> -+ * Used by CM_CLKSEL_DPLL_ABE, CM_CLKSEL_DPLL_CORE,
> CM_CLKSEL_DPLL_DDRPHY,
> -+ * CM_CLKSEL_DPLL_IVA, CM_CLKSEL_DPLL_MPU, CM_CLKSEL_DPLL_PER,
> -+ * CM_CLKSEL_DPLL_UNIPRO
> -  */
> - #define OMAP4430_DPLL_MULT_SHIFT				8
> - #define OMAP4430_DPLL_MULT_MASK
> 	(0x7ff << 8)
> -@@ -734,9 +701,9 @@
> - #define OMAP4430_DPLL_MULT_USB_MASK				(0xfff
> << 8)
> -
> - /*
> -- * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> -- * CM_CLKMODE_DPLL_CORE_RESTORE, CM_CLKMODE_DPLL_DDRPHY,
> CM_CLKMODE_DPLL_IVA,
> -- * CM_CLKMODE_DPLL_MPU, CM_CLKMODE_DPLL_PER,
> CM_CLKMODE_DPLL_UNIPRO
> -+ * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> CM_CLKMODE_DPLL_DDRPHY,
> -+ * CM_CLKMODE_DPLL_IVA, CM_CLKMODE_DPLL_MPU,
> CM_CLKMODE_DPLL_PER,
> -+ * CM_CLKMODE_DPLL_UNIPRO
> -  */
> - #define OMAP4430_DPLL_REGM4XEN_SHIFT				11
> - #define OMAP4430_DPLL_REGM4XEN_MASK				(1 <<
> 11)
> -@@ -746,55 +713,46 @@
> - #define OMAP4430_DPLL_SD_DIV_MASK				(0xff
> << 24)
> -
> - /*
> -- * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> -- * CM_CLKMODE_DPLL_CORE_RESTORE, CM_CLKMODE_DPLL_DDRPHY,
> CM_CLKMODE_DPLL_IVA,
> -- * CM_CLKMODE_DPLL_MPU, CM_CLKMODE_DPLL_PER,
> CM_CLKMODE_DPLL_UNIPRO,
> -- * CM_CLKMODE_DPLL_USB
> -+ * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> CM_CLKMODE_DPLL_DDRPHY,
> -+ * CM_CLKMODE_DPLL_IVA, CM_CLKMODE_DPLL_MPU,
> CM_CLKMODE_DPLL_PER,
> -+ * CM_CLKMODE_DPLL_UNIPRO, CM_CLKMODE_DPLL_USB
> -  */
> - #define OMAP4430_DPLL_SSC_ACK_SHIFT				13
> - #define OMAP4430_DPLL_SSC_ACK_MASK				(1 <<
> 13)
> -
> - /*
> -- * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> -- * CM_CLKMODE_DPLL_CORE_RESTORE, CM_CLKMODE_DPLL_DDRPHY,
> CM_CLKMODE_DPLL_IVA,
> -- * CM_CLKMODE_DPLL_MPU, CM_CLKMODE_DPLL_PER,
> CM_CLKMODE_DPLL_UNIPRO,
> -- * CM_CLKMODE_DPLL_USB
> -+ * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> CM_CLKMODE_DPLL_DDRPHY,
> -+ * CM_CLKMODE_DPLL_IVA, CM_CLKMODE_DPLL_MPU,
> CM_CLKMODE_DPLL_PER,
> -+ * CM_CLKMODE_DPLL_UNIPRO, CM_CLKMODE_DPLL_USB
> -  */
> - #define OMAP4430_DPLL_SSC_DOWNSPREAD_SHIFT			14
> - #define OMAP4430_DPLL_SSC_DOWNSPREAD_MASK			(1 <<
> 14)
> -
> - /*
> -- * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> -- * CM_CLKMODE_DPLL_CORE_RESTORE, CM_CLKMODE_DPLL_DDRPHY,
> CM_CLKMODE_DPLL_IVA,
> -- * CM_CLKMODE_DPLL_MPU, CM_CLKMODE_DPLL_PER,
> CM_CLKMODE_DPLL_UNIPRO,
> -- * CM_CLKMODE_DPLL_USB
> -+ * Used by CM_CLKMODE_DPLL_ABE, CM_CLKMODE_DPLL_CORE,
> CM_CLKMODE_DPLL_DDRPHY,
> -+ * CM_CLKMODE_DPLL_IVA, CM_CLKMODE_DPLL_MPU,
> CM_CLKMODE_DPLL_PER,
> -+ * CM_CLKMODE_DPLL_UNIPRO, CM_CLKMODE_DPLL_USB
> -  */
> - #define OMAP4430_DPLL_SSC_EN_SHIFT				12
> - #define OMAP4430_DPLL_SSC_EN_MASK				(1 <<
> 12)
> -
> --/*
> -- * Used by CM_L3_2_DYNAMICDEP, CM_L3_2_DYNAMICDEP_RESTORE,
> CM_L4CFG_DYNAMICDEP,
> -- * CM_L4CFG_DYNAMICDEP_RESTORE, CM_L4PER_DYNAMICDEP,
> CM_L4PER_DYNAMICDEP_RESTORE
> -- */
> -+/* Used by CM_L3_2_DYNAMICDEP, CM_L4CFG_DYNAMICDEP,
> CM_L4PER_DYNAMICDEP */
> - #define OMAP4430_DSS_DYNDEP_SHIFT				8
> - #define OMAP4430_DSS_DYNDEP_MASK				(1 <<
> 8)
> -
> --/*
> -- * Used by CM_DUCATI_STATICDEP, CM_MPU_STATICDEP,
> CM_SDMA_STATICDEP,
> -- * CM_SDMA_STATICDEP_RESTORE
> -- */
> -+/* Used by CM_DUCATI_STATICDEP, CM_MPU_STATICDEP,
> CM_SDMA_STATICDEP */
> - #define OMAP4430_DSS_STATDEP_SHIFT				8
> - #define OMAP4430_DSS_STATDEP_MASK				(1 <<
> 8)
> -
> --/* Used by CM_L3_2_DYNAMICDEP, CM_L3_2_DYNAMICDEP_RESTORE */
> -+/* Used by CM_L3_2_DYNAMICDEP */
> - #define OMAP4430_DUCATI_DYNDEP_SHIFT				0
> - #define OMAP4430_DUCATI_DYNDEP_MASK				(1 <<
> 0)
> -
> --/* Used by CM_MPU_STATICDEP, CM_SDMA_STATICDEP,
> CM_SDMA_STATICDEP_RESTORE */
> -+/* Used by CM_MPU_STATICDEP, CM_SDMA_STATICDEP */
> - #define OMAP4430_DUCATI_STATDEP_SHIFT				0
> - #define OMAP4430_DUCATI_STATDEP_MASK				(1 <<
> 0)
> -
> --/* Used by CM_SHADOW_FREQ_CONFIG1,
> CM_SHADOW_FREQ_CONFIG1_RESTORE */
> -+/* Used by CM_SHADOW_FREQ_CONFIG1 */
> - #define OMAP4430_FREQ_UPDATE_SHIFT				0
> - #define OMAP4430_FREQ_UPDATE_MASK				(1 <<
> 0)
> -
> -@@ -802,7 +760,7 @@
> - #define OMAP4430_FUNC_SHIFT					16
> - #define OMAP4430_FUNC_MASK					(0xfff
> << 16)
> -
> --/* Used by CM_L3_2_DYNAMICDEP, CM_L3_2_DYNAMICDEP_RESTORE */
> -+/* Used by CM_L3_2_DYNAMICDEP */
> - #define OMAP4430_GFX_DYNDEP_SHIFT				10
> - #define OMAP4430_GFX_DYNDEP_MASK				(1 <<
> 10)
> -
> -@@ -810,119 +768,95 @@
> - #define OMAP4430_GFX_STATDEP_SHIFT				10
> - #define OMAP4430_GFX_STATDEP_MASK				(1 <<
> 10)
> -
> --/* Used by CM_SHADOW_FREQ_CONFIG2,
> CM_SHADOW_FREQ_CONFIG2_RESTORE */
> -+/* Used by CM_SHADOW_FREQ_CONFIG2 */
> - #define OMAP4430_GPMC_FREQ_UPDATE_SHIFT
> 	0
> - #define OMAP4430_GPMC_FREQ_UPDATE_MASK
> 	(1 << 0)
> -
> - /*
> -- * Used by CM_DIV_M4_DPLL_CORE, CM_DIV_M4_DPLL_CORE_RESTORE,
> -- * CM_DIV_M4_DPLL_DDRPHY, CM_DIV_M4_DPLL_IVA,
> CM_DIV_M4_DPLL_PER
> -+ * Used by CM_DIV_M4_DPLL_CORE, CM_DIV_M4_DPLL_DDRPHY,
> CM_DIV_M4_DPLL_IVA,
> -+ * CM_DIV_M4_DPLL_PER
> -  */
> - #define OMAP4430_HSDIVIDER_CLKOUT1_DIV_SHIFT			0
> - #define OMAP4430_HSDIVIDER_CLKOUT1_DIV_MASK			(0x1f
> << 0)
> -
> - /*
> -- * Used by CM_DIV_M4_DPLL_CORE, CM_DIV_M4_DPLL_CORE_RESTORE,
> -- * CM_DIV_M4_DPLL_DDRPHY, CM_DIV_M4_DPLL_IVA,
> CM_DIV_M4_DPLL_PER
> -+ * Used by CM_DIV_M4_DPLL_CORE, CM_DIV_M4_DPLL_DDRPHY,
> CM_DIV_M4_DPLL_IVA,
> -+ * CM_DIV_M4_DPLL_PER
> -  */
> - #define OMAP4430_HSDIVIDER_CLKOUT1_DIVCHACK_SHIFT		5
> - #define OMAP4430_HSDIVIDER_CLKOUT1_DIVCHACK_MASK		(1 <<
> 5)
> -
> - /*
> -- * Used by CM_DIV_M4_DPLL_CORE, CM_DIV_M4_DPLL_CORE_RESTORE,
> -- * CM_DIV_M4_DPLL_DDRPHY, CM_DIV_M4_DPLL_IVA,
> CM_DIV_M4_DPLL_PER
> -+ * Used by CM_DIV_M4_DPLL_CORE, CM_DIV_M4_DPLL_DDRPHY,
> CM_DIV_M4_DPLL_IVA,
> -+ * CM_DIV_M4_DPLL_PER
> -  */
> - #define OMAP4430_HSDIVIDER_CLKOUT1_GATE_CTRL_SHIFT		8
> - #define OMAP4430_HSDIVIDER_CLKOUT1_GATE_CTRL_MASK		(1 <<
> 8)
> -
> - /*
> -- * Used by CM_DIV_M4_DPLL_CORE, CM_DIV_M4_DPLL_CORE_RESTORE,
> -- * CM_DIV_M4_DPLL_DDRPHY, CM_DIV_M4_DPLL_IVA,
> CM_DIV_M4_DPLL_PER
> -+ * Used by CM_DIV_M4_DPLL_CORE, CM_DIV_M4_DPLL_DDRPHY,
> CM_DIV_M4_DPLL_IVA,
> -+ * CM_DIV_M4_DPLL_PER
> -  */
> - #define OMAP4430_HSDIVIDER_CLKOUT1_PWDN_SHIFT
> 	12
> - #define OMAP4430_HSDIVIDER_CLKOUT1_PWDN_MASK
> 	(1 << 12)
> -
> - /*
> -- * Used by CM_DIV_M5_DPLL_CORE, CM_DIV_M5_DPLL_CORE_RESTORE,
> -- * CM_DIV_M5_DPLL_DDRPHY, CM_DIV_M5_DPLL_IVA,
> CM_DIV_M5_DPLL_PER
> -+ * Used by CM_DIV_M5_DPLL_CORE, CM_DIV_M5_DPLL_DDRPHY,
> CM_DIV_M5_DPLL_IVA,
> -+ * CM_DIV_M5_DPLL_PER
> -  */
> - #define OMAP4430_HSDIVIDER_CLKOUT2_DIV_SHIFT			0
> - #define OMAP4430_HSDIVIDER_CLKOUT2_DIV_MASK			(0x1f
> << 0)
> -
> - /*
> -- * Used by CM_DIV_M5_DPLL_CORE, CM_DIV_M5_DPLL_CORE_RESTORE,
> -- * CM_DIV_M5_DPLL_DDRPHY, CM_DIV_M5_DPLL_IVA,
> CM_DIV_M5_DPLL_PER
> -+ * Used by CM_DIV_M5_DPLL_CORE, CM_DIV_M5_DPLL_DDRPHY,
> CM_DIV_M5_DPLL_IVA,
> -+ * CM_DIV_M5_DPLL_PER
> -  */
> - #define OMAP4430_HSDIVIDER_CLKOUT2_DIVCHACK_SHIFT		5
> - #define OMAP4430_HSDIVIDER_CLKOUT2_DIVCHACK_MASK		(1 <<
> 5)
> -
> - /*
> -- * Used by CM_DIV_M5_DPLL_CORE, CM_DIV_M5_DPLL_CORE_RESTORE,
> -- * CM_DIV_M5_DPLL_DDRPHY, CM_DIV_M5_DPLL_IVA,
> CM_DIV_M5_DPLL_PER
> -+ * Used by CM_DIV_M5_DPLL_CORE, CM_DIV_M5_DPLL_DDRPHY,
> CM_DIV_M5_DPLL_IVA,
> -+ * CM_DIV_M5_DPLL_PER
> -  */
> - #define OMAP4430_HSDIVIDER_CLKOUT2_GATE_CTRL_SHIFT		8
> - #define OMAP4430_HSDIVIDER_CLKOUT2_GATE_CTRL_MASK		(1 <<
> 8)
> -
> - /*
> -- * Used by CM_DIV_M5_DPLL_CORE, CM_DIV_M5_DPLL_CORE_RESTORE,
> -- * CM_DIV_M5_DPLL_DDRPHY, CM_DIV_M5_DPLL_IVA,
> CM_DIV_M5_DPLL_PER
> -+ * Used by CM_DIV_M5_DPLL_CORE, CM_DIV_M5_DPLL_DDRPHY,
> CM_DIV_M5_DPLL_IVA,
> -+ * CM_DIV_M5_DPLL_PER
> -  */
> - #define OMAP4430_HSDIVIDER_CLKOUT2_PWDN_SHIFT
> 	12
> - #define OMAP4430_HSDIVIDER_CLKOUT2_PWDN_MASK
> 	(1 << 12)
> -
> --/*
> -- * Used by CM_DIV_M6_DPLL_CORE, CM_DIV_M6_DPLL_CORE_RESTORE,
> -- * CM_DIV_M6_DPLL_DDRPHY, CM_DIV_M6_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M6_DPLL_CORE, CM_DIV_M6_DPLL_DDRPHY,
> CM_DIV_M6_DPLL_PER */
> - #define OMAP4430_HSDIVIDER_CLKOUT3_DIV_SHIFT			0
> - #define OMAP4430_HSDIVIDER_CLKOUT3_DIV_MASK			(0x1f
> << 0)
> -
> --/*
> -- * Used by CM_DIV_M6_DPLL_CORE, CM_DIV_M6_DPLL_CORE_RESTORE,
> -- * CM_DIV_M6_DPLL_DDRPHY, CM_DIV_M6_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M6_DPLL_CORE, CM_DIV_M6_DPLL_DDRPHY,
> CM_DIV_M6_DPLL_PER */
> - #define OMAP4430_HSDIVIDER_CLKOUT3_DIVCHACK_SHIFT		5
> - #define OMAP4430_HSDIVIDER_CLKOUT3_DIVCHACK_MASK		(1 <<
> 5)
> -
> --/*
> -- * Used by CM_DIV_M6_DPLL_CORE, CM_DIV_M6_DPLL_CORE_RESTORE,
> -- * CM_DIV_M6_DPLL_DDRPHY, CM_DIV_M6_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M6_DPLL_CORE, CM_DIV_M6_DPLL_DDRPHY,
> CM_DIV_M6_DPLL_PER */
> - #define OMAP4430_HSDIVIDER_CLKOUT3_GATE_CTRL_SHIFT		8
> - #define OMAP4430_HSDIVIDER_CLKOUT3_GATE_CTRL_MASK		(1 <<
> 8)
> -
> --/*
> -- * Used by CM_DIV_M6_DPLL_CORE, CM_DIV_M6_DPLL_CORE_RESTORE,
> -- * CM_DIV_M6_DPLL_DDRPHY, CM_DIV_M6_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M6_DPLL_CORE, CM_DIV_M6_DPLL_DDRPHY,
> CM_DIV_M6_DPLL_PER */
> - #define OMAP4430_HSDIVIDER_CLKOUT3_PWDN_SHIFT
> 	12
> - #define OMAP4430_HSDIVIDER_CLKOUT3_PWDN_MASK
> 	(1 << 12)
> -
> --/*
> -- * Used by CM_DIV_M7_DPLL_CORE, CM_DIV_M7_DPLL_CORE_RESTORE,
> -- * CM_DIV_M7_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M7_DPLL_CORE, CM_DIV_M7_DPLL_PER */
> - #define OMAP4430_HSDIVIDER_CLKOUT4_DIV_SHIFT			0
> - #define OMAP4430_HSDIVIDER_CLKOUT4_DIV_MASK			(0x1f
> << 0)
> -
> --/*
> -- * Used by CM_DIV_M7_DPLL_CORE, CM_DIV_M7_DPLL_CORE_RESTORE,
> -- * CM_DIV_M7_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M7_DPLL_CORE, CM_DIV_M7_DPLL_PER */
> - #define OMAP4430_HSDIVIDER_CLKOUT4_DIVCHACK_SHIFT		5
> - #define OMAP4430_HSDIVIDER_CLKOUT4_DIVCHACK_MASK		(1 <<
> 5)
> -
> --/*
> -- * Used by CM_DIV_M7_DPLL_CORE, CM_DIV_M7_DPLL_CORE_RESTORE,
> -- * CM_DIV_M7_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M7_DPLL_CORE, CM_DIV_M7_DPLL_PER */
> - #define OMAP4430_HSDIVIDER_CLKOUT4_GATE_CTRL_SHIFT		8
> - #define OMAP4430_HSDIVIDER_CLKOUT4_GATE_CTRL_MASK		(1 <<
> 8)
> -
> --/*
> -- * Used by CM_DIV_M7_DPLL_CORE, CM_DIV_M7_DPLL_CORE_RESTORE,
> -- * CM_DIV_M7_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M7_DPLL_CORE, CM_DIV_M7_DPLL_PER */
> - #define OMAP4430_HSDIVIDER_CLKOUT4_PWDN_SHIFT
> 	12
> - #define OMAP4430_HSDIVIDER_CLKOUT4_PWDN_MASK
> 	(1 << 12)
> -
> -@@ -934,8 +868,7 @@
> -  * CM1_ABE_TIMER8_CLKCTRL, CM1_ABE_WDT3_CLKCTRL,
> CM_ALWON_MDMINTC_CLKCTRL,
> -  * CM_ALWON_SR_CORE_CLKCTRL, CM_ALWON_SR_IVA_CLKCTRL,
> CM_ALWON_SR_MPU_CLKCTRL,
> -  * CM_CAM_FDIF_CLKCTRL, CM_CAM_ISS_CLKCTRL,
> CM_CEFUSE_CEFUSE_CLKCTRL,
> -- * CM_CM1_PROFILING_CLKCTRL, CM_CM1_PROFILING_CLKCTRL_RESTORE,
> -- * CM_CM2_PROFILING_CLKCTRL, CM_CM2_PROFILING_CLKCTRL_RESTORE,
> -+ * CM_CM1_PROFILING_CLKCTRL, CM_CM2_PROFILING_CLKCTRL,
> -  * CM_D2D_MODEM_ICR_CLKCTRL, CM_D2D_SAD2D_CLKCTRL,
> CM_D2D_SAD2D_FW_CLKCTRL,
> -  * CM_DSS_DEISS_CLKCTRL, CM_DSS_DSS_CLKCTRL,
> CM_DUCATI_DUCATI_CLKCTRL,
> -  * CM_EMU_DEBUGSS_CLKCTRL, CM_GFX_GFX_CLKCTRL,
> CM_IVAHD_IVAHD_CLKCTRL,
> -@@ -944,30 +877,24 @@
> -  * CM_L3INIT_MMC6_CLKCTRL, CM_L3INIT_P1500_CLKCTRL,
> CM_L3INIT_PCIESS_CLKCTRL,
> -  * CM_L3INIT_SATA_CLKCTRL, CM_L3INIT_TPPSS_CLKCTRL,
> CM_L3INIT_UNIPRO1_CLKCTRL,
> -  * CM_L3INIT_USBPHYOCP2SCP_CLKCTRL, CM_L3INIT_USB_HOST_CLKCTRL,
> -- * CM_L3INIT_USB_HOST_CLKCTRL_RESTORE,
> CM_L3INIT_USB_HOST_FS_CLKCTRL,
> -- * CM_L3INIT_USB_OTG_CLKCTRL, CM_L3INIT_USB_TLL_CLKCTRL,
> -- * CM_L3INIT_USB_TLL_CLKCTRL_RESTORE, CM_L3INIT_XHPI_CLKCTRL,
> -- * CM_L3INSTR_L3_3_CLKCTRL, CM_L3INSTR_L3_3_CLKCTRL_RESTORE,
> -- * CM_L3INSTR_L3_INSTR_CLKCTRL,
> CM_L3INSTR_L3_INSTR_CLKCTRL_RESTORE,
> -- * CM_L3INSTR_OCP_WP1_CLKCTRL,
> CM_L3INSTR_OCP_WP1_CLKCTRL_RESTORE,
> -+ * CM_L3INIT_USB_HOST_FS_CLKCTRL, CM_L3INIT_USB_OTG_CLKCTRL,
> -+ * CM_L3INIT_USB_TLL_CLKCTRL, CM_L3INIT_XHPI_CLKCTRL,
> CM_L3INSTR_L3_3_CLKCTRL,
> -+ * CM_L3INSTR_L3_INSTR_CLKCTRL, CM_L3INSTR_OCP_WP1_CLKCTRL,
> -  * CM_L3_1_L3_1_CLKCTRL, CM_L3_2_GPMC_CLKCTRL,
> CM_L3_2_L3_2_CLKCTRL,
> -  * CM_L3_2_OCMC_RAM_CLKCTRL, CM_L4CFG_HW_SEM_CLKCTRL,
> CM_L4CFG_L4_CFG_CLKCTRL,
> -  * CM_L4CFG_MAILBOX_CLKCTRL, CM_L4CFG_SAR_ROM_CLKCTRL,
> CM_L4PER_ADC_CLKCTRL,
> -  * CM_L4PER_DMTIMER10_CLKCTRL, CM_L4PER_DMTIMER11_CLKCTRL,
> -  * CM_L4PER_DMTIMER2_CLKCTRL, CM_L4PER_DMTIMER3_CLKCTRL,
> -  * CM_L4PER_DMTIMER4_CLKCTRL, CM_L4PER_DMTIMER9_CLKCTRL,
> CM_L4PER_ELM_CLKCTRL,
> -- * CM_L4PER_GPIO2_CLKCTRL, CM_L4PER_GPIO2_CLKCTRL_RESTORE,
> -- * CM_L4PER_GPIO3_CLKCTRL, CM_L4PER_GPIO3_CLKCTRL_RESTORE,
> -- * CM_L4PER_GPIO4_CLKCTRL, CM_L4PER_GPIO4_CLKCTRL_RESTORE,
> -- * CM_L4PER_GPIO5_CLKCTRL, CM_L4PER_GPIO5_CLKCTRL_RESTORE,
> -- * CM_L4PER_GPIO6_CLKCTRL, CM_L4PER_GPIO6_CLKCTRL_RESTORE,
> -- * CM_L4PER_HDQ1W_CLKCTRL, CM_L4PER_HECC1_CLKCTRL,
> CM_L4PER_HECC2_CLKCTRL,
> -- * CM_L4PER_I2C1_CLKCTRL, CM_L4PER_I2C2_CLKCTRL,
> CM_L4PER_I2C3_CLKCTRL,
> -- * CM_L4PER_I2C4_CLKCTRL, CM_L4PER_I2C5_CLKCTRL,
> CM_L4PER_L4PER_CLKCTRL,
> -- * CM_L4PER_MCASP2_CLKCTRL, CM_L4PER_MCASP3_CLKCTRL,
> CM_L4PER_MCBSP4_CLKCTRL,
> -- * CM_L4PER_MCSPI1_CLKCTRL, CM_L4PER_MCSPI2_CLKCTRL,
> CM_L4PER_MCSPI3_CLKCTRL,
> -- * CM_L4PER_MCSPI4_CLKCTRL, CM_L4PER_MGATE_CLKCTRL,
> CM_L4PER_MMCSD3_CLKCTRL,
> -- * CM_L4PER_MMCSD4_CLKCTRL, CM_L4PER_MMCSD5_CLKCTRL,
> CM_L4PER_MSPROHG_CLKCTRL,
> -+ * CM_L4PER_GPIO2_CLKCTRL, CM_L4PER_GPIO3_CLKCTRL,
> CM_L4PER_GPIO4_CLKCTRL,
> -+ * CM_L4PER_GPIO5_CLKCTRL, CM_L4PER_GPIO6_CLKCTRL,
> CM_L4PER_HDQ1W_CLKCTRL,
> -+ * CM_L4PER_HECC1_CLKCTRL, CM_L4PER_HECC2_CLKCTRL,
> CM_L4PER_I2C1_CLKCTRL,
> -+ * CM_L4PER_I2C2_CLKCTRL, CM_L4PER_I2C3_CLKCTRL,
> CM_L4PER_I2C4_CLKCTRL,
> -+ * CM_L4PER_I2C5_CLKCTRL, CM_L4PER_L4PER_CLKCTRL,
> CM_L4PER_MCASP2_CLKCTRL,
> -+ * CM_L4PER_MCASP3_CLKCTRL, CM_L4PER_MCBSP4_CLKCTRL,
> CM_L4PER_MCSPI1_CLKCTRL,
> -+ * CM_L4PER_MCSPI2_CLKCTRL, CM_L4PER_MCSPI3_CLKCTRL,
> CM_L4PER_MCSPI4_CLKCTRL,
> -+ * CM_L4PER_MGATE_CLKCTRL, CM_L4PER_MMCSD3_CLKCTRL,
> CM_L4PER_MMCSD4_CLKCTRL,
> -+ * CM_L4PER_MMCSD5_CLKCTRL, CM_L4PER_MSPROHG_CLKCTRL,
> -  * CM_L4PER_SLIMBUS2_CLKCTRL, CM_L4PER_UART1_CLKCTRL,
> CM_L4PER_UART2_CLKCTRL,
> -  * CM_L4PER_UART3_CLKCTRL, CM_L4PER_UART4_CLKCTRL,
> CM_L4SEC_AES1_CLKCTRL,
> -  * CM_L4SEC_AES2_CLKCTRL, CM_L4SEC_CRYPTODMA_CLKCTRL,
> CM_L4SEC_DES3DES_CLKCTRL,
> -@@ -983,166 +910,148 @@
> - #define OMAP4430_IDLEST_SHIFT					16
> - #define OMAP4430_IDLEST_MASK					(0x3
> << 16)
> -
> --/*
> -- * Used by CM_DUCATI_DYNAMICDEP, CM_L3_2_DYNAMICDEP,
> -- * CM_L3_2_DYNAMICDEP_RESTORE, CM_L4CFG_DYNAMICDEP,
> CM_L4CFG_DYNAMICDEP_RESTORE
> -- */
> -+/* Used by CM_DUCATI_DYNAMICDEP, CM_L3_2_DYNAMICDEP,
> CM_L4CFG_DYNAMICDEP */
> - #define OMAP4430_ISS_DYNDEP_SHIFT				9
> - #define OMAP4430_ISS_DYNDEP_MASK				(1 <<
> 9)
> -
> - /*
> -  * Used by CM_DUCATI_STATICDEP, CM_MPU_STATICDEP,
> CM_SDMA_STATICDEP,
> -- * CM_SDMA_STATICDEP_RESTORE, CM_TESLA_STATICDEP
> -+ * CM_TESLA_STATICDEP
> -  */
> - #define OMAP4430_ISS_STATDEP_SHIFT				9
> - #define OMAP4430_ISS_STATDEP_MASK				(1 <<
> 9)
> -
> --/* Used by CM_L3_2_DYNAMICDEP, CM_L3_2_DYNAMICDEP_RESTORE,
> CM_TESLA_DYNAMICDEP */
> -+/* Used by CM_L3_2_DYNAMICDEP, CM_TESLA_DYNAMICDEP */
> - #define OMAP4430_IVAHD_DYNDEP_SHIFT				2
> - #define OMAP4430_IVAHD_DYNDEP_MASK				(1 <<
> 2)
> -
> - /*
> -- * Used by CM_CAM_STATICDEP, CM_D2D_STATICDEP,
> CM_D2D_STATICDEP_RESTORE,
> -- * CM_DSS_STATICDEP, CM_DUCATI_STATICDEP, CM_GFX_STATICDEP,
> -- * CM_L3INIT_STATICDEP, CM_MPU_STATICDEP, CM_SDMA_STATICDEP,
> -- * CM_SDMA_STATICDEP_RESTORE, CM_TESLA_STATICDEP
> -+ * Used by CM_CAM_STATICDEP, CM_D2D_STATICDEP,
> CM_DSS_STATICDEP,
> -+ * CM_DUCATI_STATICDEP, CM_GFX_STATICDEP, CM_L3INIT_STATICDEP,
> -+ * CM_MPU_STATICDEP, CM_SDMA_STATICDEP, CM_TESLA_STATICDEP
> -  */
> - #define OMAP4430_IVAHD_STATDEP_SHIFT				2
> - #define OMAP4430_IVAHD_STATDEP_MASK				(1 <<
> 2)
> -
> --/*
> -- * Used by CM_L3_2_DYNAMICDEP, CM_L3_2_DYNAMICDEP_RESTORE,
> CM_L4CFG_DYNAMICDEP,
> -- * CM_L4CFG_DYNAMICDEP_RESTORE, CM_L4PER_DYNAMICDEP,
> CM_L4PER_DYNAMICDEP_RESTORE
> -- */
> -+/* Used by CM_L3_2_DYNAMICDEP, CM_L4CFG_DYNAMICDEP,
> CM_L4PER_DYNAMICDEP */
> - #define OMAP4430_L3INIT_DYNDEP_SHIFT				7
> - #define OMAP4430_L3INIT_DYNDEP_MASK				(1 <<
> 7)
> -
> - /*
> -- * Used by CM_D2D_STATICDEP, CM_D2D_STATICDEP_RESTORE,
> CM_DUCATI_STATICDEP,
> -- * CM_MPU_STATICDEP, CM_SDMA_STATICDEP,
> CM_SDMA_STATICDEP_RESTORE,
> -- * CM_TESLA_STATICDEP
> -+ * Used by CM_D2D_STATICDEP, CM_DUCATI_STATICDEP,
> CM_MPU_STATICDEP,
> -+ * CM_SDMA_STATICDEP, CM_TESLA_STATICDEP
> -  */
> - #define OMAP4430_L3INIT_STATDEP_SHIFT				7
> - #define OMAP4430_L3INIT_STATDEP_MASK				(1 <<
> 7)
> -
> - /*
> -  * Used by CM_DSS_DYNAMICDEP, CM_L3INIT_DYNAMICDEP,
> CM_L3_2_DYNAMICDEP,
> -- * CM_L3_2_DYNAMICDEP_RESTORE, CM_L4CFG_DYNAMICDEP,
> -- * CM_L4CFG_DYNAMICDEP_RESTORE, CM_MPU_DYNAMICDEP,
> CM_TESLA_DYNAMICDEP
> -+ * CM_L4CFG_DYNAMICDEP, CM_MPU_DYNAMICDEP,
> CM_TESLA_DYNAMICDEP
> -  */
> - #define OMAP4430_L3_1_DYNDEP_SHIFT				5
> - #define OMAP4430_L3_1_DYNDEP_MASK				(1 <<
> 5)
> -
> - /*
> -- * Used by CM_CAM_STATICDEP, CM_D2D_STATICDEP,
> CM_D2D_STATICDEP_RESTORE,
> -- * CM_DSS_STATICDEP, CM_DUCATI_STATICDEP, CM_GFX_STATICDEP,
> CM_IVAHD_STATICDEP,
> -+ * Used by CM_CAM_STATICDEP, CM_D2D_STATICDEP,
> CM_DSS_STATICDEP,
> -+ * CM_DUCATI_STATICDEP, CM_GFX_STATICDEP, CM_IVAHD_STATICDEP,
> -  * CM_L3INIT_STATICDEP, CM_L4SEC_STATICDEP, CM_MPU_STATICDEP,
> -- * CM_SDMA_STATICDEP, CM_SDMA_STATICDEP_RESTORE,
> CM_TESLA_STATICDEP
> -+ * CM_SDMA_STATICDEP, CM_TESLA_STATICDEP
> -  */
> - #define OMAP4430_L3_1_STATDEP_SHIFT				5
> - #define OMAP4430_L3_1_STATDEP_MASK				(1 <<
> 5)
> -
> - /*
> -- * Used by CM_CAM_DYNAMICDEP, CM_D2D_DYNAMICDEP,
> CM_D2D_DYNAMICDEP_RESTORE,
> -- * CM_DUCATI_DYNAMICDEP, CM_EMU_DYNAMICDEP,
> CM_GFX_DYNAMICDEP,
> -- * CM_IVAHD_DYNAMICDEP, CM_L3INIT_DYNAMICDEP,
> CM_L3_1_DYNAMICDEP,
> -- * CM_L3_1_DYNAMICDEP_RESTORE, CM_L4CFG_DYNAMICDEP,
> -- * CM_L4CFG_DYNAMICDEP_RESTORE, CM_L4SEC_DYNAMICDEP,
> CM_SDMA_DYNAMICDEP
> -+ * Used by CM_CAM_DYNAMICDEP, CM_D2D_DYNAMICDEP,
> CM_DUCATI_DYNAMICDEP,
> -+ * CM_EMU_DYNAMICDEP, CM_GFX_DYNAMICDEP,
> CM_IVAHD_DYNAMICDEP,
> -+ * CM_L3INIT_DYNAMICDEP, CM_L3_1_DYNAMICDEP,
> CM_L4CFG_DYNAMICDEP,
> -+ * CM_L4SEC_DYNAMICDEP, CM_SDMA_DYNAMICDEP
> -  */
> - #define OMAP4430_L3_2_DYNDEP_SHIFT				6
> - #define OMAP4430_L3_2_DYNDEP_MASK				(1 <<
> 6)
> -
> - /*
> -- * Used by CM_CAM_STATICDEP, CM_D2D_STATICDEP,
> CM_D2D_STATICDEP_RESTORE,
> -- * CM_DSS_STATICDEP, CM_DUCATI_STATICDEP, CM_GFX_STATICDEP,
> CM_IVAHD_STATICDEP,
> -+ * Used by CM_CAM_STATICDEP, CM_D2D_STATICDEP,
> CM_DSS_STATICDEP,
> -+ * CM_DUCATI_STATICDEP, CM_GFX_STATICDEP, CM_IVAHD_STATICDEP,
> -  * CM_L3INIT_STATICDEP, CM_L4SEC_STATICDEP, CM_MPU_STATICDEP,
> -- * CM_SDMA_STATICDEP, CM_SDMA_STATICDEP_RESTORE,
> CM_TESLA_STATICDEP
> -+ * CM_SDMA_STATICDEP, CM_TESLA_STATICDEP
> -  */
> - #define OMAP4430_L3_2_STATDEP_SHIFT				6
> - #define OMAP4430_L3_2_STATDEP_MASK				(1 <<
> 6)
> -
> --/* Used by CM_L3_1_DYNAMICDEP, CM_L3_1_DYNAMICDEP_RESTORE */
> -+/* Used by CM_L3_1_DYNAMICDEP */
> - #define OMAP4430_L4CFG_DYNDEP_SHIFT				12
> - #define OMAP4430_L4CFG_DYNDEP_MASK				(1 <<
> 12)
> -
> - /*
> -- * Used by CM_D2D_STATICDEP, CM_D2D_STATICDEP_RESTORE,
> CM_DUCATI_STATICDEP,
> -- * CM_L3INIT_STATICDEP, CM_MPU_STATICDEP, CM_SDMA_STATICDEP,
> -- * CM_SDMA_STATICDEP_RESTORE, CM_TESLA_STATICDEP
> -+ * Used by CM_D2D_STATICDEP, CM_DUCATI_STATICDEP,
> CM_L3INIT_STATICDEP,
> -+ * CM_MPU_STATICDEP, CM_SDMA_STATICDEP, CM_TESLA_STATICDEP
> -  */
> - #define OMAP4430_L4CFG_STATDEP_SHIFT				12
> - #define OMAP4430_L4CFG_STATDEP_MASK				(1 <<
> 12)
> -
> --/* Used by CM_L3_2_DYNAMICDEP, CM_L3_2_DYNAMICDEP_RESTORE */
> -+/* Used by CM_L3_2_DYNAMICDEP */
> - #define OMAP4430_L4PER_DYNDEP_SHIFT				13
> - #define OMAP4430_L4PER_DYNDEP_MASK				(1 <<
> 13)
> -
> - /*
> -- * Used by CM_D2D_STATICDEP, CM_D2D_STATICDEP_RESTORE,
> CM_DUCATI_STATICDEP,
> -- * CM_L3INIT_STATICDEP, CM_L4SEC_STATICDEP, CM_MPU_STATICDEP,
> -- * CM_SDMA_STATICDEP, CM_SDMA_STATICDEP_RESTORE,
> CM_TESLA_STATICDEP
> -+ * Used by CM_D2D_STATICDEP, CM_DUCATI_STATICDEP,
> CM_L3INIT_STATICDEP,
> -+ * CM_L4SEC_STATICDEP, CM_MPU_STATICDEP, CM_SDMA_STATICDEP,
> CM_TESLA_STATICDEP
> -  */
> - #define OMAP4430_L4PER_STATDEP_SHIFT				13
> - #define OMAP4430_L4PER_STATDEP_MASK				(1 <<
> 13)
> -
> --/*
> -- * Used by CM_L3_2_DYNAMICDEP, CM_L3_2_DYNAMICDEP_RESTORE,
> CM_L4PER_DYNAMICDEP,
> -- * CM_L4PER_DYNAMICDEP_RESTORE
> -- */
> -+/* Used by CM_L3_2_DYNAMICDEP, CM_L4PER_DYNAMICDEP */
> - #define OMAP4430_L4SEC_DYNDEP_SHIFT				14
> - #define OMAP4430_L4SEC_DYNDEP_MASK				(1 <<
> 14)
> -
> - /*
> -  * Used by CM_DUCATI_STATICDEP, CM_L3INIT_STATICDEP,
> CM_MPU_STATICDEP,
> -- * CM_SDMA_STATICDEP, CM_SDMA_STATICDEP_RESTORE
> -+ * CM_SDMA_STATICDEP
> -  */
> - #define OMAP4430_L4SEC_STATDEP_SHIFT				14
> - #define OMAP4430_L4SEC_STATDEP_MASK				(1 <<
> 14)
> -
> --/* Used by CM_L4CFG_DYNAMICDEP, CM_L4CFG_DYNAMICDEP_RESTORE */
> -+/* Used by CM_L4CFG_DYNAMICDEP */
> - #define OMAP4430_L4WKUP_DYNDEP_SHIFT				15
> - #define OMAP4430_L4WKUP_DYNDEP_MASK				(1 <<
> 15)
> -
> - /*
> -  * Used by CM_DUCATI_STATICDEP, CM_L3INIT_STATICDEP,
> CM_MPU_STATICDEP,
> -- * CM_SDMA_STATICDEP, CM_SDMA_STATICDEP_RESTORE,
> CM_TESLA_STATICDEP
> -+ * CM_SDMA_STATICDEP, CM_TESLA_STATICDEP
> -  */
> - #define OMAP4430_L4WKUP_STATDEP_SHIFT				15
> - #define OMAP4430_L4WKUP_STATDEP_MASK				(1 <<
> 15)
> -
> - /*
> -- * Used by CM_D2D_DYNAMICDEP, CM_D2D_DYNAMICDEP_RESTORE,
> CM_L3_1_DYNAMICDEP,
> -- * CM_L3_1_DYNAMICDEP_RESTORE, CM_L4CFG_DYNAMICDEP,
> -- * CM_L4CFG_DYNAMICDEP_RESTORE, CM_MPU_DYNAMICDEP
> -+ * Used by CM_D2D_DYNAMICDEP, CM_L3_1_DYNAMICDEP,
> CM_L4CFG_DYNAMICDEP,
> -+ * CM_MPU_DYNAMICDEP
> -  */
> - #define OMAP4430_MEMIF_DYNDEP_SHIFT				4
> - #define OMAP4430_MEMIF_DYNDEP_MASK				(1 <<
> 4)
> -
> - /*
> -- * Used by CM_CAM_STATICDEP, CM_D2D_STATICDEP,
> CM_D2D_STATICDEP_RESTORE,
> -- * CM_DSS_STATICDEP, CM_DUCATI_STATICDEP, CM_GFX_STATICDEP,
> CM_IVAHD_STATICDEP,
> -+ * Used by CM_CAM_STATICDEP, CM_D2D_STATICDEP,
> CM_DSS_STATICDEP,
> -+ * CM_DUCATI_STATICDEP, CM_GFX_STATICDEP, CM_IVAHD_STATICDEP,
> -  * CM_L3INIT_STATICDEP, CM_L4SEC_STATICDEP, CM_MPU_STATICDEP,
> -- * CM_SDMA_STATICDEP, CM_SDMA_STATICDEP_RESTORE,
> CM_TESLA_STATICDEP
> -+ * CM_SDMA_STATICDEP, CM_TESLA_STATICDEP
> -  */
> - #define OMAP4430_MEMIF_STATDEP_SHIFT				4
> - #define OMAP4430_MEMIF_STATDEP_MASK				(1 <<
> 4)
> -
> - /*
> -  * Used by CM_SSC_MODFREQDIV_DPLL_ABE,
> CM_SSC_MODFREQDIV_DPLL_CORE,
> -- * CM_SSC_MODFREQDIV_DPLL_CORE_RESTORE,
> CM_SSC_MODFREQDIV_DPLL_DDRPHY,
> -- * CM_SSC_MODFREQDIV_DPLL_IVA, CM_SSC_MODFREQDIV_DPLL_MPU,
> -- * CM_SSC_MODFREQDIV_DPLL_PER,
> CM_SSC_MODFREQDIV_DPLL_UNIPRO,
> -- * CM_SSC_MODFREQDIV_DPLL_USB
> -+ * CM_SSC_MODFREQDIV_DPLL_DDRPHY,
> CM_SSC_MODFREQDIV_DPLL_IVA,
> -+ * CM_SSC_MODFREQDIV_DPLL_MPU, CM_SSC_MODFREQDIV_DPLL_PER,
> -+ * CM_SSC_MODFREQDIV_DPLL_UNIPRO,
> CM_SSC_MODFREQDIV_DPLL_USB
> -  */
> - #define OMAP4430_MODFREQDIV_EXPONENT_SHIFT			8
> - #define OMAP4430_MODFREQDIV_EXPONENT_MASK			(0x7
> << 8)
> -
> - /*
> -  * Used by CM_SSC_MODFREQDIV_DPLL_ABE,
> CM_SSC_MODFREQDIV_DPLL_CORE,
> -- * CM_SSC_MODFREQDIV_DPLL_CORE_RESTORE,
> CM_SSC_MODFREQDIV_DPLL_DDRPHY,
> -- * CM_SSC_MODFREQDIV_DPLL_IVA, CM_SSC_MODFREQDIV_DPLL_MPU,
> -- * CM_SSC_MODFREQDIV_DPLL_PER,
> CM_SSC_MODFREQDIV_DPLL_UNIPRO,
> -- * CM_SSC_MODFREQDIV_DPLL_USB
> -+ * CM_SSC_MODFREQDIV_DPLL_DDRPHY,
> CM_SSC_MODFREQDIV_DPLL_IVA,
> -+ * CM_SSC_MODFREQDIV_DPLL_MPU, CM_SSC_MODFREQDIV_DPLL_PER,
> -+ * CM_SSC_MODFREQDIV_DPLL_UNIPRO,
> CM_SSC_MODFREQDIV_DPLL_USB
> -  */
> - #define OMAP4430_MODFREQDIV_MANTISSA_SHIFT			0
> - #define OMAP4430_MODFREQDIV_MANTISSA_MASK			(0x7f
> << 0)
> -@@ -1155,8 +1064,7 @@
> -  * CM1_ABE_TIMER8_CLKCTRL, CM1_ABE_WDT3_CLKCTRL,
> CM_ALWON_MDMINTC_CLKCTRL,
> -  * CM_ALWON_SR_CORE_CLKCTRL, CM_ALWON_SR_IVA_CLKCTRL,
> CM_ALWON_SR_MPU_CLKCTRL,
> -  * CM_CAM_FDIF_CLKCTRL, CM_CAM_ISS_CLKCTRL,
> CM_CEFUSE_CEFUSE_CLKCTRL,
> -- * CM_CM1_PROFILING_CLKCTRL, CM_CM1_PROFILING_CLKCTRL_RESTORE,
> -- * CM_CM2_PROFILING_CLKCTRL, CM_CM2_PROFILING_CLKCTRL_RESTORE,
> -+ * CM_CM1_PROFILING_CLKCTRL, CM_CM2_PROFILING_CLKCTRL,
> -  * CM_D2D_MODEM_ICR_CLKCTRL, CM_D2D_SAD2D_CLKCTRL,
> CM_D2D_SAD2D_FW_CLKCTRL,
> -  * CM_DSS_DEISS_CLKCTRL, CM_DSS_DSS_CLKCTRL,
> CM_DUCATI_DUCATI_CLKCTRL,
> -  * CM_EMU_DEBUGSS_CLKCTRL, CM_GFX_GFX_CLKCTRL,
> CM_IVAHD_IVAHD_CLKCTRL,
> -@@ -1165,30 +1073,24 @@
> -  * CM_L3INIT_MMC6_CLKCTRL, CM_L3INIT_P1500_CLKCTRL,
> CM_L3INIT_PCIESS_CLKCTRL,
> -  * CM_L3INIT_SATA_CLKCTRL, CM_L3INIT_TPPSS_CLKCTRL,
> CM_L3INIT_UNIPRO1_CLKCTRL,
> -  * CM_L3INIT_USBPHYOCP2SCP_CLKCTRL, CM_L3INIT_USB_HOST_CLKCTRL,
> -- * CM_L3INIT_USB_HOST_CLKCTRL_RESTORE,
> CM_L3INIT_USB_HOST_FS_CLKCTRL,
> -- * CM_L3INIT_USB_OTG_CLKCTRL, CM_L3INIT_USB_TLL_CLKCTRL,
> -- * CM_L3INIT_USB_TLL_CLKCTRL_RESTORE, CM_L3INIT_XHPI_CLKCTRL,
> -- * CM_L3INSTR_L3_3_CLKCTRL, CM_L3INSTR_L3_3_CLKCTRL_RESTORE,
> -- * CM_L3INSTR_L3_INSTR_CLKCTRL,
> CM_L3INSTR_L3_INSTR_CLKCTRL_RESTORE,
> -- * CM_L3INSTR_OCP_WP1_CLKCTRL,
> CM_L3INSTR_OCP_WP1_CLKCTRL_RESTORE,
> -+ * CM_L3INIT_USB_HOST_FS_CLKCTRL, CM_L3INIT_USB_OTG_CLKCTRL,
> -+ * CM_L3INIT_USB_TLL_CLKCTRL, CM_L3INIT_XHPI_CLKCTRL,
> CM_L3INSTR_L3_3_CLKCTRL,
> -+ * CM_L3INSTR_L3_INSTR_CLKCTRL, CM_L3INSTR_OCP_WP1_CLKCTRL,
> -  * CM_L3_1_L3_1_CLKCTRL, CM_L3_2_GPMC_CLKCTRL,
> CM_L3_2_L3_2_CLKCTRL,
> -  * CM_L3_2_OCMC_RAM_CLKCTRL, CM_L4CFG_HW_SEM_CLKCTRL,
> CM_L4CFG_L4_CFG_CLKCTRL,
> -  * CM_L4CFG_MAILBOX_CLKCTRL, CM_L4CFG_SAR_ROM_CLKCTRL,
> CM_L4PER_ADC_CLKCTRL,
> -  * CM_L4PER_DMTIMER10_CLKCTRL, CM_L4PER_DMTIMER11_CLKCTRL,
> -  * CM_L4PER_DMTIMER2_CLKCTRL, CM_L4PER_DMTIMER3_CLKCTRL,
> -  * CM_L4PER_DMTIMER4_CLKCTRL, CM_L4PER_DMTIMER9_CLKCTRL,
> CM_L4PER_ELM_CLKCTRL,
> -- * CM_L4PER_GPIO2_CLKCTRL, CM_L4PER_GPIO2_CLKCTRL_RESTORE,
> -- * CM_L4PER_GPIO3_CLKCTRL, CM_L4PER_GPIO3_CLKCTRL_RESTORE,
> -- * CM_L4PER_GPIO4_CLKCTRL, CM_L4PER_GPIO4_CLKCTRL_RESTORE,
> -- * CM_L4PER_GPIO5_CLKCTRL, CM_L4PER_GPIO5_CLKCTRL_RESTORE,
> -- * CM_L4PER_GPIO6_CLKCTRL, CM_L4PER_GPIO6_CLKCTRL_RESTORE,
> -- * CM_L4PER_HDQ1W_CLKCTRL, CM_L4PER_HECC1_CLKCTRL,
> CM_L4PER_HECC2_CLKCTRL,
> -- * CM_L4PER_I2C1_CLKCTRL, CM_L4PER_I2C2_CLKCTRL,
> CM_L4PER_I2C3_CLKCTRL,
> -- * CM_L4PER_I2C4_CLKCTRL, CM_L4PER_I2C5_CLKCTRL,
> CM_L4PER_L4PER_CLKCTRL,
> -- * CM_L4PER_MCASP2_CLKCTRL, CM_L4PER_MCASP3_CLKCTRL,
> CM_L4PER_MCBSP4_CLKCTRL,
> -- * CM_L4PER_MCSPI1_CLKCTRL, CM_L4PER_MCSPI2_CLKCTRL,
> CM_L4PER_MCSPI3_CLKCTRL,
> -- * CM_L4PER_MCSPI4_CLKCTRL, CM_L4PER_MGATE_CLKCTRL,
> CM_L4PER_MMCSD3_CLKCTRL,
> -- * CM_L4PER_MMCSD4_CLKCTRL, CM_L4PER_MMCSD5_CLKCTRL,
> CM_L4PER_MSPROHG_CLKCTRL,
> -+ * CM_L4PER_GPIO2_CLKCTRL, CM_L4PER_GPIO3_CLKCTRL,
> CM_L4PER_GPIO4_CLKCTRL,
> -+ * CM_L4PER_GPIO5_CLKCTRL, CM_L4PER_GPIO6_CLKCTRL,
> CM_L4PER_HDQ1W_CLKCTRL,
> -+ * CM_L4PER_HECC1_CLKCTRL, CM_L4PER_HECC2_CLKCTRL,
> CM_L4PER_I2C1_CLKCTRL,
> -+ * CM_L4PER_I2C2_CLKCTRL, CM_L4PER_I2C3_CLKCTRL,
> CM_L4PER_I2C4_CLKCTRL,
> -+ * CM_L4PER_I2C5_CLKCTRL, CM_L4PER_L4PER_CLKCTRL,
> CM_L4PER_MCASP2_CLKCTRL,
> -+ * CM_L4PER_MCASP3_CLKCTRL, CM_L4PER_MCBSP4_CLKCTRL,
> CM_L4PER_MCSPI1_CLKCTRL,
> -+ * CM_L4PER_MCSPI2_CLKCTRL, CM_L4PER_MCSPI3_CLKCTRL,
> CM_L4PER_MCSPI4_CLKCTRL,
> -+ * CM_L4PER_MGATE_CLKCTRL, CM_L4PER_MMCSD3_CLKCTRL,
> CM_L4PER_MMCSD4_CLKCTRL,
> -+ * CM_L4PER_MMCSD5_CLKCTRL, CM_L4PER_MSPROHG_CLKCTRL,
> -  * CM_L4PER_SLIMBUS2_CLKCTRL, CM_L4PER_UART1_CLKCTRL,
> CM_L4PER_UART2_CLKCTRL,
> -  * CM_L4PER_UART3_CLKCTRL, CM_L4PER_UART4_CLKCTRL,
> CM_L4SEC_AES1_CLKCTRL,
> -  * CM_L4SEC_AES2_CLKCTRL, CM_L4SEC_CRYPTODMA_CLKCTRL,
> CM_L4SEC_DES3DES_CLKCTRL,
> -@@ -1221,11 +1123,9 @@
> - #define OMAP4430_OPTFCLKEN_CTRLCLK_MASK
> 	(1 << 8)
> -
> - /*
> -- * Used by CM_L4PER_GPIO2_CLKCTRL,
> CM_L4PER_GPIO2_CLKCTRL_RESTORE,
> -- * CM_L4PER_GPIO3_CLKCTRL, CM_L4PER_GPIO3_CLKCTRL_RESTORE,
> -- * CM_L4PER_GPIO4_CLKCTRL, CM_L4PER_GPIO4_CLKCTRL_RESTORE,
> -- * CM_L4PER_GPIO5_CLKCTRL, CM_L4PER_GPIO5_CLKCTRL_RESTORE,
> -- * CM_L4PER_GPIO6_CLKCTRL, CM_L4PER_GPIO6_CLKCTRL_RESTORE,
> CM_WKUP_GPIO1_CLKCTRL
> -+ * Used by CM_L4PER_GPIO2_CLKCTRL, CM_L4PER_GPIO3_CLKCTRL,
> -+ * CM_L4PER_GPIO4_CLKCTRL, CM_L4PER_GPIO5_CLKCTRL,
> CM_L4PER_GPIO6_CLKCTRL,
> -+ * CM_WKUP_GPIO1_CLKCTRL
> -  */
> - #define OMAP4430_OPTFCLKEN_DBCLK_SHIFT				8
> - #define OMAP4430_OPTFCLKEN_DBCLK_MASK
> 	(1 << 8)
> -@@ -1254,23 +1154,23 @@
> - #define OMAP4430_OPTFCLKEN_FCLK2_SHIFT				10
> - #define OMAP4430_OPTFCLKEN_FCLK2_MASK				(1 <<
> 10)
> -
> --/* Used by CM_L3INIT_USB_HOST_CLKCTRL,
> CM_L3INIT_USB_HOST_CLKCTRL_RESTORE */
> -+/* Used by CM_L3INIT_USB_HOST_CLKCTRL */
> - #define OMAP4430_OPTFCLKEN_FUNC48MCLK_SHIFT			15
> - #define OMAP4430_OPTFCLKEN_FUNC48MCLK_MASK			(1 <<
> 15)
> -
> --/* Used by CM_L3INIT_USB_HOST_CLKCTRL,
> CM_L3INIT_USB_HOST_CLKCTRL_RESTORE */
> -+/* Used by CM_L3INIT_USB_HOST_CLKCTRL */
> - #define OMAP4430_OPTFCLKEN_HSIC480M_P1_CLK_SHIFT		13
> - #define OMAP4430_OPTFCLKEN_HSIC480M_P1_CLK_MASK
> 	(1 << 13)
> -
> --/* Used by CM_L3INIT_USB_HOST_CLKCTRL,
> CM_L3INIT_USB_HOST_CLKCTRL_RESTORE */
> -+/* Used by CM_L3INIT_USB_HOST_CLKCTRL */
> - #define OMAP4430_OPTFCLKEN_HSIC480M_P2_CLK_SHIFT		14
> - #define OMAP4430_OPTFCLKEN_HSIC480M_P2_CLK_MASK
> 	(1 << 14)
> -
> --/* Used by CM_L3INIT_USB_HOST_CLKCTRL,
> CM_L3INIT_USB_HOST_CLKCTRL_RESTORE */
> -+/* Used by CM_L3INIT_USB_HOST_CLKCTRL */
> - #define OMAP4430_OPTFCLKEN_HSIC60M_P1_CLK_SHIFT
> 	11
> - #define OMAP4430_OPTFCLKEN_HSIC60M_P1_CLK_MASK
> 	(1 << 11)
> -
> --/* Used by CM_L3INIT_USB_HOST_CLKCTRL,
> CM_L3INIT_USB_HOST_CLKCTRL_RESTORE */
> -+/* Used by CM_L3INIT_USB_HOST_CLKCTRL */
> - #define OMAP4430_OPTFCLKEN_HSIC60M_P2_CLK_SHIFT
> 	12
> - #define OMAP4430_OPTFCLKEN_HSIC60M_P2_CLK_MASK
> 	(1 << 12)
> -
> -@@ -1306,27 +1206,27 @@
> - #define OMAP4430_OPTFCLKEN_TXPHYCLK_SHIFT			8
> - #define OMAP4430_OPTFCLKEN_TXPHYCLK_MASK			(1 <<
> 8)
> -
> --/* Used by CM_L3INIT_USB_TLL_CLKCTRL,
> CM_L3INIT_USB_TLL_CLKCTRL_RESTORE */
> -+/* Used by CM_L3INIT_USB_TLL_CLKCTRL */
> - #define OMAP4430_OPTFCLKEN_USB_CH0_CLK_SHIFT			8
> - #define OMAP4430_OPTFCLKEN_USB_CH0_CLK_MASK			(1 <<
> 8)
> -
> --/* Used by CM_L3INIT_USB_TLL_CLKCTRL,
> CM_L3INIT_USB_TLL_CLKCTRL_RESTORE */
> -+/* Used by CM_L3INIT_USB_TLL_CLKCTRL */
> - #define OMAP4430_OPTFCLKEN_USB_CH1_CLK_SHIFT			9
> - #define OMAP4430_OPTFCLKEN_USB_CH1_CLK_MASK			(1 <<
> 9)
> -
> --/* Used by CM_L3INIT_USB_TLL_CLKCTRL,
> CM_L3INIT_USB_TLL_CLKCTRL_RESTORE */
> -+/* Used by CM_L3INIT_USB_TLL_CLKCTRL */
> - #define OMAP4430_OPTFCLKEN_USB_CH2_CLK_SHIFT			10
> - #define OMAP4430_OPTFCLKEN_USB_CH2_CLK_MASK			(1 <<
> 10)
> -
> --/* Used by CM_L3INIT_USB_HOST_CLKCTRL,
> CM_L3INIT_USB_HOST_CLKCTRL_RESTORE */
> -+/* Used by CM_L3INIT_USB_HOST_CLKCTRL */
> - #define OMAP4430_OPTFCLKEN_UTMI_P1_CLK_SHIFT			8
> - #define OMAP4430_OPTFCLKEN_UTMI_P1_CLK_MASK			(1 <<
> 8)
> -
> --/* Used by CM_L3INIT_USB_HOST_CLKCTRL,
> CM_L3INIT_USB_HOST_CLKCTRL_RESTORE */
> -+/* Used by CM_L3INIT_USB_HOST_CLKCTRL */
> - #define OMAP4430_OPTFCLKEN_UTMI_P2_CLK_SHIFT			9
> - #define OMAP4430_OPTFCLKEN_UTMI_P2_CLK_MASK			(1 <<
> 9)
> -
> --/* Used by CM_L3INIT_USB_HOST_CLKCTRL,
> CM_L3INIT_USB_HOST_CLKCTRL_RESTORE */
> -+/* Used by CM_L3INIT_USB_HOST_CLKCTRL */
> - #define OMAP4430_OPTFCLKEN_UTMI_P3_CLK_SHIFT			10
> - #define OMAP4430_OPTFCLKEN_UTMI_P3_CLK_MASK			(1 <<
> 10)
> -
> -@@ -1374,7 +1274,7 @@
> - #define OMAP4430_PMD_TRACE_MUX_CTRL_SHIFT			22
> - #define OMAP4430_PMD_TRACE_MUX_CTRL_MASK			(0x3
> << 22)
> -
> --/* Used by CM_DYN_DEP_PRESCAL, CM_DYN_DEP_PRESCAL_RESTORE */
> -+/* Used by CM_DYN_DEP_PRESCAL */
> - #define OMAP4430_PRESCAL_SHIFT					0
> - #define OMAP4430_PRESCAL_MASK					(0x3f
> << 0)
> -
> -@@ -1382,10 +1282,7 @@
> - #define OMAP4430_R_RTL_SHIFT					11
> - #define OMAP4430_R_RTL_MASK					(0x1f
> << 11)
> -
> --/*
> -- * Used by CM_L3INIT_USB_HOST_CLKCTRL,
> CM_L3INIT_USB_HOST_CLKCTRL_RESTORE,
> -- * CM_L3INIT_USB_TLL_CLKCTRL, CM_L3INIT_USB_TLL_CLKCTRL_RESTORE
> -- */
> -+/* Used by CM_L3INIT_USB_HOST_CLKCTRL, CM_L3INIT_USB_TLL_CLKCTRL
> */
> - #define OMAP4430_SAR_MODE_SHIFT
> 	4
> - #define OMAP4430_SAR_MODE_MASK
> 	(1 << 4)
> -
> -@@ -1397,7 +1294,7 @@
> - #define OMAP4430_SCHEME_SHIFT					30
> - #define OMAP4430_SCHEME_MASK					(0x3
> << 30)
> -
> --/* Used by CM_L4CFG_DYNAMICDEP, CM_L4CFG_DYNAMICDEP_RESTORE */
> -+/* Used by CM_L4CFG_DYNAMICDEP */
> - #define OMAP4430_SDMA_DYNDEP_SHIFT				11
> - #define OMAP4430_SDMA_DYNDEP_MASK				(1 <<
> 11)
> -
> -@@ -1417,10 +1314,10 @@
> -  * CM_L3INIT_HSI_CLKCTRL, CM_L3INIT_MMC1_CLKCTRL,
> CM_L3INIT_MMC2_CLKCTRL,
> -  * CM_L3INIT_MMC6_CLKCTRL, CM_L3INIT_P1500_CLKCTRL,
> CM_L3INIT_PCIESS_CLKCTRL,
> -  * CM_L3INIT_SATA_CLKCTRL, CM_L3INIT_TPPSS_CLKCTRL,
> CM_L3INIT_UNIPRO1_CLKCTRL,
> -- * CM_L3INIT_USB_HOST_CLKCTRL,
> CM_L3INIT_USB_HOST_CLKCTRL_RESTORE,
> -- * CM_L3INIT_USB_HOST_FS_CLKCTRL, CM_L3INIT_USB_OTG_CLKCTRL,
> -- * CM_L3INIT_XHPI_CLKCTRL, CM_L4SEC_CRYPTODMA_CLKCTRL,
> CM_MPU_MPU_CLKCTRL,
> -- * CM_SDMA_SDMA_CLKCTRL, CM_TESLA_TESLA_CLKCTRL
> -+ * CM_L3INIT_USB_HOST_CLKCTRL, CM_L3INIT_USB_HOST_FS_CLKCTRL,
> -+ * CM_L3INIT_USB_OTG_CLKCTRL, CM_L3INIT_XHPI_CLKCTRL,
> -+ * CM_L4SEC_CRYPTODMA_CLKCTRL, CM_MPU_MPU_CLKCTRL,
> CM_SDMA_SDMA_CLKCTRL,
> -+ * CM_TESLA_TESLA_CLKCTRL
> -  */
> - #define OMAP4430_STBYST_SHIFT					18
> - #define OMAP4430_STBYST_MASK					(1 <<
> 18)
> -@@ -1438,17 +1335,13 @@
> - #define OMAP4430_ST_DPLL_CLKDCOLDO_MASK
> 	(1 << 9)
> -
> - /*
> -- * Used by CM_DIV_M2_DPLL_ABE, CM_DIV_M2_DPLL_CORE,
> -- * CM_DIV_M2_DPLL_CORE_RESTORE, CM_DIV_M2_DPLL_DDRPHY,
> CM_DIV_M2_DPLL_MPU,
> -- * CM_DIV_M2_DPLL_PER, CM_DIV_M2_DPLL_USB
> -+ * Used by CM_DIV_M2_DPLL_ABE, CM_DIV_M2_DPLL_CORE,
> CM_DIV_M2_DPLL_DDRPHY,
> -+ * CM_DIV_M2_DPLL_MPU, CM_DIV_M2_DPLL_PER,
> CM_DIV_M2_DPLL_USB
> -  */
> - #define OMAP4430_ST_DPLL_CLKOUT_SHIFT				9
> - #define OMAP4430_ST_DPLL_CLKOUT_MASK				(1 <<
> 9)
> -
> --/*
> -- * Used by CM_DIV_M3_DPLL_ABE, CM_DIV_M3_DPLL_CORE,
> -- * CM_DIV_M3_DPLL_CORE_RESTORE, CM_DIV_M3_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M3_DPLL_ABE, CM_DIV_M3_DPLL_CORE,
> CM_DIV_M3_DPLL_PER */
> - #define OMAP4430_ST_DPLL_CLKOUTHIF_SHIFT			9
> - #define OMAP4430_ST_DPLL_CLKOUTHIF_MASK
> 	(1 << 9)
> -
> -@@ -1457,30 +1350,24 @@
> - #define OMAP4430_ST_DPLL_CLKOUTX2_MASK
> 	(1 << 11)
> -
> - /*
> -- * Used by CM_DIV_M4_DPLL_CORE, CM_DIV_M4_DPLL_CORE_RESTORE,
> -- * CM_DIV_M4_DPLL_DDRPHY, CM_DIV_M4_DPLL_IVA,
> CM_DIV_M4_DPLL_PER
> -+ * Used by CM_DIV_M4_DPLL_CORE, CM_DIV_M4_DPLL_DDRPHY,
> CM_DIV_M4_DPLL_IVA,
> -+ * CM_DIV_M4_DPLL_PER
> -  */
> - #define OMAP4430_ST_HSDIVIDER_CLKOUT1_SHIFT			9
> - #define OMAP4430_ST_HSDIVIDER_CLKOUT1_MASK			(1 <<
> 9)
> -
> - /*
> -- * Used by CM_DIV_M5_DPLL_CORE, CM_DIV_M5_DPLL_CORE_RESTORE,
> -- * CM_DIV_M5_DPLL_DDRPHY, CM_DIV_M5_DPLL_IVA,
> CM_DIV_M5_DPLL_PER
> -+ * Used by CM_DIV_M5_DPLL_CORE, CM_DIV_M5_DPLL_DDRPHY,
> CM_DIV_M5_DPLL_IVA,
> -+ * CM_DIV_M5_DPLL_PER
> -  */
> - #define OMAP4430_ST_HSDIVIDER_CLKOUT2_SHIFT			9
> - #define OMAP4430_ST_HSDIVIDER_CLKOUT2_MASK			(1 <<
> 9)
> -
> --/*
> -- * Used by CM_DIV_M6_DPLL_CORE, CM_DIV_M6_DPLL_CORE_RESTORE,
> -- * CM_DIV_M6_DPLL_DDRPHY, CM_DIV_M6_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M6_DPLL_CORE, CM_DIV_M6_DPLL_DDRPHY,
> CM_DIV_M6_DPLL_PER */
> - #define OMAP4430_ST_HSDIVIDER_CLKOUT3_SHIFT			9
> - #define OMAP4430_ST_HSDIVIDER_CLKOUT3_MASK			(1 <<
> 9)
> -
> --/*
> -- * Used by CM_DIV_M7_DPLL_CORE, CM_DIV_M7_DPLL_CORE_RESTORE,
> -- * CM_DIV_M7_DPLL_PER
> -- */
> -+/* Used by CM_DIV_M7_DPLL_CORE, CM_DIV_M7_DPLL_PER */
> - #define OMAP4430_ST_HSDIVIDER_CLKOUT4_SHIFT			9
> - #define OMAP4430_ST_HSDIVIDER_CLKOUT4_MASK			(1 <<
> 9)
> -
> -@@ -1496,7 +1383,7 @@
> - #define OMAP4430_SYS_CLKSEL_SHIFT				0
> - #define OMAP4430_SYS_CLKSEL_MASK				(0x7
> << 0)
> -
> --/* Used by CM_L4CFG_DYNAMICDEP, CM_L4CFG_DYNAMICDEP_RESTORE */
> -+/* Used by CM_L4CFG_DYNAMICDEP */
> - #define OMAP4430_TESLA_DYNDEP_SHIFT				1
> - #define OMAP4430_TESLA_DYNDEP_MASK				(1 <<
> 1)
> -
> -@@ -1505,11 +1392,9 @@
> - #define OMAP4430_TESLA_STATDEP_MASK				(1 <<
> 1)
> -
> - /*
> -- * Used by CM_D2D_DYNAMICDEP, CM_D2D_DYNAMICDEP_RESTORE,
> CM_DUCATI_DYNAMICDEP,
> -- * CM_EMU_DYNAMICDEP, CM_L3_1_DYNAMICDEP,
> CM_L3_1_DYNAMICDEP_RESTORE,
> -- * CM_L3_2_DYNAMICDEP, CM_L3_2_DYNAMICDEP_RESTORE,
> CM_L4CFG_DYNAMICDEP,
> -- * CM_L4CFG_DYNAMICDEP_RESTORE, CM_L4PER_DYNAMICDEP,
> -- * CM_L4PER_DYNAMICDEP_RESTORE, CM_MPU_DYNAMICDEP,
> CM_TESLA_DYNAMICDEP
> -+ * Used by CM_D2D_DYNAMICDEP, CM_DUCATI_DYNAMICDEP,
> CM_EMU_DYNAMICDEP,
> -+ * CM_L3_1_DYNAMICDEP, CM_L3_2_DYNAMICDEP,
> CM_L4CFG_DYNAMICDEP,
> -+ * CM_L4PER_DYNAMICDEP, CM_MPU_DYNAMICDEP,
> CM_TESLA_DYNAMICDEP
> -  */
> - #define OMAP4430_WINDOWSIZE_SHIFT				24
> - #define OMAP4430_WINDOWSIZE_MASK				(0xf
> << 24)
> -diff --git a/arch/arm/mach-omap2/cm1_44xx.h b/arch/arm/mach-
> omap2/cm1_44xx.h
> -index fc649f5..1bc00dc 100644
> ---- a/arch/arm/mach-omap2/cm1_44xx.h
> -+++ b/arch/arm/mach-omap2/cm1_44xx.h
> -@@ -217,42 +217,6 @@
> - #define OMAP4_CM1_ABE_WDT3_CLKCTRL_OFFSET		0x0088
> - #define OMAP4430_CM1_ABE_WDT3_CLKCTRL
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_INST, 0x0088)
> -
> --/* CM1.RESTORE_CM1 register offsets */
> --#define OMAP4_CM_CLKSEL_CORE_RESTORE_OFFSET		0x0000
> --#define OMAP4430_CM_CLKSEL_CORE_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x0000)
> --#define OMAP4_CM_DIV_M2_DPLL_CORE_RESTORE_OFFSET	0x0004
> --#define OMAP4430_CM_DIV_M2_DPLL_CORE_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x0004)
> --#define OMAP4_CM_DIV_M3_DPLL_CORE_RESTORE_OFFSET	0x0008
> --#define OMAP4430_CM_DIV_M3_DPLL_CORE_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x0008)
> --#define OMAP4_CM_DIV_M4_DPLL_CORE_RESTORE_OFFSET	0x000c
> --#define OMAP4430_CM_DIV_M4_DPLL_CORE_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x000c)
> --#define OMAP4_CM_DIV_M5_DPLL_CORE_RESTORE_OFFSET	0x0010
> --#define OMAP4430_CM_DIV_M5_DPLL_CORE_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x0010)
> --#define OMAP4_CM_DIV_M6_DPLL_CORE_RESTORE_OFFSET	0x0014
> --#define OMAP4430_CM_DIV_M6_DPLL_CORE_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x0014)
> --#define OMAP4_CM_DIV_M7_DPLL_CORE_RESTORE_OFFSET	0x0018
> --#define OMAP4430_CM_DIV_M7_DPLL_CORE_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x0018)
> --#define OMAP4_CM_CLKSEL_DPLL_CORE_RESTORE_OFFSET	0x001c
> --#define OMAP4430_CM_CLKSEL_DPLL_CORE_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x001c)
> --#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_CORE_RESTORE_OFFSET
> 	0x0020
> --#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_CORE_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x0020)
> --#define OMAP4_CM_SSC_INSTFREQDIV_DPLL_CORE_RESTORE_OFFSET
> 	0x0024
> --#define OMAP4430_CM_SSC_INSTFREQDIV_DPLL_CORE_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x0024)
> --#define OMAP4_CM_CLKMODE_DPLL_CORE_RESTORE_OFFSET
> 	0x0028
> --#define OMAP4430_CM_CLKMODE_DPLL_CORE_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x0028)
> --#define OMAP4_CM_SHADOW_FREQ_CONFIG2_RESTORE_OFFSET
> 	0x002c
> --#define OMAP4430_CM_SHADOW_FREQ_CONFIG2_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x002c)
> --#define OMAP4_CM_SHADOW_FREQ_CONFIG1_RESTORE_OFFSET
> 	0x0030
> --#define OMAP4430_CM_SHADOW_FREQ_CONFIG1_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x0030)
> --#define OMAP4_CM_AUTOIDLE_DPLL_CORE_RESTORE_OFFSET
> 	0x0034
> --#define OMAP4430_CM_AUTOIDLE_DPLL_CORE_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x0034)
> --#define OMAP4_CM_MPU_CLKSTCTRL_RESTORE_OFFSET
> 	0x0038
> --#define OMAP4430_CM_MPU_CLKSTCTRL_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x0038)
> --#define OMAP4_CM_CM1_PROFILING_CLKCTRL_RESTORE_OFFSET
> 	0x003c
> --#define OMAP4430_CM_CM1_PROFILING_CLKCTRL_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x003c)
> --#define OMAP4_CM_DYN_DEP_PRESCAL_RESTORE_OFFSET
> 	0x0040
> --#define OMAP4430_CM_DYN_DEP_PRESCAL_RESTORE
> 	OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST,
> 0x0040)
> --
> - /* Function prototypes */
> - extern u32 omap4_cm1_read_inst_reg(s16 inst, u16 idx);
> - extern void omap4_cm1_write_inst_reg(u32 val, s16 inst, u16 idx);
> -diff --git a/arch/arm/mach-omap2/cm2_44xx.h b/arch/arm/mach-
> omap2/cm2_44xx.h
> -index 8036a16..b9de72d 100644
> ---- a/arch/arm/mach-omap2/cm2_44xx.h
> -+++ b/arch/arm/mach-omap2/cm2_44xx.h
> -@@ -449,56 +449,6 @@
> - #define OMAP4_CM_CEFUSE_CEFUSE_CLKCTRL_OFFSET
> 	0x0020
> - #define OMAP4430_CM_CEFUSE_CEFUSE_CLKCTRL
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CEFUSE_INST,
> 0x0020)
> -
> --/* CM2.RESTORE_CM2 register offsets */
> --#define OMAP4_CM_L3_1_CLKSTCTRL_RESTORE_OFFSET
> 	0x0000
> --#define OMAP4430_CM_L3_1_CLKSTCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0000)
> --#define OMAP4_CM_L3_2_CLKSTCTRL_RESTORE_OFFSET
> 	0x0004
> --#define OMAP4430_CM_L3_2_CLKSTCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0004)
> --#define OMAP4_CM_L4CFG_CLKSTCTRL_RESTORE_OFFSET
> 	0x0008
> --#define OMAP4430_CM_L4CFG_CLKSTCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0008)
> --#define OMAP4_CM_MEMIF_CLKSTCTRL_RESTORE_OFFSET
> 	0x000c
> --#define OMAP4430_CM_MEMIF_CLKSTCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x000c)
> --#define OMAP4_CM_L4PER_CLKSTCTRL_RESTORE_OFFSET
> 	0x0010
> --#define OMAP4430_CM_L4PER_CLKSTCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0010)
> --#define OMAP4_CM_L3INIT_CLKSTCTRL_RESTORE_OFFSET	0x0014
> --#define OMAP4430_CM_L3INIT_CLKSTCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0014)
> --#define OMAP4_CM_L3INSTR_L3_3_CLKCTRL_RESTORE_OFFSET
> 	0x0018
> --#define OMAP4430_CM_L3INSTR_L3_3_CLKCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0018)
> --#define OMAP4_CM_L3INSTR_L3_INSTR_CLKCTRL_RESTORE_OFFSET
> 	0x001c
> --#define OMAP4430_CM_L3INSTR_L3_INSTR_CLKCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x001c)
> --#define OMAP4_CM_L3INSTR_OCP_WP1_CLKCTRL_RESTORE_OFFSET
> 	0x0020
> --#define OMAP4430_CM_L3INSTR_OCP_WP1_CLKCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0020)
> --#define OMAP4_CM_CM2_PROFILING_CLKCTRL_RESTORE_OFFSET
> 	0x0024
> --#define OMAP4430_CM_CM2_PROFILING_CLKCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0024)
> --#define OMAP4_CM_D2D_STATICDEP_RESTORE_OFFSET
> 	0x0028
> --#define OMAP4430_CM_D2D_STATICDEP_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0028)
> --#define OMAP4_CM_L3_1_DYNAMICDEP_RESTORE_OFFSET
> 	0x002c
> --#define OMAP4430_CM_L3_1_DYNAMICDEP_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x002c)
> --#define OMAP4_CM_L3_2_DYNAMICDEP_RESTORE_OFFSET
> 	0x0030
> --#define OMAP4430_CM_L3_2_DYNAMICDEP_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0030)
> --#define OMAP4_CM_D2D_DYNAMICDEP_RESTORE_OFFSET
> 	0x0034
> --#define OMAP4430_CM_D2D_DYNAMICDEP_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0034)
> --#define OMAP4_CM_L4CFG_DYNAMICDEP_RESTORE_OFFSET	0x0038
> --#define OMAP4430_CM_L4CFG_DYNAMICDEP_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0038)
> --#define OMAP4_CM_L4PER_DYNAMICDEP_RESTORE_OFFSET	0x003c
> --#define OMAP4430_CM_L4PER_DYNAMICDEP_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x003c)
> --#define OMAP4_CM_L4PER_GPIO2_CLKCTRL_RESTORE_OFFSET
> 	0x0040
> --#define OMAP4430_CM_L4PER_GPIO2_CLKCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0040)
> --#define OMAP4_CM_L4PER_GPIO3_CLKCTRL_RESTORE_OFFSET
> 	0x0044
> --#define OMAP4430_CM_L4PER_GPIO3_CLKCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0044)
> --#define OMAP4_CM_L4PER_GPIO4_CLKCTRL_RESTORE_OFFSET
> 	0x0048
> --#define OMAP4430_CM_L4PER_GPIO4_CLKCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0048)
> --#define OMAP4_CM_L4PER_GPIO5_CLKCTRL_RESTORE_OFFSET
> 	0x004c
> --#define OMAP4430_CM_L4PER_GPIO5_CLKCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x004c)
> --#define OMAP4_CM_L4PER_GPIO6_CLKCTRL_RESTORE_OFFSET
> 	0x0050
> --#define OMAP4430_CM_L4PER_GPIO6_CLKCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0050)
> --#define OMAP4_CM_L3INIT_USB_HOST_CLKCTRL_RESTORE_OFFSET
> 	0x0054
> --#define OMAP4430_CM_L3INIT_USB_HOST_CLKCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0054)
> --#define OMAP4_CM_L3INIT_USB_TLL_CLKCTRL_RESTORE_OFFSET
> 	0x0058
> --#define OMAP4430_CM_L3INIT_USB_TLL_CLKCTRL_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x0058)
> --#define OMAP4_CM_SDMA_STATICDEP_RESTORE_OFFSET
> 	0x005c
> --#define OMAP4430_CM_SDMA_STATICDEP_RESTORE
> 	OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST,
> 0x005c)
> --
> - /* Function prototypes */
> - extern u32 omap4_cm2_read_inst_reg(s16 inst, u16 idx);
> - extern void omap4_cm2_write_inst_reg(u32 val, s16 inst, u16 idx);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0056-OMAP4-
> prcm_mpu-Fix-indent-in-few-macros.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0056-OMAP4-prcm_mpu-Fix-indent-in-few-macros.patch
> deleted file mode 100644
> index 6d9cb33..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0056-OMAP4-prcm_mpu-
> Fix-indent-in-few-macros.patch
> +++ /dev/null
> @@ -1,111 +0,0 @@
> -From e6adacab9f633eddd83c90205bbf5a21c85c9444 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:15:06 -0600
> -Subject: [PATCH 056/149] OMAP4: prcm_mpu: Fix indent in few macros
> -
> -Some maros were not well aligned. Re-align them.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/prcm_mpu44xx.h |   69 +++++++++++++++++---------
> ---------
> - 1 files changed, 34 insertions(+), 35 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/prcm_mpu44xx.h b/arch/arm/mach-
> omap2/prcm_mpu44xx.h
> -index d22d1b4..8a6e250 100644
> ---- a/arch/arm/mach-omap2/prcm_mpu44xx.h
> -+++ b/arch/arm/mach-omap2/prcm_mpu44xx.h
> -@@ -31,7 +31,6 @@
> - 	OMAP2_L4_IO_ADDRESS(OMAP4430_PRCM_MPU_BASE + (inst) +
> (reg))
> -
> - /* PRCM_MPU instances */
> --
> - #define OMAP4430_PRCM_MPU_OCP_SOCKET_PRCM_INST	0x0000
> - #define OMAP4430_PRCM_MPU_DEVICE_PRM_INST	0x0200
> - #define OMAP4430_PRCM_MPU_CPU0_INST		0x0400
> -@@ -52,46 +51,46 @@
> -  */
> -
> - /* PRCM_MPU.OCP_SOCKET_PRCM register offsets */
> --#define OMAP4_REVISION_PRCM_OFFSET			0x0000
> --#define OMAP4430_REVISION_PRCM
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_OCP_S
> OCKET_PRCM_INST, 0x0000)
> -+#define OMAP4_REVISION_PRCM_OFFSET		0x0000
> -+#define OMAP4430_REVISION_PRCM
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_OCP_S
> OCKET_PRCM_INST, 0x0000)
> -
> - /* PRCM_MPU.DEVICE_PRM register offsets */
> --#define OMAP4_PRCM_MPU_PRM_RSTST_OFFSET
> 	0x0000
> --#define OMAP4430_PRCM_MPU_PRM_RSTST
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_DEVICE
> _PRM_INST, 0x0000)
> --#define OMAP4_PRCM_MPU_PRM_PSCON_COUNT_OFFSET
> 	0x0004
> --#define OMAP4430_PRCM_MPU_PRM_PSCON_COUNT
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_DEVICE
> _PRM_INST, 0x0004)
> -+#define OMAP4_PRCM_MPU_PRM_RSTST_OFFSET		0x0000
> -+#define OMAP4430_PRCM_MPU_PRM_RSTST
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_DEVICE
> _PRM_INST, 0x0000)
> -+#define OMAP4_PRCM_MPU_PRM_PSCON_COUNT_OFFSET	0x0004
> -+#define OMAP4430_PRCM_MPU_PRM_PSCON_COUNT
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_DEVICE
> _PRM_INST, 0x0004)
> -
> - /* PRCM_MPU.CPU0 register offsets */
> --#define OMAP4_PM_CPU0_PWRSTCTRL_OFFSET
> 	0x0000
> --#define OMAP4430_PM_CPU0_PWRSTCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x0000)
> --#define OMAP4_PM_CPU0_PWRSTST_OFFSET			0x0004
> --#define OMAP4430_PM_CPU0_PWRSTST
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x0004)
> --#define OMAP4_RM_CPU0_CPU0_CONTEXT_OFFSET		0x0008
> --#define OMAP4430_RM_CPU0_CPU0_CONTEXT
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x0008)
> --#define OMAP4_RM_CPU0_CPU0_RSTCTRL_OFFSET		0x000c
> --#define OMAP4430_RM_CPU0_CPU0_RSTCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x000c)
> --#define OMAP4_RM_CPU0_CPU0_RSTST_OFFSET
> 	0x0010
> --#define OMAP4430_RM_CPU0_CPU0_RSTST
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x0010)
> --#define OMAP4_CM_CPU0_CPU0_CLKCTRL_OFFSET		0x0014
> --#define OMAP4430_CM_CPU0_CPU0_CLKCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x0014)
> --#define OMAP4_CM_CPU0_CLKSTCTRL_OFFSET
> 	0x0018
> --#define OMAP4430_CM_CPU0_CLKSTCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x0018)
> -+#define OMAP4_PM_CPU0_PWRSTCTRL_OFFSET		0x0000
> -+#define OMAP4430_PM_CPU0_PWRSTCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x0000)
> -+#define OMAP4_PM_CPU0_PWRSTST_OFFSET		0x0004
> -+#define OMAP4430_PM_CPU0_PWRSTST
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x0004)
> -+#define OMAP4_RM_CPU0_CPU0_CONTEXT_OFFSET	0x0008
> -+#define OMAP4430_RM_CPU0_CPU0_CONTEXT
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x0008)
> -+#define OMAP4_RM_CPU0_CPU0_RSTCTRL_OFFSET	0x000c
> -+#define OMAP4430_RM_CPU0_CPU0_RSTCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x000c)
> -+#define OMAP4_RM_CPU0_CPU0_RSTST_OFFSET		0x0010
> -+#define OMAP4430_RM_CPU0_CPU0_RSTST
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x0010)
> -+#define OMAP4_CM_CPU0_CPU0_CLKCTRL_OFFSET	0x0014
> -+#define OMAP4430_CM_CPU0_CPU0_CLKCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x0014)
> -+#define OMAP4_CM_CPU0_CLKSTCTRL_OFFSET		0x0018
> -+#define OMAP4430_CM_CPU0_CLKSTCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU0_I
> NST, 0x0018)
> -
> - /* PRCM_MPU.CPU1 register offsets */
> --#define OMAP4_PM_CPU1_PWRSTCTRL_OFFSET
> 	0x0000
> --#define OMAP4430_PM_CPU1_PWRSTCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x0000)
> --#define OMAP4_PM_CPU1_PWRSTST_OFFSET			0x0004
> --#define OMAP4430_PM_CPU1_PWRSTST
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x0004)
> --#define OMAP4_RM_CPU1_CPU1_CONTEXT_OFFSET		0x0008
> --#define OMAP4430_RM_CPU1_CPU1_CONTEXT
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x0008)
> --#define OMAP4_RM_CPU1_CPU1_RSTCTRL_OFFSET		0x000c
> --#define OMAP4430_RM_CPU1_CPU1_RSTCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x000c)
> --#define OMAP4_RM_CPU1_CPU1_RSTST_OFFSET
> 	0x0010
> --#define OMAP4430_RM_CPU1_CPU1_RSTST
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x0010)
> --#define OMAP4_CM_CPU1_CPU1_CLKCTRL_OFFSET		0x0014
> --#define OMAP4430_CM_CPU1_CPU1_CLKCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x0014)
> --#define OMAP4_CM_CPU1_CLKSTCTRL_OFFSET
> 	0x0018
> --#define OMAP4430_CM_CPU1_CLKSTCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x0018)
> -+#define OMAP4_PM_CPU1_PWRSTCTRL_OFFSET		0x0000
> -+#define OMAP4430_PM_CPU1_PWRSTCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x0000)
> -+#define OMAP4_PM_CPU1_PWRSTST_OFFSET		0x0004
> -+#define OMAP4430_PM_CPU1_PWRSTST
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x0004)
> -+#define OMAP4_RM_CPU1_CPU1_CONTEXT_OFFSET	0x0008
> -+#define OMAP4430_RM_CPU1_CPU1_CONTEXT
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x0008)
> -+#define OMAP4_RM_CPU1_CPU1_RSTCTRL_OFFSET	0x000c
> -+#define OMAP4430_RM_CPU1_CPU1_RSTCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x000c)
> -+#define OMAP4_RM_CPU1_CPU1_RSTST_OFFSET		0x0010
> -+#define OMAP4430_RM_CPU1_CPU1_RSTST
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x0010)
> -+#define OMAP4_CM_CPU1_CPU1_CLKCTRL_OFFSET	0x0014
> -+#define OMAP4430_CM_CPU1_CPU1_CLKCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x0014)
> -+#define OMAP4_CM_CPU1_CLKSTCTRL_OFFSET		0x0018
> -+#define OMAP4430_CM_CPU1_CLKSTCTRL
> 	OMAP44XX_PRCM_MPU_REGADDR(OMAP4430_PRCM_MPU_CPU1_I
> NST, 0x0018)
> -
> - /* Function prototypes */
> - # ifndef __ASSEMBLER__
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0057-OMAP4-
> clockdomain-data-Fix-data-order-and-wrong-name.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0057-OMAP4-clockdomain-data-Fix-
> data-order-and-wrong-name.patch
> deleted file mode 100644
> index c222d7c..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0057-OMAP4-clockdomain-
> data-Fix-data-order-and-wrong-name.patch
> +++ /dev/null
> @@ -1,294 +0,0 @@
> -From bbf7af412d82e488052f801f294687aaf1bf260e Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 19:15:06 -0600
> -Subject: [PATCH 057/149] OMAP4: clockdomain data: Fix data order and
> wrong name
> -
> -MPUSS was renamed MPU and L3_D2D D2D.
> -The rename will slightly change the order of the structure
> -and thus generate some structures moves.
> -
> -Add a comment and remove a comma.
> -
> -Update Copyright for TI and Nokia and add back Paul
> -in the author list.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clockdomains44xx_data.c |  124 ++++++++++++++---
> ----------
> - 1 files changed, 63 insertions(+), 61 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clockdomains44xx_data.c
> b/arch/arm/mach-omap2/clockdomains44xx_data.c
> -index a607ec1..66090f2 100644
> ---- a/arch/arm/mach-omap2/clockdomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/clockdomains44xx_data.c
> -@@ -1,11 +1,12 @@
> - /*
> -  * OMAP4 Clock domains framework
> -  *
> -- * Copyright (C) 2009 Texas Instruments, Inc.
> -- * Copyright (C) 2009 Nokia Corporation
> -+ * Copyright (C) 2009-2011 Texas Instruments, Inc.
> -+ * Copyright (C) 2009-2011 Nokia Corporation
> -  *
> -  * Abhijit Pagare (abhijitpagare at ti.com)
> -  * Benoit Cousson (b-cousson at ti.com)
> -+ * Paul Walmsley (paul at pwsan.com)
> -  *
> -  * This file is automatically generated from the OMAP hardware databases.
> -  * We respectfully ask that any modifications to this file be coordinated
> -@@ -32,7 +33,7 @@
> -
> - /* Static Dependencies for OMAP4 Clock Domains */
> -
> --static struct clkdm_dep ducati_wkup_sleep_deps[] = {
> -+static struct clkdm_dep d2d_wkup_sleep_deps[] = {
> - 	{
> - 		.clkdm_name	 = "abe_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> -@@ -50,103 +51,103 @@ static struct clkdm_dep ducati_wkup_sleep_deps[]
> = {
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l3_dss_clkdm",
> -+		.clkdm_name	 = "l3_emif_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l3_emif_clkdm",
> -+		.clkdm_name	 = "l3_init_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l3_gfx_clkdm",
> -+		.clkdm_name	 = "l4_cfg_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l3_init_clkdm",
> -+		.clkdm_name	 = "l4_per_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> -+	{ NULL },
> -+};
> -+
> -+static struct clkdm_dep ducati_wkup_sleep_deps[] = {
> - 	{
> --		.clkdm_name	 = "l4_cfg_clkdm",
> -+		.clkdm_name	 = "abe_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l4_per_clkdm",
> -+		.clkdm_name	 = "ivahd_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l4_secure_clkdm",
> -+		.clkdm_name	 = "l3_1_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l4_wkup_clkdm",
> -+		.clkdm_name	 = "l3_2_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "tesla_clkdm",
> -+		.clkdm_name	 = "l3_dss_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> --	{ NULL },
> --};
> --
> --static struct clkdm_dep iss_wkup_sleep_deps[] = {
> - 	{
> --		.clkdm_name	 = "ivahd_clkdm",
> -+		.clkdm_name	 = "l3_emif_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l3_1_clkdm",
> -+		.clkdm_name	 = "l3_gfx_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l3_emif_clkdm",
> -+		.clkdm_name	 = "l3_init_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> --	{ NULL },
> --};
> --
> --static struct clkdm_dep ivahd_wkup_sleep_deps[] = {
> - 	{
> --		.clkdm_name	 = "l3_1_clkdm",
> -+		.clkdm_name	 = "l4_cfg_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l3_emif_clkdm",
> -+		.clkdm_name	 = "l4_per_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> --	{ NULL },
> --};
> --
> --static struct clkdm_dep l3_d2d_wkup_sleep_deps[] = {
> - 	{
> --		.clkdm_name	 = "abe_clkdm",
> -+		.clkdm_name	 = "l4_secure_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "ivahd_clkdm",
> -+		.clkdm_name	 = "l4_wkup_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l3_1_clkdm",
> -+		.clkdm_name	 = "tesla_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> -+	{ NULL },
> -+};
> -+
> -+static struct clkdm_dep iss_wkup_sleep_deps[] = {
> - 	{
> --		.clkdm_name	 = "l3_2_clkdm",
> -+		.clkdm_name	 = "ivahd_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l3_emif_clkdm",
> -+		.clkdm_name	 = "l3_1_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l3_init_clkdm",
> -+		.clkdm_name	 = "l3_emif_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> -+	{ NULL },
> -+};
> -+
> -+static struct clkdm_dep ivahd_wkup_sleep_deps[] = {
> - 	{
> --		.clkdm_name	 = "l4_cfg_clkdm",
> -+		.clkdm_name	 = "l3_1_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{
> --		.clkdm_name	 = "l4_per_clkdm",
> -+		.clkdm_name	 = "l3_emif_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> - 	},
> - 	{ NULL },
> -@@ -280,7 +281,7 @@ static struct clkdm_dep l4_secure_wkup_sleep_deps[]
> = {
> - 	{ NULL },
> - };
> -
> --static struct clkdm_dep mpuss_wkup_sleep_deps[] = {
> -+static struct clkdm_dep mpu_wkup_sleep_deps[] = {
> - 	{
> - 		.clkdm_name	 = "abe_clkdm",
> - 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
> -@@ -497,14 +498,14 @@ static struct clockdomain l3_init_44xx_clkdm = {
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> --static struct clockdomain mpuss_44xx_clkdm = {
> --	.name		  = "mpuss_clkdm",
> --	.pwrdm		  = { .name = "mpu_pwrdm" },
> --	.prcm_partition	  = OMAP4430_CM1_PARTITION,
> --	.cm_inst	  = OMAP4430_CM1_MPU_INST,
> --	.clkdm_offs	  = OMAP4430_CM1_MPU_MPU_CDOFFS,
> --	.wkdep_srcs	  = mpuss_wkup_sleep_deps,
> --	.sleepdep_srcs	  = mpuss_wkup_sleep_deps,
> -+static struct clockdomain d2d_44xx_clkdm = {
> -+	.name		  = "d2d_clkdm",
> -+	.pwrdm		  = { .name = "core_pwrdm" },
> -+	.prcm_partition	  = OMAP4430_CM2_PARTITION,
> -+	.cm_inst	  = OMAP4430_CM2_CORE_INST,
> -+	.clkdm_offs	  = OMAP4430_CM2_CORE_D2D_CDOFFS,
> -+	.wkdep_srcs	  = d2d_wkup_sleep_deps,
> -+	.sleepdep_srcs	  = d2d_wkup_sleep_deps,
> - 	.flags		  = CLKDM_CAN_FORCE_WAKEUP |
> CLKDM_CAN_HWSUP,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -@@ -563,6 +564,18 @@ static struct clockdomain ducati_44xx_clkdm = {
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> -+static struct clockdomain mpu_44xx_clkdm = {
> -+	.name		  = "mpu_clkdm",
> -+	.pwrdm		  = { .name = "mpu_pwrdm" },
> -+	.prcm_partition	  = OMAP4430_CM1_PARTITION,
> -+	.cm_inst	  = OMAP4430_CM1_MPU_INST,
> -+	.clkdm_offs	  = OMAP4430_CM1_MPU_MPU_CDOFFS,
> -+	.wkdep_srcs	  = mpu_wkup_sleep_deps,
> -+	.sleepdep_srcs	  = mpu_wkup_sleep_deps,
> -+	.flags		  = CLKDM_CAN_FORCE_WAKEUP |
> CLKDM_CAN_HWSUP,
> -+	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -+};
> -+
> - static struct clockdomain l3_2_44xx_clkdm = {
> - 	.name		  = "l3_2_clkdm",
> - 	.pwrdm		  = { .name = "core_pwrdm" },
> -@@ -585,18 +598,6 @@ static struct clockdomain l3_1_44xx_clkdm = {
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> --static struct clockdomain l3_d2d_44xx_clkdm = {
> --	.name		  = "l3_d2d_clkdm",
> --	.pwrdm		  = { .name = "core_pwrdm" },
> --	.prcm_partition	  = OMAP4430_CM2_PARTITION,
> --	.cm_inst	  = OMAP4430_CM2_CORE_INST,
> --	.clkdm_offs	  = OMAP4430_CM2_CORE_D2D_CDOFFS,
> --	.wkdep_srcs	  = l3_d2d_wkup_sleep_deps,
> --	.sleepdep_srcs	  = l3_d2d_wkup_sleep_deps,
> --	.flags		  = CLKDM_CAN_FORCE_WAKEUP |
> CLKDM_CAN_HWSUP,
> --	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> --};
> --
> - static struct clockdomain iss_44xx_clkdm = {
> - 	.name		  = "iss_clkdm",
> - 	.pwrdm		  = { .name = "cam_pwrdm" },
> -@@ -655,6 +656,7 @@ static struct clockdomain l3_dma_44xx_clkdm = {
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> -+/* As clockdomains are added or removed above, this list must also be
> changed */
> - static struct clockdomain *clockdomains_omap44xx[] __initdata = {
> - 	&l4_cefuse_44xx_clkdm,
> - 	&l4_cfg_44xx_clkdm,
> -@@ -666,21 +668,21 @@ static struct clockdomain
> *clockdomains_omap44xx[] __initdata = {
> - 	&abe_44xx_clkdm,
> - 	&l3_instr_44xx_clkdm,
> - 	&l3_init_44xx_clkdm,
> --	&mpuss_44xx_clkdm,
> -+	&d2d_44xx_clkdm,
> - 	&mpu0_44xx_clkdm,
> - 	&mpu1_44xx_clkdm,
> - 	&l3_emif_44xx_clkdm,
> - 	&l4_ao_44xx_clkdm,
> - 	&ducati_44xx_clkdm,
> -+	&mpu_44xx_clkdm,
> - 	&l3_2_44xx_clkdm,
> - 	&l3_1_44xx_clkdm,
> --	&l3_d2d_44xx_clkdm,
> - 	&iss_44xx_clkdm,
> - 	&l3_dss_44xx_clkdm,
> - 	&l4_wkup_44xx_clkdm,
> - 	&emu_sys_44xx_clkdm,
> - 	&l3_dma_44xx_clkdm,
> --	NULL,
> -+	NULL
> - };
> -
> - void __init omap44xx_clockdomains_init(void)
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0058-OMAP-
> omap_device-replace-_find_by_pdev-with-to_omap_.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0058-OMAP-omap_device-replace-
> _find_by_pdev-with-to_omap_.patch
> deleted file mode 100644
> index 2ed265d..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0058-OMAP-omap_device-
> replace-_find_by_pdev-with-to_omap_.patch
> +++ /dev/null
> @@ -1,84 +0,0 @@
> -From b7fd7c4814b75005d2bf89d27e2160e863cdd5c3 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Sat, 9 Jul 2011 19:15:20 -0600
> -Subject: [PATCH 058/149] OMAP: omap_device: replace _find_by_pdev() with
> to_omap_device()
> -
> -The omap_device layer currently has two ways of getting an omap_device
> -pointer from a platform_device pointer.
> -
> -Replace current usage of _find_by_pdev() with to_omap_device() since
> -to_omap_device() is more familiar to the existing to_platform_device()
> -used when getting a platform_device pointer from a struct device pointer.
> -
> -Cc: Felipe Balbi <balbi at ti.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> -Reviewed-by: Felipe Balbi <balbi at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/plat-omap/omap_device.c |   15 +++++----------
> - 1 files changed, 5 insertions(+), 10 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/omap_device.c b/arch/arm/plat-
> omap/omap_device.c
> -index 49fc0df..c8b9cd1 100644
> ---- a/arch/arm/plat-omap/omap_device.c
> -+++ b/arch/arm/plat-omap/omap_device.c
> -@@ -236,11 +236,6 @@ static int _omap_device_deactivate(struct
> omap_device *od, u8 ignore_lat)
> - 	return 0;
> - }
> -
> --static inline struct omap_device *_find_by_pdev(struct platform_device
> *pdev)
> --{
> --	return container_of(pdev, struct omap_device, pdev);
> --}
> --
> - /**
> -  * _add_optional_clock_clkdev - Add clkdev entry for hwmod optional clocks
> -  * @od: struct omap_device *od
> -@@ -316,7 +311,7 @@ u32 omap_device_get_context_loss_count(struct
> platform_device *pdev)
> - 	struct omap_device *od;
> - 	u32 ret = 0;
> -
> --	od = _find_by_pdev(pdev);
> -+	od = to_omap_device(pdev);
> -
> - 	if (od->hwmods_cnt)
> - 		ret = omap_hwmod_get_context_loss_count(od-
> >hwmods[0]);
> -@@ -611,7 +606,7 @@ int omap_device_enable(struct platform_device
> *pdev)
> - 	int ret;
> - 	struct omap_device *od;
> -
> --	od = _find_by_pdev(pdev);
> -+	od = to_omap_device(pdev);
> -
> - 	if (od->_state == OMAP_DEVICE_STATE_ENABLED) {
> - 		WARN(1, "omap_device: %s.%d: %s() called from invalid state
> %d\n",
> -@@ -650,7 +645,7 @@ int omap_device_idle(struct platform_device *pdev)
> - 	int ret;
> - 	struct omap_device *od;
> -
> --	od = _find_by_pdev(pdev);
> -+	od = to_omap_device(pdev);
> -
> - 	if (od->_state != OMAP_DEVICE_STATE_ENABLED) {
> - 		WARN(1, "omap_device: %s.%d: %s() called from invalid state
> %d\n",
> -@@ -681,7 +676,7 @@ int omap_device_shutdown(struct platform_device
> *pdev)
> - 	int ret, i;
> - 	struct omap_device *od;
> -
> --	od = _find_by_pdev(pdev);
> -+	od = to_omap_device(pdev);
> -
> - 	if (od->_state != OMAP_DEVICE_STATE_ENABLED &&
> - 	    od->_state != OMAP_DEVICE_STATE_IDLE) {
> -@@ -722,7 +717,7 @@ int omap_device_align_pm_lat(struct
> platform_device *pdev,
> - 	int ret = -EINVAL;
> - 	struct omap_device *od;
> -
> --	od = _find_by_pdev(pdev);
> -+	od = to_omap_device(pdev);
> -
> - 	if (new_wakeup_lat_limit == od->dev_wakeup_lat)
> - 		return 0;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0059-OMAP-PM-
> remove-OMAP_PM_NONE-config-option.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0059-OMAP-PM-remove-OMAP_PM_NONE-config-
> option.patch
> deleted file mode 100644
> index d9c78e3..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0059-OMAP-PM-remove-
> OMAP_PM_NONE-config-option.patch
> +++ /dev/null
> @@ -1,63 +0,0 @@
> -From 32f213e65477010bd1ac349b4bbe438958044e9f Mon Sep 17 00:00:00
> 2001
> -From: Jean Pihet <jean.pihet at newoldbits.com>
> -Date: Sat, 9 Jul 2011 19:15:41 -0600
> -Subject: [PATCH 059/149] OMAP PM: remove OMAP_PM_NONE config option
> -
> -The current code base is not linking with the OMAP_PM_NONE
> -option set.
> -Since the option OMAP_PM_NOOP provides a no-op/debug layer,
> -OMAP_PM_NONE can be removed.
> -OMAP_PM_NOOP is enabled by default by Kconfig.
> -
> -Signed-off-by: Jean Pihet <j-pihet at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/plat-omap/Kconfig                |    3 ---
> - arch/arm/plat-omap/include/plat/omap-pm.h |    8 --------
> - 2 files changed, 0 insertions(+), 11 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
> -index 49a4c75..6e6735f 100644
> ---- a/arch/arm/plat-omap/Kconfig
> -+++ b/arch/arm/plat-omap/Kconfig
> -@@ -211,9 +211,6 @@ choice
> - 	depends on ARCH_OMAP
> - 	default OMAP_PM_NOOP
> -
> --config OMAP_PM_NONE
> --	bool "No PM layer"
> --
> - config OMAP_PM_NOOP
> - 	bool "No-op/debug PM layer"
> -
> -diff --git a/arch/arm/plat-omap/include/plat/omap-pm.h b/arch/arm/plat-
> omap/include/plat/omap-pm.h
> -index c0a7520..0840df8 100644
> ---- a/arch/arm/plat-omap/include/plat/omap-pm.h
> -+++ b/arch/arm/plat-omap/include/plat/omap-pm.h
> -@@ -40,11 +40,7 @@
> -  * framework starts.  The "_if_" is to avoid name collisions with the
> -  * PM idle-loop code.
> -  */
> --#ifdef CONFIG_OMAP_PM_NONE
> --#define omap_pm_if_early_init() 0
> --#else
> - int __init omap_pm_if_early_init(void);
> --#endif
> -
> - /**
> -  * omap_pm_if_init - OMAP PM init code called after clock fw init
> -@@ -52,11 +48,7 @@ int __init omap_pm_if_early_init(void);
> -  * The main initialization code.  OPP tables are passed in here.  The
> -  * "_if_" is to avoid name collisions with the PM idle-loop code.
> -  */
> --#ifdef CONFIG_OMAP_PM_NONE
> --#define omap_pm_if_init() 0
> --#else
> - int __init omap_pm_if_init(void);
> --#endif
> -
> - /**
> -  * omap_pm_if_exit - OMAP PM exit code
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0060-OMAP4-clock-
> data-Remove-McASP2-McASP3-and-MMC6-clock.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0060-OMAP4-clock-data-Remove-
> McASP2-McASP3-and-MMC6-clock.patch
> deleted file mode 100644
> index a7e85f8..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0060-OMAP4-clock-data-
> Remove-McASP2-McASP3-and-MMC6-clock.patch
> +++ /dev/null
> @@ -1,178 +0,0 @@
> -From e2c80dceb999bf93d079d0a5a040951aad3d2359 Mon Sep 17 00:00:00
> 2001
> -From: Jon Hunter <jon-hunter at ti.com>
> -Date: Sat, 9 Jul 2011 19:14:47 -0600
> -Subject: [PATCH 060/149] OMAP4: clock data: Remove McASP2, McASP3 and
> MMC6 clocks
> -
> -McASP2, 3 and MMC6 modules are not present in the OMAP4 family.
> -Remove the fclk and the clksel related to these nodes.
> -Rename the references that were potentially re-used in order nodes.
> -
> -Remove related macros in prcm header files.
> -
> -Update TI copyright date.
> -
> -Signed-off-by: Jon Hunter <jon-hunter at ti.com>
> -[b-cousson at ti.com: Update the patch according to autogen output]
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -[paul at pwsan.com: split PRCM data changes into a separate patch]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clock44xx_data.c |   86 ++++++++++++------------------
> ---
> - 1 files changed, 31 insertions(+), 55 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-
> omap2/clock44xx_data.c
> -index 8307c9e..96bc668 100644
> ---- a/arch/arm/mach-omap2/clock44xx_data.c
> -+++ b/arch/arm/mach-omap2/clock44xx_data.c
> -@@ -1170,19 +1170,6 @@ static struct clk func_96m_fclk = {
> - 	.set_rate	= &omap2_clksel_set_rate,
> - };
> -
> --static const struct clksel hsmmc6_fclk_sel[] = {
> --	{ .parent = &func_64m_fclk, .rates = div_1_0_rates },
> --	{ .parent = &func_96m_fclk, .rates = div_1_1_rates },
> --	{ .parent = NULL },
> --};
> --
> --static struct clk hsmmc6_fclk = {
> --	.name		= "hsmmc6_fclk",
> --	.parent		= &func_64m_fclk,
> --	.ops		= &clkops_null,
> --	.recalc		= &followparent_recalc,
> --};
> --
> - static const struct clksel_rate div2_1to8_rates[] = {
> - 	{ .div = 1, .val = 0, .flags = RATE_IN_4430 },
> - 	{ .div = 8, .val = 1, .flags = RATE_IN_4430 },
> -@@ -1265,6 +1252,21 @@ static struct clk l4_wkup_clk_mux_ck = {
> - 	.recalc		= &omap2_clksel_recalc,
> - };
> -
> -+static struct clk ocp_abe_iclk = {
> -+	.name		= "ocp_abe_iclk",
> -+	.parent		= &aess_fclk,
> -+	.ops		= &clkops_null,
> -+	.recalc		= &followparent_recalc,
> -+};
> -+
> -+static struct clk per_abe_24m_fclk = {
> -+	.name		= "per_abe_24m_fclk",
> -+	.parent		= &dpll_abe_m2_ck,
> -+	.ops		= &clkops_null,
> -+	.fixed_div	= 4,
> -+	.recalc		= &omap_fixed_divisor_recalc,
> -+};
> -+
> - static const struct clksel per_abe_nc_fclk_div[] = {
> - 	{ .parent = &dpll_abe_m2_ck, .rates = div2_1to2_rates },
> - 	{ .parent = NULL },
> -@@ -1282,41 +1284,6 @@ static struct clk per_abe_nc_fclk = {
> - 	.set_rate	= &omap2_clksel_set_rate,
> - };
> -
> --static const struct clksel mcasp2_fclk_sel[] = {
> --	{ .parent = &func_96m_fclk, .rates = div_1_0_rates },
> --	{ .parent = &per_abe_nc_fclk, .rates = div_1_1_rates },
> --	{ .parent = NULL },
> --};
> --
> --static struct clk mcasp2_fclk = {
> --	.name		= "mcasp2_fclk",
> --	.parent		= &func_96m_fclk,
> --	.ops		= &clkops_null,
> --	.recalc		= &followparent_recalc,
> --};
> --
> --static struct clk mcasp3_fclk = {
> --	.name		= "mcasp3_fclk",
> --	.parent		= &func_96m_fclk,
> --	.ops		= &clkops_null,
> --	.recalc		= &followparent_recalc,
> --};
> --
> --static struct clk ocp_abe_iclk = {
> --	.name		= "ocp_abe_iclk",
> --	.parent		= &aess_fclk,
> --	.ops		= &clkops_null,
> --	.recalc		= &followparent_recalc,
> --};
> --
> --static struct clk per_abe_24m_fclk = {
> --	.name		= "per_abe_24m_fclk",
> --	.parent		= &dpll_abe_m2_ck,
> --	.ops		= &clkops_null,
> --	.fixed_div	= 4,
> --	.recalc		= &omap_fixed_divisor_recalc,
> --};
> --
> - static const struct clksel pmd_stm_clock_mux_sel[] = {
> - 	{ .parent = &sys_clkin_ck, .rates = div_1_0_rates },
> - 	{ .parent = &dpll_core_m6x2_ck, .rates = div_1_1_rates },
> -@@ -1996,10 +1963,16 @@ static struct clk mcbsp3_fck = {
> - 	.clkdm_name	= "abe_clkdm",
> - };
> -
> -+static const struct clksel mcbsp4_sync_mux_sel[] = {
> -+	{ .parent = &func_96m_fclk, .rates = div_1_0_rates },
> -+	{ .parent = &per_abe_nc_fclk, .rates = div_1_1_rates },
> -+	{ .parent = NULL },
> -+};
> -+
> - static struct clk mcbsp4_sync_mux_ck = {
> - 	.name		= "mcbsp4_sync_mux_ck",
> - 	.parent		= &func_96m_fclk,
> --	.clksel		= mcasp2_fclk_sel,
> -+	.clksel		= mcbsp4_sync_mux_sel,
> - 	.init		= &omap2_init_clksel_parent,
> - 	.clksel_reg	= OMAP4430_CM_L4PER_MCBSP4_CLKCTRL,
> - 	.clksel_mask	= OMAP4430_CLKSEL_INTERNAL_SOURCE_MASK,
> -@@ -2078,11 +2051,17 @@ static struct clk mcspi4_fck = {
> - 	.recalc		= &followparent_recalc,
> - };
> -
> -+static const struct clksel hsmmc1_fclk_sel[] = {
> -+	{ .parent = &func_64m_fclk, .rates = div_1_0_rates },
> -+	{ .parent = &func_96m_fclk, .rates = div_1_1_rates },
> -+	{ .parent = NULL },
> -+};
> -+
> - /* Merged hsmmc1_fclk into mmc1 */
> - static struct clk mmc1_fck = {
> - 	.name		= "mmc1_fck",
> - 	.parent		= &func_64m_fclk,
> --	.clksel		= hsmmc6_fclk_sel,
> -+	.clksel		= hsmmc1_fclk_sel,
> - 	.init		= &omap2_init_clksel_parent,
> - 	.clksel_reg	= OMAP4430_CM_L3INIT_MMC1_CLKCTRL,
> - 	.clksel_mask	= OMAP4430_CLKSEL_MASK,
> -@@ -2097,7 +2076,7 @@ static struct clk mmc1_fck = {
> - static struct clk mmc2_fck = {
> - 	.name		= "mmc2_fck",
> - 	.parent		= &func_64m_fclk,
> --	.clksel		= hsmmc6_fclk_sel,
> -+	.clksel		= hsmmc1_fclk_sel,
> - 	.init		= &omap2_init_clksel_parent,
> - 	.clksel_reg	= OMAP4430_CM_L3INIT_MMC2_CLKCTRL,
> - 	.clksel_mask	= OMAP4430_CLKSEL_MASK,
> -@@ -3094,17 +3073,14 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK(NULL,	"func_48mc_fclk",		&func_48mc_fclk,
> 	CK_443X),
> - 	CLK(NULL,	"func_64m_fclk",		&func_64m_fclk,
> 	CK_443X),
> - 	CLK(NULL,	"func_96m_fclk",		&func_96m_fclk,
> 	CK_443X),
> --	CLK(NULL,	"hsmmc6_fclk",			&hsmmc6_fclk,
> 	CK_443X),
> - 	CLK(NULL,	"init_60m_fclk",		&init_60m_fclk,
> 	CK_443X),
> - 	CLK(NULL,	"l3_div_ck",			&l3_div_ck,
> 	CK_443X),
> - 	CLK(NULL,	"l4_div_ck",			&l4_div_ck,
> 	CK_443X),
> - 	CLK(NULL,	"lp_clk_div_ck",		&lp_clk_div_ck,
> 	CK_443X),
> - 	CLK(NULL,	"l4_wkup_clk_mux_ck",
> 	&l4_wkup_clk_mux_ck,	CK_443X),
> --	CLK(NULL,	"per_abe_nc_fclk",		&per_abe_nc_fclk,
> 	CK_443X),
> --	CLK(NULL,	"mcasp2_fclk",			&mcasp2_fclk,
> 	CK_443X),
> --	CLK(NULL,	"mcasp3_fclk",			&mcasp3_fclk,
> 	CK_443X),
> - 	CLK(NULL,	"ocp_abe_iclk",			&ocp_abe_iclk,
> 	CK_443X),
> - 	CLK(NULL,	"per_abe_24m_fclk",		&per_abe_24m_fclk,
> 	CK_443X),
> -+	CLK(NULL,	"per_abe_nc_fclk",		&per_abe_nc_fclk,
> 	CK_443X),
> - 	CLK(NULL,	"pmd_stm_clock_mux_ck",
> 	&pmd_stm_clock_mux_ck,	CK_443X),
> - 	CLK(NULL,	"pmd_trace_clk_mux_ck",
> 	&pmd_trace_clk_mux_ck,	CK_443X),
> - 	CLK(NULL,	"syc_clk_div_ck",		&syc_clk_div_ck,
> 	CK_443X),
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0061-OMAP4-clock-
> data-Remove-UNIPRO-clock-nodes.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0061-OMAP4-clock-data-Remove-UNIPRO-clock-nodes.patch
> deleted file mode 100644
> index fb4d44f..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0061-OMAP4-clock-data-
> Remove-UNIPRO-clock-nodes.patch
> +++ /dev/null
> @@ -1,99 +0,0 @@
> -From 73203093397f6939cea566cbedc2affc51d4b597 Mon Sep 17 00:00:00
> 2001
> -From: Jon Hunter <jon-hunter at ti.com>
> -Date: Sat, 9 Jul 2011 19:14:47 -0600
> -Subject: [PATCH 061/149] OMAP4: clock data: Remove UNIPRO clock nodes
> -
> -UNIPRO was removed from OMAP4 devices from ES2.0 onwards.
> -Since this IP was anyway non-functional and not supported,
> -it is best to remove it completely.
> -
> -Signed-off-by: Jon Hunter <jon-hunter at ti.com>
> -[b-cousson at ti.com: Update the changelog]
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -[paul at pwsan.com: split PRCM header file changes into a separate patch]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clock44xx_data.c |   60 ----------------------------------
> - 1 files changed, 0 insertions(+), 60 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-
> omap2/clock44xx_data.c
> -index 96bc668..044df38 100644
> ---- a/arch/arm/mach-omap2/clock44xx_data.c
> -+++ b/arch/arm/mach-omap2/clock44xx_data.c
> -@@ -935,63 +935,6 @@ static struct clk dpll_per_m7x2_ck = {
> - 	.set_rate	= &omap2_clksel_set_rate,
> - };
> -
> --/* DPLL_UNIPRO */
> --static struct dpll_data dpll_unipro_dd = {
> --	.mult_div1_reg	= OMAP4430_CM_CLKSEL_DPLL_UNIPRO,
> --	.clk_bypass	= &sys_clkin_ck,
> --	.clk_ref	= &sys_clkin_ck,
> --	.control_reg	= OMAP4430_CM_CLKMODE_DPLL_UNIPRO,
> --	.modes		= (1 << DPLL_LOW_POWER_BYPASS) | (1 <<
> DPLL_LOCKED),
> --	.autoidle_reg	= OMAP4430_CM_AUTOIDLE_DPLL_UNIPRO,
> --	.idlest_reg	= OMAP4430_CM_IDLEST_DPLL_UNIPRO,
> --	.mult_mask	= OMAP4430_DPLL_MULT_MASK,
> --	.div1_mask	= OMAP4430_DPLL_DIV_MASK,
> --	.enable_mask	= OMAP4430_DPLL_EN_MASK,
> --	.autoidle_mask	= OMAP4430_AUTO_DPLL_MODE_MASK,
> --	.idlest_mask	= OMAP4430_ST_DPLL_CLK_MASK,
> --	.max_multiplier	= 2047,
> --	.max_divider	= 128,
> --	.min_divider	= 1,
> --};
> --
> --
> --static struct clk dpll_unipro_ck = {
> --	.name		= "dpll_unipro_ck",
> --	.parent		= &sys_clkin_ck,
> --	.dpll_data	= &dpll_unipro_dd,
> --	.init		= &omap2_init_dpll_parent,
> --	.ops		= &clkops_omap3_noncore_dpll_ops,
> --	.recalc		= &omap3_dpll_recalc,
> --	.round_rate	= &omap2_dpll_round_rate,
> --	.set_rate	= &omap3_noncore_dpll_set_rate,
> --};
> --
> --static struct clk dpll_unipro_x2_ck = {
> --	.name		= "dpll_unipro_x2_ck",
> --	.parent		= &dpll_unipro_ck,
> --	.clksel_reg	= OMAP4430_CM_DIV_M2_DPLL_UNIPRO,
> --	.flags		= CLOCK_CLKOUTX2,
> --	.ops		= &clkops_omap4_dpllmx_ops,
> --	.recalc		= &omap3_clkoutx2_recalc,
> --};
> --
> --static const struct clksel dpll_unipro_m2x2_div[] = {
> --	{ .parent = &dpll_unipro_x2_ck, .rates = div31_1to31_rates },
> --	{ .parent = NULL },
> --};
> --
> --static struct clk dpll_unipro_m2x2_ck = {
> --	.name		= "dpll_unipro_m2x2_ck",
> --	.parent		= &dpll_unipro_x2_ck,
> --	.clksel		= dpll_unipro_m2x2_div,
> --	.clksel_reg	= OMAP4430_CM_DIV_M2_DPLL_UNIPRO,
> --	.clksel_mask	= OMAP4430_DPLL_CLKOUT_DIV_MASK,
> --	.ops		= &clkops_omap4_dpllmx_ops,
> --	.recalc		= &omap2_clksel_recalc,
> --	.round_rate	= &omap2_clksel_round_rate,
> --	.set_rate	= &omap2_clksel_set_rate,
> --};
> --
> - static struct clk usb_hs_clk_div_ck = {
> - 	.name		= "usb_hs_clk_div_ck",
> - 	.parent		= &dpll_abe_m3x2_ck,
> -@@ -3058,9 +3001,6 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK(NULL,	"dpll_per_m5x2_ck",		&dpll_per_m5x2_ck,
> 	CK_443X),
> - 	CLK(NULL,	"dpll_per_m6x2_ck",		&dpll_per_m6x2_ck,
> 	CK_443X),
> - 	CLK(NULL,	"dpll_per_m7x2_ck",		&dpll_per_m7x2_ck,
> 	CK_443X),
> --	CLK(NULL,	"dpll_unipro_ck",		&dpll_unipro_ck,
> 	CK_443X),
> --	CLK(NULL,	"dpll_unipro_x2_ck",		&dpll_unipro_x2_ck,
> 	CK_443X),
> --	CLK(NULL,	"dpll_unipro_m2x2_ck",
> 	&dpll_unipro_m2x2_ck,	CK_443X),
> - 	CLK(NULL,	"usb_hs_clk_div_ck",		&usb_hs_clk_div_ck,
> 	CK_443X),
> - 	CLK(NULL,	"dpll_usb_ck",			&dpll_usb_ck,
> 	CK_443X),
> - 	CLK(NULL,	"dpll_usb_clkdcoldo_ck",
> 	&dpll_usb_clkdcoldo_ck,	CK_443X),
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0062-OMAP4-
> hwmod-data-Modify-DSS-opt-clocks.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0062-OMAP4-hwmod-data-Modify-DSS-opt-clocks.patch
> deleted file mode 100644
> index 69c3b2a..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0062-OMAP4-hwmod-
> data-Modify-DSS-opt-clocks.patch
> +++ /dev/null
> @@ -1,153 +0,0 @@
> -From 52d08db173e39f2af6923dc803593d62fa05e43b Mon Sep 17 00:00:00
> 2001
> -From: Tomi Valkeinen <tomi.valkeinen at ti.com>
> -Date: Sat, 9 Jul 2011 20:39:44 -0600
> -Subject: [PATCH 062/149] OMAP4: hwmod data: Modify DSS opt clocks
> -
> -Add missing DSS optional clocks to HWMOD data for OMAP4xxx.
> -
> -Add HWMOD_CONTROL_OPT_CLKS_IN_RESET flag for dispc to fix dispc reset.
> -
> -Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
> -[b-cousson at ti.com: Remove a comment and update the subject]
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Tomi Valkeinen <tomi.valkeinen at ti.com>
> -[paul at pwsan.com: removed DSS "fck" role and some clkdev aliases at Tomi's
> - request]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clock44xx_data.c       |    8 +++---
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c |   33
> ++++++++++++++++++++++++++++
> - 2 files changed, 37 insertions(+), 4 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-
> omap2/clock44xx_data.c
> -index 044df38..7a0b112 100644
> ---- a/arch/arm/mach-omap2/clock44xx_data.c
> -+++ b/arch/arm/mach-omap2/clock44xx_data.c
> -@@ -3032,10 +3032,10 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK(NULL,	"dmic_sync_mux_ck",		&dmic_sync_mux_ck,
> 	CK_443X),
> - 	CLK(NULL,	"dmic_fck",			&dmic_fck,
> 	CK_443X),
> - 	CLK(NULL,	"dsp_fck",			&dsp_fck,
> 	CK_443X),
> --	CLK("omapdss_dss",	"sys_clk",			&dss_sys_clk,
> 	CK_443X),
> --	CLK("omapdss_dss",	"tv_clk",			&dss_tv_clk,
> 	CK_443X),
> --	CLK("omapdss_dss",	"video_clk",
> 	&dss_48mhz_clk,	CK_443X),
> --	CLK("omapdss_dss",	"fck",				&dss_dss_clk,
> 	CK_443X),
> -+	CLK(NULL,	"dss_sys_clk",			&dss_sys_clk,
> 	CK_443X),
> -+	CLK(NULL,	"dss_tv_clk",			&dss_tv_clk,
> 	CK_443X),
> -+	CLK(NULL,	"dss_48mhz_clk",		&dss_48mhz_clk,
> 	CK_443X),
> -+	CLK(NULL,	"dss_dss_clk",			&dss_dss_clk,
> 	CK_443X),
> - 	CLK("omapdss_dss",	"ick",				&dss_fck,
> 	CK_443X),
> - 	CLK(NULL,	"efuse_ctrl_cust_fck",		&efuse_ctrl_cust_fck,
> 	CK_443X),
> - 	CLK(NULL,	"emif1_fck",			&emif1_fck,
> 	CK_443X),
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index e011437..a7fbe5c 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -1267,9 +1267,16 @@ static struct omap_hwmod_ocp_if
> *omap44xx_dss_dispc_slaves[] = {
> - 	&omap44xx_l4_per__dss_dispc,
> - };
> -
> -+static struct omap_hwmod_opt_clk dss_dispc_opt_clks[] = {
> -+	{ .role = "sys_clk", .clk = "dss_sys_clk" },
> -+	{ .role = "tv_clk", .clk = "dss_tv_clk" },
> -+	{ .role = "hdmi_clk", .clk = "dss_48mhz_clk" },
> -+};
> -+
> - static struct omap_hwmod omap44xx_dss_dispc_hwmod = {
> - 	.name		= "dss_dispc",
> - 	.class		= &omap44xx_dispc_hwmod_class,
> -+	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap44xx_dss_dispc_irqs,
> - 	.sdma_reqs	= omap44xx_dss_dispc_sdma_reqs,
> - 	.main_clk	= "dss_fck",
> -@@ -1278,6 +1285,8 @@ static struct omap_hwmod
> omap44xx_dss_dispc_hwmod = {
> - 			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> - 		},
> - 	},
> -+	.opt_clks	= dss_dispc_opt_clks,
> -+	.opt_clks_cnt	= ARRAY_SIZE(dss_dispc_opt_clks),
> - 	.slaves		= omap44xx_dss_dispc_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_dss_dispc_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -1358,6 +1367,10 @@ static struct omap_hwmod_ocp_if
> *omap44xx_dss_dsi1_slaves[] = {
> - 	&omap44xx_l4_per__dss_dsi1,
> - };
> -
> -+static struct omap_hwmod_opt_clk dss_dsi1_opt_clks[] = {
> -+	{ .role = "sys_clk", .clk = "dss_sys_clk" },
> -+};
> -+
> - static struct omap_hwmod omap44xx_dss_dsi1_hwmod = {
> - 	.name		= "dss_dsi1",
> - 	.class		= &omap44xx_dsi_hwmod_class,
> -@@ -1369,6 +1382,8 @@ static struct omap_hwmod
> omap44xx_dss_dsi1_hwmod = {
> - 			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> - 		},
> - 	},
> -+	.opt_clks	= dss_dsi1_opt_clks,
> -+	.opt_clks_cnt	= ARRAY_SIZE(dss_dsi1_opt_clks),
> - 	.slaves		= omap44xx_dss_dsi1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_dss_dsi1_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -1428,6 +1443,10 @@ static struct omap_hwmod_ocp_if
> *omap44xx_dss_dsi2_slaves[] = {
> - 	&omap44xx_l4_per__dss_dsi2,
> - };
> -
> -+static struct omap_hwmod_opt_clk dss_dsi2_opt_clks[] = {
> -+	{ .role = "sys_clk", .clk = "dss_sys_clk" },
> -+};
> -+
> - static struct omap_hwmod omap44xx_dss_dsi2_hwmod = {
> - 	.name		= "dss_dsi2",
> - 	.class		= &omap44xx_dsi_hwmod_class,
> -@@ -1439,6 +1458,8 @@ static struct omap_hwmod
> omap44xx_dss_dsi2_hwmod = {
> - 			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> - 		},
> - 	},
> -+	.opt_clks	= dss_dsi2_opt_clks,
> -+	.opt_clks_cnt	= ARRAY_SIZE(dss_dsi2_opt_clks),
> - 	.slaves		= omap44xx_dss_dsi2_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_dss_dsi2_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -1518,6 +1539,10 @@ static struct omap_hwmod_ocp_if
> *omap44xx_dss_hdmi_slaves[] = {
> - 	&omap44xx_l4_per__dss_hdmi,
> - };
> -
> -+static struct omap_hwmod_opt_clk dss_hdmi_opt_clks[] = {
> -+	{ .role = "sys_clk", .clk = "dss_sys_clk" },
> -+};
> -+
> - static struct omap_hwmod omap44xx_dss_hdmi_hwmod = {
> - 	.name		= "dss_hdmi",
> - 	.class		= &omap44xx_hdmi_hwmod_class,
> -@@ -1529,6 +1554,8 @@ static struct omap_hwmod
> omap44xx_dss_hdmi_hwmod = {
> - 			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> - 		},
> - 	},
> -+	.opt_clks	= dss_hdmi_opt_clks,
> -+	.opt_clks_cnt	= ARRAY_SIZE(dss_hdmi_opt_clks),
> - 	.slaves		= omap44xx_dss_hdmi_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_dss_hdmi_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -1603,6 +1630,10 @@ static struct omap_hwmod_ocp_if
> *omap44xx_dss_rfbi_slaves[] = {
> - 	&omap44xx_l4_per__dss_rfbi,
> - };
> -
> -+static struct omap_hwmod_opt_clk dss_rfbi_opt_clks[] = {
> -+	{ .role = "ick", .clk = "dss_fck" },
> -+};
> -+
> - static struct omap_hwmod omap44xx_dss_rfbi_hwmod = {
> - 	.name		= "dss_rfbi",
> - 	.class		= &omap44xx_rfbi_hwmod_class,
> -@@ -1613,6 +1644,8 @@ static struct omap_hwmod
> omap44xx_dss_rfbi_hwmod = {
> - 			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> - 		},
> - 	},
> -+	.opt_clks	= dss_rfbi_opt_clks,
> -+	.opt_clks_cnt	= ARRAY_SIZE(dss_rfbi_opt_clks),
> - 	.slaves		= omap44xx_dss_rfbi_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_dss_rfbi_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0063-OMAP2-PM-
> Initialise-sleep_switch-to-a-non-valid-valu.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0063-OMAP2-PM-Initialise-sleep_switch-to-a-non-valid-
> valu.patch
> deleted file mode 100644
> index b8ea798..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0063-OMAP2-PM-Initialise-
> sleep_switch-to-a-non-valid-valu.patch
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -From 1588fef412d710916847c3f383489af1559aa4b0 Mon Sep 17 00:00:00
> 2001
> -From: Rajendra Nayak <rnayak at ti.com>
> -Date: Sat, 9 Jul 2011 20:42:11 -0600
> -Subject: [PATCH 063/149] OMAP2+: PM: Initialise sleep_switch to a non-valid
> value
> -
> -sleep_switch which is initialised to 0 in omap_set_pwrdm_state
> -happens to be a valid sleep_switch type (FORCEWAKEUP_SWITCH)
> -which are defined as:
> -
> - #define FORCEWAKEUP_SWITCH      0
> - #define LOWPOWERSTATE_SWITCH    1
> -
> -This causes the function to wrongly program some clock domains
> -even when the Powerdomain is in ON state.
> -
> -Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Acked-by: Kevin Hilman <khilman at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/pm.c |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
> -index 49486f5..d48813f 100644
> ---- a/arch/arm/mach-omap2/pm.c
> -+++ b/arch/arm/mach-omap2/pm.c
> -@@ -106,7 +106,7 @@ static void omap2_init_processor_devices(void)
> - int omap_set_pwrdm_state(struct powerdomain *pwrdm, u32 state)
> - {
> - 	u32 cur_state;
> --	int sleep_switch = 0;
> -+	int sleep_switch = -1;
> - 	int ret = 0;
> -
> - 	if (pwrdm == NULL || IS_ERR(pwrdm))
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0064-OMAP4-
> powerdomain-data-Fix-core-mem-states-and-missi.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0064-OMAP4-powerdomain-data-Fix-
> core-mem-states-and-missi.patch
> deleted file mode 100644
> index 2222a2b..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0064-OMAP4-
> powerdomain-data-Fix-core-mem-states-and-missi.patch
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -From 2e67179b61fd7b58ecbafd72fe07943620863ae7 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sat, 9 Jul 2011 20:42:11 -0600
> -Subject: [PATCH 064/149] OMAP4: powerdomain data: Fix core mem states
> and missing cefuse flag
> -
> -Since ES2.0, the core ocmram does not support a different state
> -than the main power domain anymore during both ON and RET power
> -domain state.
> -Since PM is not supported at all in ES1.0, update the common
> -structure.
> -
> -LOWPOWERSTATECHANGE is supported by the cefuse power domain but
> -the flag was missing.
> -Add the PWRDM_HAS_LOWPOWERSTATECHANGE in flags field.
> -
> -Update the TI copyright date to 2011.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Cc: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -[paul at pwsan.com: moved the indentation changes to a different patch set]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/powerdomains44xx_data.c |    7 ++++---
> - 1 files changed, 4 insertions(+), 3 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/powerdomains44xx_data.c
> b/arch/arm/mach-omap2/powerdomains44xx_data.c
> -index 3a7e678..8f46e7d 100644
> ---- a/arch/arm/mach-omap2/powerdomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/powerdomains44xx_data.c
> -@@ -1,7 +1,7 @@
> - /*
> -  * OMAP4 Power domains framework
> -  *
> -- * Copyright (C) 2009-2010 Texas Instruments, Inc.
> -+ * Copyright (C) 2009-2011 Texas Instruments, Inc.
> -  * Copyright (C) 2009-2011 Nokia Corporation
> -  *
> -  * Abhijit Pagare (abhijitpagare at ti.com)
> -@@ -41,14 +41,14 @@ static struct powerdomain core_44xx_pwrdm = {
> - 	.banks		  = 5,
> - 	.pwrsts_mem_ret	= {
> - 		[0] = PWRSTS_OFF,	/* core_nret_bank */
> --		[1] = PWRSTS_OFF_RET,	/* core_ocmram */
> -+		[1] = PWRSTS_RET,	/* core_ocmram */
> - 		[2] = PWRSTS_RET,	/* core_other_bank */
> - 		[3] = PWRSTS_OFF_RET,	/* ducati_l2ram */
> - 		[4] = PWRSTS_OFF_RET,	/* ducati_unicache */
> - 	},
> - 	.pwrsts_mem_on	= {
> - 		[0] = PWRSTS_ON,	/* core_nret_bank */
> --		[1] = PWRSTS_OFF_RET,	/* core_ocmram */
> -+		[1] = PWRSTS_ON,	/* core_ocmram */
> - 		[2] = PWRSTS_ON,	/* core_other_bank */
> - 		[3] = PWRSTS_ON,	/* ducati_l2ram */
> - 		[4] = PWRSTS_ON,	/* ducati_unicache */
> -@@ -318,6 +318,7 @@ static struct powerdomain cefuse_44xx_pwrdm = {
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - 	.pwrsts		  = PWRSTS_OFF_ON,
> -+	.flags		  = PWRDM_HAS_LOWPOWERSTATECHANGE,
> - };
> -
> - /*
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0065-OMAP4-clock-
> data-Keep-GPMC-clocks-always-enabled-and.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0065-OMAP4-clock-data-Keep-GPMC-
> clocks-always-enabled-and.patch
> deleted file mode 100644
> index 8eee066..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0065-OMAP4-clock-data-
> Keep-GPMC-clocks-always-enabled-and.patch
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -From f54325009439b13e234374856057227edc00373c Mon Sep 17 00:00:00
> 2001
> -From: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -Date: Sat, 9 Jul 2011 20:42:59 -0600
> -Subject: [PATCH 065/149] OMAP4: clock data: Keep GPMC clocks always
> enabled and hardware managed
> -
> -On OMAP4, CPU accesses on unmapped addresses are redirected to GPMC by
> -L3 interconnect. Because of CPU speculative nature, such accesses are
> -possible which can lead to indirect access to GPMC and if it's clock is
> -not running, it can result in hang/abort on the platform.
> -
> -Above makes access to GPMC unpredictable during the execution, so it's
> -module mode needs to be kept under hardware control instead of software
> -control.
> -Since the auto gating is supported for GPMC, there isn't any power impact
> -because of this change.
> -
> -The issue was un-covered with security middleware running along with HLOS.
> -In this case GPMC had a valid MMU descriptor on secure side where as HLOS
> -didn't map the GMPC because it isn't being used.
> -
> -Signed-off-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -[b-cousson at ti.com: Update subject and fix typos in the changelog]
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Kevin Hilman <khilman at ti.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clock44xx_data.c |    1 +
> - 1 files changed, 1 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-
> omap2/clock44xx_data.c
> -index 7a0b112..2578820 100644
> ---- a/arch/arm/mach-omap2/clock44xx_data.c
> -+++ b/arch/arm/mach-omap2/clock44xx_data.c
> -@@ -1605,6 +1605,7 @@ static struct clk gpmc_ick = {
> - 	.ops		= &clkops_omap2_dflt,
> - 	.enable_reg	= OMAP4430_CM_L3_2_GPMC_CLKCTRL,
> - 	.enable_bit	= OMAP4430_MODULEMODE_HWCTRL,
> -+	.flags		= ENABLE_ON_INIT,
> - 	.clkdm_name	= "l3_2_clkdm",
> - 	.parent		= &l3_div_ck,
> - 	.recalc		= &followparent_recalc,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0066-OMAP4-
> powerdomain-data-Remove-unsupported-MPU-powerd.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0066-OMAP4-powerdomain-data-
> Remove-unsupported-MPU-powerd.patch
> deleted file mode 100644
> index 7c7671f..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0066-OMAP4-
> powerdomain-data-Remove-unsupported-MPU-powerd.patch
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -From ef733ded20f0466c32d61872f19903653f31f977 Mon Sep 17 00:00:00
> 2001
> -From: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -Date: Sat, 9 Jul 2011 20:42:59 -0600
> -Subject: [PATCH 066/149] OMAP4: powerdomain data: Remove unsupported
> MPU powerdomain state
> -
> -On OMAP4430 devices, because of boot ROM code bug, MPU OFF state can't
> -be attempted independently. When coming out of MPU OFF state, ROM code
> -disables the clocks of IVAHD, TESLA which is not desirable. Hence the
> -MPU OFF state is not usable on OMAP4430 devices.
> -
> -OMAP4460 onwards, MPU OFF state will be descoped completely because
> -the DDR firewall falls in MPU power domain. When the MPU hit OFF state,
> -DDR won't be accessible for other initiators. The deepest state supported
> -is open switch retention (OSWR) just like CORE and PER PD on OMAP4430.
> -
> -So in summary MPU power domain OFF state is not supported on OMAP4
> -and onwards designs. Thanks to new PRCM design, device off mode can
> -still be achieved with power domains hitting OSWR state.
> -
> -Signed-off-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> -[b-cousson at ti.com: Fix changelog typos]
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/powerdomains44xx_data.c |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/powerdomains44xx_data.c
> b/arch/arm/mach-omap2/powerdomains44xx_data.c
> -index 8f46e7d..247e794 100644
> ---- a/arch/arm/mach-omap2/powerdomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/powerdomains44xx_data.c
> -@@ -205,7 +205,7 @@ static struct powerdomain mpu_44xx_pwrdm = {
> - 	.prcm_offs	  = OMAP4430_PRM_MPU_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> --	.pwrsts		  = PWRSTS_OFF_RET_ON,
> -+	.pwrsts		  = PWRSTS_RET_ON,
> - 	.pwrsts_logic_ret = PWRSTS_OFF_RET,
> - 	.banks		  = 3,
> - 	.pwrsts_mem_ret	= {
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0067-OMAP4-
> hwmod-data-Change-DSS-main_clk-scheme.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0067-OMAP4-hwmod-data-Change-DSS-main_clk-
> scheme.patch
> deleted file mode 100644
> index 50baf2a..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0067-OMAP4-hwmod-
> data-Change-DSS-main_clk-scheme.patch
> +++ /dev/null
> @@ -1,163 +0,0 @@
> -From 497db49799f6c84f5073c6b78e58094ba0b0d52e Mon Sep 17 00:00:00
> 2001
> -From: Tomi Valkeinen <tomi.valkeinen at ti.com>
> -Date: Sat, 9 Jul 2011 20:39:45 -0600
> -Subject: [PATCH 067/149] OMAP4: hwmod data: Change DSS main_clk scheme
> -
> -Currently using pm_runtime with DSS requires the DSS driver to enable
> -the DSS functional clock before calling pm_runtime_get(). That makes it
> -impossible to use pm_runtime in DSS as it is meant to be used, with
> -pm_runtime callbacks.
> -
> -This patch changes the hwmod database for OMAP4 so that enabling the
> -hwmod via pm_runtime will also enable the DSS functional clock, allowing
> -us to use pm_runtime properly in DSS driver.
> -
> -The DSS HWMOD side is not really correct, not before nor after this
> -patch, and getting DSS to retention will probably not work currently.
> -However, it is not supported in the mainline kernel anyway, so this
> -won't break anything.
> -
> -So this patch allows us to write the pm_runtime adaptation for the DSS
> -driver the way it should be done, and the HWMOD/PM side can be fixed
> -later.
> -
> -Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c |   28 ++++++++++++++-
> -------------
> - 1 files changed, 14 insertions(+), 14 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index a7fbe5c..b25ab83 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -1136,7 +1136,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_dma_addrs[] = {
> - static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss = {
> - 	.master		= &omap44xx_l3_main_2_hwmod,
> - 	.slave		= &omap44xx_dss_hwmod,
> --	.clk		= "l3_div_ck",
> -+	.clk		= "dss_fck",
> - 	.addr		= omap44xx_dss_dma_addrs,
> - 	.user		= OCP_USER_SDMA,
> - };
> -@@ -1175,7 +1175,7 @@ static struct omap_hwmod_opt_clk dss_opt_clks[]
> = {
> - static struct omap_hwmod omap44xx_dss_hwmod = {
> - 	.name		= "dss_core",
> - 	.class		= &omap44xx_dss_hwmod_class,
> --	.main_clk	= "dss_fck",
> -+	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> -@@ -1238,7 +1238,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_dispc_dma_addrs[] = {
> - static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss_dispc = {
> - 	.master		= &omap44xx_l3_main_2_hwmod,
> - 	.slave		= &omap44xx_dss_dispc_hwmod,
> --	.clk		= "l3_div_ck",
> -+	.clk		= "dss_fck",
> - 	.addr		= omap44xx_dss_dispc_dma_addrs,
> - 	.user		= OCP_USER_SDMA,
> - };
> -@@ -1279,7 +1279,7 @@ static struct omap_hwmod
> omap44xx_dss_dispc_hwmod = {
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap44xx_dss_dispc_irqs,
> - 	.sdma_reqs	= omap44xx_dss_dispc_sdma_reqs,
> --	.main_clk	= "dss_fck",
> -+	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> -@@ -1338,7 +1338,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_dsi1_dma_addrs[] = {
> - static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss_dsi1 = {
> - 	.master		= &omap44xx_l3_main_2_hwmod,
> - 	.slave		= &omap44xx_dss_dsi1_hwmod,
> --	.clk		= "l3_div_ck",
> -+	.clk		= "dss_fck",
> - 	.addr		= omap44xx_dss_dsi1_dma_addrs,
> - 	.user		= OCP_USER_SDMA,
> - };
> -@@ -1376,7 +1376,7 @@ static struct omap_hwmod
> omap44xx_dss_dsi1_hwmod = {
> - 	.class		= &omap44xx_dsi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dss_dsi1_irqs,
> - 	.sdma_reqs	= omap44xx_dss_dsi1_sdma_reqs,
> --	.main_clk	= "dss_fck",
> -+	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> -@@ -1414,7 +1414,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_dsi2_dma_addrs[] = {
> - static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss_dsi2 = {
> - 	.master		= &omap44xx_l3_main_2_hwmod,
> - 	.slave		= &omap44xx_dss_dsi2_hwmod,
> --	.clk		= "l3_div_ck",
> -+	.clk		= "dss_fck",
> - 	.addr		= omap44xx_dss_dsi2_dma_addrs,
> - 	.user		= OCP_USER_SDMA,
> - };
> -@@ -1452,7 +1452,7 @@ static struct omap_hwmod
> omap44xx_dss_dsi2_hwmod = {
> - 	.class		= &omap44xx_dsi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dss_dsi2_irqs,
> - 	.sdma_reqs	= omap44xx_dss_dsi2_sdma_reqs,
> --	.main_clk	= "dss_fck",
> -+	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> -@@ -1510,7 +1510,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_hdmi_dma_addrs[] = {
> - static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss_hdmi = {
> - 	.master		= &omap44xx_l3_main_2_hwmod,
> - 	.slave		= &omap44xx_dss_hdmi_hwmod,
> --	.clk		= "l3_div_ck",
> -+	.clk		= "dss_fck",
> - 	.addr		= omap44xx_dss_hdmi_dma_addrs,
> - 	.user		= OCP_USER_SDMA,
> - };
> -@@ -1548,7 +1548,7 @@ static struct omap_hwmod
> omap44xx_dss_hdmi_hwmod = {
> - 	.class		= &omap44xx_hdmi_hwmod_class,
> - 	.mpu_irqs	= omap44xx_dss_hdmi_irqs,
> - 	.sdma_reqs	= omap44xx_dss_hdmi_sdma_reqs,
> --	.main_clk	= "dss_fck",
> -+	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> -@@ -1601,7 +1601,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_rfbi_dma_addrs[] = {
> - static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss_rfbi = {
> - 	.master		= &omap44xx_l3_main_2_hwmod,
> - 	.slave		= &omap44xx_dss_rfbi_hwmod,
> --	.clk		= "l3_div_ck",
> -+	.clk		= "dss_fck",
> - 	.addr		= omap44xx_dss_rfbi_dma_addrs,
> - 	.user		= OCP_USER_SDMA,
> - };
> -@@ -1638,7 +1638,7 @@ static struct omap_hwmod
> omap44xx_dss_rfbi_hwmod = {
> - 	.name		= "dss_rfbi",
> - 	.class		= &omap44xx_rfbi_hwmod_class,
> - 	.sdma_reqs	= omap44xx_dss_rfbi_sdma_reqs,
> --	.main_clk	= "dss_fck",
> -+	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> -@@ -1675,7 +1675,7 @@ static struct omap_hwmod_addr_space
> omap44xx_dss_venc_dma_addrs[] = {
> - static struct omap_hwmod_ocp_if omap44xx_l3_main_2__dss_venc = {
> - 	.master		= &omap44xx_l3_main_2_hwmod,
> - 	.slave		= &omap44xx_dss_venc_hwmod,
> --	.clk		= "l3_div_ck",
> -+	.clk		= "dss_fck",
> - 	.addr		= omap44xx_dss_venc_dma_addrs,
> - 	.user		= OCP_USER_SDMA,
> - };
> -@@ -1707,7 +1707,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_dss_venc_slaves[] = {
> - static struct omap_hwmod omap44xx_dss_venc_hwmod = {
> - 	.name		= "dss_venc",
> - 	.class		= &omap44xx_venc_hwmod_class,
> --	.main_clk	= "dss_fck",
> -+	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0068-I2C-OMAP2-
> Set-hwmod-flags-to-only-allow-16-bit-acces.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0068-I2C-OMAP2-Set-hwmod-flags-to-only-allow-16-bit-
> acces.patch
> deleted file mode 100644
> index 6a0dea5..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0068-I2C-OMAP2-Set-
> hwmod-flags-to-only-allow-16-bit-acces.patch
> +++ /dev/null
> @@ -1,133 +0,0 @@
> -From 3bc9e748aeea5c152564186ad65ae7f7848420d3 Mon Sep 17 00:00:00
> 2001
> -From: Andy Green <andy at warmcat.com>
> -Date: Sun, 10 Jul 2011 05:27:14 -0600
> -Subject: [PATCH 068/149] I2C: OMAP2+: Set hwmod flags to only allow 16-bit
> accesses to i2c
> -
> -Peter Maydell noticed when running under QEMU he was getting
> -errors reporting 32-bit access to I2C peripheral unit registers
> -that are documented to be 8 or 16-bit only[1][2]
> -
> -The I2C driver is blameless as it wraps its accesses in a
> -function using __raw_writew and __raw_readw, it turned out it
> -is the hwmod stuff.
> -
> -However the hwmod code already has a flag to force a
> -perhipheral unit to only be accessed using 16-bit operations.
> -
> -This patch applies the 16-bit only flag to the 2430,
> -OMAP3xxx and OMAP44xx hwmod structs.  2420 was already
> -correctly marked up as 16-bit.
> -
> -The 2430 change will need testing by TI as arranged
> -in the comments to the previous patch version.
> -
> -When the 16-bit flag is or-ed with other flags, it is placed
> -first as requested in comments.
> -
> -[1] OMAP4430 Technical reference manual section 23.1.6.2
> -[2] OMAP3530 Techincal reference manual section 18.6
> -
> -Cc: patches at linaro.org
> -Cc: Ben Dooks <ben-linux at fluff.org>
> -Reported-by: Peter Maydell <peter.maydell at linaro.org>
> -Signed-off-by: Andy Green <andy.green at linaro.org>
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_2430_data.c |    2 ++
> - arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |    3 +++
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    8 ++++----
> - 3 files changed, 9 insertions(+), 4 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -index 2a52f02..19ddf08 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -@@ -1092,6 +1092,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_i2c1_slaves[] = {
> -
> - static struct omap_hwmod omap2430_i2c1_hwmod = {
> - 	.name		= "i2c1",
> -+	.flags		= HWMOD_16BIT_REG,
> - 	.mpu_irqs	= omap2_i2c1_mpu_irqs,
> - 	.sdma_reqs	= omap2_i2c1_sdma_reqs,
> - 	.main_clk	= "i2chs1_fck",
> -@@ -1127,6 +1128,7 @@ static struct omap_hwmod_ocp_if
> *omap2430_i2c2_slaves[] = {
> -
> - static struct omap_hwmod omap2430_i2c2_hwmod = {
> - 	.name		= "i2c2",
> -+	.flags		= HWMOD_16BIT_REG,
> - 	.mpu_irqs	= omap2_i2c2_mpu_irqs,
> - 	.sdma_reqs	= omap2_i2c2_sdma_reqs,
> - 	.main_clk	= "i2chs2_fck",
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -index 1a52716..542a11b 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -@@ -1615,6 +1615,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_i2c1_slaves[] = {
> -
> - static struct omap_hwmod omap3xxx_i2c1_hwmod = {
> - 	.name		= "i2c1",
> -+	.flags		= HWMOD_16BIT_REG,
> - 	.mpu_irqs	= omap2_i2c1_mpu_irqs,
> - 	.sdma_reqs	= omap2_i2c1_sdma_reqs,
> - 	.main_clk	= "i2c1_fck",
> -@@ -1646,6 +1647,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_i2c2_slaves[] = {
> -
> - static struct omap_hwmod omap3xxx_i2c2_hwmod = {
> - 	.name		= "i2c2",
> -+	.flags		= HWMOD_16BIT_REG,
> - 	.mpu_irqs	= omap2_i2c2_mpu_irqs,
> - 	.sdma_reqs	= omap2_i2c2_sdma_reqs,
> - 	.main_clk	= "i2c2_fck",
> -@@ -1688,6 +1690,7 @@ static struct omap_hwmod_ocp_if
> *omap3xxx_i2c3_slaves[] = {
> -
> - static struct omap_hwmod omap3xxx_i2c3_hwmod = {
> - 	.name		= "i2c3",
> -+	.flags		= HWMOD_16BIT_REG,
> - 	.mpu_irqs	= i2c3_mpu_irqs,
> - 	.sdma_reqs	= i2c3_sdma_reqs,
> - 	.main_clk	= "i2c3_fck",
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index b25ab83..2ebccb8 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -2201,7 +2201,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_i2c1_slaves[] = {
> - static struct omap_hwmod omap44xx_i2c1_hwmod = {
> - 	.name		= "i2c1",
> - 	.class		= &omap44xx_i2c_hwmod_class,
> --	.flags		= HWMOD_INIT_NO_RESET,
> -+	.flags		= HWMOD_16BIT_REG | HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_i2c1_irqs,
> - 	.sdma_reqs	= omap44xx_i2c1_sdma_reqs,
> - 	.main_clk	= "i2c1_fck",
> -@@ -2254,7 +2254,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_i2c2_slaves[] = {
> - static struct omap_hwmod omap44xx_i2c2_hwmod = {
> - 	.name		= "i2c2",
> - 	.class		= &omap44xx_i2c_hwmod_class,
> --	.flags		= HWMOD_INIT_NO_RESET,
> -+	.flags		= HWMOD_16BIT_REG | HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_i2c2_irqs,
> - 	.sdma_reqs	= omap44xx_i2c2_sdma_reqs,
> - 	.main_clk	= "i2c2_fck",
> -@@ -2307,7 +2307,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_i2c3_slaves[] = {
> - static struct omap_hwmod omap44xx_i2c3_hwmod = {
> - 	.name		= "i2c3",
> - 	.class		= &omap44xx_i2c_hwmod_class,
> --	.flags		= HWMOD_INIT_NO_RESET,
> -+	.flags		= HWMOD_16BIT_REG | HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_i2c3_irqs,
> - 	.sdma_reqs	= omap44xx_i2c3_sdma_reqs,
> - 	.main_clk	= "i2c3_fck",
> -@@ -2360,7 +2360,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_i2c4_slaves[] = {
> - static struct omap_hwmod omap44xx_i2c4_hwmod = {
> - 	.name		= "i2c4",
> - 	.class		= &omap44xx_i2c_hwmod_class,
> --	.flags		= HWMOD_INIT_NO_RESET,
> -+	.flags		= HWMOD_16BIT_REG | HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_i2c4_irqs,
> - 	.sdma_reqs	= omap44xx_i2c4_sdma_reqs,
> - 	.main_clk	= "i2c4_fck",
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0069-I2C-OMAP2-
> increase-omap_i2c_dev_attr-flags-from-u8-t.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0069-I2C-OMAP2-increase-
> omap_i2c_dev_attr-flags-from-u8-t.patch
> deleted file mode 100644
> index cb36f97..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0069-I2C-OMAP2-increase-
> omap_i2c_dev_attr-flags-from-u8-t.patch
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -From c32768648dfe7f6bbe90ee0b18d1edb60fc141fe Mon Sep 17 00:00:00
> 2001
> -From: Andy Green <andy at warmcat.com>
> -Date: Sun, 10 Jul 2011 05:27:14 -0600
> -Subject: [PATCH 069/149] I2C: OMAP2+: increase omap_i2c_dev_attr flags
> from u8 to u32
> -
> -As part of removing cpu_...() from the OMAP I2C driver, we need to
> -convert the CPU tests into functionality flags that are set by
> -hwmod class in the same way the IP revision is.
> -
> -More flags are needed than will fit in the existing u8 flags
> -member of omap_i2c_dev_attr.
> -
> -These flags can refer to options inside the IP block but they are
> -most needed for information about cpu implementation specific
> -options that are not part of the IP block itself.  For example,
> -how the CPU data bus is wired to the IP block databus differs
> -between OMAP cpus and affects how you must shift the address in
> -the IP block, but is not a feature of the IP block itself.
> -
> -Cc: patches at linaro.org
> -Cc: Ben Dooks <ben-linux at fluff.org>
> -Reported-by: Peter Maydell <peter.maydell at linaro.org>
> -Signed-off-by: Andy Green <andy.green at linaro.org>
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/plat-omap/include/plat/i2c.h |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/include/plat/i2c.h b/arch/arm/plat-
> omap/include/plat/i2c.h
> -index 878d632..4c108f5 100644
> ---- a/arch/arm/plat-omap/include/plat/i2c.h
> -+++ b/arch/arm/plat-omap/include/plat/i2c.h
> -@@ -46,7 +46,7 @@ static inline int omap_register_i2c_bus(int bus_id, u32
> clkrate,
> -  */
> - struct omap_i2c_dev_attr {
> - 	u8	fifo_depth;
> --	u8	flags;
> -+	u32	flags;
> - };
> -
> - void __init omap1_i2c_mux_pins(int bus_id);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0070-I2C-OMAP2-
> Introduce-I2C-IP-versioning-constants.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0070-I2C-OMAP2-Introduce-I2C-IP-versioning-
> constants.patch
> deleted file mode 100644
> index 9c4b51c..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0070-I2C-OMAP2-
> Introduce-I2C-IP-versioning-constants.patch
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -From 109f56f616221cb632ce98b5da05420f2099eff1 Mon Sep 17 00:00:00
> 2001
> -From: Andy Green <andy at warmcat.com>
> -Date: Sun, 10 Jul 2011 05:27:14 -0600
> -Subject: [PATCH 070/149] I2C: OMAP2+: Introduce I2C IP versioning constants
> -
> -These represent the two kinds of (incompatible) OMAP I2C
> -peripheral unit in use so far.
> -
> -The constants are in linux/i2c-omap.h so the omap i2c driver can have
> -them too.
> -
> -Cc: patches at linaro.org
> -Cc: Ben Dooks <ben-linux at fluff.org>
> -Reported-by: Peter Maydell <peter.maydell at linaro.org>
> -Signed-off-by: Andy Green <andy.green at linaro.org>
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/plat-omap/include/plat/i2c.h |    1 +
> - include/linux/i2c-omap.h              |   12 ++++++++++++
> - 2 files changed, 13 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/include/plat/i2c.h b/arch/arm/plat-
> omap/include/plat/i2c.h
> -index 4c108f5..fd75dad 100644
> ---- a/arch/arm/plat-omap/include/plat/i2c.h
> -+++ b/arch/arm/plat-omap/include/plat/i2c.h
> -@@ -22,6 +22,7 @@
> - #define __ASM__ARCH_OMAP_I2C_H
> -
> - #include <linux/i2c.h>
> -+#include <linux/i2c-omap.h>
> -
> - #if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE)
> - extern int omap_register_i2c_bus(int bus_id, u32 clkrate,
> -diff --git a/include/linux/i2c-omap.h b/include/linux/i2c-omap.h
> -index 7472449..701886d 100644
> ---- a/include/linux/i2c-omap.h
> -+++ b/include/linux/i2c-omap.h
> -@@ -3,6 +3,18 @@
> -
> - #include <linux/platform_device.h>
> -
> -+/*
> -+ * Version 2 of the I2C peripheral unit has a different register
> -+ * layout and extra registers.  The ID register in the V2 peripheral
> -+ * unit on the OMAP4430 reports the same ID as the V1 peripheral
> -+ * unit on the OMAP3530, so we must inform the driver which IP
> -+ * version we know it is running on from platform / cpu-specific
> -+ * code using these constants in the hwmod class definition.
> -+ */
> -+
> -+#define OMAP_I2C_IP_VERSION_1 1
> -+#define OMAP_I2C_IP_VERSION_2 2
> -+
> - struct omap_i2c_bus_platform_data {
> - 	u32		clkrate;
> - 	void		(*set_mpu_wkup_lat)(struct device *dev, long set);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0071-I2C-OMAP1-
> OMAP2-create-omap-I2C-functionality-flags-.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0071-I2C-OMAP1-OMAP2-create-omap-
> I2C-functionality-flags-.patch
> deleted file mode 100644
> index c211654..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0071-I2C-OMAP1-OMAP2-
> create-omap-I2C-functionality-flags-.patch
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -From 46e0d0dce7d030781e2c67cce0438384ee8dd707 Mon Sep 17 00:00:00
> 2001
> -From: Andy Green <andy at warmcat.com>
> -Date: Sun, 10 Jul 2011 05:27:15 -0600
> -Subject: [PATCH 071/149] I2C: OMAP1/OMAP2+: create omap I2C
> functionality flags for each cpu_... test
> -
> -These represent the 8 kinds of implementation functionality
> -that up until now were inferred by the 16 remaining cpu_...()
> -tests in the omap i2c driver.
> -
> -Changed to use BIT() as suggested by Balaji T Krishnamoorthy.
> -
> -Cc: patches at linaro.org
> -Cc: Ben Dooks <ben-linux at fluff.org>
> -Reported-by: Peter Maydell <peter.maydell at linaro.org>
> -Signed-off-by: Andy Green <andy.green at linaro.org>
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - include/linux/i2c-omap.h |   15 +++++++++++++++
> - 1 files changed, 15 insertions(+), 0 deletions(-)
> -
> -diff --git a/include/linux/i2c-omap.h b/include/linux/i2c-omap.h
> -index 701886d..0aa0cbd 100644
> ---- a/include/linux/i2c-omap.h
> -+++ b/include/linux/i2c-omap.h
> -@@ -15,6 +15,21 @@
> - #define OMAP_I2C_IP_VERSION_1 1
> - #define OMAP_I2C_IP_VERSION_2 2
> -
> -+/* struct omap_i2c_bus_platform_data .flags meanings */
> -+
> -+#define OMAP_I2C_FLAG_NO_FIFO			BIT(0)
> -+#define OMAP_I2C_FLAG_SIMPLE_CLOCK		BIT(1)
> -+#define OMAP_I2C_FLAG_16BIT_DATA_REG		BIT(2)
> -+#define OMAP_I2C_FLAG_RESET_REGS_POSTIDLE	BIT(3)
> -+#define OMAP_I2C_FLAG_APPLY_ERRATA_I207	BIT(4)
> -+#define OMAP_I2C_FLAG_ALWAYS_ARMXOR_CLK	BIT(5)
> -+#define OMAP_I2C_FLAG_FORCE_19200_INT_CLK	BIT(6)
> -+/* how the CPU address bus must be translated for I2C unit access */
> -+#define OMAP_I2C_FLAG_BUS_SHIFT_NONE 0
> -+#define OMAP_I2C_FLAG_BUS_SHIFT_1		BIT(7)
> -+#define OMAP_I2C_FLAG_BUS_SHIFT_2		BIT(8)
> -+#define OMAP_I2C_FLAG_BUS_SHIFT__SHIFT 7
> -+
> - struct omap_i2c_bus_platform_data {
> - 	u32		clkrate;
> - 	void		(*set_mpu_wkup_lat)(struct device *dev, long set);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0072-I2C-OMAP2-
> Tag-all-OMAP2-hwmod-defintions-with-I2C-IP.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0072-I2C-OMAP2-Tag-all-OMAP2-
> hwmod-defintions-with-I2C-IP.patch
> deleted file mode 100644
> index 1f19e72..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0072-I2C-OMAP2-Tag-all-
> OMAP2-hwmod-defintions-with-I2C-IP.patch
> +++ /dev/null
> @@ -1,77 +0,0 @@
> -From 19d2caadfe6d0faad12b209bc1d096e1297fea68 Mon Sep 17 00:00:00
> 2001
> -From: Andy Green <andy at warmcat.com>
> -Date: Sun, 10 Jul 2011 05:27:15 -0600
> -Subject: [PATCH 072/149] I2C: OMAP2+: Tag all OMAP2+ hwmod defintions
> with I2C IP revision
> -
> -Since we cannot trust (or even reliably find) the OMAP I2C
> -peripheral unit's own revision register, we must inform the
> -OMAP i2c driver of which IP version it is running on.  We
> -do this by tagging the omap_hwmod_class for i2c on all the
> -OMAP2+ platform / cpu specific hwmod init and passing it up
> -to the driver (next patches).
> -
> -Cc: patches at linaro.org
> -Cc: Ben Dooks <ben-linux at fluff.org>
> -Reported-by: Peter Maydell <peter.maydell at linaro.org>
> -Signed-off-by: Andy Green <andy.green at linaro.org>
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_2420_data.c |    1 +
> - arch/arm/mach-omap2/omap_hwmod_2430_data.c |    1 +
> - arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |    1 +
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    1 +
> - 4 files changed, 4 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -index f3901ab..95f547c 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -@@ -1029,6 +1029,7 @@ static struct omap_hwmod_class_sysconfig
> i2c_sysc = {
> - static struct omap_hwmod_class i2c_class = {
> - 	.name		= "i2c",
> - 	.sysc		= &i2c_sysc,
> -+	.rev		= OMAP_I2C_IP_VERSION_1,
> - };
> -
> - static struct omap_i2c_dev_attr i2c_dev_attr;
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -index 19ddf08..d7ed51b 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -@@ -1078,6 +1078,7 @@ static struct omap_hwmod_class_sysconfig
> i2c_sysc = {
> - static struct omap_hwmod_class i2c_class = {
> - 	.name		= "i2c",
> - 	.sysc		= &i2c_sysc,
> -+	.rev		= OMAP_I2C_IP_VERSION_1,
> - };
> -
> - static struct omap_i2c_dev_attr i2c_dev_attr = {
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -index 542a11b..58ec1e2 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -@@ -1308,6 +1308,7 @@ static struct omap_hwmod
> omap3xxx_uart4_hwmod = {
> - static struct omap_hwmod_class i2c_class = {
> - 	.name = "i2c",
> - 	.sysc = &i2c_sysc,
> -+	.rev  = OMAP_I2C_IP_VERSION_1,
> - };
> -
> - static struct omap_hwmod_dma_info omap3xxx_dss_sdma_chs[] = {
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index 2ebccb8..1bed3b8 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -2160,6 +2160,7 @@ static struct omap_hwmod_class_sysconfig
> omap44xx_i2c_sysc = {
> - static struct omap_hwmod_class omap44xx_i2c_hwmod_class = {
> - 	.name	= "i2c",
> - 	.sysc	= &omap44xx_i2c_sysc,
> -+	.rev	= OMAP_I2C_IP_VERSION_2,
> - };
> -
> - /* i2c1 */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0073-I2C-OMAP2-
> add-correct-functionality-flags-to-all-oma.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0073-I2C-OMAP2-add-correct-functionality-flags-to-all-
> oma.patch
> deleted file mode 100644
> index aad082c..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0073-I2C-OMAP2-add-
> correct-functionality-flags-to-all-oma.patch
> +++ /dev/null
> @@ -1,146 +0,0 @@
> -From 61ee913ca983d9ff9bc3d98564417d9054db3e45 Mon Sep 17 00:00:00
> 2001
> -From: Andy Green <andy at warmcat.com>
> -Date: Sun, 10 Jul 2011 05:27:16 -0600
> -Subject: [PATCH 073/149] I2C: OMAP2+: add correct functionality flags to all
> omap2plus i2c dev_attr
> -
> -This adds the new functionality flags for omap i2c unit to all OMAP2
> -hwmod definitions
> -
> -Cc: patches at linaro.org
> -Cc: Ben Dooks <ben-linux at fluff.org>
> -Reported-by: Peter Maydell <peter.maydell at linaro.org>
> -Signed-off-by: Andy Green <andy.green at linaro.org>
> -Signed-off-by: Tony Lindgren <tony at atomide.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_2420_data.c |    7 ++++++-
> - arch/arm/mach-omap2/omap_hwmod_2430_data.c |    3 +++
> - arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |    9 +++++++++
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    9 +++++++++
> - 4 files changed, 27 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -index 95f547c..7af2514 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -@@ -1032,7 +1032,12 @@ static struct omap_hwmod_class i2c_class = {
> - 	.rev		= OMAP_I2C_IP_VERSION_1,
> - };
> -
> --static struct omap_i2c_dev_attr i2c_dev_attr;
> -+static struct omap_i2c_dev_attr i2c_dev_attr = {
> -+	.flags		= OMAP_I2C_FLAG_NO_FIFO |
> -+			  OMAP_I2C_FLAG_SIMPLE_CLOCK |
> -+			  OMAP_I2C_FLAG_16BIT_DATA_REG |
> -+			  OMAP_I2C_FLAG_BUS_SHIFT_2,
> -+};
> -
> - /* I2C1 */
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -index d7ed51b..405688a 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -@@ -1083,6 +1083,9 @@ static struct omap_hwmod_class i2c_class = {
> -
> - static struct omap_i2c_dev_attr i2c_dev_attr = {
> - 	.fifo_depth	= 8, /* bytes */
> -+	.flags		= OMAP_I2C_FLAG_APPLY_ERRATA_I207 |
> -+			  OMAP_I2C_FLAG_BUS_SHIFT_2 |
> -+			  OMAP_I2C_FLAG_FORCE_19200_INT_CLK,
> - };
> -
> - /* I2C1 */
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -index 58ec1e2..c704ac8 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -@@ -1608,6 +1608,9 @@ static struct omap_hwmod
> omap3xxx_dss_venc_hwmod = {
> -
> - static struct omap_i2c_dev_attr i2c1_dev_attr = {
> - 	.fifo_depth	= 8, /* bytes */
> -+	.flags		= OMAP_I2C_FLAG_APPLY_ERRATA_I207 |
> -+			  OMAP_I2C_FLAG_RESET_REGS_POSTIDLE |
> -+			  OMAP_I2C_FLAG_BUS_SHIFT_2,
> - };
> -
> - static struct omap_hwmod_ocp_if *omap3xxx_i2c1_slaves[] = {
> -@@ -1640,6 +1643,9 @@ static struct omap_hwmod
> omap3xxx_i2c1_hwmod = {
> -
> - static struct omap_i2c_dev_attr i2c2_dev_attr = {
> - 	.fifo_depth	= 8, /* bytes */
> -+	.flags = OMAP_I2C_FLAG_APPLY_ERRATA_I207 |
> -+		 OMAP_I2C_FLAG_RESET_REGS_POSTIDLE |
> -+		 OMAP_I2C_FLAG_BUS_SHIFT_2,
> - };
> -
> - static struct omap_hwmod_ocp_if *omap3xxx_i2c2_slaves[] = {
> -@@ -1672,6 +1678,9 @@ static struct omap_hwmod
> omap3xxx_i2c2_hwmod = {
> -
> - static struct omap_i2c_dev_attr i2c3_dev_attr = {
> - 	.fifo_depth	= 64, /* bytes */
> -+	.flags = OMAP_I2C_FLAG_APPLY_ERRATA_I207 |
> -+		 OMAP_I2C_FLAG_RESET_REGS_POSTIDLE |
> -+		 OMAP_I2C_FLAG_BUS_SHIFT_2,
> - };
> -
> - static struct omap_hwmod_irq_info i2c3_mpu_irqs[] = {
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index 1bed3b8..55331df 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -27,6 +27,7 @@
> - #include <plat/mcspi.h>
> - #include <plat/mcbsp.h>
> - #include <plat/mmc.h>
> -+#include <plat/i2c.h>
> -
> - #include "omap_hwmod_common_data.h"
> -
> -@@ -2163,6 +2164,10 @@ static struct omap_hwmod_class
> omap44xx_i2c_hwmod_class = {
> - 	.rev	= OMAP_I2C_IP_VERSION_2,
> - };
> -
> -+static struct omap_i2c_dev_attr i2c_dev_attr = {
> -+	.flags	= OMAP_I2C_FLAG_BUS_SHIFT_NONE,
> -+};
> -+
> - /* i2c1 */
> - static struct omap_hwmod omap44xx_i2c1_hwmod;
> - static struct omap_hwmod_irq_info omap44xx_i2c1_irqs[] = {
> -@@ -2213,6 +2218,7 @@ static struct omap_hwmod
> omap44xx_i2c1_hwmod = {
> - 	},
> - 	.slaves		= omap44xx_i2c1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_i2c1_slaves),
> -+	.dev_attr	= &i2c_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> -@@ -2266,6 +2272,7 @@ static struct omap_hwmod
> omap44xx_i2c2_hwmod = {
> - 	},
> - 	.slaves		= omap44xx_i2c2_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_i2c2_slaves),
> -+	.dev_attr	= &i2c_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> -@@ -2319,6 +2326,7 @@ static struct omap_hwmod
> omap44xx_i2c3_hwmod = {
> - 	},
> - 	.slaves		= omap44xx_i2c3_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_i2c3_slaves),
> -+	.dev_attr	= &i2c_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> -@@ -2372,6 +2380,7 @@ static struct omap_hwmod
> omap44xx_i2c4_hwmod = {
> - 	},
> - 	.slaves		= omap44xx_i2c4_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_i2c4_slaves),
> -+	.dev_attr	= &i2c_dev_attr,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0074-OMAP-hwmod-
> fix-the-i2c-reset-timeout-during-bootup.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0074-OMAP-hwmod-fix-the-i2c-reset-timeout-during-
> bootup.patch
> deleted file mode 100644
> index 4d16451..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0074-OMAP-hwmod-fix-
> the-i2c-reset-timeout-during-bootup.patch
> +++ /dev/null
> @@ -1,286 +0,0 @@
> -From 6cc398a1452cef66c2c10eaadb3efe18f4ab8874 Mon Sep 17 00:00:00
> 2001
> -From: Avinash.H.M <avinashhm at ti.com>
> -Date: Sun, 10 Jul 2011 05:27:16 -0600
> -Subject: [PATCH 074/149] OMAP: hwmod: fix the i2c-reset timeout during
> bootup
> -
> -The sequence of _ocp_softreset doesn't work for i2c. The i2c module has a
> -special sequence to reset the module. The sequence is
> - - Disable the I2C.
> - - Write to SOFTRESET bit.
> - - Enable the I2C.
> - - Poll on the RESETDONE bit.
> -The sequence is implemented as a function and the i2c_class is updated with
> -the correct 'reset' pointer.  omap_hwmod_softreset function is implemented
> -which triggers the softreset by writing into sysconfig register. On following
> -this sequence, i2c module resets properly and timeouts are not seen.
> -
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Benoit Cousson <b-cousson at ti.com>
> -Cc: Kevin Hilman <khilman at ti.com>
> -Signed-off-by: Avinash.H.M <avinashhm at ti.com>
> -[paul at pwsan.com: combined this patch with a patch to remove
> - HWMOD_INIT_NO_RESET from the 44xx hwmod flags; change register
> - offset conditional code to use the IP block revision; minor code
> - cleanup]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/i2c.c                    |   68
> ++++++++++++++++++++++++++
> - arch/arm/mach-omap2/omap_hwmod.c             |   27 ++++++++++
> - arch/arm/mach-omap2/omap_hwmod_2420_data.c   |    1 +
> - arch/arm/mach-omap2/omap_hwmod_2430_data.c   |    1 +
> - arch/arm/mach-omap2/omap_hwmod_3xxx_data.c   |    7 ++-
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c   |   10 ++--
> - arch/arm/plat-omap/include/plat/i2c.h        |    3 +
> - arch/arm/plat-omap/include/plat/omap_hwmod.h |    1 +
> - 8 files changed, 111 insertions(+), 7 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/i2c.c b/arch/arm/mach-omap2/i2c.c
> -index 79c478c..ace9994 100644
> ---- a/arch/arm/mach-omap2/i2c.c
> -+++ b/arch/arm/mach-omap2/i2c.c
> -@@ -21,9 +21,19 @@
> -
> - #include <plat/cpu.h>
> - #include <plat/i2c.h>
> -+#include <plat/common.h>
> -+#include <plat/omap_hwmod.h>
> -
> - #include "mux.h"
> -
> -+/* In register I2C_CON, Bit 15 is the I2C enable bit */
> -+#define I2C_EN					BIT(15)
> -+#define OMAP2_I2C_CON_OFFSET			0x24
> -+#define OMAP4_I2C_CON_OFFSET			0xA4
> -+
> -+/* Maximum microseconds to wait for OMAP module to softreset */
> -+#define MAX_MODULE_SOFTRESET_WAIT	10000
> -+
> - void __init omap2_i2c_mux_pins(int bus_id)
> - {
> - 	char mux_name[sizeof("i2c2_scl.i2c2_scl")];
> -@@ -37,3 +47,61 @@ void __init omap2_i2c_mux_pins(int bus_id)
> - 	sprintf(mux_name, "i2c%i_sda.i2c%i_sda", bus_id, bus_id);
> - 	omap_mux_init_signal(mux_name, OMAP_PIN_INPUT);
> - }
> -+
> -+/**
> -+ * omap_i2c_reset - reset the omap i2c module.
> -+ * @oh: struct omap_hwmod *
> -+ *
> -+ * The i2c moudle in omap2, omap3 had a special sequence to reset. The
> -+ * sequence is:
> -+ * - Disable the I2C.
> -+ * - Write to SOFTRESET bit.
> -+ * - Enable the I2C.
> -+ * - Poll on the RESETDONE bit.
> -+ * The sequence is implemented in below function. This is called for 2420,
> -+ * 2430 and omap3.
> -+ */
> -+int omap_i2c_reset(struct omap_hwmod *oh)
> -+{
> -+	u32 v;
> -+	u16 i2c_con;
> -+	int c = 0;
> -+
> -+	if (oh->class->rev == OMAP_I2C_IP_VERSION_2) {
> -+		i2c_con = OMAP4_I2C_CON_OFFSET;
> -+	} else if (oh->class->rev == OMAP_I2C_IP_VERSION_1) {
> -+		i2c_con = OMAP2_I2C_CON_OFFSET;
> -+	} else {
> -+		WARN(1, "Cannot reset I2C block %s: unsupported revision\n",
> -+		     oh->name);
> -+		return -EINVAL;
> -+	}
> -+
> -+	/* Disable I2C */
> -+	v = omap_hwmod_read(oh, i2c_con);
> -+	v &= ~I2C_EN;
> -+	omap_hwmod_write(v, oh, i2c_con);
> -+
> -+	/* Write to the SOFTRESET bit */
> -+	omap_hwmod_softreset(oh);
> -+
> -+	/* Enable I2C */
> -+	v = omap_hwmod_read(oh, i2c_con);
> -+	v |= I2C_EN;
> -+	omap_hwmod_write(v, oh, i2c_con);
> -+
> -+	/* Poll on RESETDONE bit */
> -+	omap_test_timeout((omap_hwmod_read(oh,
> -+				oh->class->sysc->syss_offs)
> -+				& SYSS_RESETDONE_MASK),
> -+				MAX_MODULE_SOFTRESET_WAIT, c);
> -+
> -+	if (c == MAX_MODULE_SOFTRESET_WAIT)
> -+		pr_warning("%s: %s: softreset failed (waited %d usec)\n",
> -+			__func__, oh->name,
> MAX_MODULE_SOFTRESET_WAIT);
> -+	else
> -+		pr_debug("%s: %s: softreset in %d usec\n", __func__,
> -+			oh->name, c);
> -+
> -+	return 0;
> -+}
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index 7d242c9..02b6016 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -1656,6 +1656,33 @@ void omap_hwmod_write(u32 v, struct
> omap_hwmod *oh, u16 reg_offs)
> - }
> -
> - /**
> -+ * omap_hwmod_softreset - reset a module via SYSCONFIG.SOFTRESET bit
> -+ * @oh: struct omap_hwmod *
> -+ *
> -+ * This is a public function exposed to drivers. Some drivers may need to do
> -+ * some settings before and after resetting the device.  Those drivers after
> -+ * doing the necessary settings could use this function to start a reset by
> -+ * setting the SYSCONFIG.SOFTRESET bit.
> -+ */
> -+int omap_hwmod_softreset(struct omap_hwmod *oh)
> -+{
> -+	u32 v;
> -+	int ret;
> -+
> -+	if (!oh || !(oh->_sysc_cache))
> -+		return -EINVAL;
> -+
> -+	v = oh->_sysc_cache;
> -+	ret = _set_softreset(oh, &v);
> -+	if (ret)
> -+		goto error;
> -+	_write_sysconfig(v, oh);
> -+
> -+error:
> -+	return ret;
> -+}
> -+
> -+/**
> -  * omap_hwmod_set_slave_idlemode - set the hwmod's OCP slave idlemode
> -  * @oh: struct omap_hwmod *
> -  * @idlemode: SIDLEMODE field bits (shifted to bit 0)
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -index 7af2514..a015c69 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> -@@ -1030,6 +1030,7 @@ static struct omap_hwmod_class i2c_class = {
> - 	.name		= "i2c",
> - 	.sysc		= &i2c_sysc,
> - 	.rev		= OMAP_I2C_IP_VERSION_1,
> -+	.reset		= &omap_i2c_reset,
> - };
> -
> - static struct omap_i2c_dev_attr i2c_dev_attr = {
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -index 405688a..16743c7 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> -@@ -1079,6 +1079,7 @@ static struct omap_hwmod_class i2c_class = {
> - 	.name		= "i2c",
> - 	.sysc		= &i2c_sysc,
> - 	.rev		= OMAP_I2C_IP_VERSION_1,
> -+	.reset		= &omap_i2c_reset,
> - };
> -
> - static struct omap_i2c_dev_attr i2c_dev_attr = {
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -index c704ac8..25bf43b 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -@@ -1306,9 +1306,10 @@ static struct omap_hwmod
> omap3xxx_uart4_hwmod = {
> - };
> -
> - static struct omap_hwmod_class i2c_class = {
> --	.name = "i2c",
> --	.sysc = &i2c_sysc,
> --	.rev  = OMAP_I2C_IP_VERSION_1,
> -+	.name	= "i2c",
> -+	.sysc	= &i2c_sysc,
> -+	.rev	= OMAP_I2C_IP_VERSION_1,
> -+	.reset	= &omap_i2c_reset,
> - };
> -
> - static struct omap_hwmod_dma_info omap3xxx_dss_sdma_chs[] = {
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index 55331df..5d5df49 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -22,6 +22,7 @@
> -
> - #include <plat/omap_hwmod.h>
> - #include <plat/cpu.h>
> -+#include <plat/i2c.h>
> - #include <plat/gpio.h>
> - #include <plat/dma.h>
> - #include <plat/mcspi.h>
> -@@ -2162,6 +2163,7 @@ static struct omap_hwmod_class
> omap44xx_i2c_hwmod_class = {
> - 	.name	= "i2c",
> - 	.sysc	= &omap44xx_i2c_sysc,
> - 	.rev	= OMAP_I2C_IP_VERSION_2,
> -+	.reset	= &omap_i2c_reset,
> - };
> -
> - static struct omap_i2c_dev_attr i2c_dev_attr = {
> -@@ -2207,7 +2209,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_i2c1_slaves[] = {
> - static struct omap_hwmod omap44xx_i2c1_hwmod = {
> - 	.name		= "i2c1",
> - 	.class		= &omap44xx_i2c_hwmod_class,
> --	.flags		= HWMOD_16BIT_REG | HWMOD_INIT_NO_RESET,
> -+	.flags		= HWMOD_16BIT_REG,
> - 	.mpu_irqs	= omap44xx_i2c1_irqs,
> - 	.sdma_reqs	= omap44xx_i2c1_sdma_reqs,
> - 	.main_clk	= "i2c1_fck",
> -@@ -2261,7 +2263,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_i2c2_slaves[] = {
> - static struct omap_hwmod omap44xx_i2c2_hwmod = {
> - 	.name		= "i2c2",
> - 	.class		= &omap44xx_i2c_hwmod_class,
> --	.flags		= HWMOD_16BIT_REG | HWMOD_INIT_NO_RESET,
> -+	.flags		= HWMOD_16BIT_REG,
> - 	.mpu_irqs	= omap44xx_i2c2_irqs,
> - 	.sdma_reqs	= omap44xx_i2c2_sdma_reqs,
> - 	.main_clk	= "i2c2_fck",
> -@@ -2315,7 +2317,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_i2c3_slaves[] = {
> - static struct omap_hwmod omap44xx_i2c3_hwmod = {
> - 	.name		= "i2c3",
> - 	.class		= &omap44xx_i2c_hwmod_class,
> --	.flags		= HWMOD_16BIT_REG | HWMOD_INIT_NO_RESET,
> -+	.flags		= HWMOD_16BIT_REG,
> - 	.mpu_irqs	= omap44xx_i2c3_irqs,
> - 	.sdma_reqs	= omap44xx_i2c3_sdma_reqs,
> - 	.main_clk	= "i2c3_fck",
> -@@ -2369,7 +2371,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_i2c4_slaves[] = {
> - static struct omap_hwmod omap44xx_i2c4_hwmod = {
> - 	.name		= "i2c4",
> - 	.class		= &omap44xx_i2c_hwmod_class,
> --	.flags		= HWMOD_16BIT_REG | HWMOD_INIT_NO_RESET,
> -+	.flags		= HWMOD_16BIT_REG,
> - 	.mpu_irqs	= omap44xx_i2c4_irqs,
> - 	.sdma_reqs	= omap44xx_i2c4_sdma_reqs,
> - 	.main_clk	= "i2c4_fck",
> -diff --git a/arch/arm/plat-omap/include/plat/i2c.h b/arch/arm/plat-
> omap/include/plat/i2c.h
> -index fd75dad..7c22b9e 100644
> ---- a/arch/arm/plat-omap/include/plat/i2c.h
> -+++ b/arch/arm/plat-omap/include/plat/i2c.h
> -@@ -53,4 +53,7 @@ struct omap_i2c_dev_attr {
> - void __init omap1_i2c_mux_pins(int bus_id);
> - void __init omap2_i2c_mux_pins(int bus_id);
> -
> -+struct omap_hwmod;
> -+int omap_i2c_reset(struct omap_hwmod *oh);
> -+
> - #endif /* __ASM__ARCH_OMAP_I2C_H */
> -diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -index ce06ac6..fafdfe3 100644
> ---- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -@@ -566,6 +566,7 @@ void omap_hwmod_ocp_barrier(struct
> omap_hwmod *oh);
> -
> - void omap_hwmod_write(u32 v, struct omap_hwmod *oh, u16 reg_offs);
> - u32 omap_hwmod_read(struct omap_hwmod *oh, u16 reg_offs);
> -+int omap_hwmod_softreset(struct omap_hwmod *oh);
> -
> - int omap_hwmod_count_resources(struct omap_hwmod *oh);
> - int omap_hwmod_fill_resources(struct omap_hwmod *oh, struct resource
> *res);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0075-OMAP-
> omap_device-Create-clkdev-entry-for-hwmod-main_.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0075-OMAP-omap_device-Create-
> clkdev-entry-for-hwmod-main_.patch
> deleted file mode 100644
> index 43a50a0..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0075-OMAP-omap_device-
> Create-clkdev-entry-for-hwmod-main_.patch
> +++ /dev/null
> @@ -1,437 +0,0 @@
> -From e56d203975458c6e21c5e63711e2c34b36dc9678 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sun, 10 Jul 2011 05:54:12 -0600
> -Subject: [PATCH 075/149] OMAP: omap_device: Create clkdev entry for
> hwmod main_clk
> -
> -Extend the existing function to create clkdev for every optional
> -clocks to add a well one "fck" alias for the main_clk of the
> -omap_hwmod.
> -It will allow to remove these static clkdev entries from the
> -clockXXX_data.c file.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Kevin Hilman <khilman at ti.com>
> -Cc: Todd Poynor <toddpoynor at google.com>
> -[paul at pwsan.com: remove all of the "fck" role clkdev aliases from the
> - clock data files; fixed error message]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clock2420_data.c |   22 ++++----
> - arch/arm/mach-omap2/clock2430_data.c |   32 ++++++------
> - arch/arm/mach-omap2/clock3xxx_data.c |   44 +++++++++---------
> - arch/arm/mach-omap2/clock44xx_data.c |   38 ++++++++--------
> - arch/arm/plat-omap/omap_device.c     |   85 ++++++++++++++++++++---------
> -----
> - 5 files changed, 118 insertions(+), 103 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clock2420_data.c b/arch/arm/mach-
> omap2/clock2420_data.c
> -index 2926d02..debc040 100644
> ---- a/arch/arm/mach-omap2/clock2420_data.c
> -+++ b/arch/arm/mach-omap2/clock2420_data.c
> -@@ -1805,9 +1805,9 @@ static struct omap_clk omap2420_clks[] = {
> - 	CLK(NULL,	"gfx_ick",	&gfx_ick,	CK_242X),
> - 	/* DSS domain clocks */
> - 	CLK("omapdss_dss",	"ick",		&dss_ick,	CK_242X),
> --	CLK("omapdss_dss",	"fck",		&dss1_fck,	CK_242X),
> --	CLK("omapdss_dss",	"sys_clk",	&dss2_fck,	CK_242X),
> --	CLK("omapdss_dss",	"tv_clk",	&dss_54m_fck,	CK_242X),
> -+	CLK(NULL,	"dss1_fck",		&dss1_fck,	CK_242X),
> -+	CLK(NULL,	"dss2_fck",	&dss2_fck,	CK_242X),
> -+	CLK(NULL,	"dss_54m_fck",	&dss_54m_fck,	CK_242X),
> - 	/* L3 domain clocks */
> - 	CLK(NULL,	"core_l3_ck",	&core_l3_ck,	CK_242X),
> - 	CLK(NULL,	"ssi_fck",	&ssi_ssr_sst_fck, CK_242X),
> -@@ -1844,13 +1844,13 @@ static struct omap_clk omap2420_clks[] = {
> - 	CLK(NULL,	"gpt12_ick",	&gpt12_ick,	CK_242X),
> - 	CLK(NULL,	"gpt12_fck",	&gpt12_fck,	CK_242X),
> - 	CLK("omap-mcbsp.1", "ick",	&mcbsp1_ick,	CK_242X),
> --	CLK("omap-mcbsp.1", "fck",	&mcbsp1_fck,	CK_242X),
> -+	CLK(NULL,	"mcbsp1_fck",	&mcbsp1_fck,	CK_242X),
> - 	CLK("omap-mcbsp.2", "ick",	&mcbsp2_ick,	CK_242X),
> --	CLK("omap-mcbsp.2", "fck",	&mcbsp2_fck,	CK_242X),
> -+	CLK(NULL,	"mcbsp2_fck",	&mcbsp2_fck,	CK_242X),
> - 	CLK("omap2_mcspi.1", "ick",	&mcspi1_ick,	CK_242X),
> --	CLK("omap2_mcspi.1", "fck",	&mcspi1_fck,	CK_242X),
> -+	CLK(NULL,	"mcspi1_fck",	&mcspi1_fck,	CK_242X),
> - 	CLK("omap2_mcspi.2", "ick",	&mcspi2_ick,	CK_242X),
> --	CLK("omap2_mcspi.2", "fck",	&mcspi2_fck,	CK_242X),
> -+	CLK(NULL,	"mcspi2_fck",	&mcspi2_fck,	CK_242X),
> - 	CLK(NULL,	"uart1_ick",	&uart1_ick,	CK_242X),
> - 	CLK(NULL,	"uart1_fck",	&uart1_fck,	CK_242X),
> - 	CLK(NULL,	"uart2_ick",	&uart2_ick,	CK_242X),
> -@@ -1860,7 +1860,7 @@ static struct omap_clk omap2420_clks[] = {
> - 	CLK(NULL,	"gpios_ick",	&gpios_ick,	CK_242X),
> - 	CLK(NULL,	"gpios_fck",	&gpios_fck,	CK_242X),
> - 	CLK("omap_wdt",	"ick",		&mpu_wdt_ick,	CK_242X),
> --	CLK("omap_wdt",	"fck",		&mpu_wdt_fck,
> 	CK_242X),
> -+	CLK(NULL,	"mpu_wdt_fck",	&mpu_wdt_fck,
> 	CK_242X),
> - 	CLK(NULL,	"sync_32k_ick",	&sync_32k_ick,	CK_242X),
> - 	CLK(NULL,	"wdt1_ick",	&wdt1_ick,	CK_242X),
> - 	CLK(NULL,	"omapctrl_ick",	&omapctrl_ick,	CK_242X),
> -@@ -1880,11 +1880,11 @@ static struct omap_clk omap2420_clks[] = {
> - 	CLK(NULL,	"eac_ick",	&eac_ick,	CK_242X),
> - 	CLK(NULL,	"eac_fck",	&eac_fck,	CK_242X),
> - 	CLK("omap_hdq.0", "ick",	&hdq_ick,	CK_242X),
> --	CLK("omap_hdq.1", "fck",	&hdq_fck,	CK_242X),
> -+	CLK("omap_hdq.0", "fck",	&hdq_fck,	CK_242X),
> - 	CLK("omap_i2c.1", "ick",	&i2c1_ick,	CK_242X),
> --	CLK("omap_i2c.1", "fck",	&i2c1_fck,	CK_242X),
> -+	CLK(NULL,	"i2c1_fck",	&i2c1_fck,	CK_242X),
> - 	CLK("omap_i2c.2", "ick",	&i2c2_ick,	CK_242X),
> --	CLK("omap_i2c.2", "fck",	&i2c2_fck,	CK_242X),
> -+	CLK(NULL,	"i2c2_fck",	&i2c2_fck,	CK_242X),
> - 	CLK(NULL,	"gpmc_fck",	&gpmc_fck,	CK_242X),
> - 	CLK(NULL,	"sdma_fck",	&sdma_fck,	CK_242X),
> - 	CLK(NULL,	"sdma_ick",	&sdma_ick,	CK_242X),
> -diff --git a/arch/arm/mach-omap2/clock2430_data.c b/arch/arm/mach-
> omap2/clock2430_data.c
> -index 0c79d39..96a942e 100644
> ---- a/arch/arm/mach-omap2/clock2430_data.c
> -+++ b/arch/arm/mach-omap2/clock2430_data.c
> -@@ -1895,9 +1895,9 @@ static struct omap_clk omap2430_clks[] = {
> - 	CLK(NULL,	"mdm_osc_ck",	&mdm_osc_ck,	CK_243X),
> - 	/* DSS domain clocks */
> - 	CLK("omapdss_dss",	"ick",		&dss_ick,	CK_243X),
> --	CLK("omapdss_dss",	"fck",		&dss1_fck,	CK_243X),
> --	CLK("omapdss_dss",	"sys_clk",	&dss2_fck,	CK_243X),
> --	CLK("omapdss_dss",	"tv_clk",	&dss_54m_fck,	CK_243X),
> -+	CLK(NULL,	"dss1_fck",		&dss1_fck,	CK_243X),
> -+	CLK(NULL,	"dss2_fck",	&dss2_fck,	CK_243X),
> -+	CLK(NULL,	"dss_54m_fck",	&dss_54m_fck,	CK_243X),
> - 	/* L3 domain clocks */
> - 	CLK(NULL,	"core_l3_ck",	&core_l3_ck,	CK_243X),
> - 	CLK(NULL,	"ssi_fck",	&ssi_ssr_sst_fck, CK_243X),
> -@@ -1934,21 +1934,21 @@ static struct omap_clk omap2430_clks[] = {
> - 	CLK(NULL,	"gpt12_ick",	&gpt12_ick,	CK_243X),
> - 	CLK(NULL,	"gpt12_fck",	&gpt12_fck,	CK_243X),
> - 	CLK("omap-mcbsp.1", "ick",	&mcbsp1_ick,	CK_243X),
> --	CLK("omap-mcbsp.1", "fck",	&mcbsp1_fck,	CK_243X),
> -+	CLK(NULL,	"mcbsp1_fck",	&mcbsp1_fck,	CK_243X),
> - 	CLK("omap-mcbsp.2", "ick",	&mcbsp2_ick,	CK_243X),
> --	CLK("omap-mcbsp.2", "fck",	&mcbsp2_fck,	CK_243X),
> -+	CLK(NULL,	"mcbsp2_fck",	&mcbsp2_fck,	CK_243X),
> - 	CLK("omap-mcbsp.3", "ick",	&mcbsp3_ick,	CK_243X),
> --	CLK("omap-mcbsp.3", "fck",	&mcbsp3_fck,	CK_243X),
> -+	CLK(NULL,	"mcbsp3_fck",	&mcbsp3_fck,	CK_243X),
> - 	CLK("omap-mcbsp.4", "ick",	&mcbsp4_ick,	CK_243X),
> --	CLK("omap-mcbsp.4", "fck",	&mcbsp4_fck,	CK_243X),
> -+	CLK(NULL,	"mcbsp4_fck",	&mcbsp4_fck,	CK_243X),
> - 	CLK("omap-mcbsp.5", "ick",	&mcbsp5_ick,	CK_243X),
> --	CLK("omap-mcbsp.5", "fck",	&mcbsp5_fck,	CK_243X),
> -+	CLK(NULL,	"mcbsp5_fck",	&mcbsp5_fck,	CK_243X),
> - 	CLK("omap2_mcspi.1", "ick",	&mcspi1_ick,	CK_243X),
> --	CLK("omap2_mcspi.1", "fck",	&mcspi1_fck,	CK_243X),
> -+	CLK(NULL,	"mcspi1_fck",	&mcspi1_fck,	CK_243X),
> - 	CLK("omap2_mcspi.2", "ick",	&mcspi2_ick,	CK_243X),
> --	CLK("omap2_mcspi.2", "fck",	&mcspi2_fck,	CK_243X),
> -+	CLK(NULL,	"mcspi2_fck",	&mcspi2_fck,	CK_243X),
> - 	CLK("omap2_mcspi.3", "ick",	&mcspi3_ick,	CK_243X),
> --	CLK("omap2_mcspi.3", "fck",	&mcspi3_fck,	CK_243X),
> -+	CLK(NULL,	"mcspi3_fck",	&mcspi3_fck,	CK_243X),
> - 	CLK(NULL,	"uart1_ick",	&uart1_ick,	CK_243X),
> - 	CLK(NULL,	"uart1_fck",	&uart1_fck,	CK_243X),
> - 	CLK(NULL,	"uart2_ick",	&uart2_ick,	CK_243X),
> -@@ -1958,7 +1958,7 @@ static struct omap_clk omap2430_clks[] = {
> - 	CLK(NULL,	"gpios_ick",	&gpios_ick,	CK_243X),
> - 	CLK(NULL,	"gpios_fck",	&gpios_fck,	CK_243X),
> - 	CLK("omap_wdt",	"ick",		&mpu_wdt_ick,	CK_243X),
> --	CLK("omap_wdt",	"fck",		&mpu_wdt_fck,
> 	CK_243X),
> -+	CLK(NULL,	"mpu_wdt_fck",	&mpu_wdt_fck,
> 	CK_243X),
> - 	CLK(NULL,	"sync_32k_ick",	&sync_32k_ick,	CK_243X),
> - 	CLK(NULL,	"wdt1_ick",	&wdt1_ick,	CK_243X),
> - 	CLK(NULL,	"omapctrl_ick",	&omapctrl_ick,	CK_243X),
> -@@ -1975,9 +1975,9 @@ static struct omap_clk omap2430_clks[] = {
> - 	CLK("omap_hdq.0", "ick",	&hdq_ick,	CK_243X),
> - 	CLK("omap_hdq.1", "fck",	&hdq_fck,	CK_243X),
> - 	CLK("omap_i2c.1", "ick",	&i2c1_ick,	CK_243X),
> --	CLK("omap_i2c.1", "fck",	&i2chs1_fck,	CK_243X),
> -+	CLK(NULL,	"i2chs1_fck",	&i2chs1_fck,	CK_243X),
> - 	CLK("omap_i2c.2", "ick",	&i2c2_ick,	CK_243X),
> --	CLK("omap_i2c.2", "fck",	&i2chs2_fck,	CK_243X),
> -+	CLK(NULL,	"i2chs2_fck",	&i2chs2_fck,	CK_243X),
> - 	CLK(NULL,	"gpmc_fck",	&gpmc_fck,	CK_243X),
> - 	CLK(NULL,	"sdma_fck",	&sdma_fck,	CK_243X),
> - 	CLK(NULL,	"sdma_ick",	&sdma_ick,	CK_243X),
> -@@ -1990,9 +1990,9 @@ static struct omap_clk omap2430_clks[] = {
> - 	CLK(NULL,	"usb_fck",	&usb_fck,	CK_243X),
> - 	CLK("musb-omap2430",	"ick",	&usbhs_ick,	CK_243X),
> - 	CLK("omap_hsmmc.0", "ick",	&mmchs1_ick,	CK_243X),
> --	CLK("omap_hsmmc.0", "fck",	&mmchs1_fck,	CK_243X),
> -+	CLK(NULL,	"mmchs1_fck",	&mmchs1_fck,	CK_243X),
> - 	CLK("omap_hsmmc.1", "ick",	&mmchs2_ick,	CK_243X),
> --	CLK("omap_hsmmc.1", "fck",	&mmchs2_fck,	CK_243X),
> -+	CLK(NULL,	"mmchs2_fck",	&mmchs2_fck,	CK_243X),
> - 	CLK(NULL,	"gpio5_ick",	&gpio5_ick,	CK_243X),
> - 	CLK(NULL,	"gpio5_fck",	&gpio5_fck,	CK_243X),
> - 	CLK(NULL,	"mdm_intc_ick",	&mdm_intc_ick,
> 	CK_243X),
> -diff --git a/arch/arm/mach-omap2/clock3xxx_data.c b/arch/arm/mach-
> omap2/clock3xxx_data.c
> -index 75b119b..ffd55b1 100644
> ---- a/arch/arm/mach-omap2/clock3xxx_data.c
> -+++ b/arch/arm/mach-omap2/clock3xxx_data.c
> -@@ -3289,25 +3289,25 @@ static struct omap_clk omap3xxx_clks[] = {
> - 	CLK("omap-mcbsp.1",	"prcm_fck",	&core_96m_fck,
> 	CK_3XXX),
> - 	CLK("omap-mcbsp.5",	"prcm_fck",	&core_96m_fck,
> 	CK_3XXX),
> - 	CLK(NULL,	"core_96m_fck",	&core_96m_fck,
> 	CK_3XXX),
> --	CLK("omap_hsmmc.2",	"fck",	&mmchs3_fck,	CK_3430ES2PLUS |
> CK_AM35XX | CK_36XX),
> --	CLK("omap_hsmmc.1",	"fck",	&mmchs2_fck,	CK_3XXX),
> -+	CLK(NULL,	"mmchs3_fck",	&mmchs3_fck,	CK_3430ES2PLUS |
> CK_AM35XX | CK_36XX),
> -+	CLK(NULL,	"mmchs2_fck",	&mmchs2_fck,	CK_3XXX),
> - 	CLK(NULL,	"mspro_fck",	&mspro_fck,	CK_34XX | CK_36XX),
> --	CLK("omap_hsmmc.0",	"fck",	&mmchs1_fck,	CK_3XXX),
> --	CLK("omap_i2c.3", "fck",	&i2c3_fck,	CK_3XXX),
> --	CLK("omap_i2c.2", "fck",	&i2c2_fck,	CK_3XXX),
> --	CLK("omap_i2c.1", "fck",	&i2c1_fck,	CK_3XXX),
> --	CLK("omap-mcbsp.5", "fck",	&mcbsp5_fck,	CK_3XXX),
> --	CLK("omap-mcbsp.1", "fck",	&mcbsp1_fck,	CK_3XXX),
> -+	CLK(NULL,	"mmchs1_fck",	&mmchs1_fck,	CK_3XXX),
> -+	CLK(NULL,	"i2c3_fck",	&i2c3_fck,	CK_3XXX),
> -+	CLK(NULL,	"i2c2_fck",	&i2c2_fck,	CK_3XXX),
> -+	CLK(NULL,	"i2c1_fck",	&i2c1_fck,	CK_3XXX),
> -+	CLK(NULL,	"mcbsp5_fck",	&mcbsp5_fck,	CK_3XXX),
> -+	CLK(NULL,	"mcbsp1_fck",	&mcbsp1_fck,	CK_3XXX),
> - 	CLK(NULL,	"core_48m_fck",	&core_48m_fck,
> 	CK_3XXX),
> --	CLK("omap2_mcspi.4", "fck",	&mcspi4_fck,	CK_3XXX),
> --	CLK("omap2_mcspi.3", "fck",	&mcspi3_fck,	CK_3XXX),
> --	CLK("omap2_mcspi.2", "fck",	&mcspi2_fck,	CK_3XXX),
> --	CLK("omap2_mcspi.1", "fck",	&mcspi1_fck,	CK_3XXX),
> -+	CLK(NULL,	"mcspi4_fck",	&mcspi4_fck,	CK_3XXX),
> -+	CLK(NULL,	"mcspi3_fck",	&mcspi3_fck,	CK_3XXX),
> -+	CLK(NULL,	"mcspi2_fck",	&mcspi2_fck,	CK_3XXX),
> -+	CLK(NULL,	"mcspi1_fck",	&mcspi1_fck,	CK_3XXX),
> - 	CLK(NULL,	"uart2_fck",	&uart2_fck,	CK_3XXX),
> - 	CLK(NULL,	"uart1_fck",	&uart1_fck,	CK_3XXX),
> - 	CLK(NULL,	"fshostusb_fck", &fshostusb_fck, CK_3430ES1),
> - 	CLK(NULL,	"core_12m_fck",	&core_12m_fck,
> 	CK_3XXX),
> --	CLK("omap_hdq.0", "fck",	&hdq_fck,	CK_3XXX),
> -+	CLK("omap_hdq.0",	"fck",	&hdq_fck,	CK_3XXX),
> - 	CLK(NULL,	"ssi_ssr_fck",	&ssi_ssr_fck_3430es1,
> 	CK_3430ES1),
> - 	CLK(NULL,	"ssi_ssr_fck",	&ssi_ssr_fck_3430es2,
> 	CK_3430ES2PLUS | CK_36XX),
> - 	CLK(NULL,	"ssi_sst_fck",	&ssi_sst_fck_3430es1,
> 	CK_3430ES1),
> -@@ -3356,11 +3356,11 @@ static struct omap_clk omap3xxx_clks[] = {
> - 	CLK("omap_rng",	"ick",		&rng_ick,	CK_34XX |
> CK_36XX),
> - 	CLK(NULL,	"sha11_ick",	&sha11_ick,	CK_34XX | CK_36XX),
> - 	CLK(NULL,	"des1_ick",	&des1_ick,	CK_34XX | CK_36XX),
> --	CLK("omapdss_dss",	"fck",		&dss1_alwon_fck_3430es1,
> CK_3430ES1),
> --	CLK("omapdss_dss",	"fck",		&dss1_alwon_fck_3430es2,
> CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
> --	CLK("omapdss_dss",	"tv_clk",	&dss_tv_fck,	CK_3XXX),
> --	CLK("omapdss_dss",	"video_clk",	&dss_96m_fck,	CK_3XXX),
> --	CLK("omapdss_dss",	"sys_clk",	&dss2_alwon_fck, CK_3XXX),
> -+	CLK(NULL,	"dss1_alwon_fck",
> 	&dss1_alwon_fck_3430es1, CK_3430ES1),
> -+	CLK(NULL,	"dss1_alwon_fck",
> 	&dss1_alwon_fck_3430es2, CK_3430ES2PLUS | CK_AM35XX |
> CK_36XX),
> -+	CLK(NULL,	"dss_tv_fck",	&dss_tv_fck,	CK_3XXX),
> -+	CLK(NULL,	"dss_96m_fck",	&dss_96m_fck,	CK_3XXX),
> -+	CLK(NULL,	"dss2_alwon_fck",	&dss2_alwon_fck, CK_3XXX),
> - 	CLK("omapdss_dss",	"ick",		&dss_ick_3430es1,
> 	CK_3430ES1),
> - 	CLK("omapdss_dss",	"ick",		&dss_ick_3430es2,
> 	CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
> - 	CLK(NULL,	"cam_mclk",	&cam_mclk,	CK_34XX | CK_36XX),
> -@@ -3385,7 +3385,7 @@ static struct omap_clk omap3xxx_clks[] = {
> - 	CLK(NULL,	"gpt1_fck",	&gpt1_fck,	CK_3XXX),
> - 	CLK(NULL,	"wkup_32k_fck",	&wkup_32k_fck,
> 	CK_3XXX),
> - 	CLK(NULL,	"gpio1_dbck",	&gpio1_dbck,	CK_3XXX),
> --	CLK("omap_wdt",	"fck",		&wdt2_fck,	CK_3XXX),
> -+	CLK(NULL,	"wdt2_fck",		&wdt2_fck,	CK_3XXX),
> - 	CLK(NULL,	"wkup_l4_ick",	&wkup_l4_ick,	CK_34XX | CK_36XX),
> - 	CLK(NULL,	"usim_ick",	&usim_ick,	CK_3430ES2PLUS |
> CK_36XX),
> - 	CLK("omap_wdt",	"ick",		&wdt2_ick,	CK_3XXX),
> -@@ -3436,9 +3436,9 @@ static struct omap_clk omap3xxx_clks[] = {
> - 	CLK("omap-mcbsp.2", "ick",	&mcbsp2_ick,	CK_3XXX),
> - 	CLK("omap-mcbsp.3", "ick",	&mcbsp3_ick,	CK_3XXX),
> - 	CLK("omap-mcbsp.4", "ick",	&mcbsp4_ick,	CK_3XXX),
> --	CLK("omap-mcbsp.2", "fck",	&mcbsp2_fck,	CK_3XXX),
> --	CLK("omap-mcbsp.3", "fck",	&mcbsp3_fck,	CK_3XXX),
> --	CLK("omap-mcbsp.4", "fck",	&mcbsp4_fck,	CK_3XXX),
> -+	CLK(NULL,	"mcbsp2_fck",	&mcbsp2_fck,	CK_3XXX),
> -+	CLK(NULL,	"mcbsp3_fck",	&mcbsp3_fck,	CK_3XXX),
> -+	CLK(NULL,	"mcbsp4_fck",	&mcbsp4_fck,	CK_3XXX),
> - 	CLK("etb",	"emu_src_ck",	&emu_src_ck,	CK_3XXX),
> - 	CLK(NULL,	"pclk_fck",	&pclk_fck,	CK_3XXX),
> - 	CLK(NULL,	"pclkx2_fck",	&pclkx2_fck,	CK_3XXX),
> -diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-
> omap2/clock44xx_data.c
> -index 2578820..763507f 100644
> ---- a/arch/arm/mach-omap2/clock44xx_data.c
> -+++ b/arch/arm/mach-omap2/clock44xx_data.c
> -@@ -3057,12 +3057,12 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK(NULL,	"gpio6_ick",			&gpio6_ick,
> 	CK_443X),
> - 	CLK(NULL,	"gpmc_ick",			&gpmc_ick,
> 	CK_443X),
> - 	CLK(NULL,	"gpu_fck",			&gpu_fck,
> 	CK_443X),
> --	CLK("omap2_hdq.0",	"fck",				&hdq1w_fck,
> 	CK_443X),
> -+	CLK(NULL,	"hdq1w_fck",			&hdq1w_fck,
> 	CK_443X),
> - 	CLK(NULL,	"hsi_fck",			&hsi_fck,
> 	CK_443X),
> --	CLK("omap_i2c.1",	"fck",				&i2c1_fck,
> 	CK_443X),
> --	CLK("omap_i2c.2",	"fck",				&i2c2_fck,
> 	CK_443X),
> --	CLK("omap_i2c.3",	"fck",				&i2c3_fck,
> 	CK_443X),
> --	CLK("omap_i2c.4",	"fck",				&i2c4_fck,
> 	CK_443X),
> -+	CLK(NULL,	"i2c1_fck",			&i2c1_fck,
> 	CK_443X),
> -+	CLK(NULL,	"i2c2_fck",			&i2c2_fck,
> 	CK_443X),
> -+	CLK(NULL,	"i2c3_fck",			&i2c3_fck,
> 	CK_443X),
> -+	CLK(NULL,	"i2c4_fck",			&i2c4_fck,
> 	CK_443X),
> - 	CLK(NULL,	"ipu_fck",			&ipu_fck,
> 	CK_443X),
> - 	CLK(NULL,	"iss_ctrlclk",			&iss_ctrlclk,
> 	CK_443X),
> - 	CLK(NULL,	"iss_fck",			&iss_fck,
> 	CK_443X),
> -@@ -3073,23 +3073,23 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK(NULL,	"mcasp_sync_mux_ck",
> 	&mcasp_sync_mux_ck,	CK_443X),
> - 	CLK(NULL,	"mcasp_fck",			&mcasp_fck,
> 	CK_443X),
> - 	CLK(NULL,	"mcbsp1_sync_mux_ck",
> 	&mcbsp1_sync_mux_ck,	CK_443X),
> --	CLK("omap-mcbsp.1",	"fck",
> 	&mcbsp1_fck,	CK_443X),
> -+	CLK(NULL,	"mcbsp1_fck",			&mcbsp1_fck,
> 	CK_443X),
> - 	CLK(NULL,	"mcbsp2_sync_mux_ck",
> 	&mcbsp2_sync_mux_ck,	CK_443X),
> --	CLK("omap-mcbsp.2",	"fck",
> 	&mcbsp2_fck,	CK_443X),
> -+	CLK(NULL,	"mcbsp2_fck",			&mcbsp2_fck,
> 	CK_443X),
> - 	CLK(NULL,	"mcbsp3_sync_mux_ck",
> 	&mcbsp3_sync_mux_ck,	CK_443X),
> --	CLK("omap-mcbsp.3",	"fck",
> 	&mcbsp3_fck,	CK_443X),
> -+	CLK(NULL,	"mcbsp3_fck",			&mcbsp3_fck,
> 	CK_443X),
> - 	CLK(NULL,	"mcbsp4_sync_mux_ck",
> 	&mcbsp4_sync_mux_ck,	CK_443X),
> --	CLK("omap-mcbsp.4",	"fck",
> 	&mcbsp4_fck,	CK_443X),
> -+	CLK(NULL,	"mcbsp4_fck",			&mcbsp4_fck,
> 	CK_443X),
> - 	CLK(NULL,	"mcpdm_fck",			&mcpdm_fck,
> 	CK_443X),
> --	CLK("omap2_mcspi.1",	"fck",				&mcspi1_fck,
> 	CK_443X),
> --	CLK("omap2_mcspi.2",	"fck",				&mcspi2_fck,
> 	CK_443X),
> --	CLK("omap2_mcspi.3",	"fck",				&mcspi3_fck,
> 	CK_443X),
> --	CLK("omap2_mcspi.4",	"fck",				&mcspi4_fck,
> 	CK_443X),
> --	CLK("omap_hsmmc.0",	"fck",				&mmc1_fck,
> 	CK_443X),
> --	CLK("omap_hsmmc.1",	"fck",				&mmc2_fck,
> 	CK_443X),
> --	CLK("omap_hsmmc.2",	"fck",				&mmc3_fck,
> 	CK_443X),
> --	CLK("omap_hsmmc.3",	"fck",				&mmc4_fck,
> 	CK_443X),
> --	CLK("omap_hsmmc.4",	"fck",				&mmc5_fck,
> 	CK_443X),
> -+	CLK(NULL,	"mcspi1_fck",			&mcspi1_fck,
> 	CK_443X),
> -+	CLK(NULL,	"mcspi2_fck",			&mcspi2_fck,
> 	CK_443X),
> -+	CLK(NULL,	"mcspi3_fck",			&mcspi3_fck,
> 	CK_443X),
> -+	CLK(NULL,	"mcspi4_fck",			&mcspi4_fck,
> 	CK_443X),
> -+	CLK(NULL,	"mmc1_fck",			&mmc1_fck,
> 	CK_443X),
> -+	CLK(NULL,	"mmc2_fck",			&mmc2_fck,
> 	CK_443X),
> -+	CLK(NULL,	"mmc3_fck",			&mmc3_fck,
> 	CK_443X),
> -+	CLK(NULL,	"mmc4_fck",			&mmc4_fck,
> 	CK_443X),
> -+	CLK(NULL,	"mmc5_fck",			&mmc5_fck,
> 	CK_443X),
> - 	CLK(NULL,	"ocp2scp_usb_phy_phy_48m",
> 	&ocp2scp_usb_phy_phy_48m,	CK_443X),
> - 	CLK(NULL,	"ocp2scp_usb_phy_ick",
> 	&ocp2scp_usb_phy_ick,	CK_443X),
> - 	CLK(NULL,	"ocp_wp_noc_ick",		&ocp_wp_noc_ick,
> 	CK_443X),
> -@@ -3146,7 +3146,7 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK(NULL,	"usim_ck",			&usim_ck,
> 	CK_443X),
> - 	CLK(NULL,	"usim_fclk",			&usim_fclk,
> 	CK_443X),
> - 	CLK(NULL,	"usim_fck",			&usim_fck,
> 	CK_443X),
> --	CLK("omap_wdt",	"fck",
> 	&wd_timer2_fck,	CK_443X),
> -+	CLK(NULL,	"wd_timer2_fck",		&wd_timer2_fck,
> 	CK_443X),
> - 	CLK(NULL,	"wd_timer3_fck",		&wd_timer3_fck,
> 	CK_443X),
> - 	CLK(NULL,	"stm_clk_div_ck",		&stm_clk_div_ck,
> 	CK_443X),
> - 	CLK(NULL,	"trace_clk_div_ck",		&trace_clk_div_ck,
> 	CK_443X),
> -diff --git a/arch/arm/plat-omap/omap_device.c b/arch/arm/plat-
> omap/omap_device.c
> -index c8b9cd1..be45147 100644
> ---- a/arch/arm/plat-omap/omap_device.c
> -+++ b/arch/arm/plat-omap/omap_device.c
> -@@ -236,56 +236,71 @@ static int _omap_device_deactivate(struct
> omap_device *od, u8 ignore_lat)
> - 	return 0;
> - }
> -
> -+static void _add_clkdev(struct omap_device *od, const char *clk_alias,
> -+		       const char *clk_name)
> -+{
> -+	struct clk *r;
> -+	struct clk_lookup *l;
> -+
> -+	if (!clk_alias || !clk_name)
> -+		return;
> -+
> -+	pr_debug("omap_device: %s: Creating %s -> %s\n",
> -+		 dev_name(&od->pdev.dev), clk_alias, clk_name);
> -+
> -+	r = clk_get_sys(dev_name(&od->pdev.dev), clk_alias);
> -+	if (!IS_ERR(r)) {
> -+		pr_warning("omap_device: %s: alias %s already exists\n",
> -+			   dev_name(&od->pdev.dev), clk_alias);
> -+		clk_put(r);
> -+		return;
> -+	}
> -+
> -+	r = omap_clk_get_by_name(clk_name);
> -+	if (IS_ERR(r)) {
> -+		pr_err("omap_device: %s: omap_clk_get_by_name for %s
> failed\n",
> -+		       dev_name(&od->pdev.dev), clk_name);
> -+		return;
> -+	}
> -+
> -+	l = clkdev_alloc(r, clk_alias, dev_name(&od->pdev.dev));
> -+	if (!l) {
> -+		pr_err("omap_device: %s: clkdev_alloc for %s failed\n",
> -+		       dev_name(&od->pdev.dev), clk_alias);
> -+		return;
> -+	}
> -+
> -+	clkdev_add(l);
> -+}
> -+
> - /**
> -- * _add_optional_clock_clkdev - Add clkdev entry for hwmod optional clocks
> -+ * _add_hwmod_clocks_clkdev - Add clkdev entry for hwmod optional clocks
> -+ * and main clock
> -  * @od: struct omap_device *od
> -+ * @oh: struct omap_hwmod *oh
> -  *
> -- * For every optional clock present per hwmod per omap_device, this function
> -- * adds an entry in the clkdev table of the form <dev-id=dev_name, con-
> id=role>
> -- * if it does not exist already.
> -+ * For the main clock and every optional clock present per hwmod per
> -+ * omap_device, this function adds an entry in the clkdev table of the
> -+ * form <dev-id=dev_name, con-id=role> if it does not exist already.
> -  *
> -  * The function is called from inside omap_device_build_ss(), after
> -  * omap_device_register.
> -  *
> -  * This allows drivers to get a pointer to its optional clocks based on its role
> -  * by calling clk_get(<dev*>, <role>).
> -+ * In the case of the main clock, a "fck" alias is used.
> -  *
> -  * No return value.
> -  */
> --static void _add_optional_clock_clkdev(struct omap_device *od,
> --				      struct omap_hwmod *oh)
> -+static void _add_hwmod_clocks_clkdev(struct omap_device *od,
> -+				     struct omap_hwmod *oh)
> - {
> - 	int i;
> -
> --	for (i = 0; i < oh->opt_clks_cnt; i++) {
> --		struct omap_hwmod_opt_clk *oc;
> --		struct clk *r;
> --		struct clk_lookup *l;
> --
> --		oc = &oh->opt_clks[i];
> --
> --		if (!oc->_clk)
> --			continue;
> --
> --		r = clk_get_sys(dev_name(&od->pdev.dev), oc->role);
> --		if (!IS_ERR(r))
> --			continue; /* clkdev entry exists */
> -+	_add_clkdev(od, "fck", oh->main_clk);
> -
> --		r = omap_clk_get_by_name((char *)oc->clk);
> --		if (IS_ERR(r)) {
> --			pr_err("omap_device: %s: omap_clk_get_by_name
> for %s failed\n",
> --			       dev_name(&od->pdev.dev), oc->clk);
> --			continue;
> --		}
> --
> --		l = clkdev_alloc(r, oc->role, dev_name(&od->pdev.dev));
> --		if (!l) {
> --			pr_err("omap_device: %s: clkdev_alloc for %s
> failed\n",
> --			       dev_name(&od->pdev.dev), oc->role);
> --			return;
> --		}
> --		clkdev_add(l);
> --	}
> -+	for (i = 0; i < oh->opt_clks_cnt; i++)
> -+		_add_clkdev(od, oh->opt_clks[i].role, oh->opt_clks[i].clk);
> - }
> -
> -
> -@@ -492,7 +507,7 @@ struct omap_device *omap_device_build_ss(const
> char *pdev_name, int pdev_id,
> -
> - 	for (i = 0; i < oh_cnt; i++) {
> - 		hwmods[i]->od = od;
> --		_add_optional_clock_clkdev(od, hwmods[i]);
> -+		_add_hwmod_clocks_clkdev(od, hwmods[i]);
> - 	}
> -
> - 	if (ret)
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0076-OMAP4-clock-
> data-Add-missing-divider-selection-for-a.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0076-OMAP4-clock-data-Add-missing-divider-selection-
> for-a.patch
> deleted file mode 100644
> index 066cc55..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0076-OMAP4-clock-data-
> Add-missing-divider-selection-for-a.patch
> +++ /dev/null
> @@ -1,292 +0,0 @@
> -From 3e03bae4fc1f9b6e413af3c3e65766913049ffa0 Mon Sep 17 00:00:00
> 2001
> -From: Rajendra Nayak <rnayak at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:14 -0600
> -Subject: [PATCH 076/149] OMAP4: clock data: Add missing divider selection for
> auxclks
> -
> -On OMAP4 the auxclk nodes (part of SCRM) support both
> -divider as well as parent selection.
> -Supporting this requires splitting the existing nodes
> -(which support only parent selection) into two nodes,
> -one for parent and another for divider selection.
> -The nodes for parent selection are named auxclk*_src_ck
> -and the ones for divider selection as auxclk*_ck.
> -
> -Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> -[b-cousson at ti.com: Rebase on top of clock cleanup
> -and autogen alignement]
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clock44xx_data.c |  176
> +++++++++++++++++++++++++++++-----
> - 1 files changed, 152 insertions(+), 24 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-
> omap2/clock44xx_data.c
> -index 763507f..07bf0de 100644
> ---- a/arch/arm/mach-omap2/clock44xx_data.c
> -+++ b/arch/arm/mach-omap2/clock44xx_data.c
> -@@ -2774,19 +2774,39 @@ static struct clk trace_clk_div_ck = {
> -
> - /* SCRM aux clk nodes */
> -
> --static const struct clksel auxclk_sel[] = {
> -+static const struct clksel auxclk_src_sel[] = {
> - 	{ .parent = &sys_clkin_ck, .rates = div_1_0_rates },
> - 	{ .parent = &dpll_core_m3x2_ck, .rates = div_1_1_rates },
> - 	{ .parent = &dpll_per_m3x2_ck, .rates = div_1_2_rates },
> - 	{ .parent = NULL },
> - };
> -
> --static struct clk auxclk0_ck = {
> --	.name		= "auxclk0_ck",
> -+static const struct clksel_rate div16_1to16_rates[] = {
> -+	{ .div = 1, .val = 0, .flags = RATE_IN_4430 },
> -+	{ .div = 2, .val = 1, .flags = RATE_IN_4430 },
> -+	{ .div = 3, .val = 2, .flags = RATE_IN_4430 },
> -+	{ .div = 4, .val = 3, .flags = RATE_IN_4430 },
> -+	{ .div = 5, .val = 4, .flags = RATE_IN_4430 },
> -+	{ .div = 6, .val = 5, .flags = RATE_IN_4430 },
> -+	{ .div = 7, .val = 6, .flags = RATE_IN_4430 },
> -+	{ .div = 8, .val = 7, .flags = RATE_IN_4430 },
> -+	{ .div = 9, .val = 8, .flags = RATE_IN_4430 },
> -+	{ .div = 10, .val = 9, .flags = RATE_IN_4430 },
> -+	{ .div = 11, .val = 10, .flags = RATE_IN_4430 },
> -+	{ .div = 12, .val = 11, .flags = RATE_IN_4430 },
> -+	{ .div = 13, .val = 12, .flags = RATE_IN_4430 },
> -+	{ .div = 14, .val = 13, .flags = RATE_IN_4430 },
> -+	{ .div = 15, .val = 14, .flags = RATE_IN_4430 },
> -+	{ .div = 16, .val = 15, .flags = RATE_IN_4430 },
> -+	{ .div = 0 },
> -+};
> -+
> -+static struct clk auxclk0_src_ck = {
> -+	.name		= "auxclk0_src_ck",
> - 	.parent		= &sys_clkin_ck,
> - 	.init		= &omap2_init_clksel_parent,
> - 	.ops		= &clkops_omap2_dflt,
> --	.clksel		= auxclk_sel,
> -+	.clksel		= auxclk_src_sel,
> - 	.clksel_reg	= OMAP4_SCRM_AUXCLK0,
> - 	.clksel_mask	= OMAP4_SRCSELECT_MASK,
> - 	.recalc		= &omap2_clksel_recalc,
> -@@ -2794,12 +2814,29 @@ static struct clk auxclk0_ck = {
> - 	.enable_bit	= OMAP4_ENABLE_SHIFT,
> - };
> -
> --static struct clk auxclk1_ck = {
> --	.name		= "auxclk1_ck",
> -+static const struct clksel auxclk0_sel[] = {
> -+	{ .parent = &auxclk0_src_ck, .rates = div16_1to16_rates },
> -+	{ .parent = NULL },
> -+};
> -+
> -+static struct clk auxclk0_ck = {
> -+	.name		= "auxclk0_ck",
> -+	.parent		= &auxclk0_src_ck,
> -+	.clksel		= auxclk0_sel,
> -+	.clksel_reg	= OMAP4_SCRM_AUXCLK0,
> -+	.clksel_mask	= OMAP4_CLKDIV_MASK,
> -+	.ops		= &clkops_null,
> -+	.recalc		= &omap2_clksel_recalc,
> -+	.round_rate	= &omap2_clksel_round_rate,
> -+	.set_rate	= &omap2_clksel_set_rate,
> -+};
> -+
> -+static struct clk auxclk1_src_ck = {
> -+	.name		= "auxclk1_src_ck",
> - 	.parent		= &sys_clkin_ck,
> - 	.init		= &omap2_init_clksel_parent,
> - 	.ops		= &clkops_omap2_dflt,
> --	.clksel		= auxclk_sel,
> -+	.clksel		= auxclk_src_sel,
> - 	.clksel_reg	= OMAP4_SCRM_AUXCLK1,
> - 	.clksel_mask	= OMAP4_SRCSELECT_MASK,
> - 	.recalc		= &omap2_clksel_recalc,
> -@@ -2807,12 +2844,29 @@ static struct clk auxclk1_ck = {
> - 	.enable_bit	= OMAP4_ENABLE_SHIFT,
> - };
> -
> --static struct clk auxclk2_ck = {
> --	.name		= "auxclk2_ck",
> -+static const struct clksel auxclk1_sel[] = {
> -+	{ .parent = &auxclk1_src_ck, .rates = div16_1to16_rates },
> -+	{ .parent = NULL },
> -+};
> -+
> -+static struct clk auxclk1_ck = {
> -+	.name		= "auxclk1_ck",
> -+	.parent		= &auxclk1_src_ck,
> -+	.clksel		= auxclk1_sel,
> -+	.clksel_reg	= OMAP4_SCRM_AUXCLK1,
> -+	.clksel_mask	= OMAP4_CLKDIV_MASK,
> -+	.ops		= &clkops_null,
> -+	.recalc		= &omap2_clksel_recalc,
> -+	.round_rate	= &omap2_clksel_round_rate,
> -+	.set_rate	= &omap2_clksel_set_rate,
> -+};
> -+
> -+static struct clk auxclk2_src_ck = {
> -+	.name		= "auxclk2_src_ck",
> - 	.parent		= &sys_clkin_ck,
> - 	.init		= &omap2_init_clksel_parent,
> - 	.ops		= &clkops_omap2_dflt,
> --	.clksel		= auxclk_sel,
> -+	.clksel		= auxclk_src_sel,
> - 	.clksel_reg	= OMAP4_SCRM_AUXCLK2,
> - 	.clksel_mask	= OMAP4_SRCSELECT_MASK,
> - 	.recalc		= &omap2_clksel_recalc,
> -@@ -2820,12 +2874,29 @@ static struct clk auxclk2_ck = {
> - 	.enable_bit	= OMAP4_ENABLE_SHIFT,
> - };
> -
> --static struct clk auxclk3_ck = {
> --	.name		= "auxclk3_ck",
> -+static const struct clksel auxclk2_sel[] = {
> -+	{ .parent = &auxclk2_src_ck, .rates = div16_1to16_rates },
> -+	{ .parent = NULL },
> -+};
> -+
> -+static struct clk auxclk2_ck = {
> -+	.name		= "auxclk2_ck",
> -+	.parent		= &auxclk2_src_ck,
> -+	.clksel		= auxclk2_sel,
> -+	.clksel_reg	= OMAP4_SCRM_AUXCLK2,
> -+	.clksel_mask	= OMAP4_CLKDIV_MASK,
> -+	.ops		= &clkops_null,
> -+	.recalc		= &omap2_clksel_recalc,
> -+	.round_rate	= &omap2_clksel_round_rate,
> -+	.set_rate	= &omap2_clksel_set_rate,
> -+};
> -+
> -+static struct clk auxclk3_src_ck = {
> -+	.name		= "auxclk3_src_ck",
> - 	.parent		= &sys_clkin_ck,
> - 	.init		= &omap2_init_clksel_parent,
> - 	.ops		= &clkops_omap2_dflt,
> --	.clksel		= auxclk_sel,
> -+	.clksel		= auxclk_src_sel,
> - 	.clksel_reg	= OMAP4_SCRM_AUXCLK3,
> - 	.clksel_mask	= OMAP4_SRCSELECT_MASK,
> - 	.recalc		= &omap2_clksel_recalc,
> -@@ -2833,12 +2904,29 @@ static struct clk auxclk3_ck = {
> - 	.enable_bit	= OMAP4_ENABLE_SHIFT,
> - };
> -
> --static struct clk auxclk4_ck = {
> --	.name		= "auxclk4_ck",
> -+static const struct clksel auxclk3_sel[] = {
> -+	{ .parent = &auxclk3_src_ck, .rates = div16_1to16_rates },
> -+	{ .parent = NULL },
> -+};
> -+
> -+static struct clk auxclk3_ck = {
> -+	.name		= "auxclk3_ck",
> -+	.parent		= &auxclk3_src_ck,
> -+	.clksel		= auxclk3_sel,
> -+	.clksel_reg	= OMAP4_SCRM_AUXCLK3,
> -+	.clksel_mask	= OMAP4_CLKDIV_MASK,
> -+	.ops		= &clkops_null,
> -+	.recalc		= &omap2_clksel_recalc,
> -+	.round_rate	= &omap2_clksel_round_rate,
> -+	.set_rate	= &omap2_clksel_set_rate,
> -+};
> -+
> -+static struct clk auxclk4_src_ck = {
> -+	.name		= "auxclk4_src_ck",
> - 	.parent		= &sys_clkin_ck,
> - 	.init		= &omap2_init_clksel_parent,
> - 	.ops		= &clkops_omap2_dflt,
> --	.clksel		= auxclk_sel,
> -+	.clksel		= auxclk_src_sel,
> - 	.clksel_reg	= OMAP4_SCRM_AUXCLK4,
> - 	.clksel_mask	= OMAP4_SRCSELECT_MASK,
> - 	.recalc		= &omap2_clksel_recalc,
> -@@ -2846,12 +2934,29 @@ static struct clk auxclk4_ck = {
> - 	.enable_bit	= OMAP4_ENABLE_SHIFT,
> - };
> -
> --static struct clk auxclk5_ck = {
> --	.name		= "auxclk5_ck",
> -+static const struct clksel auxclk4_sel[] = {
> -+	{ .parent = &auxclk4_src_ck, .rates = div16_1to16_rates },
> -+	{ .parent = NULL },
> -+};
> -+
> -+static struct clk auxclk4_ck = {
> -+	.name		= "auxclk4_ck",
> -+	.parent		= &auxclk4_src_ck,
> -+	.clksel		= auxclk4_sel,
> -+	.clksel_reg	= OMAP4_SCRM_AUXCLK4,
> -+	.clksel_mask	= OMAP4_CLKDIV_MASK,
> -+	.ops		= &clkops_null,
> -+	.recalc		= &omap2_clksel_recalc,
> -+	.round_rate	= &omap2_clksel_round_rate,
> -+	.set_rate	= &omap2_clksel_set_rate,
> -+};
> -+
> -+static struct clk auxclk5_src_ck = {
> -+	.name		= "auxclk5_src_ck",
> - 	.parent		= &sys_clkin_ck,
> - 	.init		= &omap2_init_clksel_parent,
> - 	.ops		= &clkops_omap2_dflt,
> --	.clksel		= auxclk_sel,
> -+	.clksel		= auxclk_src_sel,
> - 	.clksel_reg	= OMAP4_SCRM_AUXCLK5,
> - 	.clksel_mask	= OMAP4_SRCSELECT_MASK,
> - 	.recalc		= &omap2_clksel_recalc,
> -@@ -2859,6 +2964,23 @@ static struct clk auxclk5_ck = {
> - 	.enable_bit	= OMAP4_ENABLE_SHIFT,
> - };
> -
> -+static const struct clksel auxclk5_sel[] = {
> -+	{ .parent = &auxclk5_src_ck, .rates = div16_1to16_rates },
> -+	{ .parent = NULL },
> -+};
> -+
> -+static struct clk auxclk5_ck = {
> -+	.name		= "auxclk5_ck",
> -+	.parent		= &auxclk5_src_ck,
> -+	.clksel		= auxclk5_sel,
> -+	.clksel_reg	= OMAP4_SCRM_AUXCLK5,
> -+	.clksel_mask	= OMAP4_CLKDIV_MASK,
> -+	.ops		= &clkops_null,
> -+	.recalc		= &omap2_clksel_recalc,
> -+	.round_rate	= &omap2_clksel_round_rate,
> -+	.set_rate	= &omap2_clksel_set_rate,
> -+};
> -+
> - static const struct clksel auxclkreq_sel[] = {
> - 	{ .parent = &auxclk0_ck, .rates = div_1_0_rates },
> - 	{ .parent = &auxclk1_ck, .rates = div_1_1_rates },
> -@@ -3150,17 +3272,23 @@ static struct omap_clk omap44xx_clks[] = {
> - 	CLK(NULL,	"wd_timer3_fck",		&wd_timer3_fck,
> 	CK_443X),
> - 	CLK(NULL,	"stm_clk_div_ck",		&stm_clk_div_ck,
> 	CK_443X),
> - 	CLK(NULL,	"trace_clk_div_ck",		&trace_clk_div_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk0_src_ck",		&auxclk0_src_ck,
> 	CK_443X),
> - 	CLK(NULL,	"auxclk0_ck",			&auxclk0_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclk1_ck",			&auxclk1_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclk2_ck",			&auxclk2_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclk3_ck",			&auxclk3_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclk4_ck",			&auxclk4_ck,
> 	CK_443X),
> --	CLK(NULL,	"auxclk5_ck",			&auxclk5_ck,
> 	CK_443X),
> - 	CLK(NULL,	"auxclkreq0_ck",		&auxclkreq0_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk1_src_ck",		&auxclk1_src_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk1_ck",			&auxclk1_ck,
> 	CK_443X),
> - 	CLK(NULL,	"auxclkreq1_ck",		&auxclkreq1_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk2_src_ck",		&auxclk2_src_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk2_ck",			&auxclk2_ck,
> 	CK_443X),
> - 	CLK(NULL,	"auxclkreq2_ck",		&auxclkreq2_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk3_src_ck",		&auxclk3_src_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk3_ck",			&auxclk3_ck,
> 	CK_443X),
> - 	CLK(NULL,	"auxclkreq3_ck",		&auxclkreq3_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk4_src_ck",		&auxclk4_src_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk4_ck",			&auxclk4_ck,
> 	CK_443X),
> - 	CLK(NULL,	"auxclkreq4_ck",		&auxclkreq4_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk5_src_ck",		&auxclk5_src_ck,
> 	CK_443X),
> -+	CLK(NULL,	"auxclk5_ck",			&auxclk5_ck,
> 	CK_443X),
> - 	CLK(NULL,	"auxclkreq5_ck",		&auxclkreq5_ck,
> 	CK_443X),
> - 	CLK(NULL,	"gpmc_ck",			&dummy_ck,
> 	CK_443X),
> - 	CLK(NULL,	"gpt1_ick",			&dummy_ck,
> 	CK_443X),
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0077-OMAP4-
> hwmod-data-Add-clock-domain-attribute.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0077-OMAP4-hwmod-data-Add-clock-domain-
> attribute.patch
> deleted file mode 100644
> index f13d839..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0077-OMAP4-hwmod-
> data-Add-clock-domain-attribute.patch
> +++ /dev/null
> @@ -1,724 +0,0 @@
> -From 67101af593a16acf5d5d924f2746cc221d0360d1 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:29 -0600
> -Subject: [PATCH 077/149] OMAP4: hwmod data: Add clock domain attribute
> -
> -In OMAP PRCM terminology, the clock domain is defined as a group of IPs
> -that share some clocks and most of the time an interface clock.
> -Every IP does belong to a clockdomain.
> -For the moment the clock domain attribute is affected to a clock node.
> -The issue with that approach, is that a clock might or not belong to a
> -clock domain. Moreover during module transition, it is up to a module
> -to handle properly the clock domain state and not to a clock node.
> -
> -Create a clkdm_name attribute to provide this information per hwmod.
> -
> -Populate this attribute for every OMAP4 hwmod entries.
> -
> -Future cleanup series with remove that information from the OMAP4 clock
> -when it is relevant.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -[paul at pwsan.com: fix the mpuss_clkdm name]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clockdomains44xx_data.c  |    2 +-
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c   |   85
> +++++++++++++++++++++++++-
> - arch/arm/plat-omap/include/plat/omap_hwmod.h |    1 +
> - 3 files changed, 85 insertions(+), 3 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clockdomains44xx_data.c
> b/arch/arm/mach-omap2/clockdomains44xx_data.c
> -index 66090f2..dccc651 100644
> ---- a/arch/arm/mach-omap2/clockdomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/clockdomains44xx_data.c
> -@@ -565,7 +565,7 @@ static struct clockdomain ducati_44xx_clkdm = {
> - };
> -
> - static struct clockdomain mpu_44xx_clkdm = {
> --	.name		  = "mpu_clkdm",
> -+	.name		  = "mpuss_clkdm",
> - 	.pwrdm		  = { .name = "mpu_pwrdm" },
> - 	.prcm_partition	  = OMAP4430_CM1_PARTITION,
> - 	.cm_inst	  = OMAP4430_CM1_MPU_INST,
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index 5d5df49..becae45 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -123,9 +123,10 @@ static struct omap_hwmod_ocp_if
> *omap44xx_dmm_slaves[] = {
> - static struct omap_hwmod omap44xx_dmm_hwmod = {
> - 	.name		= "dmm",
> - 	.class		= &omap44xx_dmm_hwmod_class,
> --	.mpu_irqs	= omap44xx_dmm_irqs,
> -+	.clkdm_name	= "l3_emif_clkdm",
> - 	.slaves		= omap44xx_dmm_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_dmm_slaves),
> -+	.mpu_irqs	= omap44xx_dmm_irqs,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> - };
> -
> -@@ -173,6 +174,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_emif_fw_slaves[] = {
> - static struct omap_hwmod omap44xx_emif_fw_hwmod = {
> - 	.name		= "emif_fw",
> - 	.class		= &omap44xx_emif_fw_hwmod_class,
> -+	.clkdm_name	= "l3_emif_clkdm",
> - 	.slaves		= omap44xx_emif_fw_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_emif_fw_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -212,6 +214,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_l3_instr_slaves[] = {
> - static struct omap_hwmod omap44xx_l3_instr_hwmod = {
> - 	.name		= "l3_instr",
> - 	.class		= &omap44xx_l3_hwmod_class,
> -+	.clkdm_name	= "l3_instr_clkdm",
> - 	.slaves		= omap44xx_l3_instr_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_instr_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -304,6 +307,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_l3_main_1_slaves[] = {
> - static struct omap_hwmod omap44xx_l3_main_1_hwmod = {
> - 	.name		= "l3_main_1",
> - 	.class		= &omap44xx_l3_hwmod_class,
> -+	.clkdm_name	= "l3_1_clkdm",
> - 	.mpu_irqs	= omap44xx_l3_main_1_irqs,
> - 	.slaves		= omap44xx_l3_main_1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_main_1_slaves),
> -@@ -400,6 +404,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_l3_main_2_slaves[] = {
> - static struct omap_hwmod omap44xx_l3_main_2_hwmod = {
> - 	.name		= "l3_main_2",
> - 	.class		= &omap44xx_l3_hwmod_class,
> -+	.clkdm_name	= "l3_2_clkdm",
> - 	.slaves		= omap44xx_l3_main_2_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_main_2_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -450,6 +455,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_l3_main_3_slaves[] = {
> - static struct omap_hwmod omap44xx_l3_main_3_hwmod = {
> - 	.name		= "l3_main_3",
> - 	.class		= &omap44xx_l3_hwmod_class,
> -+	.clkdm_name	= "l3_instr_clkdm",
> - 	.slaves		= omap44xx_l3_main_3_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_main_3_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -507,6 +513,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_l4_abe_slaves[] = {
> - static struct omap_hwmod omap44xx_l4_abe_hwmod = {
> - 	.name		= "l4_abe",
> - 	.class		= &omap44xx_l4_hwmod_class,
> -+	.clkdm_name	= "abe_clkdm",
> - 	.slaves		= omap44xx_l4_abe_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l4_abe_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -529,6 +536,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_l4_cfg_slaves[] = {
> - static struct omap_hwmod omap44xx_l4_cfg_hwmod = {
> - 	.name		= "l4_cfg",
> - 	.class		= &omap44xx_l4_hwmod_class,
> -+	.clkdm_name	= "l4_cfg_clkdm",
> - 	.slaves		= omap44xx_l4_cfg_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l4_cfg_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -551,6 +559,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_l4_per_slaves[] = {
> - static struct omap_hwmod omap44xx_l4_per_hwmod = {
> - 	.name		= "l4_per",
> - 	.class		= &omap44xx_l4_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.slaves		= omap44xx_l4_per_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l4_per_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -573,6 +582,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_l4_wkup_slaves[] = {
> - static struct omap_hwmod omap44xx_l4_wkup_hwmod = {
> - 	.name		= "l4_wkup",
> - 	.class		= &omap44xx_l4_hwmod_class,
> -+	.clkdm_name	= "l4_wkup_clkdm",
> - 	.slaves		= omap44xx_l4_wkup_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l4_wkup_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -603,6 +613,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_mpu_private_slaves[] = {
> - static struct omap_hwmod omap44xx_mpu_private_hwmod = {
> - 	.name		= "mpu_private",
> - 	.class		= &omap44xx_mpu_bus_hwmod_class,
> -+	.clkdm_name	= "mpuss_clkdm",
> - 	.slaves		= omap44xx_mpu_private_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_mpu_private_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -741,6 +752,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_aess_slaves[] = {
> - static struct omap_hwmod omap44xx_aess_hwmod = {
> - 	.name		= "aess",
> - 	.class		= &omap44xx_aess_hwmod_class,
> -+	.clkdm_name	= "abe_clkdm",
> - 	.mpu_irqs	= omap44xx_aess_irqs,
> - 	.sdma_reqs	= omap44xx_aess_sdma_reqs,
> - 	.main_clk	= "aess_fck",
> -@@ -773,6 +785,7 @@ static struct omap_hwmod_opt_clk
> bandgap_opt_clks[] = {
> - static struct omap_hwmod omap44xx_bandgap_hwmod = {
> - 	.name		= "bandgap",
> - 	.class		= &omap44xx_bandgap_hwmod_class,
> -+	.clkdm_name	= "l4_wkup_clkdm",
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg =
> OMAP4430_CM_WKUP_BANDGAP_CLKCTRL,
> -@@ -830,6 +843,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_counter_32k_slaves[] = {
> - static struct omap_hwmod omap44xx_counter_32k_hwmod = {
> - 	.name		= "counter_32k",
> - 	.class		= &omap44xx_counter_hwmod_class,
> -+	.clkdm_name	= "l4_wkup_clkdm",
> - 	.flags		= HWMOD_SWSUP_SIDLE,
> - 	.main_clk	= "sys_32k_ck",
> - 	.prcm = {
> -@@ -913,6 +927,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_dma_system_slaves[] = {
> - static struct omap_hwmod omap44xx_dma_system_hwmod = {
> - 	.name		= "dma_system",
> - 	.class		= &omap44xx_dma_hwmod_class,
> -+	.clkdm_name	= "l3_dma_clkdm",
> - 	.mpu_irqs	= omap44xx_dma_system_irqs,
> - 	.main_clk	= "l3_div_ck",
> - 	.prcm = {
> -@@ -1005,6 +1020,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_dmic_slaves[] = {
> - static struct omap_hwmod omap44xx_dmic_hwmod = {
> - 	.name		= "dmic",
> - 	.class		= &omap44xx_dmic_hwmod_class,
> -+	.clkdm_name	= "abe_clkdm",
> - 	.mpu_irqs	= omap44xx_dmic_irqs,
> - 	.sdma_reqs	= omap44xx_dmic_sdma_reqs,
> - 	.main_clk	= "dmic_fck",
> -@@ -1072,6 +1088,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_dsp_slaves[] = {
> - static struct omap_hwmod omap44xx_dsp_c0_hwmod = {
> - 	.name		= "dsp_c0",
> - 	.class		= &omap44xx_dsp_hwmod_class,
> -+	.clkdm_name	= "tesla_clkdm",
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.rst_lines	= omap44xx_dsp_c0_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_dsp_c0_resets),
> -@@ -1086,6 +1103,7 @@ static struct omap_hwmod
> omap44xx_dsp_c0_hwmod = {
> - static struct omap_hwmod omap44xx_dsp_hwmod = {
> - 	.name		= "dsp",
> - 	.class		= &omap44xx_dsp_hwmod_class,
> -+	.clkdm_name	= "tesla_clkdm",
> - 	.mpu_irqs	= omap44xx_dsp_irqs,
> - 	.rst_lines	= omap44xx_dsp_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_dsp_resets),
> -@@ -1177,6 +1195,7 @@ static struct omap_hwmod_opt_clk dss_opt_clks[]
> = {
> - static struct omap_hwmod omap44xx_dss_hwmod = {
> - 	.name		= "dss_core",
> - 	.class		= &omap44xx_dss_hwmod_class,
> -+	.clkdm_name	= "l3_dss_clkdm",
> - 	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -1278,7 +1297,7 @@ static struct omap_hwmod_opt_clk
> dss_dispc_opt_clks[] = {
> - static struct omap_hwmod omap44xx_dss_dispc_hwmod = {
> - 	.name		= "dss_dispc",
> - 	.class		= &omap44xx_dispc_hwmod_class,
> --	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> -+	.clkdm_name	= "l3_dss_clkdm",
> - 	.mpu_irqs	= omap44xx_dss_dispc_irqs,
> - 	.sdma_reqs	= omap44xx_dss_dispc_sdma_reqs,
> - 	.main_clk	= "dss_dss_clk",
> -@@ -1376,6 +1395,7 @@ static struct omap_hwmod_opt_clk
> dss_dsi1_opt_clks[] = {
> - static struct omap_hwmod omap44xx_dss_dsi1_hwmod = {
> - 	.name		= "dss_dsi1",
> - 	.class		= &omap44xx_dsi_hwmod_class,
> -+	.clkdm_name	= "l3_dss_clkdm",
> - 	.mpu_irqs	= omap44xx_dss_dsi1_irqs,
> - 	.sdma_reqs	= omap44xx_dss_dsi1_sdma_reqs,
> - 	.main_clk	= "dss_dss_clk",
> -@@ -1452,6 +1472,7 @@ static struct omap_hwmod_opt_clk
> dss_dsi2_opt_clks[] = {
> - static struct omap_hwmod omap44xx_dss_dsi2_hwmod = {
> - 	.name		= "dss_dsi2",
> - 	.class		= &omap44xx_dsi_hwmod_class,
> -+	.clkdm_name	= "l3_dss_clkdm",
> - 	.mpu_irqs	= omap44xx_dss_dsi2_irqs,
> - 	.sdma_reqs	= omap44xx_dss_dsi2_sdma_reqs,
> - 	.main_clk	= "dss_dss_clk",
> -@@ -1548,6 +1569,7 @@ static struct omap_hwmod_opt_clk
> dss_hdmi_opt_clks[] = {
> - static struct omap_hwmod omap44xx_dss_hdmi_hwmod = {
> - 	.name		= "dss_hdmi",
> - 	.class		= &omap44xx_hdmi_hwmod_class,
> -+	.clkdm_name	= "l3_dss_clkdm",
> - 	.mpu_irqs	= omap44xx_dss_hdmi_irqs,
> - 	.sdma_reqs	= omap44xx_dss_hdmi_sdma_reqs,
> - 	.main_clk	= "dss_dss_clk",
> -@@ -1639,6 +1661,7 @@ static struct omap_hwmod_opt_clk
> dss_rfbi_opt_clks[] = {
> - static struct omap_hwmod omap44xx_dss_rfbi_hwmod = {
> - 	.name		= "dss_rfbi",
> - 	.class		= &omap44xx_rfbi_hwmod_class,
> -+	.clkdm_name	= "l3_dss_clkdm",
> - 	.sdma_reqs	= omap44xx_dss_rfbi_sdma_reqs,
> - 	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> -@@ -1709,6 +1732,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_dss_venc_slaves[] = {
> - static struct omap_hwmod omap44xx_dss_venc_hwmod = {
> - 	.name		= "dss_venc",
> - 	.class		= &omap44xx_venc_hwmod_class,
> -+	.clkdm_name	= "l3_dss_clkdm",
> - 	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -1786,6 +1810,7 @@ static struct omap_hwmod_opt_clk
> gpio1_opt_clks[] = {
> - static struct omap_hwmod omap44xx_gpio1_hwmod = {
> - 	.name		= "gpio1",
> - 	.class		= &omap44xx_gpio_hwmod_class,
> -+	.clkdm_name	= "l4_wkup_clkdm",
> - 	.mpu_irqs	= omap44xx_gpio1_irqs,
> - 	.main_clk	= "gpio1_ick",
> - 	.prcm = {
> -@@ -1838,6 +1863,7 @@ static struct omap_hwmod_opt_clk
> gpio2_opt_clks[] = {
> - static struct omap_hwmod omap44xx_gpio2_hwmod = {
> - 	.name		= "gpio2",
> - 	.class		= &omap44xx_gpio_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap44xx_gpio2_irqs,
> - 	.main_clk	= "gpio2_ick",
> -@@ -1891,6 +1917,7 @@ static struct omap_hwmod_opt_clk
> gpio3_opt_clks[] = {
> - static struct omap_hwmod omap44xx_gpio3_hwmod = {
> - 	.name		= "gpio3",
> - 	.class		= &omap44xx_gpio_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap44xx_gpio3_irqs,
> - 	.main_clk	= "gpio3_ick",
> -@@ -1944,6 +1971,7 @@ static struct omap_hwmod_opt_clk
> gpio4_opt_clks[] = {
> - static struct omap_hwmod omap44xx_gpio4_hwmod = {
> - 	.name		= "gpio4",
> - 	.class		= &omap44xx_gpio_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap44xx_gpio4_irqs,
> - 	.main_clk	= "gpio4_ick",
> -@@ -1997,6 +2025,7 @@ static struct omap_hwmod_opt_clk
> gpio5_opt_clks[] = {
> - static struct omap_hwmod omap44xx_gpio5_hwmod = {
> - 	.name		= "gpio5",
> - 	.class		= &omap44xx_gpio_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap44xx_gpio5_irqs,
> - 	.main_clk	= "gpio5_ick",
> -@@ -2050,6 +2079,7 @@ static struct omap_hwmod_opt_clk
> gpio6_opt_clks[] = {
> - static struct omap_hwmod omap44xx_gpio6_hwmod = {
> - 	.name		= "gpio6",
> - 	.class		= &omap44xx_gpio_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> - 	.mpu_irqs	= omap44xx_gpio6_irqs,
> - 	.main_clk	= "gpio6_ick",
> -@@ -2129,6 +2159,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_hsi_slaves[] = {
> - static struct omap_hwmod omap44xx_hsi_hwmod = {
> - 	.name		= "hsi",
> - 	.class		= &omap44xx_hsi_hwmod_class,
> -+	.clkdm_name	= "l3_init_clkdm",
> - 	.mpu_irqs	= omap44xx_hsi_irqs,
> - 	.main_clk	= "hsi_fck",
> - 	.prcm = {
> -@@ -2209,6 +2240,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_i2c1_slaves[] = {
> - static struct omap_hwmod omap44xx_i2c1_hwmod = {
> - 	.name		= "i2c1",
> - 	.class		= &omap44xx_i2c_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.flags		= HWMOD_16BIT_REG,
> - 	.mpu_irqs	= omap44xx_i2c1_irqs,
> - 	.sdma_reqs	= omap44xx_i2c1_sdma_reqs,
> -@@ -2263,6 +2295,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_i2c2_slaves[] = {
> - static struct omap_hwmod omap44xx_i2c2_hwmod = {
> - 	.name		= "i2c2",
> - 	.class		= &omap44xx_i2c_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.flags		= HWMOD_16BIT_REG,
> - 	.mpu_irqs	= omap44xx_i2c2_irqs,
> - 	.sdma_reqs	= omap44xx_i2c2_sdma_reqs,
> -@@ -2317,6 +2350,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_i2c3_slaves[] = {
> - static struct omap_hwmod omap44xx_i2c3_hwmod = {
> - 	.name		= "i2c3",
> - 	.class		= &omap44xx_i2c_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.flags		= HWMOD_16BIT_REG,
> - 	.mpu_irqs	= omap44xx_i2c3_irqs,
> - 	.sdma_reqs	= omap44xx_i2c3_sdma_reqs,
> -@@ -2371,6 +2405,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_i2c4_slaves[] = {
> - static struct omap_hwmod omap44xx_i2c4_hwmod = {
> - 	.name		= "i2c4",
> - 	.class		= &omap44xx_i2c_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.flags		= HWMOD_16BIT_REG,
> - 	.mpu_irqs	= omap44xx_i2c4_irqs,
> - 	.sdma_reqs	= omap44xx_i2c4_sdma_reqs,
> -@@ -2435,6 +2470,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_ipu_slaves[] = {
> - static struct omap_hwmod omap44xx_ipu_c0_hwmod = {
> - 	.name		= "ipu_c0",
> - 	.class		= &omap44xx_ipu_hwmod_class,
> -+	.clkdm_name	= "ducati_clkdm",
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.rst_lines	= omap44xx_ipu_c0_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_ipu_c0_resets),
> -@@ -2450,6 +2486,7 @@ static struct omap_hwmod
> omap44xx_ipu_c0_hwmod = {
> - static struct omap_hwmod omap44xx_ipu_c1_hwmod = {
> - 	.name		= "ipu_c1",
> - 	.class		= &omap44xx_ipu_hwmod_class,
> -+	.clkdm_name	= "ducati_clkdm",
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.rst_lines	= omap44xx_ipu_c1_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_ipu_c1_resets),
> -@@ -2464,6 +2501,7 @@ static struct omap_hwmod
> omap44xx_ipu_c1_hwmod = {
> - static struct omap_hwmod omap44xx_ipu_hwmod = {
> - 	.name		= "ipu",
> - 	.class		= &omap44xx_ipu_hwmod_class,
> -+	.clkdm_name	= "ducati_clkdm",
> - 	.mpu_irqs	= omap44xx_ipu_irqs,
> - 	.rst_lines	= omap44xx_ipu_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_ipu_resets),
> -@@ -2551,6 +2589,7 @@ static struct omap_hwmod_opt_clk iss_opt_clks[] =
> {
> - static struct omap_hwmod omap44xx_iss_hwmod = {
> - 	.name		= "iss",
> - 	.class		= &omap44xx_iss_hwmod_class,
> -+	.clkdm_name	= "iss_clkdm",
> - 	.mpu_irqs	= omap44xx_iss_irqs,
> - 	.sdma_reqs	= omap44xx_iss_sdma_reqs,
> - 	.main_clk	= "iss_fck",
> -@@ -2631,6 +2670,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_iva_slaves[] = {
> - static struct omap_hwmod omap44xx_iva_seq0_hwmod = {
> - 	.name		= "iva_seq0",
> - 	.class		= &omap44xx_iva_hwmod_class,
> -+	.clkdm_name	= "ivahd_clkdm",
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.rst_lines	= omap44xx_iva_seq0_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_iva_seq0_resets),
> -@@ -2646,6 +2686,7 @@ static struct omap_hwmod
> omap44xx_iva_seq0_hwmod = {
> - static struct omap_hwmod omap44xx_iva_seq1_hwmod = {
> - 	.name		= "iva_seq1",
> - 	.class		= &omap44xx_iva_hwmod_class,
> -+	.clkdm_name	= "ivahd_clkdm",
> - 	.flags		= HWMOD_INIT_NO_RESET,
> - 	.rst_lines	= omap44xx_iva_seq1_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_iva_seq1_resets),
> -@@ -2660,6 +2701,7 @@ static struct omap_hwmod
> omap44xx_iva_seq1_hwmod = {
> - static struct omap_hwmod omap44xx_iva_hwmod = {
> - 	.name		= "iva",
> - 	.class		= &omap44xx_iva_hwmod_class,
> -+	.clkdm_name	= "ivahd_clkdm",
> - 	.mpu_irqs	= omap44xx_iva_irqs,
> - 	.rst_lines	= omap44xx_iva_resets,
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_iva_resets),
> -@@ -2732,6 +2774,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_kbd_slaves[] = {
> - static struct omap_hwmod omap44xx_kbd_hwmod = {
> - 	.name		= "kbd",
> - 	.class		= &omap44xx_kbd_hwmod_class,
> -+	.clkdm_name	= "l4_wkup_clkdm",
> - 	.mpu_irqs	= omap44xx_kbd_irqs,
> - 	.main_clk	= "kbd_fck",
> - 	.prcm = {
> -@@ -2797,6 +2840,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_mailbox_slaves[] = {
> - static struct omap_hwmod omap44xx_mailbox_hwmod = {
> - 	.name		= "mailbox",
> - 	.class		= &omap44xx_mailbox_hwmod_class,
> -+	.clkdm_name	= "l4_cfg_clkdm",
> - 	.mpu_irqs	= omap44xx_mailbox_irqs,
> - 	.prcm = {
> - 		.omap4 = {
> -@@ -2887,6 +2931,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_mcbsp1_slaves[] = {
> - static struct omap_hwmod omap44xx_mcbsp1_hwmod = {
> - 	.name		= "mcbsp1",
> - 	.class		= &omap44xx_mcbsp_hwmod_class,
> -+	.clkdm_name	= "abe_clkdm",
> - 	.mpu_irqs	= omap44xx_mcbsp1_irqs,
> - 	.sdma_reqs	= omap44xx_mcbsp1_sdma_reqs,
> - 	.main_clk	= "mcbsp1_fck",
> -@@ -2960,6 +3005,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_mcbsp2_slaves[] = {
> - static struct omap_hwmod omap44xx_mcbsp2_hwmod = {
> - 	.name		= "mcbsp2",
> - 	.class		= &omap44xx_mcbsp_hwmod_class,
> -+	.clkdm_name	= "abe_clkdm",
> - 	.mpu_irqs	= omap44xx_mcbsp2_irqs,
> - 	.sdma_reqs	= omap44xx_mcbsp2_sdma_reqs,
> - 	.main_clk	= "mcbsp2_fck",
> -@@ -3033,6 +3079,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_mcbsp3_slaves[] = {
> - static struct omap_hwmod omap44xx_mcbsp3_hwmod = {
> - 	.name		= "mcbsp3",
> - 	.class		= &omap44xx_mcbsp_hwmod_class,
> -+	.clkdm_name	= "abe_clkdm",
> - 	.mpu_irqs	= omap44xx_mcbsp3_irqs,
> - 	.sdma_reqs	= omap44xx_mcbsp3_sdma_reqs,
> - 	.main_clk	= "mcbsp3_fck",
> -@@ -3085,6 +3132,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_mcbsp4_slaves[] = {
> - static struct omap_hwmod omap44xx_mcbsp4_hwmod = {
> - 	.name		= "mcbsp4",
> - 	.class		= &omap44xx_mcbsp_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_mcbsp4_irqs,
> - 	.sdma_reqs	= omap44xx_mcbsp4_sdma_reqs,
> - 	.main_clk	= "mcbsp4_fck",
> -@@ -3177,6 +3225,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_mcpdm_slaves[] = {
> - static struct omap_hwmod omap44xx_mcpdm_hwmod = {
> - 	.name		= "mcpdm",
> - 	.class		= &omap44xx_mcpdm_hwmod_class,
> -+	.clkdm_name	= "abe_clkdm",
> - 	.mpu_irqs	= omap44xx_mcpdm_irqs,
> - 	.sdma_reqs	= omap44xx_mcpdm_sdma_reqs,
> - 	.main_clk	= "mcpdm_fck",
> -@@ -3262,6 +3311,7 @@ static struct omap2_mcspi_dev_attr
> mcspi1_dev_attr = {
> - static struct omap_hwmod omap44xx_mcspi1_hwmod = {
> - 	.name		= "mcspi1",
> - 	.class		= &omap44xx_mcspi_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_mcspi1_irqs,
> - 	.sdma_reqs	= omap44xx_mcspi1_sdma_reqs,
> - 	.main_clk	= "mcspi1_fck",
> -@@ -3322,6 +3372,7 @@ static struct omap2_mcspi_dev_attr
> mcspi2_dev_attr = {
> - static struct omap_hwmod omap44xx_mcspi2_hwmod = {
> - 	.name		= "mcspi2",
> - 	.class		= &omap44xx_mcspi_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_mcspi2_irqs,
> - 	.sdma_reqs	= omap44xx_mcspi2_sdma_reqs,
> - 	.main_clk	= "mcspi2_fck",
> -@@ -3382,6 +3433,7 @@ static struct omap2_mcspi_dev_attr
> mcspi3_dev_attr = {
> - static struct omap_hwmod omap44xx_mcspi3_hwmod = {
> - 	.name		= "mcspi3",
> - 	.class		= &omap44xx_mcspi_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_mcspi3_irqs,
> - 	.sdma_reqs	= omap44xx_mcspi3_sdma_reqs,
> - 	.main_clk	= "mcspi3_fck",
> -@@ -3440,6 +3492,7 @@ static struct omap2_mcspi_dev_attr
> mcspi4_dev_attr = {
> - static struct omap_hwmod omap44xx_mcspi4_hwmod = {
> - 	.name		= "mcspi4",
> - 	.class		= &omap44xx_mcspi_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_mcspi4_irqs,
> - 	.sdma_reqs	= omap44xx_mcspi4_sdma_reqs,
> - 	.main_clk	= "mcspi4_fck",
> -@@ -3524,6 +3577,7 @@ static struct omap_mmc_dev_attr mmc1_dev_attr
> = {
> - static struct omap_hwmod omap44xx_mmc1_hwmod = {
> - 	.name		= "mmc1",
> - 	.class		= &omap44xx_mmc_hwmod_class,
> -+	.clkdm_name	= "l3_init_clkdm",
> - 	.mpu_irqs	= omap44xx_mmc1_irqs,
> - 	.sdma_reqs	= omap44xx_mmc1_sdma_reqs,
> - 	.main_clk	= "mmc1_fck",
> -@@ -3583,6 +3637,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_mmc2_slaves[] = {
> - static struct omap_hwmod omap44xx_mmc2_hwmod = {
> - 	.name		= "mmc2",
> - 	.class		= &omap44xx_mmc_hwmod_class,
> -+	.clkdm_name	= "l3_init_clkdm",
> - 	.mpu_irqs	= omap44xx_mmc2_irqs,
> - 	.sdma_reqs	= omap44xx_mmc2_sdma_reqs,
> - 	.main_clk	= "mmc2_fck",
> -@@ -3637,6 +3692,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_mmc3_slaves[] = {
> - static struct omap_hwmod omap44xx_mmc3_hwmod = {
> - 	.name		= "mmc3",
> - 	.class		= &omap44xx_mmc_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_mmc3_irqs,
> - 	.sdma_reqs	= omap44xx_mmc3_sdma_reqs,
> - 	.main_clk	= "mmc3_fck",
> -@@ -3689,6 +3745,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_mmc4_slaves[] = {
> - static struct omap_hwmod omap44xx_mmc4_hwmod = {
> - 	.name		= "mmc4",
> - 	.class		= &omap44xx_mmc_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_mmc4_irqs,
> -
> - 	.sdma_reqs	= omap44xx_mmc4_sdma_reqs,
> -@@ -3742,6 +3799,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_mmc5_slaves[] = {
> - static struct omap_hwmod omap44xx_mmc5_hwmod = {
> - 	.name		= "mmc5",
> - 	.class		= &omap44xx_mmc_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_mmc5_irqs,
> - 	.sdma_reqs	= omap44xx_mmc5_sdma_reqs,
> - 	.main_clk	= "mmc5_fck",
> -@@ -3782,6 +3840,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_mpu_masters[] = {
> - static struct omap_hwmod omap44xx_mpu_hwmod = {
> - 	.name		= "mpu",
> - 	.class		= &omap44xx_mpu_hwmod_class,
> -+	.clkdm_name	= "mpuss_clkdm",
> - 	.flags		= HWMOD_INIT_NO_IDLE |
> HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_mpu_irqs,
> - 	.main_clk	= "dpll_mpu_m2_ck",
> -@@ -3854,6 +3913,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_smartreflex_core_slaves[] = {
> - static struct omap_hwmod omap44xx_smartreflex_core_hwmod = {
> - 	.name		= "smartreflex_core",
> - 	.class		= &omap44xx_smartreflex_hwmod_class,
> -+	.clkdm_name	= "l4_ao_clkdm",
> - 	.mpu_irqs	= omap44xx_smartreflex_core_irqs,
> -
> - 	.main_clk	= "smartreflex_core_fck",
> -@@ -3901,6 +3961,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_smartreflex_iva_slaves[] = {
> - static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = {
> - 	.name		= "smartreflex_iva",
> - 	.class		= &omap44xx_smartreflex_hwmod_class,
> -+	.clkdm_name	= "l4_ao_clkdm",
> - 	.mpu_irqs	= omap44xx_smartreflex_iva_irqs,
> - 	.main_clk	= "smartreflex_iva_fck",
> - 	.vdd_name	= "iva",
> -@@ -3947,6 +4008,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_smartreflex_mpu_slaves[] = {
> - static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = {
> - 	.name		= "smartreflex_mpu",
> - 	.class		= &omap44xx_smartreflex_hwmod_class,
> -+	.clkdm_name	= "l4_ao_clkdm",
> - 	.mpu_irqs	= omap44xx_smartreflex_mpu_irqs,
> - 	.main_clk	= "smartreflex_mpu_fck",
> - 	.vdd_name	= "mpu",
> -@@ -4011,6 +4073,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_spinlock_slaves[] = {
> - static struct omap_hwmod omap44xx_spinlock_hwmod = {
> - 	.name		= "spinlock",
> - 	.class		= &omap44xx_spinlock_hwmod_class,
> -+	.clkdm_name	= "l4_cfg_clkdm",
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_reg =
> OMAP4430_CM_L4CFG_HW_SEM_CLKCTRL,
> -@@ -4092,6 +4155,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_timer1_slaves[] = {
> - static struct omap_hwmod omap44xx_timer1_hwmod = {
> - 	.name		= "timer1",
> - 	.class		= &omap44xx_timer_1ms_hwmod_class,
> -+	.clkdm_name	= "l4_wkup_clkdm",
> - 	.mpu_irqs	= omap44xx_timer1_irqs,
> - 	.main_clk	= "timer1_fck",
> - 	.prcm = {
> -@@ -4137,6 +4201,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_timer2_slaves[] = {
> - static struct omap_hwmod omap44xx_timer2_hwmod = {
> - 	.name		= "timer2",
> - 	.class		= &omap44xx_timer_1ms_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_timer2_irqs,
> - 	.main_clk	= "timer2_fck",
> - 	.prcm = {
> -@@ -4182,6 +4247,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_timer3_slaves[] = {
> - static struct omap_hwmod omap44xx_timer3_hwmod = {
> - 	.name		= "timer3",
> - 	.class		= &omap44xx_timer_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_timer3_irqs,
> - 	.main_clk	= "timer3_fck",
> - 	.prcm = {
> -@@ -4227,6 +4293,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_timer4_slaves[] = {
> - static struct omap_hwmod omap44xx_timer4_hwmod = {
> - 	.name		= "timer4",
> - 	.class		= &omap44xx_timer_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_timer4_irqs,
> - 	.main_clk	= "timer4_fck",
> - 	.prcm = {
> -@@ -4291,6 +4358,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_timer5_slaves[] = {
> - static struct omap_hwmod omap44xx_timer5_hwmod = {
> - 	.name		= "timer5",
> - 	.class		= &omap44xx_timer_hwmod_class,
> -+	.clkdm_name	= "abe_clkdm",
> - 	.mpu_irqs	= omap44xx_timer5_irqs,
> - 	.main_clk	= "timer5_fck",
> - 	.prcm = {
> -@@ -4355,6 +4423,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_timer6_slaves[] = {
> - static struct omap_hwmod omap44xx_timer6_hwmod = {
> - 	.name		= "timer6",
> - 	.class		= &omap44xx_timer_hwmod_class,
> -+	.clkdm_name	= "abe_clkdm",
> - 	.mpu_irqs	= omap44xx_timer6_irqs,
> -
> - 	.main_clk	= "timer6_fck",
> -@@ -4420,6 +4489,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_timer7_slaves[] = {
> - static struct omap_hwmod omap44xx_timer7_hwmod = {
> - 	.name		= "timer7",
> - 	.class		= &omap44xx_timer_hwmod_class,
> -+	.clkdm_name	= "abe_clkdm",
> - 	.mpu_irqs	= omap44xx_timer7_irqs,
> - 	.main_clk	= "timer7_fck",
> - 	.prcm = {
> -@@ -4484,6 +4554,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_timer8_slaves[] = {
> - static struct omap_hwmod omap44xx_timer8_hwmod = {
> - 	.name		= "timer8",
> - 	.class		= &omap44xx_timer_hwmod_class,
> -+	.clkdm_name	= "abe_clkdm",
> - 	.mpu_irqs	= omap44xx_timer8_irqs,
> - 	.main_clk	= "timer8_fck",
> - 	.prcm = {
> -@@ -4529,6 +4600,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_timer9_slaves[] = {
> - static struct omap_hwmod omap44xx_timer9_hwmod = {
> - 	.name		= "timer9",
> - 	.class		= &omap44xx_timer_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_timer9_irqs,
> - 	.main_clk	= "timer9_fck",
> - 	.prcm = {
> -@@ -4574,6 +4646,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_timer10_slaves[] = {
> - static struct omap_hwmod omap44xx_timer10_hwmod = {
> - 	.name		= "timer10",
> - 	.class		= &omap44xx_timer_1ms_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_timer10_irqs,
> - 	.main_clk	= "timer10_fck",
> - 	.prcm = {
> -@@ -4619,6 +4692,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_timer11_slaves[] = {
> - static struct omap_hwmod omap44xx_timer11_hwmod = {
> - 	.name		= "timer11",
> - 	.class		= &omap44xx_timer_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_timer11_irqs,
> - 	.main_clk	= "timer11_fck",
> - 	.prcm = {
> -@@ -4692,6 +4766,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_uart1_slaves[] = {
> - static struct omap_hwmod omap44xx_uart1_hwmod = {
> - 	.name		= "uart1",
> - 	.class		= &omap44xx_uart_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_uart1_irqs,
> - 	.sdma_reqs	= omap44xx_uart1_sdma_reqs,
> - 	.main_clk	= "uart1_fck",
> -@@ -4744,6 +4819,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_uart2_slaves[] = {
> - static struct omap_hwmod omap44xx_uart2_hwmod = {
> - 	.name		= "uart2",
> - 	.class		= &omap44xx_uart_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_uart2_irqs,
> - 	.sdma_reqs	= omap44xx_uart2_sdma_reqs,
> - 	.main_clk	= "uart2_fck",
> -@@ -4796,6 +4872,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_uart3_slaves[] = {
> - static struct omap_hwmod omap44xx_uart3_hwmod = {
> - 	.name		= "uart3",
> - 	.class		= &omap44xx_uart_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.flags		= HWMOD_INIT_NO_IDLE |
> HWMOD_INIT_NO_RESET,
> - 	.mpu_irqs	= omap44xx_uart3_irqs,
> - 	.sdma_reqs	= omap44xx_uart3_sdma_reqs,
> -@@ -4849,6 +4926,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_uart4_slaves[] = {
> - static struct omap_hwmod omap44xx_uart4_hwmod = {
> - 	.name		= "uart4",
> - 	.class		= &omap44xx_uart_hwmod_class,
> -+	.clkdm_name	= "l4_per_clkdm",
> - 	.mpu_irqs	= omap44xx_uart4_irqs,
> - 	.sdma_reqs	= omap44xx_uart4_sdma_reqs,
> - 	.main_clk	= "uart4_fck",
> -@@ -4927,6 +5005,7 @@ static struct omap_hwmod_opt_clk
> usb_otg_hs_opt_clks[] = {
> - static struct omap_hwmod omap44xx_usb_otg_hs_hwmod = {
> - 	.name		= "usb_otg_hs",
> - 	.class		= &omap44xx_usb_otg_hs_hwmod_class,
> -+	.clkdm_name	= "l3_init_clkdm",
> - 	.flags		= HWMOD_SWSUP_SIDLE |
> HWMOD_SWSUP_MSTANDBY,
> - 	.mpu_irqs	= omap44xx_usb_otg_hs_irqs,
> - 	.main_clk	= "usb_otg_hs_ick",
> -@@ -5000,6 +5079,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_wd_timer2_slaves[] = {
> - static struct omap_hwmod omap44xx_wd_timer2_hwmod = {
> - 	.name		= "wd_timer2",
> - 	.class		= &omap44xx_wd_timer_hwmod_class,
> -+	.clkdm_name	= "l4_wkup_clkdm",
> - 	.mpu_irqs	= omap44xx_wd_timer2_irqs,
> - 	.main_clk	= "wd_timer2_fck",
> - 	.prcm = {
> -@@ -5064,6 +5144,7 @@ static struct omap_hwmod_ocp_if
> *omap44xx_wd_timer3_slaves[] = {
> - static struct omap_hwmod omap44xx_wd_timer3_hwmod = {
> - 	.name		= "wd_timer3",
> - 	.class		= &omap44xx_wd_timer_hwmod_class,
> -+	.clkdm_name	= "abe_clkdm",
> - 	.mpu_irqs	= omap44xx_wd_timer3_irqs,
> - 	.main_clk	= "wd_timer3_fck",
> - 	.prcm = {
> -diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -index fafdfe3..21d3922 100644
> ---- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -@@ -515,6 +515,7 @@ struct omap_hwmod {
> - 	const char			*main_clk;
> - 	struct clk			*_clk;
> - 	struct omap_hwmod_opt_clk	*opt_clks;
> -+	char				*clkdm_name;
> - 	char				*vdd_name;
> - 	struct voltagedomain		*voltdm;
> - 	struct omap_hwmod_ocp_if	**masters; /* connect to *_IA */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0078-OMAP2-
> hwmod-Init-clkdm-field-at-boot-time.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0078-OMAP2-hwmod-Init-clkdm-field-at-boot-time.patch
> deleted file mode 100644
> index db4e932..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0078-OMAP2-hwmod-Init-
> clkdm-field-at-boot-time.patch
> +++ /dev/null
> @@ -1,86 +0,0 @@
> -From 57d2323014444c5d7f8c8d7e2da0a9737c3d8c28 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:30 -0600
> -Subject: [PATCH 078/149] OMAP2+: hwmod: Init clkdm field at boot time
> -
> -At boot time, lookup the clkdm_name to get the clkdm
> -structure pointer for further usage.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod.c             |   34
> +++++++++++++++++++++++++-
> - arch/arm/plat-omap/include/plat/omap_hwmod.h |    1 +
> - 2 files changed, 34 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index 02b6016..1f6f47f 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -990,9 +990,40 @@ static struct omap_hwmod *_lookup(const char
> *name)
> -
> - 	return oh;
> - }
> -+/**
> -+ * _init_clkdm - look up a clockdomain name, store pointer in omap_hwmod
> -+ * @oh: struct omap_hwmod *
> -+ *
> -+ * Convert a clockdomain name stored in a struct omap_hwmod into a
> -+ * clockdomain pointer, and save it into the struct omap_hwmod.
> -+ * return -EINVAL if clkdm_name does not exist or if the lookup failed.
> -+ */
> -+static int _init_clkdm(struct omap_hwmod *oh)
> -+{
> -+	if (cpu_is_omap24xx() || cpu_is_omap34xx())
> -+		return 0;
> -+
> -+	if (!oh->clkdm_name) {
> -+		pr_warning("omap_hwmod: %s: no clkdm_name\n", oh-
> >name);
> -+		return -EINVAL;
> -+	}
> -+
> -+	oh->clkdm = clkdm_lookup(oh->clkdm_name);
> -+	if (!oh->clkdm) {
> -+		pr_warning("omap_hwmod: %s: could not associate to clkdm
> %s\n",
> -+			oh->name, oh->clkdm_name);
> -+		return -EINVAL;
> -+	}
> -+
> -+	pr_debug("omap_hwmod: %s: associated to clkdm %s\n",
> -+		oh->name, oh->clkdm_name);
> -+
> -+	return 0;
> -+}
> -
> - /**
> -- * _init_clocks - clk_get() all clocks associated with this hwmod
> -+ * _init_clocks - clk_get() all clocks associated with this hwmod. Retrieve as
> -+ * well the clockdomain.
> -  * @oh: struct omap_hwmod *
> -  * @data: not used; pass NULL
> -  *
> -@@ -1012,6 +1043,7 @@ static int _init_clocks(struct omap_hwmod *oh,
> void *data)
> - 	ret |= _init_main_clk(oh);
> - 	ret |= _init_interface_clks(oh);
> - 	ret |= _init_opt_clks(oh);
> -+	ret |= _init_clkdm(oh);
> -
> - 	if (!ret)
> - 		oh->_state = _HWMOD_STATE_CLKS_INITED;
> -diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -index 21d3922..3306bdf 100644
> ---- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -@@ -516,6 +516,7 @@ struct omap_hwmod {
> - 	struct clk			*_clk;
> - 	struct omap_hwmod_opt_clk	*opt_clks;
> - 	char				*clkdm_name;
> -+	struct clockdomain		*clkdm;
> - 	char				*vdd_name;
> - 	struct voltagedomain		*voltdm;
> - 	struct omap_hwmod_ocp_if	**masters; /* connect to *_IA */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0079-OMAP4-
> hwmod-Replace-CLKCTRL-absolute-address-with-of.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0079-OMAP4-hwmod-Replace-CLKCTRL-
> absolute-address-with-of.patch
> deleted file mode 100644
> index ba3120f..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0079-OMAP4-hwmod-
> Replace-CLKCTRL-absolute-address-with-of.patch
> +++ /dev/null
> @@ -1,976 +0,0 @@
> -From d112244b9ada88d33ac8e856587a4645c8f11e80 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:30 -0600
> -Subject: [PATCH 079/149] OMAP4: hwmod: Replace CLKCTRL absolute address
> with offset macros
> -
> -The CLKCTRL register was accessed using an absolute address.
> -The usage of hardcoded macros to calculate virtual address from physical
> -one should be avoided as much as possible.
> -The usage of a offset will allow future improvement like migration from
> -the current architecture code toward a module driver.
> -
> -Update cm_xxx accessor, move definition to the proper header file and
> -update copyrights.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Cc: Todd Poynor <toddpoynor at google.com>
> -[paul at pwsan.com: renamed 'omap4_cm_' fns to 'omap4_cminst_'; removed
> empty
> - fn prototype section from cm44xx.h; incorporated comments from Todd;
> - documented some functions]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/cm44xx.h                 |    8 +-
> - arch/arm/mach-omap2/cminst44xx.c             |   87 ++++++++++---
> - arch/arm/mach-omap2/cminst44xx.h             |    4 +-
> - arch/arm/mach-omap2/omap_hwmod.c             |   12 ++-
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c   |  182
> ++++++++++++++++---------
> - arch/arm/plat-omap/include/plat/omap_hwmod.h |    2 +-
> - 6 files changed, 198 insertions(+), 97 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/cm44xx.h b/arch/arm/mach-
> omap2/cm44xx.h
> -index 0b87ec8..3380bee 100644
> ---- a/arch/arm/mach-omap2/cm44xx.h
> -+++ b/arch/arm/mach-omap2/cm44xx.h
> -@@ -1,7 +1,7 @@
> - /*
> -  * OMAP4 Clock Management (CM) definitions
> -  *
> -- * Copyright (C) 2007-2009 Texas Instruments, Inc.
> -+ * Copyright (C) 2007-2011 Texas Instruments, Inc.
> -  * Copyright (C) 2007-2009 Nokia Corporation
> -  *
> -  * Written by Paul Walmsley
> -@@ -23,10 +23,4 @@
> - #define OMAP4_CM_CLKSTCTRL				0x0000
> - #define OMAP4_CM_STATICDEP				0x0004
> -
> --/* Function prototypes */
> --# ifndef __ASSEMBLER__
> --
> --extern int omap4_cm_wait_module_ready(void __iomem *clkctrl_reg);
> --
> --# endif
> - #endif
> -diff --git a/arch/arm/mach-omap2/cminst44xx.c b/arch/arm/mach-
> omap2/cminst44xx.c
> -index a482bfa..9033dd4 100644
> ---- a/arch/arm/mach-omap2/cminst44xx.c
> -+++ b/arch/arm/mach-omap2/cminst44xx.c
> -@@ -2,6 +2,7 @@
> -  * OMAP4 CM instance functions
> -  *
> -  * Copyright (C) 2009 Nokia Corporation
> -+ * Copyright (C) 2011 Texas Instruments, Inc.
> -  * Paul Walmsley
> -  *
> -  * This program is free software; you can redistribute it and/or modify
> -@@ -32,6 +33,22 @@
> - #include "prm44xx.h"
> - #include "prcm_mpu44xx.h"
> -
> -+/*
> -+ * CLKCTRL_IDLEST_*: possible values for the CM_*_CLKCTRL.IDLEST bitfield:
> -+ *
> -+ *   0x0 func:     Module is fully functional, including OCP
> -+ *   0x1 trans:    Module is performing transition: wakeup, or sleep, or sleep
> -+ *                 abortion
> -+ *   0x2 idle:     Module is in Idle mode (only OCP part). It is functional if
> -+ *                 using separate functional clock
> -+ *   0x3 disabled: Module is disabled and cannot be accessed
> -+ *
> -+ */
> -+#define CLKCTRL_IDLEST_FUNCTIONAL		0x0
> -+#define CLKCTRL_IDLEST_INTRANSITION		0x1
> -+#define CLKCTRL_IDLEST_INTERFACE_IDLE		0x2
> -+#define CLKCTRL_IDLEST_DISABLED			0x3
> -+
> - static u32 _cm_bases[OMAP4_MAX_PRCM_PARTITIONS] = {
> - 	[OMAP4430_INVALID_PRCM_PARTITION]	= 0,
> - 	[OMAP4430_PRM_PARTITION]		= OMAP4430_PRM_BASE,
> -@@ -41,6 +58,48 @@ static u32
> _cm_bases[OMAP4_MAX_PRCM_PARTITIONS] = {
> - 	[OMAP4430_PRCM_MPU_PARTITION]		=
> OMAP4430_PRCM_MPU_BASE,
> - };
> -
> -+/* Private functions */
> -+
> -+/**
> -+ * _clkctrl_idlest - read a CM_*_CLKCTRL register; mask & shift IDLEST bitfield
> -+ * @part: PRCM partition ID that the CM_CLKCTRL register exists in
> -+ * @inst: CM instance register offset (*_INST macro)
> -+ * @cdoffs: Clockdomain register offset (*_CDOFFS macro)
> -+ * @clkctrl_offs: Module clock control register offset (*_CLKCTRL macro)
> -+ *
> -+ * Return the IDLEST bitfield of a CM_*_CLKCTRL register, shifted down to
> -+ * bit 0.
> -+ */
> -+static u32 _clkctrl_idlest(u8 part, u16 inst, s16 cdoffs, u16 clkctrl_offs)
> -+{
> -+	u32 v = omap4_cminst_read_inst_reg(part, inst, clkctrl_offs);
> -+	v &= OMAP4430_IDLEST_MASK;
> -+	v >>= OMAP4430_IDLEST_SHIFT;
> -+	return v;
> -+}
> -+
> -+/**
> -+ * _is_module_ready - can module registers be accessed without causing an
> abort?
> -+ * @part: PRCM partition ID that the CM_CLKCTRL register exists in
> -+ * @inst: CM instance register offset (*_INST macro)
> -+ * @cdoffs: Clockdomain register offset (*_CDOFFS macro)
> -+ * @clkctrl_offs: Module clock control register offset (*_CLKCTRL macro)
> -+ *
> -+ * Returns true if the module's CM_*_CLKCTRL.IDLEST bitfield is either
> -+ * *FUNCTIONAL or *INTERFACE_IDLE; false otherwise.
> -+ */
> -+static bool _is_module_ready(u8 part, u16 inst, s16 cdoffs, u16 clkctrl_offs)
> -+{
> -+	u32 v;
> -+
> -+	v = _clkctrl_idlest(part, inst, cdoffs, clkctrl_offs);
> -+
> -+	return (v == CLKCTRL_IDLEST_FUNCTIONAL ||
> -+		v == CLKCTRL_IDLEST_INTERFACE_IDLE) ? true : false;
> -+}
> -+
> -+/* Public functions */
> -+
> - /* Read a register in a CM instance */
> - u32 omap4_cminst_read_inst_reg(u8 part, s16 inst, u16 idx)
> - {
> -@@ -200,35 +259,27 @@ void omap4_cminst_clkdm_force_wakeup(u8 part,
> s16 inst, u16 cdoffs)
> -  */
> -
> - /**
> -- * omap4_cm_wait_module_ready - wait for a module to be in 'func' state
> -- * @clkctrl_reg: CLKCTRL module address
> -+ * omap4_cminst_wait_module_ready - wait for a module to be in 'func' state
> -+ * @part: PRCM partition ID that the CM_CLKCTRL register exists in
> -+ * @inst: CM instance register offset (*_INST macro)
> -+ * @cdoffs: Clockdomain register offset (*_CDOFFS macro)
> -+ * @clkctrl_offs: Module clock control register offset (*_CLKCTRL macro)
> -  *
> -  * Wait for the module IDLEST to be functional. If the idle state is in any
> -  * the non functional state (trans, idle or disabled), module and thus the
> -  * sysconfig cannot be accessed and will probably lead to an "imprecise
> -  * external abort"
> -- *
> -- * Module idle state:
> -- *   0x0 func:     Module is fully functional, including OCP
> -- *   0x1 trans:    Module is performing transition: wakeup, or sleep, or sleep
> -- *                 abortion
> -- *   0x2 idle:     Module is in Idle mode (only OCP part). It is functional if
> -- *                 using separate functional clock
> -- *   0x3 disabled: Module is disabled and cannot be accessed
> -- *
> -  */
> --int omap4_cm_wait_module_ready(void __iomem *clkctrl_reg)
> -+int omap4_cminst_wait_module_ready(u8 part, u16 inst, s16 cdoffs,
> -+				   u16 clkctrl_offs)
> - {
> - 	int i = 0;
> -
> --	if (!clkctrl_reg)
> -+	if (!clkctrl_offs)
> - 		return 0;
> -
> --	omap_test_timeout((
> --		((__raw_readl(clkctrl_reg) & OMAP4430_IDLEST_MASK) == 0)
> ||
> --		 (((__raw_readl(clkctrl_reg) & OMAP4430_IDLEST_MASK) >>
> --		  OMAP4430_IDLEST_SHIFT) == 0x2)),
> --		MAX_MODULE_READY_TIME, i);
> -+	omap_test_timeout(_is_module_ready(part, inst, cdoffs, clkctrl_offs),
> -+			  MAX_MODULE_READY_TIME, i);
> -
> - 	return (i < MAX_MODULE_READY_TIME) ? 0 : -EBUSY;
> - }
> -diff --git a/arch/arm/mach-omap2/cminst44xx.h b/arch/arm/mach-
> omap2/cminst44xx.h
> -index 2b32c18..8eba2ae 100644
> ---- a/arch/arm/mach-omap2/cminst44xx.h
> -+++ b/arch/arm/mach-omap2/cminst44xx.h
> -@@ -17,6 +17,8 @@ extern void omap4_cminst_clkdm_disable_hwsup(u8
> part, s16 inst, u16 cdoffs);
> - extern void omap4_cminst_clkdm_force_sleep(u8 part, s16 inst, u16 cdoffs);
> - extern void omap4_cminst_clkdm_force_wakeup(u8 part, s16 inst, u16
> cdoffs);
> -
> -+extern int omap4_cminst_wait_module_ready(u8 part, u16 inst, s16 cdoffs,
> u16 clkctrl_offs);
> -+
> - /*
> -  * In an ideal world, we would not export these low-level functions,
> -  * but this will probably take some time to fix properly
> -@@ -32,6 +34,4 @@ extern u32 omap4_cminst_clear_inst_reg_bits(u32 bits,
> u8 part, s16 inst,
> - extern u32 omap4_cminst_read_inst_reg_bits(u8 part, u16 inst, s16 idx,
> - 					   u32 mask);
> -
> --extern int omap4_cm_wait_module_ready(void __iomem *clkctrl_reg);
> --
> - #endif
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index 1f6f47f..00241ea 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -146,7 +146,7 @@
> - #include <plat/prcm.h>
> -
> - #include "cm2xxx_3xxx.h"
> --#include "cm44xx.h"
> -+#include "cminst44xx.h"
> - #include "prm2xxx_3xxx.h"
> - #include "prm44xx.h"
> - #include "mux.h"
> -@@ -1060,7 +1060,7 @@ static int _init_clocks(struct omap_hwmod *oh,
> void *data)
> -  * Wait for a module @oh to leave slave idle.  Returns 0 if the module
> -  * does not have an IDLEST bit or if the module successfully leaves
> -  * slave idle; otherwise, pass along the return value of the
> -- * appropriate *_cm_wait_module_ready() function.
> -+ * appropriate *_cm*_wait_module_ready() function.
> -  */
> - static int _wait_target_ready(struct omap_hwmod *oh)
> - {
> -@@ -1087,7 +1087,13 @@ static int _wait_target_ready(struct
> omap_hwmod *oh)
> - 						 oh-
> >prcm.omap2.idlest_reg_id,
> - 						 oh-
> >prcm.omap2.idlest_idle_bit);
> - 	} else if (cpu_is_omap44xx()) {
> --		ret = omap4_cm_wait_module_ready(oh-
> >prcm.omap4.clkctrl_reg);
> -+		if (!oh->clkdm)
> -+			return -EINVAL;
> -+
> -+		ret = omap4_cminst_wait_module_ready(oh->clkdm-
> >prcm_partition,
> -+						     oh->clkdm->cm_inst,
> -+						     oh->clkdm->clkdm_offs,
> -+						     oh-
> >prcm.omap4.clkctrl_offs);
> - 	} else {
> - 		BUG();
> - 	};
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index becae45..00d7130 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -124,6 +124,11 @@ static struct omap_hwmod
> omap44xx_dmm_hwmod = {
> - 	.name		= "dmm",
> - 	.class		= &omap44xx_dmm_hwmod_class,
> - 	.clkdm_name	= "l3_emif_clkdm",
> -+	.prcm = {
> -+		.omap4 = {
> -+			.clkctrl_offs =
> OMAP4_CM_MEMIF_DMM_CLKCTRL_OFFSET,
> -+		},
> -+	},
> - 	.slaves		= omap44xx_dmm_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_dmm_slaves),
> - 	.mpu_irqs	= omap44xx_dmm_irqs,
> -@@ -175,6 +180,11 @@ static struct omap_hwmod
> omap44xx_emif_fw_hwmod = {
> - 	.name		= "emif_fw",
> - 	.class		= &omap44xx_emif_fw_hwmod_class,
> - 	.clkdm_name	= "l3_emif_clkdm",
> -+	.prcm = {
> -+		.omap4 = {
> -+			.clkctrl_offs =
> OMAP4_CM_MEMIF_EMIF_FW_CLKCTRL_OFFSET,
> -+		},
> -+	},
> - 	.slaves		= omap44xx_emif_fw_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_emif_fw_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -215,6 +225,11 @@ static struct omap_hwmod
> omap44xx_l3_instr_hwmod = {
> - 	.name		= "l3_instr",
> - 	.class		= &omap44xx_l3_hwmod_class,
> - 	.clkdm_name	= "l3_instr_clkdm",
> -+	.prcm = {
> -+		.omap4 = {
> -+			.clkctrl_offs =
> OMAP4_CM_L3INSTR_L3_INSTR_CLKCTRL_OFFSET,
> -+		},
> -+	},
> - 	.slaves		= omap44xx_l3_instr_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_instr_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -309,6 +324,11 @@ static struct omap_hwmod
> omap44xx_l3_main_1_hwmod = {
> - 	.class		= &omap44xx_l3_hwmod_class,
> - 	.clkdm_name	= "l3_1_clkdm",
> - 	.mpu_irqs	= omap44xx_l3_main_1_irqs,
> -+	.prcm = {
> -+		.omap4 = {
> -+			.clkctrl_offs =
> OMAP4_CM_L3_1_L3_1_CLKCTRL_OFFSET,
> -+		},
> -+	},
> - 	.slaves		= omap44xx_l3_main_1_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_main_1_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -405,6 +425,11 @@ static struct omap_hwmod
> omap44xx_l3_main_2_hwmod = {
> - 	.name		= "l3_main_2",
> - 	.class		= &omap44xx_l3_hwmod_class,
> - 	.clkdm_name	= "l3_2_clkdm",
> -+	.prcm = {
> -+		.omap4 = {
> -+			.clkctrl_offs =
> OMAP4_CM_L3_2_L3_2_CLKCTRL_OFFSET,
> -+		},
> -+	},
> - 	.slaves		= omap44xx_l3_main_2_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_main_2_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -456,6 +481,11 @@ static struct omap_hwmod
> omap44xx_l3_main_3_hwmod = {
> - 	.name		= "l3_main_3",
> - 	.class		= &omap44xx_l3_hwmod_class,
> - 	.clkdm_name	= "l3_instr_clkdm",
> -+	.prcm = {
> -+		.omap4 = {
> -+			.clkctrl_offs =
> OMAP4_CM_L3INSTR_L3_3_CLKCTRL_OFFSET,
> -+		},
> -+	},
> - 	.slaves		= omap44xx_l3_main_3_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l3_main_3_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -514,6 +544,11 @@ static struct omap_hwmod
> omap44xx_l4_abe_hwmod = {
> - 	.name		= "l4_abe",
> - 	.class		= &omap44xx_l4_hwmod_class,
> - 	.clkdm_name	= "abe_clkdm",
> -+	.prcm = {
> -+		.omap4 = {
> -+			.clkctrl_offs =
> OMAP4_CM1_ABE_L4ABE_CLKCTRL_OFFSET,
> -+		},
> -+	},
> - 	.slaves		= omap44xx_l4_abe_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l4_abe_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -537,6 +572,11 @@ static struct omap_hwmod
> omap44xx_l4_cfg_hwmod = {
> - 	.name		= "l4_cfg",
> - 	.class		= &omap44xx_l4_hwmod_class,
> - 	.clkdm_name	= "l4_cfg_clkdm",
> -+	.prcm = {
> -+		.omap4 = {
> -+			.clkctrl_offs =
> OMAP4_CM_L4CFG_L4_CFG_CLKCTRL_OFFSET,
> -+		},
> -+	},
> - 	.slaves		= omap44xx_l4_cfg_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l4_cfg_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -560,6 +600,11 @@ static struct omap_hwmod
> omap44xx_l4_per_hwmod = {
> - 	.name		= "l4_per",
> - 	.class		= &omap44xx_l4_hwmod_class,
> - 	.clkdm_name	= "l4_per_clkdm",
> -+	.prcm = {
> -+		.omap4 = {
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_L4PER_CLKCTRL_OFFSET,
> -+		},
> -+	},
> - 	.slaves		= omap44xx_l4_per_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l4_per_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -583,6 +628,11 @@ static struct omap_hwmod
> omap44xx_l4_wkup_hwmod = {
> - 	.name		= "l4_wkup",
> - 	.class		= &omap44xx_l4_hwmod_class,
> - 	.clkdm_name	= "l4_wkup_clkdm",
> -+	.prcm = {
> -+		.omap4 = {
> -+			.clkctrl_offs =
> OMAP4_CM_WKUP_L4WKUP_CLKCTRL_OFFSET,
> -+		},
> -+	},
> - 	.slaves		= omap44xx_l4_wkup_slaves,
> - 	.slaves_cnt	= ARRAY_SIZE(omap44xx_l4_wkup_slaves),
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -758,7 +808,7 @@ static struct omap_hwmod omap44xx_aess_hwmod =
> {
> - 	.main_clk	= "aess_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM1_ABE_AESS_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM1_ABE_AESS_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_aess_slaves,
> -@@ -788,7 +838,7 @@ static struct omap_hwmod
> omap44xx_bandgap_hwmod = {
> - 	.clkdm_name	= "l4_wkup_clkdm",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_WKUP_BANDGAP_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_WKUP_BANDGAP_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= bandgap_opt_clks,
> -@@ -848,7 +898,7 @@ static struct omap_hwmod
> omap44xx_counter_32k_hwmod = {
> - 	.main_clk	= "sys_32k_ck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_WKUP_SYNCTIMER_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_WKUP_SYNCTIMER_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_counter_32k_slaves,
> -@@ -932,7 +982,7 @@ static struct omap_hwmod
> omap44xx_dma_system_hwmod = {
> - 	.main_clk	= "l3_div_ck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_SDMA_SDMA_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_SDMA_SDMA_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.dev_attr	= &dma_dev_attr,
> -@@ -1026,7 +1076,7 @@ static struct omap_hwmod
> omap44xx_dmic_hwmod = {
> - 	.main_clk	= "dmic_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM1_ABE_DMIC_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM1_ABE_DMIC_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_dmic_slaves,
> -@@ -1110,7 +1160,7 @@ static struct omap_hwmod omap44xx_dsp_hwmod
> = {
> - 	.main_clk	= "dsp_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_TESLA_TESLA_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_TESLA_TESLA_CLKCTRL_OFFSET,
> - 			.rstctrl_reg = OMAP4430_RM_TESLA_RSTCTRL,
> - 		},
> - 	},
> -@@ -1199,7 +1249,7 @@ static struct omap_hwmod omap44xx_dss_hwmod
> = {
> - 	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= dss_opt_clks,
> -@@ -1303,7 +1353,7 @@ static struct omap_hwmod
> omap44xx_dss_dispc_hwmod = {
> - 	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= dss_dispc_opt_clks,
> -@@ -1401,7 +1451,7 @@ static struct omap_hwmod
> omap44xx_dss_dsi1_hwmod = {
> - 	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= dss_dsi1_opt_clks,
> -@@ -1478,7 +1528,7 @@ static struct omap_hwmod
> omap44xx_dss_dsi2_hwmod = {
> - 	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= dss_dsi2_opt_clks,
> -@@ -1575,7 +1625,7 @@ static struct omap_hwmod
> omap44xx_dss_hdmi_hwmod = {
> - 	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= dss_hdmi_opt_clks,
> -@@ -1666,7 +1716,7 @@ static struct omap_hwmod
> omap44xx_dss_rfbi_hwmod = {
> - 	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= dss_rfbi_opt_clks,
> -@@ -1736,7 +1786,7 @@ static struct omap_hwmod
> omap44xx_dss_venc_hwmod = {
> - 	.main_clk	= "dss_dss_clk",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_dss_venc_slaves,
> -@@ -1815,7 +1865,7 @@ static struct omap_hwmod
> omap44xx_gpio1_hwmod = {
> - 	.main_clk	= "gpio1_ick",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_WKUP_GPIO1_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_WKUP_GPIO1_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= gpio1_opt_clks,
> -@@ -1869,7 +1919,7 @@ static struct omap_hwmod
> omap44xx_gpio2_hwmod = {
> - 	.main_clk	= "gpio2_ick",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_GPIO2_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO2_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= gpio2_opt_clks,
> -@@ -1923,7 +1973,7 @@ static struct omap_hwmod
> omap44xx_gpio3_hwmod = {
> - 	.main_clk	= "gpio3_ick",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_GPIO3_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO3_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= gpio3_opt_clks,
> -@@ -1977,7 +2027,7 @@ static struct omap_hwmod
> omap44xx_gpio4_hwmod = {
> - 	.main_clk	= "gpio4_ick",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_GPIO4_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO4_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= gpio4_opt_clks,
> -@@ -2031,7 +2081,7 @@ static struct omap_hwmod
> omap44xx_gpio5_hwmod = {
> - 	.main_clk	= "gpio5_ick",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_GPIO5_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO5_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= gpio5_opt_clks,
> -@@ -2085,7 +2135,7 @@ static struct omap_hwmod
> omap44xx_gpio6_hwmod = {
> - 	.main_clk	= "gpio6_ick",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_GPIO6_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO6_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= gpio6_opt_clks,
> -@@ -2164,7 +2214,7 @@ static struct omap_hwmod omap44xx_hsi_hwmod
> = {
> - 	.main_clk	= "hsi_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_L3INIT_HSI_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L3INIT_HSI_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_hsi_slaves,
> -@@ -2247,7 +2297,7 @@ static struct omap_hwmod
> omap44xx_i2c1_hwmod = {
> - 	.main_clk	= "i2c1_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_L4PER_I2C1_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_I2C1_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_i2c1_slaves,
> -@@ -2302,7 +2352,7 @@ static struct omap_hwmod
> omap44xx_i2c2_hwmod = {
> - 	.main_clk	= "i2c2_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_L4PER_I2C2_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_I2C2_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_i2c2_slaves,
> -@@ -2357,7 +2407,7 @@ static struct omap_hwmod
> omap44xx_i2c3_hwmod = {
> - 	.main_clk	= "i2c3_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_L4PER_I2C3_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_I2C3_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_i2c3_slaves,
> -@@ -2412,7 +2462,7 @@ static struct omap_hwmod
> omap44xx_i2c4_hwmod = {
> - 	.main_clk	= "i2c4_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_L4PER_I2C4_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_I2C4_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_i2c4_slaves,
> -@@ -2508,7 +2558,7 @@ static struct omap_hwmod omap44xx_ipu_hwmod
> = {
> - 	.main_clk	= "ipu_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_DUCATI_DUCATI_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_DUCATI_DUCATI_CLKCTRL_OFFSET,
> - 			.rstctrl_reg = OMAP4430_RM_DUCATI_RSTCTRL,
> - 		},
> - 	},
> -@@ -2595,7 +2645,7 @@ static struct omap_hwmod omap44xx_iss_hwmod
> = {
> - 	.main_clk	= "iss_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_CAM_ISS_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_CAM_ISS_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= iss_opt_clks,
> -@@ -2708,7 +2758,7 @@ static struct omap_hwmod omap44xx_iva_hwmod
> = {
> - 	.main_clk	= "iva_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_IVAHD_IVAHD_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_IVAHD_IVAHD_CLKCTRL_OFFSET,
> - 			.rstctrl_reg = OMAP4430_RM_IVAHD_RSTCTRL,
> - 		},
> - 	},
> -@@ -2779,7 +2829,7 @@ static struct omap_hwmod
> omap44xx_kbd_hwmod = {
> - 	.main_clk	= "kbd_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_WKUP_KEYBOARD_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_WKUP_KEYBOARD_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_kbd_slaves,
> -@@ -2844,7 +2894,7 @@ static struct omap_hwmod
> omap44xx_mailbox_hwmod = {
> - 	.mpu_irqs	= omap44xx_mailbox_irqs,
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4CFG_MAILBOX_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4CFG_MAILBOX_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mailbox_slaves,
> -@@ -2937,7 +2987,7 @@ static struct omap_hwmod
> omap44xx_mcbsp1_hwmod = {
> - 	.main_clk	= "mcbsp1_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM1_ABE_MCBSP1_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM1_ABE_MCBSP1_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcbsp1_slaves,
> -@@ -3011,7 +3061,7 @@ static struct omap_hwmod
> omap44xx_mcbsp2_hwmod = {
> - 	.main_clk	= "mcbsp2_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM1_ABE_MCBSP2_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM1_ABE_MCBSP2_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcbsp2_slaves,
> -@@ -3085,7 +3135,7 @@ static struct omap_hwmod
> omap44xx_mcbsp3_hwmod = {
> - 	.main_clk	= "mcbsp3_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM1_ABE_MCBSP3_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM1_ABE_MCBSP3_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcbsp3_slaves,
> -@@ -3138,7 +3188,7 @@ static struct omap_hwmod
> omap44xx_mcbsp4_hwmod = {
> - 	.main_clk	= "mcbsp4_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_MCBSP4_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_MCBSP4_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcbsp4_slaves,
> -@@ -3231,7 +3281,7 @@ static struct omap_hwmod
> omap44xx_mcpdm_hwmod = {
> - 	.main_clk	= "mcpdm_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM1_ABE_PDM_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM1_ABE_PDM_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcpdm_slaves,
> -@@ -3317,7 +3367,7 @@ static struct omap_hwmod
> omap44xx_mcspi1_hwmod = {
> - 	.main_clk	= "mcspi1_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_MCSPI1_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_MCSPI1_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.dev_attr	= &mcspi1_dev_attr,
> -@@ -3378,7 +3428,7 @@ static struct omap_hwmod
> omap44xx_mcspi2_hwmod = {
> - 	.main_clk	= "mcspi2_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_MCSPI2_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_MCSPI2_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.dev_attr	= &mcspi2_dev_attr,
> -@@ -3439,7 +3489,7 @@ static struct omap_hwmod
> omap44xx_mcspi3_hwmod = {
> - 	.main_clk	= "mcspi3_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_MCSPI3_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_MCSPI3_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.dev_attr	= &mcspi3_dev_attr,
> -@@ -3498,7 +3548,7 @@ static struct omap_hwmod
> omap44xx_mcspi4_hwmod = {
> - 	.main_clk	= "mcspi4_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_MCSPI4_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_MCSPI4_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.dev_attr	= &mcspi4_dev_attr,
> -@@ -3583,7 +3633,7 @@ static struct omap_hwmod
> omap44xx_mmc1_hwmod = {
> - 	.main_clk	= "mmc1_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L3INIT_MMC1_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L3INIT_MMC1_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.dev_attr	= &mmc1_dev_attr,
> -@@ -3643,7 +3693,7 @@ static struct omap_hwmod
> omap44xx_mmc2_hwmod = {
> - 	.main_clk	= "mmc2_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L3INIT_MMC2_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L3INIT_MMC2_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mmc2_slaves,
> -@@ -3698,7 +3748,7 @@ static struct omap_hwmod
> omap44xx_mmc3_hwmod = {
> - 	.main_clk	= "mmc3_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_MMCSD3_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_MMCSD3_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mmc3_slaves,
> -@@ -3752,7 +3802,7 @@ static struct omap_hwmod
> omap44xx_mmc4_hwmod = {
> - 	.main_clk	= "mmc4_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_MMCSD4_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_MMCSD4_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mmc4_slaves,
> -@@ -3805,7 +3855,7 @@ static struct omap_hwmod
> omap44xx_mmc5_hwmod = {
> - 	.main_clk	= "mmc5_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_MMCSD5_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_MMCSD5_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mmc5_slaves,
> -@@ -3846,7 +3896,7 @@ static struct omap_hwmod
> omap44xx_mpu_hwmod = {
> - 	.main_clk	= "dpll_mpu_m2_ck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM_MPU_MPU_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_MPU_MPU_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.masters	= omap44xx_mpu_masters,
> -@@ -3920,7 +3970,7 @@ static struct omap_hwmod
> omap44xx_smartreflex_core_hwmod = {
> - 	.vdd_name	= "core",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_ALWON_SR_CORE_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_ALWON_SR_CORE_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_smartreflex_core_slaves,
> -@@ -3967,7 +4017,7 @@ static struct omap_hwmod
> omap44xx_smartreflex_iva_hwmod = {
> - 	.vdd_name	= "iva",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_ALWON_SR_IVA_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_ALWON_SR_IVA_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_smartreflex_iva_slaves,
> -@@ -4014,7 +4064,7 @@ static struct omap_hwmod
> omap44xx_smartreflex_mpu_hwmod = {
> - 	.vdd_name	= "mpu",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_ALWON_SR_MPU_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_ALWON_SR_MPU_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_smartreflex_mpu_slaves,
> -@@ -4076,7 +4126,7 @@ static struct omap_hwmod
> omap44xx_spinlock_hwmod = {
> - 	.clkdm_name	= "l4_cfg_clkdm",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4CFG_HW_SEM_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4CFG_HW_SEM_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_spinlock_slaves,
> -@@ -4160,7 +4210,7 @@ static struct omap_hwmod
> omap44xx_timer1_hwmod = {
> - 	.main_clk	= "timer1_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_WKUP_TIMER1_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_WKUP_TIMER1_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer1_slaves,
> -@@ -4206,7 +4256,7 @@ static struct omap_hwmod
> omap44xx_timer2_hwmod = {
> - 	.main_clk	= "timer2_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_DMTIMER2_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER2_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer2_slaves,
> -@@ -4252,7 +4302,7 @@ static struct omap_hwmod
> omap44xx_timer3_hwmod = {
> - 	.main_clk	= "timer3_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_DMTIMER3_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER3_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer3_slaves,
> -@@ -4298,7 +4348,7 @@ static struct omap_hwmod
> omap44xx_timer4_hwmod = {
> - 	.main_clk	= "timer4_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_DMTIMER4_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER4_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer4_slaves,
> -@@ -4363,7 +4413,7 @@ static struct omap_hwmod
> omap44xx_timer5_hwmod = {
> - 	.main_clk	= "timer5_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM1_ABE_TIMER5_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM1_ABE_TIMER5_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer5_slaves,
> -@@ -4429,7 +4479,7 @@ static struct omap_hwmod
> omap44xx_timer6_hwmod = {
> - 	.main_clk	= "timer6_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM1_ABE_TIMER6_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM1_ABE_TIMER6_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer6_slaves,
> -@@ -4494,7 +4544,7 @@ static struct omap_hwmod
> omap44xx_timer7_hwmod = {
> - 	.main_clk	= "timer7_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM1_ABE_TIMER7_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM1_ABE_TIMER7_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer7_slaves,
> -@@ -4559,7 +4609,7 @@ static struct omap_hwmod
> omap44xx_timer8_hwmod = {
> - 	.main_clk	= "timer8_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM1_ABE_TIMER8_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM1_ABE_TIMER8_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer8_slaves,
> -@@ -4605,7 +4655,7 @@ static struct omap_hwmod
> omap44xx_timer9_hwmod = {
> - 	.main_clk	= "timer9_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_DMTIMER9_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER9_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer9_slaves,
> -@@ -4651,7 +4701,7 @@ static struct omap_hwmod
> omap44xx_timer10_hwmod = {
> - 	.main_clk	= "timer10_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_DMTIMER10_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER10_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer10_slaves,
> -@@ -4697,7 +4747,7 @@ static struct omap_hwmod
> omap44xx_timer11_hwmod = {
> - 	.main_clk	= "timer11_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_DMTIMER11_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER11_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer11_slaves,
> -@@ -4772,7 +4822,7 @@ static struct omap_hwmod
> omap44xx_uart1_hwmod = {
> - 	.main_clk	= "uart1_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_UART1_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_UART1_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_uart1_slaves,
> -@@ -4825,7 +4875,7 @@ static struct omap_hwmod
> omap44xx_uart2_hwmod = {
> - 	.main_clk	= "uart2_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_UART2_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_UART2_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_uart2_slaves,
> -@@ -4879,7 +4929,7 @@ static struct omap_hwmod
> omap44xx_uart3_hwmod = {
> - 	.main_clk	= "uart3_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_UART3_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_UART3_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_uart3_slaves,
> -@@ -4932,7 +4982,7 @@ static struct omap_hwmod
> omap44xx_uart4_hwmod = {
> - 	.main_clk	= "uart4_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L4PER_UART4_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L4PER_UART4_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_uart4_slaves,
> -@@ -5011,7 +5061,7 @@ static struct omap_hwmod
> omap44xx_usb_otg_hs_hwmod = {
> - 	.main_clk	= "usb_otg_hs_ick",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_L3INIT_USB_OTG_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_L3INIT_USB_OTG_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= usb_otg_hs_opt_clks,
> -@@ -5084,7 +5134,7 @@ static struct omap_hwmod
> omap44xx_wd_timer2_hwmod = {
> - 	.main_clk	= "wd_timer2_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg =
> OMAP4430_CM_WKUP_WDT2_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM_WKUP_WDT2_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_wd_timer2_slaves,
> -@@ -5149,7 +5199,7 @@ static struct omap_hwmod
> omap44xx_wd_timer3_hwmod = {
> - 	.main_clk	= "wd_timer3_fck",
> - 	.prcm = {
> - 		.omap4 = {
> --			.clkctrl_reg = OMAP4430_CM1_ABE_WDT3_CLKCTRL,
> -+			.clkctrl_offs =
> OMAP4_CM1_ABE_WDT3_CLKCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_wd_timer3_slaves,
> -diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -index 3306bdf..fc54355 100644
> ---- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -@@ -360,7 +360,7 @@ struct omap_hwmod_omap2_prcm {
> -  * @submodule_wkdep_bit: bit shift of the WKDEP range
> -  */
> - struct omap_hwmod_omap4_prcm {
> --	void __iomem	*clkctrl_reg;
> -+	u16		clkctrl_offs;
> - 	void __iomem	*rstctrl_reg;
> - 	u8		submodule_wkdep_bit;
> - };
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0080-OMAP-hwmod-
> Wait-the-idle-status-to-be-disabled.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0080-OMAP-hwmod-Wait-the-idle-status-to-be-disabled.patch
> deleted file mode 100644
> index c3668a6..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0080-OMAP-hwmod-Wait-
> the-idle-status-to-be-disabled.patch
> +++ /dev/null
> @@ -1,153 +0,0 @@
> -From e800b4bd2d100fea86fbfa46a20a374c691e2fcd Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:30 -0600
> -Subject: [PATCH 080/149] OMAP: hwmod: Wait the idle status to be disabled
> -
> -It is mandatory to wait for a module to be in disabled state before
> -potentially disabling source clock or re-asserting a reset.
> -
> -omap_hwmod_idle and omap_hwmod_shutdown does not wait for
> -the module to be fully idle.
> -
> -Add a cm_xxx accessor to wait the clkctrl idle status to be disabled.
> -Fix hwmod_[idle|shutdown] to use this API.
> -
> -Based on Rajendra's initial patch.
> -
> -Please note that most interconnects hwmod will return one timeout because
> -it is impossible for them to be in idle since the processor is accessing
> -the registers though the interconnect.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Todd Poynor <toddpoynor at google.com>
> -[paul at pwsan.com: move cpu_is_*() tests to the top of _wait_target_disable();
> - incorporate some feedback from Todd]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/cminst44xx.c |   25 +++++++++++++++++++++++
> - arch/arm/mach-omap2/cminst44xx.h |    1 +
> - arch/arm/mach-omap2/omap_hwmod.c |   40
> ++++++++++++++++++++++++++++++++++++++
> - 3 files changed, 66 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/cminst44xx.c b/arch/arm/mach-
> omap2/cminst44xx.c
> -index 9033dd4..0fe3f14 100644
> ---- a/arch/arm/mach-omap2/cminst44xx.c
> -+++ b/arch/arm/mach-omap2/cminst44xx.c
> -@@ -284,3 +284,28 @@ int omap4_cminst_wait_module_ready(u8 part, u16
> inst, s16 cdoffs,
> - 	return (i < MAX_MODULE_READY_TIME) ? 0 : -EBUSY;
> - }
> -
> -+/**
> -+ * omap4_cminst_wait_module_idle - wait for a module to be in 'disabled'
> -+ * state
> -+ * @part: PRCM partition ID that the CM_CLKCTRL register exists in
> -+ * @inst: CM instance register offset (*_INST macro)
> -+ * @cdoffs: Clockdomain register offset (*_CDOFFS macro)
> -+ * @clkctrl_offs: Module clock control register offset (*_CLKCTRL macro)
> -+ *
> -+ * Wait for the module IDLEST to be disabled. Some PRCM transition,
> -+ * like reset assertion or parent clock de-activation must wait the
> -+ * module to be fully disabled.
> -+ */
> -+int omap4_cminst_wait_module_idle(u8 part, u16 inst, s16 cdoffs, u16
> clkctrl_offs)
> -+{
> -+	int i = 0;
> -+
> -+	if (!clkctrl_offs)
> -+		return 0;
> -+
> -+	omap_test_timeout((_clkctrl_idlest(part, inst, cdoffs, clkctrl_offs) ==
> -+			   CLKCTRL_IDLEST_DISABLED),
> -+			  MAX_MODULE_READY_TIME, i);
> -+
> -+	return (i < MAX_MODULE_READY_TIME) ? 0 : -EBUSY;
> -+}
> -diff --git a/arch/arm/mach-omap2/cminst44xx.h b/arch/arm/mach-
> omap2/cminst44xx.h
> -index 8eba2ae..a985400 100644
> ---- a/arch/arm/mach-omap2/cminst44xx.h
> -+++ b/arch/arm/mach-omap2/cminst44xx.h
> -@@ -18,6 +18,7 @@ extern void omap4_cminst_clkdm_force_sleep(u8 part,
> s16 inst, u16 cdoffs);
> - extern void omap4_cminst_clkdm_force_wakeup(u8 part, s16 inst, u16
> cdoffs);
> -
> - extern int omap4_cminst_wait_module_ready(u8 part, u16 inst, s16 cdoffs,
> u16 clkctrl_offs);
> -+extern int omap4_cminst_wait_module_idle(u8 part, u16 inst, s16 cdoffs,
> u16 clkctrl_offs);
> -
> - /*
> -  * In an ideal world, we would not export these low-level functions,
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index 00241ea..d21f49b 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -1102,6 +1102,36 @@ static int _wait_target_ready(struct
> omap_hwmod *oh)
> - }
> -
> - /**
> -+ * _wait_target_disable - wait for a module to be disabled
> -+ * @oh: struct omap_hwmod *
> -+ *
> -+ * Wait for a module @oh to enter slave idle.  Returns 0 if the module
> -+ * does not have an IDLEST bit or if the module successfully enters
> -+ * slave idle; otherwise, pass along the return value of the
> -+ * appropriate *_cm*_wait_module_idle() function.
> -+ */
> -+static int _wait_target_disable(struct omap_hwmod *oh)
> -+{
> -+	/* TODO: For now just handle OMAP4+ */
> -+	if (cpu_is_omap24xx() || cpu_is_omap34xx())
> -+		return 0;
> -+
> -+	if (!oh)
> -+		return -EINVAL;
> -+
> -+	if (oh->_int_flags & _HWMOD_NO_MPU_PORT)
> -+		return 0;
> -+
> -+	if (oh->flags & HWMOD_NO_IDLEST)
> -+		return 0;
> -+
> -+	return omap4_cminst_wait_module_idle(oh->clkdm->prcm_partition,
> -+					     oh->clkdm->cm_inst,
> -+					     oh->clkdm->clkdm_offs,
> -+					     oh->prcm.omap4.clkctrl_offs);
> -+}
> -+
> -+/**
> -  * _lookup_hardreset - fill register bit info for this hwmod/reset line
> -  * @oh: struct omap_hwmod *
> -  * @name: name of the reset line in the context of this hwmod
> -@@ -1410,6 +1440,8 @@ static int _enable(struct omap_hwmod *oh)
> -  */
> - static int _idle(struct omap_hwmod *oh)
> - {
> -+	int ret;
> -+
> - 	pr_debug("omap_hwmod: %s: idling\n", oh->name);
> -
> - 	if (oh->_state != _HWMOD_STATE_ENABLED) {
> -@@ -1422,6 +1454,10 @@ static int _idle(struct omap_hwmod *oh)
> - 		_idle_sysc(oh);
> - 	_del_initiator_dep(oh, mpu_oh);
> - 	_disable_clocks(oh);
> -+	ret = _wait_target_disable(oh);
> -+	if (ret)
> -+		pr_warn("omap_hwmod: %s: _wait_target_disable failed\n",
> -+			oh->name);
> -
> - 	/* Mux pins for device idle if populated */
> - 	if (oh->mux && oh->mux->pads_dynamic)
> -@@ -1514,6 +1550,10 @@ static int _shutdown(struct omap_hwmod *oh)
> - 		_del_initiator_dep(oh, mpu_oh);
> - 		/* XXX what about the other system initiators here? dma, dsp
> */
> - 		_disable_clocks(oh);
> -+		ret = _wait_target_disable(oh);
> -+		if (ret)
> -+			pr_warn("omap_hwmod: %s: _wait_target_disable
> failed\n",
> -+				oh->name);
> - 	}
> - 	/* XXX Should this code also force-disable the optional clocks? */
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0081-OMAP4-
> hwmod-Replace-RSTCTRL-absolute-address-with-of.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0081-OMAP4-hwmod-Replace-RSTCTRL-
> absolute-address-with-of.patch
> deleted file mode 100644
> index d354899..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0081-OMAP4-hwmod-
> Replace-RSTCTRL-absolute-address-with-of.patch
> +++ /dev/null
> @@ -1,459 +0,0 @@
> -From ab34edbd04746da7916e720ae1f07a981ab5a298 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:31 -0600
> -Subject: [PATCH 081/149] OMAP4: hwmod: Replace RSTCTRL absolute address
> with offset macros
> -
> -The RSTCTRL register was accessed using an absolute address.
> -The usage of hardcoded macros to calculate virtual address from physical
> -one should be avoided as much as possible.
> -The usage of an offset will allow future improvement like migration from
> -the current architecture code toward a module driver.
> -
> -Update prm_xxx accessors, move definition to the proper header file and
> -update copyrights.
> -Change the s16 register offset parameter to u16.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -[paul at pwsan.com: use '_prminst_' in function names that are part of the
> - prminst44xx.c file]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod.c             |   19 ++++--
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c   |   16 ++--
> - arch/arm/mach-omap2/prm44xx.c                |   93 +-------------------------
> - arch/arm/mach-omap2/prm44xx.h                |    4 -
> - arch/arm/mach-omap2/prminst44xx.c            |   93
> +++++++++++++++++++++++++-
> - arch/arm/mach-omap2/prminst44xx.h            |   10 +++-
> - arch/arm/plat-omap/include/plat/omap_hwmod.h |    3 +-
> - 7 files changed, 125 insertions(+), 113 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index d21f49b..a0f7d31 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -149,6 +149,7 @@
> - #include "cminst44xx.h"
> - #include "prm2xxx_3xxx.h"
> - #include "prm44xx.h"
> -+#include "prminst44xx.h"
> - #include "mux.h"
> -
> - /* Maximum microseconds to wait for OMAP module to softreset */
> -@@ -1187,8 +1188,10 @@ static int _assert_hardreset(struct omap_hwmod
> *oh, const char *name)
> - 		return omap2_prm_assert_hardreset(oh-
> >prcm.omap2.module_offs,
> - 						  ohri.rst_shift);
> - 	else if (cpu_is_omap44xx())
> --		return omap4_prm_assert_hardreset(oh-
> >prcm.omap4.rstctrl_reg,
> --						  ohri.rst_shift);
> -+		return omap4_prminst_assert_hardreset(ohri.rst_shift,
> -+				  oh->clkdm->pwrdm.ptr->prcm_partition,
> -+				  oh->clkdm->pwrdm.ptr->prcm_offs,
> -+				  oh->prcm.omap4.rstctrl_offs);
> - 	else
> - 		return -EINVAL;
> - }
> -@@ -1223,8 +1226,10 @@ static int _deassert_hardreset(struct
> omap_hwmod *oh, const char *name)
> - 		if (ohri.st_shift)
> - 			pr_err("omap_hwmod: %s: %s: hwmod data error:
> OMAP4 does not support st_shift\n",
> - 			       oh->name, name);
> --		ret = omap4_prm_deassert_hardreset(oh-
> >prcm.omap4.rstctrl_reg,
> --						   ohri.rst_shift);
> -+		ret = omap4_prminst_deassert_hardreset(ohri.rst_shift,
> -+				  oh->clkdm->pwrdm.ptr->prcm_partition,
> -+				  oh->clkdm->pwrdm.ptr->prcm_offs,
> -+				  oh->prcm.omap4.rstctrl_offs);
> - 	} else {
> - 		return -EINVAL;
> - 	}
> -@@ -1259,8 +1264,10 @@ static int _read_hardreset(struct omap_hwmod
> *oh, const char *name)
> - 		return omap2_prm_is_hardreset_asserted(oh-
> >prcm.omap2.module_offs,
> - 						       ohri.st_shift);
> - 	} else if (cpu_is_omap44xx()) {
> --		return omap4_prm_is_hardreset_asserted(oh-
> >prcm.omap4.rstctrl_reg,
> --						       ohri.rst_shift);
> -+		return omap4_prminst_is_hardreset_asserted(ohri.rst_shift,
> -+				  oh->clkdm->pwrdm.ptr->prcm_partition,
> -+				  oh->clkdm->pwrdm.ptr->prcm_offs,
> -+				  oh->prcm.omap4.rstctrl_offs);
> - 	} else {
> - 		return -EINVAL;
> - 	}
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index 00d7130..6a190f5 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -1144,7 +1144,7 @@ static struct omap_hwmod
> omap44xx_dsp_c0_hwmod = {
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_dsp_c0_resets),
> - 	.prcm = {
> - 		.omap4 = {
> --			.rstctrl_reg = OMAP4430_RM_TESLA_RSTCTRL,
> -+			.rstctrl_offs = OMAP4_RM_TESLA_RSTCTRL_OFFSET,
> - 		},
> - 	},
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -1161,7 +1161,7 @@ static struct omap_hwmod omap44xx_dsp_hwmod
> = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_TESLA_TESLA_CLKCTRL_OFFSET,
> --			.rstctrl_reg = OMAP4430_RM_TESLA_RSTCTRL,
> -+			.rstctrl_offs = OMAP4_RM_TESLA_RSTCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_dsp_slaves,
> -@@ -2526,7 +2526,7 @@ static struct omap_hwmod
> omap44xx_ipu_c0_hwmod = {
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_ipu_c0_resets),
> - 	.prcm = {
> - 		.omap4 = {
> --			.rstctrl_reg = OMAP4430_RM_DUCATI_RSTCTRL,
> -+			.rstctrl_offs = OMAP4_RM_DUCATI_RSTCTRL_OFFSET,
> - 		},
> - 	},
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -2542,7 +2542,7 @@ static struct omap_hwmod
> omap44xx_ipu_c1_hwmod = {
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_ipu_c1_resets),
> - 	.prcm = {
> - 		.omap4 = {
> --			.rstctrl_reg = OMAP4430_RM_DUCATI_RSTCTRL,
> -+			.rstctrl_offs = OMAP4_RM_DUCATI_RSTCTRL_OFFSET,
> - 		},
> - 	},
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -2559,7 +2559,7 @@ static struct omap_hwmod omap44xx_ipu_hwmod
> = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_DUCATI_DUCATI_CLKCTRL_OFFSET,
> --			.rstctrl_reg = OMAP4430_RM_DUCATI_RSTCTRL,
> -+			.rstctrl_offs = OMAP4_RM_DUCATI_RSTCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_ipu_slaves,
> -@@ -2726,7 +2726,7 @@ static struct omap_hwmod
> omap44xx_iva_seq0_hwmod = {
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_iva_seq0_resets),
> - 	.prcm = {
> - 		.omap4 = {
> --			.rstctrl_reg = OMAP4430_RM_IVAHD_RSTCTRL,
> -+			.rstctrl_offs = OMAP4_RM_IVAHD_RSTCTRL_OFFSET,
> - 		},
> - 	},
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -2742,7 +2742,7 @@ static struct omap_hwmod
> omap44xx_iva_seq1_hwmod = {
> - 	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_iva_seq1_resets),
> - 	.prcm = {
> - 		.omap4 = {
> --			.rstctrl_reg = OMAP4430_RM_IVAHD_RSTCTRL,
> -+			.rstctrl_offs = OMAP4_RM_IVAHD_RSTCTRL_OFFSET,
> - 		},
> - 	},
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -2759,7 +2759,7 @@ static struct omap_hwmod omap44xx_iva_hwmod
> = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_IVAHD_IVAHD_CLKCTRL_OFFSET,
> --			.rstctrl_reg = OMAP4430_RM_IVAHD_RSTCTRL,
> -+			.rstctrl_offs = OMAP4_RM_IVAHD_RSTCTRL_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_iva_slaves,
> -diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-
> omap2/prm44xx.c
> -index a2a04bf..faec860 100644
> ---- a/arch/arm/mach-omap2/prm44xx.c
> -+++ b/arch/arm/mach-omap2/prm44xx.c
> -@@ -1,7 +1,7 @@
> - /*
> -  * OMAP4 PRM module functions
> -  *
> -- * Copyright (C) 2010 Texas Instruments, Inc.
> -+ * Copyright (C) 2011 Texas Instruments, Inc.
> -  * Copyright (C) 2010 Nokia Corporation
> -  * Benoît Cousson
> -  * Paul Walmsley
> -@@ -24,12 +24,6 @@
> - #include "prm44xx.h"
> - #include "prm-regbits-44xx.h"
> -
> --/*
> -- * Address offset (in bytes) between the reset control and the reset
> -- * status registers: 4 bytes on OMAP4
> -- */
> --#define OMAP4_RST_CTRL_ST_OFFSET		4
> --
> - /* PRM low-level functions */
> -
> - /* Read a register in a CM/PRM instance in the PRM module */
> -@@ -94,91 +88,6 @@ u32 omap4_prm_clear_inst_reg_bits(u32 bits, s16 inst,
> s16 reg)
> - 	return omap4_prm_rmw_inst_reg_bits(bits, 0x0, inst, reg);
> - }
> -
> --/**
> -- * omap4_prm_is_hardreset_asserted - read the HW reset line state of
> -- * submodules contained in the hwmod module
> -- * @rstctrl_reg: RM_RSTCTRL register address for this module
> -- * @shift: register bit shift corresponding to the reset line to check
> -- *
> -- * Returns 1 if the (sub)module hardreset line is currently asserted,
> -- * 0 if the (sub)module hardreset line is not currently asserted, or
> -- * -EINVAL upon parameter error.
> -- */
> --int omap4_prm_is_hardreset_asserted(void __iomem *rstctrl_reg, u8 shift)
> --{
> --	if (!cpu_is_omap44xx() || !rstctrl_reg)
> --		return -EINVAL;
> --
> --	return omap4_prm_read_bits_shift(rstctrl_reg, (1 << shift));
> --}
> --
> --/**
> -- * omap4_prm_assert_hardreset - assert the HW reset line of a submodule
> -- * @rstctrl_reg: RM_RSTCTRL register address for this module
> -- * @shift: register bit shift corresponding to the reset line to assert
> -- *
> -- * Some IPs like dsp, ipu or iva contain processors that require an HW
> -- * reset line to be asserted / deasserted in order to fully enable the
> -- * IP.  These modules may have multiple hard-reset lines that reset
> -- * different 'submodules' inside the IP block.  This function will
> -- * place the submodule into reset.  Returns 0 upon success or -EINVAL
> -- * upon an argument error.
> -- */
> --int omap4_prm_assert_hardreset(void __iomem *rstctrl_reg, u8 shift)
> --{
> --	u32 mask;
> --
> --	if (!cpu_is_omap44xx() || !rstctrl_reg)
> --		return -EINVAL;
> --
> --	mask = 1 << shift;
> --	omap4_prm_rmw_reg_bits(mask, mask, rstctrl_reg);
> --
> --	return 0;
> --}
> --
> --/**
> -- * omap4_prm_deassert_hardreset - deassert a submodule hardreset line and
> wait
> -- * @rstctrl_reg: RM_RSTCTRL register address for this module
> -- * @shift: register bit shift corresponding to the reset line to deassert
> -- *
> -- * Some IPs like dsp, ipu or iva contain processors that require an HW
> -- * reset line to be asserted / deasserted in order to fully enable the
> -- * IP.  These modules may have multiple hard-reset lines that reset
> -- * different 'submodules' inside the IP block.  This function will
> -- * take the submodule out of reset and wait until the PRCM indicates
> -- * that the reset has completed before returning.  Returns 0 upon success or
> -- * -EINVAL upon an argument error, -EEXIST if the submodule was already out
> -- * of reset, or -EBUSY if the submodule did not exit reset promptly.
> -- */
> --int omap4_prm_deassert_hardreset(void __iomem *rstctrl_reg, u8 shift)
> --{
> --	u32 mask;
> --	void __iomem *rstst_reg;
> --	int c;
> --
> --	if (!cpu_is_omap44xx() || !rstctrl_reg)
> --		return -EINVAL;
> --
> --	rstst_reg = rstctrl_reg + OMAP4_RST_CTRL_ST_OFFSET;
> --
> --	mask = 1 << shift;
> --
> --	/* Check the current status to avoid de-asserting the line twice */
> --	if (omap4_prm_read_bits_shift(rstctrl_reg, mask) == 0)
> --		return -EEXIST;
> --
> --	/* Clear the reset status by writing 1 to the status bit */
> --	omap4_prm_rmw_reg_bits(0xffffffff, mask, rstst_reg);
> --	/* de-assert the reset control line */
> --	omap4_prm_rmw_reg_bits(mask, 0, rstctrl_reg);
> --	/* wait the status to be set */
> --	omap_test_timeout(omap4_prm_read_bits_shift(rstst_reg, mask),
> --			  MAX_MODULE_HARDRESET_WAIT, c);
> --
> --	return (c == MAX_MODULE_HARDRESET_WAIT) ? -EBUSY : 0;
> --}
> --
> - void omap4_prm_global_warm_sw_reset(void)
> - {
> - 	u32 v;
> -diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-
> omap2/prm44xx.h
> -index 6e53120..3732e02 100644
> ---- a/arch/arm/mach-omap2/prm44xx.h
> -+++ b/arch/arm/mach-omap2/prm44xx.h
> -@@ -755,10 +755,6 @@ extern u32 omap4_prm_set_inst_reg_bits(u32 bits,
> s16 inst, s16 idx);
> - extern u32 omap4_prm_clear_inst_reg_bits(u32 bits, s16 inst, s16 idx);
> - extern u32 omap4_prm_read_bits_shift(void __iomem *reg, u32 mask);
> -
> --extern int omap4_prm_is_hardreset_asserted(void __iomem *rstctrl_reg, u8
> shift);
> --extern int omap4_prm_assert_hardreset(void __iomem *rstctrl_reg, u8 shift);
> --extern int omap4_prm_deassert_hardreset(void __iomem *rstctrl_reg, u8
> shift);
> --
> - extern void omap4_prm_global_warm_sw_reset(void);
> -
> - # endif
> -diff --git a/arch/arm/mach-omap2/prminst44xx.c b/arch/arm/mach-
> omap2/prminst44xx.c
> -index a303242..35e02aa 100644
> ---- a/arch/arm/mach-omap2/prminst44xx.c
> -+++ b/arch/arm/mach-omap2/prminst44xx.c
> -@@ -2,6 +2,7 @@
> -  * OMAP4 PRM instance functions
> -  *
> -  * Copyright (C) 2009 Nokia Corporation
> -+ * Copyright (C) 2011 Texas Instruments, Inc.
> -  * Paul Walmsley
> -  *
> -  * This program is free software; you can redistribute it and/or modify
> -@@ -53,7 +54,7 @@ void omap4_prminst_write_inst_reg(u32 val, u8 part,
> s16 inst, u16 idx)
> -
> - /* Read-modify-write a register in PRM. Caller must lock */
> - u32 omap4_prminst_rmw_inst_reg_bits(u32 mask, u32 bits, u8 part, s16 inst,
> --				   s16 idx)
> -+				    u16 idx)
> - {
> - 	u32 v;
> -
> -@@ -64,3 +65,93 @@ u32 omap4_prminst_rmw_inst_reg_bits(u32 mask,
> u32 bits, u8 part, s16 inst,
> -
> - 	return v;
> - }
> -+
> -+/*
> -+ * Address offset (in bytes) between the reset control and the reset
> -+ * status registers: 4 bytes on OMAP4
> -+ */
> -+#define OMAP4_RST_CTRL_ST_OFFSET		4
> -+
> -+/**
> -+ * omap4_prminst_is_hardreset_asserted - read the HW reset line state of
> -+ * submodules contained in the hwmod module
> -+ * @rstctrl_reg: RM_RSTCTRL register address for this module
> -+ * @shift: register bit shift corresponding to the reset line to check
> -+ *
> -+ * Returns 1 if the (sub)module hardreset line is currently asserted,
> -+ * 0 if the (sub)module hardreset line is not currently asserted, or
> -+ * -EINVAL upon parameter error.
> -+ */
> -+int omap4_prminst_is_hardreset_asserted(u8 shift, u8 part, s16 inst,
> -+					u16 rstctrl_offs)
> -+{
> -+	u32 v;
> -+
> -+	v = omap4_prminst_read_inst_reg(part, inst, rstctrl_offs);
> -+	v &= 1 << shift;
> -+	v >>= shift;
> -+
> -+	return v;
> -+}
> -+
> -+/**
> -+ * omap4_prminst_assert_hardreset - assert the HW reset line of a submodule
> -+ * @rstctrl_reg: RM_RSTCTRL register address for this module
> -+ * @shift: register bit shift corresponding to the reset line to assert
> -+ *
> -+ * Some IPs like dsp, ipu or iva contain processors that require an HW
> -+ * reset line to be asserted / deasserted in order to fully enable the
> -+ * IP.  These modules may have multiple hard-reset lines that reset
> -+ * different 'submodules' inside the IP block.  This function will
> -+ * place the submodule into reset.  Returns 0 upon success or -EINVAL
> -+ * upon an argument error.
> -+ */
> -+int omap4_prminst_assert_hardreset(u8 shift, u8 part, s16 inst,
> -+				   u16 rstctrl_offs)
> -+{
> -+	u32 mask = 1 << shift;
> -+
> -+	omap4_prminst_rmw_inst_reg_bits(mask, mask, part, inst,
> rstctrl_offs);
> -+
> -+	return 0;
> -+}
> -+
> -+/**
> -+ * omap4_prminst_deassert_hardreset - deassert a submodule hardreset line
> and
> -+ * wait
> -+ * @rstctrl_reg: RM_RSTCTRL register address for this module
> -+ * @shift: register bit shift corresponding to the reset line to deassert
> -+ *
> -+ * Some IPs like dsp, ipu or iva contain processors that require an HW
> -+ * reset line to be asserted / deasserted in order to fully enable the
> -+ * IP.  These modules may have multiple hard-reset lines that reset
> -+ * different 'submodules' inside the IP block.  This function will
> -+ * take the submodule out of reset and wait until the PRCM indicates
> -+ * that the reset has completed before returning.  Returns 0 upon success or
> -+ * -EINVAL upon an argument error, -EEXIST if the submodule was already out
> -+ * of reset, or -EBUSY if the submodule did not exit reset promptly.
> -+ */
> -+int omap4_prminst_deassert_hardreset(u8 shift, u8 part, s16 inst,
> -+				     u16 rstctrl_offs)
> -+{
> -+	int c;
> -+	u32 mask = 1 << shift;
> -+	u16 rstst_offs = rstctrl_offs + OMAP4_RST_CTRL_ST_OFFSET;
> -+
> -+	/* Check the current status to avoid de-asserting the line twice */
> -+	if (omap4_prminst_is_hardreset_asserted(shift, part, inst,
> -+						rstctrl_offs) == 0)
> -+		return -EEXIST;
> -+
> -+	/* Clear the reset status by writing 1 to the status bit */
> -+	omap4_prminst_rmw_inst_reg_bits(0xffffffff, mask, part, inst,
> -+					rstst_offs);
> -+	/* de-assert the reset control line */
> -+	omap4_prminst_rmw_inst_reg_bits(mask, 0, part, inst, rstctrl_offs);
> -+	/* wait the status to be set */
> -+	omap_test_timeout(omap4_prminst_is_hardreset_asserted(shift, part,
> inst,
> -+							      rstst_offs),
> -+			  MAX_MODULE_HARDRESET_WAIT, c);
> -+
> -+	return (c == MAX_MODULE_HARDRESET_WAIT) ? -EBUSY : 0;
> -+}
> -diff --git a/arch/arm/mach-omap2/prminst44xx.h b/arch/arm/mach-
> omap2/prminst44xx.h
> -index 02dd66d..c14ae29 100644
> ---- a/arch/arm/mach-omap2/prminst44xx.h
> -+++ b/arch/arm/mach-omap2/prminst44xx.h
> -@@ -2,6 +2,7 @@
> -  * OMAP4 Power/Reset Management (PRM) function prototypes
> -  *
> -  * Copyright (C) 2010 Nokia Corporation
> -+ * Copyright (C) 2011 Texas Instruments, Inc.
> -  * Paul Walmsley
> -  *
> -  * This program is free software; you can redistribute it and/or modify
> -@@ -18,8 +19,15 @@
> - extern u32 omap4_prminst_read_inst_reg(u8 part, s16 inst, u16 idx);
> - extern void omap4_prminst_write_inst_reg(u32 val, u8 part, s16 inst, u16
> idx);
> - extern u32 omap4_prminst_rmw_inst_reg_bits(u32 mask, u32 bits, u8 part,
> --					   s16 inst, s16 idx);
> -+					   s16 inst, u16 idx);
> -
> - extern void omap4_prm_global_warm_sw_reset(void);
> -
> -+extern int omap4_prminst_is_hardreset_asserted(u8 shift, u8 part, s16 inst,
> -+					   u16 rstctrl_offs);
> -+extern int omap4_prminst_assert_hardreset(u8 shift, u8 part, s16 inst,
> -+				      u16 rstctrl_offs);
> -+extern int omap4_prminst_deassert_hardreset(u8 shift, u8 part, s16 inst,
> -+					u16 rstctrl_offs);
> -+
> - #endif
> -diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -index fc54355..9ef4424 100644
> ---- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -@@ -2,6 +2,7 @@
> -  * omap_hwmod macros, structures
> -  *
> -  * Copyright (C) 2009-2011 Nokia Corporation
> -+ * Copyright (C) 2011 Texas Instruments, Inc.
> -  * Paul Walmsley
> -  *
> -  * Created in collaboration with (alphabetical order): Benoît Cousson,
> -@@ -361,7 +362,7 @@ struct omap_hwmod_omap2_prcm {
> -  */
> - struct omap_hwmod_omap4_prcm {
> - 	u16		clkctrl_offs;
> --	void __iomem	*rstctrl_reg;
> -+	u16		rstctrl_offs;
> - 	u8		submodule_wkdep_bit;
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0082-OMAP4-prm-
> Replace-warm-reset-API-with-the-offset-bas.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0082-OMAP4-prm-Replace-warm-reset-API-with-the-
> offset-bas.patch
> deleted file mode 100644
> index 74c8414..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0082-OMAP4-prm-Replace-
> warm-reset-API-with-the-offset-bas.patch
> +++ /dev/null
> @@ -1,125 +0,0 @@
> -From 21fe73d93ffbba01a14a70664d4f79cb680d12c0 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:31 -0600
> -Subject: [PATCH 082/149] OMAP4: prm: Replace warm reset API with the
> offset based version
> -
> -The warm reset function was still using the obsolete API.
> -Replace it by the new one and move the file to the proper c file.
> -
> -Change the function names to stick to the file convention as
> -suggested by Paul Walmsley <paul at pwsan.com>:
> -prm_xxx -> prminst_xxx
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/prcm.c        |    2 +-
> - arch/arm/mach-omap2/prm44xx.c     |   15 ---------------
> - arch/arm/mach-omap2/prm44xx.h     |    2 --
> - arch/arm/mach-omap2/prminst44xx.c |   19 +++++++++++++++++++
> - arch/arm/mach-omap2/prminst44xx.h |    8 ++++----
> - 5 files changed, 24 insertions(+), 22 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c
> -index 6be1438..2e40a5c 100644
> ---- a/arch/arm/mach-omap2/prcm.c
> -+++ b/arch/arm/mach-omap2/prcm.c
> -@@ -70,7 +70,7 @@ static void omap_prcm_arch_reset(char mode, const
> char *cmd)
> - 		prcm_offs = OMAP3430_GR_MOD;
> - 		omap3_ctrl_write_boot_mode((cmd ? (u8)*cmd : 0));
> - 	} else if (cpu_is_omap44xx()) {
> --		omap4_prm_global_warm_sw_reset(); /* never returns */
> -+		omap4_prminst_global_warm_sw_reset(); /* never returns */
> - 	} else {
> - 		WARN_ON(1);
> - 	}
> -diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-
> omap2/prm44xx.c
> -index faec860..f815329 100644
> ---- a/arch/arm/mach-omap2/prm44xx.c
> -+++ b/arch/arm/mach-omap2/prm44xx.c
> -@@ -87,18 +87,3 @@ u32 omap4_prm_clear_inst_reg_bits(u32 bits, s16 inst,
> s16 reg)
> - {
> - 	return omap4_prm_rmw_inst_reg_bits(bits, 0x0, inst, reg);
> - }
> --
> --void omap4_prm_global_warm_sw_reset(void)
> --{
> --	u32 v;
> --
> --	v = omap4_prm_read_inst_reg(OMAP4430_PRM_DEVICE_INST,
> --				    OMAP4_RM_RSTCTRL);
> --	v |= OMAP4430_RST_GLOBAL_WARM_SW_MASK;
> --	omap4_prm_write_inst_reg(v, OMAP4430_PRM_DEVICE_INST,
> --				 OMAP4_RM_RSTCTRL);
> --
> --	/* OCP barrier */
> --	v = omap4_prm_read_inst_reg(OMAP4430_PRM_DEVICE_INST,
> --				    OMAP4_RM_RSTCTRL);
> --}
> -diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-
> omap2/prm44xx.h
> -index 3732e02..725a6a8 100644
> ---- a/arch/arm/mach-omap2/prm44xx.h
> -+++ b/arch/arm/mach-omap2/prm44xx.h
> -@@ -755,8 +755,6 @@ extern u32 omap4_prm_set_inst_reg_bits(u32 bits,
> s16 inst, s16 idx);
> - extern u32 omap4_prm_clear_inst_reg_bits(u32 bits, s16 inst, s16 idx);
> - extern u32 omap4_prm_read_bits_shift(void __iomem *reg, u32 mask);
> -
> --extern void omap4_prm_global_warm_sw_reset(void);
> --
> - # endif
> -
> - #endif
> -diff --git a/arch/arm/mach-omap2/prminst44xx.c b/arch/arm/mach-
> omap2/prminst44xx.c
> -index 35e02aa..3a7bab1 100644
> ---- a/arch/arm/mach-omap2/prminst44xx.c
> -+++ b/arch/arm/mach-omap2/prminst44xx.c
> -@@ -155,3 +155,22 @@ int omap4_prminst_deassert_hardreset(u8 shift, u8
> part, s16 inst,
> -
> - 	return (c == MAX_MODULE_HARDRESET_WAIT) ? -EBUSY : 0;
> - }
> -+
> -+
> -+void omap4_prminst_global_warm_sw_reset(void)
> -+{
> -+	u32 v;
> -+
> -+	v = omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
> -+				    OMAP4430_PRM_DEVICE_INST,
> -+				    OMAP4_PRM_RSTCTRL_OFFSET);
> -+	v |= OMAP4430_RST_GLOBAL_WARM_SW_MASK;
> -+	omap4_prminst_write_inst_reg(v, OMAP4430_PRM_PARTITION,
> -+				 OMAP4430_PRM_DEVICE_INST,
> -+				 OMAP4_PRM_RSTCTRL_OFFSET);
> -+
> -+	/* OCP barrier */
> -+	v = omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
> -+				    OMAP4430_PRM_DEVICE_INST,
> -+				    OMAP4_PRM_RSTCTRL_OFFSET);
> -+}
> -diff --git a/arch/arm/mach-omap2/prminst44xx.h b/arch/arm/mach-
> omap2/prminst44xx.h
> -index c14ae29..46f2efb 100644
> ---- a/arch/arm/mach-omap2/prminst44xx.h
> -+++ b/arch/arm/mach-omap2/prminst44xx.h
> -@@ -21,13 +21,13 @@ extern void omap4_prminst_write_inst_reg(u32 val,
> u8 part, s16 inst, u16 idx);
> - extern u32 omap4_prminst_rmw_inst_reg_bits(u32 mask, u32 bits, u8 part,
> - 					   s16 inst, u16 idx);
> -
> --extern void omap4_prm_global_warm_sw_reset(void);
> -+extern void omap4_prminst_global_warm_sw_reset(void);
> -
> - extern int omap4_prminst_is_hardreset_asserted(u8 shift, u8 part, s16 inst,
> --					   u16 rstctrl_offs);
> -+					       u16 rstctrl_offs);
> - extern int omap4_prminst_assert_hardreset(u8 shift, u8 part, s16 inst,
> --				      u16 rstctrl_offs);
> -+					  u16 rstctrl_offs);
> - extern int omap4_prminst_deassert_hardreset(u8 shift, u8 part, s16 inst,
> --					u16 rstctrl_offs);
> -+					    u16 rstctrl_offs);
> -
> - #endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0083-OMAP4-prm-
> Remove-deprecated-functions.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0083-OMAP4-prm-Remove-deprecated-functions.patch
> deleted file mode 100644
> index 403764f..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0083-OMAP4-prm-
> Remove-deprecated-functions.patch
> +++ /dev/null
> @@ -1,81 +0,0 @@
> -From fd94741b5ca1552a0c6e8c000f9f7530853862ea Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:31 -0600
> -Subject: [PATCH 083/149] OMAP4: prm: Remove deprecated functions
> -
> -The new prminst_xxx accessors based on partition and offset
> -is now used, so removed all the previous prcm_xxx accessors.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -[paul at pwsan.com: remove fn prototypes also]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/prm44xx.c |   37 -------------------------------------
> - arch/arm/mach-omap2/prm44xx.h |    4 ----
> - 2 files changed, 0 insertions(+), 41 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-
> omap2/prm44xx.c
> -index f815329..0016555 100644
> ---- a/arch/arm/mach-omap2/prm44xx.c
> -+++ b/arch/arm/mach-omap2/prm44xx.c
> -@@ -50,40 +50,3 @@ u32 omap4_prm_rmw_inst_reg_bits(u32 mask, u32
> bits, s16 inst, s16 reg)
> -
> - 	return v;
> - }
> --
> --/* Read a PRM register, AND it, and shift the result down to bit 0 */
> --/* XXX deprecated */
> --u32 omap4_prm_read_bits_shift(void __iomem *reg, u32 mask)
> --{
> --	u32 v;
> --
> --	v = __raw_readl(reg);
> --	v &= mask;
> --	v >>= __ffs(mask);
> --
> --	return v;
> --}
> --
> --/* Read-modify-write a register in a PRM module. Caller must lock */
> --/* XXX deprecated */
> --u32 omap4_prm_rmw_reg_bits(u32 mask, u32 bits, void __iomem *reg)
> --{
> --	u32 v;
> --
> --	v = __raw_readl(reg);
> --	v &= ~mask;
> --	v |= bits;
> --	__raw_writel(v, reg);
> --
> --	return v;
> --}
> --
> --u32 omap4_prm_set_inst_reg_bits(u32 bits, s16 inst, s16 reg)
> --{
> --	return omap4_prm_rmw_inst_reg_bits(bits, bits, inst, reg);
> --}
> --
> --u32 omap4_prm_clear_inst_reg_bits(u32 bits, s16 inst, s16 reg)
> --{
> --	return omap4_prm_rmw_inst_reg_bits(bits, 0x0, inst, reg);
> --}
> -diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-
> omap2/prm44xx.h
> -index 725a6a8..7dfa379 100644
> ---- a/arch/arm/mach-omap2/prm44xx.h
> -+++ b/arch/arm/mach-omap2/prm44xx.h
> -@@ -750,10 +750,6 @@
> - extern u32 omap4_prm_read_inst_reg(s16 inst, u16 idx);
> - extern void omap4_prm_write_inst_reg(u32 val, s16 inst, u16 idx);
> - extern u32 omap4_prm_rmw_inst_reg_bits(u32 mask, u32 bits, s16 inst, s16
> idx);
> --extern u32 omap4_prm_rmw_reg_bits(u32 mask, u32 bits, void __iomem
> *reg);
> --extern u32 omap4_prm_set_inst_reg_bits(u32 bits, s16 inst, s16 idx);
> --extern u32 omap4_prm_clear_inst_reg_bits(u32 bits, s16 inst, s16 idx);
> --extern u32 omap4_prm_read_bits_shift(void __iomem *reg, u32 mask);
> -
> - # endif
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0084-OMAP4-
> hwmod-data-Add-PRM-context-register-offset.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0084-OMAP4-hwmod-data-Add-PRM-
> context-register-offset.patch
> deleted file mode 100644
> index f4e1889..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0084-OMAP4-hwmod-
> data-Add-PRM-context-register-offset.patch
> +++ /dev/null
> @@ -1,630 +0,0 @@
> -From 77eafa703d62b15f2e1021beb2f5437b6b2764ed Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:32 -0600
> -Subject: [PATCH 084/149] OMAP4: hwmod data: Add PRM context register
> offset
> -
> -Add a 'context_offs' entry in the prcm.omap4 structure to all
> -IPs when applicable.
> -The offset will be used to retrieve the per module context lost
> -information now available on OMAP4.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c   |   74
> ++++++++++++++++++++++++++
> - arch/arm/plat-omap/include/plat/omap_hwmod.h |    1 +
> - 2 files changed, 75 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index 6a190f5..d68ef2c 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -127,6 +127,7 @@ static struct omap_hwmod omap44xx_dmm_hwmod
> = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_MEMIF_DMM_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_MEMIF_DMM_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_dmm_slaves,
> -@@ -183,6 +184,7 @@ static struct omap_hwmod
> omap44xx_emif_fw_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_MEMIF_EMIF_FW_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_MEMIF_EMIF_FW_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_emif_fw_slaves,
> -@@ -228,6 +230,7 @@ static struct omap_hwmod
> omap44xx_l3_instr_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3INSTR_L3_INSTR_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L3INSTR_L3_INSTR_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_l3_instr_slaves,
> -@@ -327,6 +330,7 @@ static struct omap_hwmod
> omap44xx_l3_main_1_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3_1_L3_1_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L3_1_L3_1_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_l3_main_1_slaves,
> -@@ -428,6 +432,7 @@ static struct omap_hwmod
> omap44xx_l3_main_2_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3_2_L3_2_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L3_2_L3_2_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_l3_main_2_slaves,
> -@@ -484,6 +489,7 @@ static struct omap_hwmod
> omap44xx_l3_main_3_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3INSTR_L3_3_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L3INSTR_L3_3_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_l3_main_3_slaves,
> -@@ -575,6 +581,7 @@ static struct omap_hwmod omap44xx_l4_cfg_hwmod
> = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4CFG_L4_CFG_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4CFG_L4_CFG_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_l4_cfg_slaves,
> -@@ -603,6 +610,7 @@ static struct omap_hwmod
> omap44xx_l4_per_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_L4PER_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_L4_PER_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_l4_per_slaves,
> -@@ -631,6 +639,7 @@ static struct omap_hwmod
> omap44xx_l4_wkup_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_WKUP_L4WKUP_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_WKUP_L4WKUP_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_l4_wkup_slaves,
> -@@ -809,6 +818,7 @@ static struct omap_hwmod omap44xx_aess_hwmod =
> {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_AESS_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ABE_AESS_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_aess_slaves,
> -@@ -899,6 +909,7 @@ static struct omap_hwmod
> omap44xx_counter_32k_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_WKUP_SYNCTIMER_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_WKUP_SYNCTIMER_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_counter_32k_slaves,
> -@@ -983,6 +994,7 @@ static struct omap_hwmod
> omap44xx_dma_system_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_SDMA_SDMA_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_SDMA_SDMA_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.dev_attr	= &dma_dev_attr,
> -@@ -1077,6 +1089,7 @@ static struct omap_hwmod
> omap44xx_dmic_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_DMIC_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ABE_DMIC_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_dmic_slaves,
> -@@ -1162,6 +1175,7 @@ static struct omap_hwmod omap44xx_dsp_hwmod
> = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_TESLA_TESLA_CLKCTRL_OFFSET,
> - 			.rstctrl_offs = OMAP4_RM_TESLA_RSTCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_TESLA_TESLA_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_dsp_slaves,
> -@@ -1250,6 +1264,7 @@ static struct omap_hwmod omap44xx_dss_hwmod
> = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= dss_opt_clks,
> -@@ -1354,6 +1369,7 @@ static struct omap_hwmod
> omap44xx_dss_dispc_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= dss_dispc_opt_clks,
> -@@ -1452,6 +1468,7 @@ static struct omap_hwmod
> omap44xx_dss_dsi1_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= dss_dsi1_opt_clks,
> -@@ -1529,6 +1546,7 @@ static struct omap_hwmod
> omap44xx_dss_dsi2_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= dss_dsi2_opt_clks,
> -@@ -1626,6 +1644,7 @@ static struct omap_hwmod
> omap44xx_dss_hdmi_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= dss_hdmi_opt_clks,
> -@@ -1717,6 +1736,7 @@ static struct omap_hwmod
> omap44xx_dss_rfbi_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= dss_rfbi_opt_clks,
> -@@ -1787,6 +1807,7 @@ static struct omap_hwmod
> omap44xx_dss_venc_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_dss_venc_slaves,
> -@@ -1866,6 +1887,7 @@ static struct omap_hwmod
> omap44xx_gpio1_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_WKUP_GPIO1_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_WKUP_GPIO1_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= gpio1_opt_clks,
> -@@ -1920,6 +1942,7 @@ static struct omap_hwmod
> omap44xx_gpio2_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO2_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_GPIO2_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= gpio2_opt_clks,
> -@@ -1974,6 +1997,7 @@ static struct omap_hwmod
> omap44xx_gpio3_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO3_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_GPIO3_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= gpio3_opt_clks,
> -@@ -2028,6 +2052,7 @@ static struct omap_hwmod
> omap44xx_gpio4_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO4_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_GPIO4_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= gpio4_opt_clks,
> -@@ -2082,6 +2107,7 @@ static struct omap_hwmod
> omap44xx_gpio5_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO5_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_GPIO5_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= gpio5_opt_clks,
> -@@ -2136,6 +2162,7 @@ static struct omap_hwmod
> omap44xx_gpio6_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO6_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_GPIO6_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= gpio6_opt_clks,
> -@@ -2215,6 +2242,7 @@ static struct omap_hwmod omap44xx_hsi_hwmod
> = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3INIT_HSI_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L3INIT_HSI_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_hsi_slaves,
> -@@ -2298,6 +2326,7 @@ static struct omap_hwmod
> omap44xx_i2c1_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_I2C1_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_I2C1_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_i2c1_slaves,
> -@@ -2353,6 +2382,7 @@ static struct omap_hwmod
> omap44xx_i2c2_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_I2C2_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_I2C2_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_i2c2_slaves,
> -@@ -2408,6 +2438,7 @@ static struct omap_hwmod
> omap44xx_i2c3_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_I2C3_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_I2C3_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_i2c3_slaves,
> -@@ -2463,6 +2494,7 @@ static struct omap_hwmod
> omap44xx_i2c4_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_I2C4_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_I2C4_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_i2c4_slaves,
> -@@ -2560,6 +2592,7 @@ static struct omap_hwmod omap44xx_ipu_hwmod
> = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_DUCATI_DUCATI_CLKCTRL_OFFSET,
> - 			.rstctrl_offs = OMAP4_RM_DUCATI_RSTCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_DUCATI_DUCATI_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_ipu_slaves,
> -@@ -2646,6 +2679,7 @@ static struct omap_hwmod omap44xx_iss_hwmod
> = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_CAM_ISS_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_CAM_ISS_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= iss_opt_clks,
> -@@ -2760,6 +2794,7 @@ static struct omap_hwmod omap44xx_iva_hwmod
> = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_IVAHD_IVAHD_CLKCTRL_OFFSET,
> - 			.rstctrl_offs = OMAP4_RM_IVAHD_RSTCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_IVAHD_IVAHD_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_iva_slaves,
> -@@ -2830,6 +2865,7 @@ static struct omap_hwmod
> omap44xx_kbd_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_WKUP_KEYBOARD_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_WKUP_KEYBOARD_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_kbd_slaves,
> -@@ -2895,6 +2931,7 @@ static struct omap_hwmod
> omap44xx_mailbox_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4CFG_MAILBOX_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4CFG_MAILBOX_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mailbox_slaves,
> -@@ -2988,6 +3025,7 @@ static struct omap_hwmod
> omap44xx_mcbsp1_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_MCBSP1_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ABE_MCBSP1_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcbsp1_slaves,
> -@@ -3062,6 +3100,7 @@ static struct omap_hwmod
> omap44xx_mcbsp2_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_MCBSP2_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ABE_MCBSP2_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcbsp2_slaves,
> -@@ -3136,6 +3175,7 @@ static struct omap_hwmod
> omap44xx_mcbsp3_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_MCBSP3_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ABE_MCBSP3_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcbsp3_slaves,
> -@@ -3189,6 +3229,7 @@ static struct omap_hwmod
> omap44xx_mcbsp4_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MCBSP4_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_MCBSP4_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcbsp4_slaves,
> -@@ -3282,6 +3323,7 @@ static struct omap_hwmod
> omap44xx_mcpdm_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_PDM_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ABE_PDM_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcpdm_slaves,
> -@@ -3368,6 +3410,7 @@ static struct omap_hwmod
> omap44xx_mcspi1_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MCSPI1_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_MCSPI1_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.dev_attr	= &mcspi1_dev_attr,
> -@@ -3429,6 +3472,7 @@ static struct omap_hwmod
> omap44xx_mcspi2_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MCSPI2_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_MCSPI2_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.dev_attr	= &mcspi2_dev_attr,
> -@@ -3490,6 +3534,7 @@ static struct omap_hwmod
> omap44xx_mcspi3_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MCSPI3_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_MCSPI3_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.dev_attr	= &mcspi3_dev_attr,
> -@@ -3549,6 +3594,7 @@ static struct omap_hwmod
> omap44xx_mcspi4_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MCSPI4_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_MCSPI4_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.dev_attr	= &mcspi4_dev_attr,
> -@@ -3634,6 +3680,7 @@ static struct omap_hwmod
> omap44xx_mmc1_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3INIT_MMC1_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L3INIT_MMC1_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.dev_attr	= &mmc1_dev_attr,
> -@@ -3694,6 +3741,7 @@ static struct omap_hwmod
> omap44xx_mmc2_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3INIT_MMC2_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L3INIT_MMC2_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mmc2_slaves,
> -@@ -3749,6 +3797,7 @@ static struct omap_hwmod
> omap44xx_mmc3_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MMCSD3_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_MMCSD3_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mmc3_slaves,
> -@@ -3803,6 +3852,7 @@ static struct omap_hwmod
> omap44xx_mmc4_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MMCSD4_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_MMCSD4_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mmc4_slaves,
> -@@ -3856,6 +3906,7 @@ static struct omap_hwmod
> omap44xx_mmc5_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MMCSD5_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_MMCSD5_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mmc5_slaves,
> -@@ -3897,6 +3948,7 @@ static struct omap_hwmod
> omap44xx_mpu_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_MPU_MPU_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_MPU_MPU_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.masters	= omap44xx_mpu_masters,
> -@@ -3971,6 +4023,7 @@ static struct omap_hwmod
> omap44xx_smartreflex_core_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_ALWON_SR_CORE_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ALWON_SR_CORE_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_smartreflex_core_slaves,
> -@@ -4018,6 +4071,7 @@ static struct omap_hwmod
> omap44xx_smartreflex_iva_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_ALWON_SR_IVA_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ALWON_SR_IVA_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_smartreflex_iva_slaves,
> -@@ -4065,6 +4119,7 @@ static struct omap_hwmod
> omap44xx_smartreflex_mpu_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_ALWON_SR_MPU_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ALWON_SR_MPU_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_smartreflex_mpu_slaves,
> -@@ -4127,6 +4182,7 @@ static struct omap_hwmod
> omap44xx_spinlock_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4CFG_HW_SEM_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4CFG_HW_SEM_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_spinlock_slaves,
> -@@ -4211,6 +4267,7 @@ static struct omap_hwmod
> omap44xx_timer1_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_WKUP_TIMER1_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_WKUP_TIMER1_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer1_slaves,
> -@@ -4257,6 +4314,7 @@ static struct omap_hwmod
> omap44xx_timer2_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER2_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_DMTIMER2_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer2_slaves,
> -@@ -4303,6 +4361,7 @@ static struct omap_hwmod
> omap44xx_timer3_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER3_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_DMTIMER3_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer3_slaves,
> -@@ -4349,6 +4408,7 @@ static struct omap_hwmod
> omap44xx_timer4_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER4_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_DMTIMER4_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer4_slaves,
> -@@ -4414,6 +4474,7 @@ static struct omap_hwmod
> omap44xx_timer5_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_TIMER5_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ABE_TIMER5_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer5_slaves,
> -@@ -4480,6 +4541,7 @@ static struct omap_hwmod
> omap44xx_timer6_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_TIMER6_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ABE_TIMER6_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer6_slaves,
> -@@ -4545,6 +4607,7 @@ static struct omap_hwmod
> omap44xx_timer7_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_TIMER7_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ABE_TIMER7_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer7_slaves,
> -@@ -4610,6 +4673,7 @@ static struct omap_hwmod
> omap44xx_timer8_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_TIMER8_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ABE_TIMER8_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer8_slaves,
> -@@ -4656,6 +4720,7 @@ static struct omap_hwmod
> omap44xx_timer9_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER9_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_DMTIMER9_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer9_slaves,
> -@@ -4702,6 +4767,7 @@ static struct omap_hwmod
> omap44xx_timer10_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER10_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_DMTIMER10_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer10_slaves,
> -@@ -4748,6 +4814,7 @@ static struct omap_hwmod
> omap44xx_timer11_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER11_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_DMTIMER11_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer11_slaves,
> -@@ -4823,6 +4890,7 @@ static struct omap_hwmod
> omap44xx_uart1_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_UART1_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_UART1_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_uart1_slaves,
> -@@ -4876,6 +4944,7 @@ static struct omap_hwmod
> omap44xx_uart2_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_UART2_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_UART2_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_uart2_slaves,
> -@@ -4930,6 +4999,7 @@ static struct omap_hwmod
> omap44xx_uart3_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_UART3_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_UART3_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_uart3_slaves,
> -@@ -4983,6 +5053,7 @@ static struct omap_hwmod
> omap44xx_uart4_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_UART4_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L4PER_UART4_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_uart4_slaves,
> -@@ -5062,6 +5133,7 @@ static struct omap_hwmod
> omap44xx_usb_otg_hs_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3INIT_USB_OTG_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_L3INIT_USB_OTG_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.opt_clks	= usb_otg_hs_opt_clks,
> -@@ -5135,6 +5207,7 @@ static struct omap_hwmod
> omap44xx_wd_timer2_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_WKUP_WDT2_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_WKUP_WDT2_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_wd_timer2_slaves,
> -@@ -5200,6 +5273,7 @@ static struct omap_hwmod
> omap44xx_wd_timer3_hwmod = {
> - 	.prcm = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_WDT3_CLKCTRL_OFFSET,
> -+			.context_offs =
> OMAP4_RM_ABE_WDT3_CONTEXT_OFFSET,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_wd_timer3_slaves,
> -diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -index 9ef4424..16439fa 100644
> ---- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -@@ -363,6 +363,7 @@ struct omap_hwmod_omap2_prcm {
> - struct omap_hwmod_omap4_prcm {
> - 	u16		clkctrl_offs;
> - 	u16		rstctrl_offs;
> -+	u16		context_offs;
> - 	u8		submodule_wkdep_bit;
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0085-OMAP4-
> hwmod-data-Add-modulemode-entry-in-omap_hwmod-.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0085-OMAP4-hwmod-data-Add-
> modulemode-entry-in-omap_hwmod-.patch
> deleted file mode 100644
> index c752359..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0085-OMAP4-hwmod-
> data-Add-modulemode-entry-in-omap_hwmod-.patch
> +++ /dev/null
> @@ -1,503 +0,0 @@
> -From be3f7a2833bf720dcb60b40675a790024995ac27 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:32 -0600
> -Subject: [PATCH 085/149] OMAP4: hwmod data: Add modulemode entry in
> omap_hwmod structure
> -
> -Add a new field to provide the mode supported by the module.
> -The mode will control the way mandatory clocks are managed by the PRCM.
> -
> -  0 : Module is temporarily disabled by SW. OCP access to module are stalled.
> -      Can be used to change timing parameter of GPMC module.
> -  1 : Module is managed automatically by HW according to clock domain
> -      transition. A clock domain sleep transition put module into idle.
> -      A wakeup domain transition put it back into function.
> -      If CLKTRCTRL=3, any OCP access to module is always granted.
> -      Module clocks may be gated according to the clock domain state.
> -  2 : Module is explicitly enabled. Interface clock (if not used for
> -      functions) may be gated according to the clock domain state.
> -      Functional clocks are guarantied to stay present. As long as
> -      in this configuration, power domain sleep transition cannot happen.
> -
> -Some modules will have a modulemode initialized at 1 (HWCTRL) by default.
> -This is the case for interconnect and simple module like GPIO, WDT, MAILBOX.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_44xx_data.c   |   55
> ++++++++++++++++++++++++++
> - arch/arm/plat-omap/include/plat/omap_hwmod.h |    6 +++
> - 2 files changed, 61 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -index d68ef2c..6201422 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> -@@ -231,6 +231,7 @@ static struct omap_hwmod
> omap44xx_l3_instr_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3INSTR_L3_INSTR_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L3INSTR_L3_INSTR_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_HWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_l3_instr_slaves,
> -@@ -490,6 +491,7 @@ static struct omap_hwmod
> omap44xx_l3_main_3_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3INSTR_L3_3_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L3INSTR_L3_3_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_HWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_l3_main_3_slaves,
> -@@ -819,6 +821,7 @@ static struct omap_hwmod omap44xx_aess_hwmod =
> {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_AESS_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ABE_AESS_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_aess_slaves,
> -@@ -1090,6 +1093,7 @@ static struct omap_hwmod
> omap44xx_dmic_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_DMIC_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ABE_DMIC_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_dmic_slaves,
> -@@ -1176,6 +1180,7 @@ static struct omap_hwmod omap44xx_dsp_hwmod
> = {
> - 			.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,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_dsp_slaves,
> -@@ -1888,6 +1893,7 @@ static struct omap_hwmod
> omap44xx_gpio1_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_WKUP_GPIO1_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_WKUP_GPIO1_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_HWCTRL,
> - 		},
> - 	},
> - 	.opt_clks	= gpio1_opt_clks,
> -@@ -1943,6 +1949,7 @@ static struct omap_hwmod
> omap44xx_gpio2_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO2_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_GPIO2_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_HWCTRL,
> - 		},
> - 	},
> - 	.opt_clks	= gpio2_opt_clks,
> -@@ -1998,6 +2005,7 @@ static struct omap_hwmod
> omap44xx_gpio3_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO3_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_GPIO3_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_HWCTRL,
> - 		},
> - 	},
> - 	.opt_clks	= gpio3_opt_clks,
> -@@ -2053,6 +2061,7 @@ static struct omap_hwmod
> omap44xx_gpio4_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO4_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_GPIO4_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_HWCTRL,
> - 		},
> - 	},
> - 	.opt_clks	= gpio4_opt_clks,
> -@@ -2108,6 +2117,7 @@ static struct omap_hwmod
> omap44xx_gpio5_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO5_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_GPIO5_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_HWCTRL,
> - 		},
> - 	},
> - 	.opt_clks	= gpio5_opt_clks,
> -@@ -2163,6 +2173,7 @@ static struct omap_hwmod
> omap44xx_gpio6_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_GPIO6_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_GPIO6_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_HWCTRL,
> - 		},
> - 	},
> - 	.opt_clks	= gpio6_opt_clks,
> -@@ -2243,6 +2254,7 @@ static struct omap_hwmod omap44xx_hsi_hwmod
> = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3INIT_HSI_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L3INIT_HSI_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_HWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_hsi_slaves,
> -@@ -2327,6 +2339,7 @@ static struct omap_hwmod
> omap44xx_i2c1_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_I2C1_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_I2C1_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_i2c1_slaves,
> -@@ -2383,6 +2396,7 @@ static struct omap_hwmod
> omap44xx_i2c2_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_I2C2_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_I2C2_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_i2c2_slaves,
> -@@ -2439,6 +2453,7 @@ static struct omap_hwmod
> omap44xx_i2c3_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_I2C3_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_I2C3_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_i2c3_slaves,
> -@@ -2495,6 +2510,7 @@ static struct omap_hwmod
> omap44xx_i2c4_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_I2C4_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_I2C4_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_i2c4_slaves,
> -@@ -2593,6 +2609,7 @@ static struct omap_hwmod omap44xx_ipu_hwmod
> = {
> - 			.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,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_ipu_slaves,
> -@@ -2680,6 +2697,7 @@ static struct omap_hwmod omap44xx_iss_hwmod
> = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_CAM_ISS_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_CAM_ISS_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.opt_clks	= iss_opt_clks,
> -@@ -2795,6 +2813,7 @@ static struct omap_hwmod omap44xx_iva_hwmod
> = {
> - 			.clkctrl_offs =
> OMAP4_CM_IVAHD_IVAHD_CLKCTRL_OFFSET,
> - 			.rstctrl_offs = OMAP4_RM_IVAHD_RSTCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_IVAHD_IVAHD_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_HWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_iva_slaves,
> -@@ -2866,6 +2885,7 @@ static struct omap_hwmod
> omap44xx_kbd_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_WKUP_KEYBOARD_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_WKUP_KEYBOARD_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_kbd_slaves,
> -@@ -3026,6 +3046,7 @@ static struct omap_hwmod
> omap44xx_mcbsp1_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_MCBSP1_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ABE_MCBSP1_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcbsp1_slaves,
> -@@ -3101,6 +3122,7 @@ static struct omap_hwmod
> omap44xx_mcbsp2_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_MCBSP2_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ABE_MCBSP2_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcbsp2_slaves,
> -@@ -3176,6 +3198,7 @@ static struct omap_hwmod
> omap44xx_mcbsp3_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_MCBSP3_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ABE_MCBSP3_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcbsp3_slaves,
> -@@ -3230,6 +3253,7 @@ static struct omap_hwmod
> omap44xx_mcbsp4_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MCBSP4_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_MCBSP4_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcbsp4_slaves,
> -@@ -3324,6 +3348,7 @@ static struct omap_hwmod
> omap44xx_mcpdm_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_PDM_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ABE_PDM_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mcpdm_slaves,
> -@@ -3411,6 +3436,7 @@ static struct omap_hwmod
> omap44xx_mcspi1_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MCSPI1_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_MCSPI1_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.dev_attr	= &mcspi1_dev_attr,
> -@@ -3473,6 +3499,7 @@ static struct omap_hwmod
> omap44xx_mcspi2_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MCSPI2_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_MCSPI2_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.dev_attr	= &mcspi2_dev_attr,
> -@@ -3535,6 +3562,7 @@ static struct omap_hwmod
> omap44xx_mcspi3_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MCSPI3_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_MCSPI3_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.dev_attr	= &mcspi3_dev_attr,
> -@@ -3595,6 +3623,7 @@ static struct omap_hwmod
> omap44xx_mcspi4_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MCSPI4_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_MCSPI4_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.dev_attr	= &mcspi4_dev_attr,
> -@@ -3681,6 +3710,7 @@ static struct omap_hwmod
> omap44xx_mmc1_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3INIT_MMC1_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L3INIT_MMC1_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.dev_attr	= &mmc1_dev_attr,
> -@@ -3742,6 +3772,7 @@ static struct omap_hwmod
> omap44xx_mmc2_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3INIT_MMC2_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L3INIT_MMC2_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mmc2_slaves,
> -@@ -3798,6 +3829,7 @@ static struct omap_hwmod
> omap44xx_mmc3_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MMCSD3_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_MMCSD3_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mmc3_slaves,
> -@@ -3853,6 +3885,7 @@ static struct omap_hwmod
> omap44xx_mmc4_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MMCSD4_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_MMCSD4_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mmc4_slaves,
> -@@ -3907,6 +3940,7 @@ static struct omap_hwmod
> omap44xx_mmc5_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_MMCSD5_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_MMCSD5_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_mmc5_slaves,
> -@@ -4024,6 +4058,7 @@ static struct omap_hwmod
> omap44xx_smartreflex_core_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_ALWON_SR_CORE_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ALWON_SR_CORE_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_smartreflex_core_slaves,
> -@@ -4072,6 +4107,7 @@ static struct omap_hwmod
> omap44xx_smartreflex_iva_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_ALWON_SR_IVA_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ALWON_SR_IVA_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_smartreflex_iva_slaves,
> -@@ -4120,6 +4156,7 @@ static struct omap_hwmod
> omap44xx_smartreflex_mpu_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_ALWON_SR_MPU_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ALWON_SR_MPU_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_smartreflex_mpu_slaves,
> -@@ -4268,6 +4305,7 @@ static struct omap_hwmod
> omap44xx_timer1_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_WKUP_TIMER1_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_WKUP_TIMER1_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer1_slaves,
> -@@ -4315,6 +4353,7 @@ static struct omap_hwmod
> omap44xx_timer2_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER2_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_DMTIMER2_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer2_slaves,
> -@@ -4362,6 +4401,7 @@ static struct omap_hwmod
> omap44xx_timer3_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER3_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_DMTIMER3_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer3_slaves,
> -@@ -4409,6 +4449,7 @@ static struct omap_hwmod
> omap44xx_timer4_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER4_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_DMTIMER4_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer4_slaves,
> -@@ -4475,6 +4516,7 @@ static struct omap_hwmod
> omap44xx_timer5_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_TIMER5_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ABE_TIMER5_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer5_slaves,
> -@@ -4542,6 +4584,7 @@ static struct omap_hwmod
> omap44xx_timer6_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_TIMER6_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ABE_TIMER6_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer6_slaves,
> -@@ -4608,6 +4651,7 @@ static struct omap_hwmod
> omap44xx_timer7_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_TIMER7_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ABE_TIMER7_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer7_slaves,
> -@@ -4674,6 +4718,7 @@ static struct omap_hwmod
> omap44xx_timer8_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_TIMER8_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ABE_TIMER8_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer8_slaves,
> -@@ -4721,6 +4766,7 @@ static struct omap_hwmod
> omap44xx_timer9_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER9_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_DMTIMER9_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer9_slaves,
> -@@ -4768,6 +4814,7 @@ static struct omap_hwmod
> omap44xx_timer10_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER10_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_DMTIMER10_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer10_slaves,
> -@@ -4815,6 +4862,7 @@ static struct omap_hwmod
> omap44xx_timer11_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_DMTIMER11_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_DMTIMER11_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_timer11_slaves,
> -@@ -4891,6 +4939,7 @@ static struct omap_hwmod
> omap44xx_uart1_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_UART1_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_UART1_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_uart1_slaves,
> -@@ -4945,6 +4994,7 @@ static struct omap_hwmod
> omap44xx_uart2_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_UART2_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_UART2_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_uart2_slaves,
> -@@ -5000,6 +5050,7 @@ static struct omap_hwmod
> omap44xx_uart3_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_UART3_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_UART3_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_uart3_slaves,
> -@@ -5054,6 +5105,7 @@ static struct omap_hwmod
> omap44xx_uart4_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L4PER_UART4_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L4PER_UART4_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_uart4_slaves,
> -@@ -5134,6 +5186,7 @@ static struct omap_hwmod
> omap44xx_usb_otg_hs_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_L3INIT_USB_OTG_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_L3INIT_USB_OTG_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_HWCTRL,
> - 		},
> - 	},
> - 	.opt_clks	= usb_otg_hs_opt_clks,
> -@@ -5208,6 +5261,7 @@ static struct omap_hwmod
> omap44xx_wd_timer2_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM_WKUP_WDT2_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_WKUP_WDT2_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_wd_timer2_slaves,
> -@@ -5274,6 +5328,7 @@ static struct omap_hwmod
> omap44xx_wd_timer3_hwmod = {
> - 		.omap4 = {
> - 			.clkctrl_offs =
> OMAP4_CM1_ABE_WDT3_CLKCTRL_OFFSET,
> - 			.context_offs =
> OMAP4_RM_ABE_WDT3_CONTEXT_OFFSET,
> -+			.modulemode   = MODULEMODE_SWCTRL,
> - 		},
> - 	},
> - 	.slaves		= omap44xx_wd_timer3_slaves,
> -diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -index 16439fa..0e329ca 100644
> ---- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -@@ -80,6 +80,11 @@ extern struct omap_hwmod_sysc_fields
> omap_hwmod_sysc_type2;
> - #define HWMOD_IDLEMODE_SMART		(1 << 2)
> - #define HWMOD_IDLEMODE_SMART_WKUP	(1 << 3)
> -
> -+/* modulemode control type (SW or HW) */
> -+#define MODULEMODE_HWCTRL		1
> -+#define MODULEMODE_SWCTRL		2
> -+
> -+
> - /**
> -  * struct omap_hwmod_mux_info - hwmod specific mux configuration
> -  * @pads:              array of omap_device_pad entries
> -@@ -365,6 +370,7 @@ struct omap_hwmod_omap4_prcm {
> - 	u16		rstctrl_offs;
> - 	u16		context_offs;
> - 	u8		submodule_wkdep_bit;
> -+	u8		modulemode;
> - };
> -
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0086-OMAP4-cm-
> Add-two-new-APIs-for-modulemode-control.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0086-OMAP4-cm-Add-two-new-APIs-for-modulemode-
> control.patch
> deleted file mode 100644
> index 86e8165..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0086-OMAP4-cm-Add-two-
> new-APIs-for-modulemode-control.patch
> +++ /dev/null
> @@ -1,88 +0,0 @@
> -From 3ef45618e396f3d9abb12fb4ef1c4462ccca6fd3 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:32 -0600
> -Subject: [PATCH 086/149] OMAP4: cm: Add two new APIs for modulemode
> control
> -
> -In OMAP4, a new programming model based on module control instead
> -of clock control was introduced.
> -Expose two APIs to allow the upper layer (omap_hwmod) to control
> -the module mode independently of the parent clocks management.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -[paul at pwsan.com: renamed 'omap4_cm_' fns to 'omap4_cminst_'; cleaned up
> - kerneldoc]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/cminst44xx.c |   40
> ++++++++++++++++++++++++++++++++++++++
> - arch/arm/mach-omap2/cminst44xx.h |    5 ++++
> - 2 files changed, 45 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/cminst44xx.c b/arch/arm/mach-
> omap2/cminst44xx.c
> -index 0fe3f14..eb2a472 100644
> ---- a/arch/arm/mach-omap2/cminst44xx.c
> -+++ b/arch/arm/mach-omap2/cminst44xx.c
> -@@ -309,3 +309,43 @@ int omap4_cminst_wait_module_idle(u8 part, u16
> inst, s16 cdoffs, u16 clkctrl_off
> -
> - 	return (i < MAX_MODULE_READY_TIME) ? 0 : -EBUSY;
> - }
> -+
> -+/**
> -+ * omap4_cminst_module_enable - Enable the modulemode inside CLKCTRL
> -+ * @mode: Module mode (SW or HW)
> -+ * @part: PRCM partition ID that the CM_CLKCTRL register exists in
> -+ * @inst: CM instance register offset (*_INST macro)
> -+ * @cdoffs: Clockdomain register offset (*_CDOFFS macro)
> -+ * @clkctrl_offs: Module clock control register offset (*_CLKCTRL macro)
> -+ *
> -+ * No return value.
> -+ */
> -+void omap4_cminst_module_enable(u8 mode, u8 part, u16 inst, s16 cdoffs,
> -+			    u16 clkctrl_offs)
> -+{
> -+	u32 v;
> -+
> -+	v = omap4_cminst_read_inst_reg(part, inst, clkctrl_offs);
> -+	v &= ~OMAP4430_MODULEMODE_MASK;
> -+	v |= mode << OMAP4430_MODULEMODE_SHIFT;
> -+	omap4_cminst_write_inst_reg(v, part, inst, clkctrl_offs);
> -+}
> -+
> -+/**
> -+ * omap4_cminst_module_disable - Disable the module inside CLKCTRL
> -+ * @part: PRCM partition ID that the CM_CLKCTRL register exists in
> -+ * @inst: CM instance register offset (*_INST macro)
> -+ * @cdoffs: Clockdomain register offset (*_CDOFFS macro)
> -+ * @clkctrl_offs: Module clock control register offset (*_CLKCTRL macro)
> -+ *
> -+ * No return value.
> -+ */
> -+void omap4_cminst_module_disable(u8 part, u16 inst, s16 cdoffs,
> -+			     u16 clkctrl_offs)
> -+{
> -+	u32 v;
> -+
> -+	v = omap4_cminst_read_inst_reg(part, inst, clkctrl_offs);
> -+	v &= ~OMAP4430_MODULEMODE_MASK;
> -+	omap4_cminst_write_inst_reg(v, part, inst, clkctrl_offs);
> -+}
> -diff --git a/arch/arm/mach-omap2/cminst44xx.h b/arch/arm/mach-
> omap2/cminst44xx.h
> -index a985400..f2ea645 100644
> ---- a/arch/arm/mach-omap2/cminst44xx.h
> -+++ b/arch/arm/mach-omap2/cminst44xx.h
> -@@ -20,6 +20,11 @@ extern void omap4_cminst_clkdm_force_wakeup(u8
> part, s16 inst, u16 cdoffs);
> - extern int omap4_cminst_wait_module_ready(u8 part, u16 inst, s16 cdoffs,
> u16 clkctrl_offs);
> - extern int omap4_cminst_wait_module_idle(u8 part, u16 inst, s16 cdoffs, u16
> clkctrl_offs);
> -
> -+extern void omap4_cminst_module_enable(u8 mode, u8 part, u16 inst, s16
> cdoffs,
> -+				       u16 clkctrl_offs);
> -+extern void omap4_cminst_module_disable(u8 part, u16 inst, s16 cdoffs,
> -+					u16 clkctrl_offs);
> -+
> - /*
> -  * In an ideal world, we would not export these low-level functions,
> -  * but this will probably take some time to fix properly
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0087-OMAP4-
> hwmod-Introduce-the-module-control-in-hwmod-co.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0087-OMAP4-hwmod-Introduce-the-
> module-control-in-hwmod-co.patch
> deleted file mode 100644
> index 30b978e..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0087-OMAP4-hwmod-
> Introduce-the-module-control-in-hwmod-co.patch
> +++ /dev/null
> @@ -1,129 +0,0 @@
> -From a6647b2c4e9c1786df8dcb59595c3029f5a9f493 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:33 -0600
> -Subject: [PATCH 087/149] OMAP4: hwmod: Introduce the module control in
> hwmod control
> -
> -Take advantage of the explicit modulemode control to fix
> -the way parents clocks are managed.
> -A module must be disabled before any parents are disabled.
> -That programming model was not possible with the previous
> -implementation that was considering a modulemode as a leaf
> -clock node managed by the clock fmwk.
> -This was leading to bad crash upon disable when the parent
> -clock was gated before the module completed its transition
> -to idle.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod.c |   63
> ++++++++++++++++++++++++++++++++++++-
> - 1 files changed, 61 insertions(+), 2 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index a0f7d31..4424fee 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -680,6 +680,56 @@ static void _disable_optional_clocks(struct
> omap_hwmod *oh)
> - }
> -
> - /**
> -+ * _enable_module - enable CLKCTRL modulemode on OMAP4
> -+ * @oh: struct omap_hwmod *
> -+ *
> -+ * Enables the PRCM module mode related to the hwmod @oh.
> -+ * No return value.
> -+ */
> -+static void _enable_module(struct omap_hwmod *oh)
> -+{
> -+	/* The module mode does not exist prior OMAP4 */
> -+	if (cpu_is_omap24xx() || cpu_is_omap34xx())
> -+		return;
> -+
> -+	if (!oh->clkdm || !oh->prcm.omap4.modulemode)
> -+		return;
> -+
> -+	pr_debug("omap_hwmod: %s: _enable_module: %d\n",
> -+		 oh->name, oh->prcm.omap4.modulemode);
> -+
> -+	omap4_cminst_module_enable(oh->prcm.omap4.modulemode,
> -+				   oh->clkdm->prcm_partition,
> -+				   oh->clkdm->cm_inst,
> -+				   oh->clkdm->clkdm_offs,
> -+				   oh->prcm.omap4.clkctrl_offs);
> -+}
> -+
> -+/**
> -+ * _disable_module - enable CLKCTRL modulemode on OMAP4
> -+ * @oh: struct omap_hwmod *
> -+ *
> -+ * Disable the PRCM module mode related to the hwmod @oh.
> -+ * No return value.
> -+ */
> -+static void _disable_module(struct omap_hwmod *oh)
> -+{
> -+	/* The module mode does not exist prior OMAP4 */
> -+	if (cpu_is_omap24xx() || cpu_is_omap34xx())
> -+		return;
> -+
> -+	if (!oh->clkdm || !oh->prcm.omap4.modulemode)
> -+		return;
> -+
> -+	pr_debug("omap_hwmod: %s: _disable_module\n", oh->name);
> -+
> -+	omap4_cminst_module_disable(oh->clkdm->prcm_partition,
> -+				    oh->clkdm->cm_inst,
> -+				    oh->clkdm->clkdm_offs,
> -+				    oh->prcm.omap4.clkctrl_offs);
> -+}
> -+
> -+/**
> -  * _count_mpu_irqs - count the number of MPU IRQ lines associated with @oh
> -  * @oh: struct omap_hwmod *oh
> -  *
> -@@ -1424,6 +1474,7 @@ static int _enable(struct omap_hwmod *oh)
> -
> - 		return r;
> - 	}
> -+	_enable_module(oh);
> -
> - 	oh->_state = _HWMOD_STATE_ENABLED;
> -
> -@@ -1460,11 +1511,18 @@ static int _idle(struct omap_hwmod *oh)
> - 	if (oh->class->sysc)
> - 		_idle_sysc(oh);
> - 	_del_initiator_dep(oh, mpu_oh);
> --	_disable_clocks(oh);
> -+	_disable_module(oh);
> - 	ret = _wait_target_disable(oh);
> - 	if (ret)
> - 		pr_warn("omap_hwmod: %s: _wait_target_disable failed\n",
> - 			oh->name);
> -+	/*
> -+	 * The module must be in idle mode before disabling any parents
> -+	 * clocks. Otherwise, the parent clock might be disabled before
> -+	 * the module transition is done, and thus will prevent the
> -+	 * transition to complete properly.
> -+	 */
> -+	_disable_clocks(oh);
> -
> - 	/* Mux pins for device idle if populated */
> - 	if (oh->mux && oh->mux->pads_dynamic)
> -@@ -1556,11 +1614,12 @@ static int _shutdown(struct omap_hwmod *oh)
> - 	if (oh->_state == _HWMOD_STATE_ENABLED) {
> - 		_del_initiator_dep(oh, mpu_oh);
> - 		/* XXX what about the other system initiators here? dma, dsp
> */
> --		_disable_clocks(oh);
> -+		_disable_module(oh);
> - 		ret = _wait_target_disable(oh);
> - 		if (ret)
> - 			pr_warn("omap_hwmod: %s: _wait_target_disable
> failed\n",
> - 				oh->name);
> -+		_disable_clocks(oh);
> - 	}
> - 	/* XXX Should this code also force-disable the optional clocks? */
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0088-OMAP-
> clockdomain-Remove-redundant-call-to-pwrdm_wait.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0088-OMAP-clockdomain-Remove-
> redundant-call-to-pwrdm_wait.patch
> deleted file mode 100644
> index 9958651..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0088-OMAP-clockdomain-
> Remove-redundant-call-to-pwrdm_wait.patch
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -From 376dd007bae9fdcad06c5231c05ab2ca92639579 Mon Sep 17 00:00:00
> 2001
> -From: Vaibhav Bedia <vaibhav.bedia at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:53 -0600
> -Subject: [PATCH 088/149] OMAP: clockdomain: Remove redundant call to
> pwrdm_wait_transition()
> -
> -The call to pwrdm_wait_transition() in clkdm_clk_enable()
> -is redundant since the function pwrdm_clkdm_state_switch()
> -which is called next also does the same thing.
> -
> -Signed-off-by: Vaibhav Bedia <vaibhav.bedia at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clockdomain.c |    1 -
> - 1 files changed, 0 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-
> omap2/clockdomain.c
> -index 6cb6c03..4fbbbfc 100644
> ---- a/arch/arm/mach-omap2/clockdomain.c
> -+++ b/arch/arm/mach-omap2/clockdomain.c
> -@@ -834,7 +834,6 @@ int clkdm_clk_enable(struct clockdomain *clkdm,
> struct clk *clk)
> - 		 clk->name);
> -
> - 	arch_clkdm->clkdm_clk_enable(clkdm);
> --	pwrdm_wait_transition(clkdm->pwrdm.ptr);
> - 	pwrdm_clkdm_state_switch(clkdm);
> -
> - 	return 0;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0089-OMAP2-
> clockdomain-Add-2-APIs-to-control-clockdomain-.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0089-OMAP2-clockdomain-Add-2-APIs-
> to-control-clockdomain-.patch
> deleted file mode 100644
> index 3d47851..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0089-OMAP2-clockdomain-
> Add-2-APIs-to-control-clockdomain-.patch
> +++ /dev/null
> @@ -1,231 +0,0 @@
> -From 4cf6b3a535c5e63c4808733c170a68990e45afa2 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:54 -0600
> -Subject: [PATCH 089/149] OMAP2+: clockdomain: Add 2 APIs to control
> clockdomain from hwmod framework
> -
> -Duplicate the existing API for clockdomain enable from clock to enable
> -a clock domain from hwmod framework.
> -This will be needed when the hwmod framework will move from the current
> -clock centric approach to the module based approach.
> -
> -These APIs are returning 0 for the moment for OMAP2 and OMAP3 until
> -their hwmods are updated with the clksm attribute.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Kevin Hilman <khilman at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clockdomain.c |  142
> +++++++++++++++++++++++++++---------
> - arch/arm/mach-omap2/clockdomain.h |    3 +
> - 2 files changed, 109 insertions(+), 36 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-
> omap2/clockdomain.c
> -index 4fbbbfc..5a57de5 100644
> ---- a/arch/arm/mach-omap2/clockdomain.c
> -+++ b/arch/arm/mach-omap2/clockdomain.c
> -@@ -796,7 +796,50 @@ void clkdm_deny_idle(struct clockdomain *clkdm)
> - }
> -
> -
> --/* Clockdomain-to-clock framework interface code */
> -+/* Clockdomain-to-clock/hwmod framework interface code */
> -+
> -+static int _clkdm_clk_hwmod_enable(struct clockdomain *clkdm)
> -+{
> -+	if (!clkdm || !arch_clkdm || !arch_clkdm->clkdm_clk_enable)
> -+		return -EINVAL;
> -+
> -+	/*
> -+	 * For arch's with no autodeps, clkcm_clk_enable
> -+	 * should be called for every clock instance or hwmod that is
> -+	 * enabled, so the clkdm can be force woken up.
> -+	 */
> -+	if ((atomic_inc_return(&clkdm->usecount) > 1) && autodeps)
> -+		return 0;
> -+
> -+	arch_clkdm->clkdm_clk_enable(clkdm);
> -+	pwrdm_wait_transition(clkdm->pwrdm.ptr);
> -+	pwrdm_clkdm_state_switch(clkdm);
> -+
> -+	pr_debug("clockdomain: clkdm %s: enabled\n", clkdm->name);
> -+
> -+	return 0;
> -+}
> -+
> -+static int _clkdm_clk_hwmod_disable(struct clockdomain *clkdm)
> -+{
> -+	if (!clkdm || !arch_clkdm || !arch_clkdm->clkdm_clk_disable)
> -+		return -EINVAL;
> -+
> -+	if (atomic_read(&clkdm->usecount) == 0) {
> -+		WARN_ON(1); /* underflow */
> -+		return -ERANGE;
> -+	}
> -+
> -+	if (atomic_dec_return(&clkdm->usecount) > 0)
> -+		return 0;
> -+
> -+	arch_clkdm->clkdm_clk_disable(clkdm);
> -+	pwrdm_clkdm_state_switch(clkdm);
> -+
> -+	pr_debug("clockdomain: clkdm %s: disabled\n", clkdm->name);
> -+
> -+	return 0;
> -+}
> -
> - /**
> -  * clkdm_clk_enable - add an enabled downstream clock to this clkdm
> -@@ -819,24 +862,10 @@ int clkdm_clk_enable(struct clockdomain *clkdm,
> struct clk *clk)
> - 	 * downstream clocks for debugging purposes?
> - 	 */
> -
> --	if (!clkdm || !clk)
> -+	if (!clk)
> - 		return -EINVAL;
> -
> --	if (!arch_clkdm || !arch_clkdm->clkdm_clk_enable)
> --		return -EINVAL;
> --
> --	if (atomic_inc_return(&clkdm->usecount) > 1)
> --		return 0;
> --
> --	/* Clockdomain now has one enabled downstream clock */
> --
> --	pr_debug("clockdomain: clkdm %s: clk %s now enabled\n", clkdm-
> >name,
> --		 clk->name);
> --
> --	arch_clkdm->clkdm_clk_enable(clkdm);
> --	pwrdm_clkdm_state_switch(clkdm);
> --
> --	return 0;
> -+	return _clkdm_clk_hwmod_enable(clkdm);
> - }
> -
> - /**
> -@@ -849,9 +878,8 @@ int clkdm_clk_enable(struct clockdomain *clkdm,
> struct clk *clk)
> -  * clockdomain usecount goes to 0, put the clockdomain to sleep
> -  * (software-supervised mode) or remove the clkdm autodependencies
> -  * (hardware-supervised mode).  Returns -EINVAL if passed null
> -- * pointers; -ERANGE if the @clkdm usecount underflows and debugging
> -- * is enabled; or returns 0 upon success or if the clockdomain is in
> -- * hwsup idle mode.
> -+ * pointers; -ERANGE if the @clkdm usecount underflows; or returns 0
> -+ * upon success or if the clockdomain is in hwsup idle mode.
> -  */
> - int clkdm_clk_disable(struct clockdomain *clkdm, struct clk *clk)
> - {
> -@@ -860,30 +888,72 @@ int clkdm_clk_disable(struct clockdomain *clkdm,
> struct clk *clk)
> - 	 * downstream clocks for debugging purposes?
> - 	 */
> -
> --	if (!clkdm || !clk)
> -+	if (!clk)
> - 		return -EINVAL;
> -
> --	if (!arch_clkdm || !arch_clkdm->clkdm_clk_disable)
> -+	return _clkdm_clk_hwmod_disable(clkdm);
> -+}
> -+
> -+/**
> -+ * clkdm_hwmod_enable - add an enabled downstream hwmod to this clkdm
> -+ * @clkdm: struct clockdomain *
> -+ * @oh: struct omap_hwmod * of the enabled downstream hwmod
> -+ *
> -+ * Increment the usecount of the clockdomain @clkdm and ensure that it
> -+ * is awake before @oh is enabled. Intended to be called by
> -+ * module_enable() code.
> -+ * If the clockdomain is in software-supervised idle mode, force the
> -+ * clockdomain to wake.  If the clockdomain is in hardware-supervised idle
> -+ * mode, add clkdm-pwrdm autodependencies, to ensure that devices in the
> -+ * clockdomain can be read from/written to by on-chip processors.
> -+ * Returns -EINVAL if passed null pointers;
> -+ * returns 0 upon success or if the clockdomain is in hwsup idle mode.
> -+ */
> -+int clkdm_hwmod_enable(struct clockdomain *clkdm, struct omap_hwmod
> *oh)
> -+{
> -+	/* The clkdm attribute does not exist yet prior OMAP4 */
> -+	if (cpu_is_omap24xx() || cpu_is_omap34xx())
> -+		return 0;
> -+
> -+	/*
> -+	 * XXX Rewrite this code to maintain a list of enabled
> -+	 * downstream hwmods for debugging purposes?
> -+	 */
> -+
> -+	if (!oh)
> - 		return -EINVAL;
> -
> --#ifdef DEBUG
> --	if (atomic_read(&clkdm->usecount) == 0) {
> --		WARN_ON(1); /* underflow */
> --		return -ERANGE;
> --	}
> --#endif
> -+	return _clkdm_clk_hwmod_enable(clkdm);
> -+}
> -
> --	if (atomic_dec_return(&clkdm->usecount) > 0)
> -+/**
> -+ * clkdm_hwmod_disable - remove an enabled downstream hwmod from this
> clkdm
> -+ * @clkdm: struct clockdomain *
> -+ * @oh: struct omap_hwmod * of the disabled downstream hwmod
> -+ *
> -+ * Decrement the usecount of this clockdomain @clkdm when @oh is
> -+ * disabled. Intended to be called by module_disable() code.
> -+ * If the clockdomain usecount goes to 0, put the clockdomain to sleep
> -+ * (software-supervised mode) or remove the clkdm autodependencies
> -+ * (hardware-supervised mode).
> -+ * Returns -EINVAL if passed null pointers; -ERANGE if the @clkdm usecount
> -+ * underflows; or returns 0 upon success or if the clockdomain is in hwsup
> -+ * idle mode.
> -+ */
> -+int clkdm_hwmod_disable(struct clockdomain *clkdm, struct omap_hwmod
> *oh)
> -+{
> -+	/* The clkdm attribute does not exist yet prior OMAP4 */
> -+	if (cpu_is_omap24xx() || cpu_is_omap34xx())
> - 		return 0;
> -
> --	/* All downstream clocks of this clockdomain are now disabled */
> --
> --	pr_debug("clockdomain: clkdm %s: clk %s now disabled\n", clkdm-
> >name,
> --		 clk->name);
> -+	/*
> -+	 * XXX Rewrite this code to maintain a list of enabled
> -+	 * downstream hwmods for debugging purposes?
> -+	 */
> -
> --	arch_clkdm->clkdm_clk_disable(clkdm);
> --	pwrdm_clkdm_state_switch(clkdm);
> -+	if (!oh)
> -+		return -EINVAL;
> -
> --	return 0;
> -+	return _clkdm_clk_hwmod_disable(clkdm);
> - }
> -
> -diff --git a/arch/arm/mach-omap2/clockdomain.h b/arch/arm/mach-
> omap2/clockdomain.h
> -index 5823584..8e0da64 100644
> ---- a/arch/arm/mach-omap2/clockdomain.h
> -+++ b/arch/arm/mach-omap2/clockdomain.h
> -@@ -20,6 +20,7 @@
> -
> - #include "powerdomain.h"
> - #include <plat/clock.h>
> -+#include <plat/omap_hwmod.h>
> - #include <plat/cpu.h>
> -
> - /*
> -@@ -183,6 +184,8 @@ int clkdm_sleep(struct clockdomain *clkdm);
> -
> - int clkdm_clk_enable(struct clockdomain *clkdm, struct clk *clk);
> - int clkdm_clk_disable(struct clockdomain *clkdm, struct clk *clk);
> -+int clkdm_hwmod_enable(struct clockdomain *clkdm, struct omap_hwmod
> *oh);
> -+int clkdm_hwmod_disable(struct clockdomain *clkdm, struct omap_hwmod
> *oh);
> -
> - extern void __init omap2xxx_clockdomains_init(void);
> - extern void __init omap3xxx_clockdomains_init(void);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0090-OMAP2-
> clockdomain-add-clkdm_in_hwsup.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0090-OMAP2-clockdomain-add-clkdm_in_hwsup.patch
> deleted file mode 100644
> index edbaf6d..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0090-OMAP2-clockdomain-
> add-clkdm_in_hwsup.patch
> +++ /dev/null
> @@ -1,141 +0,0 @@
> -From b1090dd5eb9e242f8426169718fd7241c025c1a2 Mon Sep 17 00:00:00
> 2001
> -From: Paul Walmsley <paul at pwsan.com>
> -Date: Sun, 10 Jul 2011 05:56:54 -0600
> -Subject: [PATCH 090/149] OMAP2+: clockdomain: add clkdm_in_hwsup()
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -Add a new function, clkdm_in_hwsup(), that returns true if a clockdomain
> -is configured for hardware-supervised idle.  It does not actually read the
> -hardware; rather, it checks an internal flag in the struct clockdomain, which
> -is changed when the clockdomain is switched in and out of hardware-
> supervised
> -idle.  This should be safe, since all changes to the idle mode should
> -pass through the clockdomain code.
> -
> -Based on a set of patches by Rajendra Nayak <rnayak at ti.com> which do
> -the same thing by checking the hardware bits.  This approach should be
> -faster and more compact.
> -
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> -Cc: Todd Poynor <toddpoynor at google.com>
> -Cc: Benoît Cousson <b-cousson at ti.com>
> ----
> - arch/arm/mach-omap2/clockdomain.c |   30
> ++++++++++++++++++++++++++++--
> - arch/arm/mach-omap2/clockdomain.h |    6 ++++++
> - 2 files changed, 34 insertions(+), 2 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-
> omap2/clockdomain.c
> -index 5a57de5..239b558 100644
> ---- a/arch/arm/mach-omap2/clockdomain.c
> -+++ b/arch/arm/mach-omap2/clockdomain.c
> -@@ -1,8 +1,8 @@
> - /*
> -  * OMAP2/3/4 clockdomain framework functions
> -  *
> -- * Copyright (C) 2008-2010 Texas Instruments, Inc.
> -- * Copyright (C) 2008-2010 Nokia Corporation
> -+ * Copyright (C) 2008-2011 Texas Instruments, Inc.
> -+ * Copyright (C) 2008-2011 Nokia Corporation
> -  *
> -  * Written by Paul Walmsley and Jouni Högander
> -  * Added OMAP4 specific support by Abhijit Pagare <abhijitpagare at ti.com>
> -@@ -704,6 +704,8 @@ int clkdm_sleep(struct clockdomain *clkdm)
> -
> - 	pr_debug("clockdomain: forcing sleep on %s\n", clkdm->name);
> -
> -+	clkdm->_flags &= ~_CLKDM_FLAG_HWSUP_ENABLED;
> -+
> - 	return arch_clkdm->clkdm_sleep(clkdm);
> - }
> -
> -@@ -732,6 +734,8 @@ int clkdm_wakeup(struct clockdomain *clkdm)
> -
> - 	pr_debug("clockdomain: forcing wakeup on %s\n", clkdm->name);
> -
> -+	clkdm->_flags &= ~_CLKDM_FLAG_HWSUP_ENABLED;
> -+
> - 	return arch_clkdm->clkdm_wakeup(clkdm);
> - }
> -
> -@@ -762,6 +766,8 @@ void clkdm_allow_idle(struct clockdomain *clkdm)
> - 	pr_debug("clockdomain: enabling automatic idle transitions for %s\n",
> - 		 clkdm->name);
> -
> -+	clkdm->_flags |= _CLKDM_FLAG_HWSUP_ENABLED;
> -+
> - 	arch_clkdm->clkdm_allow_idle(clkdm);
> - 	pwrdm_clkdm_state_switch(clkdm);
> - }
> -@@ -792,9 +798,29 @@ void clkdm_deny_idle(struct clockdomain *clkdm)
> - 	pr_debug("clockdomain: disabling automatic idle transitions for %s\n",
> - 		 clkdm->name);
> -
> -+	clkdm->_flags &= ~_CLKDM_FLAG_HWSUP_ENABLED;
> -+
> - 	arch_clkdm->clkdm_deny_idle(clkdm);
> - }
> -
> -+/**
> -+ * clkdm_in_hwsup - is clockdomain @clkdm have hardware-supervised idle
> enabled?
> -+ * @clkdm: struct clockdomain *
> -+ *
> -+ * Returns true if clockdomain @clkdm currently has
> -+ * hardware-supervised idle enabled, or false if it does not or if
> -+ * @clkdm is NULL.  It is only valid to call this function after
> -+ * clkdm_init() has been called.  This function does not actually read
> -+ * bits from the hardware; it instead tests an in-memory flag that is
> -+ * changed whenever the clockdomain code changes the auto-idle mode.
> -+ */
> -+bool clkdm_in_hwsup(struct clockdomain *clkdm)
> -+{
> -+	if (!clkdm)
> -+		return false;
> -+
> -+	return (clkdm->_flags & _CLKDM_FLAG_HWSUP_ENABLED) ? true :
> false;
> -+}
> -
> - /* Clockdomain-to-clock/hwmod framework interface code */
> -
> -diff --git a/arch/arm/mach-omap2/clockdomain.h b/arch/arm/mach-
> omap2/clockdomain.h
> -index 8e0da64..8782a5c 100644
> ---- a/arch/arm/mach-omap2/clockdomain.h
> -+++ b/arch/arm/mach-omap2/clockdomain.h
> -@@ -83,6 +83,9 @@ struct clkdm_dep {
> - 	const struct omap_chip_id omap_chip;
> - };
> -
> -+/* Possible flags for struct clockdomain._flags */
> -+#define _CLKDM_FLAG_HWSUP_ENABLED		BIT(0)
> -+
> - /**
> -  * struct clockdomain - OMAP clockdomain
> -  * @name: clockdomain name
> -@@ -90,6 +93,7 @@ struct clkdm_dep {
> -  * @clktrctrl_reg: CLKSTCTRL reg for the given clock domain
> -  * @clktrctrl_mask: CLKTRCTRL/AUTOSTATE field mask in CM_CLKSTCTRL reg
> -  * @flags: Clockdomain capability flags
> -+ * @_flags: Flags for use only by internal clockdomain code
> -  * @dep_bit: Bit shift of this clockdomain's PM_WKDEP/CM_SLEEPDEP bit
> -  * @prcm_partition: (OMAP4 only) PRCM partition ID for this clkdm's registers
> -  * @cm_inst: (OMAP4 only) CM instance register offset
> -@@ -114,6 +118,7 @@ struct clockdomain {
> - 	} pwrdm;
> - 	const u16 clktrctrl_mask;
> - 	const u8 flags;
> -+	u8 _flags;
> - 	const u8 dep_bit;
> - 	const u8 prcm_partition;
> - 	const s16 cm_inst;
> -@@ -178,6 +183,7 @@ int clkdm_clear_all_sleepdeps(struct clockdomain
> *clkdm);
> -
> - void clkdm_allow_idle(struct clockdomain *clkdm);
> - void clkdm_deny_idle(struct clockdomain *clkdm);
> -+bool clkdm_in_hwsup(struct clockdomain *clkdm);
> -
> - int clkdm_wakeup(struct clockdomain *clkdm);
> - int clkdm_sleep(struct clockdomain *clkdm);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0091-OMAP2-PM-
> idle-clkdms-only-if-already-in-idle.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0091-OMAP2-PM-idle-clkdms-only-if-already-in-idle.patch
> deleted file mode 100644
> index 91d4e67..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0091-OMAP2-PM-idle-
> clkdms-only-if-already-in-idle.patch
> +++ /dev/null
> @@ -1,53 +0,0 @@
> -From bc09c0fe93e874df8fcfd68f31302330646cbf24 Mon Sep 17 00:00:00
> 2001
> -From: Rajendra Nayak <rnayak at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:54 -0600
> -Subject: [PATCH 091/149] OMAP2+: PM: idle clkdms only if already in idle
> -
> -The omap_set_pwrdm_state function forces clockdomains
> -to idle, without checking the existing idle state
> -programmed, instead based solely on the HW capability
> -of the clockdomain to support idle.
> -This is wrong and the clockdomains should be idled
> -post a state_switch *only* if idle transitions on the
> -clockdomain were already enabled.
> -
> -Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Acked-by: Kevin Hilman <khilman at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/pm.c |    4 +++-
> - 1 files changed, 3 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
> -index d48813f..3feb359 100644
> ---- a/arch/arm/mach-omap2/pm.c
> -+++ b/arch/arm/mach-omap2/pm.c
> -@@ -108,6 +108,7 @@ int omap_set_pwrdm_state(struct powerdomain
> *pwrdm, u32 state)
> - 	u32 cur_state;
> - 	int sleep_switch = -1;
> - 	int ret = 0;
> -+	int hwsup = 0;
> -
> - 	if (pwrdm == NULL || IS_ERR(pwrdm))
> - 		return -EINVAL;
> -@@ -127,6 +128,7 @@ int omap_set_pwrdm_state(struct powerdomain
> *pwrdm, u32 state)
> - 			(pwrdm->flags &
> PWRDM_HAS_LOWPOWERSTATECHANGE)) {
> - 			sleep_switch = LOWPOWERSTATE_SWITCH;
> - 		} else {
> -+			hwsup = clkdm_in_hwsup(pwrdm-
> >pwrdm_clkdms[0]);
> - 			clkdm_wakeup(pwrdm->pwrdm_clkdms[0]);
> - 			pwrdm_wait_transition(pwrdm);
> - 			sleep_switch = FORCEWAKEUP_SWITCH;
> -@@ -142,7 +144,7 @@ int omap_set_pwrdm_state(struct powerdomain
> *pwrdm, u32 state)
> -
> - 	switch (sleep_switch) {
> - 	case FORCEWAKEUP_SWITCH:
> --		if (pwrdm->pwrdm_clkdms[0]->flags &
> CLKDM_CAN_ENABLE_AUTO)
> -+		if (hwsup)
> - 			clkdm_allow_idle(pwrdm->pwrdm_clkdms[0]);
> - 		else
> - 			clkdm_sleep(pwrdm->pwrdm_clkdms[0]);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0092-OMAP2-
> clockdomain-Add-per-clkdm-lock-to-prevent-conc.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0092-OMAP2-clockdomain-Add-per-
> clkdm-lock-to-prevent-conc.patch
> deleted file mode 100644
> index d5c7deb..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0092-OMAP2-clockdomain-
> Add-per-clkdm-lock-to-prevent-conc.patch
> +++ /dev/null
> @@ -1,264 +0,0 @@
> -From 9dbc6c631f27b1e6ed6b058b8d3e57b2398b2d3b Mon Sep 17 00:00:00
> 2001
> -From: Rajendra Nayak <rnayak at ti.com>
> -Date: Sun, 10 Jul 2011 05:56:55 -0600
> -Subject: [PATCH 092/149] OMAP2+: clockdomain: Add per clkdm lock to
> prevent concurrent state programming
> -
> -Since the clkdm state programming is now done from within the hwmod
> -framework (which uses a per-hwmod lock) instead of the being done
> -from the clock framework (which used a global lock), there is now a
> -need to have per-clkdm locking to prevent races between different
> -hwmods/modules belonging to the same clock domain concurrently
> -programming the clkdm state.
> -
> -Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clockdomain.c          |   47
> +++++++++++++++++++++++----
> - arch/arm/mach-omap2/clockdomain.h          |    2 +
> - arch/arm/mach-omap2/clockdomain2xxx_3xxx.c |    6 ++-
> - arch/arm/mach-omap2/clockdomain44xx.c      |   13 ++-----
> - 4 files changed, 50 insertions(+), 18 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-
> omap2/clockdomain.c
> -index 239b558..ab7db08 100644
> ---- a/arch/arm/mach-omap2/clockdomain.c
> -+++ b/arch/arm/mach-omap2/clockdomain.c
> -@@ -92,6 +92,8 @@ static int _clkdm_register(struct clockdomain *clkdm)
> -
> - 	pwrdm_add_clkdm(pwrdm, clkdm);
> -
> -+	spin_lock_init(&clkdm->lock);
> -+
> - 	pr_debug("clockdomain: registered %s\n", clkdm->name);
> -
> - 	return 0;
> -@@ -690,6 +692,9 @@ int clkdm_clear_all_sleepdeps(struct clockdomain
> *clkdm)
> -  */
> - int clkdm_sleep(struct clockdomain *clkdm)
> - {
> -+	int ret;
> -+	unsigned long flags;
> -+
> - 	if (!clkdm)
> - 		return -EINVAL;
> -
> -@@ -704,9 +709,11 @@ int clkdm_sleep(struct clockdomain *clkdm)
> -
> - 	pr_debug("clockdomain: forcing sleep on %s\n", clkdm->name);
> -
> -+	spin_lock_irqsave(&clkdm->lock, flags);
> - 	clkdm->_flags &= ~_CLKDM_FLAG_HWSUP_ENABLED;
> --
> --	return arch_clkdm->clkdm_sleep(clkdm);
> -+	ret = arch_clkdm->clkdm_sleep(clkdm);
> -+	spin_unlock_irqrestore(&clkdm->lock, flags);
> -+	return ret;
> - }
> -
> - /**
> -@@ -720,6 +727,9 @@ int clkdm_sleep(struct clockdomain *clkdm)
> -  */
> - int clkdm_wakeup(struct clockdomain *clkdm)
> - {
> -+	int ret;
> -+	unsigned long flags;
> -+
> - 	if (!clkdm)
> - 		return -EINVAL;
> -
> -@@ -734,9 +744,11 @@ int clkdm_wakeup(struct clockdomain *clkdm)
> -
> - 	pr_debug("clockdomain: forcing wakeup on %s\n", clkdm->name);
> -
> -+	spin_lock_irqsave(&clkdm->lock, flags);
> - 	clkdm->_flags &= ~_CLKDM_FLAG_HWSUP_ENABLED;
> --
> --	return arch_clkdm->clkdm_wakeup(clkdm);
> -+	ret = arch_clkdm->clkdm_wakeup(clkdm);
> -+	spin_unlock_irqrestore(&clkdm->lock, flags);
> -+	return ret;
> - }
> -
> - /**
> -@@ -751,6 +763,8 @@ int clkdm_wakeup(struct clockdomain *clkdm)
> -  */
> - void clkdm_allow_idle(struct clockdomain *clkdm)
> - {
> -+	unsigned long flags;
> -+
> - 	if (!clkdm)
> - 		return;
> -
> -@@ -766,10 +780,11 @@ void clkdm_allow_idle(struct clockdomain *clkdm)
> - 	pr_debug("clockdomain: enabling automatic idle transitions for %s\n",
> - 		 clkdm->name);
> -
> -+	spin_lock_irqsave(&clkdm->lock, flags);
> - 	clkdm->_flags |= _CLKDM_FLAG_HWSUP_ENABLED;
> --
> - 	arch_clkdm->clkdm_allow_idle(clkdm);
> - 	pwrdm_clkdm_state_switch(clkdm);
> -+	spin_unlock_irqrestore(&clkdm->lock, flags);
> - }
> -
> - /**
> -@@ -783,6 +798,8 @@ void clkdm_allow_idle(struct clockdomain *clkdm)
> -  */
> - void clkdm_deny_idle(struct clockdomain *clkdm)
> - {
> -+	unsigned long flags;
> -+
> - 	if (!clkdm)
> - 		return;
> -
> -@@ -798,9 +815,10 @@ void clkdm_deny_idle(struct clockdomain *clkdm)
> - 	pr_debug("clockdomain: disabling automatic idle transitions for %s\n",
> - 		 clkdm->name);
> -
> -+	spin_lock_irqsave(&clkdm->lock, flags);
> - 	clkdm->_flags &= ~_CLKDM_FLAG_HWSUP_ENABLED;
> --
> - 	arch_clkdm->clkdm_deny_idle(clkdm);
> -+	spin_unlock_irqrestore(&clkdm->lock, flags);
> - }
> -
> - /**
> -@@ -816,16 +834,25 @@ void clkdm_deny_idle(struct clockdomain *clkdm)
> -  */
> - bool clkdm_in_hwsup(struct clockdomain *clkdm)
> - {
> -+	bool ret;
> -+	unsigned long flags;
> -+
> - 	if (!clkdm)
> - 		return false;
> -
> --	return (clkdm->_flags & _CLKDM_FLAG_HWSUP_ENABLED) ? true :
> false;
> -+	spin_lock_irqsave(&clkdm->lock, flags);
> -+	ret = (clkdm->_flags & _CLKDM_FLAG_HWSUP_ENABLED) ? true : false;
> -+	spin_unlock_irqrestore(&clkdm->lock, flags);
> -+
> -+	return ret;
> - }
> -
> - /* Clockdomain-to-clock/hwmod framework interface code */
> -
> - static int _clkdm_clk_hwmod_enable(struct clockdomain *clkdm)
> - {
> -+	unsigned long flags;
> -+
> - 	if (!clkdm || !arch_clkdm || !arch_clkdm->clkdm_clk_enable)
> - 		return -EINVAL;
> -
> -@@ -837,9 +864,11 @@ static int _clkdm_clk_hwmod_enable(struct
> clockdomain *clkdm)
> - 	if ((atomic_inc_return(&clkdm->usecount) > 1) && autodeps)
> - 		return 0;
> -
> -+	spin_lock_irqsave(&clkdm->lock, flags);
> - 	arch_clkdm->clkdm_clk_enable(clkdm);
> - 	pwrdm_wait_transition(clkdm->pwrdm.ptr);
> - 	pwrdm_clkdm_state_switch(clkdm);
> -+	spin_unlock_irqrestore(&clkdm->lock, flags);
> -
> - 	pr_debug("clockdomain: clkdm %s: enabled\n", clkdm->name);
> -
> -@@ -848,6 +877,8 @@ static int _clkdm_clk_hwmod_enable(struct
> clockdomain *clkdm)
> -
> - static int _clkdm_clk_hwmod_disable(struct clockdomain *clkdm)
> - {
> -+	unsigned long flags;
> -+
> - 	if (!clkdm || !arch_clkdm || !arch_clkdm->clkdm_clk_disable)
> - 		return -EINVAL;
> -
> -@@ -859,8 +890,10 @@ static int _clkdm_clk_hwmod_disable(struct
> clockdomain *clkdm)
> - 	if (atomic_dec_return(&clkdm->usecount) > 0)
> - 		return 0;
> -
> -+	spin_lock_irqsave(&clkdm->lock, flags);
> - 	arch_clkdm->clkdm_clk_disable(clkdm);
> - 	pwrdm_clkdm_state_switch(clkdm);
> -+	spin_unlock_irqrestore(&clkdm->lock, flags);
> -
> - 	pr_debug("clockdomain: clkdm %s: disabled\n", clkdm->name);
> -
> -diff --git a/arch/arm/mach-omap2/clockdomain.h b/arch/arm/mach-
> omap2/clockdomain.h
> -index 8782a5c..1e50c88 100644
> ---- a/arch/arm/mach-omap2/clockdomain.h
> -+++ b/arch/arm/mach-omap2/clockdomain.h
> -@@ -17,6 +17,7 @@
> - #define __ARCH_ARM_MACH_OMAP2_CLOCKDOMAIN_H
> -
> - #include <linux/init.h>
> -+#include <linux/spinlock.h>
> -
> - #include "powerdomain.h"
> - #include <plat/clock.h>
> -@@ -128,6 +129,7 @@ struct clockdomain {
> - 	const struct omap_chip_id omap_chip;
> - 	atomic_t usecount;
> - 	struct list_head node;
> -+	spinlock_t lock;
> - };
> -
> - /**
> -diff --git a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c b/arch/arm/mach-
> omap2/clockdomain2xxx_3xxx.c
> -index 48d0db7..f740edb 100644
> ---- a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c
> -+++ b/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c
> -@@ -183,7 +183,8 @@ static int omap2_clkdm_clk_enable(struct
> clockdomain *clkdm)
> - 		_clkdm_add_autodeps(clkdm);
> - 		_enable_hwsup(clkdm);
> - 	} else {
> --		clkdm_wakeup(clkdm);
> -+		if (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP)
> -+			omap2_clkdm_wakeup(clkdm);
> - 	}
> -
> - 	return 0;
> -@@ -205,7 +206,8 @@ static int omap2_clkdm_clk_disable(struct
> clockdomain *clkdm)
> - 		_clkdm_del_autodeps(clkdm);
> - 		_enable_hwsup(clkdm);
> - 	} else {
> --		clkdm_sleep(clkdm);
> -+		if (clkdm->flags & CLKDM_CAN_FORCE_SLEEP)
> -+			omap2_clkdm_sleep(clkdm);
> - 	}
> -
> - 	return 0;
> -diff --git a/arch/arm/mach-omap2/clockdomain44xx.c b/arch/arm/mach-
> omap2/clockdomain44xx.c
> -index a1a4ecd..b43706a 100644
> ---- a/arch/arm/mach-omap2/clockdomain44xx.c
> -+++ b/arch/arm/mach-omap2/clockdomain44xx.c
> -@@ -95,13 +95,8 @@ static void omap4_clkdm_deny_idle(struct
> clockdomain *clkdm)
> -
> - static int omap4_clkdm_clk_enable(struct clockdomain *clkdm)
> - {
> --	bool hwsup = false;
> --
> --	hwsup = omap4_cminst_is_clkdm_in_hwsup(clkdm->prcm_partition,
> --					clkdm->cm_inst, clkdm->clkdm_offs);
> --
> --	if (!hwsup)
> --		clkdm_wakeup(clkdm);
> -+	if (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP)
> -+		return omap4_clkdm_wakeup(clkdm);
> -
> - 	return 0;
> - }
> -@@ -113,8 +108,8 @@ static int omap4_clkdm_clk_disable(struct
> clockdomain *clkdm)
> - 	hwsup = omap4_cminst_is_clkdm_in_hwsup(clkdm->prcm_partition,
> - 					clkdm->cm_inst, clkdm->clkdm_offs);
> -
> --	if (!hwsup)
> --		clkdm_sleep(clkdm);
> -+	if (!hwsup && (clkdm->flags & CLKDM_CAN_FORCE_SLEEP))
> -+		omap4_clkdm_sleep(clkdm);
> -
> - 	return 0;
> - }
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0093-OMAP2-clock-
> allow-per-SoC-clock-init-code-to-prevent.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0093-OMAP2-clock-allow-per-SoC-clock-init-code-to-
> prevent.patch
> deleted file mode 100644
> index 3870fd3..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0093-OMAP2-clock-allow-
> per-SoC-clock-init-code-to-prevent.patch
> +++ /dev/null
> @@ -1,123 +0,0 @@
> -From 7d9356a5f4f67150d793d6be8592ea23b0692d81 Mon Sep 17 00:00:00
> 2001
> -From: Paul Walmsley <paul at pwsan.com>
> -Date: Sun, 10 Jul 2011 05:57:06 -0600
> -Subject: [PATCH 093/149] OMAP2+: clock: allow per-SoC clock init code to
> prevent clockdomain calls from clock code
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -The OMAP2/3 clock code was written to notify the clockdomain code when
> -the first clock in a clockdomain is enabled and when the last enabled
> -clock in a clockdomain is disabled.  OMAP4 requires a different
> -approach: the hwmod code needs to signal the clockdomain code when to
> -force-enable and auto-idle a clockdomain during the IP block enable
> -process.  The current conjecture is that once that hwmod sequence is
> -implemented, it will no longer be necessary for the clock code to call
> -into the clockdomain code for "optional clocks" on OMAP4.
> -
> -Add a static flag to the OMAP2+ clock code, clkdm_control, that by
> -default preserves the OMAP2/3 behavior.  Also add a function,
> -omap2_clk_disable_clkdm_control(), intended to be called from OMAP4
> -and beyond clock initcalls, that disables the old behavior.
> -
> -Part of this patch was originally based on a patch by Rajendra Nayak
> -<rnayak at ti.com>.
> -
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> -Cc: Benoît Cousson <b-cousson at ti.com>
> -Cc: Rajendra Nayak <rnayak at ti.com>
> ----
> - arch/arm/mach-omap2/clock.c |   27 ++++++++++++++++++++++++---
> - arch/arm/mach-omap2/clock.h |    3 +++
> - 2 files changed, 27 insertions(+), 3 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
> -index 180299e..fc84576 100644
> ---- a/arch/arm/mach-omap2/clock.c
> -+++ b/arch/arm/mach-omap2/clock.c
> -@@ -38,6 +38,14 @@
> - u8 cpu_mask;
> -
> - /*
> -+ * clkdm_control: if true, then when a clock is enabled in the
> -+ * hardware, its clockdomain will first be enabled; and when a clock
> -+ * is disabled in the hardware, its clockdomain will be disabled
> -+ * afterwards.
> -+ */
> -+static bool clkdm_control = true;
> -+
> -+/*
> -  * OMAP2+ specific clock functions
> -  */
> -
> -@@ -100,6 +108,19 @@ void omap2_init_clk_clkdm(struct clk *clk)
> - }
> -
> - /**
> -+ * omap2_clk_disable_clkdm_control - disable clkdm control on clk
> enable/disable
> -+ *
> -+ * Prevent the OMAP clock code from calling into the clockdomain code
> -+ * when a hardware clock in that clockdomain is enabled or disabled.
> -+ * Intended to be called at init time from omap*_clk_init().  No
> -+ * return value.
> -+ */
> -+void __init omap2_clk_disable_clkdm_control(void)
> -+{
> -+	clkdm_control = false;
> -+}
> -+
> -+/**
> -  * omap2_clk_dflt_find_companion - find companion clock to @clk
> -  * @clk: struct clk * to find the companion clock of
> -  * @other_reg: void __iomem ** to return the companion clock CM_*CLKEN
> va in
> -@@ -268,7 +289,7 @@ void omap2_clk_disable(struct clk *clk)
> - 		clk->ops->disable(clk);
> - 	}
> -
> --	if (clk->clkdm)
> -+	if (clkdm_control && clk->clkdm)
> - 		clkdm_clk_disable(clk->clkdm, clk);
> -
> - 	if (clk->parent)
> -@@ -308,7 +329,7 @@ int omap2_clk_enable(struct clk *clk)
> - 		}
> - 	}
> -
> --	if (clk->clkdm) {
> -+	if (clkdm_control && clk->clkdm) {
> - 		ret = clkdm_clk_enable(clk->clkdm, clk);
> - 		if (ret) {
> - 			WARN(1, "clock: %s: could not enable clockdomain %s:
> "
> -@@ -330,7 +351,7 @@ int omap2_clk_enable(struct clk *clk)
> - 	return 0;
> -
> - oce_err3:
> --	if (clk->clkdm)
> -+	if (clkdm_control && clk->clkdm)
> - 		clkdm_clk_disable(clk->clkdm, clk);
> - oce_err2:
> - 	if (clk->parent)
> -diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h
> -index e10ff2b..48ac568 100644
> ---- a/arch/arm/mach-omap2/clock.h
> -+++ b/arch/arm/mach-omap2/clock.h
> -@@ -16,6 +16,8 @@
> - #ifndef __ARCH_ARM_MACH_OMAP2_CLOCK_H
> - #define __ARCH_ARM_MACH_OMAP2_CLOCK_H
> -
> -+#include <linux/kernel.h>
> -+
> - #include <plat/clock.h>
> -
> - /* CM_CLKSEL2_PLL.CORE_CLK_SRC bits (2XXX) */
> -@@ -72,6 +74,7 @@ void omap2_clk_disable_unused(struct clk *clk);
> - #endif
> -
> - void omap2_init_clk_clkdm(struct clk *clk);
> -+void __init omap2_clk_disable_clkdm_control(void);
> -
> - /* clkt_clksel.c public functions */
> - u32 omap2_clksel_round_rate_div(struct clk *clk, unsigned long target_rate,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0094-OMAP2-
> hwmod-Follow-the-recommended-PRCM-module-enabl.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0094-OMAP2-hwmod-Follow-the-
> recommended-PRCM-module-enabl.patch
> deleted file mode 100644
> index 4de90a8..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0094-OMAP2-hwmod-
> Follow-the-recommended-PRCM-module-enabl.patch
> +++ /dev/null
> @@ -1,173 +0,0 @@
> -From 2a443d7ec48bdaa17f80fbffd82cd11d858d3655 Mon Sep 17 00:00:00
> 2001
> -From: Rajendra Nayak <rnayak at ti.com>
> -Date: Sun, 10 Jul 2011 05:57:07 -0600
> -Subject: [PATCH 094/149] OMAP2+: hwmod: Follow the recommended PRCM
> module enable sequence
> -
> -On OMAP4, the PRCM recommended sequence for enabling
> -a module after power-on-reset is:
> --1- Force clkdm to SW_WKUP
> --2- Enabling the clocks
> --3- Configure desired module mode to "enable" or "auto"
> --4- Wait for the desired module idle status to be FUNC
> --5- Program clkdm in HW_AUTO(if supported)
> -
> -This sequence applies to all older OMAPs' as well,
> -however since they use autodeps, it makes sure that
> -no clkdm is in IDLE, and hence not requiring a force
> -SW_WKUP when a module is being enabled.
> -
> -OMAP4 does not need to support autodeps, because
> -of the dyanamic dependency feature, wherein
> -the HW takes care of waking up a clockdomain from
> -idle and hence the module, whenever an interconnect
> -access happens to the given module.
> -
> -Implementing the sequence for OMAP4 requires
> -the clockdomain handling that is currently done in
> -clock framework to be done as part of hwmod framework
> -since the step -4- above to "Wait for the desired
> -module idle status to be FUNC" is done as part of
> -hwmod framework.
> -
> -Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> -[b-cousson at ti.com: Adapt it to the new clkdm hwmod attribute and API]
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -[paul at pwsan.com: dropped mach-omap2/clock.c changes; modified to only
> - call the clockdomain code if oh->clkdm is set; disable clock->clockdomain
> - interaction on OMAP4]
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/mach-omap2/clock44xx_data.c |    1 +
> - arch/arm/mach-omap2/omap_hwmod.c     |   70
> ++++++++++++++++++++++++----------
> - 2 files changed, 51 insertions(+), 20 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-
> omap2/clock44xx_data.c
> -index 07bf0de..0d13def 100644
> ---- a/arch/arm/mach-omap2/clock44xx_data.c
> -+++ b/arch/arm/mach-omap2/clock44xx_data.c
> -@@ -3340,6 +3340,7 @@ int __init omap4xxx_clk_init(void)
> - 	}
> -
> - 	clk_init(&omap2_clk_functions);
> -+	omap2_clk_disable_clkdm_control();
> -
> - 	for (c = omap44xx_clks; c < omap44xx_clks +
> ARRAY_SIZE(omap44xx_clks);
> - 									  c++)
> -diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-
> omap2/omap_hwmod.c
> -index 4424fee..84cc0bd 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod.c
> -@@ -1437,6 +1437,7 @@ static int _reset(struct omap_hwmod *oh)
> - static int _enable(struct omap_hwmod *oh)
> - {
> - 	int r;
> -+	int hwsup = 0;
> -
> - 	pr_debug("omap_hwmod: %s: enabling\n", oh->name);
> -
> -@@ -1448,14 +1449,6 @@ static int _enable(struct omap_hwmod *oh)
> - 		return -EINVAL;
> - 	}
> -
> --	/* Mux pins for device runtime if populated */
> --	if (oh->mux && (!oh->mux->enabled ||
> --			((oh->_state == _HWMOD_STATE_IDLE) &&
> --			 oh->mux->pads_dynamic)))
> --		omap_hwmod_mux(oh->mux, _HWMOD_STATE_ENABLED);
> --
> --	_add_initiator_dep(oh, mpu_oh);
> --	_enable_clocks(oh);
> -
> - 	/*
> - 	 * If an IP contains only one HW reset line, then de-assert it in order
> -@@ -1466,23 +1459,56 @@ static int _enable(struct omap_hwmod *oh)
> - 	     oh->_state == _HWMOD_STATE_DISABLED) && oh->rst_lines_cnt
> == 1)
> - 		_deassert_hardreset(oh, oh->rst_lines[0].name);
> -
> --	r = _wait_target_ready(oh);
> --	if (r) {
> --		pr_debug("omap_hwmod: %s: _wait_target_ready: %d\n",
> --			 oh->name, r);
> --		_disable_clocks(oh);
> -+	/* Mux pins for device runtime if populated */
> -+	if (oh->mux && (!oh->mux->enabled ||
> -+			((oh->_state == _HWMOD_STATE_IDLE) &&
> -+			 oh->mux->pads_dynamic)))
> -+		omap_hwmod_mux(oh->mux, _HWMOD_STATE_ENABLED);
> -+
> -+	_add_initiator_dep(oh, mpu_oh);
> -
> --		return r;
> -+	if (oh->clkdm) {
> -+		/*
> -+		 * A clockdomain must be in SW_SUP before enabling
> -+		 * completely the module. The clockdomain can be set
> -+		 * in HW_AUTO only when the module become ready.
> -+		 */
> -+		hwsup = clkdm_in_hwsup(oh->clkdm);
> -+		r = clkdm_hwmod_enable(oh->clkdm, oh);
> -+		if (r) {
> -+			WARN(1, "omap_hwmod: %s: could not enable
> clockdomain %s: %d\n",
> -+			     oh->name, oh->clkdm->name, r);
> -+			return r;
> -+		}
> - 	}
> -+
> -+	_enable_clocks(oh);
> - 	_enable_module(oh);
> -
> --	oh->_state = _HWMOD_STATE_ENABLED;
> -+	r = _wait_target_ready(oh);
> -+	if (!r) {
> -+		/*
> -+		 * Set the clockdomain to HW_AUTO only if the target is ready,
> -+		 * assuming that the previous state was HW_AUTO
> -+		 */
> -+		if (oh->clkdm && hwsup)
> -+			clkdm_allow_idle(oh->clkdm);
> -
> --	/* Access the sysconfig only if the target is ready */
> --	if (oh->class->sysc) {
> --		if (!(oh->_int_flags & _HWMOD_SYSCONFIG_LOADED))
> --			_update_sysc_cache(oh);
> --		_enable_sysc(oh);
> -+		oh->_state = _HWMOD_STATE_ENABLED;
> -+
> -+		/* Access the sysconfig only if the target is ready */
> -+		if (oh->class->sysc) {
> -+			if (!(oh->_int_flags &
> _HWMOD_SYSCONFIG_LOADED))
> -+				_update_sysc_cache(oh);
> -+			_enable_sysc(oh);
> -+		}
> -+	} else {
> -+		_disable_clocks(oh);
> -+		pr_debug("omap_hwmod: %s: _wait_target_ready: %d\n",
> -+			 oh->name, r);
> -+
> -+		if (oh->clkdm)
> -+			clkdm_hwmod_disable(oh->clkdm, oh);
> - 	}
> -
> - 	return r;
> -@@ -1523,6 +1549,8 @@ static int _idle(struct omap_hwmod *oh)
> - 	 * transition to complete properly.
> - 	 */
> - 	_disable_clocks(oh);
> -+	if (oh->clkdm)
> -+		clkdm_hwmod_disable(oh->clkdm, oh);
> -
> - 	/* Mux pins for device idle if populated */
> - 	if (oh->mux && oh->mux->pads_dynamic)
> -@@ -1620,6 +1648,8 @@ static int _shutdown(struct omap_hwmod *oh)
> - 			pr_warn("omap_hwmod: %s: _wait_target_disable
> failed\n",
> - 				oh->name);
> - 		_disable_clocks(oh);
> -+		if (oh->clkdm)
> -+			clkdm_hwmod_disable(oh->clkdm, oh);
> - 	}
> - 	/* XXX Should this code also force-disable the optional clocks? */
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0095-OMAP-Add-
> debugfs-node-to-show-the-summary-of-all-clo.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0095-OMAP-Add-debugfs-node-to-
> show-the-summary-of-all-clo.patch
> deleted file mode 100644
> index db025c7..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0095-OMAP-Add-debugfs-
> node-to-show-the-summary-of-all-clo.patch
> +++ /dev/null
> @@ -1,84 +0,0 @@
> -From 01eed55ec7b57fb5109e7eb70cbdebdc030135a5 Mon Sep 17 00:00:00
> 2001
> -From: Jon Hunter <jon-hunter at ti.com>
> -Date: Sun, 10 Jul 2011 05:57:33 -0600
> -Subject: [PATCH 095/149] OMAP: Add debugfs node to show the summary of
> all clocks
> -
> -Add a debugfs node called "summary" to /sys/kernel/debug/clock/
> -that displays a quick summary of all clocks registered in the
> -"clocks" structure. The format of the output from this node is:
> -
> -<clock-name> <parent-name> <rate> <usecount>
> -
> -This debugfs node was very helpful for taking a quick snapshot of
> -the linux clock tree for OMAP and ensuring clock frequencies
> -calculated by the kernel were indeed correct. This patch helped
> -uncover some bugs in the linux clock tree for OMAP4.
> -
> -Signed-off-by: Jon Hunter <jon-hunter at ti.com>
> -Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ----
> - arch/arm/plat-omap/clock.c |   39
> +++++++++++++++++++++++++++++++++++++++
> - 1 files changed, 39 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c
> -index c9122dd..156b27d 100644
> ---- a/arch/arm/plat-omap/clock.c
> -+++ b/arch/arm/plat-omap/clock.c
> -@@ -475,8 +475,41 @@ int __init clk_init(struct clk_functions *
> custom_clocks)
> - /*
> -  *	debugfs support to trace clock tree hierarchy and attributes
> -  */
> -+
> -+#include <linux/debugfs.h>
> -+#include <linux/seq_file.h>
> -+
> - static struct dentry *clk_debugfs_root;
> -
> -+static int clk_dbg_show_summary(struct seq_file *s, void *unused)
> -+{
> -+	struct clk *c;
> -+	struct clk *pa;
> -+
> -+	seq_printf(s, "%-30s %-30s %-10s %s\n",
> -+		"clock-name", "parent-name", "rate", "use-count");
> -+
> -+	list_for_each_entry(c, &clocks, node) {
> -+		pa = c->parent;
> -+		seq_printf(s, "%-30s %-30s %-10lu %d\n",
> -+			c->name, pa ? pa->name : "none", c->rate, c-
> >usecount);
> -+	}
> -+
> -+	return 0;
> -+}
> -+
> -+static int clk_dbg_open(struct inode *inode, struct file *file)
> -+{
> -+	return single_open(file, clk_dbg_show_summary, inode->i_private);
> -+}
> -+
> -+static const struct file_operations debug_clock_fops = {
> -+	.open           = clk_dbg_open,
> -+	.read           = seq_read,
> -+	.llseek         = seq_lseek,
> -+	.release        = single_release,
> -+};
> -+
> - static int clk_debugfs_register_one(struct clk *c)
> - {
> - 	int err;
> -@@ -551,6 +584,12 @@ static int __init clk_debugfs_init(void)
> - 		if (err)
> - 			goto err_out;
> - 	}
> -+
> -+	d = debugfs_create_file("summary", S_IRUGO,
> -+		d, NULL, &debug_clock_fops);
> -+	if (!d)
> -+		return -ENOMEM;
> -+
> - 	return 0;
> - err_out:
> - 	debugfs_remove_recursive(clk_debugfs_root);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0096-OMAP2-
> hwmod-remove-unused-voltagedomain-pointer.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0096-OMAP2-hwmod-remove-unused-
> voltagedomain-pointer.patch
> deleted file mode 100644
> index 3815245..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0096-OMAP2-hwmod-
> remove-unused-voltagedomain-pointer.patch
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -From c9d2e22cc8ed08fb232d99c161f8d0be18c8569e Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Wed, 16 Mar 2011 11:02:59 -0700
> -Subject: [PATCH 096/149] OMAP2+: hwmod: remove unused voltagedomain
> pointer
> -
> -The voltage domain pointer currently in struct omap_hwmod is not used
> -and does not belong here.  Instead, voltage domains will be associated
> -with powerdomains in forthcoming patches.
> -
> -Acked-by: Paul Walmsley <paul at pwsan.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/plat-omap/include/plat/omap_hwmod.h |    1 -
> - 1 files changed, 0 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -index 0e329ca..38ac4af 100644
> ---- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> -@@ -526,7 +526,6 @@ struct omap_hwmod {
> - 	char				*clkdm_name;
> - 	struct clockdomain		*clkdm;
> - 	char				*vdd_name;
> --	struct voltagedomain		*voltdm;
> - 	struct omap_hwmod_ocp_if	**masters; /* connect to *_IA */
> - 	struct omap_hwmod_ocp_if	**slaves;  /* connect to *_TA */
> - 	void				*dev_attr;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0097-OMAP2-
> voltage-move-PRCM-mod-offets-into-VC-VP-struct.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0097-OMAP2-voltage-move-PRCM-
> mod-offets-into-VC-VP-struct.patch
> deleted file mode 100644
> index c4c56d0..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0097-OMAP2-voltage-
> move-PRCM-mod-offets-into-VC-VP-struct.patch
> +++ /dev/null
> @@ -1,577 +0,0 @@
> -From 9d2ed2fa5cc20d7c0233d1c5c8070c7c3f0914c8 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Wed, 16 Mar 2011 13:35:22 -0700
> -Subject: [PATCH 097/149] OMAP2+: voltage: move PRCM mod offets into
> VC/VP structures
> -
> -Eliminate need for global variables for the various PRM module offsets by
> -making them part of the VP/VC common structures
> -
> -Eventually, these will likely be moved again, or more likely removed
> -when VP/VC code is isolated, but for now just getting rid of them as
> -global variabes so that the voltage domain initialization can be
> -cleaned up.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.h                      |    2 +
> - arch/arm/mach-omap2/vc3xxx_data.c             |    1 +
> - arch/arm/mach-omap2/vc44xx_data.c             |    1 +
> - arch/arm/mach-omap2/voltage.c                 |  109 ++++++++++++-------------
> - arch/arm/mach-omap2/voltage.h                 |    6 +-
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |    8 +-
> - arch/arm/mach-omap2/voltagedomains44xx_data.c |    9 +-
> - arch/arm/mach-omap2/vp.h                      |    2 +
> - arch/arm/mach-omap2/vp3xxx_data.c             |    1 +
> - arch/arm/mach-omap2/vp44xx_data.c             |    1 +
> - 10 files changed, 70 insertions(+), 70 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.h b/arch/arm/mach-omap2/vc.h
> -index e776777..f7338af 100644
> ---- a/arch/arm/mach-omap2/vc.h
> -+++ b/arch/arm/mach-omap2/vc.h
> -@@ -23,6 +23,7 @@
> -  * struct omap_vc_common_data - per-VC register/bitfield data
> -  * @cmd_on_mask: ON bitmask in PRM_VC_CMD_VAL* register
> -  * @valid: VALID bitmask in PRM_VC_BYPASS_VAL register
> -+ * @prm_mod: PRM module id used for PRM register access
> -  * @smps_sa_reg: Offset of PRM_VC_SMPS_SA reg from PRM start
> -  * @smps_volra_reg: Offset of PRM_VC_SMPS_VOL_RA reg from PRM start
> -  * @bypass_val_reg: Offset of PRM_VC_BYPASS_VAL reg from PRM start
> -@@ -40,6 +41,7 @@
> - struct omap_vc_common_data {
> - 	u32 cmd_on_mask;
> - 	u32 valid;
> -+	s16 prm_mod;
> - 	u8 smps_sa_reg;
> - 	u8 smps_volra_reg;
> - 	u8 bypass_val_reg;
> -diff --git a/arch/arm/mach-omap2/vc3xxx_data.c b/arch/arm/mach-
> omap2/vc3xxx_data.c
> -index f37dc4b..55caccb 100644
> ---- a/arch/arm/mach-omap2/vc3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vc3xxx_data.c
> -@@ -30,6 +30,7 @@
> -  * XXX This stuff presumably belongs in the vc3xxx.c or vc.c file.
> -  */
> - static struct omap_vc_common_data omap3_vc_common = {
> -+	.prm_mod         = OMAP3430_GR_MOD,
> - 	.smps_sa_reg	 = OMAP3_PRM_VC_SMPS_SA_OFFSET,
> - 	.smps_volra_reg	 = OMAP3_PRM_VC_SMPS_VOL_RA_OFFSET,
> - 	.bypass_val_reg	 = OMAP3_PRM_VC_BYPASS_VAL_OFFSET,
> -diff --git a/arch/arm/mach-omap2/vc44xx_data.c b/arch/arm/mach-
> omap2/vc44xx_data.c
> -index a98da8d..b62678e 100644
> ---- a/arch/arm/mach-omap2/vc44xx_data.c
> -+++ b/arch/arm/mach-omap2/vc44xx_data.c
> -@@ -31,6 +31,7 @@
> -  * XXX This stuff presumably belongs in the vc3xxx.c or vc.c file.
> -  */
> - static const struct omap_vc_common_data omap4_vc_common = {
> -+	.prm_mod = OMAP4430_PRM_DEVICE_INST,
> - 	.smps_sa_reg = OMAP4_PRM_VC_SMPS_SA_OFFSET,
> - 	.smps_volra_reg = OMAP4_PRM_VC_VAL_SMPS_RA_VOL_OFFSET,
> - 	.bypass_val_reg = OMAP4_PRM_VC_VAL_BYPASS_OFFSET,
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 9ef3789..3151d75 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -50,10 +50,6 @@ static struct omap_vdd_info **vdd_info;
> -  */
> - static int nr_scalable_vdd;
> -
> --/* XXX document */
> --static s16 prm_mod_offs;
> --static s16 prm_irqst_ocp_mod_offs;
> --
> - static struct dentry *voltage_dir;
> -
> - /* Init function pointers */
> -@@ -147,7 +143,7 @@ static int vp_volt_debug_get(void *data, u64 *val)
> - 		return -EINVAL;
> - 	}
> -
> --	vsel = vdd->read_reg(prm_mod_offs, vdd->vp_data->voltage);
> -+	vsel = vdd->read_reg(vdd->vp_data->vp_common->prm_mod, vdd-
> >vp_data->voltage);
> -
> - 	if (!vdd->pmic_info->vsel_to_uv) {
> - 		pr_warning("PMIC function to convert vsel to voltage"
> -@@ -197,19 +193,19 @@ static void vp_latch_vsel(struct omap_vdd_info
> *vdd)
> -
> - 	vsel = vdd->pmic_info->uv_to_vsel(uvdc);
> -
> --	vpconfig = vdd->read_reg(prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vpconfig = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> - 	vpconfig &= ~(vdd->vp_data->vp_common-
> >vpconfig_initvoltage_mask |
> - 			vdd->vp_data->vp_common->vpconfig_initvdd);
> - 	vpconfig |= vsel << vdd->vp_data->vp_common-
> >vpconfig_initvoltage_shift;
> -
> --	vdd->write_reg(vpconfig, prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> -
> - 	/* Trigger initVDD value copy to voltage processor */
> - 	vdd->write_reg((vpconfig | vdd->vp_data->vp_common-
> >vpconfig_initvdd),
> --		       prm_mod_offs, vdd->vp_data->vpconfig);
> -+		       vdd->vp_data->vp_common->prm_mod, vdd->vp_data-
> >vpconfig);
> -
> - 	/* Clear initVDD copy trigger bit */
> --	vdd->write_reg(vpconfig, prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> - }
> -
> - /* Generic voltage init functions */
> -@@ -227,19 +223,19 @@ static void __init vp_init(struct omap_vdd_info
> *vdd)
> - 		(vdd->vp_rt_data.vpconfig_errorgain <<
> - 		vdd->vp_data->vp_common->vpconfig_errorgain_shift) |
> - 		vdd->vp_data->vp_common->vpconfig_timeouten;
> --	vdd->write_reg(vp_val, prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vdd->write_reg(vp_val, vdd->vp_data->vp_common->prm_mod, vdd-
> >vp_data->vpconfig);
> -
> - 	vp_val = ((vdd->vp_rt_data.vstepmin_smpswaittimemin <<
> - 		vdd->vp_data->vp_common-
> >vstepmin_smpswaittimemin_shift) |
> - 		(vdd->vp_rt_data.vstepmin_stepmin <<
> - 		vdd->vp_data->vp_common->vstepmin_stepmin_shift));
> --	vdd->write_reg(vp_val, prm_mod_offs, vdd->vp_data->vstepmin);
> -+	vdd->write_reg(vp_val, vdd->vp_data->vp_common->prm_mod, vdd-
> >vp_data->vstepmin);
> -
> - 	vp_val = ((vdd->vp_rt_data.vstepmax_smpswaittimemax <<
> - 		vdd->vp_data->vp_common-
> >vstepmax_smpswaittimemax_shift) |
> - 		(vdd->vp_rt_data.vstepmax_stepmax <<
> - 		vdd->vp_data->vp_common->vstepmax_stepmax_shift));
> --	vdd->write_reg(vp_val, prm_mod_offs, vdd->vp_data->vstepmax);
> -+	vdd->write_reg(vp_val, vdd->vp_data->vp_common->prm_mod, vdd-
> >vp_data->vstepmax);
> -
> - 	vp_val = ((vdd->vp_rt_data.vlimitto_vddmax <<
> - 		vdd->vp_data->vp_common->vlimitto_vddmax_shift) |
> -@@ -247,7 +243,7 @@ static void __init vp_init(struct omap_vdd_info *vdd)
> - 		vdd->vp_data->vp_common->vlimitto_vddmin_shift) |
> - 		(vdd->vp_rt_data.vlimitto_timeout <<
> - 		vdd->vp_data->vp_common->vlimitto_timeout_shift));
> --	vdd->write_reg(vp_val, prm_mod_offs, vdd->vp_data->vlimitto);
> -+	vdd->write_reg(vp_val, vdd->vp_data->vp_common->prm_mod, vdd-
> >vp_data->vlimitto);
> - }
> -
> - static void __init vdd_debugfs_init(struct omap_vdd_info *vdd)
> -@@ -336,23 +332,23 @@ static int _pre_volt_scale(struct omap_vdd_info
> *vdd,
> - 		volt_data = NULL;
> -
> - 	*target_vsel = vdd->pmic_info->uv_to_vsel(target_volt);
> --	*current_vsel = vdd->read_reg(prm_mod_offs, vdd->vp_data-
> >voltage);
> -+	*current_vsel = vdd->read_reg(vdd->vp_data->vp_common-
> >prm_mod, vdd->vp_data->voltage);
> -
> - 	/* Setting the ON voltage to the new target voltage */
> --	vc_cmdval = vdd->read_reg(prm_mod_offs, vdd->vc_data-
> >cmdval_reg);
> -+	vc_cmdval = vdd->read_reg(vdd->vc_data->vc_common->prm_mod,
> vdd->vc_data->cmdval_reg);
> - 	vc_cmdval &= ~vc_common->cmd_on_mask;
> - 	vc_cmdval |= (*target_vsel << vc_common->cmd_on_shift);
> --	vdd->write_reg(vc_cmdval, prm_mod_offs, vdd->vc_data-
> >cmdval_reg);
> -+	vdd->write_reg(vc_cmdval, vdd->vc_data->vc_common->prm_mod,
> vdd->vc_data->cmdval_reg);
> -
> - 	/* Setting vp errorgain based on the voltage */
> - 	if (volt_data) {
> --		vp_errgain_val = vdd->read_reg(prm_mod_offs,
> -+		vp_errgain_val = vdd->read_reg(vdd->vp_data->vp_common-
> >prm_mod,
> - 					       vdd->vp_data->vpconfig);
> - 		vdd->vp_rt_data.vpconfig_errorgain = volt_data->vp_errgain;
> - 		vp_errgain_val &= ~vp_common->vpconfig_errorgain_mask;
> - 		vp_errgain_val |= vdd->vp_rt_data.vpconfig_errorgain <<
> - 			vp_common->vpconfig_errorgain_shift;
> --		vdd->write_reg(vp_errgain_val, prm_mod_offs,
> -+		vdd->write_reg(vp_errgain_val, vdd->vp_data->vp_common-
> >prm_mod,
> - 			       vdd->vp_data->vpconfig);
> - 	}
> -
> -@@ -394,11 +390,11 @@ static int vc_bypass_scale_voltage(struct
> omap_vdd_info *vdd,
> - 			(vdd->pmic_info->i2c_slave_addr <<
> - 			vdd->vc_data->vc_common->slaveaddr_shift);
> -
> --	vdd->write_reg(vc_bypass_value, prm_mod_offs, vc_bypass_val_reg);
> --	vdd->write_reg(vc_bypass_value | vc_valid, prm_mod_offs,
> -+	vdd->write_reg(vc_bypass_value, vdd->vc_data->vc_common-
> >prm_mod, vc_bypass_val_reg);
> -+	vdd->write_reg(vc_bypass_value | vc_valid, vdd->vc_data-
> >vc_common->prm_mod,
> - 		       vc_bypass_val_reg);
> -
> --	vc_bypass_value = vdd->read_reg(prm_mod_offs,
> vc_bypass_val_reg);
> -+	vc_bypass_value = vdd->read_reg(vdd->vc_data->vc_common-
> >prm_mod, vc_bypass_val_reg);
> - 	/*
> - 	 * Loop till the bypass command is acknowledged from the SMPS.
> - 	 * NOTE: This is legacy code. The loop count and retry count needs
> -@@ -417,7 +413,7 @@ static int vc_bypass_scale_voltage(struct
> omap_vdd_info *vdd,
> - 			loop_cnt = 0;
> - 			udelay(10);
> - 		}
> --		vc_bypass_value = vdd->read_reg(prm_mod_offs,
> -+		vc_bypass_value = vdd->read_reg(vdd->vc_data-
> >vc_common->prm_mod,
> - 						vc_bypass_val_reg);
> - 	}
> -
> -@@ -445,8 +441,8 @@ static int vp_forceupdate_scale_voltage(struct
> omap_vdd_info *vdd,
> - 	 */
> - 	while (timeout++ < VP_TRANXDONE_TIMEOUT) {
> - 		vdd->write_reg(vdd->vp_data->prm_irqst_data-
> >tranxdone_status,
> --			       prm_irqst_ocp_mod_offs, prm_irqst_reg);
> --		if (!(vdd->read_reg(prm_irqst_ocp_mod_offs, prm_irqst_reg)
> &
> -+			       vdd->prm_irqst_mod, prm_irqst_reg);
> -+		if (!(vdd->read_reg(vdd->prm_irqst_mod, prm_irqst_reg) &
> - 		      vdd->vp_data->prm_irqst_data->tranxdone_status))
> - 			break;
> - 		udelay(1);
> -@@ -458,28 +454,28 @@ static int vp_forceupdate_scale_voltage(struct
> omap_vdd_info *vdd,
> - 	}
> -
> - 	/* Configure for VP-Force Update */
> --	vpconfig = vdd->read_reg(prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vpconfig = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> - 	vpconfig &= ~(vdd->vp_data->vp_common->vpconfig_initvdd |
> - 			vdd->vp_data->vp_common->vpconfig_forceupdate |
> - 			vdd->vp_data->vp_common-
> >vpconfig_initvoltage_mask);
> - 	vpconfig |= ((target_vsel <<
> - 			vdd->vp_data->vp_common-
> >vpconfig_initvoltage_shift));
> --	vdd->write_reg(vpconfig, prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> -
> - 	/* Trigger initVDD value copy to voltage processor */
> - 	vpconfig |= vdd->vp_data->vp_common->vpconfig_initvdd;
> --	vdd->write_reg(vpconfig, prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> -
> - 	/* Force update of voltage */
> - 	vpconfig |= vdd->vp_data->vp_common->vpconfig_forceupdate;
> --	vdd->write_reg(vpconfig, prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> -
> - 	/*
> - 	 * Wait for TransactionDone. Typical latency is <200us.
> - 	 * Depends on SMPSWAITTIMEMIN/MAX and voltage change
> - 	 */
> - 	timeout = 0;
> --	omap_test_timeout((vdd->read_reg(prm_irqst_ocp_mod_offs,
> prm_irqst_reg) &
> -+	omap_test_timeout((vdd->read_reg(vdd->prm_irqst_mod,
> prm_irqst_reg) &
> - 			   vdd->vp_data->prm_irqst_data->tranxdone_status),
> - 			  VP_TRANXDONE_TIMEOUT, timeout);
> - 	if (timeout >= VP_TRANXDONE_TIMEOUT)
> -@@ -496,8 +492,8 @@ static int vp_forceupdate_scale_voltage(struct
> omap_vdd_info *vdd,
> - 	timeout = 0;
> - 	while (timeout++ < VP_TRANXDONE_TIMEOUT) {
> - 		vdd->write_reg(vdd->vp_data->prm_irqst_data-
> >tranxdone_status,
> --			       prm_irqst_ocp_mod_offs, prm_irqst_reg);
> --		if (!(vdd->read_reg(prm_irqst_ocp_mod_offs, prm_irqst_reg)
> &
> -+			       vdd->prm_irqst_mod, prm_irqst_reg);
> -+		if (!(vdd->read_reg(vdd->prm_irqst_mod, prm_irqst_reg) &
> - 		      vdd->vp_data->prm_irqst_data->tranxdone_status))
> - 			break;
> - 		udelay(1);
> -@@ -508,13 +504,13 @@ static int vp_forceupdate_scale_voltage(struct
> omap_vdd_info *vdd,
> - 			"to clear the TRANXDONE status\n",
> - 			__func__, vdd->voltdm.name);
> -
> --	vpconfig = vdd->read_reg(prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vpconfig = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> - 	/* Clear initVDD copy trigger bit */
> - 	vpconfig &= ~vdd->vp_data->vp_common->vpconfig_initvdd;
> --	vdd->write_reg(vpconfig, prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> - 	/* Clear force bit */
> - 	vpconfig &= ~vdd->vp_data->vp_common->vpconfig_forceupdate;
> --	vdd->write_reg(vpconfig, prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> -
> - 	return 0;
> - }
> -@@ -525,10 +521,10 @@ static void __init omap3_vfsm_init(struct
> omap_vdd_info *vdd)
> - 	 * Voltage Manager FSM parameters init
> - 	 * XXX This data should be passed in from the board file
> - 	 */
> --	vdd->write_reg(OMAP3_CLKSETUP, prm_mod_offs,
> OMAP3_PRM_CLKSETUP_OFFSET);
> --	vdd->write_reg(OMAP3_VOLTOFFSET, prm_mod_offs,
> -+	vdd->write_reg(OMAP3_CLKSETUP, vdd->vc_data->vc_common-
> >prm_mod, OMAP3_PRM_CLKSETUP_OFFSET);
> -+	vdd->write_reg(OMAP3_VOLTOFFSET, vdd->vc_data->vc_common-
> >prm_mod,
> - 		       OMAP3_PRM_VOLTOFFSET_OFFSET);
> --	vdd->write_reg(OMAP3_VOLTSETUP2, prm_mod_offs,
> -+	vdd->write_reg(OMAP3_VOLTSETUP2, vdd->vc_data->vc_common-
> >prm_mod,
> - 		       OMAP3_PRM_VOLTSETUP2_OFFSET);
> - }
> -
> -@@ -550,15 +546,15 @@ static void __init omap3_vc_init(struct
> omap_vdd_info *vdd)
> - 		(onlp_vsel << vdd->vc_data->vc_common->cmd_onlp_shift) |
> - 		(ret_vsel << vdd->vc_data->vc_common->cmd_ret_shift) |
> - 		(off_vsel << vdd->vc_data->vc_common->cmd_off_shift));
> --	vdd->write_reg(vc_val, prm_mod_offs, vdd->vc_data->cmdval_reg);
> -+	vdd->write_reg(vc_val, vdd->vc_data->vc_common->prm_mod, vdd-
> >vc_data->cmdval_reg);
> -
> - 	/*
> - 	 * Generic VC parameters init
> - 	 * XXX This data should be abstracted out
> - 	 */
> --	vdd->write_reg(OMAP3430_CMD1_MASK |
> OMAP3430_RAV1_MASK, prm_mod_offs,
> -+	vdd->write_reg(OMAP3430_CMD1_MASK |
> OMAP3430_RAV1_MASK, vdd->vc_data->vc_common->prm_mod,
> - 			OMAP3_PRM_VC_CH_CONF_OFFSET);
> --	vdd->write_reg(OMAP3430_MCODE_SHIFT |
> OMAP3430_HSEN_MASK, prm_mod_offs,
> -+	vdd->write_reg(OMAP3430_MCODE_SHIFT |
> OMAP3430_HSEN_MASK, vdd->vc_data->vc_common->prm_mod,
> - 			OMAP3_PRM_VC_I2C_CFG_OFFSET);
> -
> - 	omap3_vfsm_init(vdd);
> -@@ -585,11 +581,11 @@ static void __init omap4_vc_init(struct
> omap_vdd_info *vdd)
> - 	vc_val = (OMAP4430_RAV_VDD_MPU_L_MASK |
> OMAP4430_CMD_VDD_MPU_L_MASK |
> - 		  OMAP4430_RAV_VDD_IVA_L_MASK |
> OMAP4430_CMD_VDD_IVA_L_MASK |
> - 		  OMAP4430_RAV_VDD_CORE_L_MASK |
> OMAP4430_CMD_VDD_CORE_L_MASK);
> --	vdd->write_reg(vc_val, prm_mod_offs,
> OMAP4_PRM_VC_CFG_CHANNEL_OFFSET);
> -+	vdd->write_reg(vc_val, vdd->vc_data->vc_common->prm_mod,
> OMAP4_PRM_VC_CFG_CHANNEL_OFFSET);
> -
> - 	/* XXX These are magic numbers and do not belong! */
> - 	vc_val = (0x60 << OMAP4430_SCLL_SHIFT | 0x26 <<
> OMAP4430_SCLH_SHIFT);
> --	vdd->write_reg(vc_val, prm_mod_offs,
> OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET);
> -+	vdd->write_reg(vc_val, vdd->vc_data->vc_common->prm_mod,
> OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET);
> -
> - 	is_initialized = true;
> - }
> -@@ -612,27 +608,27 @@ static void __init omap_vc_init(struct
> omap_vdd_info *vdd)
> - 	}
> -
> - 	/* Set up the SMPS_SA(i2c slave address in VC */
> --	vc_val = vdd->read_reg(prm_mod_offs,
> -+	vc_val = vdd->read_reg(vdd->vc_data->vc_common->prm_mod,
> - 			       vdd->vc_data->vc_common->smps_sa_reg);
> - 	vc_val &= ~vdd->vc_data->smps_sa_mask;
> - 	vc_val |= vdd->pmic_info->i2c_slave_addr << vdd->vc_data-
> >smps_sa_shift;
> --	vdd->write_reg(vc_val, prm_mod_offs,
> -+	vdd->write_reg(vc_val, vdd->vc_data->vc_common->prm_mod,
> - 		       vdd->vc_data->vc_common->smps_sa_reg);
> -
> - 	/* Setup the VOLRA(pmic reg addr) in VC */
> --	vc_val = vdd->read_reg(prm_mod_offs,
> -+	vc_val = vdd->read_reg(vdd->vc_data->vc_common->prm_mod,
> - 			       vdd->vc_data->vc_common->smps_volra_reg);
> - 	vc_val &= ~vdd->vc_data->smps_volra_mask;
> - 	vc_val |= vdd->pmic_info->pmic_reg << vdd->vc_data-
> >smps_volra_shift;
> --	vdd->write_reg(vc_val, prm_mod_offs,
> -+	vdd->write_reg(vc_val, vdd->vc_data->vc_common->prm_mod,
> - 		       vdd->vc_data->vc_common->smps_volra_reg);
> -
> - 	/* Configure the setup times */
> --	vc_val = vdd->read_reg(prm_mod_offs, vdd->vfsm->voltsetup_reg);
> -+	vc_val = vdd->read_reg(vdd->vc_data->vc_common->prm_mod, vdd-
> >vfsm->voltsetup_reg);
> - 	vc_val &= ~vdd->vfsm->voltsetup_mask;
> - 	vc_val |= vdd->pmic_info->volt_setup_time <<
> - 			vdd->vfsm->voltsetup_shift;
> --	vdd->write_reg(vc_val, prm_mod_offs, vdd->vfsm->voltsetup_reg);
> -+	vdd->write_reg(vc_val, vdd->vc_data->vc_common->prm_mod, vdd-
> >vfsm->voltsetup_reg);
> -
> - 	if (cpu_is_omap34xx())
> - 		omap3_vc_init(vdd);
> -@@ -713,7 +709,7 @@ unsigned long omap_vp_get_curr_volt(struct
> voltagedomain *voltdm)
> - 		return 0;
> - 	}
> -
> --	curr_vsel = vdd->read_reg(prm_mod_offs, vdd->vp_data->voltage);
> -+	curr_vsel = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->voltage);
> -
> - 	if (!vdd->pmic_info || !vdd->pmic_info->vsel_to_uv) {
> - 		pr_warning("%s: PMIC function to convert vsel to voltage"
> -@@ -755,9 +751,9 @@ void omap_vp_enable(struct voltagedomain *voltdm)
> - 	vp_latch_vsel(vdd);
> -
> - 	/* Enable VP */
> --	vpconfig = vdd->read_reg(prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vpconfig = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> - 	vpconfig |= vdd->vp_data->vp_common->vpconfig_vpenable;
> --	vdd->write_reg(vpconfig, prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> - 	vdd->vp_enabled = true;
> - }
> -
> -@@ -794,14 +790,14 @@ void omap_vp_disable(struct voltagedomain
> *voltdm)
> - 	}
> -
> - 	/* Disable VP */
> --	vpconfig = vdd->read_reg(prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vpconfig = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> - 	vpconfig &= ~vdd->vp_data->vp_common->vpconfig_vpenable;
> --	vdd->write_reg(vpconfig, prm_mod_offs, vdd->vp_data->vpconfig);
> -+	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> -
> - 	/*
> - 	 * Wait for VP idle Typical latency is <2us. Maximum latency is ~100us
> - 	 */
> --	omap_test_timeout((vdd->read_reg(prm_mod_offs, vdd->vp_data-
> >vstatus)),
> -+	omap_test_timeout((vdd->read_reg(vdd->vp_data->vp_common-
> >prm_mod, vdd->vp_data->vstatus)),
> - 				VP_IDLE_TIMEOUT, timeout);
> -
> - 	if (timeout >= VP_IDLE_TIMEOUT)
> -@@ -1094,12 +1090,9 @@ int __init omap_voltage_late_init(void)
> - }
> -
> - /* XXX document */
> --int __init omap_voltage_early_init(s16 prm_mod, s16 prm_irqst_ocp_mod,
> --				   struct omap_vdd_info *omap_vdd_array[],
> -+int __init omap_voltage_early_init(struct omap_vdd_info
> *omap_vdd_array[],
> - 				   u8 omap_vdd_count)
> - {
> --	prm_mod_offs = prm_mod;
> --	prm_irqst_ocp_mod_offs = prm_irqst_ocp_mod;
> - 	vdd_info = omap_vdd_array;
> - 	nr_scalable_vdd = omap_vdd_count;
> - 	return 0;
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index e9f5408..ffdc55e 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -119,6 +119,7 @@ struct omap_volt_pmic_info {
> -  * @voltdm		: pointer to the voltage domain structure
> -  * @debug_dir		: debug directory for this voltage domain.
> -  * @curr_volt		: current voltage for this vdd.
> -+ * @prm_irqst_mod       : PRM module id used for PRM IRQ status register
> access
> -  * @vp_enabled		: flag to keep track of whether vp is enabled or
> not
> -  * @volt_scale		: API to scale the voltage of the vdd.
> -  */
> -@@ -133,6 +134,8 @@ struct omap_vdd_info {
> - 	struct dentry *debug_dir;
> - 	u32 curr_volt;
> - 	bool vp_enabled;
> -+
> -+	s16 prm_irqst_mod;
> - 	u32 (*read_reg) (u16 mod, u8 offset);
> - 	void (*write_reg) (u32 val, u16 mod, u8 offset);
> - 	int (*volt_scale) (struct omap_vdd_info *vdd,
> -@@ -151,8 +154,7 @@ struct omap_volt_data
> *omap_voltage_get_voltdata(struct voltagedomain *voltdm,
> - 		unsigned long volt);
> - unsigned long omap_voltage_get_nom_volt(struct voltagedomain *voltdm);
> - struct dentry *omap_voltage_get_dbgdir(struct voltagedomain *voltdm);
> --int __init omap_voltage_early_init(s16 prm_mod, s16 prm_irqst_mod,
> --				   struct omap_vdd_info *omap_vdd_array[],
> -+int __init omap_voltage_early_init(struct omap_vdd_info
> *omap_vdd_array[],
> - 				   u8 omap_vdd_count);
> - #ifdef CONFIG_PM
> - int omap_voltage_register_pmic(struct voltagedomain *voltdm,
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index def230f..0d30b7f 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -38,6 +38,7 @@ static const struct omap_vfsm_instance_data
> omap3_vdd1_vfsm_data = {
> - };
> -
> - static struct omap_vdd_info omap3_vdd1_info = {
> -+	.prm_irqst_mod = OCP_MOD,
> - 	.vp_data = &omap3_vp1_data,
> - 	.vc_data = &omap3_vc1_data,
> - 	.vfsm = &omap3_vdd1_vfsm_data,
> -@@ -53,6 +54,7 @@ static const struct omap_vfsm_instance_data
> omap3_vdd2_vfsm_data = {
> - };
> -
> - static struct omap_vdd_info omap3_vdd2_info = {
> -+	.prm_irqst_mod = OCP_MOD,
> - 	.vp_data = &omap3_vp2_data,
> - 	.vc_data = &omap3_vc2_data,
> - 	.vfsm = &omap3_vdd2_vfsm_data,
> -@@ -70,9 +72,6 @@ static struct omap_vdd_info *omap3_vdd_info[] = {
> - /* OMAP3 specific voltage init functions */
> - static int __init omap3xxx_voltage_early_init(void)
> - {
> --	s16 prm_mod = OMAP3430_GR_MOD;
> --	s16 prm_irqst_ocp_mod = OCP_MOD;
> --
> - 	if (!cpu_is_omap34xx())
> - 		return 0;
> -
> -@@ -88,8 +87,7 @@ static int __init omap3xxx_voltage_early_init(void)
> - 		omap3_vdd2_info.volt_data = omap34xx_vddcore_volt_data;
> - 	}
> -
> --	return omap_voltage_early_init(prm_mod, prm_irqst_ocp_mod,
> --				       omap3_vdd_info,
> -+	return omap_voltage_early_init(omap3_vdd_info,
> - 				       ARRAY_SIZE(omap3_vdd_info));
> - };
> - core_initcall(omap3xxx_voltage_early_init);
> -diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -index cb64996..1c2d7d7 100644
> ---- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -@@ -37,6 +37,7 @@ static const struct omap_vfsm_instance_data
> omap4_vdd_mpu_vfsm_data = {
> - };
> -
> - static struct omap_vdd_info omap4_vdd_mpu_info = {
> -+	.prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
> - 	.vp_data = &omap4_vp_mpu_data,
> - 	.vc_data = &omap4_vc_mpu_data,
> - 	.vfsm = &omap4_vdd_mpu_vfsm_data,
> -@@ -50,6 +51,7 @@ static const struct omap_vfsm_instance_data
> omap4_vdd_iva_vfsm_data = {
> - };
> -
> - static struct omap_vdd_info omap4_vdd_iva_info = {
> -+	.prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
> - 	.vp_data = &omap4_vp_iva_data,
> - 	.vc_data = &omap4_vc_iva_data,
> - 	.vfsm = &omap4_vdd_iva_vfsm_data,
> -@@ -63,6 +65,7 @@ static const struct omap_vfsm_instance_data
> omap4_vdd_core_vfsm_data = {
> - };
> -
> - static struct omap_vdd_info omap4_vdd_core_info = {
> -+	.prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
> - 	.vp_data = &omap4_vp_core_data,
> - 	.vc_data = &omap4_vc_core_data,
> - 	.vfsm = &omap4_vdd_core_vfsm_data,
> -@@ -81,9 +84,6 @@ static struct omap_vdd_info *omap4_vdd_info[] = {
> - /* OMAP4 specific voltage init functions */
> - static int __init omap44xx_voltage_early_init(void)
> - {
> --	s16 prm_mod = OMAP4430_PRM_DEVICE_INST;
> --	s16 prm_irqst_ocp_mod = OMAP4430_PRM_OCP_SOCKET_INST;
> --
> - 	if (!cpu_is_omap44xx())
> - 		return 0;
> -
> -@@ -95,8 +95,7 @@ static int __init omap44xx_voltage_early_init(void)
> - 	omap4_vdd_iva_info.volt_data = omap44xx_vdd_iva_volt_data;
> - 	omap4_vdd_core_info.volt_data = omap44xx_vdd_core_volt_data;
> -
> --	return omap_voltage_early_init(prm_mod, prm_irqst_ocp_mod,
> --				       omap4_vdd_info,
> -+	return omap_voltage_early_init(omap4_vdd_info,
> - 				       ARRAY_SIZE(omap4_vdd_info));
> - };
> - core_initcall(omap44xx_voltage_early_init);
> -diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
> -index 7ce134f..d277da6 100644
> ---- a/arch/arm/mach-omap2/vp.h
> -+++ b/arch/arm/mach-omap2/vp.h
> -@@ -42,6 +42,7 @@
> -  * @vpconfig_vlimitto_vddmin_shift: VDDMIN field shift in
> PRM_VP*_VLIMITTO reg
> -  * @vpconfig_vlimitto_vddmax_shift: VDDMAX field shift in
> PRM_VP*_VLIMITTO reg
> -  * @vpconfig_vlimitto_timeout_shift: TIMEOUT field shift in
> PRM_VP*_VLIMITTO reg
> -+ * @prm_mod: PRM module id used for PRM register access
> -  *
> -  * XXX It it not necessary to have both a mask and a shift for the same
> -  *     bitfield - remove one
> -@@ -54,6 +55,7 @@ struct omap_vp_common_data {
> - 	u32 vpconfig_initvdd;
> - 	u32 vpconfig_forceupdate;
> - 	u32 vpconfig_vpenable;
> -+	s16 prm_mod;
> - 	u8 vpconfig_erroroffset_shift;
> - 	u8 vpconfig_errorgain_shift;
> - 	u8 vpconfig_initvoltage_shift;
> -diff --git a/arch/arm/mach-omap2/vp3xxx_data.c b/arch/arm/mach-
> omap2/vp3xxx_data.c
> -index 6452170..c9b3e64 100644
> ---- a/arch/arm/mach-omap2/vp3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vp3xxx_data.c
> -@@ -31,6 +31,7 @@
> -  * XXX This stuff presumably belongs in the vp3xxx.c or vp.c file.
> -  */
> - static const struct omap_vp_common_data omap3_vp_common = {
> -+	.prm_mod = OMAP3430_GR_MOD,
> - 	.vpconfig_erroroffset_shift = OMAP3430_ERROROFFSET_SHIFT,
> - 	.vpconfig_errorgain_mask = OMAP3430_ERRORGAIN_MASK,
> - 	.vpconfig_errorgain_shift = OMAP3430_ERRORGAIN_SHIFT,
> -diff --git a/arch/arm/mach-omap2/vp44xx_data.c b/arch/arm/mach-
> omap2/vp44xx_data.c
> -index 65d1ad6..1a0842e 100644
> ---- a/arch/arm/mach-omap2/vp44xx_data.c
> -+++ b/arch/arm/mach-omap2/vp44xx_data.c
> -@@ -32,6 +32,7 @@
> -  * XXX This stuff presumably belongs in the vp44xx.c or vp.c file.
> -  */
> - static const struct omap_vp_common_data omap4_vp_common = {
> -+	.prm_mod = OMAP4430_PRM_DEVICE_INST,
> - 	.vpconfig_erroroffset_shift = OMAP4430_ERROROFFSET_SHIFT,
> - 	.vpconfig_errorgain_mask = OMAP4430_ERRORGAIN_MASK,
> - 	.vpconfig_errorgain_shift = OMAP4430_ERRORGAIN_SHIFT,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0098-OMAP2-
> voltage-move-prm_irqst_reg-from-VP-into-voltag.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0098-OMAP2-voltage-move-
> prm_irqst_reg-from-VP-into-voltag.patch
> deleted file mode 100644
> index 2b2727c..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0098-OMAP2-voltage-
> move-prm_irqst_reg-from-VP-into-voltag.patch
> +++ /dev/null
> @@ -1,203 +0,0 @@
> -From 6e8557b224128200bac5f99b41bc6213de05ad69 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Wed, 16 Mar 2011 17:20:35 -0700
> -Subject: [PATCH 098/149] OMAP2+: voltage: move prm_irqst_reg from VP
> into voltage domain
> -
> -The prm_irqst_reg is not part of the VP.  Move it up into the common
> -voltage domain struct.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/voltage.c                 |   15 +++++++--------
> - arch/arm/mach-omap2/voltage.h                 |    1 +
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |    2 ++
> - arch/arm/mach-omap2/voltagedomains44xx_data.c |    3 +++
> - arch/arm/mach-omap2/vp.h                      |    3 ---
> - arch/arm/mach-omap2/vp3xxx_data.c             |    2 --
> - arch/arm/mach-omap2/vp44xx_data.c             |    3 ---
> - 7 files changed, 13 insertions(+), 16 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 3151d75..a366a6b 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -426,23 +426,21 @@ static int vp_forceupdate_scale_voltage(struct
> omap_vdd_info *vdd,
> - 		unsigned long target_volt)
> - {
> - 	u32 vpconfig;
> --	u8 target_vsel, current_vsel, prm_irqst_reg;
> -+	u8 target_vsel, current_vsel;
> - 	int ret, timeout = 0;
> -
> - 	ret = _pre_volt_scale(vdd, target_volt, &target_vsel, &current_vsel);
> - 	if (ret)
> - 		return ret;
> -
> --	prm_irqst_reg = vdd->vp_data->prm_irqst_data->prm_irqst_reg;
> --
> - 	/*
> - 	 * Clear all pending TransactionDone interrupt/status. Typical latency
> - 	 * is <3us
> - 	 */
> - 	while (timeout++ < VP_TRANXDONE_TIMEOUT) {
> - 		vdd->write_reg(vdd->vp_data->prm_irqst_data-
> >tranxdone_status,
> --			       vdd->prm_irqst_mod, prm_irqst_reg);
> --		if (!(vdd->read_reg(vdd->prm_irqst_mod, prm_irqst_reg) &
> -+			       vdd->prm_irqst_mod, vdd->prm_irqst_reg);
> -+		if (!(vdd->read_reg(vdd->prm_irqst_mod, vdd-
> >prm_irqst_reg) &
> - 		      vdd->vp_data->prm_irqst_data->tranxdone_status))
> - 			break;
> - 		udelay(1);
> -@@ -475,7 +473,8 @@ static int vp_forceupdate_scale_voltage(struct
> omap_vdd_info *vdd,
> - 	 * Depends on SMPSWAITTIMEMIN/MAX and voltage change
> - 	 */
> - 	timeout = 0;
> --	omap_test_timeout((vdd->read_reg(vdd->prm_irqst_mod,
> prm_irqst_reg) &
> -+	omap_test_timeout((vdd->read_reg(vdd->prm_irqst_mod,
> -+					 vdd->prm_irqst_reg) &
> - 			   vdd->vp_data->prm_irqst_data->tranxdone_status),
> - 			  VP_TRANXDONE_TIMEOUT, timeout);
> - 	if (timeout >= VP_TRANXDONE_TIMEOUT)
> -@@ -492,8 +491,8 @@ static int vp_forceupdate_scale_voltage(struct
> omap_vdd_info *vdd,
> - 	timeout = 0;
> - 	while (timeout++ < VP_TRANXDONE_TIMEOUT) {
> - 		vdd->write_reg(vdd->vp_data->prm_irqst_data-
> >tranxdone_status,
> --			       vdd->prm_irqst_mod, prm_irqst_reg);
> --		if (!(vdd->read_reg(vdd->prm_irqst_mod, prm_irqst_reg) &
> -+			       vdd->prm_irqst_mod, vdd->prm_irqst_reg);
> -+		if (!(vdd->read_reg(vdd->prm_irqst_mod, vdd-
> >prm_irqst_reg) &
> - 		      vdd->vp_data->prm_irqst_data->tranxdone_status))
> - 			break;
> - 		udelay(1);
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index ffdc55e..db23d49 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -136,6 +136,7 @@ struct omap_vdd_info {
> - 	bool vp_enabled;
> -
> - 	s16 prm_irqst_mod;
> -+	u8 prm_irqst_reg;
> - 	u32 (*read_reg) (u16 mod, u8 offset);
> - 	void (*write_reg) (u32 val, u16 mod, u8 offset);
> - 	int (*volt_scale) (struct omap_vdd_info *vdd,
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index 0d30b7f..f831f9a 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -39,6 +39,7 @@ static const struct omap_vfsm_instance_data
> omap3_vdd1_vfsm_data = {
> -
> - static struct omap_vdd_info omap3_vdd1_info = {
> - 	.prm_irqst_mod = OCP_MOD,
> -+	.prm_irqst_reg = OMAP3_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.vp_data = &omap3_vp1_data,
> - 	.vc_data = &omap3_vc1_data,
> - 	.vfsm = &omap3_vdd1_vfsm_data,
> -@@ -55,6 +56,7 @@ static const struct omap_vfsm_instance_data
> omap3_vdd2_vfsm_data = {
> -
> - static struct omap_vdd_info omap3_vdd2_info = {
> - 	.prm_irqst_mod = OCP_MOD,
> -+	.prm_irqst_reg = OMAP3_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.vp_data = &omap3_vp2_data,
> - 	.vc_data = &omap3_vc2_data,
> - 	.vfsm = &omap3_vdd2_vfsm_data,
> -diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -index 1c2d7d7..64dc265 100644
> ---- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -@@ -38,6 +38,7 @@ static const struct omap_vfsm_instance_data
> omap4_vdd_mpu_vfsm_data = {
> -
> - static struct omap_vdd_info omap4_vdd_mpu_info = {
> - 	.prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
> -+	.prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_2_OFFSET,
> - 	.vp_data = &omap4_vp_mpu_data,
> - 	.vc_data = &omap4_vc_mpu_data,
> - 	.vfsm = &omap4_vdd_mpu_vfsm_data,
> -@@ -52,6 +53,7 @@ static const struct omap_vfsm_instance_data
> omap4_vdd_iva_vfsm_data = {
> -
> - static struct omap_vdd_info omap4_vdd_iva_info = {
> - 	.prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
> -+	.prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.vp_data = &omap4_vp_iva_data,
> - 	.vc_data = &omap4_vc_iva_data,
> - 	.vfsm = &omap4_vdd_iva_vfsm_data,
> -@@ -66,6 +68,7 @@ static const struct omap_vfsm_instance_data
> omap4_vdd_core_vfsm_data = {
> -
> - static struct omap_vdd_info omap4_vdd_core_info = {
> - 	.prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
> -+	.prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.vp_data = &omap4_vp_core_data,
> - 	.vc_data = &omap4_vc_core_data,
> - 	.vfsm = &omap4_vdd_core_vfsm_data,
> -diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
> -index d277da6..5406b08 100644
> ---- a/arch/arm/mach-omap2/vp.h
> -+++ b/arch/arm/mach-omap2/vp.h
> -@@ -70,16 +70,13 @@ struct omap_vp_common_data {
> -
> - /**
> -  * struct omap_vp_prm_irqst_data -
> PRM_IRQSTATUS_MPU.VP_TRANXDONE_ST data
> -- * @prm_irqst_reg: reg offset for PRM_IRQSTATUS_MPU from top of PRM
> -  * @tranxdone_status: VP_TRANXDONE_ST bitmask in PRM_IRQSTATUS_MPU
> reg
> -  *
> -- * XXX prm_irqst_reg does not belong here
> -  * XXX Note that on OMAP3, VP_TRANXDONE interrupt may not work due to a
> -  *     hardware bug
> -  * XXX This structure is probably not needed
> -  */
> - struct omap_vp_prm_irqst_data {
> --	u8 prm_irqst_reg;
> - 	u32 tranxdone_status;
> - };
> -
> -diff --git a/arch/arm/mach-omap2/vp3xxx_data.c b/arch/arm/mach-
> omap2/vp3xxx_data.c
> -index c9b3e64..a8ea045 100644
> ---- a/arch/arm/mach-omap2/vp3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vp3xxx_data.c
> -@@ -51,7 +51,6 @@ static const struct omap_vp_common_data
> omap3_vp_common = {
> - };
> -
> - static const struct omap_vp_prm_irqst_data omap3_vp1_prm_irqst_data = {
> --	.prm_irqst_reg = OMAP3_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.tranxdone_status = OMAP3430_VP1_TRANXDONE_ST_MASK,
> - };
> -
> -@@ -67,7 +66,6 @@ struct omap_vp_instance_data omap3_vp1_data = {
> - };
> -
> - static const struct omap_vp_prm_irqst_data omap3_vp2_prm_irqst_data = {
> --	.prm_irqst_reg = OMAP3_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.tranxdone_status = OMAP3430_VP2_TRANXDONE_ST_MASK,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/vp44xx_data.c b/arch/arm/mach-
> omap2/vp44xx_data.c
> -index 1a0842e..0957c24 100644
> ---- a/arch/arm/mach-omap2/vp44xx_data.c
> -+++ b/arch/arm/mach-omap2/vp44xx_data.c
> -@@ -52,7 +52,6 @@ static const struct omap_vp_common_data
> omap4_vp_common = {
> - };
> -
> - static const struct omap_vp_prm_irqst_data omap4_vp_mpu_prm_irqst_data
> = {
> --	.prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_2_OFFSET,
> - 	.tranxdone_status = OMAP4430_VP_MPU_TRANXDONE_ST_MASK,
> - };
> -
> -@@ -68,7 +67,6 @@ struct omap_vp_instance_data omap4_vp_mpu_data =
> {
> - };
> -
> - static const struct omap_vp_prm_irqst_data omap4_vp_iva_prm_irqst_data
> = {
> --	.prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.tranxdone_status = OMAP4430_VP_IVA_TRANXDONE_ST_MASK,
> - };
> -
> -@@ -84,7 +82,6 @@ struct omap_vp_instance_data omap4_vp_iva_data = {
> - };
> -
> - static const struct omap_vp_prm_irqst_data omap4_vp_core_prm_irqst_data
> = {
> --	.prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.tranxdone_status = OMAP4430_VP_CORE_TRANXDONE_ST_MASK,
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0099-OMAP2-
> voltage-start-towards-a-new-voltagedomain-laye.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0099-OMAP2-voltage-start-towards-a-
> new-voltagedomain-laye.patch
> deleted file mode 100644
> index 930f985..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0099-OMAP2-voltage-start-
> towards-a-new-voltagedomain-laye.patch
> +++ /dev/null
> @@ -1,986 +0,0 @@
> -From 1e7eea5a5f4557d90e5b25e4473b7cb77540b7cd Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Wed, 16 Mar 2011 14:25:45 -0700
> -Subject: [PATCH 099/149] OMAP2+: voltage: start towards a new
> voltagedomain layer
> -
> -Start cleaning up the voltage layer to have a voltage domain layer
> -that resembles the structure of the existing clock and power domain
> -layers.  To that end:
> -
> -- move the 'struct voltagedomain' out of 'struct omap_vdd_info' to
> -  become the primary data structure.
> -
> -- convert any functions taking a pointer to struct omap_vdd_info into
> -  functions taking a struct voltagedomain pointer.
> -
> -- convert the register & initialize of voltage domains to look like
> -  that of powerdomains
> -
> -- convert omap_voltage_domain_lookup() to voltdm_lookup(), modeled
> -  after the current powerdomain and clockdomain lookup functions.
> -
> -- omap_voltage_late_init(): only configure VDD info when
> -  the vdd_info struct is non-NULL
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/io.c                      |    3 +
> - arch/arm/mach-omap2/omap_twl.c                |   10 +-
> - arch/arm/mach-omap2/pm.c                      |    2 +-
> - arch/arm/mach-omap2/sr_device.c               |    2 +-
> - arch/arm/mach-omap2/voltage.c                 |  257 ++++++++++++++-----------
> - arch/arm/mach-omap2/voltage.h                 |   27 ++--
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |   34 ++--
> - arch/arm/mach-omap2/voltagedomains44xx_data.c |   44 ++--
> - 8 files changed, 207 insertions(+), 172 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
> -index 2ce1ce6..9f5a846 100644
> ---- a/arch/arm/mach-omap2/io.c
> -+++ b/arch/arm/mach-omap2/io.c
> -@@ -38,6 +38,7 @@
> - #include "io.h"
> -
> - #include <plat/omap-pm.h>
> -+#include "voltage.h"
> - #include "powerdomain.h"
> -
> - #include "clockdomain.h"
> -@@ -349,10 +350,12 @@ void __init
> omap2_init_common_infrastructure(void)
> - 		omap2xxx_clockdomains_init();
> - 		omap2430_hwmod_init();
> - 	} else if (cpu_is_omap34xx()) {
> -+		omap3xxx_voltagedomains_init();
> - 		omap3xxx_powerdomains_init();
> - 		omap3xxx_clockdomains_init();
> - 		omap3xxx_hwmod_init();
> - 	} else if (cpu_is_omap44xx()) {
> -+		omap44xx_voltagedomains_init();
> - 		omap44xx_powerdomains_init();
> - 		omap44xx_clockdomains_init();
> - 		omap44xx_hwmod_init();
> -diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-
> omap2/omap_twl.c
> -index 07d6140..fcd2f62 100644
> ---- a/arch/arm/mach-omap2/omap_twl.c
> -+++ b/arch/arm/mach-omap2/omap_twl.c
> -@@ -250,13 +250,13 @@ int __init omap4_twl_init(void)
> - 	if (!cpu_is_omap44xx())
> - 		return -ENODEV;
> -
> --	voltdm = omap_voltage_domain_lookup("mpu");
> -+	voltdm = voltdm_lookup("mpu");
> - 	omap_voltage_register_pmic(voltdm, &omap4_mpu_volt_info);
> -
> --	voltdm = omap_voltage_domain_lookup("iva");
> -+	voltdm = voltdm_lookup("iva");
> - 	omap_voltage_register_pmic(voltdm, &omap4_iva_volt_info);
> -
> --	voltdm = omap_voltage_domain_lookup("core");
> -+	voltdm = voltdm_lookup("core");
> - 	omap_voltage_register_pmic(voltdm, &omap4_core_volt_info);
> -
> - 	return 0;
> -@@ -288,10 +288,10 @@ int __init omap3_twl_init(void)
> - 	if (!twl_sr_enable_autoinit)
> - 		omap3_twl_set_sr_bit(true);
> -
> --	voltdm = omap_voltage_domain_lookup("mpu");
> -+	voltdm = voltdm_lookup("mpu");
> - 	omap_voltage_register_pmic(voltdm, &omap3_mpu_volt_info);
> -
> --	voltdm = omap_voltage_domain_lookup("core");
> -+	voltdm = voltdm_lookup("core");
> - 	omap_voltage_register_pmic(voltdm, &omap3_core_volt_info);
> -
> - 	return 0;
> -diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
> -index 3feb359..3bce29b 100644
> ---- a/arch/arm/mach-omap2/pm.c
> -+++ b/arch/arm/mach-omap2/pm.c
> -@@ -183,7 +183,7 @@ static int __init omap2_set_init_voltage(char
> *vdd_name, char *clk_name,
> - 		goto exit;
> - 	}
> -
> --	voltdm = omap_voltage_domain_lookup(vdd_name);
> -+	voltdm = voltdm_lookup(vdd_name);
> - 	if (IS_ERR(voltdm)) {
> - 		printk(KERN_ERR "%s: Unable to get vdd pointer for
> vdd_%s\n",
> - 			__func__, vdd_name);
> -diff --git a/arch/arm/mach-omap2/sr_device.c b/arch/arm/mach-
> omap2/sr_device.c
> -index 10d3c5e..2782d3f 100644
> ---- a/arch/arm/mach-omap2/sr_device.c
> -+++ b/arch/arm/mach-omap2/sr_device.c
> -@@ -102,7 +102,7 @@ static int sr_dev_init(struct omap_hwmod *oh, void
> *user)
> - 	sr_data->senn_mod = 0x1;
> - 	sr_data->senp_mod = 0x1;
> -
> --	sr_data->voltdm = omap_voltage_domain_lookup(oh->vdd_name);
> -+	sr_data->voltdm = voltdm_lookup(oh->vdd_name);
> - 	if (IS_ERR(sr_data->voltdm)) {
> - 		pr_err("%s: Unable to get voltage domain pointer for VDD
> %s\n",
> - 			__func__, oh->vdd_name);
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index a366a6b..4f0361a 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -40,20 +40,13 @@
> - #include "vc.h"
> - #include "vp.h"
> -
> --#define VOLTAGE_DIR_SIZE	16
> --
> --
> --static struct omap_vdd_info **vdd_info;
> --
> --/*
> -- * Number of scalable voltage domains.
> -- */
> --static int nr_scalable_vdd;
> -+static LIST_HEAD(voltdm_list);
> -
> -+#define VOLTAGE_DIR_SIZE	16
> - static struct dentry *voltage_dir;
> -
> - /* Init function pointers */
> --static int vp_forceupdate_scale_voltage(struct omap_vdd_info *vdd,
> -+static int vp_forceupdate_scale_voltage(struct voltagedomain *voltdm,
> - 					unsigned long target_volt);
> -
> - static u32 omap3_voltage_read_reg(u16 mod, u8 offset)
> -@@ -77,11 +70,12 @@ static void omap4_voltage_write_reg(u32 val, u16
> mod, u8 offset)
> - 	omap4_prminst_write_inst_reg(val, OMAP4430_PRM_PARTITION,
> mod, offset);
> - }
> -
> --static int __init _config_common_vdd_data(struct omap_vdd_info *vdd)
> -+static int __init _config_common_vdd_data(struct voltagedomain *voltdm)
> - {
> - 	char *sys_ck_name;
> - 	struct clk *sys_ck;
> - 	u32 sys_clk_speed, timeout_val, waittime;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -
> - 	/*
> - 	 * XXX Clockfw should handle this, or this should be in a
> -@@ -101,7 +95,7 @@ static int __init _config_common_vdd_data(struct
> omap_vdd_info *vdd)
> - 	sys_ck = clk_get(NULL, sys_ck_name);
> - 	if (IS_ERR(sys_ck)) {
> - 		pr_warning("%s: Could not get the sys clk to calculate"
> --			"various vdd_%s params\n", __func__, vdd-
> >voltdm.name);
> -+			"various vdd_%s params\n", __func__, voltdm-
> >name);
> - 		return -EINVAL;
> - 	}
> - 	sys_clk_speed = clk_get_rate(sys_ck);
> -@@ -135,7 +129,8 @@ static int __init _config_common_vdd_data(struct
> omap_vdd_info *vdd)
> - /* Voltage debugfs support */
> - static int vp_volt_debug_get(void *data, u64 *val)
> - {
> --	struct omap_vdd_info *vdd = (struct omap_vdd_info *) data;
> -+	struct voltagedomain *voltdm = (struct voltagedomain *)data;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u8 vsel;
> -
> - 	if (!vdd) {
> -@@ -157,14 +152,14 @@ static int vp_volt_debug_get(void *data, u64 *val)
> -
> - static int nom_volt_debug_get(void *data, u64 *val)
> - {
> --	struct omap_vdd_info *vdd = (struct omap_vdd_info *) data;
> -+	struct voltagedomain *voltdm = (struct voltagedomain *)data;
> -
> --	if (!vdd) {
> -+	if (!voltdm) {
> - 		pr_warning("Wrong paramater passed\n");
> - 		return -EINVAL;
> - 	}
> -
> --	*val = omap_voltage_get_nom_volt(&vdd->voltdm);
> -+	*val = omap_voltage_get_nom_volt(voltdm);
> -
> - 	return 0;
> - }
> -@@ -172,16 +167,17 @@ static int nom_volt_debug_get(void *data, u64
> *val)
> - DEFINE_SIMPLE_ATTRIBUTE(vp_volt_debug_fops, vp_volt_debug_get, NULL,
> "%llu\n");
> - DEFINE_SIMPLE_ATTRIBUTE(nom_volt_debug_fops, nom_volt_debug_get,
> NULL,
> - 								"%llu\n");
> --static void vp_latch_vsel(struct omap_vdd_info *vdd)
> -+static void vp_latch_vsel(struct voltagedomain *voltdm)
> - {
> - 	u32 vpconfig;
> - 	unsigned long uvdc;
> - 	char vsel;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -
> --	uvdc = omap_voltage_get_nom_volt(&vdd->voltdm);
> -+	uvdc = omap_voltage_get_nom_volt(voltdm);
> - 	if (!uvdc) {
> - 		pr_warning("%s: unable to find current voltage for vdd_%s\n",
> --			__func__, vdd->voltdm.name);
> -+			__func__, voltdm->name);
> - 		return;
> - 	}
> -
> -@@ -209,13 +205,14 @@ static void vp_latch_vsel(struct omap_vdd_info
> *vdd)
> - }
> -
> - /* Generic voltage init functions */
> --static void __init vp_init(struct omap_vdd_info *vdd)
> -+static void __init vp_init(struct voltagedomain *voltdm)
> - {
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u32 vp_val;
> -
> - 	if (!vdd->read_reg || !vdd->write_reg) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> --			__func__, vdd->voltdm.name);
> -+			__func__, voltdm->name);
> - 		return;
> - 	}
> -
> -@@ -246,25 +243,26 @@ static void __init vp_init(struct omap_vdd_info
> *vdd)
> - 	vdd->write_reg(vp_val, vdd->vp_data->vp_common->prm_mod, vdd-
> >vp_data->vlimitto);
> - }
> -
> --static void __init vdd_debugfs_init(struct omap_vdd_info *vdd)
> -+static void __init vdd_debugfs_init(struct voltagedomain *voltdm)
> - {
> - 	char *name;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -
> - 	name = kzalloc(VOLTAGE_DIR_SIZE, GFP_KERNEL);
> - 	if (!name) {
> - 		pr_warning("%s: Unable to allocate memory for debugfs"
> - 			" directory name for vdd_%s",
> --			__func__, vdd->voltdm.name);
> -+			__func__, voltdm->name);
> - 		return;
> - 	}
> - 	strcpy(name, "vdd_");
> --	strcat(name, vdd->voltdm.name);
> -+	strcat(name, voltdm->name);
> -
> - 	vdd->debug_dir = debugfs_create_dir(name, voltage_dir);
> - 	kfree(name);
> - 	if (IS_ERR(vdd->debug_dir)) {
> - 		pr_warning("%s: Unable to create debugfs directory for"
> --			" vdd_%s\n", __func__, vdd->voltdm.name);
> -+			" vdd_%s\n", __func__, voltdm->name);
> - 		vdd->debug_dir = NULL;
> - 		return;
> - 	}
> -@@ -288,16 +286,17 @@ static void __init vdd_debugfs_init(struct
> omap_vdd_info *vdd)
> - 	(void) debugfs_create_x16("vp_timeout", S_IRUGO, vdd->debug_dir,
> - 				&(vdd->vp_rt_data.vlimitto_timeout));
> - 	(void) debugfs_create_file("curr_vp_volt", S_IRUGO, vdd->debug_dir,
> --				(void *) vdd, &vp_volt_debug_fops);
> -+				(void *) voltdm, &vp_volt_debug_fops);
> - 	(void) debugfs_create_file("curr_nominal_volt", S_IRUGO,
> --				vdd->debug_dir, (void *) vdd,
> -+				vdd->debug_dir, (void *) voltdm,
> - 				&nom_volt_debug_fops);
> - }
> -
> - /* Voltage scale and accessory APIs */
> --static int _pre_volt_scale(struct omap_vdd_info *vdd,
> -+static int _pre_volt_scale(struct voltagedomain *voltdm,
> - 		unsigned long target_volt, u8 *target_vsel, u8 *current_vsel)
> - {
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	struct omap_volt_data *volt_data;
> - 	const struct omap_vc_common_data *vc_common;
> - 	const struct omap_vp_common_data *vp_common;
> -@@ -309,25 +308,25 @@ static int _pre_volt_scale(struct omap_vdd_info
> *vdd,
> - 	/* Check if suffiecient pmic info is available for this vdd */
> - 	if (!vdd->pmic_info) {
> - 		pr_err("%s: Insufficient pmic info to scale the vdd_%s\n",
> --			__func__, vdd->voltdm.name);
> -+			__func__, voltdm->name);
> - 		return -EINVAL;
> - 	}
> -
> - 	if (!vdd->pmic_info->uv_to_vsel) {
> - 		pr_err("%s: PMIC function to convert voltage in uV to"
> - 			"vsel not registered. Hence unable to scale voltage"
> --			"for vdd_%s\n", __func__, vdd->voltdm.name);
> -+			"for vdd_%s\n", __func__, voltdm->name);
> - 		return -ENODATA;
> - 	}
> -
> - 	if (!vdd->read_reg || !vdd->write_reg) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> --			__func__, vdd->voltdm.name);
> -+			__func__, voltdm->name);
> - 		return -EINVAL;
> - 	}
> -
> - 	/* Get volt_data corresponding to target_volt */
> --	volt_data = omap_voltage_get_voltdata(&vdd->voltdm, target_volt);
> -+	volt_data = omap_voltage_get_voltdata(voltdm, target_volt);
> - 	if (IS_ERR(volt_data))
> - 		volt_data = NULL;
> -
> -@@ -355,9 +354,10 @@ static int _pre_volt_scale(struct omap_vdd_info
> *vdd,
> - 	return 0;
> - }
> -
> --static void _post_volt_scale(struct omap_vdd_info *vdd,
> -+static void _post_volt_scale(struct voltagedomain *voltdm,
> - 		unsigned long target_volt, u8 target_vsel, u8 current_vsel)
> - {
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u32 smps_steps = 0, smps_delay = 0;
> -
> - 	smps_steps = abs(target_vsel - current_vsel);
> -@@ -370,15 +370,16 @@ static void _post_volt_scale(struct omap_vdd_info
> *vdd,
> - }
> -
> - /* vc_bypass_scale_voltage - VC bypass method of voltage scaling */
> --static int vc_bypass_scale_voltage(struct omap_vdd_info *vdd,
> -+static int vc_bypass_scale_voltage(struct voltagedomain *voltdm,
> - 		unsigned long target_volt)
> - {
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u32 loop_cnt = 0, retries_cnt = 0;
> - 	u32 vc_valid, vc_bypass_val_reg, vc_bypass_value;
> - 	u8 target_vsel, current_vsel;
> - 	int ret;
> -
> --	ret = _pre_volt_scale(vdd, target_volt, &target_vsel, &current_vsel);
> -+	ret = _pre_volt_scale(voltdm, target_volt, &target_vsel,
> &current_vsel);
> - 	if (ret)
> - 		return ret;
> -
> -@@ -417,19 +418,20 @@ static int vc_bypass_scale_voltage(struct
> omap_vdd_info *vdd,
> - 						vc_bypass_val_reg);
> - 	}
> -
> --	_post_volt_scale(vdd, target_volt, target_vsel, current_vsel);
> -+	_post_volt_scale(voltdm, target_volt, target_vsel, current_vsel);
> - 	return 0;
> - }
> -
> - /* VP force update method of voltage scaling */
> --static int vp_forceupdate_scale_voltage(struct omap_vdd_info *vdd,
> -+static int vp_forceupdate_scale_voltage(struct voltagedomain *voltdm,
> - 		unsigned long target_volt)
> - {
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u32 vpconfig;
> - 	u8 target_vsel, current_vsel;
> - 	int ret, timeout = 0;
> -
> --	ret = _pre_volt_scale(vdd, target_volt, &target_vsel, &current_vsel);
> -+	ret = _pre_volt_scale(voltdm, target_volt, &target_vsel,
> &current_vsel);
> - 	if (ret)
> - 		return ret;
> -
> -@@ -447,7 +449,7 @@ static int vp_forceupdate_scale_voltage(struct
> omap_vdd_info *vdd,
> - 	}
> - 	if (timeout >= VP_TRANXDONE_TIMEOUT) {
> - 		pr_warning("%s: vdd_%s TRANXDONE timeout exceeded."
> --			"Voltage change aborted", __func__, vdd-
> >voltdm.name);
> -+			"Voltage change aborted", __func__, voltdm->name);
> - 		return -ETIMEDOUT;
> - 	}
> -
> -@@ -480,9 +482,9 @@ static int vp_forceupdate_scale_voltage(struct
> omap_vdd_info *vdd,
> - 	if (timeout >= VP_TRANXDONE_TIMEOUT)
> - 		pr_err("%s: vdd_%s TRANXDONE timeout exceeded."
> - 			"TRANXDONE never got set after the voltage
> update\n",
> --			__func__, vdd->voltdm.name);
> -+			__func__, voltdm->name);
> -
> --	_post_volt_scale(vdd, target_volt, target_vsel, current_vsel);
> -+	_post_volt_scale(voltdm, target_volt, target_vsel, current_vsel);
> -
> - 	/*
> - 	 * Disable TransactionDone interrupt , clear all status, clear
> -@@ -501,7 +503,7 @@ static int vp_forceupdate_scale_voltage(struct
> omap_vdd_info *vdd,
> - 	if (timeout >= VP_TRANXDONE_TIMEOUT)
> - 		pr_warning("%s: vdd_%s TRANXDONE timeout exceeded while
> trying"
> - 			"to clear the TRANXDONE status\n",
> --			__func__, vdd->voltdm.name);
> -+			__func__, voltdm->name);
> -
> - 	vpconfig = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> - 	/* Clear initVDD copy trigger bit */
> -@@ -514,8 +516,10 @@ static int vp_forceupdate_scale_voltage(struct
> omap_vdd_info *vdd,
> - 	return 0;
> - }
> -
> --static void __init omap3_vfsm_init(struct omap_vdd_info *vdd)
> -+static void __init omap3_vfsm_init(struct voltagedomain *voltdm)
> - {
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -+
> - 	/*
> - 	 * Voltage Manager FSM parameters init
> - 	 * XXX This data should be passed in from the board file
> -@@ -527,8 +531,9 @@ static void __init omap3_vfsm_init(struct
> omap_vdd_info *vdd)
> - 		       OMAP3_PRM_VOLTSETUP2_OFFSET);
> - }
> -
> --static void __init omap3_vc_init(struct omap_vdd_info *vdd)
> -+static void __init omap3_vc_init(struct voltagedomain *voltdm)
> - {
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	static bool is_initialized;
> - 	u8 on_vsel, onlp_vsel, ret_vsel, off_vsel;
> - 	u32 vc_val;
> -@@ -556,15 +561,16 @@ static void __init omap3_vc_init(struct
> omap_vdd_info *vdd)
> - 	vdd->write_reg(OMAP3430_MCODE_SHIFT |
> OMAP3430_HSEN_MASK, vdd->vc_data->vc_common->prm_mod,
> - 			OMAP3_PRM_VC_I2C_CFG_OFFSET);
> -
> --	omap3_vfsm_init(vdd);
> -+	omap3_vfsm_init(voltdm);
> -
> - 	is_initialized = true;
> - }
> -
> -
> - /* OMAP4 specific voltage init functions */
> --static void __init omap4_vc_init(struct omap_vdd_info *vdd)
> -+static void __init omap4_vc_init(struct voltagedomain *voltdm)
> - {
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	static bool is_initialized;
> - 	u32 vc_val;
> -
> -@@ -589,20 +595,21 @@ static void __init omap4_vc_init(struct
> omap_vdd_info *vdd)
> - 	is_initialized = true;
> - }
> -
> --static void __init omap_vc_init(struct omap_vdd_info *vdd)
> -+static void __init omap_vc_init(struct voltagedomain *voltdm)
> - {
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u32 vc_val;
> -
> - 	if (!vdd->pmic_info || !vdd->pmic_info->uv_to_vsel) {
> - 		pr_err("%s: PMIC info requried to configure vc for"
> - 			"vdd_%s not populated.Hence cannot initialize vc\n",
> --			__func__, vdd->voltdm.name);
> -+			__func__, voltdm->name);
> - 		return;
> - 	}
> -
> - 	if (!vdd->read_reg || !vdd->write_reg) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> --			__func__, vdd->voltdm.name);
> -+			__func__, voltdm->name);
> - 		return;
> - 	}
> -
> -@@ -630,23 +637,24 @@ static void __init omap_vc_init(struct
> omap_vdd_info *vdd)
> - 	vdd->write_reg(vc_val, vdd->vc_data->vc_common->prm_mod, vdd-
> >vfsm->voltsetup_reg);
> -
> - 	if (cpu_is_omap34xx())
> --		omap3_vc_init(vdd);
> -+		omap3_vc_init(voltdm);
> - 	else if (cpu_is_omap44xx())
> --		omap4_vc_init(vdd);
> -+		omap4_vc_init(voltdm);
> - }
> -
> --static int __init omap_vdd_data_configure(struct omap_vdd_info *vdd)
> -+static int __init omap_vdd_data_configure(struct voltagedomain *voltdm)
> - {
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	int ret = -EINVAL;
> -
> - 	if (!vdd->pmic_info) {
> - 		pr_err("%s: PMIC info requried to configure vdd_%s not"
> - 			"populated.Hence cannot initialize vdd_%s\n",
> --			__func__, vdd->voltdm.name, vdd->voltdm.name);
> -+			__func__, voltdm->name, voltdm->name);
> - 		goto ovdc_out;
> - 	}
> -
> --	if (IS_ERR_VALUE(_config_common_vdd_data(vdd)))
> -+	if (IS_ERR_VALUE(_config_common_vdd_data(voltdm)))
> - 		goto ovdc_out;
> -
> - 	if (cpu_is_omap34xx()) {
> -@@ -680,7 +688,7 @@ unsigned long omap_voltage_get_nom_volt(struct
> voltagedomain *voltdm)
> - 		return 0;
> - 	}
> -
> --	vdd = container_of(voltdm, struct omap_vdd_info, voltdm);
> -+	vdd = voltdm->vdd;
> -
> - 	return vdd->curr_volt;
> - }
> -@@ -701,7 +709,7 @@ unsigned long omap_vp_get_curr_volt(struct
> voltagedomain *voltdm)
> - 		return 0;
> - 	}
> -
> --	vdd = container_of(voltdm, struct omap_vdd_info, voltdm);
> -+	vdd = voltdm->vdd;
> - 	if (!vdd->read_reg) {
> - 		pr_err("%s: No read API for reading vdd_%s regs\n",
> - 			__func__, voltdm->name);
> -@@ -736,7 +744,7 @@ void omap_vp_enable(struct voltagedomain *voltdm)
> - 		return;
> - 	}
> -
> --	vdd = container_of(voltdm, struct omap_vdd_info, voltdm);
> -+	vdd = voltdm->vdd;
> - 	if (!vdd->read_reg || !vdd->write_reg) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> - 			__func__, voltdm->name);
> -@@ -747,7 +755,7 @@ void omap_vp_enable(struct voltagedomain *voltdm)
> - 	if (vdd->vp_enabled)
> - 		return;
> -
> --	vp_latch_vsel(vdd);
> -+	vp_latch_vsel(voltdm);
> -
> - 	/* Enable VP */
> - 	vpconfig = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> -@@ -774,7 +782,7 @@ void omap_vp_disable(struct voltagedomain *voltdm)
> - 		return;
> - 	}
> -
> --	vdd = container_of(voltdm, struct omap_vdd_info, voltdm);
> -+	vdd = voltdm->vdd;
> - 	if (!vdd->read_reg || !vdd->write_reg) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> - 			__func__, voltdm->name);
> -@@ -827,7 +835,7 @@ int omap_voltage_scale_vdd(struct voltagedomain
> *voltdm,
> - 		return -EINVAL;
> - 	}
> -
> --	vdd = container_of(voltdm, struct omap_vdd_info, voltdm);
> -+	vdd = voltdm->vdd;
> -
> - 	if (!vdd->volt_scale) {
> - 		pr_err("%s: No voltage scale API registered for vdd_%s\n",
> -@@ -835,7 +843,7 @@ int omap_voltage_scale_vdd(struct voltagedomain
> *voltdm,
> - 		return -ENODATA;
> - 	}
> -
> --	return vdd->volt_scale(vdd, target_volt);
> -+	return vdd->volt_scale(voltdm, target_volt);
> - }
> -
> - /**
> -@@ -888,7 +896,7 @@ void omap_voltage_get_volttable(struct
> voltagedomain *voltdm,
> - 		return;
> - 	}
> -
> --	vdd = container_of(voltdm, struct omap_vdd_info, voltdm);
> -+	vdd = voltdm->vdd;
> -
> - 	*volt_data = vdd->volt_data;
> - }
> -@@ -919,7 +927,7 @@ struct omap_volt_data
> *omap_voltage_get_voltdata(struct voltagedomain *voltdm,
> - 		return ERR_PTR(-EINVAL);
> - 	}
> -
> --	vdd = container_of(voltdm, struct omap_vdd_info, voltdm);
> -+	vdd = voltdm->vdd;
> -
> - 	if (!vdd->volt_data) {
> - 		pr_warning("%s: voltage table does not exist for vdd_%s\n",
> -@@ -957,7 +965,7 @@ int omap_voltage_register_pmic(struct
> voltagedomain *voltdm,
> - 		return -EINVAL;
> - 	}
> -
> --	vdd = container_of(voltdm, struct omap_vdd_info, voltdm);
> -+	vdd = voltdm->vdd;
> -
> - 	vdd->pmic_info = pmic_info;
> -
> -@@ -984,7 +992,7 @@ struct dentry *omap_voltage_get_dbgdir(struct
> voltagedomain *voltdm)
> - 		return NULL;
> - 	}
> -
> --	vdd = container_of(voltdm, struct omap_vdd_info, voltdm);
> -+	vdd = voltdm->vdd;
> -
> - 	return vdd->debug_dir;
> - }
> -@@ -1009,7 +1017,7 @@ void omap_change_voltscale_method(struct
> voltagedomain *voltdm,
> - 		return;
> - 	}
> -
> --	vdd = container_of(voltdm, struct omap_vdd_info, voltdm);
> -+	vdd = voltdm->vdd;
> -
> - 	switch (voltscale_method) {
> - 	case VOLTSCALE_VPFORCEUPDATE:
> -@@ -1025,38 +1033,6 @@ void omap_change_voltscale_method(struct
> voltagedomain *voltdm,
> - }
> -
> - /**
> -- * omap_voltage_domain_lookup() - API to get the voltage domain pointer
> -- * @name:	Name of the voltage domain
> -- *
> -- * This API looks up in the global vdd_info struct for the
> -- * existence of voltage domain <name>. If it exists, the API returns
> -- * a pointer to the voltage domain structure corresponding to the
> -- * VDD<name>. Else retuns error pointer.
> -- */
> --struct voltagedomain *omap_voltage_domain_lookup(char *name)
> --{
> --	int i;
> --
> --	if (!vdd_info) {
> --		pr_err("%s: Voltage driver init not yet happened.Faulting!\n",
> --			__func__);
> --		return ERR_PTR(-EINVAL);
> --	}
> --
> --	if (!name) {
> --		pr_err("%s: No name to get the votage domain!\n", __func__);
> --		return ERR_PTR(-EINVAL);
> --	}
> --
> --	for (i = 0; i < nr_scalable_vdd; i++) {
> --		if (!(strcmp(name, vdd_info[i]->voltdm.name)))
> --			return &vdd_info[i]->voltdm;
> --	}
> --
> --	return ERR_PTR(-EINVAL);
> --}
> --
> --/**
> -  * omap_voltage_late_init() - Init the various voltage parameters
> -  *
> -  * This API is to be called in the later stages of the
> -@@ -1065,9 +1041,9 @@ struct voltagedomain
> *omap_voltage_domain_lookup(char *name)
> -  */
> - int __init omap_voltage_late_init(void)
> - {
> --	int i;
> -+	struct voltagedomain *voltdm;
> -
> --	if (!vdd_info) {
> -+	if (list_empty(&voltdm_list)) {
> - 		pr_err("%s: Voltage driver support not added\n",
> - 			__func__);
> - 		return -EINVAL;
> -@@ -1077,22 +1053,81 @@ int __init omap_voltage_late_init(void)
> - 	if (IS_ERR(voltage_dir))
> - 		pr_err("%s: Unable to create voltage debugfs main dir\n",
> - 			__func__);
> --	for (i = 0; i < nr_scalable_vdd; i++) {
> --		if (omap_vdd_data_configure(vdd_info[i]))
> --			continue;
> --		omap_vc_init(vdd_info[i]);
> --		vp_init(vdd_info[i]);
> --		vdd_debugfs_init(vdd_info[i]);
> -+	list_for_each_entry(voltdm, &voltdm_list, node) {
> -+		if (voltdm->vdd) {
> -+			if (omap_vdd_data_configure(voltdm))
> -+				continue;
> -+			omap_vc_init(voltdm);
> -+			vp_init(voltdm);
> -+			vdd_debugfs_init(voltdm);
> -+		}
> - 	}
> -
> - 	return 0;
> - }
> -
> --/* XXX document */
> --int __init omap_voltage_early_init(struct omap_vdd_info
> *omap_vdd_array[],
> --				   u8 omap_vdd_count)
> -+static struct voltagedomain *_voltdm_lookup(const char *name)
> - {
> --	vdd_info = omap_vdd_array;
> --	nr_scalable_vdd = omap_vdd_count;
> -+	struct voltagedomain *voltdm, *temp_voltdm;
> -+
> -+	voltdm = NULL;
> -+
> -+	list_for_each_entry(temp_voltdm, &voltdm_list, node) {
> -+		if (!strcmp(name, temp_voltdm->name)) {
> -+			voltdm = temp_voltdm;
> -+			break;
> -+		}
> -+	}
> -+
> -+	return voltdm;
> -+}
> -+
> -+static int _voltdm_register(struct voltagedomain *voltdm)
> -+{
> -+	if (!voltdm || !voltdm->name)
> -+		return -EINVAL;
> -+
> -+	list_add(&voltdm->node, &voltdm_list);
> -+
> -+	pr_debug("voltagedomain: registered %s\n", voltdm->name);
> -+
> - 	return 0;
> - }
> -+
> -+/**
> -+ * voltdm_lookup - look up a voltagedomain by name, return a pointer
> -+ * @name: name of voltagedomain
> -+ *
> -+ * Find a registered voltagedomain by its name @name.  Returns a pointer
> -+ * to the struct voltagedomain if found, or NULL otherwise.
> -+ */
> -+struct voltagedomain *voltdm_lookup(const char *name)
> -+{
> -+	struct voltagedomain *voltdm ;
> -+
> -+	if (!name)
> -+		return NULL;
> -+
> -+	voltdm = _voltdm_lookup(name);
> -+
> -+	return voltdm;
> -+}
> -+
> -+/**
> -+ * voltdm_init - set up the voltagedomain layer
> -+ * @voltdm_list: array of struct voltagedomain pointers to register
> -+ *
> -+ * Loop through the array of voltagedomains @voltdm_list, registering all
> -+ * that are available on the current CPU. If voltdm_list is supplied
> -+ * and not null, all of the referenced voltagedomains will be
> -+ * registered.  No return value.
> -+ */
> -+void voltdm_init(struct voltagedomain **voltdms)
> -+{
> -+	struct voltagedomain **v;
> -+
> -+	if (voltdms) {
> -+		for (v = voltdms; *v; v++)
> -+			_voltdm_register(*v);
> -+	}
> -+}
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index db23d49..5440298 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -31,6 +31,8 @@
> - #define OMAP3_VOLTOFFSET	0xff
> - #define OMAP3_VOLTSETUP2	0xff
> -
> -+struct omap_vdd_info;
> -+
> - /**
> -  * struct omap_vfsm_instance_data - per-voltage manager FSM
> register/bitfield
> -  * data
> -@@ -50,11 +52,14 @@ struct omap_vfsm_instance_data {
> -
> - /**
> -  * struct voltagedomain - omap voltage domain global structure.
> -- * @name:	Name of the voltage domain which can be used as a unique
> -- *		identifier.
> -+ * @name: Name of the voltage domain which can be used as a unique
> identifier.
> -+ * @node: list_head linking all voltage domains
> -+ * @vdd: to be removed
> -  */
> - struct voltagedomain {
> - 	char *name;
> -+	struct list_head node;
> -+	struct omap_vdd_info *vdd;
> - };
> -
> - /**
> -@@ -116,7 +121,6 @@ struct omap_volt_pmic_info {
> -  * @vc_data		: structure containing various various vc registers,
> -  *			  shifts, masks etc.
> -  * @vfsm                : voltage manager FSM data
> -- * @voltdm		: pointer to the voltage domain structure
> -  * @debug_dir		: debug directory for this voltage domain.
> -  * @curr_volt		: current voltage for this vdd.
> -  * @prm_irqst_mod       : PRM module id used for PRM IRQ status register
> access
> -@@ -130,7 +134,6 @@ struct omap_vdd_info {
> - 	struct omap_vp_runtime_data vp_rt_data;
> - 	struct omap_vc_instance_data *vc_data;
> - 	const struct omap_vfsm_instance_data *vfsm;
> --	struct voltagedomain voltdm;
> - 	struct dentry *debug_dir;
> - 	u32 curr_volt;
> - 	bool vp_enabled;
> -@@ -139,7 +142,7 @@ struct omap_vdd_info {
> - 	u8 prm_irqst_reg;
> - 	u32 (*read_reg) (u16 mod, u8 offset);
> - 	void (*write_reg) (u32 val, u16 mod, u8 offset);
> --	int (*volt_scale) (struct omap_vdd_info *vdd,
> -+	int (*volt_scale) (struct voltagedomain *voltdm,
> - 		unsigned long target_volt);
> - };
> -
> -@@ -155,16 +158,11 @@ struct omap_volt_data
> *omap_voltage_get_voltdata(struct voltagedomain *voltdm,
> - 		unsigned long volt);
> - unsigned long omap_voltage_get_nom_volt(struct voltagedomain *voltdm);
> - struct dentry *omap_voltage_get_dbgdir(struct voltagedomain *voltdm);
> --int __init omap_voltage_early_init(struct omap_vdd_info
> *omap_vdd_array[],
> --				   u8 omap_vdd_count);
> - #ifdef CONFIG_PM
> - int omap_voltage_register_pmic(struct voltagedomain *voltdm,
> - 		struct omap_volt_pmic_info *pmic_info);
> - void omap_change_voltscale_method(struct voltagedomain *voltdm,
> - 		int voltscale_method);
> --/* API to get the voltagedomain pointer */
> --struct voltagedomain *omap_voltage_domain_lookup(char *name);
> --
> - int omap_voltage_late_init(void);
> - #else
> - static inline int omap_voltage_register_pmic(struct voltagedomain *voltdm,
> -@@ -178,10 +176,11 @@ static inline int omap_voltage_late_init(void)
> - {
> - 	return -EINVAL;
> - }
> --static inline struct voltagedomain *omap_voltage_domain_lookup(char
> *name)
> --{
> --	return ERR_PTR(-EINVAL);
> --}
> - #endif
> -
> -+extern void omap3xxx_voltagedomains_init(void);
> -+extern void omap44xx_voltagedomains_init(void);
> -+
> -+struct voltagedomain *voltdm_lookup(const char *name);
> -+void voltdm_init(struct voltagedomain **voltdm_list);
> - #endif
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index f831f9a..4bee412 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -43,9 +43,6 @@ static struct omap_vdd_info omap3_vdd1_info = {
> - 	.vp_data = &omap3_vp1_data,
> - 	.vc_data = &omap3_vc1_data,
> - 	.vfsm = &omap3_vdd1_vfsm_data,
> --	.voltdm = {
> --		.name = "mpu",
> --	},
> - };
> -
> - static const struct omap_vfsm_instance_data omap3_vdd2_vfsm_data = {
> -@@ -60,23 +57,26 @@ static struct omap_vdd_info omap3_vdd2_info = {
> - 	.vp_data = &omap3_vp2_data,
> - 	.vc_data = &omap3_vc2_data,
> - 	.vfsm = &omap3_vdd2_vfsm_data,
> --	.voltdm = {
> --		.name = "core",
> --	},
> - };
> -
> --/* OMAP3 VDD structures */
> --static struct omap_vdd_info *omap3_vdd_info[] = {
> --	&omap3_vdd1_info,
> --	&omap3_vdd2_info,
> -+static struct voltagedomain omap3_voltdm_mpu = {
> -+	.name = "mpu",
> -+	.vdd = &omap3_vdd1_info,
> - };
> -
> --/* OMAP3 specific voltage init functions */
> --static int __init omap3xxx_voltage_early_init(void)
> --{
> --	if (!cpu_is_omap34xx())
> --		return 0;
> -+static struct voltagedomain omap3_voltdm_core = {
> -+	.name = "core",
> -+	.vdd = &omap3_vdd2_info,
> -+};
> -
> -+static struct voltagedomain *voltagedomains_omap3[] __initdata = {
> -+	&omap3_voltdm_mpu,
> -+	&omap3_voltdm_core,
> -+	NULL,
> -+};
> -+
> -+void __init omap3xxx_voltagedomains_init(void)
> -+{
> - 	/*
> - 	 * XXX Will depend on the process, validation, and binning
> - 	 * for the currently-running IC
> -@@ -89,7 +89,5 @@ static int __init omap3xxx_voltage_early_init(void)
> - 		omap3_vdd2_info.volt_data = omap34xx_vddcore_volt_data;
> - 	}
> -
> --	return omap_voltage_early_init(omap3_vdd_info,
> --				       ARRAY_SIZE(omap3_vdd_info));
> -+	voltdm_init(voltagedomains_omap3);
> - };
> --core_initcall(omap3xxx_voltage_early_init);
> -diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -index 64dc265..245fdf9 100644
> ---- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -@@ -42,9 +42,6 @@ static struct omap_vdd_info omap4_vdd_mpu_info = {
> - 	.vp_data = &omap4_vp_mpu_data,
> - 	.vc_data = &omap4_vc_mpu_data,
> - 	.vfsm = &omap4_vdd_mpu_vfsm_data,
> --	.voltdm = {
> --		.name = "mpu",
> --	},
> - };
> -
> - static const struct omap_vfsm_instance_data omap4_vdd_iva_vfsm_data = {
> -@@ -57,9 +54,6 @@ static struct omap_vdd_info omap4_vdd_iva_info = {
> - 	.vp_data = &omap4_vp_iva_data,
> - 	.vc_data = &omap4_vc_iva_data,
> - 	.vfsm = &omap4_vdd_iva_vfsm_data,
> --	.voltdm = {
> --		.name = "iva",
> --	},
> - };
> -
> - static const struct omap_vfsm_instance_data omap4_vdd_core_vfsm_data = {
> -@@ -72,24 +66,32 @@ static struct omap_vdd_info omap4_vdd_core_info =
> {
> - 	.vp_data = &omap4_vp_core_data,
> - 	.vc_data = &omap4_vc_core_data,
> - 	.vfsm = &omap4_vdd_core_vfsm_data,
> --	.voltdm = {
> --		.name = "core",
> --	},
> - };
> -
> --/* OMAP4 VDD structures */
> --static struct omap_vdd_info *omap4_vdd_info[] = {
> --	&omap4_vdd_mpu_info,
> --	&omap4_vdd_iva_info,
> --	&omap4_vdd_core_info,
> -+static struct voltagedomain omap4_voltdm_mpu = {
> -+	.name = "mpu",
> -+	.vdd = &omap4_vdd_mpu_info,
> - };
> -
> --/* OMAP4 specific voltage init functions */
> --static int __init omap44xx_voltage_early_init(void)
> --{
> --	if (!cpu_is_omap44xx())
> --		return 0;
> -+static struct voltagedomain omap4_voltdm_iva = {
> -+	.name = "iva",
> -+	.vdd = &omap4_vdd_iva_info,
> -+};
> -+
> -+static struct voltagedomain omap4_voltdm_core = {
> -+	.name = "core",
> -+	.vdd = &omap4_vdd_core_info,
> -+};
> -
> -+static struct voltagedomain *voltagedomains_omap4[] __initdata = {
> -+	&omap4_voltdm_mpu,
> -+	&omap4_voltdm_iva,
> -+	&omap4_voltdm_core,
> -+	NULL,
> -+};
> -+
> -+void __init omap44xx_voltagedomains_init(void)
> -+{
> - 	/*
> - 	 * XXX Will depend on the process, validation, and binning
> - 	 * for the currently-running IC
> -@@ -98,7 +100,5 @@ static int __init omap44xx_voltage_early_init(void)
> - 	omap4_vdd_iva_info.volt_data = omap44xx_vdd_iva_volt_data;
> - 	omap4_vdd_core_info.volt_data = omap44xx_vdd_core_volt_data;
> -
> --	return omap_voltage_early_init(omap4_vdd_info,
> --				       ARRAY_SIZE(omap4_vdd_info));
> -+	voltdm_init(voltagedomains_omap4);
> - };
> --core_initcall(omap44xx_voltage_early_init);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0100-OMAP3-
> voltage-rename-mpu-voltagedomain-to-mpu_iva.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0100-OMAP3-voltage-rename-mpu-
> voltagedomain-to-mpu_iva.patch
> deleted file mode 100644
> index 195235d..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0100-OMAP3-voltage-
> rename-mpu-voltagedomain-to-mpu_iva.patch
> +++ /dev/null
> @@ -1,82 +0,0 @@
> -From b98b320e9e4eeb93356a80b597e578c5547cdff9 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Wed, 23 Mar 2011 11:18:08 -0700
> -Subject: [PATCH 100/149] OMAP3: voltage: rename "mpu" voltagedomain to
> "mpu_iva"
> -
> -This voltage domain (a.k.a. VDD1) contains both the MPU and the IVA, so
> -rename appropriately.
> -
> -Also fixup any users of the "mpu" name to use "mpu_iva"
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/omap_hwmod_3xxx_data.c    |    4 ++--
> - arch/arm/mach-omap2/omap_twl.c                |    2 +-
> - arch/arm/mach-omap2/pm.c                      |    2 +-
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |    2 +-
> - 4 files changed, 5 insertions(+), 5 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -index 25bf43b..59fdb9f 100644
> ---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> -@@ -2597,7 +2597,7 @@ static struct omap_hwmod omap34xx_sr1_hwmod
> = {
> - 	.name		= "sr1_hwmod",
> - 	.class		= &omap34xx_smartreflex_hwmod_class,
> - 	.main_clk	= "sr1_fck",
> --	.vdd_name	= "mpu",
> -+	.vdd_name	= "mpu_iva",
> - 	.prcm		= {
> - 		.omap2 = {
> - 			.prcm_reg_id = 1,
> -@@ -2619,7 +2619,7 @@ static struct omap_hwmod omap36xx_sr1_hwmod
> = {
> - 	.name		= "sr1_hwmod",
> - 	.class		= &omap36xx_smartreflex_hwmod_class,
> - 	.main_clk	= "sr1_fck",
> --	.vdd_name	= "mpu",
> -+	.vdd_name	= "mpu_iva",
> - 	.prcm		= {
> - 		.omap2 = {
> - 			.prcm_reg_id = 1,
> -diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-
> omap2/omap_twl.c
> -index fcd2f62..760487b 100644
> ---- a/arch/arm/mach-omap2/omap_twl.c
> -+++ b/arch/arm/mach-omap2/omap_twl.c
> -@@ -288,7 +288,7 @@ int __init omap3_twl_init(void)
> - 	if (!twl_sr_enable_autoinit)
> - 		omap3_twl_set_sr_bit(true);
> -
> --	voltdm = voltdm_lookup("mpu");
> -+	voltdm = voltdm_lookup("mpu_iva");
> - 	omap_voltage_register_pmic(voltdm, &omap3_mpu_volt_info);
> -
> - 	voltdm = voltdm_lookup("core");
> -diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
> -index 3bce29b..f81340e 100644
> ---- a/arch/arm/mach-omap2/pm.c
> -+++ b/arch/arm/mach-omap2/pm.c
> -@@ -228,7 +228,7 @@ static void __init omap3_init_voltages(void)
> - 	if (!cpu_is_omap34xx())
> - 		return;
> -
> --	omap2_set_init_voltage("mpu", "dpll1_ck", mpu_dev);
> -+	omap2_set_init_voltage("mpu_iva", "dpll1_ck", mpu_dev);
> - 	omap2_set_init_voltage("core", "l3_ick", l3_dev);
> - }
> -
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index 4bee412..2167ef4 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -60,7 +60,7 @@ static struct omap_vdd_info omap3_vdd2_info = {
> - };
> -
> - static struct voltagedomain omap3_voltdm_mpu = {
> --	.name = "mpu",
> -+	.name = "mpu_iva",
> - 	.vdd = &omap3_vdd1_info,
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0101-OMAP3-
> voltagedomain-data-add-wakeup-domain.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0101-OMAP3-voltagedomain-data-add-wakeup-
> domain.patch
> deleted file mode 100644
> index 09c1ef4..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0101-OMAP3-
> voltagedomain-data-add-wakeup-domain.patch
> +++ /dev/null
> @@ -1,37 +0,0 @@
> -From 17cd354184d7ffe9fcef97a0e1beeb6e8b2a2c38 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Wed, 23 Mar 2011 13:30:33 -0700
> -Subject: [PATCH 101/149] OMAP3: voltagedomain data: add wakeup domain
> -
> -Add wakeup voltage domain so that the wakeup powerdomain can have an
> -associated powerdomain.  Note that the scalable flat is not set for
> -the this voltagedomain, so it will not be fully initialized like
> -scalable voltage domains.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |    5 +++++
> - 1 files changed, 5 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index 2167ef4..42d0b11 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -69,9 +69,14 @@ static struct voltagedomain omap3_voltdm_core = {
> - 	.vdd = &omap3_vdd2_info,
> - };
> -
> -+static struct voltagedomain omap3_voltdm_wkup = {
> -+	.name = "wakeup",
> -+};
> -+
> - static struct voltagedomain *voltagedomains_omap3[] __initdata = {
> - 	&omap3_voltdm_mpu,
> - 	&omap3_voltdm_core,
> -+	&omap3_voltdm_wkup,
> - 	NULL,
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0102-OMAP3-
> voltage-add-scalable-flag-to-voltagedomain.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0102-OMAP3-voltage-add-scalable-flag-to-
> voltagedomain.patch
> deleted file mode 100644
> index c12fdb5..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0102-OMAP3-voltage-add-
> scalable-flag-to-voltagedomain.patch
> +++ /dev/null
> @@ -1,93 +0,0 @@
> -From b9230219fb50ac16be3f24fe872bd9537b665871 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Wed, 23 Mar 2011 17:00:21 -0700
> -Subject: [PATCH 102/149] OMAP3+: voltage: add scalable flag to
> voltagedomain
> -
> -Add a 'bool scalable' flag to the struct powerdomain and set it for
> -the scalable domains on OMAP3 and OMAP4.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/voltage.c                 |    3 +++
> - arch/arm/mach-omap2/voltage.h                 |    2 ++
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |    2 ++
> - arch/arm/mach-omap2/voltagedomains44xx_data.c |    3 +++
> - 4 files changed, 10 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 4f0361a..48a2593 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -1054,6 +1054,9 @@ int __init omap_voltage_late_init(void)
> - 		pr_err("%s: Unable to create voltage debugfs main dir\n",
> - 			__func__);
> - 	list_for_each_entry(voltdm, &voltdm_list, node) {
> -+		if (!voltdm->scalable)
> -+			continue;
> -+
> - 		if (voltdm->vdd) {
> - 			if (omap_vdd_data_configure(voltdm))
> - 				continue;
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 5440298..25cfb5c 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -53,11 +53,13 @@ struct omap_vfsm_instance_data {
> - /**
> -  * struct voltagedomain - omap voltage domain global structure.
> -  * @name: Name of the voltage domain which can be used as a unique
> identifier.
> -+ * @scalable: Whether or not this voltage domain is scalable
> -  * @node: list_head linking all voltage domains
> -  * @vdd: to be removed
> -  */
> - struct voltagedomain {
> - 	char *name;
> -+	bool scalable;
> - 	struct list_head node;
> - 	struct omap_vdd_info *vdd;
> - };
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index 42d0b11..d7e1052 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -61,11 +61,13 @@ static struct omap_vdd_info omap3_vdd2_info = {
> -
> - static struct voltagedomain omap3_voltdm_mpu = {
> - 	.name = "mpu_iva",
> -+	.scalable = true,
> - 	.vdd = &omap3_vdd1_info,
> - };
> -
> - static struct voltagedomain omap3_voltdm_core = {
> - 	.name = "core",
> -+	.scalable = true,
> - 	.vdd = &omap3_vdd2_info,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -index 245fdf9..95e1ce5 100644
> ---- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -@@ -70,16 +70,19 @@ static struct omap_vdd_info omap4_vdd_core_info =
> {
> -
> - static struct voltagedomain omap4_voltdm_mpu = {
> - 	.name = "mpu",
> -+	.scalable = true,
> - 	.vdd = &omap4_vdd_mpu_info,
> - };
> -
> - static struct voltagedomain omap4_voltdm_iva = {
> - 	.name = "iva",
> -+	.scalable = true,
> - 	.vdd = &omap4_vdd_iva_info,
> - };
> -
> - static struct voltagedomain omap4_voltdm_core = {
> - 	.name = "core",
> -+	.scalable = true,
> - 	.vdd = &omap4_vdd_core_info,
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0103-OMAP2-
> powerdomain-add-voltagedomain-to-struct-powerd.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0103-OMAP2-powerdomain-add-
> voltagedomain-to-struct-powerd.patch
> deleted file mode 100644
> index 06ec89b..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0103-OMAP2-
> powerdomain-add-voltagedomain-to-struct-powerd.patch
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -From 4380f30498f0096856479011df85f956081ce26c Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Wed, 23 Mar 2011 07:22:23 -0700
> -Subject: [PATCH 103/149] OMAP2+: powerdomain: add voltagedomain to
> struct powerdomain
> -
> -Each powerdomain is associated with a voltage domain.  Add an entry to
> -struct powerdomain where the enclosing voltagedomain can be
> -referenced.
> -
> -Modeled after similar relationship between clockdomains and powerdomains.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/powerdomain.h |    7 +++++++
> - 1 files changed, 7 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/powerdomain.h b/arch/arm/mach-
> omap2/powerdomain.h
> -index d23d979..9ce920d 100644
> ---- a/arch/arm/mach-omap2/powerdomain.h
> -+++ b/arch/arm/mach-omap2/powerdomain.h
> -@@ -24,6 +24,8 @@
> -
> - #include <plat/cpu.h>
> -
> -+#include "voltage.h"
> -+
> - /* Powerdomain basic power states */
> - #define PWRDM_POWER_OFF		0x0
> - #define PWRDM_POWER_RET		0x1
> -@@ -78,6 +80,7 @@ struct powerdomain;
> - /**
> -  * struct powerdomain - OMAP powerdomain
> -  * @name: Powerdomain name
> -+ * @voltdm: voltagedomain containing this powerdomain
> -  * @omap_chip: represents the OMAP chip types containing this pwrdm
> -  * @prcm_offs: the address offset from CM_BASE/PRM_BASE
> -  * @prcm_partition: (OMAP4 only) the PRCM partition ID containing
> @prcm_offs
> -@@ -98,6 +101,10 @@ struct powerdomain;
> -  */
> - struct powerdomain {
> - 	const char *name;
> -+	union {
> -+		const char *name;
> -+		struct voltagedomain *ptr;
> -+	} voltdm;
> - 	const struct omap_chip_id omap_chip;
> - 	const s16 prcm_offs;
> - 	const u8 pwrsts;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0104-OMAP2-add-
> voltage-domains-and-connect-to-powerdomain.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0104-OMAP2-add-voltage-domains-
> and-connect-to-powerdomain.patch
> deleted file mode 100644
> index 2e7b9b8..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0104-OMAP2-add-voltage-
> domains-and-connect-to-powerdomain.patch
> +++ /dev/null
> @@ -1,138 +0,0 @@
> -From 090b5bcad1bf67d208685461c30b68cd1ab535c5 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Wed, 23 Mar 2011 16:09:41 -0700
> -Subject: [PATCH 104/149] OMAP2: add voltage domains and connect to
> powerdomains
> -
> -Create basic voltagedomains for OMAP2 and associate OMAP2 powerdomains
> -with the newly created voltage domains.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/Makefile                  |    3 +-
> - arch/arm/mach-omap2/io.c                      |    2 +
> - arch/arm/mach-omap2/powerdomains2xxx_data.c   |    4 +++
> - arch/arm/mach-omap2/voltage.h                 |    1 +
> - arch/arm/mach-omap2/voltagedomains2xxx_data.c |   32
> +++++++++++++++++++++++++
> - 5 files changed, 41 insertions(+), 1 deletions(-)
> - create mode 100644 arch/arm/mach-omap2/voltagedomains2xxx_data.c
> -
> -diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-
> omap2/Makefile
> -index f343365..1b6cecd 100644
> ---- a/arch/arm/mach-omap2/Makefile
> -+++ b/arch/arm/mach-omap2/Makefile
> -@@ -91,7 +91,8 @@ obj-$(CONFIG_ARCH_OMAP4)		+= prcm.o
> cm2xxx_3xxx.o cminst44xx.o \
> - # OMAP voltage domains
> - ifeq ($(CONFIG_PM),y)
> - voltagedomain-common			:= voltage.o
> --obj-$(CONFIG_ARCH_OMAP2)		+= $(voltagedomain-common)
> -+obj-$(CONFIG_ARCH_OMAP2)		+= $(voltagedomain-common)
> \
> -+					   voltagedomains2xxx_data.o
> - obj-$(CONFIG_ARCH_OMAP3)		+= $(voltagedomain-common) \
> - 					   voltagedomains3xxx_data.o
> - obj-$(CONFIG_ARCH_OMAP4)		+= $(voltagedomain-common) \
> -diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
> -index 9f5a846..4c8a5de 100644
> ---- a/arch/arm/mach-omap2/io.c
> -+++ b/arch/arm/mach-omap2/io.c
> -@@ -342,10 +342,12 @@ void __init
> omap2_init_common_infrastructure(void)
> - 	u8 postsetup_state;
> -
> - 	if (cpu_is_omap242x()) {
> -+		omap2xxx_voltagedomains_init();
> - 		omap2xxx_powerdomains_init();
> - 		omap2xxx_clockdomains_init();
> - 		omap2420_hwmod_init();
> - 	} else if (cpu_is_omap243x()) {
> -+		omap2xxx_voltagedomains_init();
> - 		omap2xxx_powerdomains_init();
> - 		omap2xxx_clockdomains_init();
> - 		omap2430_hwmod_init();
> -diff --git a/arch/arm/mach-omap2/powerdomains2xxx_data.c
> b/arch/arm/mach-omap2/powerdomains2xxx_data.c
> -index cc389fb..274f64c 100644
> ---- a/arch/arm/mach-omap2/powerdomains2xxx_data.c
> -+++ b/arch/arm/mach-omap2/powerdomains2xxx_data.c
> -@@ -38,6 +38,7 @@ static struct powerdomain dsp_pwrdm = {
> - 	.pwrsts_mem_on	  = {
> - 		[0] = PWRSTS_ON,
> - 	},
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - static struct powerdomain mpu_24xx_pwrdm = {
> -@@ -53,6 +54,7 @@ static struct powerdomain mpu_24xx_pwrdm = {
> - 	.pwrsts_mem_on	  = {
> - 		[0] = PWRSTS_ON,
> - 	},
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - static struct powerdomain core_24xx_pwrdm = {
> -@@ -71,6 +73,7 @@ static struct powerdomain core_24xx_pwrdm = {
> - 		[1] = PWRSTS_OFF_RET_ON, /* MEM2ONSTATE */
> - 		[2] = PWRSTS_OFF_RET_ON, /* MEM3ONSTATE */
> - 	},
> -+	.voltdm           = { .name = "core" },
> - };
> -
> -
> -@@ -95,6 +98,7 @@ static struct powerdomain mdm_pwrdm = {
> - 	.pwrsts_mem_on	  = {
> - 		[0] = PWRSTS_ON,  /* MEMONSTATE */
> - 	},
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - #endif     /* CONFIG_SOC_OMAP2430 */
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 25cfb5c..cacd76e 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -180,6 +180,7 @@ static inline int omap_voltage_late_init(void)
> - }
> - #endif
> -
> -+extern void omap2xxx_voltagedomains_init(void);
> - extern void omap3xxx_voltagedomains_init(void);
> - extern void omap44xx_voltagedomains_init(void);
> -
> -diff --git a/arch/arm/mach-omap2/voltagedomains2xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains2xxx_data.c
> -new file mode 100644
> -index 0000000..69ff261
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/voltagedomains2xxx_data.c
> -@@ -0,0 +1,32 @@
> -+/*
> -+ * OMAP3 voltage domain data
> -+ *
> -+ * Copyright (C) 2007, 2010 Texas Instruments, Inc.
> -+
> -+ * This program is free software; you can redistribute it and/or modify
> -+ * it under the terms of the GNU General Public License version 2 as
> -+ * published by the Free Software Foundation.
> -+ */
> -+#include <linux/kernel.h>
> -+#include <linux/init.h>
> -+
> -+#include "voltage.h"
> -+
> -+static struct voltagedomain omap2_voltdm_core = {
> -+	.name = "core",
> -+};
> -+
> -+static struct voltagedomain omap2_voltdm_wkup = {
> -+	.name = "wakeup",
> -+};
> -+
> -+static struct voltagedomain *voltagedomains_omap2[] __initdata = {
> -+	&omap2_voltdm_core,
> -+	&omap2_voltdm_wkup,
> -+	NULL,
> -+};
> -+
> -+void __init omap2xxx_voltagedomains_init(void)
> -+{
> -+	voltdm_init(voltagedomains_omap2);
> -+}
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0105-OMAP3-
> powerdomain-data-add-voltage-domains.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0105-OMAP3-powerdomain-data-add-voltage-
> domains.patch
> deleted file mode 100644
> index 7481b06..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0105-OMAP3-
> powerdomain-data-add-voltage-domains.patch
> +++ /dev/null
> @@ -1,161 +0,0 @@
> -From a44878fc9328d0ee6101d328f16a1f08bd123ba0 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Fri, 18 Mar 2011 14:12:18 -0700
> -Subject: [PATCH 105/149] OMAP3: powerdomain data: add voltage domains
> -
> -Add voltage domain name to indicate which voltagedomain each
> -powerdomain is in.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c |    2 ++
> - arch/arm/mach-omap2/powerdomains3xxx_data.c      |   16
> ++++++++++++++++
> - 2 files changed, 18 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c
> b/arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c
> -index 4210c33..2242c8e 100644
> ---- a/arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c
> -+++ b/arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c
> -@@ -70,6 +70,7 @@ struct powerdomain gfx_omap2_pwrdm = {
> - 	.pwrsts_mem_on	  = {
> - 		[0] = PWRSTS_ON,  /* MEMONSTATE */
> - 	},
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - struct powerdomain wkup_omap2_pwrdm = {
> -@@ -77,4 +78,5 @@ struct powerdomain wkup_omap2_pwrdm = {
> - 	.prcm_offs	= WKUP_MOD,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP24XX |
> CHIP_IS_OMAP3430),
> - 	.pwrsts		= PWRSTS_ON,
> -+	.voltdm         = { .name = "wakeup" },
> - };
> -diff --git a/arch/arm/mach-omap2/powerdomains3xxx_data.c
> b/arch/arm/mach-omap2/powerdomains3xxx_data.c
> -index 469a920..1f37c0c 100644
> ---- a/arch/arm/mach-omap2/powerdomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/powerdomains3xxx_data.c
> -@@ -52,6 +52,7 @@ static struct powerdomain iva2_pwrdm = {
> - 		[2] = PWRSTS_OFF_ON,
> - 		[3] = PWRSTS_ON,
> - 	},
> -+	.voltdm           = { .name = "mpu_iva" },
> - };
> -
> - static struct powerdomain mpu_3xxx_pwrdm = {
> -@@ -68,6 +69,7 @@ static struct powerdomain mpu_3xxx_pwrdm = {
> - 	.pwrsts_mem_on	  = {
> - 		[0] = PWRSTS_OFF_ON,
> - 	},
> -+	.voltdm           = { .name = "mpu_iva" },
> - };
> -
> - /*
> -@@ -98,6 +100,7 @@ static struct powerdomain
> core_3xxx_pre_es3_1_pwrdm = {
> - 		[0] = PWRSTS_OFF_RET_ON, /* MEM1ONSTATE */
> - 		[1] = PWRSTS_OFF_RET_ON, /* MEM2ONSTATE */
> - 	},
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - static struct powerdomain core_3xxx_es3_1_pwrdm = {
> -@@ -121,6 +124,7 @@ static struct powerdomain core_3xxx_es3_1_pwrdm
> = {
> - 		[0] = PWRSTS_OFF_RET_ON, /* MEM1ONSTATE */
> - 		[1] = PWRSTS_OFF_RET_ON, /* MEM2ONSTATE */
> - 	},
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - static struct powerdomain dss_pwrdm = {
> -@@ -136,6 +140,7 @@ static struct powerdomain dss_pwrdm = {
> - 	.pwrsts_mem_on	  = {
> - 		[0] = PWRSTS_ON,  /* MEMONSTATE */
> - 	},
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - /*
> -@@ -157,6 +162,7 @@ static struct powerdomain sgx_pwrdm = {
> - 	.pwrsts_mem_on	  = {
> - 		[0] = PWRSTS_ON,  /* MEMONSTATE */
> - 	},
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - static struct powerdomain cam_pwrdm = {
> -@@ -172,6 +178,7 @@ static struct powerdomain cam_pwrdm = {
> - 	.pwrsts_mem_on	  = {
> - 		[0] = PWRSTS_ON,  /* MEMONSTATE */
> - 	},
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - static struct powerdomain per_pwrdm = {
> -@@ -187,12 +194,14 @@ static struct powerdomain per_pwrdm = {
> - 	.pwrsts_mem_on	  = {
> - 		[0] = PWRSTS_ON,  /* MEMONSTATE */
> - 	},
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - static struct powerdomain emu_pwrdm = {
> - 	.name		= "emu_pwrdm",
> - 	.prcm_offs	= OMAP3430_EMU_MOD,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - static struct powerdomain neon_pwrdm = {
> -@@ -201,6 +210,7 @@ static struct powerdomain neon_pwrdm = {
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
> - 	.pwrsts		  = PWRSTS_OFF_RET_ON,
> - 	.pwrsts_logic_ret = PWRSTS_RET,
> -+	.voltdm           = { .name = "mpu_iva" },
> - };
> -
> - static struct powerdomain usbhost_pwrdm = {
> -@@ -223,36 +233,42 @@ static struct powerdomain usbhost_pwrdm = {
> - 	.pwrsts_mem_on	  = {
> - 		[0] = PWRSTS_ON,  /* MEMONSTATE */
> - 	},
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - static struct powerdomain dpll1_pwrdm = {
> - 	.name		= "dpll1_pwrdm",
> - 	.prcm_offs	= MPU_MOD,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
> -+	.voltdm           = { .name = "mpu_iva" },
> - };
> -
> - static struct powerdomain dpll2_pwrdm = {
> - 	.name		= "dpll2_pwrdm",
> - 	.prcm_offs	= OMAP3430_IVA2_MOD,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
> -+	.voltdm           = { .name = "mpu_iva" },
> - };
> -
> - static struct powerdomain dpll3_pwrdm = {
> - 	.name		= "dpll3_pwrdm",
> - 	.prcm_offs	= PLL_MOD,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - static struct powerdomain dpll4_pwrdm = {
> - 	.name		= "dpll4_pwrdm",
> - 	.prcm_offs	= PLL_MOD,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - static struct powerdomain dpll5_pwrdm = {
> - 	.name		= "dpll5_pwrdm",
> - 	.prcm_offs	= PLL_MOD,
> - 	.omap_chip	= OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES2),
> -+	.voltdm           = { .name = "core" },
> - };
> -
> - /* As powerdomains are added or removed above, this list must also be
> changed */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0106-OMAP4-
> powerdomain-data-add-voltage-domains.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0106-OMAP4-powerdomain-data-add-voltage-
> domains.patch
> deleted file mode 100644
> index 14b904f..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0106-OMAP4-
> powerdomain-data-add-voltage-domains.patch
> +++ /dev/null
> @@ -1,177 +0,0 @@
> -From a5fc50f2405625fef21c78c46e0e9427eb202f15 Mon Sep 17 00:00:00
> 2001
> -From: Benoit Cousson <b-cousson at ti.com>
> -Date: Mon, 21 Mar 2011 12:11:54 +0100
> -Subject: [PATCH 106/149] OMAP4: powerdomain data: add voltage domains
> -
> -Add voltage domain name to indicate which voltagedomain each
> -powerdomain is in.
> -
> -The fixed voltage domain like ldo_wakeup for emu and wkup power
> -domain is added too.
> -
> -Update the TI copyright date to 2011.
> -
> -Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> -Cc: Paul Walmsley <paul at pwsan.com>
> -[khilman at ti.com]: renamed wakeup domain: s/ldo_wakeup/wakeup/
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/powerdomains44xx_data.c   |   16
> ++++++++++++++++
> - arch/arm/mach-omap2/voltagedomains44xx_data.c |    5 +++++
> - 2 files changed, 21 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/powerdomains44xx_data.c
> b/arch/arm/mach-omap2/powerdomains44xx_data.c
> -index 247e794..45c7f29 100644
> ---- a/arch/arm/mach-omap2/powerdomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/powerdomains44xx_data.c
> -@@ -33,6 +33,7 @@
> - /* core_44xx_pwrdm: CORE power domain */
> - static struct powerdomain core_44xx_pwrdm = {
> - 	.name		  = "core_pwrdm",
> -+	.voltdm		  = { .name = "core" },
> - 	.prcm_offs	  = OMAP4430_PRM_CORE_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -59,6 +60,7 @@ static struct powerdomain core_44xx_pwrdm = {
> - /* gfx_44xx_pwrdm: 3D accelerator power domain */
> - static struct powerdomain gfx_44xx_pwrdm = {
> - 	.name		  = "gfx_pwrdm",
> -+	.voltdm		  = { .name = "core" },
> - 	.prcm_offs	  = OMAP4430_PRM_GFX_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -76,6 +78,7 @@ static struct powerdomain gfx_44xx_pwrdm = {
> - /* abe_44xx_pwrdm: Audio back end power domain */
> - static struct powerdomain abe_44xx_pwrdm = {
> - 	.name		  = "abe_pwrdm",
> -+	.voltdm		  = { .name = "iva" },
> - 	.prcm_offs	  = OMAP4430_PRM_ABE_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -96,6 +99,7 @@ static struct powerdomain abe_44xx_pwrdm = {
> - /* dss_44xx_pwrdm: Display subsystem power domain */
> - static struct powerdomain dss_44xx_pwrdm = {
> - 	.name		  = "dss_pwrdm",
> -+	.voltdm		  = { .name = "core" },
> - 	.prcm_offs	  = OMAP4430_PRM_DSS_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -114,6 +118,7 @@ static struct powerdomain dss_44xx_pwrdm = {
> - /* tesla_44xx_pwrdm: Tesla processor power domain */
> - static struct powerdomain tesla_44xx_pwrdm = {
> - 	.name		  = "tesla_pwrdm",
> -+	.voltdm		  = { .name = "iva" },
> - 	.prcm_offs	  = OMAP4430_PRM_TESLA_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -136,6 +141,7 @@ static struct powerdomain tesla_44xx_pwrdm = {
> - /* wkup_44xx_pwrdm: Wake-up power domain */
> - static struct powerdomain wkup_44xx_pwrdm = {
> - 	.name		  = "wkup_pwrdm",
> -+	.voltdm		  = { .name = "wakeup" },
> - 	.prcm_offs	  = OMAP4430_PRM_WKUP_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -152,6 +158,7 @@ static struct powerdomain wkup_44xx_pwrdm = {
> - /* cpu0_44xx_pwrdm: MPU0 processor and Neon coprocessor power domain
> */
> - static struct powerdomain cpu0_44xx_pwrdm = {
> - 	.name		  = "cpu0_pwrdm",
> -+	.voltdm		  = { .name = "mpu" },
> - 	.prcm_offs	  = OMAP4430_PRCM_MPU_CPU0_INST,
> - 	.prcm_partition	  = OMAP4430_PRCM_MPU_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -169,6 +176,7 @@ static struct powerdomain cpu0_44xx_pwrdm = {
> - /* cpu1_44xx_pwrdm: MPU1 processor and Neon coprocessor power domain
> */
> - static struct powerdomain cpu1_44xx_pwrdm = {
> - 	.name		  = "cpu1_pwrdm",
> -+	.voltdm		  = { .name = "mpu" },
> - 	.prcm_offs	  = OMAP4430_PRCM_MPU_CPU1_INST,
> - 	.prcm_partition	  = OMAP4430_PRCM_MPU_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -186,6 +194,7 @@ static struct powerdomain cpu1_44xx_pwrdm = {
> - /* emu_44xx_pwrdm: Emulation power domain */
> - static struct powerdomain emu_44xx_pwrdm = {
> - 	.name		  = "emu_pwrdm",
> -+	.voltdm		  = { .name = "wakeup" },
> - 	.prcm_offs	  = OMAP4430_PRM_EMU_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -202,6 +211,7 @@ static struct powerdomain emu_44xx_pwrdm = {
> - /* mpu_44xx_pwrdm: Modena processor and the Neon coprocessor power
> domain */
> - static struct powerdomain mpu_44xx_pwrdm = {
> - 	.name		  = "mpu_pwrdm",
> -+	.voltdm		  = { .name = "mpu" },
> - 	.prcm_offs	  = OMAP4430_PRM_MPU_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -223,6 +233,7 @@ static struct powerdomain mpu_44xx_pwrdm = {
> - /* ivahd_44xx_pwrdm: IVA-HD power domain */
> - static struct powerdomain ivahd_44xx_pwrdm = {
> - 	.name		  = "ivahd_pwrdm",
> -+	.voltdm		  = { .name = "iva" },
> - 	.prcm_offs	  = OMAP4430_PRM_IVAHD_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -247,6 +258,7 @@ static struct powerdomain ivahd_44xx_pwrdm = {
> - /* cam_44xx_pwrdm: Camera subsystem power domain */
> - static struct powerdomain cam_44xx_pwrdm = {
> - 	.name		  = "cam_pwrdm",
> -+	.voltdm		  = { .name = "core" },
> - 	.prcm_offs	  = OMAP4430_PRM_CAM_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -264,6 +276,7 @@ static struct powerdomain cam_44xx_pwrdm = {
> - /* l3init_44xx_pwrdm: L3 initators pheripherals power domain  */
> - static struct powerdomain l3init_44xx_pwrdm = {
> - 	.name		  = "l3init_pwrdm",
> -+	.voltdm		  = { .name = "core" },
> - 	.prcm_offs	  = OMAP4430_PRM_L3INIT_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -282,6 +295,7 @@ static struct powerdomain l3init_44xx_pwrdm = {
> - /* l4per_44xx_pwrdm: Target peripherals power domain */
> - static struct powerdomain l4per_44xx_pwrdm = {
> - 	.name		  = "l4per_pwrdm",
> -+	.voltdm		  = { .name = "core" },
> - 	.prcm_offs	  = OMAP4430_PRM_L4PER_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -305,6 +319,7 @@ static struct powerdomain l4per_44xx_pwrdm = {
> -  */
> - static struct powerdomain always_on_core_44xx_pwrdm = {
> - 	.name		  = "always_on_core_pwrdm",
> -+	.voltdm		  = { .name = "core" },
> - 	.prcm_offs	  = OMAP4430_PRM_ALWAYS_ON_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -@@ -314,6 +329,7 @@ static struct powerdomain
> always_on_core_44xx_pwrdm = {
> - /* cefuse_44xx_pwrdm: Customer efuse controller power domain */
> - static struct powerdomain cefuse_44xx_pwrdm = {
> - 	.name		  = "cefuse_pwrdm",
> -+	.voltdm		  = { .name = "core" },
> - 	.prcm_offs	  = OMAP4430_PRM_CEFUSE_INST,
> - 	.prcm_partition	  = OMAP4430_PRM_PARTITION,
> - 	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> -diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -index 95e1ce5..9a17b5e 100644
> ---- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -@@ -86,10 +86,15 @@ static struct voltagedomain omap4_voltdm_core = {
> - 	.vdd = &omap4_vdd_core_info,
> - };
> -
> -+static struct voltagedomain omap4_voltdm_wkup = {
> -+	.name = "wakeup",
> -+};
> -+
> - static struct voltagedomain *voltagedomains_omap4[] __initdata = {
> - 	&omap4_voltdm_mpu,
> - 	&omap4_voltdm_iva,
> - 	&omap4_voltdm_core,
> -+	&omap4_voltdm_wkup,
> - 	NULL,
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0107-OMAP2-
> powerdomain-add-voltage-domain-lookup-during-r.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0107-OMAP2-powerdomain-add-
> voltage-domain-lookup-during-r.patch
> deleted file mode 100644
> index 39c6fc1..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0107-OMAP2-
> powerdomain-add-voltage-domain-lookup-during-r.patch
> +++ /dev/null
> @@ -1,89 +0,0 @@
> -From a57d61507ab997c347ee584b86eb54391d79bf41 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Wed, 16 Mar 2011 15:52:47 -0700
> -Subject: [PATCH 107/149] OMAP2+: powerdomain: add voltage domain
> lookup during register
> -
> -When a powerdomain is registered, lookup the voltage domain by name
> -and keep a pointer to the containing voltagedomain in the powerdomain
> -structure.
> -
> -Modeled after similar method between powerdomain and clockdomain layers.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/powerdomain.c |   21 +++++++++++++++++++++
> - arch/arm/mach-omap2/powerdomain.h |    1 +
> - arch/arm/mach-omap2/voltage.h     |    1 +
> - 3 files changed, 23 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-
> omap2/powerdomain.c
> -index 9af0847..1d3013d 100644
> ---- a/arch/arm/mach-omap2/powerdomain.c
> -+++ b/arch/arm/mach-omap2/powerdomain.c
> -@@ -77,6 +77,7 @@ static struct powerdomain *_pwrdm_lookup(const char
> *name)
> - static int _pwrdm_register(struct powerdomain *pwrdm)
> - {
> - 	int i;
> -+	struct voltagedomain *voltdm;
> -
> - 	if (!pwrdm || !pwrdm->name)
> - 		return -EINVAL;
> -@@ -94,6 +95,14 @@ static int _pwrdm_register(struct powerdomain
> *pwrdm)
> - 	if (_pwrdm_lookup(pwrdm->name))
> - 		return -EEXIST;
> -
> -+	voltdm = voltdm_lookup(pwrdm->voltdm.name);
> -+	if (!voltdm) {
> -+		pr_err("powerdomain: %s: voltagedomain %s does not
> exist\n",
> -+		       pwrdm->name, pwrdm->voltdm.name);
> -+		return -EINVAL;
> -+	}
> -+	pwrdm->voltdm.ptr = voltdm;
> -+
> - 	list_add(&pwrdm->node, &pwrdm_list);
> -
> - 	/* Initialize the powerdomain's state counter */
> -@@ -383,6 +392,18 @@ int pwrdm_for_each_clkdm(struct powerdomain
> *pwrdm,
> - }
> -
> - /**
> -+ * pwrdm_get_voltdm - return a ptr to the voltdm that this pwrdm resides in
> -+ * @pwrdm: struct powerdomain *
> -+ *
> -+ * Return a pointer to the struct voltageomain that the specified powerdomain
> -+ * @pwrdm exists in.
> -+ */
> -+struct voltagedomain *pwrdm_get_voltdm(struct powerdomain *pwrdm)
> -+{
> -+	return pwrdm->voltdm.ptr;
> -+}
> -+
> -+/**
> -  * pwrdm_get_mem_bank_count - get number of memory banks in this
> powerdomain
> -  * @pwrdm: struct powerdomain *
> -  *
> -diff --git a/arch/arm/mach-omap2/powerdomain.h b/arch/arm/mach-
> omap2/powerdomain.h
> -index 9ce920d..25bef48 100644
> ---- a/arch/arm/mach-omap2/powerdomain.h
> -+++ b/arch/arm/mach-omap2/powerdomain.h
> -@@ -183,6 +183,7 @@ int pwrdm_del_clkdm(struct powerdomain *pwrdm,
> struct clockdomain *clkdm);
> - int pwrdm_for_each_clkdm(struct powerdomain *pwrdm,
> - 			 int (*fn)(struct powerdomain *pwrdm,
> - 				   struct clockdomain *clkdm));
> -+struct voltagedomain *pwrdm_get_voltdm(struct powerdomain *pwrdm);
> -
> - int pwrdm_get_mem_bank_count(struct powerdomain *pwrdm);
> -
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index cacd76e..966aa88 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -186,4 +186,5 @@ extern void omap44xx_voltagedomains_init(void);
> -
> - struct voltagedomain *voltdm_lookup(const char *name);
> - void voltdm_init(struct voltagedomain **voltdm_list);
> -+int voltdm_add_pwrdm(struct voltagedomain *voltdm, struct powerdomain
> *pwrdm);
> - #endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0108-OMAP2-
> voltage-keep-track-of-powerdomains-in-each-vol.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0108-OMAP2-voltage-keep-track-of-
> powerdomains-in-each-vol.patch
> deleted file mode 100644
> index 84ecc50..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0108-OMAP2-voltage-
> keep-track-of-powerdomains-in-each-vol.patch
> +++ /dev/null
> @@ -1,200 +0,0 @@
> -From 31e518c4d9758553f36e3dcd1138ac31f68bf571 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Wed, 16 Mar 2011 16:13:15 -0700
> -Subject: [PATCH 108/149] OMAP2+: voltage: keep track of powerdomains in
> each voltagedomain
> -
> -When a powerdomain is registered and it has an associated voltage domain,
> -add the powerdomain to the voltagedomain using voltdm_add_pwrdm().
> -
> -Also add voltagedomain iterator helper functions to iterate over all
> -registered voltagedomains and all powerdomains associated with a
> -voltagedomain.
> -
> -Modeled after a similar relationship between clockdomains and powerdomains.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/powerdomain.c |    2 +
> - arch/arm/mach-omap2/powerdomain.h |    2 +
> - arch/arm/mach-omap2/voltage.c     |   80
> +++++++++++++++++++++++++++++++++++++
> - arch/arm/mach-omap2/voltage.h     |   10 +++++
> - 4 files changed, 94 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-
> omap2/powerdomain.c
> -index 1d3013d..12135e2 100644
> ---- a/arch/arm/mach-omap2/powerdomain.c
> -+++ b/arch/arm/mach-omap2/powerdomain.c
> -@@ -102,6 +102,8 @@ static int _pwrdm_register(struct powerdomain
> *pwrdm)
> - 		return -EINVAL;
> - 	}
> - 	pwrdm->voltdm.ptr = voltdm;
> -+	INIT_LIST_HEAD(&pwrdm->voltdm_node);
> -+	voltdm_add_pwrdm(voltdm, pwrdm);
> -
> - 	list_add(&pwrdm->node, &pwrdm_list);
> -
> -diff --git a/arch/arm/mach-omap2/powerdomain.h b/arch/arm/mach-
> omap2/powerdomain.h
> -index 25bef48..2c685a5 100644
> ---- a/arch/arm/mach-omap2/powerdomain.h
> -+++ b/arch/arm/mach-omap2/powerdomain.h
> -@@ -92,6 +92,7 @@ struct powerdomain;
> -  * @pwrsts_mem_on: Possible memory bank pwrstates when pwrdm in ON
> -  * @pwrdm_clkdms: Clockdomains in this powerdomain
> -  * @node: list_head linking all powerdomains
> -+ * @voltdm_node: list_head linking all powerdomains in a voltagedomain
> -  * @state:
> -  * @state_counter:
> -  * @timer:
> -@@ -116,6 +117,7 @@ struct powerdomain {
> - 	const u8 prcm_partition;
> - 	struct clockdomain *pwrdm_clkdms[PWRDM_MAX_CLKDMS];
> - 	struct list_head node;
> -+	struct list_head voltdm_node;
> - 	int state;
> - 	unsigned state_counter[PWRDM_MAX_PWRSTS];
> - 	unsigned ret_logic_off_counter;
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 48a2593..1e5c122 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -36,6 +36,7 @@
> - #include "control.h"
> -
> - #include "voltage.h"
> -+#include "powerdomain.h"
> -
> - #include "vc.h"
> - #include "vp.h"
> -@@ -1085,11 +1086,90 @@ static struct voltagedomain
> *_voltdm_lookup(const char *name)
> - 	return voltdm;
> - }
> -
> -+/**
> -+ * voltdm_add_pwrdm - add a powerdomain to a voltagedomain
> -+ * @voltdm: struct voltagedomain * to add the powerdomain to
> -+ * @pwrdm: struct powerdomain * to associate with a voltagedomain
> -+ *
> -+ * Associate the powerdomain @pwrdm with a voltagedomain @voltdm.  This
> -+ * enables the use of voltdm_for_each_pwrdm().  Returns -EINVAL if
> -+ * presented with invalid pointers; -ENOMEM if memory could not be
> allocated;
> -+ * or 0 upon success.
> -+ */
> -+int voltdm_add_pwrdm(struct voltagedomain *voltdm, struct powerdomain
> *pwrdm)
> -+{
> -+	if (!voltdm || !pwrdm)
> -+		return -EINVAL;
> -+
> -+	pr_debug("voltagedomain: associating powerdomain %s with
> voltagedomain "
> -+		 "%s\n", pwrdm->name, voltdm->name);
> -+
> -+	list_add(&pwrdm->voltdm_node, &voltdm->pwrdm_list);
> -+
> -+	return 0;
> -+}
> -+
> -+/**
> -+ * voltdm_for_each_pwrdm - call function for each pwrdm in a voltdm
> -+ * @voltdm: struct voltagedomain * to iterate over
> -+ * @fn: callback function *
> -+ *
> -+ * Call the supplied function @fn for each powerdomain in the
> -+ * voltagedomain @voltdm.  Returns -EINVAL if presented with invalid
> -+ * pointers; or passes along the last return value of the callback
> -+ * function, which should be 0 for success or anything else to
> -+ * indicate failure.
> -+ */
> -+int voltdm_for_each_pwrdm(struct voltagedomain *voltdm,
> -+			  int (*fn)(struct voltagedomain *voltdm,
> -+				    struct powerdomain *pwrdm))
> -+{
> -+	struct powerdomain *pwrdm;
> -+	int ret = 0;
> -+
> -+	if (!fn)
> -+		return -EINVAL;
> -+
> -+	list_for_each_entry(pwrdm, &voltdm->pwrdm_list, voltdm_node)
> -+		ret = (*fn)(voltdm, pwrdm);
> -+
> -+	return ret;
> -+}
> -+
> -+/**
> -+ * voltdm_for_each - call function on each registered voltagedomain
> -+ * @fn: callback function *
> -+ *
> -+ * Call the supplied function @fn for each registered voltagedomain.
> -+ * The callback function @fn can return anything but 0 to bail out
> -+ * early from the iterator.  Returns the last return value of the
> -+ * callback function, which should be 0 for success or anything else
> -+ * to indicate failure; or -EINVAL if the function pointer is null.
> -+ */
> -+int voltdm_for_each(int (*fn)(struct voltagedomain *voltdm, void *user),
> -+		    void *user)
> -+{
> -+	struct voltagedomain *temp_voltdm;
> -+	int ret = 0;
> -+
> -+	if (!fn)
> -+		return -EINVAL;
> -+
> -+	list_for_each_entry(temp_voltdm, &voltdm_list, node) {
> -+		ret = (*fn)(temp_voltdm, user);
> -+		if (ret)
> -+			break;
> -+	}
> -+
> -+	return ret;
> -+}
> -+
> - static int _voltdm_register(struct voltagedomain *voltdm)
> - {
> - 	if (!voltdm || !voltdm->name)
> - 		return -EINVAL;
> -
> -+	INIT_LIST_HEAD(&voltdm->pwrdm_list);
> - 	list_add(&voltdm->node, &voltdm_list);
> -
> - 	pr_debug("voltagedomain: registered %s\n", voltdm->name);
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 966aa88..b41d9f1 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -19,6 +19,8 @@
> - #include "vc.h"
> - #include "vp.h"
> -
> -+struct powerdomain;
> -+
> - /* XXX document */
> - #define VOLTSCALE_VPFORCEUPDATE		1
> - #define VOLTSCALE_VCBYPASS		2
> -@@ -55,12 +57,15 @@ struct omap_vfsm_instance_data {
> -  * @name: Name of the voltage domain which can be used as a unique
> identifier.
> -  * @scalable: Whether or not this voltage domain is scalable
> -  * @node: list_head linking all voltage domains
> -+ * @pwrdm_node: list_head linking all powerdomains in this voltagedomain
> -  * @vdd: to be removed
> -+ * @pwrdms: powerdomains in this voltagedomain
> -  */
> - struct voltagedomain {
> - 	char *name;
> - 	bool scalable;
> - 	struct list_head node;
> -+	struct list_head pwrdm_list;
> - 	struct omap_vdd_info *vdd;
> - };
> -
> -@@ -187,4 +192,9 @@ extern void omap44xx_voltagedomains_init(void);
> - struct voltagedomain *voltdm_lookup(const char *name);
> - void voltdm_init(struct voltagedomain **voltdm_list);
> - int voltdm_add_pwrdm(struct voltagedomain *voltdm, struct powerdomain
> *pwrdm);
> -+int voltdm_for_each(int (*fn)(struct voltagedomain *voltdm, void *user),
> -+		    void *user);
> -+int voltdm_for_each_pwrdm(struct voltagedomain *voltdm,
> -+			  int (*fn)(struct voltagedomain *voltdm,
> -+				    struct powerdomain *pwrdm));
> - #endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0109-OMAP2-
> voltage-split-voltage-controller-VC-code-into-.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0109-OMAP2-voltage-split-voltage-
> controller-VC-code-into-.patch
> deleted file mode 100644
> index f14a21b..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0109-OMAP2-voltage-split-
> voltage-controller-VC-code-into-.patch
> +++ /dev/null
> @@ -1,666 +0,0 @@
> -From 981e5f23fe781d26d69d8cc212674eab0353dea4 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 21 Mar 2011 14:08:55 -0700
> -Subject: [PATCH 109/149] OMAP2+: voltage: split voltage controller (VC) code
> into dedicated layer
> -
> -As part of the voltage layer cleanup, split out VC specific code into
> -a dedicated VC layer.  This patch primarily just moves VC code from
> -voltage.c into vc.c, and adds prototypes to vc.h.
> -
> -No functional changes.
> -
> -For readability, each function was given a local 'vc' pointer:
> -
> -    struct omap_vc_instance_data *vc = voltdm->vdd->vc_data;
> -
> -and a global replace of s/vdd->vc_data/vc/ was done.
> -
> -Also vc_init was renamed to vc_init_channel to reflect that this is
> -per-VC channel initializtion.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/Makefile  |    2 +-
> - arch/arm/mach-omap2/vc.c      |  276
> +++++++++++++++++++++++++++++++++++++++++
> - arch/arm/mach-omap2/vc.h      |   12 ++
> - arch/arm/mach-omap2/voltage.c |  264 +--------------------------------------
> - 4 files changed, 293 insertions(+), 261 deletions(-)
> - create mode 100644 arch/arm/mach-omap2/vc.c
> -
> -diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-
> omap2/Makefile
> -index 1b6cecd..ecbf361 100644
> ---- a/arch/arm/mach-omap2/Makefile
> -+++ b/arch/arm/mach-omap2/Makefile
> -@@ -90,7 +90,7 @@ obj-$(CONFIG_ARCH_OMAP4)		+= prcm.o
> cm2xxx_3xxx.o cminst44xx.o \
> -
> - # OMAP voltage domains
> - ifeq ($(CONFIG_PM),y)
> --voltagedomain-common			:= voltage.o
> -+voltagedomain-common			:= voltage.o vc.o
> - obj-$(CONFIG_ARCH_OMAP2)		+= $(voltagedomain-common) \
> - 					   voltagedomains2xxx_data.o
> - obj-$(CONFIG_ARCH_OMAP3)		+= $(voltagedomain-common) \
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -new file mode 100644
> -index 0000000..98f5a4b
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -0,0 +1,276 @@
> -+#include <linux/kernel.h>
> -+#include <linux/delay.h>
> -+#include <linux/init.h>
> -+
> -+#include <plat/cpu.h>
> -+
> -+#include "voltage.h"
> -+#include "vc.h"
> -+#include "prm-regbits-34xx.h"
> -+#include "prm-regbits-44xx.h"
> -+#include "prm44xx.h"
> -+
> -+/* Voltage scale and accessory APIs */
> -+int omap_vc_pre_scale(struct voltagedomain *voltdm,
> -+		      unsigned long target_volt,
> -+		      u8 *target_vsel, u8 *current_vsel)
> -+{
> -+	struct omap_vc_instance_data *vc = voltdm->vdd->vc_data;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -+	struct omap_volt_data *volt_data;
> -+	const struct omap_vc_common_data *vc_common;
> -+	const struct omap_vp_common_data *vp_common;
> -+	u32 vc_cmdval, vp_errgain_val;
> -+
> -+	vc_common = vc->vc_common;
> -+	vp_common = vdd->vp_data->vp_common;
> -+
> -+	/* Check if sufficient pmic info is available for this vdd */
> -+	if (!vdd->pmic_info) {
> -+		pr_err("%s: Insufficient pmic info to scale the vdd_%s\n",
> -+			__func__, voltdm->name);
> -+		return -EINVAL;
> -+	}
> -+
> -+	if (!vdd->pmic_info->uv_to_vsel) {
> -+		pr_err("%s: PMIC function to convert voltage in uV to"
> -+			"vsel not registered. Hence unable to scale voltage"
> -+			"for vdd_%s\n", __func__, voltdm->name);
> -+		return -ENODATA;
> -+	}
> -+
> -+	if (!vdd->read_reg || !vdd->write_reg) {
> -+		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> -+			__func__, voltdm->name);
> -+		return -EINVAL;
> -+	}
> -+
> -+	/* Get volt_data corresponding to target_volt */
> -+	volt_data = omap_voltage_get_voltdata(voltdm, target_volt);
> -+	if (IS_ERR(volt_data))
> -+		volt_data = NULL;
> -+
> -+	*target_vsel = vdd->pmic_info->uv_to_vsel(target_volt);
> -+	*current_vsel = vdd->read_reg(vdd->vp_data->vp_common-
> >prm_mod, vdd->vp_data->voltage);
> -+
> -+	/* Setting the ON voltage to the new target voltage */
> -+	vc_cmdval = vdd->read_reg(vc->vc_common->prm_mod, vc-
> >cmdval_reg);
> -+	vc_cmdval &= ~vc_common->cmd_on_mask;
> -+	vc_cmdval |= (*target_vsel << vc_common->cmd_on_shift);
> -+	vdd->write_reg(vc_cmdval, vc->vc_common->prm_mod, vc-
> >cmdval_reg);
> -+
> -+	/* Setting vp errorgain based on the voltage */
> -+	if (volt_data) {
> -+		vp_errgain_val = vdd->read_reg(vdd->vp_data->vp_common-
> >prm_mod,
> -+					       vdd->vp_data->vpconfig);
> -+		vdd->vp_rt_data.vpconfig_errorgain = volt_data->vp_errgain;
> -+		vp_errgain_val &= ~vp_common->vpconfig_errorgain_mask;
> -+		vp_errgain_val |= vdd->vp_rt_data.vpconfig_errorgain <<
> -+			vp_common->vpconfig_errorgain_shift;
> -+		vdd->write_reg(vp_errgain_val, vdd->vp_data->vp_common-
> >prm_mod,
> -+			       vdd->vp_data->vpconfig);
> -+	}
> -+
> -+	return 0;
> -+}
> -+
> -+void omap_vc_post_scale(struct voltagedomain *voltdm,
> -+			unsigned long target_volt,
> -+			u8 target_vsel, u8 current_vsel)
> -+{
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -+	u32 smps_steps = 0, smps_delay = 0;
> -+
> -+	smps_steps = abs(target_vsel - current_vsel);
> -+	/* SMPS slew rate / step size. 2us added as buffer. */
> -+	smps_delay = ((smps_steps * vdd->pmic_info->step_size) /
> -+			vdd->pmic_info->slew_rate) + 2;
> -+	udelay(smps_delay);
> -+
> -+	vdd->curr_volt = target_volt;
> -+}
> -+
> -+/* vc_bypass_scale_voltage - VC bypass method of voltage scaling */
> -+int omap_vc_bypass_scale_voltage(struct voltagedomain *voltdm,
> -+				 unsigned long target_volt)
> -+{
> -+	struct omap_vc_instance_data *vc = voltdm->vdd->vc_data;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -+	u32 loop_cnt = 0, retries_cnt = 0;
> -+	u32 vc_valid, vc_bypass_val_reg, vc_bypass_value;
> -+	u8 target_vsel, current_vsel;
> -+	int ret;
> -+
> -+	ret = omap_vc_pre_scale(voltdm, target_volt, &target_vsel,
> &current_vsel);
> -+	if (ret)
> -+		return ret;
> -+
> -+	vc_valid = vc->vc_common->valid;
> -+	vc_bypass_val_reg = vc->vc_common->bypass_val_reg;
> -+	vc_bypass_value = (target_vsel << vc->vc_common->data_shift) |
> -+			(vdd->pmic_info->pmic_reg <<
> -+			vc->vc_common->regaddr_shift) |
> -+			(vdd->pmic_info->i2c_slave_addr <<
> -+			vc->vc_common->slaveaddr_shift);
> -+
> -+	vdd->write_reg(vc_bypass_value, vc->vc_common->prm_mod,
> vc_bypass_val_reg);
> -+	vdd->write_reg(vc_bypass_value | vc_valid, vc->vc_common-
> >prm_mod,
> -+		       vc_bypass_val_reg);
> -+
> -+	vc_bypass_value = vdd->read_reg(vc->vc_common->prm_mod,
> vc_bypass_val_reg);
> -+	/*
> -+	 * Loop till the bypass command is acknowledged from the SMPS.
> -+	 * NOTE: This is legacy code. The loop count and retry count needs
> -+	 * to be revisited.
> -+	 */
> -+	while (!(vc_bypass_value & vc_valid)) {
> -+		loop_cnt++;
> -+
> -+		if (retries_cnt > 10) {
> -+			pr_warning("%s: Retry count exceeded\n", __func__);
> -+			return -ETIMEDOUT;
> -+		}
> -+
> -+		if (loop_cnt > 50) {
> -+			retries_cnt++;
> -+			loop_cnt = 0;
> -+			udelay(10);
> -+		}
> -+		vc_bypass_value = vdd->read_reg(vc->vc_common-
> >prm_mod,
> -+						vc_bypass_val_reg);
> -+	}
> -+
> -+	omap_vc_post_scale(voltdm, target_volt, target_vsel, current_vsel);
> -+	return 0;
> -+}
> -+
> -+static void __init omap3_vfsm_init(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_vc_instance_data *vc = voltdm->vdd->vc_data;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -+
> -+	/*
> -+	 * Voltage Manager FSM parameters init
> -+	 * XXX This data should be passed in from the board file
> -+	 */
> -+	vdd->write_reg(OMAP3_CLKSETUP, vc->vc_common->prm_mod,
> OMAP3_PRM_CLKSETUP_OFFSET);
> -+	vdd->write_reg(OMAP3_VOLTOFFSET, vc->vc_common->prm_mod,
> -+		       OMAP3_PRM_VOLTOFFSET_OFFSET);
> -+	vdd->write_reg(OMAP3_VOLTSETUP2, vc->vc_common->prm_mod,
> -+		       OMAP3_PRM_VOLTSETUP2_OFFSET);
> -+}
> -+
> -+static void __init omap3_vc_init_channel(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_vc_instance_data *vc = voltdm->vdd->vc_data;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -+	static bool is_initialized;
> -+	u8 on_vsel, onlp_vsel, ret_vsel, off_vsel;
> -+	u32 vc_val;
> -+
> -+	if (is_initialized)
> -+		return;
> -+
> -+	/* Set up the on, inactive, retention and off voltage */
> -+	on_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->on_volt);
> -+	onlp_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->onlp_volt);
> -+	ret_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->ret_volt);
> -+	off_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->off_volt);
> -+	vc_val	= ((on_vsel << vc->vc_common->cmd_on_shift) |
> -+		(onlp_vsel << vc->vc_common->cmd_onlp_shift) |
> -+		(ret_vsel << vc->vc_common->cmd_ret_shift) |
> -+		(off_vsel << vc->vc_common->cmd_off_shift));
> -+	vdd->write_reg(vc_val, vc->vc_common->prm_mod, vc->cmdval_reg);
> -+
> -+	/*
> -+	 * Generic VC parameters init
> -+	 * XXX This data should be abstracted out
> -+	 */
> -+	vdd->write_reg(OMAP3430_CMD1_MASK |
> OMAP3430_RAV1_MASK, vc->vc_common->prm_mod,
> -+			OMAP3_PRM_VC_CH_CONF_OFFSET);
> -+	vdd->write_reg(OMAP3430_MCODE_SHIFT |
> OMAP3430_HSEN_MASK, vc->vc_common->prm_mod,
> -+			OMAP3_PRM_VC_I2C_CFG_OFFSET);
> -+
> -+	omap3_vfsm_init(voltdm);
> -+
> -+	is_initialized = true;
> -+}
> -+
> -+
> -+/* OMAP4 specific voltage init functions */
> -+static void __init omap4_vc_init_channel(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_vc_instance_data *vc = voltdm->vdd->vc_data;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -+	static bool is_initialized;
> -+	u32 vc_val;
> -+
> -+	if (is_initialized)
> -+		return;
> -+
> -+	/* TODO: Configure setup times and CMD_VAL values*/
> -+
> -+	/*
> -+	 * Generic VC parameters init
> -+	 * XXX This data should be abstracted out
> -+	 */
> -+	vc_val = (OMAP4430_RAV_VDD_MPU_L_MASK |
> OMAP4430_CMD_VDD_MPU_L_MASK |
> -+		  OMAP4430_RAV_VDD_IVA_L_MASK |
> OMAP4430_CMD_VDD_IVA_L_MASK |
> -+		  OMAP4430_RAV_VDD_CORE_L_MASK |
> OMAP4430_CMD_VDD_CORE_L_MASK);
> -+	vdd->write_reg(vc_val, vc->vc_common->prm_mod,
> OMAP4_PRM_VC_CFG_CHANNEL_OFFSET);
> -+
> -+	/* XXX These are magic numbers and do not belong! */
> -+	vc_val = (0x60 << OMAP4430_SCLL_SHIFT | 0x26 <<
> OMAP4430_SCLH_SHIFT);
> -+	vdd->write_reg(vc_val, vc->vc_common->prm_mod,
> OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET);
> -+
> -+	is_initialized = true;
> -+}
> -+
> -+void __init omap_vc_init_channel(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_vc_instance_data *vc = voltdm->vdd->vc_data;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -+	u32 vc_val;
> -+
> -+	if (!vdd->pmic_info || !vdd->pmic_info->uv_to_vsel) {
> -+		pr_err("%s: PMIC info requried to configure vc for"
> -+			"vdd_%s not populated.Hence cannot initialize vc\n",
> -+			__func__, voltdm->name);
> -+		return;
> -+	}
> -+
> -+	if (!vdd->read_reg || !vdd->write_reg) {
> -+		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> -+			__func__, voltdm->name);
> -+		return;
> -+	}
> -+
> -+	/* Set up the SMPS_SA(i2c slave address in VC */
> -+	vc_val = vdd->read_reg(vc->vc_common->prm_mod,
> -+			       vc->vc_common->smps_sa_reg);
> -+	vc_val &= ~vc->smps_sa_mask;
> -+	vc_val |= vdd->pmic_info->i2c_slave_addr << vc->smps_sa_shift;
> -+	vdd->write_reg(vc_val, vc->vc_common->prm_mod,
> -+		       vc->vc_common->smps_sa_reg);
> -+
> -+	/* Setup the VOLRA(pmic reg addr) in VC */
> -+	vc_val = vdd->read_reg(vc->vc_common->prm_mod,
> -+			       vc->vc_common->smps_volra_reg);
> -+	vc_val &= ~vc->smps_volra_mask;
> -+	vc_val |= vdd->pmic_info->pmic_reg << vc->smps_volra_shift;
> -+	vdd->write_reg(vc_val, vc->vc_common->prm_mod,
> -+		       vc->vc_common->smps_volra_reg);
> -+
> -+	/* Configure the setup times */
> -+	vc_val = vdd->read_reg(vc->vc_common->prm_mod, vdd->vfsm-
> >voltsetup_reg);
> -+	vc_val &= ~vdd->vfsm->voltsetup_mask;
> -+	vc_val |= vdd->pmic_info->volt_setup_time <<
> -+			vdd->vfsm->voltsetup_shift;
> -+	vdd->write_reg(vc_val, vc->vc_common->prm_mod, vdd->vfsm-
> >voltsetup_reg);
> -+
> -+	if (cpu_is_omap34xx())
> -+		omap3_vc_init_channel(voltdm);
> -+	else if (cpu_is_omap44xx())
> -+		omap4_vc_init_channel(voltdm);
> -+}
> -+
> -diff --git a/arch/arm/mach-omap2/vc.h b/arch/arm/mach-omap2/vc.h
> -index f7338af..d0bf348 100644
> ---- a/arch/arm/mach-omap2/vc.h
> -+++ b/arch/arm/mach-omap2/vc.h
> -@@ -19,6 +19,8 @@
> -
> - #include <linux/kernel.h>
> -
> -+struct voltagedomain;
> -+
> - /**
> -  * struct omap_vc_common_data - per-VC register/bitfield data
> -  * @cmd_on_mask: ON bitmask in PRM_VC_CMD_VAL* register
> -@@ -81,5 +83,15 @@ extern struct omap_vc_instance_data
> omap4_vc_mpu_data;
> - extern struct omap_vc_instance_data omap4_vc_iva_data;
> - extern struct omap_vc_instance_data omap4_vc_core_data;
> -
> -+void omap_vc_init_channel(struct voltagedomain *voltdm);
> -+int omap_vc_pre_scale(struct voltagedomain *voltdm,
> -+		      unsigned long target_volt,
> -+		      u8 *target_vsel, u8 *current_vsel);
> -+void omap_vc_post_scale(struct voltagedomain *voltdm,
> -+			unsigned long target_volt,
> -+			u8 target_vsel, u8 current_vsel);
> -+int omap_vc_bypass_scale_voltage(struct voltagedomain *voltdm,
> -+				 unsigned long target_volt);
> -+
> - #endif
> -
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 1e5c122..6ba6e49 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -293,136 +293,6 @@ static void __init vdd_debugfs_init(struct
> voltagedomain *voltdm)
> - 				&nom_volt_debug_fops);
> - }
> -
> --/* Voltage scale and accessory APIs */
> --static int _pre_volt_scale(struct voltagedomain *voltdm,
> --		unsigned long target_volt, u8 *target_vsel, u8 *current_vsel)
> --{
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --	struct omap_volt_data *volt_data;
> --	const struct omap_vc_common_data *vc_common;
> --	const struct omap_vp_common_data *vp_common;
> --	u32 vc_cmdval, vp_errgain_val;
> --
> --	vc_common = vdd->vc_data->vc_common;
> --	vp_common = vdd->vp_data->vp_common;
> --
> --	/* Check if suffiecient pmic info is available for this vdd */
> --	if (!vdd->pmic_info) {
> --		pr_err("%s: Insufficient pmic info to scale the vdd_%s\n",
> --			__func__, voltdm->name);
> --		return -EINVAL;
> --	}
> --
> --	if (!vdd->pmic_info->uv_to_vsel) {
> --		pr_err("%s: PMIC function to convert voltage in uV to"
> --			"vsel not registered. Hence unable to scale voltage"
> --			"for vdd_%s\n", __func__, voltdm->name);
> --		return -ENODATA;
> --	}
> --
> --	if (!vdd->read_reg || !vdd->write_reg) {
> --		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> --			__func__, voltdm->name);
> --		return -EINVAL;
> --	}
> --
> --	/* Get volt_data corresponding to target_volt */
> --	volt_data = omap_voltage_get_voltdata(voltdm, target_volt);
> --	if (IS_ERR(volt_data))
> --		volt_data = NULL;
> --
> --	*target_vsel = vdd->pmic_info->uv_to_vsel(target_volt);
> --	*current_vsel = vdd->read_reg(vdd->vp_data->vp_common-
> >prm_mod, vdd->vp_data->voltage);
> --
> --	/* Setting the ON voltage to the new target voltage */
> --	vc_cmdval = vdd->read_reg(vdd->vc_data->vc_common->prm_mod,
> vdd->vc_data->cmdval_reg);
> --	vc_cmdval &= ~vc_common->cmd_on_mask;
> --	vc_cmdval |= (*target_vsel << vc_common->cmd_on_shift);
> --	vdd->write_reg(vc_cmdval, vdd->vc_data->vc_common->prm_mod,
> vdd->vc_data->cmdval_reg);
> --
> --	/* Setting vp errorgain based on the voltage */
> --	if (volt_data) {
> --		vp_errgain_val = vdd->read_reg(vdd->vp_data->vp_common-
> >prm_mod,
> --					       vdd->vp_data->vpconfig);
> --		vdd->vp_rt_data.vpconfig_errorgain = volt_data->vp_errgain;
> --		vp_errgain_val &= ~vp_common->vpconfig_errorgain_mask;
> --		vp_errgain_val |= vdd->vp_rt_data.vpconfig_errorgain <<
> --			vp_common->vpconfig_errorgain_shift;
> --		vdd->write_reg(vp_errgain_val, vdd->vp_data->vp_common-
> >prm_mod,
> --			       vdd->vp_data->vpconfig);
> --	}
> --
> --	return 0;
> --}
> --
> --static void _post_volt_scale(struct voltagedomain *voltdm,
> --		unsigned long target_volt, u8 target_vsel, u8 current_vsel)
> --{
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --	u32 smps_steps = 0, smps_delay = 0;
> --
> --	smps_steps = abs(target_vsel - current_vsel);
> --	/* SMPS slew rate / step size. 2us added as buffer. */
> --	smps_delay = ((smps_steps * vdd->pmic_info->step_size) /
> --			vdd->pmic_info->slew_rate) + 2;
> --	udelay(smps_delay);
> --
> --	vdd->curr_volt = target_volt;
> --}
> --
> --/* vc_bypass_scale_voltage - VC bypass method of voltage scaling */
> --static int vc_bypass_scale_voltage(struct voltagedomain *voltdm,
> --		unsigned long target_volt)
> --{
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --	u32 loop_cnt = 0, retries_cnt = 0;
> --	u32 vc_valid, vc_bypass_val_reg, vc_bypass_value;
> --	u8 target_vsel, current_vsel;
> --	int ret;
> --
> --	ret = _pre_volt_scale(voltdm, target_volt, &target_vsel,
> &current_vsel);
> --	if (ret)
> --		return ret;
> --
> --	vc_valid = vdd->vc_data->vc_common->valid;
> --	vc_bypass_val_reg = vdd->vc_data->vc_common->bypass_val_reg;
> --	vc_bypass_value = (target_vsel << vdd->vc_data->vc_common-
> >data_shift) |
> --			(vdd->pmic_info->pmic_reg <<
> --			vdd->vc_data->vc_common->regaddr_shift) |
> --			(vdd->pmic_info->i2c_slave_addr <<
> --			vdd->vc_data->vc_common->slaveaddr_shift);
> --
> --	vdd->write_reg(vc_bypass_value, vdd->vc_data->vc_common-
> >prm_mod, vc_bypass_val_reg);
> --	vdd->write_reg(vc_bypass_value | vc_valid, vdd->vc_data-
> >vc_common->prm_mod,
> --		       vc_bypass_val_reg);
> --
> --	vc_bypass_value = vdd->read_reg(vdd->vc_data->vc_common-
> >prm_mod, vc_bypass_val_reg);
> --	/*
> --	 * Loop till the bypass command is acknowledged from the SMPS.
> --	 * NOTE: This is legacy code. The loop count and retry count needs
> --	 * to be revisited.
> --	 */
> --	while (!(vc_bypass_value & vc_valid)) {
> --		loop_cnt++;
> --
> --		if (retries_cnt > 10) {
> --			pr_warning("%s: Retry count exceeded\n", __func__);
> --			return -ETIMEDOUT;
> --		}
> --
> --		if (loop_cnt > 50) {
> --			retries_cnt++;
> --			loop_cnt = 0;
> --			udelay(10);
> --		}
> --		vc_bypass_value = vdd->read_reg(vdd->vc_data-
> >vc_common->prm_mod,
> --						vc_bypass_val_reg);
> --	}
> --
> --	_post_volt_scale(voltdm, target_volt, target_vsel, current_vsel);
> --	return 0;
> --}
> --
> - /* VP force update method of voltage scaling */
> - static int vp_forceupdate_scale_voltage(struct voltagedomain *voltdm,
> - 		unsigned long target_volt)
> -@@ -432,7 +302,7 @@ static int vp_forceupdate_scale_voltage(struct
> voltagedomain *voltdm,
> - 	u8 target_vsel, current_vsel;
> - 	int ret, timeout = 0;
> -
> --	ret = _pre_volt_scale(voltdm, target_volt, &target_vsel,
> &current_vsel);
> -+	ret = omap_vc_pre_scale(voltdm, target_volt, &target_vsel,
> &current_vsel);
> - 	if (ret)
> - 		return ret;
> -
> -@@ -485,7 +355,7 @@ static int vp_forceupdate_scale_voltage(struct
> voltagedomain *voltdm,
> - 			"TRANXDONE never got set after the voltage
> update\n",
> - 			__func__, voltdm->name);
> -
> --	_post_volt_scale(voltdm, target_volt, target_vsel, current_vsel);
> -+	omap_vc_post_scale(voltdm, target_volt, target_vsel, current_vsel);
> -
> - 	/*
> - 	 * Disable TransactionDone interrupt , clear all status, clear
> -@@ -517,132 +387,6 @@ static int vp_forceupdate_scale_voltage(struct
> voltagedomain *voltdm,
> - 	return 0;
> - }
> -
> --static void __init omap3_vfsm_init(struct voltagedomain *voltdm)
> --{
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --
> --	/*
> --	 * Voltage Manager FSM parameters init
> --	 * XXX This data should be passed in from the board file
> --	 */
> --	vdd->write_reg(OMAP3_CLKSETUP, vdd->vc_data->vc_common-
> >prm_mod, OMAP3_PRM_CLKSETUP_OFFSET);
> --	vdd->write_reg(OMAP3_VOLTOFFSET, vdd->vc_data->vc_common-
> >prm_mod,
> --		       OMAP3_PRM_VOLTOFFSET_OFFSET);
> --	vdd->write_reg(OMAP3_VOLTSETUP2, vdd->vc_data->vc_common-
> >prm_mod,
> --		       OMAP3_PRM_VOLTSETUP2_OFFSET);
> --}
> --
> --static void __init omap3_vc_init(struct voltagedomain *voltdm)
> --{
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --	static bool is_initialized;
> --	u8 on_vsel, onlp_vsel, ret_vsel, off_vsel;
> --	u32 vc_val;
> --
> --	if (is_initialized)
> --		return;
> --
> --	/* Set up the on, inactive, retention and off voltage */
> --	on_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->on_volt);
> --	onlp_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->onlp_volt);
> --	ret_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->ret_volt);
> --	off_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->off_volt);
> --	vc_val	= ((on_vsel << vdd->vc_data->vc_common->cmd_on_shift) |
> --		(onlp_vsel << vdd->vc_data->vc_common->cmd_onlp_shift) |
> --		(ret_vsel << vdd->vc_data->vc_common->cmd_ret_shift) |
> --		(off_vsel << vdd->vc_data->vc_common->cmd_off_shift));
> --	vdd->write_reg(vc_val, vdd->vc_data->vc_common->prm_mod, vdd-
> >vc_data->cmdval_reg);
> --
> --	/*
> --	 * Generic VC parameters init
> --	 * XXX This data should be abstracted out
> --	 */
> --	vdd->write_reg(OMAP3430_CMD1_MASK |
> OMAP3430_RAV1_MASK, vdd->vc_data->vc_common->prm_mod,
> --			OMAP3_PRM_VC_CH_CONF_OFFSET);
> --	vdd->write_reg(OMAP3430_MCODE_SHIFT |
> OMAP3430_HSEN_MASK, vdd->vc_data->vc_common->prm_mod,
> --			OMAP3_PRM_VC_I2C_CFG_OFFSET);
> --
> --	omap3_vfsm_init(voltdm);
> --
> --	is_initialized = true;
> --}
> --
> --
> --/* OMAP4 specific voltage init functions */
> --static void __init omap4_vc_init(struct voltagedomain *voltdm)
> --{
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --	static bool is_initialized;
> --	u32 vc_val;
> --
> --	if (is_initialized)
> --		return;
> --
> --	/* TODO: Configure setup times and CMD_VAL values*/
> --
> --	/*
> --	 * Generic VC parameters init
> --	 * XXX This data should be abstracted out
> --	 */
> --	vc_val = (OMAP4430_RAV_VDD_MPU_L_MASK |
> OMAP4430_CMD_VDD_MPU_L_MASK |
> --		  OMAP4430_RAV_VDD_IVA_L_MASK |
> OMAP4430_CMD_VDD_IVA_L_MASK |
> --		  OMAP4430_RAV_VDD_CORE_L_MASK |
> OMAP4430_CMD_VDD_CORE_L_MASK);
> --	vdd->write_reg(vc_val, vdd->vc_data->vc_common->prm_mod,
> OMAP4_PRM_VC_CFG_CHANNEL_OFFSET);
> --
> --	/* XXX These are magic numbers and do not belong! */
> --	vc_val = (0x60 << OMAP4430_SCLL_SHIFT | 0x26 <<
> OMAP4430_SCLH_SHIFT);
> --	vdd->write_reg(vc_val, vdd->vc_data->vc_common->prm_mod,
> OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET);
> --
> --	is_initialized = true;
> --}
> --
> --static void __init omap_vc_init(struct voltagedomain *voltdm)
> --{
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --	u32 vc_val;
> --
> --	if (!vdd->pmic_info || !vdd->pmic_info->uv_to_vsel) {
> --		pr_err("%s: PMIC info requried to configure vc for"
> --			"vdd_%s not populated.Hence cannot initialize vc\n",
> --			__func__, voltdm->name);
> --		return;
> --	}
> --
> --	if (!vdd->read_reg || !vdd->write_reg) {
> --		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> --			__func__, voltdm->name);
> --		return;
> --	}
> --
> --	/* Set up the SMPS_SA(i2c slave address in VC */
> --	vc_val = vdd->read_reg(vdd->vc_data->vc_common->prm_mod,
> --			       vdd->vc_data->vc_common->smps_sa_reg);
> --	vc_val &= ~vdd->vc_data->smps_sa_mask;
> --	vc_val |= vdd->pmic_info->i2c_slave_addr << vdd->vc_data-
> >smps_sa_shift;
> --	vdd->write_reg(vc_val, vdd->vc_data->vc_common->prm_mod,
> --		       vdd->vc_data->vc_common->smps_sa_reg);
> --
> --	/* Setup the VOLRA(pmic reg addr) in VC */
> --	vc_val = vdd->read_reg(vdd->vc_data->vc_common->prm_mod,
> --			       vdd->vc_data->vc_common->smps_volra_reg);
> --	vc_val &= ~vdd->vc_data->smps_volra_mask;
> --	vc_val |= vdd->pmic_info->pmic_reg << vdd->vc_data-
> >smps_volra_shift;
> --	vdd->write_reg(vc_val, vdd->vc_data->vc_common->prm_mod,
> --		       vdd->vc_data->vc_common->smps_volra_reg);
> --
> --	/* Configure the setup times */
> --	vc_val = vdd->read_reg(vdd->vc_data->vc_common->prm_mod, vdd-
> >vfsm->voltsetup_reg);
> --	vc_val &= ~vdd->vfsm->voltsetup_mask;
> --	vc_val |= vdd->pmic_info->volt_setup_time <<
> --			vdd->vfsm->voltsetup_shift;
> --	vdd->write_reg(vc_val, vdd->vc_data->vc_common->prm_mod, vdd-
> >vfsm->voltsetup_reg);
> --
> --	if (cpu_is_omap34xx())
> --		omap3_vc_init(voltdm);
> --	else if (cpu_is_omap44xx())
> --		omap4_vc_init(voltdm);
> --}
> --
> - static int __init omap_vdd_data_configure(struct voltagedomain *voltdm)
> - {
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> -@@ -1025,7 +769,7 @@ void omap_change_voltscale_method(struct
> voltagedomain *voltdm,
> - 		vdd->volt_scale = vp_forceupdate_scale_voltage;
> - 		return;
> - 	case VOLTSCALE_VCBYPASS:
> --		vdd->volt_scale = vc_bypass_scale_voltage;
> -+		vdd->volt_scale = omap_vc_bypass_scale_voltage;
> - 		return;
> - 	default:
> - 		pr_warning("%s: Trying to change the method of voltage
> scaling"
> -@@ -1061,7 +805,7 @@ int __init omap_voltage_late_init(void)
> - 		if (voltdm->vdd) {
> - 			if (omap_vdd_data_configure(voltdm))
> - 				continue;
> --			omap_vc_init(voltdm);
> -+			omap_vc_init_channel(voltdm);
> - 			vp_init(voltdm);
> - 			vdd_debugfs_init(voltdm);
> - 		}
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0110-OMAP2-
> voltage-move-VC-into-struct-voltagedomain-misc.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0110-OMAP2-voltage-move-VC-into-
> struct-voltagedomain-misc.patch
> deleted file mode 100644
> index feb72d1..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0110-OMAP2-voltage-
> move-VC-into-struct-voltagedomain-misc.patch
> +++ /dev/null
> @@ -1,544 +0,0 @@
> -From 4b4aeca96cd144542cd21035d13885d9ef0b6980 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Tue, 22 Mar 2011 16:14:57 -0700
> -Subject: [PATCH 110/149] OMAP2+: voltage: move VC into struct
> voltagedomain, misc. renames
> -
> -Move the VC instance struct from omap_vdd_info into struct voltagedomain.
> -While moving, perform some misc. renames for readability.
> -
> -No functional changes.
> -
> -Summary of renames:
> -- rename omap_vc_instance to omap_vc_channel, since there is only
> -  one instance of the VC IP and this actually represents channels
> -  using TRM terminology.
> -- rename 'vc_common' field of VC channel which led to:
> -  s/vc->vc_common/vc->common/
> -- remove redundant '_data' suffix
> -- OMAP3: vc1 --> vc_mpu, vc2 --> vc_core
> -- omap_vc_bypass_scale_voltage() -> omap_vc_bypass_scale()
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> -
> -merge
> ----
> - arch/arm/mach-omap2/vc.c                      |   90 ++++++++++++-------------
> - arch/arm/mach-omap2/vc.h                      |   26 ++++----
> - arch/arm/mach-omap2/vc3xxx_data.c             |   10 ++--
> - arch/arm/mach-omap2/vc44xx_data.c             |   14 ++--
> - arch/arm/mach-omap2/voltage.c                 |    6 +-
> - arch/arm/mach-omap2/voltage.h                 |    5 +-
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |    4 +-
> - arch/arm/mach-omap2/voltagedomains44xx_data.c |    6 +-
> - 8 files changed, 80 insertions(+), 81 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index 98f5a4b..7643940 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -15,14 +15,12 @@ int omap_vc_pre_scale(struct voltagedomain
> *voltdm,
> - 		      unsigned long target_volt,
> - 		      u8 *target_vsel, u8 *current_vsel)
> - {
> --	struct omap_vc_instance_data *vc = voltdm->vdd->vc_data;
> -+	struct omap_vc_channel *vc = voltdm->vc;
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	struct omap_volt_data *volt_data;
> --	const struct omap_vc_common_data *vc_common;
> - 	const struct omap_vp_common_data *vp_common;
> - 	u32 vc_cmdval, vp_errgain_val;
> -
> --	vc_common = vc->vc_common;
> - 	vp_common = vdd->vp_data->vp_common;
> -
> - 	/* Check if sufficient pmic info is available for this vdd */
> -@@ -54,10 +52,10 @@ int omap_vc_pre_scale(struct voltagedomain
> *voltdm,
> - 	*current_vsel = vdd->read_reg(vdd->vp_data->vp_common-
> >prm_mod, vdd->vp_data->voltage);
> -
> - 	/* Setting the ON voltage to the new target voltage */
> --	vc_cmdval = vdd->read_reg(vc->vc_common->prm_mod, vc-
> >cmdval_reg);
> --	vc_cmdval &= ~vc_common->cmd_on_mask;
> --	vc_cmdval |= (*target_vsel << vc_common->cmd_on_shift);
> --	vdd->write_reg(vc_cmdval, vc->vc_common->prm_mod, vc-
> >cmdval_reg);
> -+	vc_cmdval = vdd->read_reg(vc->common->prm_mod, vc-
> >cmdval_reg);
> -+	vc_cmdval &= ~vc->common->cmd_on_mask;
> -+	vc_cmdval |= (*target_vsel << vc->common->cmd_on_shift);
> -+	vdd->write_reg(vc_cmdval, vc->common->prm_mod, vc-
> >cmdval_reg);
> -
> - 	/* Setting vp errorgain based on the voltage */
> - 	if (volt_data) {
> -@@ -90,11 +88,11 @@ void omap_vc_post_scale(struct voltagedomain
> *voltdm,
> - 	vdd->curr_volt = target_volt;
> - }
> -
> --/* vc_bypass_scale_voltage - VC bypass method of voltage scaling */
> --int omap_vc_bypass_scale_voltage(struct voltagedomain *voltdm,
> --				 unsigned long target_volt)
> -+/* vc_bypass_scale - VC bypass method of voltage scaling */
> -+int omap_vc_bypass_scale(struct voltagedomain *voltdm,
> -+			 unsigned long target_volt)
> - {
> --	struct omap_vc_instance_data *vc = voltdm->vdd->vc_data;
> -+	struct omap_vc_channel *vc = voltdm->vc;
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u32 loop_cnt = 0, retries_cnt = 0;
> - 	u32 vc_valid, vc_bypass_val_reg, vc_bypass_value;
> -@@ -105,19 +103,19 @@ int omap_vc_bypass_scale_voltage(struct
> voltagedomain *voltdm,
> - 	if (ret)
> - 		return ret;
> -
> --	vc_valid = vc->vc_common->valid;
> --	vc_bypass_val_reg = vc->vc_common->bypass_val_reg;
> --	vc_bypass_value = (target_vsel << vc->vc_common->data_shift) |
> -+	vc_valid = vc->common->valid;
> -+	vc_bypass_val_reg = vc->common->bypass_val_reg;
> -+	vc_bypass_value = (target_vsel << vc->common->data_shift) |
> - 			(vdd->pmic_info->pmic_reg <<
> --			vc->vc_common->regaddr_shift) |
> -+			vc->common->regaddr_shift) |
> - 			(vdd->pmic_info->i2c_slave_addr <<
> --			vc->vc_common->slaveaddr_shift);
> -+			vc->common->slaveaddr_shift);
> -
> --	vdd->write_reg(vc_bypass_value, vc->vc_common->prm_mod,
> vc_bypass_val_reg);
> --	vdd->write_reg(vc_bypass_value | vc_valid, vc->vc_common-
> >prm_mod,
> -+	vdd->write_reg(vc_bypass_value, vc->common->prm_mod,
> vc_bypass_val_reg);
> -+	vdd->write_reg(vc_bypass_value | vc_valid, vc->common->prm_mod,
> - 		       vc_bypass_val_reg);
> -
> --	vc_bypass_value = vdd->read_reg(vc->vc_common->prm_mod,
> vc_bypass_val_reg);
> -+	vc_bypass_value = vdd->read_reg(vc->common->prm_mod,
> vc_bypass_val_reg);
> - 	/*
> - 	 * Loop till the bypass command is acknowledged from the SMPS.
> - 	 * NOTE: This is legacy code. The loop count and retry count needs
> -@@ -136,7 +134,7 @@ int omap_vc_bypass_scale_voltage(struct
> voltagedomain *voltdm,
> - 			loop_cnt = 0;
> - 			udelay(10);
> - 		}
> --		vc_bypass_value = vdd->read_reg(vc->vc_common-
> >prm_mod,
> -+		vc_bypass_value = vdd->read_reg(vc->common->prm_mod,
> - 						vc_bypass_val_reg);
> - 	}
> -
> -@@ -146,23 +144,23 @@ int omap_vc_bypass_scale_voltage(struct
> voltagedomain *voltdm,
> -
> - static void __init omap3_vfsm_init(struct voltagedomain *voltdm)
> - {
> --	struct omap_vc_instance_data *vc = voltdm->vdd->vc_data;
> -+	struct omap_vc_channel *vc = voltdm->vc;
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> -
> - 	/*
> - 	 * Voltage Manager FSM parameters init
> - 	 * XXX This data should be passed in from the board file
> - 	 */
> --	vdd->write_reg(OMAP3_CLKSETUP, vc->vc_common->prm_mod,
> OMAP3_PRM_CLKSETUP_OFFSET);
> --	vdd->write_reg(OMAP3_VOLTOFFSET, vc->vc_common->prm_mod,
> -+	vdd->write_reg(OMAP3_CLKSETUP, vc->common->prm_mod,
> OMAP3_PRM_CLKSETUP_OFFSET);
> -+	vdd->write_reg(OMAP3_VOLTOFFSET, vc->common->prm_mod,
> - 		       OMAP3_PRM_VOLTOFFSET_OFFSET);
> --	vdd->write_reg(OMAP3_VOLTSETUP2, vc->vc_common->prm_mod,
> -+	vdd->write_reg(OMAP3_VOLTSETUP2, vc->common->prm_mod,
> - 		       OMAP3_PRM_VOLTSETUP2_OFFSET);
> - }
> -
> - static void __init omap3_vc_init_channel(struct voltagedomain *voltdm)
> - {
> --	struct omap_vc_instance_data *vc = voltdm->vdd->vc_data;
> -+	struct omap_vc_channel *vc = voltdm->vc;
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	static bool is_initialized;
> - 	u8 on_vsel, onlp_vsel, ret_vsel, off_vsel;
> -@@ -176,19 +174,19 @@ static void __init omap3_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	onlp_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->onlp_volt);
> - 	ret_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->ret_volt);
> - 	off_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->off_volt);
> --	vc_val	= ((on_vsel << vc->vc_common->cmd_on_shift) |
> --		(onlp_vsel << vc->vc_common->cmd_onlp_shift) |
> --		(ret_vsel << vc->vc_common->cmd_ret_shift) |
> --		(off_vsel << vc->vc_common->cmd_off_shift));
> --	vdd->write_reg(vc_val, vc->vc_common->prm_mod, vc->cmdval_reg);
> -+	vc_val	= ((on_vsel << vc->common->cmd_on_shift) |
> -+		(onlp_vsel << vc->common->cmd_onlp_shift) |
> -+		(ret_vsel << vc->common->cmd_ret_shift) |
> -+		(off_vsel << vc->common->cmd_off_shift));
> -+	vdd->write_reg(vc_val, vc->common->prm_mod, vc->cmdval_reg);
> -
> - 	/*
> - 	 * Generic VC parameters init
> - 	 * XXX This data should be abstracted out
> - 	 */
> --	vdd->write_reg(OMAP3430_CMD1_MASK |
> OMAP3430_RAV1_MASK, vc->vc_common->prm_mod,
> -+	vdd->write_reg(OMAP3430_CMD1_MASK |
> OMAP3430_RAV1_MASK, vc->common->prm_mod,
> - 			OMAP3_PRM_VC_CH_CONF_OFFSET);
> --	vdd->write_reg(OMAP3430_MCODE_SHIFT |
> OMAP3430_HSEN_MASK, vc->vc_common->prm_mod,
> -+	vdd->write_reg(OMAP3430_MCODE_SHIFT |
> OMAP3430_HSEN_MASK, vc->common->prm_mod,
> - 			OMAP3_PRM_VC_I2C_CFG_OFFSET);
> -
> - 	omap3_vfsm_init(voltdm);
> -@@ -200,7 +198,7 @@ static void __init omap3_vc_init_channel(struct
> voltagedomain *voltdm)
> - /* OMAP4 specific voltage init functions */
> - static void __init omap4_vc_init_channel(struct voltagedomain *voltdm)
> - {
> --	struct omap_vc_instance_data *vc = voltdm->vdd->vc_data;
> -+	struct omap_vc_channel *vc = voltdm->vc;
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	static bool is_initialized;
> - 	u32 vc_val;
> -@@ -217,18 +215,18 @@ static void __init omap4_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	vc_val = (OMAP4430_RAV_VDD_MPU_L_MASK |
> OMAP4430_CMD_VDD_MPU_L_MASK |
> - 		  OMAP4430_RAV_VDD_IVA_L_MASK |
> OMAP4430_CMD_VDD_IVA_L_MASK |
> - 		  OMAP4430_RAV_VDD_CORE_L_MASK |
> OMAP4430_CMD_VDD_CORE_L_MASK);
> --	vdd->write_reg(vc_val, vc->vc_common->prm_mod,
> OMAP4_PRM_VC_CFG_CHANNEL_OFFSET);
> -+	vdd->write_reg(vc_val, vc->common->prm_mod,
> OMAP4_PRM_VC_CFG_CHANNEL_OFFSET);
> -
> - 	/* XXX These are magic numbers and do not belong! */
> - 	vc_val = (0x60 << OMAP4430_SCLL_SHIFT | 0x26 <<
> OMAP4430_SCLH_SHIFT);
> --	vdd->write_reg(vc_val, vc->vc_common->prm_mod,
> OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET);
> -+	vdd->write_reg(vc_val, vc->common->prm_mod,
> OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET);
> -
> - 	is_initialized = true;
> - }
> -
> - void __init omap_vc_init_channel(struct voltagedomain *voltdm)
> - {
> --	struct omap_vc_instance_data *vc = voltdm->vdd->vc_data;
> -+	struct omap_vc_channel *vc = voltdm->vc;
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u32 vc_val;
> -
> -@@ -246,27 +244,27 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	}
> -
> - 	/* Set up the SMPS_SA(i2c slave address in VC */
> --	vc_val = vdd->read_reg(vc->vc_common->prm_mod,
> --			       vc->vc_common->smps_sa_reg);
> -+	vc_val = vdd->read_reg(vc->common->prm_mod,
> -+			       vc->common->smps_sa_reg);
> - 	vc_val &= ~vc->smps_sa_mask;
> - 	vc_val |= vdd->pmic_info->i2c_slave_addr << vc->smps_sa_shift;
> --	vdd->write_reg(vc_val, vc->vc_common->prm_mod,
> --		       vc->vc_common->smps_sa_reg);
> -+	vdd->write_reg(vc_val, vc->common->prm_mod,
> -+		       vc->common->smps_sa_reg);
> -
> - 	/* Setup the VOLRA(pmic reg addr) in VC */
> --	vc_val = vdd->read_reg(vc->vc_common->prm_mod,
> --			       vc->vc_common->smps_volra_reg);
> -+	vc_val = vdd->read_reg(vc->common->prm_mod,
> -+			       vc->common->smps_volra_reg);
> - 	vc_val &= ~vc->smps_volra_mask;
> - 	vc_val |= vdd->pmic_info->pmic_reg << vc->smps_volra_shift;
> --	vdd->write_reg(vc_val, vc->vc_common->prm_mod,
> --		       vc->vc_common->smps_volra_reg);
> -+	vdd->write_reg(vc_val, vc->common->prm_mod,
> -+		       vc->common->smps_volra_reg);
> -
> - 	/* Configure the setup times */
> --	vc_val = vdd->read_reg(vc->vc_common->prm_mod, vdd->vfsm-
> >voltsetup_reg);
> -+	vc_val = vdd->read_reg(vc->common->prm_mod, vdd->vfsm-
> >voltsetup_reg);
> - 	vc_val &= ~vdd->vfsm->voltsetup_mask;
> - 	vc_val |= vdd->pmic_info->volt_setup_time <<
> - 			vdd->vfsm->voltsetup_shift;
> --	vdd->write_reg(vc_val, vc->vc_common->prm_mod, vdd->vfsm-
> >voltsetup_reg);
> -+	vdd->write_reg(vc_val, vc->common->prm_mod, vdd->vfsm-
> >voltsetup_reg);
> -
> - 	if (cpu_is_omap34xx())
> - 		omap3_vc_init_channel(voltdm);
> -diff --git a/arch/arm/mach-omap2/vc.h b/arch/arm/mach-omap2/vc.h
> -index d0bf348..51d36a8 100644
> ---- a/arch/arm/mach-omap2/vc.h
> -+++ b/arch/arm/mach-omap2/vc.h
> -@@ -22,7 +22,7 @@
> - struct voltagedomain;
> -
> - /**
> -- * struct omap_vc_common_data - per-VC register/bitfield data
> -+ * struct omap_vc_common - per-VC register/bitfield data
> -  * @cmd_on_mask: ON bitmask in PRM_VC_CMD_VAL* register
> -  * @valid: VALID bitmask in PRM_VC_BYPASS_VAL register
> -  * @prm_mod: PRM module id used for PRM register access
> -@@ -40,7 +40,7 @@ struct voltagedomain;
> -  * XXX One of cmd_on_mask and cmd_on_shift are not needed
> -  * XXX VALID should probably be a shift, not a mask
> -  */
> --struct omap_vc_common_data {
> -+struct omap_vc_common {
> - 	u32 cmd_on_mask;
> - 	u32 valid;
> - 	s16 prm_mod;
> -@@ -57,8 +57,8 @@ struct omap_vc_common_data {
> - };
> -
> - /**
> -- * struct omap_vc_instance_data - VC per-instance data
> -- * @vc_common: pointer to VC common data for this platform
> -+ * struct omap_vc_channel - VC per-instance data
> -+ * @common: pointer to VC common data for this platform
> -  * @smps_sa_mask: SA* bitmask in the PRM_VC_SMPS_SA register
> -  * @smps_volra_mask: VOLRA* bitmask in the PRM_VC_VOL_RA register
> -  * @smps_sa_shift: SA* field shift in the PRM_VC_SMPS_SA register
> -@@ -67,8 +67,8 @@ struct omap_vc_common_data {
> -  * XXX It is not necessary to have both a *_mask and a *_shift -
> -  *     remove one
> -  */
> --struct omap_vc_instance_data {
> --	const struct omap_vc_common_data *vc_common;
> -+struct omap_vc_channel {
> -+	const struct omap_vc_common *common;
> - 	u32 smps_sa_mask;
> - 	u32 smps_volra_mask;
> - 	u8 cmdval_reg;
> -@@ -76,12 +76,12 @@ struct omap_vc_instance_data {
> - 	u8 smps_volra_shift;
> - };
> -
> --extern struct omap_vc_instance_data omap3_vc1_data;
> --extern struct omap_vc_instance_data omap3_vc2_data;
> -+extern struct omap_vc_channel omap3_vc_mpu;
> -+extern struct omap_vc_channel omap3_vc_core;
> -
> --extern struct omap_vc_instance_data omap4_vc_mpu_data;
> --extern struct omap_vc_instance_data omap4_vc_iva_data;
> --extern struct omap_vc_instance_data omap4_vc_core_data;
> -+extern struct omap_vc_channel omap4_vc_mpu;
> -+extern struct omap_vc_channel omap4_vc_iva;
> -+extern struct omap_vc_channel omap4_vc_core;
> -
> - void omap_vc_init_channel(struct voltagedomain *voltdm);
> - int omap_vc_pre_scale(struct voltagedomain *voltdm,
> -@@ -90,8 +90,8 @@ int omap_vc_pre_scale(struct voltagedomain *voltdm,
> - void omap_vc_post_scale(struct voltagedomain *voltdm,
> - 			unsigned long target_volt,
> - 			u8 target_vsel, u8 current_vsel);
> --int omap_vc_bypass_scale_voltage(struct voltagedomain *voltdm,
> --				 unsigned long target_volt);
> -+int omap_vc_bypass_scale(struct voltagedomain *voltdm,
> -+			 unsigned long target_volt);
> -
> - #endif
> -
> -diff --git a/arch/arm/mach-omap2/vc3xxx_data.c b/arch/arm/mach-
> omap2/vc3xxx_data.c
> -index 55caccb..1a17ed4 100644
> ---- a/arch/arm/mach-omap2/vc3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vc3xxx_data.c
> -@@ -29,7 +29,7 @@
> -  * VC data common to 34xx/36xx chips
> -  * XXX This stuff presumably belongs in the vc3xxx.c or vc.c file.
> -  */
> --static struct omap_vc_common_data omap3_vc_common = {
> -+static struct omap_vc_common omap3_vc_common = {
> - 	.prm_mod         = OMAP3430_GR_MOD,
> - 	.smps_sa_reg	 = OMAP3_PRM_VC_SMPS_SA_OFFSET,
> - 	.smps_volra_reg	 = OMAP3_PRM_VC_SMPS_VOL_RA_OFFSET,
> -@@ -45,8 +45,8 @@ static struct omap_vc_common_data
> omap3_vc_common = {
> - 	.cmd_off_shift	 = OMAP3430_VC_CMD_OFF_SHIFT,
> - };
> -
> --struct omap_vc_instance_data omap3_vc1_data = {
> --	.vc_common = &omap3_vc_common,
> -+struct omap_vc_channel omap3_vc_mpu = {
> -+	.common = &omap3_vc_common,
> - 	.cmdval_reg = OMAP3_PRM_VC_CMD_VAL_0_OFFSET,
> - 	.smps_sa_shift = OMAP3430_PRM_VC_SMPS_SA_SA0_SHIFT,
> - 	.smps_sa_mask = OMAP3430_PRM_VC_SMPS_SA_SA0_MASK,
> -@@ -54,8 +54,8 @@ struct omap_vc_instance_data omap3_vc1_data = {
> - 	.smps_volra_mask = OMAP3430_VOLRA0_MASK,
> - };
> -
> --struct omap_vc_instance_data omap3_vc2_data = {
> --	.vc_common = &omap3_vc_common,
> -+struct omap_vc_channel omap3_vc_core = {
> -+	.common = &omap3_vc_common,
> - 	.cmdval_reg = OMAP3_PRM_VC_CMD_VAL_1_OFFSET,
> - 	.smps_sa_shift = OMAP3430_PRM_VC_SMPS_SA_SA1_SHIFT,
> - 	.smps_sa_mask = OMAP3430_PRM_VC_SMPS_SA_SA1_MASK,
> -diff --git a/arch/arm/mach-omap2/vc44xx_data.c b/arch/arm/mach-
> omap2/vc44xx_data.c
> -index b62678e..56f3f4a 100644
> ---- a/arch/arm/mach-omap2/vc44xx_data.c
> -+++ b/arch/arm/mach-omap2/vc44xx_data.c
> -@@ -30,7 +30,7 @@
> -  * VC data common to 44xx chips
> -  * XXX This stuff presumably belongs in the vc3xxx.c or vc.c file.
> -  */
> --static const struct omap_vc_common_data omap4_vc_common = {
> -+static const struct omap_vc_common omap4_vc_common = {
> - 	.prm_mod = OMAP4430_PRM_DEVICE_INST,
> - 	.smps_sa_reg = OMAP4_PRM_VC_SMPS_SA_OFFSET,
> - 	.smps_volra_reg = OMAP4_PRM_VC_VAL_SMPS_RA_VOL_OFFSET,
> -@@ -47,8 +47,8 @@ static const struct omap_vc_common_data
> omap4_vc_common = {
> - };
> -
> - /* VC instance data for each controllable voltage line */
> --struct omap_vc_instance_data omap4_vc_mpu_data = {
> --	.vc_common = &omap4_vc_common,
> -+struct omap_vc_channel omap4_vc_mpu = {
> -+	.common = &omap4_vc_common,
> - 	.cmdval_reg = OMAP4_PRM_VC_VAL_CMD_VDD_MPU_L_OFFSET,
> - 	.smps_sa_shift =
> OMAP4430_SA_VDD_MPU_L_PRM_VC_SMPS_SA_SHIFT,
> - 	.smps_sa_mask =
> OMAP4430_SA_VDD_MPU_L_PRM_VC_SMPS_SA_MASK,
> -@@ -56,8 +56,8 @@ struct omap_vc_instance_data omap4_vc_mpu_data = {
> - 	.smps_volra_mask = OMAP4430_VOLRA_VDD_MPU_L_MASK,
> - };
> -
> --struct omap_vc_instance_data omap4_vc_iva_data = {
> --	.vc_common = &omap4_vc_common,
> -+struct omap_vc_channel omap4_vc_iva = {
> -+	.common = &omap4_vc_common,
> - 	.cmdval_reg = OMAP4_PRM_VC_VAL_CMD_VDD_IVA_L_OFFSET,
> - 	.smps_sa_shift =
> OMAP4430_SA_VDD_IVA_L_PRM_VC_SMPS_SA_SHIFT,
> - 	.smps_sa_mask =
> OMAP4430_SA_VDD_IVA_L_PRM_VC_SMPS_SA_MASK,
> -@@ -65,8 +65,8 @@ struct omap_vc_instance_data omap4_vc_iva_data = {
> - 	.smps_volra_mask = OMAP4430_VOLRA_VDD_IVA_L_MASK,
> - };
> -
> --struct omap_vc_instance_data omap4_vc_core_data = {
> --	.vc_common = &omap4_vc_common,
> -+struct omap_vc_channel omap4_vc_core = {
> -+	.common = &omap4_vc_common,
> - 	.cmdval_reg = OMAP4_PRM_VC_VAL_CMD_VDD_CORE_L_OFFSET,
> - 	.smps_sa_shift = OMAP4430_SA_VDD_CORE_L_0_6_SHIFT,
> - 	.smps_sa_mask = OMAP4430_SA_VDD_CORE_L_0_6_MASK,
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 6ba6e49..c6352e3 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -769,7 +769,7 @@ void omap_change_voltscale_method(struct
> voltagedomain *voltdm,
> - 		vdd->volt_scale = vp_forceupdate_scale_voltage;
> - 		return;
> - 	case VOLTSCALE_VCBYPASS:
> --		vdd->volt_scale = omap_vc_bypass_scale_voltage;
> -+		vdd->volt_scale = omap_vc_bypass_scale;
> - 		return;
> - 	default:
> - 		pr_warning("%s: Trying to change the method of voltage
> scaling"
> -@@ -802,10 +802,12 @@ int __init omap_voltage_late_init(void)
> - 		if (!voltdm->scalable)
> - 			continue;
> -
> -+		if (voltdm->vc)
> -+			omap_vc_init_channel(voltdm);
> -+
> - 		if (voltdm->vdd) {
> - 			if (omap_vdd_data_configure(voltdm))
> - 				continue;
> --			omap_vc_init_channel(voltdm);
> - 			vp_init(voltdm);
> - 			vdd_debugfs_init(voltdm);
> - 		}
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index b41d9f1..b06e03f 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -66,6 +66,8 @@ struct voltagedomain {
> - 	bool scalable;
> - 	struct list_head node;
> - 	struct list_head pwrdm_list;
> -+	struct omap_vc_channel *vc;
> -+
> - 	struct omap_vdd_info *vdd;
> - };
> -
> -@@ -125,8 +127,6 @@ struct omap_volt_pmic_info {
> -  * @vp_data		: the register values, shifts, masks for various
> -  *			  vp registers
> -  * @vp_rt_data          : VP data derived at runtime, not predefined
> -- * @vc_data		: structure containing various various vc registers,
> -- *			  shifts, masks etc.
> -  * @vfsm                : voltage manager FSM data
> -  * @debug_dir		: debug directory for this voltage domain.
> -  * @curr_volt		: current voltage for this vdd.
> -@@ -139,7 +139,6 @@ struct omap_vdd_info {
> - 	struct omap_volt_pmic_info *pmic_info;
> - 	struct omap_vp_instance_data *vp_data;
> - 	struct omap_vp_runtime_data vp_rt_data;
> --	struct omap_vc_instance_data *vc_data;
> - 	const struct omap_vfsm_instance_data *vfsm;
> - 	struct dentry *debug_dir;
> - 	u32 curr_volt;
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index d7e1052..7cb27ec 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -41,7 +41,6 @@ static struct omap_vdd_info omap3_vdd1_info = {
> - 	.prm_irqst_mod = OCP_MOD,
> - 	.prm_irqst_reg = OMAP3_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.vp_data = &omap3_vp1_data,
> --	.vc_data = &omap3_vc1_data,
> - 	.vfsm = &omap3_vdd1_vfsm_data,
> - };
> -
> -@@ -55,19 +54,20 @@ static struct omap_vdd_info omap3_vdd2_info = {
> - 	.prm_irqst_mod = OCP_MOD,
> - 	.prm_irqst_reg = OMAP3_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.vp_data = &omap3_vp2_data,
> --	.vc_data = &omap3_vc2_data,
> - 	.vfsm = &omap3_vdd2_vfsm_data,
> - };
> -
> - static struct voltagedomain omap3_voltdm_mpu = {
> - 	.name = "mpu_iva",
> - 	.scalable = true,
> -+	.vc = &omap3_vc_mpu,
> - 	.vdd = &omap3_vdd1_info,
> - };
> -
> - static struct voltagedomain omap3_voltdm_core = {
> - 	.name = "core",
> - 	.scalable = true,
> -+	.vc = &omap3_vc_core,
> - 	.vdd = &omap3_vdd2_info,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -index 9a17b5e..a05d90a 100644
> ---- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -@@ -40,7 +40,6 @@ static struct omap_vdd_info omap4_vdd_mpu_info = {
> - 	.prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
> - 	.prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_2_OFFSET,
> - 	.vp_data = &omap4_vp_mpu_data,
> --	.vc_data = &omap4_vc_mpu_data,
> - 	.vfsm = &omap4_vdd_mpu_vfsm_data,
> - };
> -
> -@@ -52,7 +51,6 @@ static struct omap_vdd_info omap4_vdd_iva_info = {
> - 	.prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
> - 	.prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.vp_data = &omap4_vp_iva_data,
> --	.vc_data = &omap4_vc_iva_data,
> - 	.vfsm = &omap4_vdd_iva_vfsm_data,
> - };
> -
> -@@ -64,25 +62,27 @@ static struct omap_vdd_info omap4_vdd_core_info =
> {
> - 	.prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
> - 	.prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.vp_data = &omap4_vp_core_data,
> --	.vc_data = &omap4_vc_core_data,
> - 	.vfsm = &omap4_vdd_core_vfsm_data,
> - };
> -
> - static struct voltagedomain omap4_voltdm_mpu = {
> - 	.name = "mpu",
> - 	.scalable = true,
> -+	.vc = &omap4_vc_mpu,
> - 	.vdd = &omap4_vdd_mpu_info,
> - };
> -
> - static struct voltagedomain omap4_voltdm_iva = {
> - 	.name = "iva",
> - 	.scalable = true,
> -+	.vc = &omap4_vc_iva,
> - 	.vdd = &omap4_vdd_iva_info,
> - };
> -
> - static struct voltagedomain omap4_voltdm_core = {
> - 	.name = "core",
> - 	.scalable = true,
> -+	.vc = &omap4_vc_core,
> - 	.vdd = &omap4_vdd_core_info,
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0111-OMAP2-
> voltage-enable-VC-bypass-scale-method-when-VC-.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0111-OMAP2-voltage-enable-VC-
> bypass-scale-method-when-VC-.patch
> deleted file mode 100644
> index a5ad5b8..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0111-OMAP2-voltage-
> enable-VC-bypass-scale-method-when-VC-.patch
> +++ /dev/null
> @@ -1,37 +0,0 @@
> -From 23a2e1563c2e0bf2c8162c8c91b2cf1f6007c669 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 18 Jul 2011 15:48:22 -0700
> -Subject: [PATCH 111/149] OMAP2+: voltage: enable VC bypass scale method
> when VC is initialized
> -
> -VC is initialized first, set default scaling method to VC bypass.
> -If/when VP is initialized, default scaling method will be changed to
> -VP force-update.
> -
> -Enabling VC bypass as default as soon as VC is initialized allows for
> -VC bypass scaling to work when no VP is configured/initialized for a
> -given voltage domain.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/voltage.c |    4 +++-
> - 1 files changed, 3 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index c6352e3..e1a22a3 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -802,8 +802,10 @@ int __init omap_voltage_late_init(void)
> - 		if (!voltdm->scalable)
> - 			continue;
> -
> --		if (voltdm->vc)
> -+		if (voltdm->vc) {
> -+			voltdm->vdd->volt_scale = omap_vc_bypass_scale;
> - 			omap_vc_init_channel(voltdm);
> -+		}
> -
> - 		if (voltdm->vdd) {
> - 			if (omap_vdd_data_configure(voltdm))
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0112-OMAP2-
> voltage-split-out-voltage-processor-VP-code-in.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0112-OMAP2-voltage-split-out-voltage-
> processor-VP-code-in.patch
> deleted file mode 100644
> index 095b5bf..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0112-OMAP2-voltage-split-
> out-voltage-processor-VP-code-in.patch
> +++ /dev/null
> @@ -1,874 +0,0 @@
> -From 0d45741059eb1c21dd4c1f34083d1ecaed7fca96 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 21 Mar 2011 14:29:13 -0700
> -Subject: [PATCH 112/149] OMAP2+: voltage: split out voltage processor (VP)
> code into new layer
> -
> -This patch is primarily a move of VP specific code from voltage.c into
> -its own code in vp.c and adds prototypes to vp.h
> -
> -No functional changes, except debugfs...
> -
> -VP debugfs moved to 'vp' subdir of <debugfs>/voltage/ and 'vp_'
> -prefixes removed from all debugfs filenames.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/Makefile  |    2 +-
> - arch/arm/mach-omap2/voltage.c |  348 +-------------------------------------
> - arch/arm/mach-omap2/voltage.h |    3 -
> - arch/arm/mach-omap2/vp.c      |  374
> +++++++++++++++++++++++++++++++++++++++++
> - arch/arm/mach-omap2/vp.h      |    9 +
> - 5 files changed, 387 insertions(+), 349 deletions(-)
> - create mode 100644 arch/arm/mach-omap2/vp.c
> -
> -diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-
> omap2/Makefile
> -index ecbf361..8e79ca5 100644
> ---- a/arch/arm/mach-omap2/Makefile
> -+++ b/arch/arm/mach-omap2/Makefile
> -@@ -90,7 +90,7 @@ obj-$(CONFIG_ARCH_OMAP4)		+= prcm.o
> cm2xxx_3xxx.o cminst44xx.o \
> -
> - # OMAP voltage domains
> - ifeq ($(CONFIG_PM),y)
> --voltagedomain-common			:= voltage.o vc.o
> -+voltagedomain-common			:= voltage.o vc.o vp.o
> - obj-$(CONFIG_ARCH_OMAP2)		+= $(voltagedomain-common) \
> - 					   voltagedomains2xxx_data.o
> - obj-$(CONFIG_ARCH_OMAP3)		+= $(voltagedomain-common) \
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index e1a22a3..9b9f019 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -46,10 +46,6 @@ static LIST_HEAD(voltdm_list);
> - #define VOLTAGE_DIR_SIZE	16
> - static struct dentry *voltage_dir;
> -
> --/* Init function pointers */
> --static int vp_forceupdate_scale_voltage(struct voltagedomain *voltdm,
> --					unsigned long target_volt);
> --
> - static u32 omap3_voltage_read_reg(u16 mod, u8 offset)
> - {
> - 	return omap2_prm_read_mod_reg(mod, offset);
> -@@ -105,7 +101,7 @@ static int __init _config_common_vdd_data(struct
> voltagedomain *voltdm)
> - 	sys_clk_speed /= 1000;
> -
> - 	/* Generic voltage parameters */
> --	vdd->volt_scale = vp_forceupdate_scale_voltage;
> -+	vdd->volt_scale = omap_vp_forceupdate_scale;
> - 	vdd->vp_enabled = false;
> -
> - 	vdd->vp_rt_data.vpconfig_erroroffset =
> -@@ -127,30 +123,6 @@ static int __init _config_common_vdd_data(struct
> voltagedomain *voltdm)
> - 	return 0;
> - }
> -
> --/* Voltage debugfs support */
> --static int vp_volt_debug_get(void *data, u64 *val)
> --{
> --	struct voltagedomain *voltdm = (struct voltagedomain *)data;
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --	u8 vsel;
> --
> --	if (!vdd) {
> --		pr_warning("Wrong paramater passed\n");
> --		return -EINVAL;
> --	}
> --
> --	vsel = vdd->read_reg(vdd->vp_data->vp_common->prm_mod, vdd-
> >vp_data->voltage);
> --
> --	if (!vdd->pmic_info->vsel_to_uv) {
> --		pr_warning("PMIC function to convert vsel to voltage"
> --			"in uV not registerd\n");
> --		return -EINVAL;
> --	}
> --
> --	*val = vdd->pmic_info->vsel_to_uv(vsel);
> --	return 0;
> --}
> --
> - static int nom_volt_debug_get(void *data, u64 *val)
> - {
> - 	struct voltagedomain *voltdm = (struct voltagedomain *)data;
> -@@ -165,85 +137,8 @@ static int nom_volt_debug_get(void *data, u64 *val)
> - 	return 0;
> - }
> -
> --DEFINE_SIMPLE_ATTRIBUTE(vp_volt_debug_fops, vp_volt_debug_get, NULL,
> "%llu\n");
> - DEFINE_SIMPLE_ATTRIBUTE(nom_volt_debug_fops, nom_volt_debug_get,
> NULL,
> - 								"%llu\n");
> --static void vp_latch_vsel(struct voltagedomain *voltdm)
> --{
> --	u32 vpconfig;
> --	unsigned long uvdc;
> --	char vsel;
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --
> --	uvdc = omap_voltage_get_nom_volt(voltdm);
> --	if (!uvdc) {
> --		pr_warning("%s: unable to find current voltage for vdd_%s\n",
> --			__func__, voltdm->name);
> --		return;
> --	}
> --
> --	if (!vdd->pmic_info || !vdd->pmic_info->uv_to_vsel) {
> --		pr_warning("%s: PMIC function to convert voltage in uV to"
> --			" vsel not registered\n", __func__);
> --		return;
> --	}
> --
> --	vsel = vdd->pmic_info->uv_to_vsel(uvdc);
> --
> --	vpconfig = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --	vpconfig &= ~(vdd->vp_data->vp_common-
> >vpconfig_initvoltage_mask |
> --			vdd->vp_data->vp_common->vpconfig_initvdd);
> --	vpconfig |= vsel << vdd->vp_data->vp_common-
> >vpconfig_initvoltage_shift;
> --
> --	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --
> --	/* Trigger initVDD value copy to voltage processor */
> --	vdd->write_reg((vpconfig | vdd->vp_data->vp_common-
> >vpconfig_initvdd),
> --		       vdd->vp_data->vp_common->prm_mod, vdd->vp_data-
> >vpconfig);
> --
> --	/* Clear initVDD copy trigger bit */
> --	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --}
> --
> --/* Generic voltage init functions */
> --static void __init vp_init(struct voltagedomain *voltdm)
> --{
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --	u32 vp_val;
> --
> --	if (!vdd->read_reg || !vdd->write_reg) {
> --		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> --			__func__, voltdm->name);
> --		return;
> --	}
> --
> --	vp_val = vdd->vp_rt_data.vpconfig_erroroffset |
> --		(vdd->vp_rt_data.vpconfig_errorgain <<
> --		vdd->vp_data->vp_common->vpconfig_errorgain_shift) |
> --		vdd->vp_data->vp_common->vpconfig_timeouten;
> --	vdd->write_reg(vp_val, vdd->vp_data->vp_common->prm_mod, vdd-
> >vp_data->vpconfig);
> --
> --	vp_val = ((vdd->vp_rt_data.vstepmin_smpswaittimemin <<
> --		vdd->vp_data->vp_common-
> >vstepmin_smpswaittimemin_shift) |
> --		(vdd->vp_rt_data.vstepmin_stepmin <<
> --		vdd->vp_data->vp_common->vstepmin_stepmin_shift));
> --	vdd->write_reg(vp_val, vdd->vp_data->vp_common->prm_mod, vdd-
> >vp_data->vstepmin);
> --
> --	vp_val = ((vdd->vp_rt_data.vstepmax_smpswaittimemax <<
> --		vdd->vp_data->vp_common-
> >vstepmax_smpswaittimemax_shift) |
> --		(vdd->vp_rt_data.vstepmax_stepmax <<
> --		vdd->vp_data->vp_common->vstepmax_stepmax_shift));
> --	vdd->write_reg(vp_val, vdd->vp_data->vp_common->prm_mod, vdd-
> >vp_data->vstepmax);
> --
> --	vp_val = ((vdd->vp_rt_data.vlimitto_vddmax <<
> --		vdd->vp_data->vp_common->vlimitto_vddmax_shift) |
> --		(vdd->vp_rt_data.vlimitto_vddmin <<
> --		vdd->vp_data->vp_common->vlimitto_vddmin_shift) |
> --		(vdd->vp_rt_data.vlimitto_timeout <<
> --		vdd->vp_data->vp_common->vlimitto_timeout_shift));
> --	vdd->write_reg(vp_val, vdd->vp_data->vp_common->prm_mod, vdd-
> >vp_data->vlimitto);
> --}
> --
> - static void __init vdd_debugfs_init(struct voltagedomain *voltdm)
> - {
> - 	char *name;
> -@@ -268,125 +163,11 @@ static void __init vdd_debugfs_init(struct
> voltagedomain *voltdm)
> - 		return;
> - 	}
> -
> --	(void) debugfs_create_x16("vp_errorgain", S_IRUGO, vdd->debug_dir,
> --				&(vdd->vp_rt_data.vpconfig_errorgain));
> --	(void) debugfs_create_x16("vp_smpswaittimemin", S_IRUGO,
> --				vdd->debug_dir,
> --				&(vdd-
> >vp_rt_data.vstepmin_smpswaittimemin));
> --	(void) debugfs_create_x8("vp_stepmin", S_IRUGO, vdd->debug_dir,
> --				&(vdd->vp_rt_data.vstepmin_stepmin));
> --	(void) debugfs_create_x16("vp_smpswaittimemax", S_IRUGO,
> --				vdd->debug_dir,
> --				&(vdd-
> >vp_rt_data.vstepmax_smpswaittimemax));
> --	(void) debugfs_create_x8("vp_stepmax", S_IRUGO, vdd->debug_dir,
> --				&(vdd->vp_rt_data.vstepmax_stepmax));
> --	(void) debugfs_create_x8("vp_vddmax", S_IRUGO, vdd->debug_dir,
> --				&(vdd->vp_rt_data.vlimitto_vddmax));
> --	(void) debugfs_create_x8("vp_vddmin", S_IRUGO, vdd->debug_dir,
> --				&(vdd->vp_rt_data.vlimitto_vddmin));
> --	(void) debugfs_create_x16("vp_timeout", S_IRUGO, vdd->debug_dir,
> --				&(vdd->vp_rt_data.vlimitto_timeout));
> --	(void) debugfs_create_file("curr_vp_volt", S_IRUGO, vdd->debug_dir,
> --				(void *) voltdm, &vp_volt_debug_fops);
> - 	(void) debugfs_create_file("curr_nominal_volt", S_IRUGO,
> - 				vdd->debug_dir, (void *) voltdm,
> - 				&nom_volt_debug_fops);
> - }
> -
> --/* VP force update method of voltage scaling */
> --static int vp_forceupdate_scale_voltage(struct voltagedomain *voltdm,
> --		unsigned long target_volt)
> --{
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --	u32 vpconfig;
> --	u8 target_vsel, current_vsel;
> --	int ret, timeout = 0;
> --
> --	ret = omap_vc_pre_scale(voltdm, target_volt, &target_vsel,
> &current_vsel);
> --	if (ret)
> --		return ret;
> --
> --	/*
> --	 * Clear all pending TransactionDone interrupt/status. Typical latency
> --	 * is <3us
> --	 */
> --	while (timeout++ < VP_TRANXDONE_TIMEOUT) {
> --		vdd->write_reg(vdd->vp_data->prm_irqst_data-
> >tranxdone_status,
> --			       vdd->prm_irqst_mod, vdd->prm_irqst_reg);
> --		if (!(vdd->read_reg(vdd->prm_irqst_mod, vdd-
> >prm_irqst_reg) &
> --		      vdd->vp_data->prm_irqst_data->tranxdone_status))
> --			break;
> --		udelay(1);
> --	}
> --	if (timeout >= VP_TRANXDONE_TIMEOUT) {
> --		pr_warning("%s: vdd_%s TRANXDONE timeout exceeded."
> --			"Voltage change aborted", __func__, voltdm->name);
> --		return -ETIMEDOUT;
> --	}
> --
> --	/* Configure for VP-Force Update */
> --	vpconfig = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --	vpconfig &= ~(vdd->vp_data->vp_common->vpconfig_initvdd |
> --			vdd->vp_data->vp_common->vpconfig_forceupdate |
> --			vdd->vp_data->vp_common-
> >vpconfig_initvoltage_mask);
> --	vpconfig |= ((target_vsel <<
> --			vdd->vp_data->vp_common-
> >vpconfig_initvoltage_shift));
> --	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --
> --	/* Trigger initVDD value copy to voltage processor */
> --	vpconfig |= vdd->vp_data->vp_common->vpconfig_initvdd;
> --	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --
> --	/* Force update of voltage */
> --	vpconfig |= vdd->vp_data->vp_common->vpconfig_forceupdate;
> --	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --
> --	/*
> --	 * Wait for TransactionDone. Typical latency is <200us.
> --	 * Depends on SMPSWAITTIMEMIN/MAX and voltage change
> --	 */
> --	timeout = 0;
> --	omap_test_timeout((vdd->read_reg(vdd->prm_irqst_mod,
> --					 vdd->prm_irqst_reg) &
> --			   vdd->vp_data->prm_irqst_data->tranxdone_status),
> --			  VP_TRANXDONE_TIMEOUT, timeout);
> --	if (timeout >= VP_TRANXDONE_TIMEOUT)
> --		pr_err("%s: vdd_%s TRANXDONE timeout exceeded."
> --			"TRANXDONE never got set after the voltage
> update\n",
> --			__func__, voltdm->name);
> --
> --	omap_vc_post_scale(voltdm, target_volt, target_vsel, current_vsel);
> --
> --	/*
> --	 * Disable TransactionDone interrupt , clear all status, clear
> --	 * control registers
> --	 */
> --	timeout = 0;
> --	while (timeout++ < VP_TRANXDONE_TIMEOUT) {
> --		vdd->write_reg(vdd->vp_data->prm_irqst_data-
> >tranxdone_status,
> --			       vdd->prm_irqst_mod, vdd->prm_irqst_reg);
> --		if (!(vdd->read_reg(vdd->prm_irqst_mod, vdd-
> >prm_irqst_reg) &
> --		      vdd->vp_data->prm_irqst_data->tranxdone_status))
> --			break;
> --		udelay(1);
> --	}
> --
> --	if (timeout >= VP_TRANXDONE_TIMEOUT)
> --		pr_warning("%s: vdd_%s TRANXDONE timeout exceeded while
> trying"
> --			"to clear the TRANXDONE status\n",
> --			__func__, voltdm->name);
> --
> --	vpconfig = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --	/* Clear initVDD copy trigger bit */
> --	vpconfig &= ~vdd->vp_data->vp_common->vpconfig_initvdd;
> --	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --	/* Clear force bit */
> --	vpconfig &= ~vdd->vp_data->vp_common->vpconfig_forceupdate;
> --	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --
> --	return 0;
> --}
> --
> - static int __init omap_vdd_data_configure(struct voltagedomain *voltdm)
> - {
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> -@@ -439,129 +220,6 @@ unsigned long omap_voltage_get_nom_volt(struct
> voltagedomain *voltdm)
> - }
> -
> - /**
> -- * omap_vp_get_curr_volt() - API to get the current vp voltage.
> -- * @voltdm:	pointer to the VDD.
> -- *
> -- * This API returns the current voltage for the specified voltage processor
> -- */
> --unsigned long omap_vp_get_curr_volt(struct voltagedomain *voltdm)
> --{
> --	struct omap_vdd_info *vdd;
> --	u8 curr_vsel;
> --
> --	if (!voltdm || IS_ERR(voltdm)) {
> --		pr_warning("%s: VDD specified does not exist!\n", __func__);
> --		return 0;
> --	}
> --
> --	vdd = voltdm->vdd;
> --	if (!vdd->read_reg) {
> --		pr_err("%s: No read API for reading vdd_%s regs\n",
> --			__func__, voltdm->name);
> --		return 0;
> --	}
> --
> --	curr_vsel = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->voltage);
> --
> --	if (!vdd->pmic_info || !vdd->pmic_info->vsel_to_uv) {
> --		pr_warning("%s: PMIC function to convert vsel to voltage"
> --			"in uV not registerd\n", __func__);
> --		return 0;
> --	}
> --
> --	return vdd->pmic_info->vsel_to_uv(curr_vsel);
> --}
> --
> --/**
> -- * omap_vp_enable() - API to enable a particular VP
> -- * @voltdm:	pointer to the VDD whose VP is to be enabled.
> -- *
> -- * This API enables a particular voltage processor. Needed by the smartreflex
> -- * class drivers.
> -- */
> --void omap_vp_enable(struct voltagedomain *voltdm)
> --{
> --	struct omap_vdd_info *vdd;
> --	u32 vpconfig;
> --
> --	if (!voltdm || IS_ERR(voltdm)) {
> --		pr_warning("%s: VDD specified does not exist!\n", __func__);
> --		return;
> --	}
> --
> --	vdd = voltdm->vdd;
> --	if (!vdd->read_reg || !vdd->write_reg) {
> --		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> --			__func__, voltdm->name);
> --		return;
> --	}
> --
> --	/* If VP is already enabled, do nothing. Return */
> --	if (vdd->vp_enabled)
> --		return;
> --
> --	vp_latch_vsel(voltdm);
> --
> --	/* Enable VP */
> --	vpconfig = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --	vpconfig |= vdd->vp_data->vp_common->vpconfig_vpenable;
> --	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --	vdd->vp_enabled = true;
> --}
> --
> --/**
> -- * omap_vp_disable() - API to disable a particular VP
> -- * @voltdm:	pointer to the VDD whose VP is to be disabled.
> -- *
> -- * This API disables a particular voltage processor. Needed by the smartreflex
> -- * class drivers.
> -- */
> --void omap_vp_disable(struct voltagedomain *voltdm)
> --{
> --	struct omap_vdd_info *vdd;
> --	u32 vpconfig;
> --	int timeout;
> --
> --	if (!voltdm || IS_ERR(voltdm)) {
> --		pr_warning("%s: VDD specified does not exist!\n", __func__);
> --		return;
> --	}
> --
> --	vdd = voltdm->vdd;
> --	if (!vdd->read_reg || !vdd->write_reg) {
> --		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> --			__func__, voltdm->name);
> --		return;
> --	}
> --
> --	/* If VP is already disabled, do nothing. Return */
> --	if (!vdd->vp_enabled) {
> --		pr_warning("%s: Trying to disable VP for vdd_%s when"
> --			"it is already disabled\n", __func__, voltdm->name);
> --		return;
> --	}
> --
> --	/* Disable VP */
> --	vpconfig = vdd->read_reg(vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --	vpconfig &= ~vdd->vp_data->vp_common->vpconfig_vpenable;
> --	vdd->write_reg(vpconfig, vdd->vp_data->vp_common->prm_mod,
> vdd->vp_data->vpconfig);
> --
> --	/*
> --	 * Wait for VP idle Typical latency is <2us. Maximum latency is ~100us
> --	 */
> --	omap_test_timeout((vdd->read_reg(vdd->vp_data->vp_common-
> >prm_mod, vdd->vp_data->vstatus)),
> --				VP_IDLE_TIMEOUT, timeout);
> --
> --	if (timeout >= VP_IDLE_TIMEOUT)
> --		pr_warning("%s: vdd_%s idle timedout\n",
> --			__func__, voltdm->name);
> --
> --	vdd->vp_enabled = false;
> --
> --	return;
> --}
> --
> --/**
> -  * omap_voltage_scale_vdd() - API to scale voltage of a particular
> -  *				voltage domain.
> -  * @voltdm:	pointer to the VDD which is to be scaled.
> -@@ -766,7 +424,7 @@ void omap_change_voltscale_method(struct
> voltagedomain *voltdm,
> -
> - 	switch (voltscale_method) {
> - 	case VOLTSCALE_VPFORCEUPDATE:
> --		vdd->volt_scale = vp_forceupdate_scale_voltage;
> -+		vdd->volt_scale = omap_vp_forceupdate_scale;
> - 		return;
> - 	case VOLTSCALE_VCBYPASS:
> - 		vdd->volt_scale = omap_vc_bypass_scale;
> -@@ -810,8 +468,8 @@ int __init omap_voltage_late_init(void)
> - 		if (voltdm->vdd) {
> - 			if (omap_vdd_data_configure(voltdm))
> - 				continue;
> --			vp_init(voltdm);
> - 			vdd_debugfs_init(voltdm);
> -+			omap_vp_init(voltdm);
> - 		}
> - 	}
> -
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index b06e03f..83fa239 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -152,9 +152,6 @@ struct omap_vdd_info {
> - 		unsigned long target_volt);
> - };
> -
> --unsigned long omap_vp_get_curr_volt(struct voltagedomain *voltdm);
> --void omap_vp_enable(struct voltagedomain *voltdm);
> --void omap_vp_disable(struct voltagedomain *voltdm);
> - int omap_voltage_scale_vdd(struct voltagedomain *voltdm,
> - 		unsigned long target_volt);
> - void omap_voltage_reset(struct voltagedomain *voltdm);
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -new file mode 100644
> -index 0000000..f3503de
> ---- /dev/null
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -0,0 +1,374 @@
> -+#include <linux/kernel.h>
> -+#include <linux/init.h>
> -+#include <linux/debugfs.h>
> -+
> -+#include <plat/common.h>
> -+
> -+#include "voltage.h"
> -+#include "vp.h"
> -+#include "prm-regbits-34xx.h"
> -+#include "prm-regbits-44xx.h"
> -+#include "prm44xx.h"
> -+
> -+static void __init vp_debugfs_init(struct voltagedomain *voltdm);
> -+
> -+static void vp_latch_vsel(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_vp_instance_data *vp = voltdm->vdd->vp_data;
> -+	u32 vpconfig;
> -+	unsigned long uvdc;
> -+	char vsel;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -+
> -+	uvdc = omap_voltage_get_nom_volt(voltdm);
> -+	if (!uvdc) {
> -+		pr_warning("%s: unable to find current voltage for vdd_%s\n",
> -+			__func__, voltdm->name);
> -+		return;
> -+	}
> -+
> -+	if (!vdd->pmic_info || !vdd->pmic_info->uv_to_vsel) {
> -+		pr_warning("%s: PMIC function to convert voltage in uV to"
> -+			" vsel not registered\n", __func__);
> -+		return;
> -+	}
> -+
> -+	vsel = vdd->pmic_info->uv_to_vsel(uvdc);
> -+
> -+	vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp-
> >vpconfig);
> -+	vpconfig &= ~(vp->vp_common->vpconfig_initvoltage_mask |
> -+			vp->vp_common->vpconfig_initvdd);
> -+	vpconfig |= vsel << vp->vp_common->vpconfig_initvoltage_shift;
> -+
> -+	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+
> -+	/* Trigger initVDD value copy to voltage processor */
> -+	vdd->write_reg((vpconfig | vp->vp_common->vpconfig_initvdd),
> -+		       vp->vp_common->prm_mod, vp->vpconfig);
> -+
> -+	/* Clear initVDD copy trigger bit */
> -+	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+}
> -+
> -+/* Generic voltage init functions */
> -+void __init omap_vp_init(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_vp_instance_data *vp = voltdm->vdd->vp_data;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -+	u32 vp_val;
> -+
> -+	if (!vdd->read_reg || !vdd->write_reg) {
> -+		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> -+			__func__, voltdm->name);
> -+		return;
> -+	}
> -+
> -+	vp_val = vdd->vp_rt_data.vpconfig_erroroffset |
> -+		(vdd->vp_rt_data.vpconfig_errorgain <<
> -+		vp->vp_common->vpconfig_errorgain_shift) |
> -+		vp->vp_common->vpconfig_timeouten;
> -+	vdd->write_reg(vp_val, vp->vp_common->prm_mod, vp->vpconfig);
> -+
> -+	vp_val = ((vdd->vp_rt_data.vstepmin_smpswaittimemin <<
> -+		vp->vp_common->vstepmin_smpswaittimemin_shift) |
> -+		(vdd->vp_rt_data.vstepmin_stepmin <<
> -+		vp->vp_common->vstepmin_stepmin_shift));
> -+	vdd->write_reg(vp_val, vp->vp_common->prm_mod, vp->vstepmin);
> -+
> -+	vp_val = ((vdd->vp_rt_data.vstepmax_smpswaittimemax <<
> -+		vp->vp_common->vstepmax_smpswaittimemax_shift) |
> -+		(vdd->vp_rt_data.vstepmax_stepmax <<
> -+		vp->vp_common->vstepmax_stepmax_shift));
> -+	vdd->write_reg(vp_val, vp->vp_common->prm_mod, vp->vstepmax);
> -+
> -+	vp_val = ((vdd->vp_rt_data.vlimitto_vddmax <<
> -+		vp->vp_common->vlimitto_vddmax_shift) |
> -+		(vdd->vp_rt_data.vlimitto_vddmin <<
> -+		vp->vp_common->vlimitto_vddmin_shift) |
> -+		(vdd->vp_rt_data.vlimitto_timeout <<
> -+		vp->vp_common->vlimitto_timeout_shift));
> -+	vdd->write_reg(vp_val, vp->vp_common->prm_mod, vp->vlimitto);
> -+
> -+	vp_debugfs_init(voltdm);
> -+}
> -+
> -+/* VP force update method of voltage scaling */
> -+int omap_vp_forceupdate_scale(struct voltagedomain *voltdm,
> -+			      unsigned long target_volt)
> -+{
> -+	struct omap_vp_instance_data *vp = voltdm->vdd->vp_data;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -+	u32 vpconfig;
> -+	u8 target_vsel, current_vsel;
> -+	int ret, timeout = 0;
> -+
> -+	ret = omap_vc_pre_scale(voltdm, target_volt, &target_vsel,
> &current_vsel);
> -+	if (ret)
> -+		return ret;
> -+
> -+	/*
> -+	 * Clear all pending TransactionDone interrupt/status. Typical latency
> -+	 * is <3us
> -+	 */
> -+	while (timeout++ < VP_TRANXDONE_TIMEOUT) {
> -+		vdd->write_reg(vp->prm_irqst_data->tranxdone_status,
> -+			       vdd->prm_irqst_mod, vdd->prm_irqst_reg);
> -+		if (!(vdd->read_reg(vdd->prm_irqst_mod, vdd-
> >prm_irqst_reg) &
> -+		      vp->prm_irqst_data->tranxdone_status))
> -+			break;
> -+		udelay(1);
> -+	}
> -+	if (timeout >= VP_TRANXDONE_TIMEOUT) {
> -+		pr_warning("%s: vdd_%s TRANXDONE timeout exceeded."
> -+			"Voltage change aborted", __func__, voltdm->name);
> -+		return -ETIMEDOUT;
> -+	}
> -+
> -+	/* Configure for VP-Force Update */
> -+	vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp-
> >vpconfig);
> -+	vpconfig &= ~(vp->vp_common->vpconfig_initvdd |
> -+			vp->vp_common->vpconfig_forceupdate |
> -+			vp->vp_common->vpconfig_initvoltage_mask);
> -+	vpconfig |= ((target_vsel <<
> -+			vp->vp_common->vpconfig_initvoltage_shift));
> -+	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+
> -+	/* Trigger initVDD value copy to voltage processor */
> -+	vpconfig |= vp->vp_common->vpconfig_initvdd;
> -+	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+
> -+	/* Force update of voltage */
> -+	vpconfig |= vp->vp_common->vpconfig_forceupdate;
> -+	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+
> -+	/*
> -+	 * Wait for TransactionDone. Typical latency is <200us.
> -+	 * Depends on SMPSWAITTIMEMIN/MAX and voltage change
> -+	 */
> -+	timeout = 0;
> -+	omap_test_timeout((vdd->read_reg(vdd->prm_irqst_mod,
> -+					 vdd->prm_irqst_reg) &
> -+			   vp->prm_irqst_data->tranxdone_status),
> -+			  VP_TRANXDONE_TIMEOUT, timeout);
> -+	if (timeout >= VP_TRANXDONE_TIMEOUT)
> -+		pr_err("%s: vdd_%s TRANXDONE timeout exceeded."
> -+			"TRANXDONE never got set after the voltage
> update\n",
> -+			__func__, voltdm->name);
> -+
> -+	omap_vc_post_scale(voltdm, target_volt, target_vsel, current_vsel);
> -+
> -+	/*
> -+	 * Disable TransactionDone interrupt , clear all status, clear
> -+	 * control registers
> -+	 */
> -+	timeout = 0;
> -+	while (timeout++ < VP_TRANXDONE_TIMEOUT) {
> -+		vdd->write_reg(vp->prm_irqst_data->tranxdone_status,
> -+			       vdd->prm_irqst_mod, vdd->prm_irqst_reg);
> -+		if (!(vdd->read_reg(vdd->prm_irqst_mod, vdd-
> >prm_irqst_reg) &
> -+		      vp->prm_irqst_data->tranxdone_status))
> -+			break;
> -+		udelay(1);
> -+	}
> -+
> -+	if (timeout >= VP_TRANXDONE_TIMEOUT)
> -+		pr_warning("%s: vdd_%s TRANXDONE timeout exceeded while
> trying"
> -+			"to clear the TRANXDONE status\n",
> -+			__func__, voltdm->name);
> -+
> -+	vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp-
> >vpconfig);
> -+	/* Clear initVDD copy trigger bit */
> -+	vpconfig &= ~vp->vp_common->vpconfig_initvdd;
> -+	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+	/* Clear force bit */
> -+	vpconfig &= ~vp->vp_common->vpconfig_forceupdate;
> -+	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+
> -+	return 0;
> -+}
> -+
> -+/**
> -+ * omap_vp_get_curr_volt() - API to get the current vp voltage.
> -+ * @voltdm:	pointer to the VDD.
> -+ *
> -+ * This API returns the current voltage for the specified voltage processor
> -+ */
> -+unsigned long omap_vp_get_curr_volt(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_vp_instance_data *vp = voltdm->vdd->vp_data;
> -+	struct omap_vdd_info *vdd;
> -+	u8 curr_vsel;
> -+
> -+	if (!voltdm || IS_ERR(voltdm)) {
> -+		pr_warning("%s: VDD specified does not exist!\n", __func__);
> -+		return 0;
> -+	}
> -+
> -+	vdd = voltdm->vdd;
> -+	if (!vdd->read_reg) {
> -+		pr_err("%s: No read API for reading vdd_%s regs\n",
> -+			__func__, voltdm->name);
> -+		return 0;
> -+	}
> -+
> -+	curr_vsel = vdd->read_reg(vp->vp_common->prm_mod, vp->voltage);
> -+
> -+	if (!vdd->pmic_info || !vdd->pmic_info->vsel_to_uv) {
> -+		pr_warning("%s: PMIC function to convert vsel to voltage"
> -+			"in uV not registerd\n", __func__);
> -+		return 0;
> -+	}
> -+
> -+	return vdd->pmic_info->vsel_to_uv(curr_vsel);
> -+}
> -+
> -+/**
> -+ * omap_vp_enable() - API to enable a particular VP
> -+ * @voltdm:	pointer to the VDD whose VP is to be enabled.
> -+ *
> -+ * This API enables a particular voltage processor. Needed by the smartreflex
> -+ * class drivers.
> -+ */
> -+void omap_vp_enable(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_vp_instance_data *vp;
> -+	struct omap_vdd_info *vdd;
> -+	u32 vpconfig;
> -+
> -+	if (!voltdm || IS_ERR(voltdm)) {
> -+		pr_warning("%s: VDD specified does not exist!\n", __func__);
> -+		return;
> -+	}
> -+
> -+	vdd = voltdm->vdd;
> -+	vp = voltdm->vdd->vp_data;
> -+	if (!vdd->read_reg || !vdd->write_reg) {
> -+		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> -+			__func__, voltdm->name);
> -+		return;
> -+	}
> -+
> -+	/* If VP is already enabled, do nothing. Return */
> -+	if (vdd->vp_enabled)
> -+		return;
> -+
> -+	vp_latch_vsel(voltdm);
> -+
> -+	/* Enable VP */
> -+	vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp-
> >vpconfig);
> -+	vpconfig |= vp->vp_common->vpconfig_vpenable;
> -+	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+	vdd->vp_enabled = true;
> -+}
> -+
> -+/**
> -+ * omap_vp_disable() - API to disable a particular VP
> -+ * @voltdm:	pointer to the VDD whose VP is to be disabled.
> -+ *
> -+ * This API disables a particular voltage processor. Needed by the smartreflex
> -+ * class drivers.
> -+ */
> -+void omap_vp_disable(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_vp_instance_data *vp;
> -+	struct omap_vdd_info *vdd;
> -+	u32 vpconfig;
> -+	int timeout;
> -+
> -+	if (!voltdm || IS_ERR(voltdm)) {
> -+		pr_warning("%s: VDD specified does not exist!\n", __func__);
> -+		return;
> -+	}
> -+
> -+	vdd = voltdm->vdd;
> -+	vp = voltdm->vdd->vp_data;
> -+	if (!vdd->read_reg || !vdd->write_reg) {
> -+		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> -+			__func__, voltdm->name);
> -+		return;
> -+	}
> -+
> -+	/* If VP is already disabled, do nothing. Return */
> -+	if (!vdd->vp_enabled) {
> -+		pr_warning("%s: Trying to disable VP for vdd_%s when"
> -+			"it is already disabled\n", __func__, voltdm->name);
> -+		return;
> -+	}
> -+
> -+	/* Disable VP */
> -+	vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp-
> >vpconfig);
> -+	vpconfig &= ~vp->vp_common->vpconfig_vpenable;
> -+	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+
> -+	/*
> -+	 * Wait for VP idle Typical latency is <2us. Maximum latency is ~100us
> -+	 */
> -+	omap_test_timeout((vdd->read_reg(vp->vp_common->prm_mod, vp-
> >vstatus)),
> -+				VP_IDLE_TIMEOUT, timeout);
> -+
> -+	if (timeout >= VP_IDLE_TIMEOUT)
> -+		pr_warning("%s: vdd_%s idle timedout\n",
> -+			__func__, voltdm->name);
> -+
> -+	vdd->vp_enabled = false;
> -+
> -+	return;
> -+}
> -+
> -+/* Voltage debugfs support */
> -+static int vp_volt_debug_get(void *data, u64 *val)
> -+{
> -+	struct voltagedomain *voltdm = (struct voltagedomain *)data;
> -+	struct omap_vp_instance_data *vp = voltdm->vdd->vp_data;
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -+	u8 vsel;
> -+
> -+	if (!vdd) {
> -+		pr_warning("Wrong paramater passed\n");
> -+		return -EINVAL;
> -+	}
> -+
> -+	vsel = vdd->read_reg(vp->vp_common->prm_mod, vp->voltage);
> -+
> -+	if (!vdd->pmic_info->vsel_to_uv) {
> -+		pr_warning("PMIC function to convert vsel to voltage"
> -+			"in uV not registerd\n");
> -+		return -EINVAL;
> -+	}
> -+
> -+	*val = vdd->pmic_info->vsel_to_uv(vsel);
> -+	return 0;
> -+}
> -+
> -+DEFINE_SIMPLE_ATTRIBUTE(vp_volt_debug_fops, vp_volt_debug_get, NULL,
> "%llu\n");
> -+
> -+static void __init vp_debugfs_init(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_vdd_info *vdd = voltdm->vdd;
> -+	struct dentry *debug_dir;
> -+
> -+	debug_dir = debugfs_create_dir("vp", vdd->debug_dir);
> -+	if (IS_ERR(debug_dir))
> -+		pr_err("%s: Unable to create VP debugfs dir dir\n", __func__);
> -+
> -+	(void) debugfs_create_x16("errorgain", S_IRUGO, debug_dir,
> -+				&(vdd->vp_rt_data.vpconfig_errorgain));
> -+	(void) debugfs_create_x16("smpswaittimemin", S_IRUGO,
> -+				debug_dir,
> -+				&(vdd-
> >vp_rt_data.vstepmin_smpswaittimemin));
> -+	(void) debugfs_create_x8("stepmin", S_IRUGO, debug_dir,
> -+				&(vdd->vp_rt_data.vstepmin_stepmin));
> -+	(void) debugfs_create_x16("smpswaittimemax", S_IRUGO,
> -+				debug_dir,
> -+				&(vdd-
> >vp_rt_data.vstepmax_smpswaittimemax));
> -+	(void) debugfs_create_x8("stepmax", S_IRUGO, debug_dir,
> -+				&(vdd->vp_rt_data.vstepmax_stepmax));
> -+	(void) debugfs_create_x8("vddmax", S_IRUGO, debug_dir,
> -+				&(vdd->vp_rt_data.vlimitto_vddmax));
> -+	(void) debugfs_create_x8("vddmin", S_IRUGO, debug_dir,
> -+				&(vdd->vp_rt_data.vlimitto_vddmin));
> -+	(void) debugfs_create_x16("timeout", S_IRUGO, debug_dir,
> -+				&(vdd->vp_rt_data.vlimitto_timeout));
> -+	(void) debugfs_create_file("curr_volt", S_IRUGO, debug_dir,
> -+				(void *) voltdm, &vp_volt_debug_fops);
> -+}
> -diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
> -index 5406b08..025cf16 100644
> ---- a/arch/arm/mach-omap2/vp.h
> -+++ b/arch/arm/mach-omap2/vp.h
> -@@ -19,6 +19,8 @@
> -
> - #include <linux/kernel.h>
> -
> -+struct voltagedomain;
> -+
> - /* XXX document */
> - #define VP_IDLE_TIMEOUT		200
> - #define VP_TRANXDONE_TIMEOUT	300
> -@@ -139,4 +141,11 @@ extern struct omap_vp_instance_data
> omap4_vp_mpu_data;
> - extern struct omap_vp_instance_data omap4_vp_iva_data;
> - extern struct omap_vp_instance_data omap4_vp_core_data;
> -
> -+void omap_vp_init(struct voltagedomain *voltdm);
> -+void omap_vp_enable(struct voltagedomain *voltdm);
> -+void omap_vp_disable(struct voltagedomain *voltdm);
> -+unsigned long omap_vp_get_curr_volt(struct voltagedomain *voltdm);
> -+int omap_vp_forceupdate_scale(struct voltagedomain *voltdm,
> -+			      unsigned long target_volt);
> -+
> - #endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0113-OMAP2-VC-
> support-PMICs-with-separate-voltage-and-com.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0113-OMAP2-VC-support-PMICs-with-
> separate-voltage-and-com.patch
> deleted file mode 100644
> index 4f993c2..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0113-OMAP2-VC-support-
> PMICs-with-separate-voltage-and-com.patch
> +++ /dev/null
> @@ -1,109 +0,0 @@
> -From 01afb0a843a221a9a32db601de7ebd529c49aa66 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Tue, 22 Mar 2011 14:12:37 -0700
> -Subject: [PATCH 113/149] OMAP2+: VC: support PMICs with separate voltage
> and command registers
> -
> -The VC layer can support PMICs with separate voltage and command
> -registers by putting the different registers in the PRM_VC_SMPS_VOL_RA
> -and PRCM_VC_SMPS_CMD_RA registers respectively.
> -
> -The PMIC data must supply at least a voltage register address
> -(volt_reg_addr).  The command register address (cmd_reg_addr) is
> -optional.  If the PMIC data does not supply a separate command
> -register address, the VC will use the voltage register address for both.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/omap_twl.c |   10 +++++-----
> - arch/arm/mach-omap2/vc.c       |    4 ++--
> - arch/arm/mach-omap2/voltage.h  |    3 ++-
> - 3 files changed, 9 insertions(+), 8 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-
> omap2/omap_twl.c
> -index 760487b..3249fe3 100644
> ---- a/arch/arm/mach-omap2/omap_twl.c
> -+++ b/arch/arm/mach-omap2/omap_twl.c
> -@@ -158,7 +158,7 @@ static struct omap_volt_pmic_info
> omap3_mpu_volt_info = {
> - 	.vp_vddmax		= OMAP3430_VP1_VLIMITTO_VDDMAX,
> - 	.vp_timeout_us		= OMAP3_VP_VLIMITTO_TIMEOUT_US,
> - 	.i2c_slave_addr		= OMAP3_SRI2C_SLAVE_ADDR,
> --	.pmic_reg		= OMAP3_VDD_MPU_SR_CONTROL_REG,
> -+	.volt_reg_addr		= OMAP3_VDD_MPU_SR_CONTROL_REG,
> - 	.vsel_to_uv		= twl4030_vsel_to_uv,
> - 	.uv_to_vsel		= twl4030_uv_to_vsel,
> - };
> -@@ -178,7 +178,7 @@ static struct omap_volt_pmic_info
> omap3_core_volt_info = {
> - 	.vp_vddmax		= OMAP3430_VP2_VLIMITTO_VDDMAX,
> - 	.vp_timeout_us		= OMAP3_VP_VLIMITTO_TIMEOUT_US,
> - 	.i2c_slave_addr		= OMAP3_SRI2C_SLAVE_ADDR,
> --	.pmic_reg		= OMAP3_VDD_CORE_SR_CONTROL_REG,
> -+	.volt_reg_addr		= OMAP3_VDD_CORE_SR_CONTROL_REG,
> - 	.vsel_to_uv		= twl4030_vsel_to_uv,
> - 	.uv_to_vsel		= twl4030_uv_to_vsel,
> - };
> -@@ -198,7 +198,7 @@ static struct omap_volt_pmic_info
> omap4_mpu_volt_info = {
> - 	.vp_vddmax		= OMAP4_VP_MPU_VLIMITTO_VDDMAX,
> - 	.vp_timeout_us		= OMAP4_VP_VLIMITTO_TIMEOUT_US,
> - 	.i2c_slave_addr		= OMAP4_SRI2C_SLAVE_ADDR,
> --	.pmic_reg		= OMAP4_VDD_MPU_SR_VOLT_REG,
> -+	.volt_reg_addr		= OMAP4_VDD_MPU_SR_VOLT_REG,
> - 	.vsel_to_uv		= twl6030_vsel_to_uv,
> - 	.uv_to_vsel		= twl6030_uv_to_vsel,
> - };
> -@@ -218,7 +218,7 @@ static struct omap_volt_pmic_info
> omap4_iva_volt_info = {
> - 	.vp_vddmax		= OMAP4_VP_IVA_VLIMITTO_VDDMAX,
> - 	.vp_timeout_us		= OMAP4_VP_VLIMITTO_TIMEOUT_US,
> - 	.i2c_slave_addr		= OMAP4_SRI2C_SLAVE_ADDR,
> --	.pmic_reg		= OMAP4_VDD_IVA_SR_VOLT_REG,
> -+	.volt_reg_addr		= OMAP4_VDD_IVA_SR_VOLT_REG,
> - 	.vsel_to_uv		= twl6030_vsel_to_uv,
> - 	.uv_to_vsel		= twl6030_uv_to_vsel,
> - };
> -@@ -238,7 +238,7 @@ static struct omap_volt_pmic_info
> omap4_core_volt_info = {
> - 	.vp_vddmax		= OMAP4_VP_CORE_VLIMITTO_VDDMAX,
> - 	.vp_timeout_us		= OMAP4_VP_VLIMITTO_TIMEOUT_US,
> - 	.i2c_slave_addr		= OMAP4_SRI2C_SLAVE_ADDR,
> --	.pmic_reg		= OMAP4_VDD_CORE_SR_VOLT_REG,
> -+	.volt_reg_addr		= OMAP4_VDD_CORE_SR_VOLT_REG,
> - 	.vsel_to_uv		= twl6030_vsel_to_uv,
> - 	.uv_to_vsel		= twl6030_uv_to_vsel,
> - };
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index 7643940..720c0cd 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -106,7 +106,7 @@ int omap_vc_bypass_scale(struct voltagedomain
> *voltdm,
> - 	vc_valid = vc->common->valid;
> - 	vc_bypass_val_reg = vc->common->bypass_val_reg;
> - 	vc_bypass_value = (target_vsel << vc->common->data_shift) |
> --			(vdd->pmic_info->pmic_reg <<
> -+			(vdd->pmic_info->volt_reg_addr <<
> - 			vc->common->regaddr_shift) |
> - 			(vdd->pmic_info->i2c_slave_addr <<
> - 			vc->common->slaveaddr_shift);
> -@@ -255,7 +255,7 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	vc_val = vdd->read_reg(vc->common->prm_mod,
> - 			       vc->common->smps_volra_reg);
> - 	vc_val &= ~vc->smps_volra_mask;
> --	vc_val |= vdd->pmic_info->pmic_reg << vc->smps_volra_shift;
> -+	vc_val |= vdd->pmic_info->volt_reg_addr << vc->smps_volra_shift;
> - 	vdd->write_reg(vc_val, vc->common->prm_mod,
> - 		       vc->common->smps_volra_reg);
> -
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 83fa239..641597c 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -112,7 +112,8 @@ struct omap_volt_pmic_info {
> - 	u8 vp_vddmax;
> - 	u8 vp_timeout_us;
> - 	u8 i2c_slave_addr;
> --	u8 pmic_reg;
> -+	u8 volt_reg_addr;
> -+	u8 cmd_reg_addr;
> - 	unsigned long (*vsel_to_uv) (const u8 vsel);
> - 	u8 (*uv_to_vsel) (unsigned long uV);
> - };
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0114-OMAP2-add-
> PRM-VP-functions-for-checking-clearing-VP-.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0114-OMAP2-add-PRM-VP-functions-for-checking-
> clearing-VP-.patch
> deleted file mode 100644
> index c61dec1..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0114-OMAP2-add-PRM-
> VP-functions-for-checking-clearing-VP-.patch
> +++ /dev/null
> @@ -1,375 +0,0 @@
> -From b2521ca2e2c0633cc9e50848aae9a0a761f687b6 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 28 Mar 2011 10:52:04 -0700
> -Subject: [PATCH 114/149] OMAP2+: add PRM VP functions for
> checking/clearing VP TX done status
> -
> -Add SoC specific PRM VP helper functions for checking and clearing
> -the VP transaction done status.
> -
> -Longer term, these events should be handled by the forthcoming PRCM
> -interrupt handler.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/prm2xxx_3xxx.c |   41
> ++++++++++++++++++++++++++++++
> - arch/arm/mach-omap2/prm2xxx_3xxx.h |    4 +++
> - arch/arm/mach-omap2/prm44xx.c      |   49
> ++++++++++++++++++++++++++++++++++++
> - arch/arm/mach-omap2/prm44xx.h      |    4 +++
> - arch/arm/mach-omap2/vp.h           |   33 ++++++++++++++---------
> - arch/arm/mach-omap2/vp3xxx_data.c  |   19 ++++++-------
> - arch/arm/mach-omap2/vp44xx_data.c  |   25 ++++++-----------
> - 7 files changed, 136 insertions(+), 39 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.c b/arch/arm/mach-
> omap2/prm2xxx_3xxx.c
> -index 051213f..58c5c87 100644
> ---- a/arch/arm/mach-omap2/prm2xxx_3xxx.c
> -+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.c
> -@@ -20,6 +20,8 @@
> - #include <plat/cpu.h>
> - #include <plat/prcm.h>
> -
> -+#include "vp.h"
> -+
> - #include "prm2xxx_3xxx.h"
> - #include "cm2xxx_3xxx.h"
> - #include "prm-regbits-24xx.h"
> -@@ -156,3 +158,42 @@ int omap2_prm_deassert_hardreset(s16 prm_mod,
> u8 rst_shift, u8 st_shift)
> -
> - 	return (c == MAX_MODULE_HARDRESET_WAIT) ? -EBUSY : 0;
> - }
> -+
> -+/* PRM VP */
> -+
> -+/*
> -+ * struct omap3_vp - OMAP3 VP register access description.
> -+ * @tranxdone_status: VP_TRANXDONE_ST bitmask in
> PRM_IRQSTATUS_MPU reg
> -+ */
> -+struct omap3_vp {
> -+	u32 tranxdone_status;
> -+};
> -+
> -+struct omap3_vp omap3_vp[] = {
> -+	[OMAP3_VP_VDD_MPU_ID] = {
> -+		.tranxdone_status = OMAP3430_VP1_TRANXDONE_ST_MASK,
> -+	},
> -+	[OMAP3_VP_VDD_CORE_ID] = {
> -+		.tranxdone_status = OMAP3430_VP2_TRANXDONE_ST_MASK,
> -+	},
> -+};
> -+
> -+#define MAX_VP_ID ARRAY_SIZE(omap3_vp);
> -+
> -+u32 omap3_prm_vp_check_txdone(u8 vp_id)
> -+{
> -+	struct omap3_vp *vp = &omap3_vp[vp_id];
> -+	u32 irqstatus;
> -+
> -+	irqstatus = omap2_prm_read_mod_reg(OCP_MOD,
> -+
> OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
> -+	return irqstatus & vp->tranxdone_status;
> -+}
> -+
> -+void omap3_prm_vp_clear_txdone(u8 vp_id)
> -+{
> -+	struct omap3_vp *vp = &omap3_vp[vp_id];
> -+
> -+	omap2_prm_write_mod_reg(vp->tranxdone_status,
> -+				OCP_MOD,
> OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
> -+}
> -diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.h b/arch/arm/mach-
> omap2/prm2xxx_3xxx.h
> -index a1fc62a..5112526 100644
> ---- a/arch/arm/mach-omap2/prm2xxx_3xxx.h
> -+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.h
> -@@ -303,6 +303,10 @@ extern int omap2_prm_is_hardreset_asserted(s16
> prm_mod, u8 shift);
> - extern int omap2_prm_assert_hardreset(s16 prm_mod, u8 shift);
> - extern int omap2_prm_deassert_hardreset(s16 prm_mod, u8 rst_shift, u8
> st_shift);
> -
> -+/* OMAP3-specific VP functions */
> -+u32 omap3_prm_vp_check_txdone(u8 vp_id);
> -+void omap3_prm_vp_clear_txdone(u8 vp_id);
> -+
> - #endif	/* CONFIG_ARCH_OMAP4 */
> - #endif
> -
> -diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-
> omap2/prm44xx.c
> -index 0016555..390e32c 100644
> ---- a/arch/arm/mach-omap2/prm44xx.c
> -+++ b/arch/arm/mach-omap2/prm44xx.c
> -@@ -21,6 +21,7 @@
> - #include <plat/cpu.h>
> - #include <plat/prcm.h>
> -
> -+#include "vp.h"
> - #include "prm44xx.h"
> - #include "prm-regbits-44xx.h"
> -
> -@@ -50,3 +51,51 @@ u32 omap4_prm_rmw_inst_reg_bits(u32 mask, u32
> bits, s16 inst, s16 reg)
> -
> - 	return v;
> - }
> -+
> -+/* PRM VP */
> -+
> -+/*
> -+ * struct omap4_vp - OMAP4 VP register access description.
> -+ * @irqstatus_mpu: offset to IRQSTATUS_MPU register for VP
> -+ * @tranxdone_status: VP_TRANXDONE_ST bitmask in
> PRM_IRQSTATUS_MPU reg
> -+ */
> -+struct omap4_vp {
> -+	u32 irqstatus_mpu;
> -+	u32 tranxdone_status;
> -+};
> -+
> -+static struct omap4_vp omap4_vp[] = {
> -+	[OMAP4_VP_VDD_MPU_ID] = {
> -+		.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_2_OFFSET,
> -+		.tranxdone_status =
> OMAP4430_VP_MPU_TRANXDONE_ST_MASK,
> -+	},
> -+	[OMAP4_VP_VDD_IVA_ID] = {
> -+		.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> -+		.tranxdone_status =
> OMAP4430_VP_IVA_TRANXDONE_ST_MASK,
> -+	},
> -+	[OMAP4_VP_VDD_CORE_ID] = {
> -+		.irqstatus_mpu = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> -+		.tranxdone_status =
> OMAP4430_VP_CORE_TRANXDONE_ST_MASK,
> -+	},
> -+};
> -+
> -+u32 omap4_prm_vp_check_txdone(u8 vp_id)
> -+{
> -+	struct omap4_vp *vp = &omap4_vp[vp_id];
> -+	u32 irqstatus;
> -+
> -+	irqstatus =
> omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
> -+
> 	OMAP4430_PRM_OCP_SOCKET_INST,
> -+						vp->irqstatus_mpu);
> -+	return irqstatus & vp->tranxdone_status;
> -+}
> -+
> -+void omap4_prm_vp_clear_txdone(u8 vp_id)
> -+{
> -+	struct omap4_vp *vp = &omap4_vp[vp_id];
> -+
> -+	omap4_prminst_write_inst_reg(vp->tranxdone_status,
> -+				     OMAP4430_PRM_PARTITION,
> -+				     OMAP4430_PRM_OCP_SOCKET_INST,
> -+				     vp->irqstatus_mpu);
> -+};
> -diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-
> omap2/prm44xx.h
> -index 7dfa379..b28c87d 100644
> ---- a/arch/arm/mach-omap2/prm44xx.h
> -+++ b/arch/arm/mach-omap2/prm44xx.h
> -@@ -751,6 +751,10 @@ extern u32 omap4_prm_read_inst_reg(s16 inst, u16
> idx);
> - extern void omap4_prm_write_inst_reg(u32 val, s16 inst, u16 idx);
> - extern u32 omap4_prm_rmw_inst_reg_bits(u32 mask, u32 bits, s16 inst, s16
> idx);
> -
> -+/* OMAP4-specific VP functions */
> -+u32 omap4_prm_vp_check_txdone(u8 vp_id);
> -+void omap4_prm_vp_clear_txdone(u8 vp_id);
> -+
> - # endif
> -
> - #endif
> -diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
> -index 025cf16..2c9cd76 100644
> ---- a/arch/arm/mach-omap2/vp.h
> -+++ b/arch/arm/mach-omap2/vp.h
> -@@ -21,10 +21,28 @@
> -
> - struct voltagedomain;
> -
> -+/*
> -+ * Voltage Processor (VP) identifiers
> -+ */
> -+#define OMAP3_VP_VDD_MPU_ID 0
> -+#define OMAP3_VP_VDD_CORE_ID 1
> -+#define OMAP4_VP_VDD_CORE_ID 0
> -+#define OMAP4_VP_VDD_IVA_ID 1
> -+#define OMAP4_VP_VDD_MPU_ID 2
> -+
> - /* XXX document */
> - #define VP_IDLE_TIMEOUT		200
> - #define VP_TRANXDONE_TIMEOUT	300
> -
> -+/**
> -+ * struct omap_vp_ops - per-VP operations
> -+ * @check_txdone: check for VP transaction done
> -+ * @clear_txdone: clear VP transaction done status
> -+ */
> -+struct omap_vp_ops {
> -+	u32 (*check_txdone)(u8 vp_id);
> -+	void (*clear_txdone)(u8 vp_id);
> -+};
> -
> - /**
> -  * struct omap_vp_common_data - register data common to all VDDs
> -@@ -68,24 +86,13 @@ struct omap_vp_common_data {
> - 	u8 vlimitto_vddmin_shift;
> - 	u8 vlimitto_vddmax_shift;
> - 	u8 vlimitto_timeout_shift;
> --};
> -
> --/**
> -- * struct omap_vp_prm_irqst_data -
> PRM_IRQSTATUS_MPU.VP_TRANXDONE_ST data
> -- * @tranxdone_status: VP_TRANXDONE_ST bitmask in
> PRM_IRQSTATUS_MPU reg
> -- *
> -- * XXX Note that on OMAP3, VP_TRANXDONE interrupt may not work due to a
> -- *     hardware bug
> -- * XXX This structure is probably not needed
> -- */
> --struct omap_vp_prm_irqst_data {
> --	u32 tranxdone_status;
> -+	const struct omap_vp_ops *ops;
> - };
> -
> - /**
> -  * struct omap_vp_instance_data - VP register offsets (per-VDD)
> -  * @vp_common: pointer to struct omap_vp_common_data * for this SoC
> -- * @prm_irqst_data: pointer to struct omap_vp_prm_irqst_data for this VDD
> -  * @vpconfig: PRM_VP*_CONFIG reg offset from PRM start
> -  * @vstepmin: PRM_VP*_VSTEPMIN reg offset from PRM start
> -  * @vlimitto: PRM_VP*_VLIMITTO reg offset from PRM start
> -@@ -96,13 +103,13 @@ struct omap_vp_prm_irqst_data {
> -  */
> - struct omap_vp_instance_data {
> - 	const struct omap_vp_common_data *vp_common;
> --	const struct omap_vp_prm_irqst_data *prm_irqst_data;
> - 	u8 vpconfig;
> - 	u8 vstepmin;
> - 	u8 vstepmax;
> - 	u8 vlimitto;
> - 	u8 vstatus;
> - 	u8 voltage;
> -+	u8 id;
> - };
> -
> - /**
> -diff --git a/arch/arm/mach-omap2/vp3xxx_data.c b/arch/arm/mach-
> omap2/vp3xxx_data.c
> -index a8ea045..0372c1a 100644
> ---- a/arch/arm/mach-omap2/vp3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vp3xxx_data.c
> -@@ -25,6 +25,12 @@
> - #include "voltage.h"
> -
> - #include "vp.h"
> -+#include "prm2xxx_3xxx.h"
> -+
> -+static const struct omap_vp_ops omap3_vp_ops = {
> -+	.check_txdone = omap3_prm_vp_check_txdone,
> -+	.clear_txdone = omap3_prm_vp_clear_txdone,
> -+};
> -
> - /*
> -  * VP data common to 34xx/36xx chips
> -@@ -48,13 +54,11 @@ static const struct omap_vp_common_data
> omap3_vp_common = {
> - 	.vlimitto_vddmin_shift = OMAP3430_VDDMIN_SHIFT,
> - 	.vlimitto_vddmax_shift = OMAP3430_VDDMAX_SHIFT,
> - 	.vlimitto_timeout_shift = OMAP3430_TIMEOUT_SHIFT,
> --};
> --
> --static const struct omap_vp_prm_irqst_data omap3_vp1_prm_irqst_data = {
> --	.tranxdone_status = OMAP3430_VP1_TRANXDONE_ST_MASK,
> -+	.ops = &omap3_vp_ops,
> - };
> -
> - struct omap_vp_instance_data omap3_vp1_data = {
> -+	.id = OMAP3_VP_VDD_MPU_ID,
> - 	.vp_common = &omap3_vp_common,
> - 	.vpconfig = OMAP3_PRM_VP1_CONFIG_OFFSET,
> - 	.vstepmin = OMAP3_PRM_VP1_VSTEPMIN_OFFSET,
> -@@ -62,14 +66,10 @@ struct omap_vp_instance_data omap3_vp1_data = {
> - 	.vlimitto = OMAP3_PRM_VP1_VLIMITTO_OFFSET,
> - 	.vstatus = OMAP3_PRM_VP1_STATUS_OFFSET,
> - 	.voltage = OMAP3_PRM_VP1_VOLTAGE_OFFSET,
> --	.prm_irqst_data = &omap3_vp1_prm_irqst_data,
> --};
> --
> --static const struct omap_vp_prm_irqst_data omap3_vp2_prm_irqst_data = {
> --	.tranxdone_status = OMAP3430_VP2_TRANXDONE_ST_MASK,
> - };
> -
> - struct omap_vp_instance_data omap3_vp2_data = {
> -+	.id = OMAP3_VP_VDD_CORE_ID,
> - 	.vp_common = &omap3_vp_common,
> - 	.vpconfig = OMAP3_PRM_VP2_CONFIG_OFFSET,
> - 	.vstepmin = OMAP3_PRM_VP2_VSTEPMIN_OFFSET,
> -@@ -77,5 +77,4 @@ struct omap_vp_instance_data omap3_vp2_data = {
> - 	.vlimitto = OMAP3_PRM_VP2_VLIMITTO_OFFSET,
> - 	.vstatus = OMAP3_PRM_VP2_STATUS_OFFSET,
> - 	.voltage = OMAP3_PRM_VP2_VOLTAGE_OFFSET,
> --	.prm_irqst_data = &omap3_vp2_prm_irqst_data,
> - };
> -diff --git a/arch/arm/mach-omap2/vp44xx_data.c b/arch/arm/mach-
> omap2/vp44xx_data.c
> -index 0957c24..738ba04 100644
> ---- a/arch/arm/mach-omap2/vp44xx_data.c
> -+++ b/arch/arm/mach-omap2/vp44xx_data.c
> -@@ -27,6 +27,11 @@
> -
> - #include "vp.h"
> -
> -+static const struct omap_vp_ops omap4_vp_ops = {
> -+	.check_txdone = omap4_prm_vp_check_txdone,
> -+	.clear_txdone = omap4_prm_vp_clear_txdone,
> -+};
> -+
> - /*
> -  * VP data common to 44xx chips
> -  * XXX This stuff presumably belongs in the vp44xx.c or vp.c file.
> -@@ -49,13 +54,11 @@ static const struct omap_vp_common_data
> omap4_vp_common = {
> - 	.vlimitto_vddmin_shift = OMAP4430_VDDMIN_SHIFT,
> - 	.vlimitto_vddmax_shift = OMAP4430_VDDMAX_SHIFT,
> - 	.vlimitto_timeout_shift = OMAP4430_TIMEOUT_SHIFT,
> --};
> --
> --static const struct omap_vp_prm_irqst_data
> omap4_vp_mpu_prm_irqst_data = {
> --	.tranxdone_status = OMAP4430_VP_MPU_TRANXDONE_ST_MASK,
> -+	.ops = &omap4_vp_ops,
> - };
> -
> - struct omap_vp_instance_data omap4_vp_mpu_data = {
> -+	.id = OMAP4_VP_VDD_MPU_ID,
> - 	.vp_common = &omap4_vp_common,
> - 	.vpconfig = OMAP4_PRM_VP_MPU_CONFIG_OFFSET,
> - 	.vstepmin = OMAP4_PRM_VP_MPU_VSTEPMIN_OFFSET,
> -@@ -63,14 +66,10 @@ struct omap_vp_instance_data omap4_vp_mpu_data
> = {
> - 	.vlimitto = OMAP4_PRM_VP_MPU_VLIMITTO_OFFSET,
> - 	.vstatus = OMAP4_PRM_VP_MPU_STATUS_OFFSET,
> - 	.voltage = OMAP4_PRM_VP_MPU_VOLTAGE_OFFSET,
> --	.prm_irqst_data = &omap4_vp_mpu_prm_irqst_data,
> --};
> --
> --static const struct omap_vp_prm_irqst_data omap4_vp_iva_prm_irqst_data
> = {
> --	.tranxdone_status = OMAP4430_VP_IVA_TRANXDONE_ST_MASK,
> - };
> -
> - struct omap_vp_instance_data omap4_vp_iva_data = {
> -+	.id = OMAP4_VP_VDD_IVA_ID,
> - 	.vp_common = &omap4_vp_common,
> - 	.vpconfig = OMAP4_PRM_VP_IVA_CONFIG_OFFSET,
> - 	.vstepmin = OMAP4_PRM_VP_IVA_VSTEPMIN_OFFSET,
> -@@ -78,14 +77,10 @@ struct omap_vp_instance_data omap4_vp_iva_data =
> {
> - 	.vlimitto = OMAP4_PRM_VP_IVA_VLIMITTO_OFFSET,
> - 	.vstatus = OMAP4_PRM_VP_IVA_STATUS_OFFSET,
> - 	.voltage = OMAP4_PRM_VP_IVA_VOLTAGE_OFFSET,
> --	.prm_irqst_data = &omap4_vp_iva_prm_irqst_data,
> --};
> --
> --static const struct omap_vp_prm_irqst_data
> omap4_vp_core_prm_irqst_data = {
> --	.tranxdone_status = OMAP4430_VP_CORE_TRANXDONE_ST_MASK,
> - };
> -
> - struct omap_vp_instance_data omap4_vp_core_data = {
> -+	.id = OMAP4_VP_VDD_CORE_ID,
> - 	.vp_common = &omap4_vp_common,
> - 	.vpconfig = OMAP4_PRM_VP_CORE_CONFIG_OFFSET,
> - 	.vstepmin = OMAP4_PRM_VP_CORE_VSTEPMIN_OFFSET,
> -@@ -93,6 +88,4 @@ struct omap_vp_instance_data omap4_vp_core_data =
> {
> - 	.vlimitto = OMAP4_PRM_VP_CORE_VLIMITTO_OFFSET,
> - 	.vstatus = OMAP4_PRM_VP_CORE_STATUS_OFFSET,
> - 	.voltage = OMAP4_PRM_VP_CORE_VOLTAGE_OFFSET,
> --	.prm_irqst_data = &omap4_vp_core_prm_irqst_data,
> - };
> --
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0115-OMAP3-VP-
> replace-transaction-done-check-clear-with-V.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0115-OMAP3-VP-replace-transaction-done-check-clear-
> with-V.patch
> deleted file mode 100644
> index 64851b3..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0115-OMAP3-VP-replace-
> transaction-done-check-clear-with-V.patch
> +++ /dev/null
> @@ -1,142 +0,0 @@
> -From 754129bd8c94999c27162faf84abb5df24b79c9b Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 28 Mar 2011 11:57:18 -0700
> -Subject: [PATCH 115/149] OMAP3+ VP: replace transaction done check/clear
> with VP ops
> -
> -Replace the VP tranxdone check/clear with helper functions from the
> -PRM layer.
> -
> -In the process, remove prm_irqst_* voltage structure fields for IRQ
> -status checking which are no longer needed.
> -
> -Since these reads/writes of the IRQ status bits were the only PRM
> -accesses that were not to VC/VP registers, this allows the rest of the
> -register accesses in the VC/VP code to use VC/VP specific register
> -access functions (done in the following patch.)
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/voltage.h                 |    3 ---
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |    4 ----
> - arch/arm/mach-omap2/voltagedomains44xx_data.c |    6 ------
> - arch/arm/mach-omap2/vp.c                      |   16 +++++-----------
> - 4 files changed, 5 insertions(+), 24 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 641597c..363eee4 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -131,7 +131,6 @@ struct omap_volt_pmic_info {
> -  * @vfsm                : voltage manager FSM data
> -  * @debug_dir		: debug directory for this voltage domain.
> -  * @curr_volt		: current voltage for this vdd.
> -- * @prm_irqst_mod       : PRM module id used for PRM IRQ status register
> access
> -  * @vp_enabled		: flag to keep track of whether vp is enabled or
> not
> -  * @volt_scale		: API to scale the voltage of the vdd.
> -  */
> -@@ -145,8 +144,6 @@ struct omap_vdd_info {
> - 	u32 curr_volt;
> - 	bool vp_enabled;
> -
> --	s16 prm_irqst_mod;
> --	u8 prm_irqst_reg;
> - 	u32 (*read_reg) (u16 mod, u8 offset);
> - 	void (*write_reg) (u32 val, u16 mod, u8 offset);
> - 	int (*volt_scale) (struct voltagedomain *voltdm,
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index 7cb27ec..ad8f05b 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -38,8 +38,6 @@ static const struct omap_vfsm_instance_data
> omap3_vdd1_vfsm_data = {
> - };
> -
> - static struct omap_vdd_info omap3_vdd1_info = {
> --	.prm_irqst_mod = OCP_MOD,
> --	.prm_irqst_reg = OMAP3_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.vp_data = &omap3_vp1_data,
> - 	.vfsm = &omap3_vdd1_vfsm_data,
> - };
> -@@ -51,8 +49,6 @@ static const struct omap_vfsm_instance_data
> omap3_vdd2_vfsm_data = {
> - };
> -
> - static struct omap_vdd_info omap3_vdd2_info = {
> --	.prm_irqst_mod = OCP_MOD,
> --	.prm_irqst_reg = OMAP3_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.vp_data = &omap3_vp2_data,
> - 	.vfsm = &omap3_vdd2_vfsm_data,
> - };
> -diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -index a05d90a..43e1d38 100644
> ---- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -@@ -37,8 +37,6 @@ static const struct omap_vfsm_instance_data
> omap4_vdd_mpu_vfsm_data = {
> - };
> -
> - static struct omap_vdd_info omap4_vdd_mpu_info = {
> --	.prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
> --	.prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_2_OFFSET,
> - 	.vp_data = &omap4_vp_mpu_data,
> - 	.vfsm = &omap4_vdd_mpu_vfsm_data,
> - };
> -@@ -48,8 +46,6 @@ static const struct omap_vfsm_instance_data
> omap4_vdd_iva_vfsm_data = {
> - };
> -
> - static struct omap_vdd_info omap4_vdd_iva_info = {
> --	.prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
> --	.prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.vp_data = &omap4_vp_iva_data,
> - 	.vfsm = &omap4_vdd_iva_vfsm_data,
> - };
> -@@ -59,8 +55,6 @@ static const struct omap_vfsm_instance_data
> omap4_vdd_core_vfsm_data = {
> - };
> -
> - static struct omap_vdd_info omap4_vdd_core_info = {
> --	.prm_irqst_mod = OMAP4430_PRM_OCP_SOCKET_INST,
> --	.prm_irqst_reg = OMAP4_PRM_IRQSTATUS_MPU_OFFSET,
> - 	.vp_data = &omap4_vp_core_data,
> - 	.vfsm = &omap4_vdd_core_vfsm_data,
> - };
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index f3503de..113c839 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -111,10 +111,8 @@ int omap_vp_forceupdate_scale(struct
> voltagedomain *voltdm,
> - 	 * is <3us
> - 	 */
> - 	while (timeout++ < VP_TRANXDONE_TIMEOUT) {
> --		vdd->write_reg(vp->prm_irqst_data->tranxdone_status,
> --			       vdd->prm_irqst_mod, vdd->prm_irqst_reg);
> --		if (!(vdd->read_reg(vdd->prm_irqst_mod, vdd-
> >prm_irqst_reg) &
> --		      vp->prm_irqst_data->tranxdone_status))
> -+		vp->vp_common->ops->clear_txdone(vp->id);
> -+		if (!vp->vp_common->ops->check_txdone(vp->id))
> - 			break;
> - 		udelay(1);
> - 	}
> -@@ -146,9 +144,7 @@ int omap_vp_forceupdate_scale(struct voltagedomain
> *voltdm,
> - 	 * Depends on SMPSWAITTIMEMIN/MAX and voltage change
> - 	 */
> - 	timeout = 0;
> --	omap_test_timeout((vdd->read_reg(vdd->prm_irqst_mod,
> --					 vdd->prm_irqst_reg) &
> --			   vp->prm_irqst_data->tranxdone_status),
> -+	omap_test_timeout(vp->vp_common->ops->check_txdone(vp->id),
> - 			  VP_TRANXDONE_TIMEOUT, timeout);
> - 	if (timeout >= VP_TRANXDONE_TIMEOUT)
> - 		pr_err("%s: vdd_%s TRANXDONE timeout exceeded."
> -@@ -163,10 +159,8 @@ int omap_vp_forceupdate_scale(struct
> voltagedomain *voltdm,
> - 	 */
> - 	timeout = 0;
> - 	while (timeout++ < VP_TRANXDONE_TIMEOUT) {
> --		vdd->write_reg(vp->prm_irqst_data->tranxdone_status,
> --			       vdd->prm_irqst_mod, vdd->prm_irqst_reg);
> --		if (!(vdd->read_reg(vdd->prm_irqst_mod, vdd-
> >prm_irqst_reg) &
> --		      vp->prm_irqst_data->tranxdone_status))
> -+		vp->vp_common->ops->clear_txdone(vp->id);
> -+		if (!vp->vp_common->ops->check_txdone(vp->id))
> - 			break;
> - 		udelay(1);
> - 	}
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0116-OMAP2-PRM-
> add-register-access-functions-for-VC-VP.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0116-OMAP2-PRM-add-register-access-functions-for-VC-
> VP.patch
> deleted file mode 100644
> index fbb27a2..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0116-OMAP2-PRM-add-
> register-access-functions-for-VC-VP.patch
> +++ /dev/null
> @@ -1,119 +0,0 @@
> -From 3326bc8057e4dd85f135faa00a3d079fab05ac1e Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 28 Mar 2011 10:25:12 -0700
> -Subject: [PATCH 116/149] OMAP2+: PRM: add register access functions for
> VC/VP
> -
> -On OMAP3+, the voltage controller (VC) and voltage processor (VP) are
> -inside the PRM.  Add some PRM helper functions for register access to
> -these module registers.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/prm2xxx_3xxx.c |   15 +++++++++++++++
> - arch/arm/mach-omap2/prm2xxx_3xxx.h |    8 ++++++++
> - arch/arm/mach-omap2/prm44xx.c      |   22 ++++++++++++++++++++++
> - arch/arm/mach-omap2/prm44xx.h      |    8 ++++++++
> - 4 files changed, 53 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.c b/arch/arm/mach-
> omap2/prm2xxx_3xxx.c
> -index 58c5c87..3b83763 100644
> ---- a/arch/arm/mach-omap2/prm2xxx_3xxx.c
> -+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.c
> -@@ -197,3 +197,18 @@ void omap3_prm_vp_clear_txdone(u8 vp_id)
> - 	omap2_prm_write_mod_reg(vp->tranxdone_status,
> - 				OCP_MOD,
> OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
> - }
> -+
> -+u32 omap3_prm_vcvp_read(u8 offset)
> -+{
> -+	return omap2_prm_read_mod_reg(OMAP3430_GR_MOD, offset);
> -+}
> -+
> -+void omap3_prm_vcvp_write(u32 val, u8 offset)
> -+{
> -+	omap2_prm_write_mod_reg(val, OMAP3430_GR_MOD, offset);
> -+}
> -+
> -+u32 omap3_prm_vcvp_rmw(u32 mask, u32 bits, u8 offset)
> -+{
> -+	return omap2_prm_rmw_mod_reg_bits(mask, bits,
> OMAP3430_GR_MOD, offset);
> -+}
> -diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.h b/arch/arm/mach-
> omap2/prm2xxx_3xxx.h
> -index 5112526..cef533d 100644
> ---- a/arch/arm/mach-omap2/prm2xxx_3xxx.h
> -+++ b/arch/arm/mach-omap2/prm2xxx_3xxx.h
> -@@ -307,7 +307,15 @@ extern int omap2_prm_deassert_hardreset(s16
> prm_mod, u8 rst_shift, u8 st_shift);
> - u32 omap3_prm_vp_check_txdone(u8 vp_id);
> - void omap3_prm_vp_clear_txdone(u8 vp_id);
> -
> -+/*
> -+ * OMAP3 access functions for voltage controller (VC) and
> -+ * voltage proccessor (VP) in the PRM.
> -+ */
> -+extern u32 omap3_prm_vcvp_read(u8 offset);
> -+extern void omap3_prm_vcvp_write(u32 val, u8 offset);
> -+extern u32 omap3_prm_vcvp_rmw(u32 mask, u32 bits, u8 offset);
> - #endif	/* CONFIG_ARCH_OMAP4 */
> -+
> - #endif
> -
> - /*
> -diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-
> omap2/prm44xx.c
> -index 390e32c..495a31a 100644
> ---- a/arch/arm/mach-omap2/prm44xx.c
> -+++ b/arch/arm/mach-omap2/prm44xx.c
> -@@ -24,6 +24,8 @@
> - #include "vp.h"
> - #include "prm44xx.h"
> - #include "prm-regbits-44xx.h"
> -+#include "prcm44xx.h"
> -+#include "prminst44xx.h"
> -
> - /* PRM low-level functions */
> -
> -@@ -99,3 +101,23 @@ void omap4_prm_vp_clear_txdone(u8 vp_id)
> - 				     OMAP4430_PRM_OCP_SOCKET_INST,
> - 				     vp->irqstatus_mpu);
> - };
> -+
> -+u32 omap4_prm_vcvp_read(u8 offset)
> -+{
> -+	return omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
> -+					   OMAP4430_PRM_DEVICE_INST,
> offset);
> -+}
> -+
> -+void omap4_prm_vcvp_write(u32 val, u8 offset)
> -+{
> -+	omap4_prminst_write_inst_reg(val, OMAP4430_PRM_PARTITION,
> -+				     OMAP4430_PRM_DEVICE_INST, offset);
> -+}
> -+
> -+u32 omap4_prm_vcvp_rmw(u32 mask, u32 bits, u8 offset)
> -+{
> -+	return omap4_prminst_rmw_inst_reg_bits(mask, bits,
> -+					       OMAP4430_PRM_PARTITION,
> -+					       OMAP4430_PRM_DEVICE_INST,
> -+					       offset);
> -+}
> -diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-
> omap2/prm44xx.h
> -index b28c87d..3d66ccd 100644
> ---- a/arch/arm/mach-omap2/prm44xx.h
> -+++ b/arch/arm/mach-omap2/prm44xx.h
> -@@ -755,6 +755,14 @@ extern u32 omap4_prm_rmw_inst_reg_bits(u32
> mask, u32 bits, s16 inst, s16 idx);
> - u32 omap4_prm_vp_check_txdone(u8 vp_id);
> - void omap4_prm_vp_clear_txdone(u8 vp_id);
> -
> -+/*
> -+ * OMAP4 access functions for voltage controller (VC) and
> -+ * voltage proccessor (VP) in the PRM.
> -+ */
> -+extern u32 omap4_prm_vcvp_read(u8 offset);
> -+extern void omap4_prm_vcvp_write(u32 val, u8 offset);
> -+extern u32 omap4_prm_vcvp_rmw(u32 mask, u32 bits, u8 offset);
> -+
> - # endif
> -
> - #endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0117-OMAP3-
> voltage-convert-to-PRM-register-access-functio.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0117-OMAP3-voltage-convert-to-PRM-
> register-access-functio.patch
> deleted file mode 100644
> index 3f7823e..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0117-OMAP3-voltage-
> convert-to-PRM-register-access-functio.patch
> +++ /dev/null
> @@ -1,627 +0,0 @@
> -From 794143b8e468ddd8715ae76a6a0f7f0c9bc6778d Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 28 Mar 2011 10:40:15 -0700
> -Subject: [PATCH 117/149] OMAP3+: voltage: convert to PRM register access
> functions
> -
> -Convert VC/VP register access to use PRM VC/VP accessor functions.  In
> -the process, move the read/write function pointers from vdd_info into
> -struct voltagedomain.
> -
> -No functional changes.
> -
> -Additional cleanup:
> -- remove prm_mod field from  VC/VP data structures, the PRM register
> -  access functions know which PRM module to use.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c                      |   69 ++++++++++---------------
> - arch/arm/mach-omap2/vc.h                      |    2 -
> - arch/arm/mach-omap2/vc3xxx_data.c             |    1 -
> - arch/arm/mach-omap2/vc44xx_data.c             |    1 -
> - arch/arm/mach-omap2/voltage.c                 |   31 +-----------
> - arch/arm/mach-omap2/voltage.h                 |    7 ++-
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |    6 ++
> - arch/arm/mach-omap2/voltagedomains44xx_data.c |    9 +++
> - arch/arm/mach-omap2/vp.c                      |   57 ++++++++++----------
> - arch/arm/mach-omap2/vp.h                      |    2 -
> - arch/arm/mach-omap2/vp3xxx_data.c             |    1 -
> - arch/arm/mach-omap2/vp44xx_data.c             |    1 -
> - 12 files changed, 76 insertions(+), 111 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index 720c0cd..9c2706c 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -37,7 +37,7 @@ int omap_vc_pre_scale(struct voltagedomain *voltdm,
> - 		return -ENODATA;
> - 	}
> -
> --	if (!vdd->read_reg || !vdd->write_reg) {
> -+	if (!voltdm->read || !voltdm->write) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> - 			__func__, voltdm->name);
> - 		return -EINVAL;
> -@@ -49,24 +49,22 @@ int omap_vc_pre_scale(struct voltagedomain
> *voltdm,
> - 		volt_data = NULL;
> -
> - 	*target_vsel = vdd->pmic_info->uv_to_vsel(target_volt);
> --	*current_vsel = vdd->read_reg(vdd->vp_data->vp_common-
> >prm_mod, vdd->vp_data->voltage);
> -+	*current_vsel = voltdm->read(vdd->vp_data->voltage);
> -
> - 	/* Setting the ON voltage to the new target voltage */
> --	vc_cmdval = vdd->read_reg(vc->common->prm_mod, vc-
> >cmdval_reg);
> -+	vc_cmdval = voltdm->read(vc->cmdval_reg);
> - 	vc_cmdval &= ~vc->common->cmd_on_mask;
> - 	vc_cmdval |= (*target_vsel << vc->common->cmd_on_shift);
> --	vdd->write_reg(vc_cmdval, vc->common->prm_mod, vc-
> >cmdval_reg);
> -+	voltdm->write(vc_cmdval, vc->cmdval_reg);
> -
> - 	/* Setting vp errorgain based on the voltage */
> - 	if (volt_data) {
> --		vp_errgain_val = vdd->read_reg(vdd->vp_data->vp_common-
> >prm_mod,
> --					       vdd->vp_data->vpconfig);
> -+		vp_errgain_val = voltdm->read(vdd->vp_data->vpconfig);
> - 		vdd->vp_rt_data.vpconfig_errorgain = volt_data->vp_errgain;
> - 		vp_errgain_val &= ~vp_common->vpconfig_errorgain_mask;
> - 		vp_errgain_val |= vdd->vp_rt_data.vpconfig_errorgain <<
> - 			vp_common->vpconfig_errorgain_shift;
> --		vdd->write_reg(vp_errgain_val, vdd->vp_data->vp_common-
> >prm_mod,
> --			       vdd->vp_data->vpconfig);
> -+		voltdm->write(vp_errgain_val, vdd->vp_data->vpconfig);
> - 	}
> -
> - 	return 0;
> -@@ -111,11 +109,10 @@ int omap_vc_bypass_scale(struct voltagedomain
> *voltdm,
> - 			(vdd->pmic_info->i2c_slave_addr <<
> - 			vc->common->slaveaddr_shift);
> -
> --	vdd->write_reg(vc_bypass_value, vc->common->prm_mod,
> vc_bypass_val_reg);
> --	vdd->write_reg(vc_bypass_value | vc_valid, vc->common->prm_mod,
> --		       vc_bypass_val_reg);
> -+	voltdm->write(vc_bypass_value, vc_bypass_val_reg);
> -+	voltdm->write(vc_bypass_value | vc_valid, vc_bypass_val_reg);
> -
> --	vc_bypass_value = vdd->read_reg(vc->common->prm_mod,
> vc_bypass_val_reg);
> -+	vc_bypass_value = voltdm->read(vc_bypass_val_reg);
> - 	/*
> - 	 * Loop till the bypass command is acknowledged from the SMPS.
> - 	 * NOTE: This is legacy code. The loop count and retry count needs
> -@@ -134,8 +131,7 @@ int omap_vc_bypass_scale(struct voltagedomain
> *voltdm,
> - 			loop_cnt = 0;
> - 			udelay(10);
> - 		}
> --		vc_bypass_value = vdd->read_reg(vc->common->prm_mod,
> --						vc_bypass_val_reg);
> -+		vc_bypass_value = voltdm->read(vc_bypass_val_reg);
> - 	}
> -
> - 	omap_vc_post_scale(voltdm, target_volt, target_vsel, current_vsel);
> -@@ -144,18 +140,13 @@ int omap_vc_bypass_scale(struct voltagedomain
> *voltdm,
> -
> - static void __init omap3_vfsm_init(struct voltagedomain *voltdm)
> - {
> --	struct omap_vc_channel *vc = voltdm->vc;
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --
> - 	/*
> - 	 * Voltage Manager FSM parameters init
> - 	 * XXX This data should be passed in from the board file
> - 	 */
> --	vdd->write_reg(OMAP3_CLKSETUP, vc->common->prm_mod,
> OMAP3_PRM_CLKSETUP_OFFSET);
> --	vdd->write_reg(OMAP3_VOLTOFFSET, vc->common->prm_mod,
> --		       OMAP3_PRM_VOLTOFFSET_OFFSET);
> --	vdd->write_reg(OMAP3_VOLTSETUP2, vc->common->prm_mod,
> --		       OMAP3_PRM_VOLTSETUP2_OFFSET);
> -+	voltdm->write(OMAP3_CLKSETUP, OMAP3_PRM_CLKSETUP_OFFSET);
> -+	voltdm->write(OMAP3_VOLTOFFSET,
> OMAP3_PRM_VOLTOFFSET_OFFSET);
> -+	voltdm->write(OMAP3_VOLTSETUP2,
> OMAP3_PRM_VOLTSETUP2_OFFSET);
> - }
> -
> - static void __init omap3_vc_init_channel(struct voltagedomain *voltdm)
> -@@ -178,16 +169,16 @@ static void __init omap3_vc_init_channel(struct
> voltagedomain *voltdm)
> - 		(onlp_vsel << vc->common->cmd_onlp_shift) |
> - 		(ret_vsel << vc->common->cmd_ret_shift) |
> - 		(off_vsel << vc->common->cmd_off_shift));
> --	vdd->write_reg(vc_val, vc->common->prm_mod, vc->cmdval_reg);
> -+	voltdm->write(vc_val, vc->cmdval_reg);
> -
> - 	/*
> - 	 * Generic VC parameters init
> - 	 * XXX This data should be abstracted out
> - 	 */
> --	vdd->write_reg(OMAP3430_CMD1_MASK |
> OMAP3430_RAV1_MASK, vc->common->prm_mod,
> --			OMAP3_PRM_VC_CH_CONF_OFFSET);
> --	vdd->write_reg(OMAP3430_MCODE_SHIFT |
> OMAP3430_HSEN_MASK, vc->common->prm_mod,
> --			OMAP3_PRM_VC_I2C_CFG_OFFSET);
> -+	voltdm->write(OMAP3430_CMD1_MASK | OMAP3430_RAV1_MASK,
> -+		       OMAP3_PRM_VC_CH_CONF_OFFSET);
> -+	voltdm->write(OMAP3430_MCODE_SHIFT |
> OMAP3430_HSEN_MASK,
> -+		       OMAP3_PRM_VC_I2C_CFG_OFFSET);
> -
> - 	omap3_vfsm_init(voltdm);
> -
> -@@ -198,8 +189,6 @@ static void __init omap3_vc_init_channel(struct
> voltagedomain *voltdm)
> - /* OMAP4 specific voltage init functions */
> - static void __init omap4_vc_init_channel(struct voltagedomain *voltdm)
> - {
> --	struct omap_vc_channel *vc = voltdm->vc;
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	static bool is_initialized;
> - 	u32 vc_val;
> -
> -@@ -215,11 +204,11 @@ static void __init omap4_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	vc_val = (OMAP4430_RAV_VDD_MPU_L_MASK |
> OMAP4430_CMD_VDD_MPU_L_MASK |
> - 		  OMAP4430_RAV_VDD_IVA_L_MASK |
> OMAP4430_CMD_VDD_IVA_L_MASK |
> - 		  OMAP4430_RAV_VDD_CORE_L_MASK |
> OMAP4430_CMD_VDD_CORE_L_MASK);
> --	vdd->write_reg(vc_val, vc->common->prm_mod,
> OMAP4_PRM_VC_CFG_CHANNEL_OFFSET);
> -+	voltdm->write(vc_val, OMAP4_PRM_VC_CFG_CHANNEL_OFFSET);
> -
> - 	/* XXX These are magic numbers and do not belong! */
> - 	vc_val = (0x60 << OMAP4430_SCLL_SHIFT | 0x26 <<
> OMAP4430_SCLH_SHIFT);
> --	vdd->write_reg(vc_val, vc->common->prm_mod,
> OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET);
> -+	voltdm->write(vc_val, OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET);
> -
> - 	is_initialized = true;
> - }
> -@@ -237,34 +226,30 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 		return;
> - 	}
> -
> --	if (!vdd->read_reg || !vdd->write_reg) {
> -+	if (!voltdm->read || !voltdm->write) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> - 			__func__, voltdm->name);
> - 		return;
> - 	}
> -
> - 	/* Set up the SMPS_SA(i2c slave address in VC */
> --	vc_val = vdd->read_reg(vc->common->prm_mod,
> --			       vc->common->smps_sa_reg);
> -+	vc_val = voltdm->read(vc->common->smps_sa_reg);
> - 	vc_val &= ~vc->smps_sa_mask;
> - 	vc_val |= vdd->pmic_info->i2c_slave_addr << vc->smps_sa_shift;
> --	vdd->write_reg(vc_val, vc->common->prm_mod,
> --		       vc->common->smps_sa_reg);
> -+	voltdm->write(vc_val, vc->common->smps_sa_reg);
> -
> - 	/* Setup the VOLRA(pmic reg addr) in VC */
> --	vc_val = vdd->read_reg(vc->common->prm_mod,
> --			       vc->common->smps_volra_reg);
> -+	vc_val = voltdm->read(vc->common->smps_volra_reg);
> - 	vc_val &= ~vc->smps_volra_mask;
> - 	vc_val |= vdd->pmic_info->volt_reg_addr << vc->smps_volra_shift;
> --	vdd->write_reg(vc_val, vc->common->prm_mod,
> --		       vc->common->smps_volra_reg);
> -+	voltdm->write(vc_val, vc->common->smps_volra_reg);
> -
> - 	/* Configure the setup times */
> --	vc_val = vdd->read_reg(vc->common->prm_mod, vdd->vfsm-
> >voltsetup_reg);
> -+	vc_val = voltdm->read(vdd->vfsm->voltsetup_reg);
> - 	vc_val &= ~vdd->vfsm->voltsetup_mask;
> - 	vc_val |= vdd->pmic_info->volt_setup_time <<
> - 			vdd->vfsm->voltsetup_shift;
> --	vdd->write_reg(vc_val, vc->common->prm_mod, vdd->vfsm-
> >voltsetup_reg);
> -+	voltdm->write(vc_val, vdd->vfsm->voltsetup_reg);
> -
> - 	if (cpu_is_omap34xx())
> - 		omap3_vc_init_channel(voltdm);
> -diff --git a/arch/arm/mach-omap2/vc.h b/arch/arm/mach-omap2/vc.h
> -index 51d36a8..d0050f0 100644
> ---- a/arch/arm/mach-omap2/vc.h
> -+++ b/arch/arm/mach-omap2/vc.h
> -@@ -25,7 +25,6 @@ struct voltagedomain;
> -  * struct omap_vc_common - per-VC register/bitfield data
> -  * @cmd_on_mask: ON bitmask in PRM_VC_CMD_VAL* register
> -  * @valid: VALID bitmask in PRM_VC_BYPASS_VAL register
> -- * @prm_mod: PRM module id used for PRM register access
> -  * @smps_sa_reg: Offset of PRM_VC_SMPS_SA reg from PRM start
> -  * @smps_volra_reg: Offset of PRM_VC_SMPS_VOL_RA reg from PRM start
> -  * @bypass_val_reg: Offset of PRM_VC_BYPASS_VAL reg from PRM start
> -@@ -43,7 +42,6 @@ struct voltagedomain;
> - struct omap_vc_common {
> - 	u32 cmd_on_mask;
> - 	u32 valid;
> --	s16 prm_mod;
> - 	u8 smps_sa_reg;
> - 	u8 smps_volra_reg;
> - 	u8 bypass_val_reg;
> -diff --git a/arch/arm/mach-omap2/vc3xxx_data.c b/arch/arm/mach-
> omap2/vc3xxx_data.c
> -index 1a17ed4..6b67203 100644
> ---- a/arch/arm/mach-omap2/vc3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vc3xxx_data.c
> -@@ -30,7 +30,6 @@
> -  * XXX This stuff presumably belongs in the vc3xxx.c or vc.c file.
> -  */
> - static struct omap_vc_common omap3_vc_common = {
> --	.prm_mod         = OMAP3430_GR_MOD,
> - 	.smps_sa_reg	 = OMAP3_PRM_VC_SMPS_SA_OFFSET,
> - 	.smps_volra_reg	 = OMAP3_PRM_VC_SMPS_VOL_RA_OFFSET,
> - 	.bypass_val_reg	 = OMAP3_PRM_VC_BYPASS_VAL_OFFSET,
> -diff --git a/arch/arm/mach-omap2/vc44xx_data.c b/arch/arm/mach-
> omap2/vc44xx_data.c
> -index 56f3f4a..e3125a3 100644
> ---- a/arch/arm/mach-omap2/vc44xx_data.c
> -+++ b/arch/arm/mach-omap2/vc44xx_data.c
> -@@ -31,7 +31,6 @@
> -  * XXX This stuff presumably belongs in the vc3xxx.c or vc.c file.
> -  */
> - static const struct omap_vc_common omap4_vc_common = {
> --	.prm_mod = OMAP4430_PRM_DEVICE_INST,
> - 	.smps_sa_reg = OMAP4_PRM_VC_SMPS_SA_OFFSET,
> - 	.smps_volra_reg = OMAP4_PRM_VC_VAL_SMPS_RA_VOL_OFFSET,
> - 	.bypass_val_reg = OMAP4_PRM_VC_VAL_BYPASS_OFFSET,
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 9b9f019..9f9f014 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -46,27 +46,6 @@ static LIST_HEAD(voltdm_list);
> - #define VOLTAGE_DIR_SIZE	16
> - static struct dentry *voltage_dir;
> -
> --static u32 omap3_voltage_read_reg(u16 mod, u8 offset)
> --{
> --	return omap2_prm_read_mod_reg(mod, offset);
> --}
> --
> --static void omap3_voltage_write_reg(u32 val, u16 mod, u8 offset)
> --{
> --	omap2_prm_write_mod_reg(val, mod, offset);
> --}
> --
> --static u32 omap4_voltage_read_reg(u16 mod, u8 offset)
> --{
> --	return omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION,
> --					mod, offset);
> --}
> --
> --static void omap4_voltage_write_reg(u32 val, u16 mod, u8 offset)
> --{
> --	omap4_prminst_write_inst_reg(val, OMAP4430_PRM_PARTITION,
> mod, offset);
> --}
> --
> - static int __init _config_common_vdd_data(struct voltagedomain *voltdm)
> - {
> - 	char *sys_ck_name;
> -@@ -183,15 +162,7 @@ static int __init omap_vdd_data_configure(struct
> voltagedomain *voltdm)
> - 	if (IS_ERR_VALUE(_config_common_vdd_data(voltdm)))
> - 		goto ovdc_out;
> -
> --	if (cpu_is_omap34xx()) {
> --		vdd->read_reg = omap3_voltage_read_reg;
> --		vdd->write_reg = omap3_voltage_write_reg;
> --		ret = 0;
> --	} else if (cpu_is_omap44xx()) {
> --		vdd->read_reg = omap4_voltage_read_reg;
> --		vdd->write_reg = omap4_voltage_write_reg;
> --		ret = 0;
> --	}
> -+	ret = 0;
> -
> - ovdc_out:
> - 	return ret;
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 363eee4..f4198aa 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -68,6 +68,11 @@ struct voltagedomain {
> - 	struct list_head pwrdm_list;
> - 	struct omap_vc_channel *vc;
> -
> -+	/* VC/VP register access functions: SoC specific */
> -+	u32 (*read) (u8 offset);
> -+	void (*write) (u32 val, u8 offset);
> -+	u32 (*rmw)(u32 mask, u32 bits, u8 offset);
> -+
> - 	struct omap_vdd_info *vdd;
> - };
> -
> -@@ -144,8 +149,6 @@ struct omap_vdd_info {
> - 	u32 curr_volt;
> - 	bool vp_enabled;
> -
> --	u32 (*read_reg) (u16 mod, u8 offset);
> --	void (*write_reg) (u32 val, u16 mod, u8 offset);
> - 	int (*volt_scale) (struct voltagedomain *voltdm,
> - 		unsigned long target_volt);
> - };
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index ad8f05b..1d66749 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -56,6 +56,9 @@ static struct omap_vdd_info omap3_vdd2_info = {
> - static struct voltagedomain omap3_voltdm_mpu = {
> - 	.name = "mpu_iva",
> - 	.scalable = true,
> -+	.read = omap3_prm_vcvp_read,
> -+	.write = omap3_prm_vcvp_write,
> -+	.rmw = omap3_prm_vcvp_rmw,
> - 	.vc = &omap3_vc_mpu,
> - 	.vdd = &omap3_vdd1_info,
> - };
> -@@ -63,6 +66,9 @@ static struct voltagedomain omap3_voltdm_mpu = {
> - static struct voltagedomain omap3_voltdm_core = {
> - 	.name = "core",
> - 	.scalable = true,
> -+	.read = omap3_prm_vcvp_read,
> -+	.write = omap3_prm_vcvp_write,
> -+	.rmw = omap3_prm_vcvp_rmw,
> - 	.vc = &omap3_vc_core,
> - 	.vdd = &omap3_vdd2_info,
> - };
> -diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -index 43e1d38..e435795 100644
> ---- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -@@ -62,6 +62,9 @@ static struct omap_vdd_info omap4_vdd_core_info = {
> - static struct voltagedomain omap4_voltdm_mpu = {
> - 	.name = "mpu",
> - 	.scalable = true,
> -+	.read = omap4_prm_vcvp_read,
> -+	.write = omap4_prm_vcvp_write,
> -+	.rmw = omap4_prm_vcvp_rmw,
> - 	.vc = &omap4_vc_mpu,
> - 	.vdd = &omap4_vdd_mpu_info,
> - };
> -@@ -69,6 +72,9 @@ static struct voltagedomain omap4_voltdm_mpu = {
> - static struct voltagedomain omap4_voltdm_iva = {
> - 	.name = "iva",
> - 	.scalable = true,
> -+	.read = omap4_prm_vcvp_read,
> -+	.write = omap4_prm_vcvp_write,
> -+	.rmw = omap4_prm_vcvp_rmw,
> - 	.vc = &omap4_vc_iva,
> - 	.vdd = &omap4_vdd_iva_info,
> - };
> -@@ -76,6 +82,9 @@ static struct voltagedomain omap4_voltdm_iva = {
> - static struct voltagedomain omap4_voltdm_core = {
> - 	.name = "core",
> - 	.scalable = true,
> -+	.read = omap4_prm_vcvp_read,
> -+	.write = omap4_prm_vcvp_write,
> -+	.rmw = omap4_prm_vcvp_rmw,
> - 	.vc = &omap4_vc_core,
> - 	.vdd = &omap4_vdd_core_info,
> - };
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index 113c839..88ac742 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -35,19 +35,19 @@ static void vp_latch_vsel(struct voltagedomain
> *voltdm)
> -
> - 	vsel = vdd->pmic_info->uv_to_vsel(uvdc);
> -
> --	vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp-
> >vpconfig);
> -+	vpconfig = voltdm->read(vp->vpconfig);
> - 	vpconfig &= ~(vp->vp_common->vpconfig_initvoltage_mask |
> - 			vp->vp_common->vpconfig_initvdd);
> - 	vpconfig |= vsel << vp->vp_common->vpconfig_initvoltage_shift;
> -
> --	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	/* Trigger initVDD value copy to voltage processor */
> --	vdd->write_reg((vpconfig | vp->vp_common->vpconfig_initvdd),
> --		       vp->vp_common->prm_mod, vp->vpconfig);
> -+	voltdm->write((vpconfig | vp->vp_common->vpconfig_initvdd),
> -+		       vp->vpconfig);
> -
> - 	/* Clear initVDD copy trigger bit */
> --	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+	voltdm->write(vpconfig, vp->vpconfig);
> - }
> -
> - /* Generic voltage init functions */
> -@@ -57,7 +57,7 @@ void __init omap_vp_init(struct voltagedomain *voltdm)
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u32 vp_val;
> -
> --	if (!vdd->read_reg || !vdd->write_reg) {
> -+	if (!voltdm->read || !voltdm->write) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> - 			__func__, voltdm->name);
> - 		return;
> -@@ -67,19 +67,19 @@ void __init omap_vp_init(struct voltagedomain
> *voltdm)
> - 		(vdd->vp_rt_data.vpconfig_errorgain <<
> - 		vp->vp_common->vpconfig_errorgain_shift) |
> - 		vp->vp_common->vpconfig_timeouten;
> --	vdd->write_reg(vp_val, vp->vp_common->prm_mod, vp->vpconfig);
> -+	voltdm->write(vp_val, vp->vpconfig);
> -
> - 	vp_val = ((vdd->vp_rt_data.vstepmin_smpswaittimemin <<
> - 		vp->vp_common->vstepmin_smpswaittimemin_shift) |
> - 		(vdd->vp_rt_data.vstepmin_stepmin <<
> - 		vp->vp_common->vstepmin_stepmin_shift));
> --	vdd->write_reg(vp_val, vp->vp_common->prm_mod, vp->vstepmin);
> -+	voltdm->write(vp_val, vp->vstepmin);
> -
> - 	vp_val = ((vdd->vp_rt_data.vstepmax_smpswaittimemax <<
> - 		vp->vp_common->vstepmax_smpswaittimemax_shift) |
> - 		(vdd->vp_rt_data.vstepmax_stepmax <<
> - 		vp->vp_common->vstepmax_stepmax_shift));
> --	vdd->write_reg(vp_val, vp->vp_common->prm_mod, vp->vstepmax);
> -+	voltdm->write(vp_val, vp->vstepmax);
> -
> - 	vp_val = ((vdd->vp_rt_data.vlimitto_vddmax <<
> - 		vp->vp_common->vlimitto_vddmax_shift) |
> -@@ -87,7 +87,7 @@ void __init omap_vp_init(struct voltagedomain *voltdm)
> - 		vp->vp_common->vlimitto_vddmin_shift) |
> - 		(vdd->vp_rt_data.vlimitto_timeout <<
> - 		vp->vp_common->vlimitto_timeout_shift));
> --	vdd->write_reg(vp_val, vp->vp_common->prm_mod, vp->vlimitto);
> -+	voltdm->write(vp_val, vp->vlimitto);
> -
> - 	vp_debugfs_init(voltdm);
> - }
> -@@ -97,7 +97,6 @@ int omap_vp_forceupdate_scale(struct voltagedomain
> *voltdm,
> - 			      unsigned long target_volt)
> - {
> - 	struct omap_vp_instance_data *vp = voltdm->vdd->vp_data;
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u32 vpconfig;
> - 	u8 target_vsel, current_vsel;
> - 	int ret, timeout = 0;
> -@@ -123,21 +122,21 @@ int omap_vp_forceupdate_scale(struct
> voltagedomain *voltdm,
> - 	}
> -
> - 	/* Configure for VP-Force Update */
> --	vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp-
> >vpconfig);
> -+	vpconfig = voltdm->read(vp->vpconfig);
> - 	vpconfig &= ~(vp->vp_common->vpconfig_initvdd |
> - 			vp->vp_common->vpconfig_forceupdate |
> - 			vp->vp_common->vpconfig_initvoltage_mask);
> - 	vpconfig |= ((target_vsel <<
> - 			vp->vp_common->vpconfig_initvoltage_shift));
> --	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	/* Trigger initVDD value copy to voltage processor */
> - 	vpconfig |= vp->vp_common->vpconfig_initvdd;
> --	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	/* Force update of voltage */
> - 	vpconfig |= vp->vp_common->vpconfig_forceupdate;
> --	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	/*
> - 	 * Wait for TransactionDone. Typical latency is <200us.
> -@@ -170,13 +169,13 @@ int omap_vp_forceupdate_scale(struct
> voltagedomain *voltdm,
> - 			"to clear the TRANXDONE status\n",
> - 			__func__, voltdm->name);
> -
> --	vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp-
> >vpconfig);
> -+	vpconfig = voltdm->read(vp->vpconfig);
> - 	/* Clear initVDD copy trigger bit */
> - 	vpconfig &= ~vp->vp_common->vpconfig_initvdd;
> --	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+	voltdm->write(vpconfig, vp->vpconfig);
> - 	/* Clear force bit */
> - 	vpconfig &= ~vp->vp_common->vpconfig_forceupdate;
> --	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	return 0;
> - }
> -@@ -199,13 +198,13 @@ unsigned long omap_vp_get_curr_volt(struct
> voltagedomain *voltdm)
> - 	}
> -
> - 	vdd = voltdm->vdd;
> --	if (!vdd->read_reg) {
> -+	if (!voltdm->read) {
> - 		pr_err("%s: No read API for reading vdd_%s regs\n",
> - 			__func__, voltdm->name);
> - 		return 0;
> - 	}
> -
> --	curr_vsel = vdd->read_reg(vp->vp_common->prm_mod, vp->voltage);
> -+	curr_vsel = voltdm->read(vp->voltage);
> -
> - 	if (!vdd->pmic_info || !vdd->pmic_info->vsel_to_uv) {
> - 		pr_warning("%s: PMIC function to convert vsel to voltage"
> -@@ -236,7 +235,7 @@ void omap_vp_enable(struct voltagedomain *voltdm)
> -
> - 	vdd = voltdm->vdd;
> - 	vp = voltdm->vdd->vp_data;
> --	if (!vdd->read_reg || !vdd->write_reg) {
> -+	if (!voltdm->read || !voltdm->write) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> - 			__func__, voltdm->name);
> - 		return;
> -@@ -249,9 +248,9 @@ void omap_vp_enable(struct voltagedomain *voltdm)
> - 	vp_latch_vsel(voltdm);
> -
> - 	/* Enable VP */
> --	vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp-
> >vpconfig);
> -+	vpconfig = voltdm->read(vp->vpconfig);
> - 	vpconfig |= vp->vp_common->vpconfig_vpenable;
> --	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+	voltdm->write(vpconfig, vp->vpconfig);
> - 	vdd->vp_enabled = true;
> - }
> -
> -@@ -276,7 +275,7 @@ void omap_vp_disable(struct voltagedomain *voltdm)
> -
> - 	vdd = voltdm->vdd;
> - 	vp = voltdm->vdd->vp_data;
> --	if (!vdd->read_reg || !vdd->write_reg) {
> -+	if (!voltdm->read || !voltdm->write) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> - 			__func__, voltdm->name);
> - 		return;
> -@@ -290,15 +289,15 @@ void omap_vp_disable(struct voltagedomain
> *voltdm)
> - 	}
> -
> - 	/* Disable VP */
> --	vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp-
> >vpconfig);
> -+	vpconfig = voltdm->read(vp->vpconfig);
> - 	vpconfig &= ~vp->vp_common->vpconfig_vpenable;
> --	vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig);
> -+	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	/*
> - 	 * Wait for VP idle Typical latency is <2us. Maximum latency is ~100us
> - 	 */
> --	omap_test_timeout((vdd->read_reg(vp->vp_common->prm_mod, vp-
> >vstatus)),
> --				VP_IDLE_TIMEOUT, timeout);
> -+	omap_test_timeout((voltdm->read(vp->vstatus)),
> -+			  VP_IDLE_TIMEOUT, timeout);
> -
> - 	if (timeout >= VP_IDLE_TIMEOUT)
> - 		pr_warning("%s: vdd_%s idle timedout\n",
> -@@ -322,7 +321,7 @@ static int vp_volt_debug_get(void *data, u64 *val)
> - 		return -EINVAL;
> - 	}
> -
> --	vsel = vdd->read_reg(vp->vp_common->prm_mod, vp->voltage);
> -+	vsel = voltdm->read(vp->voltage);
> -
> - 	if (!vdd->pmic_info->vsel_to_uv) {
> - 		pr_warning("PMIC function to convert vsel to voltage"
> -diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
> -index 2c9cd76..79aa8d3 100644
> ---- a/arch/arm/mach-omap2/vp.h
> -+++ b/arch/arm/mach-omap2/vp.h
> -@@ -62,7 +62,6 @@ struct omap_vp_ops {
> -  * @vpconfig_vlimitto_vddmin_shift: VDDMIN field shift in
> PRM_VP*_VLIMITTO reg
> -  * @vpconfig_vlimitto_vddmax_shift: VDDMAX field shift in
> PRM_VP*_VLIMITTO reg
> -  * @vpconfig_vlimitto_timeout_shift: TIMEOUT field shift in
> PRM_VP*_VLIMITTO reg
> -- * @prm_mod: PRM module id used for PRM register access
> -  *
> -  * XXX It it not necessary to have both a mask and a shift for the same
> -  *     bitfield - remove one
> -@@ -75,7 +74,6 @@ struct omap_vp_common_data {
> - 	u32 vpconfig_initvdd;
> - 	u32 vpconfig_forceupdate;
> - 	u32 vpconfig_vpenable;
> --	s16 prm_mod;
> - 	u8 vpconfig_erroroffset_shift;
> - 	u8 vpconfig_errorgain_shift;
> - 	u8 vpconfig_initvoltage_shift;
> -diff --git a/arch/arm/mach-omap2/vp3xxx_data.c b/arch/arm/mach-
> omap2/vp3xxx_data.c
> -index 0372c1a..b01d333 100644
> ---- a/arch/arm/mach-omap2/vp3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vp3xxx_data.c
> -@@ -37,7 +37,6 @@ static const struct omap_vp_ops omap3_vp_ops = {
> -  * XXX This stuff presumably belongs in the vp3xxx.c or vp.c file.
> -  */
> - static const struct omap_vp_common_data omap3_vp_common = {
> --	.prm_mod = OMAP3430_GR_MOD,
> - 	.vpconfig_erroroffset_shift = OMAP3430_ERROROFFSET_SHIFT,
> - 	.vpconfig_errorgain_mask = OMAP3430_ERRORGAIN_MASK,
> - 	.vpconfig_errorgain_shift = OMAP3430_ERRORGAIN_SHIFT,
> -diff --git a/arch/arm/mach-omap2/vp44xx_data.c b/arch/arm/mach-
> omap2/vp44xx_data.c
> -index 738ba04..9704c7b 100644
> ---- a/arch/arm/mach-omap2/vp44xx_data.c
> -+++ b/arch/arm/mach-omap2/vp44xx_data.c
> -@@ -37,7 +37,6 @@ static const struct omap_vp_ops omap4_vp_ops = {
> -  * XXX This stuff presumably belongs in the vp44xx.c or vp.c file.
> -  */
> - static const struct omap_vp_common_data omap4_vp_common = {
> --	.prm_mod = OMAP4430_PRM_DEVICE_INST,
> - 	.vpconfig_erroroffset_shift = OMAP4430_ERROROFFSET_SHIFT,
> - 	.vpconfig_errorgain_mask = OMAP4430_ERRORGAIN_MASK,
> - 	.vpconfig_errorgain_shift = OMAP4430_ERRORGAIN_SHIFT,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0118-OMAP3-VC-
> cleanup-i2c-slave-address-configuration.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0118-OMAP3-VC-cleanup-i2c-slave-address-
> configuration.patch
> deleted file mode 100644
> index a538b7b..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0118-OMAP3-VC-cleanup-
> i2c-slave-address-configuration.patch
> +++ /dev/null
> @@ -1,145 +0,0 @@
> -From 8a87503677e21700900e300a8e319a8239d6591f Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Tue, 29 Mar 2011 14:02:36 -0700
> -Subject: [PATCH 118/149] OMAP3+: VC: cleanup i2c slave address
> configuration
> -
> -- Add an i2c_slave_address field to the omap_vc_channel
> -- use VC/VP read/modify/write helper instead of open-coding
> -- remove smps_sa_shift, use __ffs(mask) for shift value
> -- I2C addresses 10-bit, change size to u16
> -
> -Special thanks to Shweta Gulati <shweta.gulati at ti.com> for suggesting
> -the use of __ffs(x) instead of ffs(x) - 1.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c          |   12 +++++++-----
> - arch/arm/mach-omap2/vc.h          |    8 +++++---
> - arch/arm/mach-omap2/vc3xxx_data.c |    2 --
> - arch/arm/mach-omap2/vc44xx_data.c |    3 ---
> - arch/arm/mach-omap2/voltage.h     |    2 +-
> - 5 files changed, 13 insertions(+), 14 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index 9c2706c..ca6165d 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -232,11 +232,13 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 		return;
> - 	}
> -
> --	/* Set up the SMPS_SA(i2c slave address in VC */
> --	vc_val = voltdm->read(vc->common->smps_sa_reg);
> --	vc_val &= ~vc->smps_sa_mask;
> --	vc_val |= vdd->pmic_info->i2c_slave_addr << vc->smps_sa_shift;
> --	voltdm->write(vc_val, vc->common->smps_sa_reg);
> -+	/* get PMIC/board specific settings */
> -+	vc->i2c_slave_addr = vdd->pmic_info->i2c_slave_addr;
> -+
> -+	/* Configure the i2c slave address for this VC */
> -+	voltdm->rmw(vc->smps_sa_mask,
> -+		    vc->i2c_slave_addr << __ffs(vc->smps_sa_mask),
> -+		    vc->common->smps_sa_reg);
> -
> - 	/* Setup the VOLRA(pmic reg addr) in VC */
> - 	vc_val = voltdm->read(vc->common->smps_volra_reg);
> -diff --git a/arch/arm/mach-omap2/vc.h b/arch/arm/mach-omap2/vc.h
> -index d0050f0..165fc74 100644
> ---- a/arch/arm/mach-omap2/vc.h
> -+++ b/arch/arm/mach-omap2/vc.h
> -@@ -57,20 +57,22 @@ struct omap_vc_common {
> - /**
> -  * struct omap_vc_channel - VC per-instance data
> -  * @common: pointer to VC common data for this platform
> -- * @smps_sa_mask: SA* bitmask in the PRM_VC_SMPS_SA register
> -+ * @smps_sa_mask: i2c slave address bitmask in the PRM_VC_SMPS_SA
> register
> -  * @smps_volra_mask: VOLRA* bitmask in the PRM_VC_VOL_RA register
> -- * @smps_sa_shift: SA* field shift in the PRM_VC_SMPS_SA register
> -  * @smps_volra_shift: VOLRA* field shift in the PRM_VC_VOL_RA register
> -  *
> -  * XXX It is not necessary to have both a *_mask and a *_shift -
> -  *     remove one
> -  */
> - struct omap_vc_channel {
> -+	/* channel state */
> -+	u16 i2c_slave_addr;
> -+
> -+	/* register access data */
> - 	const struct omap_vc_common *common;
> - 	u32 smps_sa_mask;
> - 	u32 smps_volra_mask;
> - 	u8 cmdval_reg;
> --	u8 smps_sa_shift;
> - 	u8 smps_volra_shift;
> - };
> -
> -diff --git a/arch/arm/mach-omap2/vc3xxx_data.c b/arch/arm/mach-
> omap2/vc3xxx_data.c
> -index 6b67203..86be50c 100644
> ---- a/arch/arm/mach-omap2/vc3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vc3xxx_data.c
> -@@ -47,7 +47,6 @@ static struct omap_vc_common omap3_vc_common = {
> - struct omap_vc_channel omap3_vc_mpu = {
> - 	.common = &omap3_vc_common,
> - 	.cmdval_reg = OMAP3_PRM_VC_CMD_VAL_0_OFFSET,
> --	.smps_sa_shift = OMAP3430_PRM_VC_SMPS_SA_SA0_SHIFT,
> - 	.smps_sa_mask = OMAP3430_PRM_VC_SMPS_SA_SA0_MASK,
> - 	.smps_volra_shift = OMAP3430_VOLRA0_SHIFT,
> - 	.smps_volra_mask = OMAP3430_VOLRA0_MASK,
> -@@ -56,7 +55,6 @@ struct omap_vc_channel omap3_vc_mpu = {
> - struct omap_vc_channel omap3_vc_core = {
> - 	.common = &omap3_vc_common,
> - 	.cmdval_reg = OMAP3_PRM_VC_CMD_VAL_1_OFFSET,
> --	.smps_sa_shift = OMAP3430_PRM_VC_SMPS_SA_SA1_SHIFT,
> - 	.smps_sa_mask = OMAP3430_PRM_VC_SMPS_SA_SA1_MASK,
> - 	.smps_volra_shift = OMAP3430_VOLRA1_SHIFT,
> - 	.smps_volra_mask = OMAP3430_VOLRA1_MASK,
> -diff --git a/arch/arm/mach-omap2/vc44xx_data.c b/arch/arm/mach-
> omap2/vc44xx_data.c
> -index e3125a3..af922b4 100644
> ---- a/arch/arm/mach-omap2/vc44xx_data.c
> -+++ b/arch/arm/mach-omap2/vc44xx_data.c
> -@@ -49,7 +49,6 @@ static const struct omap_vc_common
> omap4_vc_common = {
> - struct omap_vc_channel omap4_vc_mpu = {
> - 	.common = &omap4_vc_common,
> - 	.cmdval_reg = OMAP4_PRM_VC_VAL_CMD_VDD_MPU_L_OFFSET,
> --	.smps_sa_shift =
> OMAP4430_SA_VDD_MPU_L_PRM_VC_SMPS_SA_SHIFT,
> - 	.smps_sa_mask =
> OMAP4430_SA_VDD_MPU_L_PRM_VC_SMPS_SA_MASK,
> - 	.smps_volra_shift = OMAP4430_VOLRA_VDD_MPU_L_SHIFT,
> - 	.smps_volra_mask = OMAP4430_VOLRA_VDD_MPU_L_MASK,
> -@@ -58,7 +57,6 @@ struct omap_vc_channel omap4_vc_mpu = {
> - struct omap_vc_channel omap4_vc_iva = {
> - 	.common = &omap4_vc_common,
> - 	.cmdval_reg = OMAP4_PRM_VC_VAL_CMD_VDD_IVA_L_OFFSET,
> --	.smps_sa_shift =
> OMAP4430_SA_VDD_IVA_L_PRM_VC_SMPS_SA_SHIFT,
> - 	.smps_sa_mask =
> OMAP4430_SA_VDD_IVA_L_PRM_VC_SMPS_SA_MASK,
> - 	.smps_volra_shift = OMAP4430_VOLRA_VDD_IVA_L_SHIFT,
> - 	.smps_volra_mask = OMAP4430_VOLRA_VDD_IVA_L_MASK,
> -@@ -67,7 +65,6 @@ struct omap_vc_channel omap4_vc_iva = {
> - struct omap_vc_channel omap4_vc_core = {
> - 	.common = &omap4_vc_common,
> - 	.cmdval_reg = OMAP4_PRM_VC_VAL_CMD_VDD_CORE_L_OFFSET,
> --	.smps_sa_shift = OMAP4430_SA_VDD_CORE_L_0_6_SHIFT,
> - 	.smps_sa_mask = OMAP4430_SA_VDD_CORE_L_0_6_MASK,
> - 	.smps_volra_shift = OMAP4430_VOLRA_VDD_CORE_L_SHIFT,
> - 	.smps_volra_mask = OMAP4430_VOLRA_VDD_CORE_L_MASK,
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index f4198aa..639e85c 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -110,13 +110,13 @@ struct omap_volt_pmic_info {
> - 	u32 ret_volt;
> - 	u32 off_volt;
> - 	u16 volt_setup_time;
> -+	u16 i2c_slave_addr;
> - 	u8 vp_erroroffset;
> - 	u8 vp_vstepmin;
> - 	u8 vp_vstepmax;
> - 	u8 vp_vddmin;
> - 	u8 vp_vddmax;
> - 	u8 vp_timeout_us;
> --	u8 i2c_slave_addr;
> - 	u8 volt_reg_addr;
> - 	u8 cmd_reg_addr;
> - 	unsigned long (*vsel_to_uv) (const u8 vsel);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0119-OMAP3-VC-
> cleanup-PMIC-register-address-configuration.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0119-OMAP3-VC-cleanup-PMIC-
> register-address-configuration.patch
> deleted file mode 100644
> index 0862023..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0119-OMAP3-VC-cleanup-
> PMIC-register-address-configuration.patch
> +++ /dev/null
> @@ -1,185 +0,0 @@
> -From 3296114685831f06d5a73057464afbbed489dea4 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Thu, 9 Jun 2011 11:01:55 -0700
> -Subject: [PATCH 119/149] OMAP3+: VC: cleanup PMIC register address
> configuration
> -
> -- support both voltage register address and command register address
> -  for each VC channel
> -- add fields for voltage register address (volra) and command register
> -  address (cmdra) to struct omap_vc_channel
> -- use VC/VP register access read/modify/write helper
> -- remove volra_shift field (use __ffs(mask) for shift value)
> -- I2C addresses 10-bit, change size to u16
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c          |   17 ++++++++++++-----
> - arch/arm/mach-omap2/vc.h          |    9 ++++-----
> - arch/arm/mach-omap2/vc3xxx_data.c |    5 +++--
> - arch/arm/mach-omap2/vc44xx_data.c |    7 ++++---
> - arch/arm/mach-omap2/voltage.h     |    4 ++--
> - 5 files changed, 25 insertions(+), 17 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index ca6165d..50b1f7c 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -234,17 +234,24 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> -
> - 	/* get PMIC/board specific settings */
> - 	vc->i2c_slave_addr = vdd->pmic_info->i2c_slave_addr;
> -+	vc->volt_reg_addr = vdd->pmic_info->volt_reg_addr;
> -+	vc->cmd_reg_addr = vdd->pmic_info->cmd_reg_addr;
> -
> - 	/* Configure the i2c slave address for this VC */
> - 	voltdm->rmw(vc->smps_sa_mask,
> - 		    vc->i2c_slave_addr << __ffs(vc->smps_sa_mask),
> - 		    vc->common->smps_sa_reg);
> -
> --	/* Setup the VOLRA(pmic reg addr) in VC */
> --	vc_val = voltdm->read(vc->common->smps_volra_reg);
> --	vc_val &= ~vc->smps_volra_mask;
> --	vc_val |= vdd->pmic_info->volt_reg_addr << vc->smps_volra_shift;
> --	voltdm->write(vc_val, vc->common->smps_volra_reg);
> -+	/*
> -+	 * Configure the PMIC register addresses.
> -+	 */
> -+	voltdm->rmw(vc->smps_volra_mask,
> -+		    vc->volt_reg_addr << __ffs(vc->smps_volra_mask),
> -+		    vc->common->smps_volra_reg);
> -+	if (vc->cmd_reg_addr)
> -+		voltdm->rmw(vc->smps_cmdra_mask,
> -+			    vc->cmd_reg_addr << __ffs(vc-
> >smps_cmdra_mask),
> -+			    vc->common->smps_cmdra_reg);
> -
> - 	/* Configure the setup times */
> - 	vc_val = voltdm->read(vdd->vfsm->voltsetup_reg);
> -diff --git a/arch/arm/mach-omap2/vc.h b/arch/arm/mach-omap2/vc.h
> -index 165fc74..f3b0551 100644
> ---- a/arch/arm/mach-omap2/vc.h
> -+++ b/arch/arm/mach-omap2/vc.h
> -@@ -44,6 +44,7 @@ struct omap_vc_common {
> - 	u32 valid;
> - 	u8 smps_sa_reg;
> - 	u8 smps_volra_reg;
> -+	u8 smps_cmdra_reg;
> - 	u8 bypass_val_reg;
> - 	u8 data_shift;
> - 	u8 slaveaddr_shift;
> -@@ -59,21 +60,19 @@ struct omap_vc_common {
> -  * @common: pointer to VC common data for this platform
> -  * @smps_sa_mask: i2c slave address bitmask in the PRM_VC_SMPS_SA
> register
> -  * @smps_volra_mask: VOLRA* bitmask in the PRM_VC_VOL_RA register
> -- * @smps_volra_shift: VOLRA* field shift in the PRM_VC_VOL_RA register
> -- *
> -- * XXX It is not necessary to have both a *_mask and a *_shift -
> -- *     remove one
> -  */
> - struct omap_vc_channel {
> - 	/* channel state */
> - 	u16 i2c_slave_addr;
> -+	u16 volt_reg_addr;
> -+	u16 cmd_reg_addr;
> -
> - 	/* register access data */
> - 	const struct omap_vc_common *common;
> - 	u32 smps_sa_mask;
> - 	u32 smps_volra_mask;
> -+	u32 smps_cmdra_mask;
> - 	u8 cmdval_reg;
> --	u8 smps_volra_shift;
> - };
> -
> - extern struct omap_vc_channel omap3_vc_mpu;
> -diff --git a/arch/arm/mach-omap2/vc3xxx_data.c b/arch/arm/mach-
> omap2/vc3xxx_data.c
> -index 86be50c..df8bd5e 100644
> ---- a/arch/arm/mach-omap2/vc3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vc3xxx_data.c
> -@@ -32,6 +32,7 @@
> - static struct omap_vc_common omap3_vc_common = {
> - 	.smps_sa_reg	 = OMAP3_PRM_VC_SMPS_SA_OFFSET,
> - 	.smps_volra_reg	 = OMAP3_PRM_VC_SMPS_VOL_RA_OFFSET,
> -+	.smps_cmdra_reg	 =
> OMAP3_PRM_VC_SMPS_CMD_RA_OFFSET,
> - 	.bypass_val_reg	 = OMAP3_PRM_VC_BYPASS_VAL_OFFSET,
> - 	.data_shift	 = OMAP3430_DATA_SHIFT,
> - 	.slaveaddr_shift = OMAP3430_SLAVEADDR_SHIFT,
> -@@ -48,14 +49,14 @@ struct omap_vc_channel omap3_vc_mpu = {
> - 	.common = &omap3_vc_common,
> - 	.cmdval_reg = OMAP3_PRM_VC_CMD_VAL_0_OFFSET,
> - 	.smps_sa_mask = OMAP3430_PRM_VC_SMPS_SA_SA0_MASK,
> --	.smps_volra_shift = OMAP3430_VOLRA0_SHIFT,
> - 	.smps_volra_mask = OMAP3430_VOLRA0_MASK,
> -+	.smps_cmdra_mask = OMAP3430_CMDRA0_MASK,
> - };
> -
> - struct omap_vc_channel omap3_vc_core = {
> - 	.common = &omap3_vc_common,
> - 	.cmdval_reg = OMAP3_PRM_VC_CMD_VAL_1_OFFSET,
> - 	.smps_sa_mask = OMAP3430_PRM_VC_SMPS_SA_SA1_MASK,
> --	.smps_volra_shift = OMAP3430_VOLRA1_SHIFT,
> - 	.smps_volra_mask = OMAP3430_VOLRA1_MASK,
> -+	.smps_cmdra_mask = OMAP3430_CMDRA1_MASK,
> - };
> -diff --git a/arch/arm/mach-omap2/vc44xx_data.c b/arch/arm/mach-
> omap2/vc44xx_data.c
> -index af922b4..5d104ff 100644
> ---- a/arch/arm/mach-omap2/vc44xx_data.c
> -+++ b/arch/arm/mach-omap2/vc44xx_data.c
> -@@ -33,6 +33,7 @@
> - static const struct omap_vc_common omap4_vc_common = {
> - 	.smps_sa_reg = OMAP4_PRM_VC_SMPS_SA_OFFSET,
> - 	.smps_volra_reg = OMAP4_PRM_VC_VAL_SMPS_RA_VOL_OFFSET,
> -+	.smps_cmdra_reg = OMAP4_PRM_VC_VAL_SMPS_RA_CMD_OFFSET,
> - 	.bypass_val_reg = OMAP4_PRM_VC_VAL_BYPASS_OFFSET,
> - 	.data_shift = OMAP4430_DATA_SHIFT,
> - 	.slaveaddr_shift = OMAP4430_SLAVEADDR_SHIFT,
> -@@ -50,23 +51,23 @@ struct omap_vc_channel omap4_vc_mpu = {
> - 	.common = &omap4_vc_common,
> - 	.cmdval_reg = OMAP4_PRM_VC_VAL_CMD_VDD_MPU_L_OFFSET,
> - 	.smps_sa_mask =
> OMAP4430_SA_VDD_MPU_L_PRM_VC_SMPS_SA_MASK,
> --	.smps_volra_shift = OMAP4430_VOLRA_VDD_MPU_L_SHIFT,
> - 	.smps_volra_mask = OMAP4430_VOLRA_VDD_MPU_L_MASK,
> -+	.smps_cmdra_mask = OMAP4430_CMDRA_VDD_MPU_L_MASK,
> - };
> -
> - struct omap_vc_channel omap4_vc_iva = {
> - 	.common = &omap4_vc_common,
> - 	.cmdval_reg = OMAP4_PRM_VC_VAL_CMD_VDD_IVA_L_OFFSET,
> - 	.smps_sa_mask =
> OMAP4430_SA_VDD_IVA_L_PRM_VC_SMPS_SA_MASK,
> --	.smps_volra_shift = OMAP4430_VOLRA_VDD_IVA_L_SHIFT,
> - 	.smps_volra_mask = OMAP4430_VOLRA_VDD_IVA_L_MASK,
> -+	.smps_cmdra_mask = OMAP4430_CMDRA_VDD_IVA_L_MASK,
> - };
> -
> - struct omap_vc_channel omap4_vc_core = {
> - 	.common = &omap4_vc_common,
> - 	.cmdval_reg = OMAP4_PRM_VC_VAL_CMD_VDD_CORE_L_OFFSET,
> - 	.smps_sa_mask = OMAP4430_SA_VDD_CORE_L_0_6_MASK,
> --	.smps_volra_shift = OMAP4430_VOLRA_VDD_CORE_L_SHIFT,
> - 	.smps_volra_mask = OMAP4430_VOLRA_VDD_CORE_L_MASK,
> -+	.smps_cmdra_mask = OMAP4430_CMDRA_VDD_CORE_L_MASK,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 639e85c..3129d64 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -111,14 +111,14 @@ struct omap_volt_pmic_info {
> - 	u32 off_volt;
> - 	u16 volt_setup_time;
> - 	u16 i2c_slave_addr;
> -+	u16 volt_reg_addr;
> -+	u16 cmd_reg_addr;
> - 	u8 vp_erroroffset;
> - 	u8 vp_vstepmin;
> - 	u8 vp_vstepmax;
> - 	u8 vp_vddmin;
> - 	u8 vp_vddmax;
> - 	u8 vp_timeout_us;
> --	u8 volt_reg_addr;
> --	u8 cmd_reg_addr;
> - 	unsigned long (*vsel_to_uv) (const u8 vsel);
> - 	u8 (*uv_to_vsel) (unsigned long uV);
> - };
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0120-OMAP3-VC-
> bypass-use-fields-from-VC-struct-instead-of.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0120-OMAP3-VC-bypass-use-fields-from-VC-struct-
> instead-of.patch
> deleted file mode 100644
> index 37b7af0..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0120-OMAP3-VC-bypass-
> use-fields-from-VC-struct-instead-of.patch
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -From ebe24c52d0431437103277f4e378c3dad0bde3e9 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Tue, 29 Mar 2011 14:24:47 -0700
> -Subject: [PATCH 120/149] OMAP3+: VC bypass: use fields from VC struct
> instead of PMIC info
> -
> -The PMIC configurable variables should be isolated to VC initialization.
> -The rest of the VC functions (like VC bypass) should use the i2c slave address
> -and voltage register address fields from struct omap_vc_channel.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c |    7 ++-----
> - 1 files changed, 2 insertions(+), 5 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index 50b1f7c..9e0dc8d 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -91,7 +91,6 @@ int omap_vc_bypass_scale(struct voltagedomain
> *voltdm,
> - 			 unsigned long target_volt)
> - {
> - 	struct omap_vc_channel *vc = voltdm->vc;
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u32 loop_cnt = 0, retries_cnt = 0;
> - 	u32 vc_valid, vc_bypass_val_reg, vc_bypass_value;
> - 	u8 target_vsel, current_vsel;
> -@@ -104,10 +103,8 @@ int omap_vc_bypass_scale(struct voltagedomain
> *voltdm,
> - 	vc_valid = vc->common->valid;
> - 	vc_bypass_val_reg = vc->common->bypass_val_reg;
> - 	vc_bypass_value = (target_vsel << vc->common->data_shift) |
> --			(vdd->pmic_info->volt_reg_addr <<
> --			vc->common->regaddr_shift) |
> --			(vdd->pmic_info->i2c_slave_addr <<
> --			vc->common->slaveaddr_shift);
> -+		(vc->volt_reg_addr << vc->common->regaddr_shift) |
> -+		(vc->i2c_slave_addr << vc->common->slaveaddr_shift);
> -
> - 	voltdm->write(vc_bypass_value, vc_bypass_val_reg);
> - 	voltdm->write(vc_bypass_value | vc_valid, vc_bypass_val_reg);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0121-OMAP3-VC-
> cleanup-voltage-setup-time-configuration.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0121-OMAP3-VC-cleanup-voltage-setup-time-
> configuration.patch
> deleted file mode 100644
> index 1e103a4..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0121-OMAP3-VC-cleanup-
> voltage-setup-time-configuration.patch
> +++ /dev/null
> @@ -1,227 +0,0 @@
> -From 50a49ce5dfe92764b167510f4edb9dcde880f9d5 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Tue, 29 Mar 2011 14:36:04 -0700
> -Subject: [PATCH 121/149] OMAP3+: VC: cleanup voltage setup time
> configuration
> -
> -- add setup_time field to struct omap_vc_channel (init'd from PMIC data)
> -- use VC/VP register access helper for read/modify/write
> -- move VFSM structure from omap_vdd_info into struct voltagedomain
> -- remove redunant _data suffix from VFSM structures and variables
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c                      |   10 ++++------
> - arch/arm/mach-omap2/vc.h                      |    1 +
> - arch/arm/mach-omap2/voltage.h                 |    7 +++----
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |    8 ++++----
> - arch/arm/mach-omap2/voltagedomains44xx_data.c |   12 ++++++------
> - 5 files changed, 18 insertions(+), 20 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index 9e0dc8d..d7415ea 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -214,7 +214,6 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - {
> - 	struct omap_vc_channel *vc = voltdm->vc;
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> --	u32 vc_val;
> -
> - 	if (!vdd->pmic_info || !vdd->pmic_info->uv_to_vsel) {
> - 		pr_err("%s: PMIC info requried to configure vc for"
> -@@ -233,6 +232,7 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	vc->i2c_slave_addr = vdd->pmic_info->i2c_slave_addr;
> - 	vc->volt_reg_addr = vdd->pmic_info->volt_reg_addr;
> - 	vc->cmd_reg_addr = vdd->pmic_info->cmd_reg_addr;
> -+	vc->setup_time = vdd->pmic_info->volt_setup_time;
> -
> - 	/* Configure the i2c slave address for this VC */
> - 	voltdm->rmw(vc->smps_sa_mask,
> -@@ -251,11 +251,9 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 			    vc->common->smps_cmdra_reg);
> -
> - 	/* Configure the setup times */
> --	vc_val = voltdm->read(vdd->vfsm->voltsetup_reg);
> --	vc_val &= ~vdd->vfsm->voltsetup_mask;
> --	vc_val |= vdd->pmic_info->volt_setup_time <<
> --			vdd->vfsm->voltsetup_shift;
> --	voltdm->write(vc_val, vdd->vfsm->voltsetup_reg);
> -+	voltdm->rmw(voltdm->vfsm->voltsetup_mask,
> -+		    vc->setup_time << __ffs(voltdm->vfsm->voltsetup_mask),
> -+		    voltdm->vfsm->voltsetup_reg);
> -
> - 	if (cpu_is_omap34xx())
> - 		omap3_vc_init_channel(voltdm);
> -diff --git a/arch/arm/mach-omap2/vc.h b/arch/arm/mach-omap2/vc.h
> -index f3b0551..45e63cf 100644
> ---- a/arch/arm/mach-omap2/vc.h
> -+++ b/arch/arm/mach-omap2/vc.h
> -@@ -66,6 +66,7 @@ struct omap_vc_channel {
> - 	u16 i2c_slave_addr;
> - 	u16 volt_reg_addr;
> - 	u16 cmd_reg_addr;
> -+	u16 setup_time;
> -
> - 	/* register access data */
> - 	const struct omap_vc_common *common;
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 3129d64..2b2ab56 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -36,7 +36,7 @@ struct powerdomain;
> - struct omap_vdd_info;
> -
> - /**
> -- * struct omap_vfsm_instance_data - per-voltage manager FSM
> register/bitfield
> -+ * struct omap_vfsm_instance - per-voltage manager FSM register/bitfield
> -  * data
> -  * @voltsetup_mask: SETUP_TIME* bitmask in the PRM_VOLTSETUP* register
> -  * @voltsetup_reg: register offset of PRM_VOLTSETUP from PRM base
> -@@ -46,7 +46,7 @@ struct omap_vdd_info;
> -  * XXX It is not necessary to have both a _mask and a _shift for the same
> -  *     bitfield - remove one!
> -  */
> --struct omap_vfsm_instance_data {
> -+struct omap_vfsm_instance {
> - 	u32 voltsetup_mask;
> - 	u8 voltsetup_reg;
> - 	u8 voltsetup_shift;
> -@@ -67,6 +67,7 @@ struct voltagedomain {
> - 	struct list_head node;
> - 	struct list_head pwrdm_list;
> - 	struct omap_vc_channel *vc;
> -+	const struct omap_vfsm_instance *vfsm;
> -
> - 	/* VC/VP register access functions: SoC specific */
> - 	u32 (*read) (u8 offset);
> -@@ -133,7 +134,6 @@ struct omap_volt_pmic_info {
> -  * @vp_data		: the register values, shifts, masks for various
> -  *			  vp registers
> -  * @vp_rt_data          : VP data derived at runtime, not predefined
> -- * @vfsm                : voltage manager FSM data
> -  * @debug_dir		: debug directory for this voltage domain.
> -  * @curr_volt		: current voltage for this vdd.
> -  * @vp_enabled		: flag to keep track of whether vp is enabled or
> not
> -@@ -144,7 +144,6 @@ struct omap_vdd_info {
> - 	struct omap_volt_pmic_info *pmic_info;
> - 	struct omap_vp_instance_data *vp_data;
> - 	struct omap_vp_runtime_data vp_rt_data;
> --	const struct omap_vfsm_instance_data *vfsm;
> - 	struct dentry *debug_dir;
> - 	u32 curr_volt;
> - 	bool vp_enabled;
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index 1d66749..4ea9a7b 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -31,7 +31,7 @@
> -  * VDD data
> -  */
> -
> --static const struct omap_vfsm_instance_data omap3_vdd1_vfsm_data = {
> -+static const struct omap_vfsm_instance omap3_vdd1_vfsm = {
> - 	.voltsetup_reg = OMAP3_PRM_VOLTSETUP1_OFFSET,
> - 	.voltsetup_shift = OMAP3430_SETUP_TIME1_SHIFT,
> - 	.voltsetup_mask = OMAP3430_SETUP_TIME1_MASK,
> -@@ -39,10 +39,9 @@ static const struct omap_vfsm_instance_data
> omap3_vdd1_vfsm_data = {
> -
> - static struct omap_vdd_info omap3_vdd1_info = {
> - 	.vp_data = &omap3_vp1_data,
> --	.vfsm = &omap3_vdd1_vfsm_data,
> - };
> -
> --static const struct omap_vfsm_instance_data omap3_vdd2_vfsm_data = {
> -+static const struct omap_vfsm_instance omap3_vdd2_vfsm = {
> - 	.voltsetup_reg = OMAP3_PRM_VOLTSETUP1_OFFSET,
> - 	.voltsetup_shift = OMAP3430_SETUP_TIME2_SHIFT,
> - 	.voltsetup_mask = OMAP3430_SETUP_TIME2_MASK,
> -@@ -50,7 +49,6 @@ static const struct omap_vfsm_instance_data
> omap3_vdd2_vfsm_data = {
> -
> - static struct omap_vdd_info omap3_vdd2_info = {
> - 	.vp_data = &omap3_vp2_data,
> --	.vfsm = &omap3_vdd2_vfsm_data,
> - };
> -
> - static struct voltagedomain omap3_voltdm_mpu = {
> -@@ -60,6 +58,7 @@ static struct voltagedomain omap3_voltdm_mpu = {
> - 	.write = omap3_prm_vcvp_write,
> - 	.rmw = omap3_prm_vcvp_rmw,
> - 	.vc = &omap3_vc_mpu,
> -+	.vfsm = &omap3_vdd1_vfsm,
> - 	.vdd = &omap3_vdd1_info,
> - };
> -
> -@@ -70,6 +69,7 @@ static struct voltagedomain omap3_voltdm_core = {
> - 	.write = omap3_prm_vcvp_write,
> - 	.rmw = omap3_prm_vcvp_rmw,
> - 	.vc = &omap3_vc_core,
> -+	.vfsm = &omap3_vdd2_vfsm,
> - 	.vdd = &omap3_vdd2_info,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -index e435795..dd4bd22 100644
> ---- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -@@ -32,31 +32,28 @@
> - #include "vc.h"
> - #include "vp.h"
> -
> --static const struct omap_vfsm_instance_data omap4_vdd_mpu_vfsm_data =
> {
> -+static const struct omap_vfsm_instance omap4_vdd_mpu_vfsm = {
> - 	.voltsetup_reg = OMAP4_PRM_VOLTSETUP_MPU_RET_SLEEP_OFFSET,
> - };
> -
> - static struct omap_vdd_info omap4_vdd_mpu_info = {
> - 	.vp_data = &omap4_vp_mpu_data,
> --	.vfsm = &omap4_vdd_mpu_vfsm_data,
> - };
> -
> --static const struct omap_vfsm_instance_data omap4_vdd_iva_vfsm_data = {
> -+static const struct omap_vfsm_instance omap4_vdd_iva_vfsm = {
> - 	.voltsetup_reg = OMAP4_PRM_VOLTSETUP_IVA_RET_SLEEP_OFFSET,
> - };
> -
> - static struct omap_vdd_info omap4_vdd_iva_info = {
> - 	.vp_data = &omap4_vp_iva_data,
> --	.vfsm = &omap4_vdd_iva_vfsm_data,
> - };
> -
> --static const struct omap_vfsm_instance_data omap4_vdd_core_vfsm_data =
> {
> -+static const struct omap_vfsm_instance omap4_vdd_core_vfsm = {
> - 	.voltsetup_reg =
> OMAP4_PRM_VOLTSETUP_CORE_RET_SLEEP_OFFSET,
> - };
> -
> - static struct omap_vdd_info omap4_vdd_core_info = {
> - 	.vp_data = &omap4_vp_core_data,
> --	.vfsm = &omap4_vdd_core_vfsm_data,
> - };
> -
> - static struct voltagedomain omap4_voltdm_mpu = {
> -@@ -66,6 +63,7 @@ static struct voltagedomain omap4_voltdm_mpu = {
> - 	.write = omap4_prm_vcvp_write,
> - 	.rmw = omap4_prm_vcvp_rmw,
> - 	.vc = &omap4_vc_mpu,
> -+	.vfsm = &omap4_vdd_mpu_vfsm,
> - 	.vdd = &omap4_vdd_mpu_info,
> - };
> -
> -@@ -76,6 +74,7 @@ static struct voltagedomain omap4_voltdm_iva = {
> - 	.write = omap4_prm_vcvp_write,
> - 	.rmw = omap4_prm_vcvp_rmw,
> - 	.vc = &omap4_vc_iva,
> -+	.vfsm = &omap4_vdd_iva_vfsm,
> - 	.vdd = &omap4_vdd_iva_info,
> - };
> -
> -@@ -86,6 +85,7 @@ static struct voltagedomain omap4_voltdm_core = {
> - 	.write = omap4_prm_vcvp_write,
> - 	.rmw = omap4_prm_vcvp_rmw,
> - 	.vc = &omap4_vc_core,
> -+	.vfsm = &omap4_vdd_core_vfsm,
> - 	.vdd = &omap4_vdd_core_info,
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0122-OMAP3-VC-
> move-on-onlp-ret-off-command-configuration-.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0122-OMAP3-VC-move-on-onlp-ret-off-
> command-configuration-.patch
> deleted file mode 100644
> index 00085fd..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0122-OMAP3-VC-move-on-
> onlp-ret-off-command-configuration-.patch
> +++ /dev/null
> @@ -1,83 +0,0 @@
> -From 998b0b0ef5013478d128a2b1a4f435b94394a1a5 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Tue, 29 Mar 2011 15:14:38 -0700
> -Subject: [PATCH 122/149] OMAP3+: VC: move on/onlp/ret/off command
> configuration into common init
> -
> -Configuring the on/onlp/ret/off command values is common to OMAP3 & 4.
> -Move from OMAP3-only init into common VC init.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c |   30 +++++++++++++-----------------
> - 1 files changed, 13 insertions(+), 17 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index d7415ea..7df4438 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -148,26 +148,11 @@ static void __init omap3_vfsm_init(struct
> voltagedomain *voltdm)
> -
> - static void __init omap3_vc_init_channel(struct voltagedomain *voltdm)
> - {
> --	struct omap_vc_channel *vc = voltdm->vc;
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	static bool is_initialized;
> --	u8 on_vsel, onlp_vsel, ret_vsel, off_vsel;
> --	u32 vc_val;
> -
> - 	if (is_initialized)
> - 		return;
> -
> --	/* Set up the on, inactive, retention and off voltage */
> --	on_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->on_volt);
> --	onlp_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->onlp_volt);
> --	ret_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->ret_volt);
> --	off_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->off_volt);
> --	vc_val	= ((on_vsel << vc->common->cmd_on_shift) |
> --		(onlp_vsel << vc->common->cmd_onlp_shift) |
> --		(ret_vsel << vc->common->cmd_ret_shift) |
> --		(off_vsel << vc->common->cmd_off_shift));
> --	voltdm->write(vc_val, vc->cmdval_reg);
> --
> - 	/*
> - 	 * Generic VC parameters init
> - 	 * XXX This data should be abstracted out
> -@@ -192,8 +177,6 @@ static void __init omap4_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	if (is_initialized)
> - 		return;
> -
> --	/* TODO: Configure setup times and CMD_VAL values*/
> --
> - 	/*
> - 	 * Generic VC parameters init
> - 	 * XXX This data should be abstracted out
> -@@ -214,6 +197,8 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - {
> - 	struct omap_vc_channel *vc = voltdm->vc;
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> -+	u8 on_vsel, onlp_vsel, ret_vsel, off_vsel;
> -+	u32 val;
> -
> - 	if (!vdd->pmic_info || !vdd->pmic_info->uv_to_vsel) {
> - 		pr_err("%s: PMIC info requried to configure vc for"
> -@@ -250,6 +235,17 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 			    vc->cmd_reg_addr << __ffs(vc-
> >smps_cmdra_mask),
> - 			    vc->common->smps_cmdra_reg);
> -
> -+	/* Set up the on, inactive, retention and off voltage */
> -+	on_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->on_volt);
> -+	onlp_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->onlp_volt);
> -+	ret_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->ret_volt);
> -+	off_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->off_volt);
> -+	val = ((on_vsel << vc->common->cmd_on_shift) |
> -+	       (onlp_vsel << vc->common->cmd_onlp_shift) |
> -+	       (ret_vsel << vc->common->cmd_ret_shift) |
> -+	       (off_vsel << vc->common->cmd_off_shift));
> -+	voltdm->write(val, vc->cmdval_reg);
> -+
> - 	/* Configure the setup times */
> - 	voltdm->rmw(voltdm->vfsm->voltsetup_mask,
> - 		    vc->setup_time << __ffs(voltdm->vfsm->voltsetup_mask),
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0123-OMAP3-VC-
> abstract-out-channel-configuration.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0123-OMAP3-VC-abstract-out-channel-configuration.patch
> deleted file mode 100644
> index ce09144..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0123-OMAP3-VC-abstract-
> out-channel-configuration.patch
> +++ /dev/null
> @@ -1,267 +0,0 @@
> -From 7f3361ef34caa14bf669907555a0bc7dbe92f8c9 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Tue, 29 Mar 2011 15:57:16 -0700
> -Subject: [PATCH 123/149] OMAP3+: VC: abstract out channel configuration
> -
> -VC channel configuration is programmed based on settings coming from
> -the PMIC configuration.
> -
> -Currently, the VC channel to PMIC mapping is a simple one-to-one
> -mapping.  Whenever a VC channel parameter is configured (i2c slave
> -addres, PMIC register address, on/ret/off command), the corresponding
> -bits are enabled in the VC channel configuration register.
> -
> -If necessary, the programmability of channel configuration settings
> -could be extended to board/PMIC files, however, because this patch
> -changes the channel configuration to be programmed based on existing
> -values from the PMIC settings, it may not be required.
> -
> -Also note that starting with OMAP4, where there are more than 2
> -channels, one channel is identified as the "default" channel.  When
> -any of the bits in the channel config for the other channels are zero,
> -it means to use the default channel.  The OMAP4 TRM (at least through
> -NDA version Q) is wrong in describing which is the default channel.
> -The default channel on OMAP4 is MPU, not CORE as decribed in the TRM.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c          |   70
> ++++++++++++++++++++++++++++++------
> - arch/arm/mach-omap2/vc.h          |    9 +++++
> - arch/arm/mach-omap2/vc3xxx_data.c |    3 ++
> - arch/arm/mach-omap2/vc44xx_data.c |    5 +++
> - 4 files changed, 75 insertions(+), 12 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index 7df4438..e413b97 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -10,6 +10,52 @@
> - #include "prm-regbits-44xx.h"
> - #include "prm44xx.h"
> -
> -+/*
> -+ * Channel configuration bits, common for OMAP3 & 4
> -+ * OMAP3 register: PRM_VC_CH_CONF
> -+ * OMAP4 register: PRM_VC_CFG_CHANNEL
> -+ */
> -+#define CFG_CHANNEL_SA    BIT(0)
> -+#define CFG_CHANNEL_RAV   BIT(1)
> -+#define CFG_CHANNEL_RAC   BIT(2)
> -+#define CFG_CHANNEL_RACEN BIT(3)
> -+#define CFG_CHANNEL_CMD   BIT(4)
> -+#define CFG_CHANNEL_MASK 0x3f
> -+
> -+/**
> -+ * omap_vc_config_channel - configure VC channel to PMIC mappings
> -+ * @voltdm: pointer to voltagdomain defining the desired VC channel
> -+ *
> -+ * Configures the VC channel to PMIC mappings for the following
> -+ * PMIC settings
> -+ * - i2c slave address (SA)
> -+ * - voltage configuration address (RAV)
> -+ * - command configuration address (RAC) and enable bit (RACEN)
> -+ * - command values for ON, ONLP, RET and OFF (CMD)
> -+ *
> -+ * This function currently only allows flexible configuration of the
> -+ * non-default channel.  Starting with OMAP4, there are more than 2
> -+ * channels, with one defined as the default (on OMAP4, it's MPU.)
> -+ * Only the non-default channel can be configured.
> -+ */
> -+static int omap_vc_config_channel(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_vc_channel *vc = voltdm->vc;
> -+
> -+	/*
> -+	 * For default channel, the only configurable bit is RACEN.
> -+	 * All others must stay at zero (see function comment above.)
> -+	 */
> -+	if (vc->flags & OMAP_VC_CHANNEL_DEFAULT)
> -+		vc->cfg_channel &= CFG_CHANNEL_RACEN;
> -+
> -+	voltdm->rmw(CFG_CHANNEL_MASK << vc->cfg_channel_sa_shift,
> -+		    vc->cfg_channel << vc->cfg_channel_sa_shift,
> -+		    vc->common->cfg_channel_reg);
> -+
> -+	return 0;
> -+}
> -+
> - /* Voltage scale and accessory APIs */
> - int omap_vc_pre_scale(struct voltagedomain *voltdm,
> - 		      unsigned long target_volt,
> -@@ -157,8 +203,6 @@ static void __init omap3_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	 * Generic VC parameters init
> - 	 * XXX This data should be abstracted out
> - 	 */
> --	voltdm->write(OMAP3430_CMD1_MASK | OMAP3430_RAV1_MASK,
> --		       OMAP3_PRM_VC_CH_CONF_OFFSET);
> - 	voltdm->write(OMAP3430_MCODE_SHIFT |
> OMAP3430_HSEN_MASK,
> - 		       OMAP3_PRM_VC_I2C_CFG_OFFSET);
> -
> -@@ -177,15 +221,6 @@ static void __init omap4_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	if (is_initialized)
> - 		return;
> -
> --	/*
> --	 * Generic VC parameters init
> --	 * XXX This data should be abstracted out
> --	 */
> --	vc_val = (OMAP4430_RAV_VDD_MPU_L_MASK |
> OMAP4430_CMD_VDD_MPU_L_MASK |
> --		  OMAP4430_RAV_VDD_IVA_L_MASK |
> OMAP4430_CMD_VDD_IVA_L_MASK |
> --		  OMAP4430_RAV_VDD_CORE_L_MASK |
> OMAP4430_CMD_VDD_CORE_L_MASK);
> --	voltdm->write(vc_val, OMAP4_PRM_VC_CFG_CHANNEL_OFFSET);
> --
> - 	/* XXX These are magic numbers and do not belong! */
> - 	vc_val = (0x60 << OMAP4430_SCLL_SHIFT | 0x26 <<
> OMAP4430_SCLH_SHIFT);
> - 	voltdm->write(vc_val, OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET);
> -@@ -213,6 +248,8 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 		return;
> - 	}
> -
> -+	vc->cfg_channel = 0;
> -+
> - 	/* get PMIC/board specific settings */
> - 	vc->i2c_slave_addr = vdd->pmic_info->i2c_slave_addr;
> - 	vc->volt_reg_addr = vdd->pmic_info->volt_reg_addr;
> -@@ -223,6 +260,7 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	voltdm->rmw(vc->smps_sa_mask,
> - 		    vc->i2c_slave_addr << __ffs(vc->smps_sa_mask),
> - 		    vc->common->smps_sa_reg);
> -+	vc->cfg_channel |= CFG_CHANNEL_SA;
> -
> - 	/*
> - 	 * Configure the PMIC register addresses.
> -@@ -230,10 +268,14 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	voltdm->rmw(vc->smps_volra_mask,
> - 		    vc->volt_reg_addr << __ffs(vc->smps_volra_mask),
> - 		    vc->common->smps_volra_reg);
> --	if (vc->cmd_reg_addr)
> -+	vc->cfg_channel |= CFG_CHANNEL_RAV;
> -+
> -+	if (vc->cmd_reg_addr) {
> - 		voltdm->rmw(vc->smps_cmdra_mask,
> - 			    vc->cmd_reg_addr << __ffs(vc-
> >smps_cmdra_mask),
> - 			    vc->common->smps_cmdra_reg);
> -+		vc->cfg_channel |= CFG_CHANNEL_RAC |
> CFG_CHANNEL_RACEN;
> -+	}
> -
> - 	/* Set up the on, inactive, retention and off voltage */
> - 	on_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->on_volt);
> -@@ -245,6 +287,10 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	       (ret_vsel << vc->common->cmd_ret_shift) |
> - 	       (off_vsel << vc->common->cmd_off_shift));
> - 	voltdm->write(val, vc->cmdval_reg);
> -+	vc->cfg_channel |= CFG_CHANNEL_CMD;
> -+
> -+	/* Channel configuration */
> -+	omap_vc_config_channel(voltdm);
> -
> - 	/* Configure the setup times */
> - 	voltdm->rmw(voltdm->vfsm->voltsetup_mask,
> -diff --git a/arch/arm/mach-omap2/vc.h b/arch/arm/mach-omap2/vc.h
> -index 45e63cf..604f5b6 100644
> ---- a/arch/arm/mach-omap2/vc.h
> -+++ b/arch/arm/mach-omap2/vc.h
> -@@ -53,20 +53,28 @@ struct omap_vc_common {
> - 	u8 cmd_onlp_shift;
> - 	u8 cmd_ret_shift;
> - 	u8 cmd_off_shift;
> -+	u8 cfg_channel_reg;
> - };
> -
> -+/* omap_vc_channel.flags values */
> -+#define OMAP_VC_CHANNEL_DEFAULT BIT(0)
> -+
> - /**
> -  * struct omap_vc_channel - VC per-instance data
> -+ * @flags: VC channel-specific flags (optional)
> -  * @common: pointer to VC common data for this platform
> -  * @smps_sa_mask: i2c slave address bitmask in the PRM_VC_SMPS_SA
> register
> -  * @smps_volra_mask: VOLRA* bitmask in the PRM_VC_VOL_RA register
> -  */
> - struct omap_vc_channel {
> -+	u8 flags;
> -+
> - 	/* channel state */
> - 	u16 i2c_slave_addr;
> - 	u16 volt_reg_addr;
> - 	u16 cmd_reg_addr;
> - 	u16 setup_time;
> -+	u8 cfg_channel;
> -
> - 	/* register access data */
> - 	const struct omap_vc_common *common;
> -@@ -74,6 +82,7 @@ struct omap_vc_channel {
> - 	u32 smps_volra_mask;
> - 	u32 smps_cmdra_mask;
> - 	u8 cmdval_reg;
> -+	u8 cfg_channel_sa_shift;
> - };
> -
> - extern struct omap_vc_channel omap3_vc_mpu;
> -diff --git a/arch/arm/mach-omap2/vc3xxx_data.c b/arch/arm/mach-
> omap2/vc3xxx_data.c
> -index df8bd5e..f4449eb 100644
> ---- a/arch/arm/mach-omap2/vc3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vc3xxx_data.c
> -@@ -43,6 +43,7 @@ static struct omap_vc_common omap3_vc_common = {
> - 	.cmd_onlp_shift	 = OMAP3430_VC_CMD_ONLP_SHIFT,
> - 	.cmd_ret_shift	 = OMAP3430_VC_CMD_RET_SHIFT,
> - 	.cmd_off_shift	 = OMAP3430_VC_CMD_OFF_SHIFT,
> -+	.cfg_channel_reg = OMAP3_PRM_VC_CH_CONF_OFFSET,
> - };
> -
> - struct omap_vc_channel omap3_vc_mpu = {
> -@@ -51,6 +52,7 @@ struct omap_vc_channel omap3_vc_mpu = {
> - 	.smps_sa_mask = OMAP3430_PRM_VC_SMPS_SA_SA0_MASK,
> - 	.smps_volra_mask = OMAP3430_VOLRA0_MASK,
> - 	.smps_cmdra_mask = OMAP3430_CMDRA0_MASK,
> -+	.cfg_channel_sa_shift = OMAP3430_PRM_VC_SMPS_SA_SA0_SHIFT,
> - };
> -
> - struct omap_vc_channel omap3_vc_core = {
> -@@ -59,4 +61,5 @@ struct omap_vc_channel omap3_vc_core = {
> - 	.smps_sa_mask = OMAP3430_PRM_VC_SMPS_SA_SA1_MASK,
> - 	.smps_volra_mask = OMAP3430_VOLRA1_MASK,
> - 	.smps_cmdra_mask = OMAP3430_CMDRA1_MASK,
> -+	.cfg_channel_sa_shift = OMAP3430_PRM_VC_SMPS_SA_SA1_SHIFT,
> - };
> -diff --git a/arch/arm/mach-omap2/vc44xx_data.c b/arch/arm/mach-
> omap2/vc44xx_data.c
> -index 5d104ff..1610bde 100644
> ---- a/arch/arm/mach-omap2/vc44xx_data.c
> -+++ b/arch/arm/mach-omap2/vc44xx_data.c
> -@@ -44,15 +44,18 @@ static const struct omap_vc_common
> omap4_vc_common = {
> - 	.cmd_onlp_shift = OMAP4430_ONLP_SHIFT,
> - 	.cmd_ret_shift = OMAP4430_RET_SHIFT,
> - 	.cmd_off_shift = OMAP4430_OFF_SHIFT,
> -+	.cfg_channel_reg = OMAP4_PRM_VC_CFG_CHANNEL_OFFSET,
> - };
> -
> - /* VC instance data for each controllable voltage line */
> - struct omap_vc_channel omap4_vc_mpu = {
> -+	.flags = OMAP_VC_CHANNEL_DEFAULT,
> - 	.common = &omap4_vc_common,
> - 	.cmdval_reg = OMAP4_PRM_VC_VAL_CMD_VDD_MPU_L_OFFSET,
> - 	.smps_sa_mask =
> OMAP4430_SA_VDD_MPU_L_PRM_VC_SMPS_SA_MASK,
> - 	.smps_volra_mask = OMAP4430_VOLRA_VDD_MPU_L_MASK,
> - 	.smps_cmdra_mask = OMAP4430_CMDRA_VDD_MPU_L_MASK,
> -+	.cfg_channel_sa_shift = OMAP4430_SA_VDD_MPU_L_SHIFT,
> - };
> -
> - struct omap_vc_channel omap4_vc_iva = {
> -@@ -61,6 +64,7 @@ struct omap_vc_channel omap4_vc_iva = {
> - 	.smps_sa_mask =
> OMAP4430_SA_VDD_IVA_L_PRM_VC_SMPS_SA_MASK,
> - 	.smps_volra_mask = OMAP4430_VOLRA_VDD_IVA_L_MASK,
> - 	.smps_cmdra_mask = OMAP4430_CMDRA_VDD_IVA_L_MASK,
> -+	.cfg_channel_sa_shift = OMAP4430_SA_VDD_IVA_L_SHIFT,
> - };
> -
> - struct omap_vc_channel omap4_vc_core = {
> -@@ -69,5 +73,6 @@ struct omap_vc_channel omap4_vc_core = {
> - 	.smps_sa_mask = OMAP4430_SA_VDD_CORE_L_0_6_MASK,
> - 	.smps_volra_mask = OMAP4430_VOLRA_VDD_CORE_L_MASK,
> - 	.smps_cmdra_mask = OMAP4430_CMDRA_VDD_CORE_L_MASK,
> -+	.cfg_channel_sa_shift = OMAP4430_SA_VDD_CORE_L_SHIFT,
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0124-OMAP3-
> voltage-domain-move-PMIC-struct-from-vdd_info-.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0124-OMAP3-voltage-domain-move-
> PMIC-struct-from-vdd_info-.patch
> deleted file mode 100644
> index 9c5fbe3..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0124-OMAP3-voltage-
> domain-move-PMIC-struct-from-vdd_info-.patch
> +++ /dev/null
> @@ -1,394 +0,0 @@
> -From 94945494c16d0ffd7b52b12492068abf5310654d Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Wed, 30 Mar 2011 11:01:10 -0700
> -Subject: [PATCH 124/149] OMAP3+: voltage domain: move PMIC struct from
> vdd_info into struct voltagedomain
> -
> -Move structure containing PMIC configurable settings into struct
> -voltagedomain.  In the process, rename from omap_volt_pmic_info to
> -omap_voltdm_pmic (_info suffix is not helpful.)
> -
> -No functional changes.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/omap_twl.c |   28 ++++++++++++++--------------
> - arch/arm/mach-omap2/vc.c       |   29 ++++++++++++++---------------
> - arch/arm/mach-omap2/voltage.c  |   29 ++++++++++++-----------------
> - arch/arm/mach-omap2/voltage.h  |   12 +++++-------
> - arch/arm/mach-omap2/vp.c       |   13 ++++++-------
> - 5 files changed, 51 insertions(+), 60 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-
> omap2/omap_twl.c
> -index 3249fe3..e467d45 100644
> ---- a/arch/arm/mach-omap2/omap_twl.c
> -+++ b/arch/arm/mach-omap2/omap_twl.c
> -@@ -143,7 +143,7 @@ static u8 twl6030_uv_to_vsel(unsigned long uv)
> - 		return DIV_ROUND_UP(uv - 600000, 12500) + 1;
> - }
> -
> --static struct omap_volt_pmic_info omap3_mpu_volt_info = {
> -+static struct omap_voltdm_pmic omap3_mpu_pmic = {
> - 	.slew_rate		= 4000,
> - 	.step_size		= 12500,
> - 	.on_volt		= 1200000,
> -@@ -163,7 +163,7 @@ static struct omap_volt_pmic_info
> omap3_mpu_volt_info = {
> - 	.uv_to_vsel		= twl4030_uv_to_vsel,
> - };
> -
> --static struct omap_volt_pmic_info omap3_core_volt_info = {
> -+static struct omap_voltdm_pmic omap3_core_pmic = {
> - 	.slew_rate		= 4000,
> - 	.step_size		= 12500,
> - 	.on_volt                = 1200000,
> -@@ -183,7 +183,7 @@ static struct omap_volt_pmic_info
> omap3_core_volt_info = {
> - 	.uv_to_vsel		= twl4030_uv_to_vsel,
> - };
> -
> --static struct omap_volt_pmic_info omap4_mpu_volt_info = {
> -+static struct omap_voltdm_pmic omap4_mpu_pmic = {
> - 	.slew_rate		= 4000,
> - 	.step_size		= 12500,
> - 	.on_volt		= 1350000,
> -@@ -203,7 +203,7 @@ static struct omap_volt_pmic_info
> omap4_mpu_volt_info = {
> - 	.uv_to_vsel		= twl6030_uv_to_vsel,
> - };
> -
> --static struct omap_volt_pmic_info omap4_iva_volt_info = {
> -+static struct omap_voltdm_pmic omap4_iva_pmic = {
> - 	.slew_rate		= 4000,
> - 	.step_size		= 12500,
> - 	.on_volt		= 1100000,
> -@@ -223,7 +223,7 @@ static struct omap_volt_pmic_info
> omap4_iva_volt_info = {
> - 	.uv_to_vsel		= twl6030_uv_to_vsel,
> - };
> -
> --static struct omap_volt_pmic_info omap4_core_volt_info = {
> -+static struct omap_voltdm_pmic omap4_core_pmic = {
> - 	.slew_rate		= 4000,
> - 	.step_size		= 12500,
> - 	.on_volt		= 1100000,
> -@@ -251,13 +251,13 @@ int __init omap4_twl_init(void)
> - 		return -ENODEV;
> -
> - 	voltdm = voltdm_lookup("mpu");
> --	omap_voltage_register_pmic(voltdm, &omap4_mpu_volt_info);
> -+	omap_voltage_register_pmic(voltdm, &omap4_mpu_pmic);
> -
> - 	voltdm = voltdm_lookup("iva");
> --	omap_voltage_register_pmic(voltdm, &omap4_iva_volt_info);
> -+	omap_voltage_register_pmic(voltdm, &omap4_iva_pmic);
> -
> - 	voltdm = voltdm_lookup("core");
> --	omap_voltage_register_pmic(voltdm, &omap4_core_volt_info);
> -+	omap_voltage_register_pmic(voltdm, &omap4_core_pmic);
> -
> - 	return 0;
> - }
> -@@ -270,10 +270,10 @@ int __init omap3_twl_init(void)
> - 		return -ENODEV;
> -
> - 	if (cpu_is_omap3630()) {
> --		omap3_mpu_volt_info.vp_vddmin =
> OMAP3630_VP1_VLIMITTO_VDDMIN;
> --		omap3_mpu_volt_info.vp_vddmax =
> OMAP3630_VP1_VLIMITTO_VDDMAX;
> --		omap3_core_volt_info.vp_vddmin =
> OMAP3630_VP2_VLIMITTO_VDDMIN;
> --		omap3_core_volt_info.vp_vddmax =
> OMAP3630_VP2_VLIMITTO_VDDMAX;
> -+		omap3_mpu_pmic.vp_vddmin =
> OMAP3630_VP1_VLIMITTO_VDDMIN;
> -+		omap3_mpu_pmic.vp_vddmax =
> OMAP3630_VP1_VLIMITTO_VDDMAX;
> -+		omap3_core_pmic.vp_vddmin =
> OMAP3630_VP2_VLIMITTO_VDDMIN;
> -+		omap3_core_pmic.vp_vddmax =
> OMAP3630_VP2_VLIMITTO_VDDMAX;
> - 	}
> -
> - 	/*
> -@@ -289,10 +289,10 @@ int __init omap3_twl_init(void)
> - 		omap3_twl_set_sr_bit(true);
> -
> - 	voltdm = voltdm_lookup("mpu_iva");
> --	omap_voltage_register_pmic(voltdm, &omap3_mpu_volt_info);
> -+	omap_voltage_register_pmic(voltdm, &omap3_mpu_pmic);
> -
> - 	voltdm = voltdm_lookup("core");
> --	omap_voltage_register_pmic(voltdm, &omap3_core_volt_info);
> -+	omap_voltage_register_pmic(voltdm, &omap3_core_pmic);
> -
> - 	return 0;
> - }
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index e413b97..c431ca2 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -70,13 +70,13 @@ int omap_vc_pre_scale(struct voltagedomain
> *voltdm,
> - 	vp_common = vdd->vp_data->vp_common;
> -
> - 	/* Check if sufficient pmic info is available for this vdd */
> --	if (!vdd->pmic_info) {
> -+	if (!voltdm->pmic) {
> - 		pr_err("%s: Insufficient pmic info to scale the vdd_%s\n",
> - 			__func__, voltdm->name);
> - 		return -EINVAL;
> - 	}
> -
> --	if (!vdd->pmic_info->uv_to_vsel) {
> -+	if (!voltdm->pmic->uv_to_vsel) {
> - 		pr_err("%s: PMIC function to convert voltage in uV to"
> - 			"vsel not registered. Hence unable to scale voltage"
> - 			"for vdd_%s\n", __func__, voltdm->name);
> -@@ -94,7 +94,7 @@ int omap_vc_pre_scale(struct voltagedomain *voltdm,
> - 	if (IS_ERR(volt_data))
> - 		volt_data = NULL;
> -
> --	*target_vsel = vdd->pmic_info->uv_to_vsel(target_volt);
> -+	*target_vsel = voltdm->pmic->uv_to_vsel(target_volt);
> - 	*current_vsel = voltdm->read(vdd->vp_data->voltage);
> -
> - 	/* Setting the ON voltage to the new target voltage */
> -@@ -125,8 +125,8 @@ void omap_vc_post_scale(struct voltagedomain
> *voltdm,
> -
> - 	smps_steps = abs(target_vsel - current_vsel);
> - 	/* SMPS slew rate / step size. 2us added as buffer. */
> --	smps_delay = ((smps_steps * vdd->pmic_info->step_size) /
> --			vdd->pmic_info->slew_rate) + 2;
> -+	smps_delay = ((smps_steps * voltdm->pmic->step_size) /
> -+			voltdm->pmic->slew_rate) + 2;
> - 	udelay(smps_delay);
> -
> - 	vdd->curr_volt = target_volt;
> -@@ -231,11 +231,10 @@ static void __init omap4_vc_init_channel(struct
> voltagedomain *voltdm)
> - void __init omap_vc_init_channel(struct voltagedomain *voltdm)
> - {
> - 	struct omap_vc_channel *vc = voltdm->vc;
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u8 on_vsel, onlp_vsel, ret_vsel, off_vsel;
> - 	u32 val;
> -
> --	if (!vdd->pmic_info || !vdd->pmic_info->uv_to_vsel) {
> -+	if (!voltdm->pmic || !voltdm->pmic->uv_to_vsel) {
> - 		pr_err("%s: PMIC info requried to configure vc for"
> - 			"vdd_%s not populated.Hence cannot initialize vc\n",
> - 			__func__, voltdm->name);
> -@@ -251,10 +250,10 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	vc->cfg_channel = 0;
> -
> - 	/* get PMIC/board specific settings */
> --	vc->i2c_slave_addr = vdd->pmic_info->i2c_slave_addr;
> --	vc->volt_reg_addr = vdd->pmic_info->volt_reg_addr;
> --	vc->cmd_reg_addr = vdd->pmic_info->cmd_reg_addr;
> --	vc->setup_time = vdd->pmic_info->volt_setup_time;
> -+	vc->i2c_slave_addr = voltdm->pmic->i2c_slave_addr;
> -+	vc->volt_reg_addr = voltdm->pmic->volt_reg_addr;
> -+	vc->cmd_reg_addr = voltdm->pmic->cmd_reg_addr;
> -+	vc->setup_time = voltdm->pmic->volt_setup_time;
> -
> - 	/* Configure the i2c slave address for this VC */
> - 	voltdm->rmw(vc->smps_sa_mask,
> -@@ -278,10 +277,10 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	}
> -
> - 	/* Set up the on, inactive, retention and off voltage */
> --	on_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->on_volt);
> --	onlp_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->onlp_volt);
> --	ret_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->ret_volt);
> --	off_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->off_volt);
> -+	on_vsel = voltdm->pmic->uv_to_vsel(voltdm->pmic->on_volt);
> -+	onlp_vsel = voltdm->pmic->uv_to_vsel(voltdm->pmic->onlp_volt);
> -+	ret_vsel = voltdm->pmic->uv_to_vsel(voltdm->pmic->ret_volt);
> -+	off_vsel = voltdm->pmic->uv_to_vsel(voltdm->pmic->off_volt);
> - 	val = ((on_vsel << vc->common->cmd_on_shift) |
> - 	       (onlp_vsel << vc->common->cmd_onlp_shift) |
> - 	       (ret_vsel << vc->common->cmd_ret_shift) |
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 9f9f014..94f7fc4 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -84,20 +84,20 @@ static int __init _config_common_vdd_data(struct
> voltagedomain *voltdm)
> - 	vdd->vp_enabled = false;
> -
> - 	vdd->vp_rt_data.vpconfig_erroroffset =
> --		(vdd->pmic_info->vp_erroroffset <<
> -+		(voltdm->pmic->vp_erroroffset <<
> - 		 vdd->vp_data->vp_common->vpconfig_erroroffset_shift);
> -
> --	timeout_val = (sys_clk_speed * vdd->pmic_info->vp_timeout_us) /
> 1000;
> -+	timeout_val = (sys_clk_speed * voltdm->pmic->vp_timeout_us) / 1000;
> - 	vdd->vp_rt_data.vlimitto_timeout = timeout_val;
> --	vdd->vp_rt_data.vlimitto_vddmin = vdd->pmic_info->vp_vddmin;
> --	vdd->vp_rt_data.vlimitto_vddmax = vdd->pmic_info->vp_vddmax;
> -+	vdd->vp_rt_data.vlimitto_vddmin = voltdm->pmic->vp_vddmin;
> -+	vdd->vp_rt_data.vlimitto_vddmax = voltdm->pmic->vp_vddmax;
> -
> --	waittime = ((vdd->pmic_info->step_size / vdd->pmic_info->slew_rate)
> *
> -+	waittime = ((voltdm->pmic->step_size / voltdm->pmic->slew_rate) *
> - 				sys_clk_speed) / 1000;
> - 	vdd->vp_rt_data.vstepmin_smpswaittimemin = waittime;
> - 	vdd->vp_rt_data.vstepmax_smpswaittimemax = waittime;
> --	vdd->vp_rt_data.vstepmin_stepmin = vdd->pmic_info->vp_vstepmin;
> --	vdd->vp_rt_data.vstepmax_stepmax = vdd->pmic_info->vp_vstepmax;
> -+	vdd->vp_rt_data.vstepmin_stepmin = voltdm->pmic->vp_vstepmin;
> -+	vdd->vp_rt_data.vstepmax_stepmax = voltdm->pmic->vp_vstepmax;
> -
> - 	return 0;
> - }
> -@@ -149,10 +149,9 @@ static void __init vdd_debugfs_init(struct
> voltagedomain *voltdm)
> -
> - static int __init omap_vdd_data_configure(struct voltagedomain *voltdm)
> - {
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	int ret = -EINVAL;
> -
> --	if (!vdd->pmic_info) {
> -+	if (!voltdm->pmic) {
> - 		pr_err("%s: PMIC info requried to configure vdd_%s not"
> - 			"populated.Hence cannot initialize vdd_%s\n",
> - 			__func__, voltdm->name, voltdm->name);
> -@@ -324,24 +323,20 @@ struct omap_volt_data
> *omap_voltage_get_voltdata(struct voltagedomain *voltdm,
> -  * omap_voltage_register_pmic() - API to register PMIC specific data
> -  * @voltdm:	pointer to the VDD for which the PMIC specific data is
> -  *		to be registered
> -- * @pmic_info:	the structure containing pmic info
> -+ * @pmic:	the structure containing pmic info
> -  *
> -  * This API is to be called by the SOC/PMIC file to specify the
> -- * pmic specific info as present in omap_volt_pmic_info structure.
> -+ * pmic specific info as present in omap_voltdm_pmic structure.
> -  */
> - int omap_voltage_register_pmic(struct voltagedomain *voltdm,
> --		struct omap_volt_pmic_info *pmic_info)
> -+			       struct omap_voltdm_pmic *pmic)
> - {
> --	struct omap_vdd_info *vdd;
> --
> - 	if (!voltdm || IS_ERR(voltdm)) {
> - 		pr_warning("%s: VDD specified does not exist!\n", __func__);
> - 		return -EINVAL;
> - 	}
> -
> --	vdd = voltdm->vdd;
> --
> --	vdd->pmic_info = pmic_info;
> -+	voltdm->pmic = pmic;
> -
> - 	return 0;
> - }
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 2b2ab56..72a0255 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -68,6 +68,7 @@ struct voltagedomain {
> - 	struct list_head pwrdm_list;
> - 	struct omap_vc_channel *vc;
> - 	const struct omap_vfsm_instance *vfsm;
> -+	struct omap_voltdm_pmic *pmic;
> -
> - 	/* VC/VP register access functions: SoC specific */
> - 	u32 (*read) (u8 offset);
> -@@ -97,13 +98,13 @@ struct omap_volt_data {
> - };
> -
> - /**
> -- * struct omap_volt_pmic_info - PMIC specific data required by voltage driver.
> -+ * struct omap_voltdm_pmic - PMIC specific data required by voltage driver.
> -  * @slew_rate:	PMIC slew rate (in uv/us)
> -  * @step_size:	PMIC voltage step size (in uv)
> -  * @vsel_to_uv:	PMIC API to convert vsel value to actual voltage in uV.
> -  * @uv_to_vsel:	PMIC API to convert voltage in uV to vsel value.
> -  */
> --struct omap_volt_pmic_info {
> -+struct omap_voltdm_pmic {
> - 	int slew_rate;
> - 	int step_size;
> - 	u32 on_volt;
> -@@ -129,8 +130,6 @@ struct omap_volt_pmic_info {
> -  *
> -  * @volt_data		: voltage table having the distinct voltages supported
> -  *			  by the domain and other associated per voltage data.
> -- * @pmic_info		: pmic specific parameters which should be populted by
> -- *			  the pmic drivers.
> -  * @vp_data		: the register values, shifts, masks for various
> -  *			  vp registers
> -  * @vp_rt_data          : VP data derived at runtime, not predefined
> -@@ -141,7 +140,6 @@ struct omap_volt_pmic_info {
> -  */
> - struct omap_vdd_info {
> - 	struct omap_volt_data *volt_data;
> --	struct omap_volt_pmic_info *pmic_info;
> - 	struct omap_vp_instance_data *vp_data;
> - 	struct omap_vp_runtime_data vp_rt_data;
> - 	struct dentry *debug_dir;
> -@@ -163,13 +161,13 @@ unsigned long omap_voltage_get_nom_volt(struct
> voltagedomain *voltdm);
> - struct dentry *omap_voltage_get_dbgdir(struct voltagedomain *voltdm);
> - #ifdef CONFIG_PM
> - int omap_voltage_register_pmic(struct voltagedomain *voltdm,
> --		struct omap_volt_pmic_info *pmic_info);
> -+			       struct omap_voltdm_pmic *pmic);
> - void omap_change_voltscale_method(struct voltagedomain *voltdm,
> - 		int voltscale_method);
> - int omap_voltage_late_init(void);
> - #else
> - static inline int omap_voltage_register_pmic(struct voltagedomain *voltdm,
> --		struct omap_volt_pmic_info *pmic_info)
> -+					     struct omap_voltdm_pmic *pmic)
> - {
> - 	return -EINVAL;
> - }
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index 88ac742..a3afcbe 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -18,7 +18,6 @@ static void vp_latch_vsel(struct voltagedomain *voltdm)
> - 	u32 vpconfig;
> - 	unsigned long uvdc;
> - 	char vsel;
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> -
> - 	uvdc = omap_voltage_get_nom_volt(voltdm);
> - 	if (!uvdc) {
> -@@ -27,13 +26,13 @@ static void vp_latch_vsel(struct voltagedomain
> *voltdm)
> - 		return;
> - 	}
> -
> --	if (!vdd->pmic_info || !vdd->pmic_info->uv_to_vsel) {
> -+	if (!voltdm->pmic || !voltdm->pmic->uv_to_vsel) {
> - 		pr_warning("%s: PMIC function to convert voltage in uV to"
> - 			" vsel not registered\n", __func__);
> - 		return;
> - 	}
> -
> --	vsel = vdd->pmic_info->uv_to_vsel(uvdc);
> -+	vsel = voltdm->pmic->uv_to_vsel(uvdc);
> -
> - 	vpconfig = voltdm->read(vp->vpconfig);
> - 	vpconfig &= ~(vp->vp_common->vpconfig_initvoltage_mask |
> -@@ -206,13 +205,13 @@ unsigned long omap_vp_get_curr_volt(struct
> voltagedomain *voltdm)
> -
> - 	curr_vsel = voltdm->read(vp->voltage);
> -
> --	if (!vdd->pmic_info || !vdd->pmic_info->vsel_to_uv) {
> -+	if (!voltdm->pmic || !voltdm->pmic->vsel_to_uv) {
> - 		pr_warning("%s: PMIC function to convert vsel to voltage"
> - 			"in uV not registerd\n", __func__);
> - 		return 0;
> - 	}
> -
> --	return vdd->pmic_info->vsel_to_uv(curr_vsel);
> -+	return voltdm->pmic->vsel_to_uv(curr_vsel);
> - }
> -
> - /**
> -@@ -323,13 +322,13 @@ static int vp_volt_debug_get(void *data, u64 *val)
> -
> - 	vsel = voltdm->read(vp->voltage);
> -
> --	if (!vdd->pmic_info->vsel_to_uv) {
> -+	if (!voltdm->pmic->vsel_to_uv) {
> - 		pr_warning("PMIC function to convert vsel to voltage"
> - 			"in uV not registerd\n");
> - 		return -EINVAL;
> - 	}
> -
> --	*val = vdd->pmic_info->vsel_to_uv(vsel);
> -+	*val = voltdm->pmic->vsel_to_uv(vsel);
> - 	return 0;
> - }
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0125-OMAP3-VC-
> make-I2C-config-programmable-with-PMIC-spec.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0125-OMAP3-VC-make-I2C-config-
> programmable-with-PMIC-spec.patch
> deleted file mode 100644
> index ee62874..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0125-OMAP3-VC-make-
> I2C-config-programmable-with-PMIC-spec.patch
> +++ /dev/null
> @@ -1,221 +0,0 @@
> -From ecf26111e3d83dd4face7fa8f4327489775d1dc8 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Wed, 30 Mar 2011 16:36:30 -0700
> -Subject: [PATCH 125/149] OMAP3+: VC: make I2C config programmable with
> PMIC-specific settings
> -
> -Remove hard-coded I2C configuration in favor of settings that can be
> -configured from PMIC-specific values.  Currently only high-speed mode
> -and the master-code value are supported, since they were the only
> -fields currently used, but extending this is now trivial.
> -
> -Thanks to Nishanth Menon <nm at ti.com> for reporting/fixing a sparse
> -problem and making omap_vc_i2c_init() static, as well as finding and
> -fixing a problem with the shift/mask of mcode.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/omap_twl.c    |    4 +++
> - arch/arm/mach-omap2/vc.c          |   51
> +++++++++++++++++++++++++++++++-----
> - arch/arm/mach-omap2/vc.h          |    7 +++++
> - arch/arm/mach-omap2/vc3xxx_data.c |    3 ++
> - arch/arm/mach-omap2/vc44xx_data.c |    3 ++
> - arch/arm/mach-omap2/voltage.h     |    4 +++
> - 6 files changed, 65 insertions(+), 7 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-
> omap2/omap_twl.c
> -index e467d45..6b247d1 100644
> ---- a/arch/arm/mach-omap2/omap_twl.c
> -+++ b/arch/arm/mach-omap2/omap_twl.c
> -@@ -159,6 +159,7 @@ static struct omap_voltdm_pmic omap3_mpu_pmic =
> {
> - 	.vp_timeout_us		= OMAP3_VP_VLIMITTO_TIMEOUT_US,
> - 	.i2c_slave_addr		= OMAP3_SRI2C_SLAVE_ADDR,
> - 	.volt_reg_addr		= OMAP3_VDD_MPU_SR_CONTROL_REG,
> -+	.i2c_high_speed		= true,
> - 	.vsel_to_uv		= twl4030_vsel_to_uv,
> - 	.uv_to_vsel		= twl4030_uv_to_vsel,
> - };
> -@@ -179,6 +180,7 @@ static struct omap_voltdm_pmic omap3_core_pmic =
> {
> - 	.vp_timeout_us		= OMAP3_VP_VLIMITTO_TIMEOUT_US,
> - 	.i2c_slave_addr		= OMAP3_SRI2C_SLAVE_ADDR,
> - 	.volt_reg_addr		= OMAP3_VDD_CORE_SR_CONTROL_REG,
> -+	.i2c_high_speed		= true,
> - 	.vsel_to_uv		= twl4030_vsel_to_uv,
> - 	.uv_to_vsel		= twl4030_uv_to_vsel,
> - };
> -@@ -199,6 +201,7 @@ static struct omap_voltdm_pmic omap4_mpu_pmic =
> {
> - 	.vp_timeout_us		= OMAP4_VP_VLIMITTO_TIMEOUT_US,
> - 	.i2c_slave_addr		= OMAP4_SRI2C_SLAVE_ADDR,
> - 	.volt_reg_addr		= OMAP4_VDD_MPU_SR_VOLT_REG,
> -+	.i2c_high_speed		= true,
> - 	.vsel_to_uv		= twl6030_vsel_to_uv,
> - 	.uv_to_vsel		= twl6030_uv_to_vsel,
> - };
> -@@ -219,6 +222,7 @@ static struct omap_voltdm_pmic omap4_iva_pmic = {
> - 	.vp_timeout_us		= OMAP4_VP_VLIMITTO_TIMEOUT_US,
> - 	.i2c_slave_addr		= OMAP4_SRI2C_SLAVE_ADDR,
> - 	.volt_reg_addr		= OMAP4_VDD_IVA_SR_VOLT_REG,
> -+	.i2c_high_speed		= true,
> - 	.vsel_to_uv		= twl6030_vsel_to_uv,
> - 	.uv_to_vsel		= twl6030_uv_to_vsel,
> - };
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index c431ca2..97a4c6c 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -199,13 +199,6 @@ static void __init omap3_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	if (is_initialized)
> - 		return;
> -
> --	/*
> --	 * Generic VC parameters init
> --	 * XXX This data should be abstracted out
> --	 */
> --	voltdm->write(OMAP3430_MCODE_SHIFT |
> OMAP3430_HSEN_MASK,
> --		       OMAP3_PRM_VC_I2C_CFG_OFFSET);
> --
> - 	omap3_vfsm_init(voltdm);
> -
> - 	is_initialized = true;
> -@@ -228,6 +221,48 @@ static void __init omap4_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	is_initialized = true;
> - }
> -
> -+/**
> -+ * omap_vc_i2c_init - initialize I2C interface to PMIC
> -+ * @voltdm: voltage domain containing VC data
> -+ *
> -+ * Use PMIC supplied seetings for I2C high-speed mode and
> -+ * master code (if set) and program the VC I2C configuration
> -+ * register.
> -+ *
> -+ * The VC I2C configuration is common to all VC channels,
> -+ * so this function only configures I2C for the first VC
> -+ * channel registers.  All other VC channels will use the
> -+ * same configuration.
> -+ */
> -+static void __init omap_vc_i2c_init(struct voltagedomain *voltdm)
> -+{
> -+	struct omap_vc_channel *vc = voltdm->vc;
> -+	static bool initialized;
> -+	static bool i2c_high_speed;
> -+	u8 mcode;
> -+
> -+	if (initialized) {
> -+		if (voltdm->pmic->i2c_high_speed != i2c_high_speed)
> -+			pr_warn("%s: I2C config for all channels must match.",
> -+				__func__);
> -+		return;
> -+	}
> -+
> -+	i2c_high_speed = voltdm->pmic->i2c_high_speed;
> -+	if (i2c_high_speed)
> -+		voltdm->rmw(vc->common->i2c_cfg_hsen_mask,
> -+			    vc->common->i2c_cfg_hsen_mask,
> -+			    vc->common->i2c_cfg_reg);
> -+
> -+	mcode = voltdm->pmic->i2c_mcode;
> -+	if (mcode)
> -+		voltdm->rmw(vc->common->i2c_mcode_mask,
> -+			    mcode << __ffs(vc->common->i2c_mcode_mask),
> -+			    vc->common->i2c_cfg_reg);
> -+
> -+	initialized = true;
> -+}
> -+
> - void __init omap_vc_init_channel(struct voltagedomain *voltdm)
> - {
> - 	struct omap_vc_channel *vc = voltdm->vc;
> -@@ -296,6 +331,8 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 		    vc->setup_time << __ffs(voltdm->vfsm->voltsetup_mask),
> - 		    voltdm->vfsm->voltsetup_reg);
> -
> -+	omap_vc_i2c_init(voltdm);
> -+
> - 	if (cpu_is_omap34xx())
> - 		omap3_vc_init_channel(voltdm);
> - 	else if (cpu_is_omap44xx())
> -diff --git a/arch/arm/mach-omap2/vc.h b/arch/arm/mach-omap2/vc.h
> -index 604f5b6..c577f28 100644
> ---- a/arch/arm/mach-omap2/vc.h
> -+++ b/arch/arm/mach-omap2/vc.h
> -@@ -35,6 +35,9 @@ struct voltagedomain;
> -  * @cmd_onlp_shift: ONLP field shift in PRM_VC_CMD_VAL_* register
> -  * @cmd_ret_shift: RET field shift in PRM_VC_CMD_VAL_* register
> -  * @cmd_off_shift: OFF field shift in PRM_VC_CMD_VAL_* register
> -+ * @i2c_cfg_reg: I2C configuration register offset
> -+ * @i2c_cfg_hsen_mask: high-speed mode bit field mask in I2C config register
> -+ * @i2c_mcode_mask: MCODE field mask for I2C config register
> -  *
> -  * XXX One of cmd_on_mask and cmd_on_shift are not needed
> -  * XXX VALID should probably be a shift, not a mask
> -@@ -54,6 +57,9 @@ struct omap_vc_common {
> - 	u8 cmd_ret_shift;
> - 	u8 cmd_off_shift;
> - 	u8 cfg_channel_reg;
> -+	u8 i2c_cfg_reg;
> -+	u8 i2c_cfg_hsen_mask;
> -+	u8 i2c_mcode_mask;
> - };
> -
> - /* omap_vc_channel.flags values */
> -@@ -75,6 +81,7 @@ struct omap_vc_channel {
> - 	u16 cmd_reg_addr;
> - 	u16 setup_time;
> - 	u8 cfg_channel;
> -+	bool i2c_high_speed;
> -
> - 	/* register access data */
> - 	const struct omap_vc_common *common;
> -diff --git a/arch/arm/mach-omap2/vc3xxx_data.c b/arch/arm/mach-
> omap2/vc3xxx_data.c
> -index f4449eb..95d7701 100644
> ---- a/arch/arm/mach-omap2/vc3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vc3xxx_data.c
> -@@ -44,6 +44,9 @@ static struct omap_vc_common omap3_vc_common = {
> - 	.cmd_ret_shift	 = OMAP3430_VC_CMD_RET_SHIFT,
> - 	.cmd_off_shift	 = OMAP3430_VC_CMD_OFF_SHIFT,
> - 	.cfg_channel_reg = OMAP3_PRM_VC_CH_CONF_OFFSET,
> -+	.i2c_cfg_hsen_mask = OMAP3430_HSEN_MASK,
> -+	.i2c_cfg_reg	 = OMAP3_PRM_VC_I2C_CFG_OFFSET,
> -+	.i2c_mcode_mask	 = OMAP3430_MCODE_MASK,
> - };
> -
> - struct omap_vc_channel omap3_vc_mpu = {
> -diff --git a/arch/arm/mach-omap2/vc44xx_data.c b/arch/arm/mach-
> omap2/vc44xx_data.c
> -index 1610bde..148be18 100644
> ---- a/arch/arm/mach-omap2/vc44xx_data.c
> -+++ b/arch/arm/mach-omap2/vc44xx_data.c
> -@@ -45,6 +45,9 @@ static const struct omap_vc_common
> omap4_vc_common = {
> - 	.cmd_ret_shift = OMAP4430_RET_SHIFT,
> - 	.cmd_off_shift = OMAP4430_OFF_SHIFT,
> - 	.cfg_channel_reg = OMAP4_PRM_VC_CFG_CHANNEL_OFFSET,
> -+	.i2c_cfg_reg = OMAP4_PRM_VC_CFG_I2C_MODE_OFFSET,
> -+	.i2c_cfg_hsen_mask = OMAP4430_HSMODEEN_MASK,
> -+	.i2c_mcode_mask	 = OMAP4430_HSMCODE_MASK,
> - };
> -
> - /* VC instance data for each controllable voltage line */
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 72a0255..a0ae5c6 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -101,6 +101,8 @@ struct omap_volt_data {
> -  * struct omap_voltdm_pmic - PMIC specific data required by voltage driver.
> -  * @slew_rate:	PMIC slew rate (in uv/us)
> -  * @step_size:	PMIC voltage step size (in uv)
> -+ * @i2c_high_speed: whether VC uses I2C high-speed mode to PMIC
> -+ * @i2c_mcode: master code value for I2C high-speed preamble transmission
> -  * @vsel_to_uv:	PMIC API to convert vsel value to actual voltage in uV.
> -  * @uv_to_vsel:	PMIC API to convert voltage in uV to vsel value.
> -  */
> -@@ -121,6 +123,8 @@ struct omap_voltdm_pmic {
> - 	u8 vp_vddmin;
> - 	u8 vp_vddmax;
> - 	u8 vp_timeout_us;
> -+	bool i2c_high_speed;
> -+	u8 i2c_mcode;
> - 	unsigned long (*vsel_to_uv) (const u8 vsel);
> - 	u8 (*uv_to_vsel) (unsigned long uV);
> - };
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0126-OMAP3-PM-VC-
> handle-mutant-channel-config-for-OMAP4-M.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0126-OMAP3-PM-VC-handle-mutant-
> channel-config-for-OMAP4-M.patch
> deleted file mode 100644
> index f8b0fcb..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0126-OMAP3-PM-VC-
> handle-mutant-channel-config-for-OMAP4-M.patch
> +++ /dev/null
> @@ -1,168 +0,0 @@
> -From dd6773950301f38c61e0039922c685f6e0542c47 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Thu, 2 Jun 2011 17:28:13 -0700
> -Subject: [PATCH 126/149] OMAP3+: PM: VC: handle mutant channel config for
> OMAP4 MPU channel
> -
> -On OMAP3+, all VC channels have the the same bitfield ordering for all
> -VC channels, except the OMAP4 MPU channel.  This appears to be a freak
> -accident as all other VC channel (including OMAP5) have the standard
> -configuration.  Handle the mutant case by adding a per-channel flag
> -to signal the deformity and handle it during VC init.
> -
> -Special thanks to Nishanth Menon <nm at ti.com> for finding this problem
> -and for proposing the initial solution.
> -
> -Cc: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c          |   64 +++++++++++++++++++++++++++++-
> ------
> - arch/arm/mach-omap2/vc.h          |    1 +
> - arch/arm/mach-omap2/vc44xx_data.c |    2 +-
> - 3 files changed, 53 insertions(+), 14 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index 97a4c6c..9e51782 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -10,17 +10,51 @@
> - #include "prm-regbits-44xx.h"
> - #include "prm44xx.h"
> -
> --/*
> -- * Channel configuration bits, common for OMAP3 & 4
> -+/**
> -+ * struct omap_vc_channel_cfg - describe the cfg_channel bitfield
> -+ * @sa: bit for slave address
> -+ * @rav: bit for voltage configuration register
> -+ * @rac: bit for command configuration register
> -+ * @racen: enable bit for RAC
> -+ * @cmd: bit for command value set selection
> -+ *
> -+ * Channel configuration bits, common for OMAP3+
> -  * OMAP3 register: PRM_VC_CH_CONF
> -  * OMAP4 register: PRM_VC_CFG_CHANNEL
> -+ * OMAP5 register: PRM_VC_SMPS_<voltdm>_CONFIG
> -  */
> --#define CFG_CHANNEL_SA    BIT(0)
> --#define CFG_CHANNEL_RAV   BIT(1)
> --#define CFG_CHANNEL_RAC   BIT(2)
> --#define CFG_CHANNEL_RACEN BIT(3)
> --#define CFG_CHANNEL_CMD   BIT(4)
> --#define CFG_CHANNEL_MASK 0x3f
> -+struct omap_vc_channel_cfg {
> -+	u8 sa;
> -+	u8 rav;
> -+	u8 rac;
> -+	u8 racen;
> -+	u8 cmd;
> -+};
> -+
> -+static struct omap_vc_channel_cfg vc_default_channel_cfg = {
> -+	.sa    = BIT(0),
> -+	.rav   = BIT(1),
> -+	.rac   = BIT(2),
> -+	.racen = BIT(3),
> -+	.cmd   = BIT(4),
> -+};
> -+
> -+/*
> -+ * On OMAP3+, all VC channels have the above default bitfield
> -+ * configuration, except the OMAP4 MPU channel.  This appears
> -+ * to be a freak accident as every other VC channel has the
> -+ * default configuration, thus creating a mutant channel config.
> -+ */
> -+static struct omap_vc_channel_cfg vc_mutant_channel_cfg = {
> -+	.sa    = BIT(0),
> -+	.rav   = BIT(2),
> -+	.rac   = BIT(3),
> -+	.racen = BIT(4),
> -+	.cmd   = BIT(1),
> -+};
> -+
> -+static struct omap_vc_channel_cfg *vc_cfg_bits;
> -+#define CFG_CHANNEL_MASK 0x1f
> -
> - /**
> -  * omap_vc_config_channel - configure VC channel to PMIC mappings
> -@@ -47,7 +81,7 @@ static int omap_vc_config_channel(struct voltagedomain
> *voltdm)
> - 	 * All others must stay at zero (see function comment above.)
> - 	 */
> - 	if (vc->flags & OMAP_VC_CHANNEL_DEFAULT)
> --		vc->cfg_channel &= CFG_CHANNEL_RACEN;
> -+		vc->cfg_channel &= vc_cfg_bits->racen;
> -
> - 	voltdm->rmw(CFG_CHANNEL_MASK << vc->cfg_channel_sa_shift,
> - 		    vc->cfg_channel << vc->cfg_channel_sa_shift,
> -@@ -283,6 +317,10 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	}
> -
> - 	vc->cfg_channel = 0;
> -+	if (vc->flags & OMAP_VC_CHANNEL_CFG_MUTANT)
> -+		vc_cfg_bits = &vc_mutant_channel_cfg;
> -+	else
> -+		vc_cfg_bits = &vc_default_channel_cfg;
> -
> - 	/* get PMIC/board specific settings */
> - 	vc->i2c_slave_addr = voltdm->pmic->i2c_slave_addr;
> -@@ -294,7 +332,7 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	voltdm->rmw(vc->smps_sa_mask,
> - 		    vc->i2c_slave_addr << __ffs(vc->smps_sa_mask),
> - 		    vc->common->smps_sa_reg);
> --	vc->cfg_channel |= CFG_CHANNEL_SA;
> -+	vc->cfg_channel |= vc_cfg_bits->sa;
> -
> - 	/*
> - 	 * Configure the PMIC register addresses.
> -@@ -302,13 +340,13 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	voltdm->rmw(vc->smps_volra_mask,
> - 		    vc->volt_reg_addr << __ffs(vc->smps_volra_mask),
> - 		    vc->common->smps_volra_reg);
> --	vc->cfg_channel |= CFG_CHANNEL_RAV;
> -+	vc->cfg_channel |= vc_cfg_bits->rav;
> -
> - 	if (vc->cmd_reg_addr) {
> - 		voltdm->rmw(vc->smps_cmdra_mask,
> - 			    vc->cmd_reg_addr << __ffs(vc-
> >smps_cmdra_mask),
> - 			    vc->common->smps_cmdra_reg);
> --		vc->cfg_channel |= CFG_CHANNEL_RAC |
> CFG_CHANNEL_RACEN;
> -+		vc->cfg_channel |= vc_cfg_bits->rac | vc_cfg_bits->racen;
> - 	}
> -
> - 	/* Set up the on, inactive, retention and off voltage */
> -@@ -321,7 +359,7 @@ void __init omap_vc_init_channel(struct
> voltagedomain *voltdm)
> - 	       (ret_vsel << vc->common->cmd_ret_shift) |
> - 	       (off_vsel << vc->common->cmd_off_shift));
> - 	voltdm->write(val, vc->cmdval_reg);
> --	vc->cfg_channel |= CFG_CHANNEL_CMD;
> -+	vc->cfg_channel |= vc_cfg_bits->cmd;
> -
> - 	/* Channel configuration */
> - 	omap_vc_config_channel(voltdm);
> -diff --git a/arch/arm/mach-omap2/vc.h b/arch/arm/mach-omap2/vc.h
> -index c577f28..ec50643 100644
> ---- a/arch/arm/mach-omap2/vc.h
> -+++ b/arch/arm/mach-omap2/vc.h
> -@@ -64,6 +64,7 @@ struct omap_vc_common {
> -
> - /* omap_vc_channel.flags values */
> - #define OMAP_VC_CHANNEL_DEFAULT BIT(0)
> -+#define OMAP_VC_CHANNEL_CFG_MUTANT BIT(1)
> -
> - /**
> -  * struct omap_vc_channel - VC per-instance data
> -diff --git a/arch/arm/mach-omap2/vc44xx_data.c b/arch/arm/mach-
> omap2/vc44xx_data.c
> -index 148be18..0a4fc37 100644
> ---- a/arch/arm/mach-omap2/vc44xx_data.c
> -+++ b/arch/arm/mach-omap2/vc44xx_data.c
> -@@ -52,7 +52,7 @@ static const struct omap_vc_common
> omap4_vc_common = {
> -
> - /* VC instance data for each controllable voltage line */
> - struct omap_vc_channel omap4_vc_mpu = {
> --	.flags = OMAP_VC_CHANNEL_DEFAULT,
> -+	.flags = OMAP_VC_CHANNEL_DEFAULT |
> OMAP_VC_CHANNEL_CFG_MUTANT,
> - 	.common = &omap4_vc_common,
> - 	.cmdval_reg = OMAP4_PRM_VC_VAL_CMD_VDD_MPU_L_OFFSET,
> - 	.smps_sa_mask =
> OMAP4430_SA_VDD_MPU_L_PRM_VC_SMPS_SA_MASK,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0127-OMAP3-VC-use-
> last-nominal-voltage-setting-to-get-cur.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0127-OMAP3-VC-use-last-nominal-voltage-setting-to-get-
> cur.patch
> deleted file mode 100644
> index 6992056..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0127-OMAP3-VC-use-last-
> nominal-voltage-setting-to-get-cur.patch
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -From a8ee49ce71fcdf4e85720adabe9aeed2850678cc Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 18 Jul 2011 15:31:00 -0700
> -Subject: [PATCH 127/149] OMAP3+: VC: use last nominal voltage setting to get
> current_vsel
> -
> -Instead of reading current vsel value from the VP's voltage register,
> -just use current nominal voltage translated into vsel via the PMIC.
> -
> -Doing this allows VC bypass scaling to work even without a VP configured.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index 9e51782..cee8fba 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -129,7 +129,7 @@ int omap_vc_pre_scale(struct voltagedomain
> *voltdm,
> - 		volt_data = NULL;
> -
> - 	*target_vsel = voltdm->pmic->uv_to_vsel(target_volt);
> --	*current_vsel = voltdm->read(vdd->vp_data->voltage);
> -+	*current_vsel = voltdm->pmic->uv_to_vsel(vdd->curr_volt);
> -
> - 	/* Setting the ON voltage to the new target voltage */
> - 	vc_cmdval = voltdm->read(vc->cmdval_reg);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0128-OMAP3-VP-
> cleanup-move-VP-instance-into-voltdm-misc.-.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0128-OMAP3-VP-cleanup-move-VP-
> instance-into-voltdm-misc.-.patch
> deleted file mode 100644
> index 1b153ca..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0128-OMAP3-VP-cleanup-
> move-VP-instance-into-voltdm-misc.-.patch
> +++ /dev/null
> @@ -1,643 +0,0 @@
> -From 00a526b77cb5b54dbf2086c63936629845b7f980 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 4 Apr 2011 15:25:07 -0700
> -Subject: [PATCH 128/149] OMAP3+: VP: cleanup: move VP instance into
> voltdm, misc. renames
> -
> -- move VP instance struct from vdd_info into struct voltage domain
> -- remove _data suffix from structure name
> -- rename vp_ prefix from vp_common field: accesses are now vp->common
> -- move vp_enabled bool from vdd_info into VP instance
> -- remove remaining references to omap_vdd_info
> -
> -No functional changes.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c                      |   11 +--
> - arch/arm/mach-omap2/voltage.c                 |    4 +-
> - arch/arm/mach-omap2/voltage.h                 |    6 +--
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |   10 +--
> - arch/arm/mach-omap2/voltagedomains44xx_data.c |   15 ++---
> - arch/arm/mach-omap2/vp.c                      |   88 ++++++++++++-------------
> - arch/arm/mach-omap2/vp.h                      |   24 ++++---
> - arch/arm/mach-omap2/vp3xxx_data.c             |   10 ++--
> - arch/arm/mach-omap2/vp44xx_data.c             |   14 ++--
> - 9 files changed, 83 insertions(+), 99 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index cee8fba..7058585 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -98,11 +98,8 @@ int omap_vc_pre_scale(struct voltagedomain *voltdm,
> - 	struct omap_vc_channel *vc = voltdm->vc;
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	struct omap_volt_data *volt_data;
> --	const struct omap_vp_common_data *vp_common;
> - 	u32 vc_cmdval, vp_errgain_val;
> -
> --	vp_common = vdd->vp_data->vp_common;
> --
> - 	/* Check if sufficient pmic info is available for this vdd */
> - 	if (!voltdm->pmic) {
> - 		pr_err("%s: Insufficient pmic info to scale the vdd_%s\n",
> -@@ -139,12 +136,12 @@ int omap_vc_pre_scale(struct voltagedomain
> *voltdm,
> -
> - 	/* Setting vp errorgain based on the voltage */
> - 	if (volt_data) {
> --		vp_errgain_val = voltdm->read(vdd->vp_data->vpconfig);
> -+		vp_errgain_val = voltdm->read(voltdm->vp->vpconfig);
> - 		vdd->vp_rt_data.vpconfig_errorgain = volt_data->vp_errgain;
> --		vp_errgain_val &= ~vp_common->vpconfig_errorgain_mask;
> -+		vp_errgain_val &= voltdm->vp->common-
> >vpconfig_errorgain_mask;
> - 		vp_errgain_val |= vdd->vp_rt_data.vpconfig_errorgain <<
> --			vp_common->vpconfig_errorgain_shift;
> --		voltdm->write(vp_errgain_val, vdd->vp_data->vpconfig);
> -+			voltdm->vp->common->vpconfig_errorgain_shift;
> -+		voltdm->write(vp_errgain_val, voltdm->vp->vpconfig);
> - 	}
> -
> - 	return 0;
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 94f7fc4..c22b53c 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -81,11 +81,11 @@ static int __init _config_common_vdd_data(struct
> voltagedomain *voltdm)
> -
> - 	/* Generic voltage parameters */
> - 	vdd->volt_scale = omap_vp_forceupdate_scale;
> --	vdd->vp_enabled = false;
> -+	voltdm->vp->enabled = false;
> -
> - 	vdd->vp_rt_data.vpconfig_erroroffset =
> - 		(voltdm->pmic->vp_erroroffset <<
> --		 vdd->vp_data->vp_common->vpconfig_erroroffset_shift);
> -+		 voltdm->vp->common->vpconfig_erroroffset_shift);
> -
> - 	timeout_val = (sys_clk_speed * voltdm->pmic->vp_timeout_us) / 1000;
> - 	vdd->vp_rt_data.vlimitto_timeout = timeout_val;
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index a0ae5c6..65f94c7 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -68,6 +68,7 @@ struct voltagedomain {
> - 	struct list_head pwrdm_list;
> - 	struct omap_vc_channel *vc;
> - 	const struct omap_vfsm_instance *vfsm;
> -+	struct omap_vp_instance *vp;
> - 	struct omap_voltdm_pmic *pmic;
> -
> - 	/* VC/VP register access functions: SoC specific */
> -@@ -134,21 +135,16 @@ struct omap_voltdm_pmic {
> -  *
> -  * @volt_data		: voltage table having the distinct voltages supported
> -  *			  by the domain and other associated per voltage data.
> -- * @vp_data		: the register values, shifts, masks for various
> -- *			  vp registers
> -  * @vp_rt_data          : VP data derived at runtime, not predefined
> -  * @debug_dir		: debug directory for this voltage domain.
> -  * @curr_volt		: current voltage for this vdd.
> -- * @vp_enabled		: flag to keep track of whether vp is enabled or
> not
> -  * @volt_scale		: API to scale the voltage of the vdd.
> -  */
> - struct omap_vdd_info {
> - 	struct omap_volt_data *volt_data;
> --	struct omap_vp_instance_data *vp_data;
> - 	struct omap_vp_runtime_data vp_rt_data;
> - 	struct dentry *debug_dir;
> - 	u32 curr_volt;
> --	bool vp_enabled;
> -
> - 	int (*volt_scale) (struct voltagedomain *voltdm,
> - 		unsigned long target_volt);
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index 4ea9a7b..4db2c6c 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -37,9 +37,7 @@ static const struct omap_vfsm_instance
> omap3_vdd1_vfsm = {
> - 	.voltsetup_mask = OMAP3430_SETUP_TIME1_MASK,
> - };
> -
> --static struct omap_vdd_info omap3_vdd1_info = {
> --	.vp_data = &omap3_vp1_data,
> --};
> -+static struct omap_vdd_info omap3_vdd1_info;
> -
> - static const struct omap_vfsm_instance omap3_vdd2_vfsm = {
> - 	.voltsetup_reg = OMAP3_PRM_VOLTSETUP1_OFFSET,
> -@@ -47,9 +45,7 @@ static const struct omap_vfsm_instance
> omap3_vdd2_vfsm = {
> - 	.voltsetup_mask = OMAP3430_SETUP_TIME2_MASK,
> - };
> -
> --static struct omap_vdd_info omap3_vdd2_info = {
> --	.vp_data = &omap3_vp2_data,
> --};
> -+static struct omap_vdd_info omap3_vdd2_info;
> -
> - static struct voltagedomain omap3_voltdm_mpu = {
> - 	.name = "mpu_iva",
> -@@ -59,6 +55,7 @@ static struct voltagedomain omap3_voltdm_mpu = {
> - 	.rmw = omap3_prm_vcvp_rmw,
> - 	.vc = &omap3_vc_mpu,
> - 	.vfsm = &omap3_vdd1_vfsm,
> -+	.vp = &omap3_vp_mpu,
> - 	.vdd = &omap3_vdd1_info,
> - };
> -
> -@@ -70,6 +67,7 @@ static struct voltagedomain omap3_voltdm_core = {
> - 	.rmw = omap3_prm_vcvp_rmw,
> - 	.vc = &omap3_vc_core,
> - 	.vfsm = &omap3_vdd2_vfsm,
> -+	.vp = &omap3_vp_core,
> - 	.vdd = &omap3_vdd2_info,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -index dd4bd22..3e7cb4e 100644
> ---- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -@@ -36,25 +36,19 @@ static const struct omap_vfsm_instance
> omap4_vdd_mpu_vfsm = {
> - 	.voltsetup_reg = OMAP4_PRM_VOLTSETUP_MPU_RET_SLEEP_OFFSET,
> - };
> -
> --static struct omap_vdd_info omap4_vdd_mpu_info = {
> --	.vp_data = &omap4_vp_mpu_data,
> --};
> -+static struct omap_vdd_info omap4_vdd_mpu_info;
> -
> - static const struct omap_vfsm_instance omap4_vdd_iva_vfsm = {
> - 	.voltsetup_reg = OMAP4_PRM_VOLTSETUP_IVA_RET_SLEEP_OFFSET,
> - };
> -
> --static struct omap_vdd_info omap4_vdd_iva_info = {
> --	.vp_data = &omap4_vp_iva_data,
> --};
> -+static struct omap_vdd_info omap4_vdd_iva_info;
> -
> - static const struct omap_vfsm_instance omap4_vdd_core_vfsm = {
> - 	.voltsetup_reg =
> OMAP4_PRM_VOLTSETUP_CORE_RET_SLEEP_OFFSET,
> - };
> -
> --static struct omap_vdd_info omap4_vdd_core_info = {
> --	.vp_data = &omap4_vp_core_data,
> --};
> -+static struct omap_vdd_info omap4_vdd_core_info;
> -
> - static struct voltagedomain omap4_voltdm_mpu = {
> - 	.name = "mpu",
> -@@ -64,6 +58,7 @@ static struct voltagedomain omap4_voltdm_mpu = {
> - 	.rmw = omap4_prm_vcvp_rmw,
> - 	.vc = &omap4_vc_mpu,
> - 	.vfsm = &omap4_vdd_mpu_vfsm,
> -+	.vp = &omap4_vp_mpu,
> - 	.vdd = &omap4_vdd_mpu_info,
> - };
> -
> -@@ -75,6 +70,7 @@ static struct voltagedomain omap4_voltdm_iva = {
> - 	.rmw = omap4_prm_vcvp_rmw,
> - 	.vc = &omap4_vc_iva,
> - 	.vfsm = &omap4_vdd_iva_vfsm,
> -+	.vp = &omap4_vp_iva,
> - 	.vdd = &omap4_vdd_iva_info,
> - };
> -
> -@@ -86,6 +82,7 @@ static struct voltagedomain omap4_voltdm_core = {
> - 	.rmw = omap4_prm_vcvp_rmw,
> - 	.vc = &omap4_vc_core,
> - 	.vfsm = &omap4_vdd_core_vfsm,
> -+	.vp = &omap4_vp_core,
> - 	.vdd = &omap4_vdd_core_info,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index a3afcbe..53d6018 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -14,7 +14,7 @@ static void __init vp_debugfs_init(struct voltagedomain
> *voltdm);
> -
> - static void vp_latch_vsel(struct voltagedomain *voltdm)
> - {
> --	struct omap_vp_instance_data *vp = voltdm->vdd->vp_data;
> -+	struct omap_vp_instance *vp = voltdm->vp;
> - 	u32 vpconfig;
> - 	unsigned long uvdc;
> - 	char vsel;
> -@@ -35,14 +35,14 @@ static void vp_latch_vsel(struct voltagedomain
> *voltdm)
> - 	vsel = voltdm->pmic->uv_to_vsel(uvdc);
> -
> - 	vpconfig = voltdm->read(vp->vpconfig);
> --	vpconfig &= ~(vp->vp_common->vpconfig_initvoltage_mask |
> --			vp->vp_common->vpconfig_initvdd);
> --	vpconfig |= vsel << vp->vp_common->vpconfig_initvoltage_shift;
> -+	vpconfig &= ~(vp->common->vpconfig_initvoltage_mask |
> -+			vp->common->vpconfig_initvdd);
> -+	vpconfig |= vsel << vp->common->vpconfig_initvoltage_shift;
> -
> - 	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	/* Trigger initVDD value copy to voltage processor */
> --	voltdm->write((vpconfig | vp->vp_common->vpconfig_initvdd),
> -+	voltdm->write((vpconfig | vp->common->vpconfig_initvdd),
> - 		       vp->vpconfig);
> -
> - 	/* Clear initVDD copy trigger bit */
> -@@ -52,7 +52,7 @@ static void vp_latch_vsel(struct voltagedomain *voltdm)
> - /* Generic voltage init functions */
> - void __init omap_vp_init(struct voltagedomain *voltdm)
> - {
> --	struct omap_vp_instance_data *vp = voltdm->vdd->vp_data;
> -+	struct omap_vp_instance *vp = voltdm->vp;
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u32 vp_val;
> -
> -@@ -64,28 +64,28 @@ void __init omap_vp_init(struct voltagedomain
> *voltdm)
> -
> - 	vp_val = vdd->vp_rt_data.vpconfig_erroroffset |
> - 		(vdd->vp_rt_data.vpconfig_errorgain <<
> --		vp->vp_common->vpconfig_errorgain_shift) |
> --		vp->vp_common->vpconfig_timeouten;
> -+		vp->common->vpconfig_errorgain_shift) |
> -+		vp->common->vpconfig_timeouten;
> - 	voltdm->write(vp_val, vp->vpconfig);
> -
> - 	vp_val = ((vdd->vp_rt_data.vstepmin_smpswaittimemin <<
> --		vp->vp_common->vstepmin_smpswaittimemin_shift) |
> -+		vp->common->vstepmin_smpswaittimemin_shift) |
> - 		(vdd->vp_rt_data.vstepmin_stepmin <<
> --		vp->vp_common->vstepmin_stepmin_shift));
> -+		vp->common->vstepmin_stepmin_shift));
> - 	voltdm->write(vp_val, vp->vstepmin);
> -
> - 	vp_val = ((vdd->vp_rt_data.vstepmax_smpswaittimemax <<
> --		vp->vp_common->vstepmax_smpswaittimemax_shift) |
> -+		vp->common->vstepmax_smpswaittimemax_shift) |
> - 		(vdd->vp_rt_data.vstepmax_stepmax <<
> --		vp->vp_common->vstepmax_stepmax_shift));
> -+		vp->common->vstepmax_stepmax_shift));
> - 	voltdm->write(vp_val, vp->vstepmax);
> -
> - 	vp_val = ((vdd->vp_rt_data.vlimitto_vddmax <<
> --		vp->vp_common->vlimitto_vddmax_shift) |
> -+		vp->common->vlimitto_vddmax_shift) |
> - 		(vdd->vp_rt_data.vlimitto_vddmin <<
> --		vp->vp_common->vlimitto_vddmin_shift) |
> -+		vp->common->vlimitto_vddmin_shift) |
> - 		(vdd->vp_rt_data.vlimitto_timeout <<
> --		vp->vp_common->vlimitto_timeout_shift));
> -+		vp->common->vlimitto_timeout_shift));
> - 	voltdm->write(vp_val, vp->vlimitto);
> -
> - 	vp_debugfs_init(voltdm);
> -@@ -95,7 +95,7 @@ void __init omap_vp_init(struct voltagedomain *voltdm)
> - int omap_vp_forceupdate_scale(struct voltagedomain *voltdm,
> - 			      unsigned long target_volt)
> - {
> --	struct omap_vp_instance_data *vp = voltdm->vdd->vp_data;
> -+	struct omap_vp_instance *vp = voltdm->vp;
> - 	u32 vpconfig;
> - 	u8 target_vsel, current_vsel;
> - 	int ret, timeout = 0;
> -@@ -109,8 +109,8 @@ int omap_vp_forceupdate_scale(struct voltagedomain
> *voltdm,
> - 	 * is <3us
> - 	 */
> - 	while (timeout++ < VP_TRANXDONE_TIMEOUT) {
> --		vp->vp_common->ops->clear_txdone(vp->id);
> --		if (!vp->vp_common->ops->check_txdone(vp->id))
> -+		vp->common->ops->clear_txdone(vp->id);
> -+		if (!vp->common->ops->check_txdone(vp->id))
> - 			break;
> - 		udelay(1);
> - 	}
> -@@ -122,19 +122,19 @@ int omap_vp_forceupdate_scale(struct
> voltagedomain *voltdm,
> -
> - 	/* Configure for VP-Force Update */
> - 	vpconfig = voltdm->read(vp->vpconfig);
> --	vpconfig &= ~(vp->vp_common->vpconfig_initvdd |
> --			vp->vp_common->vpconfig_forceupdate |
> --			vp->vp_common->vpconfig_initvoltage_mask);
> -+	vpconfig &= ~(vp->common->vpconfig_initvdd |
> -+			vp->common->vpconfig_forceupdate |
> -+			vp->common->vpconfig_initvoltage_mask);
> - 	vpconfig |= ((target_vsel <<
> --			vp->vp_common->vpconfig_initvoltage_shift));
> -+			vp->common->vpconfig_initvoltage_shift));
> - 	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	/* Trigger initVDD value copy to voltage processor */
> --	vpconfig |= vp->vp_common->vpconfig_initvdd;
> -+	vpconfig |= vp->common->vpconfig_initvdd;
> - 	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	/* Force update of voltage */
> --	vpconfig |= vp->vp_common->vpconfig_forceupdate;
> -+	vpconfig |= vp->common->vpconfig_forceupdate;
> - 	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	/*
> -@@ -142,7 +142,7 @@ int omap_vp_forceupdate_scale(struct voltagedomain
> *voltdm,
> - 	 * Depends on SMPSWAITTIMEMIN/MAX and voltage change
> - 	 */
> - 	timeout = 0;
> --	omap_test_timeout(vp->vp_common->ops->check_txdone(vp->id),
> -+	omap_test_timeout(vp->common->ops->check_txdone(vp->id),
> - 			  VP_TRANXDONE_TIMEOUT, timeout);
> - 	if (timeout >= VP_TRANXDONE_TIMEOUT)
> - 		pr_err("%s: vdd_%s TRANXDONE timeout exceeded."
> -@@ -157,8 +157,8 @@ int omap_vp_forceupdate_scale(struct voltagedomain
> *voltdm,
> - 	 */
> - 	timeout = 0;
> - 	while (timeout++ < VP_TRANXDONE_TIMEOUT) {
> --		vp->vp_common->ops->clear_txdone(vp->id);
> --		if (!vp->vp_common->ops->check_txdone(vp->id))
> -+		vp->common->ops->clear_txdone(vp->id);
> -+		if (!vp->common->ops->check_txdone(vp->id))
> - 			break;
> - 		udelay(1);
> - 	}
> -@@ -170,10 +170,10 @@ int omap_vp_forceupdate_scale(struct
> voltagedomain *voltdm,
> -
> - 	vpconfig = voltdm->read(vp->vpconfig);
> - 	/* Clear initVDD copy trigger bit */
> --	vpconfig &= ~vp->vp_common->vpconfig_initvdd;
> -+	vpconfig &= ~vp->common->vpconfig_initvdd;
> - 	voltdm->write(vpconfig, vp->vpconfig);
> - 	/* Clear force bit */
> --	vpconfig &= ~vp->vp_common->vpconfig_forceupdate;
> -+	vpconfig &= ~vp->common->vpconfig_forceupdate;
> - 	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	return 0;
> -@@ -187,8 +187,7 @@ int omap_vp_forceupdate_scale(struct voltagedomain
> *voltdm,
> -  */
> - unsigned long omap_vp_get_curr_volt(struct voltagedomain *voltdm)
> - {
> --	struct omap_vp_instance_data *vp = voltdm->vdd->vp_data;
> --	struct omap_vdd_info *vdd;
> -+	struct omap_vp_instance *vp = voltdm->vp;
> - 	u8 curr_vsel;
> -
> - 	if (!voltdm || IS_ERR(voltdm)) {
> -@@ -196,7 +195,6 @@ unsigned long omap_vp_get_curr_volt(struct
> voltagedomain *voltdm)
> - 		return 0;
> - 	}
> -
> --	vdd = voltdm->vdd;
> - 	if (!voltdm->read) {
> - 		pr_err("%s: No read API for reading vdd_%s regs\n",
> - 			__func__, voltdm->name);
> -@@ -223,8 +221,7 @@ unsigned long omap_vp_get_curr_volt(struct
> voltagedomain *voltdm)
> -  */
> - void omap_vp_enable(struct voltagedomain *voltdm)
> - {
> --	struct omap_vp_instance_data *vp;
> --	struct omap_vdd_info *vdd;
> -+	struct omap_vp_instance *vp;
> - 	u32 vpconfig;
> -
> - 	if (!voltdm || IS_ERR(voltdm)) {
> -@@ -232,8 +229,7 @@ void omap_vp_enable(struct voltagedomain *voltdm)
> - 		return;
> - 	}
> -
> --	vdd = voltdm->vdd;
> --	vp = voltdm->vdd->vp_data;
> -+	vp = voltdm->vp;
> - 	if (!voltdm->read || !voltdm->write) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> - 			__func__, voltdm->name);
> -@@ -241,16 +237,16 @@ void omap_vp_enable(struct voltagedomain
> *voltdm)
> - 	}
> -
> - 	/* If VP is already enabled, do nothing. Return */
> --	if (vdd->vp_enabled)
> -+	if (vp->enabled)
> - 		return;
> -
> - 	vp_latch_vsel(voltdm);
> -
> - 	/* Enable VP */
> - 	vpconfig = voltdm->read(vp->vpconfig);
> --	vpconfig |= vp->vp_common->vpconfig_vpenable;
> -+	vpconfig |= vp->common->vpconfig_vpenable;
> - 	voltdm->write(vpconfig, vp->vpconfig);
> --	vdd->vp_enabled = true;
> -+	vp->enabled = true;
> - }
> -
> - /**
> -@@ -262,8 +258,7 @@ void omap_vp_enable(struct voltagedomain *voltdm)
> -  */
> - void omap_vp_disable(struct voltagedomain *voltdm)
> - {
> --	struct omap_vp_instance_data *vp;
> --	struct omap_vdd_info *vdd;
> -+	struct omap_vp_instance *vp;
> - 	u32 vpconfig;
> - 	int timeout;
> -
> -@@ -272,8 +267,7 @@ void omap_vp_disable(struct voltagedomain *voltdm)
> - 		return;
> - 	}
> -
> --	vdd = voltdm->vdd;
> --	vp = voltdm->vdd->vp_data;
> -+	vp = voltdm->vp;
> - 	if (!voltdm->read || !voltdm->write) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> - 			__func__, voltdm->name);
> -@@ -281,7 +275,7 @@ void omap_vp_disable(struct voltagedomain *voltdm)
> - 	}
> -
> - 	/* If VP is already disabled, do nothing. Return */
> --	if (!vdd->vp_enabled) {
> -+	if (!vp->enabled) {
> - 		pr_warning("%s: Trying to disable VP for vdd_%s when"
> - 			"it is already disabled\n", __func__, voltdm->name);
> - 		return;
> -@@ -289,7 +283,7 @@ void omap_vp_disable(struct voltagedomain *voltdm)
> -
> - 	/* Disable VP */
> - 	vpconfig = voltdm->read(vp->vpconfig);
> --	vpconfig &= ~vp->vp_common->vpconfig_vpenable;
> -+	vpconfig &= ~vp->common->vpconfig_vpenable;
> - 	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	/*
> -@@ -302,7 +296,7 @@ void omap_vp_disable(struct voltagedomain *voltdm)
> - 		pr_warning("%s: vdd_%s idle timedout\n",
> - 			__func__, voltdm->name);
> -
> --	vdd->vp_enabled = false;
> -+	vp->enabled = false;
> -
> - 	return;
> - }
> -@@ -311,7 +305,7 @@ void omap_vp_disable(struct voltagedomain *voltdm)
> - static int vp_volt_debug_get(void *data, u64 *val)
> - {
> - 	struct voltagedomain *voltdm = (struct voltagedomain *)data;
> --	struct omap_vp_instance_data *vp = voltdm->vdd->vp_data;
> -+	struct omap_vp_instance *vp = voltdm->vp;
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u8 vsel;
> -
> -diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
> -index 79aa8d3..1d63960 100644
> ---- a/arch/arm/mach-omap2/vp.h
> -+++ b/arch/arm/mach-omap2/vp.h
> -@@ -45,7 +45,7 @@ struct omap_vp_ops {
> - };
> -
> - /**
> -- * struct omap_vp_common_data - register data common to all VDDs
> -+ * struct omap_vp_common - register data common to all VDDs
> -  * @vpconfig_errorgain_mask: ERRORGAIN bitmask in the PRM_VP*_CONFIG
> reg
> -  * @vpconfig_initvoltage_mask: INITVOLTAGE bitmask in the
> PRM_VP*_CONFIG reg
> -  * @vpconfig_timeouten_mask: TIMEOUT bitmask in the PRM_VP*_CONFIG
> reg
> -@@ -67,7 +67,7 @@ struct omap_vp_ops {
> -  *     bitfield - remove one
> -  * XXX Many of these fields are wrongly named -- e.g., vpconfig_smps* -- fix!
> -  */
> --struct omap_vp_common_data {
> -+struct omap_vp_common {
> - 	u32 vpconfig_errorgain_mask;
> - 	u32 vpconfig_initvoltage_mask;
> - 	u32 vpconfig_timeouten;
> -@@ -89,18 +89,19 @@ struct omap_vp_common_data {
> - };
> -
> - /**
> -- * struct omap_vp_instance_data - VP register offsets (per-VDD)
> -- * @vp_common: pointer to struct omap_vp_common_data * for this SoC
> -+ * struct omap_vp_instance - VP register offsets (per-VDD)
> -+ * @common: pointer to struct omap_vp_common * for this SoC
> -  * @vpconfig: PRM_VP*_CONFIG reg offset from PRM start
> -  * @vstepmin: PRM_VP*_VSTEPMIN reg offset from PRM start
> -  * @vlimitto: PRM_VP*_VLIMITTO reg offset from PRM start
> -  * @vstatus: PRM_VP*_VSTATUS reg offset from PRM start
> -  * @voltage: PRM_VP*_VOLTAGE reg offset from PRM start
> -+ * @enabled: flag to keep track of whether vp is enabled or not
> -  *
> -  * XXX vp_common is probably not needed since it is per-SoC
> -  */
> --struct omap_vp_instance_data {
> --	const struct omap_vp_common_data *vp_common;
> -+struct omap_vp_instance {
> -+	const struct omap_vp_common *common;
> - 	u8 vpconfig;
> - 	u8 vstepmin;
> - 	u8 vstepmax;
> -@@ -108,6 +109,7 @@ struct omap_vp_instance_data {
> - 	u8 vstatus;
> - 	u8 voltage;
> - 	u8 id;
> -+	bool enabled;
> - };
> -
> - /**
> -@@ -139,12 +141,12 @@ struct omap_vp_runtime_data {
> - 	u8 vlimitto_vddmax;
> - };
> -
> --extern struct omap_vp_instance_data omap3_vp1_data;
> --extern struct omap_vp_instance_data omap3_vp2_data;
> -+extern struct omap_vp_instance omap3_vp_mpu;
> -+extern struct omap_vp_instance omap3_vp_core;
> -
> --extern struct omap_vp_instance_data omap4_vp_mpu_data;
> --extern struct omap_vp_instance_data omap4_vp_iva_data;
> --extern struct omap_vp_instance_data omap4_vp_core_data;
> -+extern struct omap_vp_instance omap4_vp_mpu;
> -+extern struct omap_vp_instance omap4_vp_iva;
> -+extern struct omap_vp_instance omap4_vp_core;
> -
> - void omap_vp_init(struct voltagedomain *voltdm);
> - void omap_vp_enable(struct voltagedomain *voltdm);
> -diff --git a/arch/arm/mach-omap2/vp3xxx_data.c b/arch/arm/mach-
> omap2/vp3xxx_data.c
> -index b01d333..79c3df9 100644
> ---- a/arch/arm/mach-omap2/vp3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vp3xxx_data.c
> -@@ -36,7 +36,7 @@ static const struct omap_vp_ops omap3_vp_ops = {
> -  * VP data common to 34xx/36xx chips
> -  * XXX This stuff presumably belongs in the vp3xxx.c or vp.c file.
> -  */
> --static const struct omap_vp_common_data omap3_vp_common = {
> -+static const struct omap_vp_common omap3_vp_common = {
> - 	.vpconfig_erroroffset_shift = OMAP3430_ERROROFFSET_SHIFT,
> - 	.vpconfig_errorgain_mask = OMAP3430_ERRORGAIN_MASK,
> - 	.vpconfig_errorgain_shift = OMAP3430_ERRORGAIN_SHIFT,
> -@@ -56,9 +56,9 @@ static const struct omap_vp_common_data
> omap3_vp_common = {
> - 	.ops = &omap3_vp_ops,
> - };
> -
> --struct omap_vp_instance_data omap3_vp1_data = {
> -+struct omap_vp_instance omap3_vp_mpu = {
> - 	.id = OMAP3_VP_VDD_MPU_ID,
> --	.vp_common = &omap3_vp_common,
> -+	.common = &omap3_vp_common,
> - 	.vpconfig = OMAP3_PRM_VP1_CONFIG_OFFSET,
> - 	.vstepmin = OMAP3_PRM_VP1_VSTEPMIN_OFFSET,
> - 	.vstepmax = OMAP3_PRM_VP1_VSTEPMAX_OFFSET,
> -@@ -67,9 +67,9 @@ struct omap_vp_instance_data omap3_vp1_data = {
> - 	.voltage = OMAP3_PRM_VP1_VOLTAGE_OFFSET,
> - };
> -
> --struct omap_vp_instance_data omap3_vp2_data = {
> -+struct omap_vp_instance omap3_vp_core = {
> - 	.id = OMAP3_VP_VDD_CORE_ID,
> --	.vp_common = &omap3_vp_common,
> -+	.common = &omap3_vp_common,
> - 	.vpconfig = OMAP3_PRM_VP2_CONFIG_OFFSET,
> - 	.vstepmin = OMAP3_PRM_VP2_VSTEPMIN_OFFSET,
> - 	.vstepmax = OMAP3_PRM_VP2_VSTEPMAX_OFFSET,
> -diff --git a/arch/arm/mach-omap2/vp44xx_data.c b/arch/arm/mach-
> omap2/vp44xx_data.c
> -index 9704c7b..8f75cd9 100644
> ---- a/arch/arm/mach-omap2/vp44xx_data.c
> -+++ b/arch/arm/mach-omap2/vp44xx_data.c
> -@@ -36,7 +36,7 @@ static const struct omap_vp_ops omap4_vp_ops = {
> -  * VP data common to 44xx chips
> -  * XXX This stuff presumably belongs in the vp44xx.c or vp.c file.
> -  */
> --static const struct omap_vp_common_data omap4_vp_common = {
> -+static const struct omap_vp_common omap4_vp_common = {
> - 	.vpconfig_erroroffset_shift = OMAP4430_ERROROFFSET_SHIFT,
> - 	.vpconfig_errorgain_mask = OMAP4430_ERRORGAIN_MASK,
> - 	.vpconfig_errorgain_shift = OMAP4430_ERRORGAIN_SHIFT,
> -@@ -56,9 +56,9 @@ static const struct omap_vp_common_data
> omap4_vp_common = {
> - 	.ops = &omap4_vp_ops,
> - };
> -
> --struct omap_vp_instance_data omap4_vp_mpu_data = {
> -+struct omap_vp_instance omap4_vp_mpu = {
> - 	.id = OMAP4_VP_VDD_MPU_ID,
> --	.vp_common = &omap4_vp_common,
> -+	.common = &omap4_vp_common,
> - 	.vpconfig = OMAP4_PRM_VP_MPU_CONFIG_OFFSET,
> - 	.vstepmin = OMAP4_PRM_VP_MPU_VSTEPMIN_OFFSET,
> - 	.vstepmax = OMAP4_PRM_VP_MPU_VSTEPMAX_OFFSET,
> -@@ -67,9 +67,9 @@ struct omap_vp_instance_data omap4_vp_mpu_data =
> {
> - 	.voltage = OMAP4_PRM_VP_MPU_VOLTAGE_OFFSET,
> - };
> -
> --struct omap_vp_instance_data omap4_vp_iva_data = {
> -+struct omap_vp_instance omap4_vp_iva = {
> - 	.id = OMAP4_VP_VDD_IVA_ID,
> --	.vp_common = &omap4_vp_common,
> -+	.common = &omap4_vp_common,
> - 	.vpconfig = OMAP4_PRM_VP_IVA_CONFIG_OFFSET,
> - 	.vstepmin = OMAP4_PRM_VP_IVA_VSTEPMIN_OFFSET,
> - 	.vstepmax = OMAP4_PRM_VP_IVA_VSTEPMAX_OFFSET,
> -@@ -78,9 +78,9 @@ struct omap_vp_instance_data omap4_vp_iva_data = {
> - 	.voltage = OMAP4_PRM_VP_IVA_VOLTAGE_OFFSET,
> - };
> -
> --struct omap_vp_instance_data omap4_vp_core_data = {
> -+struct omap_vp_instance omap4_vp_core = {
> - 	.id = OMAP4_VP_VDD_CORE_ID,
> --	.vp_common = &omap4_vp_common,
> -+	.common = &omap4_vp_common,
> - 	.vpconfig = OMAP4_PRM_VP_CORE_CONFIG_OFFSET,
> - 	.vstepmin = OMAP4_PRM_VP_CORE_VSTEPMIN_OFFSET,
> - 	.vstepmax = OMAP4_PRM_VP_CORE_VSTEPMAX_OFFSET,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0129-OMAP3-
> voltage-remove-unneeded-debugfs-interface.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0129-OMAP3-voltage-remove-
> unneeded-debugfs-interface.patch
> deleted file mode 100644
> index fe5139f..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0129-OMAP3-voltage-
> remove-unneeded-debugfs-interface.patch
> +++ /dev/null
> @@ -1,317 +0,0 @@
> -From fc1db2a579514eb36f5091b656133a6a9c2cbc0d Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Tue, 5 Apr 2011 14:39:11 -0700
> -Subject: [PATCH 129/149] OMAP3+: voltage: remove unneeded debugfs
> interface
> -
> -Remove read-only debugfs interface to VP values.  Most of the values
> -are init-time only and never change.  Current voltage value should be
> -retreived from the (eventual) regulator framework interface to the
> -voltage domain.
> -
> -Fixes to original version provided by Nishanth Menon <nm at ti.com>
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/smartreflex.c |   29 +++++++++-----
> - arch/arm/mach-omap2/voltage.c     |   78 -------------------------------------
> - arch/arm/mach-omap2/voltage.h     |    3 -
> - arch/arm/mach-omap2/vp.c          |   63 -----------------------------
> - 4 files changed, 19 insertions(+), 154 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-
> omap2/smartreflex.c
> -index be6add0..edb94f2 100644
> ---- a/arch/arm/mach-omap2/smartreflex.c
> -+++ b/arch/arm/mach-omap2/smartreflex.c
> -@@ -62,6 +62,7 @@ static LIST_HEAD(sr_list);
> -
> - static struct omap_sr_class_data *sr_class;
> - static struct omap_sr_pmic_data *sr_pmic_data;
> -+static struct dentry		*sr_dbg_dir;
> -
> - static inline void sr_write_reg(struct omap_sr *sr, unsigned offset, u32 value)
> - {
> -@@ -826,9 +827,10 @@ static int __init omap_sr_probe(struct
> platform_device *pdev)
> - 	struct omap_sr *sr_info = kzalloc(sizeof(struct omap_sr),
> GFP_KERNEL);
> - 	struct omap_sr_data *pdata = pdev->dev.platform_data;
> - 	struct resource *mem, *irq;
> --	struct dentry *vdd_dbg_dir, *nvalue_dir;
> -+	struct dentry *nvalue_dir;
> - 	struct omap_volt_data *volt_data;
> - 	int i, ret = 0;
> -+	char *name;
> -
> - 	if (!sr_info) {
> - 		dev_err(&pdev->dev, "%s: unable to allocate sr_info\n",
> -@@ -898,18 +900,25 @@ static int __init omap_sr_probe(struct
> platform_device *pdev)
> - 	}
> -
> - 	dev_info(&pdev->dev, "%s: SmartReflex driver initialized\n",
> __func__);
> -+	if (!sr_dbg_dir) {
> -+		sr_dbg_dir = debugfs_create_dir("smartreflex", NULL);
> -+		if (!sr_dbg_dir) {
> -+			ret = PTR_ERR(sr_dbg_dir);
> -+			pr_err("%s:sr debugfs dir creation failed(%d)\n",
> -+				__func__, ret);
> -+			goto err_iounmap;
> -+		}
> -+	}
> -
> --	/*
> --	 * If the voltage domain debugfs directory is not created, do
> --	 * not try to create rest of the debugfs entries.
> --	 */
> --	vdd_dbg_dir = omap_voltage_get_dbgdir(sr_info->voltdm);
> --	if (!vdd_dbg_dir) {
> --		ret = -EINVAL;
> -+	name = kasprintf(GFP_KERNEL, "sr_%s", sr_info->voltdm->name);
> -+	if (!name) {
> -+		dev_err(&pdev->dev, "%s: Unable to alloc debugfs name\n",
> -+			__func__);
> -+		ret = -ENOMEM;
> - 		goto err_iounmap;
> - 	}
> --
> --	sr_info->dbg_dir = debugfs_create_dir("smartreflex", vdd_dbg_dir);
> -+	sr_info->dbg_dir = debugfs_create_dir(name, sr_dbg_dir);
> -+	kfree(name);
> - 	if (IS_ERR(sr_info->dbg_dir)) {
> - 		dev_err(&pdev->dev, "%s: Unable to create debugfs
> directory\n",
> - 			__func__);
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index c22b53c..eaa5f93 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -43,9 +43,6 @@
> -
> - static LIST_HEAD(voltdm_list);
> -
> --#define VOLTAGE_DIR_SIZE	16
> --static struct dentry *voltage_dir;
> --
> - static int __init _config_common_vdd_data(struct voltagedomain *voltdm)
> - {
> - 	char *sys_ck_name;
> -@@ -102,51 +99,6 @@ static int __init _config_common_vdd_data(struct
> voltagedomain *voltdm)
> - 	return 0;
> - }
> -
> --static int nom_volt_debug_get(void *data, u64 *val)
> --{
> --	struct voltagedomain *voltdm = (struct voltagedomain *)data;
> --
> --	if (!voltdm) {
> --		pr_warning("Wrong paramater passed\n");
> --		return -EINVAL;
> --	}
> --
> --	*val = omap_voltage_get_nom_volt(voltdm);
> --
> --	return 0;
> --}
> --
> --DEFINE_SIMPLE_ATTRIBUTE(nom_volt_debug_fops, nom_volt_debug_get,
> NULL,
> --								"%llu\n");
> --static void __init vdd_debugfs_init(struct voltagedomain *voltdm)
> --{
> --	char *name;
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --
> --	name = kzalloc(VOLTAGE_DIR_SIZE, GFP_KERNEL);
> --	if (!name) {
> --		pr_warning("%s: Unable to allocate memory for debugfs"
> --			" directory name for vdd_%s",
> --			__func__, voltdm->name);
> --		return;
> --	}
> --	strcpy(name, "vdd_");
> --	strcat(name, voltdm->name);
> --
> --	vdd->debug_dir = debugfs_create_dir(name, voltage_dir);
> --	kfree(name);
> --	if (IS_ERR(vdd->debug_dir)) {
> --		pr_warning("%s: Unable to create debugfs directory for"
> --			" vdd_%s\n", __func__, voltdm->name);
> --		vdd->debug_dir = NULL;
> --		return;
> --	}
> --
> --	(void) debugfs_create_file("curr_nominal_volt", S_IRUGO,
> --				vdd->debug_dir, (void *) voltdm,
> --				&nom_volt_debug_fops);
> --}
> --
> - static int __init omap_vdd_data_configure(struct voltagedomain *voltdm)
> - {
> - 	int ret = -EINVAL;
> -@@ -342,31 +294,6 @@ int omap_voltage_register_pmic(struct
> voltagedomain *voltdm,
> - }
> -
> - /**
> -- * omap_voltage_get_dbgdir() - API to get pointer to the debugfs directory
> -- *				corresponding to a voltage domain.
> -- *
> -- * @voltdm:	pointer to the VDD whose debug directory is required.
> -- *
> -- * This API returns pointer to the debugfs directory corresponding
> -- * to the voltage domain. Should be used by drivers requiring to
> -- * add any debug entry for a particular voltage domain. Returns NULL
> -- * in case of error.
> -- */
> --struct dentry *omap_voltage_get_dbgdir(struct voltagedomain *voltdm)
> --{
> --	struct omap_vdd_info *vdd;
> --
> --	if (!voltdm || IS_ERR(voltdm)) {
> --		pr_warning("%s: VDD specified does not exist!\n", __func__);
> --		return NULL;
> --	}
> --
> --	vdd = voltdm->vdd;
> --
> --	return vdd->debug_dir;
> --}
> --
> --/**
> -  * omap_change_voltscale_method() - API to change the voltage scaling
> method.
> -  * @voltdm:	pointer to the VDD whose voltage scaling method
> -  *		has to be changed.
> -@@ -418,10 +345,6 @@ int __init omap_voltage_late_init(void)
> - 		return -EINVAL;
> - 	}
> -
> --	voltage_dir = debugfs_create_dir("voltage", NULL);
> --	if (IS_ERR(voltage_dir))
> --		pr_err("%s: Unable to create voltage debugfs main dir\n",
> --			__func__);
> - 	list_for_each_entry(voltdm, &voltdm_list, node) {
> - 		if (!voltdm->scalable)
> - 			continue;
> -@@ -434,7 +357,6 @@ int __init omap_voltage_late_init(void)
> - 		if (voltdm->vdd) {
> - 			if (omap_vdd_data_configure(voltdm))
> - 				continue;
> --			vdd_debugfs_init(voltdm);
> - 			omap_vp_init(voltdm);
> - 		}
> - 	}
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 65f94c7..5261703 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -136,14 +136,12 @@ struct omap_voltdm_pmic {
> -  * @volt_data		: voltage table having the distinct voltages supported
> -  *			  by the domain and other associated per voltage data.
> -  * @vp_rt_data          : VP data derived at runtime, not predefined
> -- * @debug_dir		: debug directory for this voltage domain.
> -  * @curr_volt		: current voltage for this vdd.
> -  * @volt_scale		: API to scale the voltage of the vdd.
> -  */
> - struct omap_vdd_info {
> - 	struct omap_volt_data *volt_data;
> - 	struct omap_vp_runtime_data vp_rt_data;
> --	struct dentry *debug_dir;
> - 	u32 curr_volt;
> -
> - 	int (*volt_scale) (struct voltagedomain *voltdm,
> -@@ -158,7 +156,6 @@ void omap_voltage_get_volttable(struct
> voltagedomain *voltdm,
> - struct omap_volt_data *omap_voltage_get_voltdata(struct voltagedomain
> *voltdm,
> - 		unsigned long volt);
> - unsigned long omap_voltage_get_nom_volt(struct voltagedomain *voltdm);
> --struct dentry *omap_voltage_get_dbgdir(struct voltagedomain *voltdm);
> - #ifdef CONFIG_PM
> - int omap_voltage_register_pmic(struct voltagedomain *voltdm,
> - 			       struct omap_voltdm_pmic *pmic);
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index 53d6018..c9a315f 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -1,6 +1,5 @@
> - #include <linux/kernel.h>
> - #include <linux/init.h>
> --#include <linux/debugfs.h>
> -
> - #include <plat/common.h>
> -
> -@@ -10,8 +9,6 @@
> - #include "prm-regbits-44xx.h"
> - #include "prm44xx.h"
> -
> --static void __init vp_debugfs_init(struct voltagedomain *voltdm);
> --
> - static void vp_latch_vsel(struct voltagedomain *voltdm)
> - {
> - 	struct omap_vp_instance *vp = voltdm->vp;
> -@@ -87,8 +84,6 @@ void __init omap_vp_init(struct voltagedomain *voltdm)
> - 		(vdd->vp_rt_data.vlimitto_timeout <<
> - 		vp->common->vlimitto_timeout_shift));
> - 	voltdm->write(vp_val, vp->vlimitto);
> --
> --	vp_debugfs_init(voltdm);
> - }
> -
> - /* VP force update method of voltage scaling */
> -@@ -300,61 +295,3 @@ void omap_vp_disable(struct voltagedomain
> *voltdm)
> -
> - 	return;
> - }
> --
> --/* Voltage debugfs support */
> --static int vp_volt_debug_get(void *data, u64 *val)
> --{
> --	struct voltagedomain *voltdm = (struct voltagedomain *)data;
> --	struct omap_vp_instance *vp = voltdm->vp;
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --	u8 vsel;
> --
> --	if (!vdd) {
> --		pr_warning("Wrong paramater passed\n");
> --		return -EINVAL;
> --	}
> --
> --	vsel = voltdm->read(vp->voltage);
> --
> --	if (!voltdm->pmic->vsel_to_uv) {
> --		pr_warning("PMIC function to convert vsel to voltage"
> --			"in uV not registerd\n");
> --		return -EINVAL;
> --	}
> --
> --	*val = voltdm->pmic->vsel_to_uv(vsel);
> --	return 0;
> --}
> --
> --DEFINE_SIMPLE_ATTRIBUTE(vp_volt_debug_fops, vp_volt_debug_get, NULL,
> "%llu\n");
> --
> --static void __init vp_debugfs_init(struct voltagedomain *voltdm)
> --{
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --	struct dentry *debug_dir;
> --
> --	debug_dir = debugfs_create_dir("vp", vdd->debug_dir);
> --	if (IS_ERR(debug_dir))
> --		pr_err("%s: Unable to create VP debugfs dir dir\n", __func__);
> --
> --	(void) debugfs_create_x16("errorgain", S_IRUGO, debug_dir,
> --				&(vdd->vp_rt_data.vpconfig_errorgain));
> --	(void) debugfs_create_x16("smpswaittimemin", S_IRUGO,
> --				debug_dir,
> --				&(vdd-
> >vp_rt_data.vstepmin_smpswaittimemin));
> --	(void) debugfs_create_x8("stepmin", S_IRUGO, debug_dir,
> --				&(vdd->vp_rt_data.vstepmin_stepmin));
> --	(void) debugfs_create_x16("smpswaittimemax", S_IRUGO,
> --				debug_dir,
> --				&(vdd-
> >vp_rt_data.vstepmax_smpswaittimemax));
> --	(void) debugfs_create_x8("stepmax", S_IRUGO, debug_dir,
> --				&(vdd->vp_rt_data.vstepmax_stepmax));
> --	(void) debugfs_create_x8("vddmax", S_IRUGO, debug_dir,
> --				&(vdd->vp_rt_data.vlimitto_vddmax));
> --	(void) debugfs_create_x8("vddmin", S_IRUGO, debug_dir,
> --				&(vdd->vp_rt_data.vlimitto_vddmin));
> --	(void) debugfs_create_x16("timeout", S_IRUGO, debug_dir,
> --				&(vdd->vp_rt_data.vlimitto_timeout));
> --	(void) debugfs_create_file("curr_volt", S_IRUGO, debug_dir,
> --				(void *) voltdm, &vp_volt_debug_fops);
> --}
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0130-OMAP3-VP-
> struct-omap_vp_common-replace-shift-with-__.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0130-OMAP3-VP-struct-
> omap_vp_common-replace-shift-with-__.patch
> deleted file mode 100644
> index 22dff61..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0130-OMAP3-VP-struct-
> omap_vp_common-replace-shift-with-__.patch
> +++ /dev/null
> @@ -1,214 +0,0 @@
> -From 19b2a24927050ee82e6f587ac47f484f1b114a57 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 4 Apr 2011 16:02:28 -0700
> -Subject: [PATCH 130/149] OMAP3+: VP: struct omap_vp_common: replace
> shift with __ffs(mask)
> -
> -In struct omap_vp_common, the shift value can be derived from the mask
> -value by using __ffs(), so remove the shift value for the various
> -VPCONFIG bitfields, and use __ffs() in the code for the shift value.
> -
> -While here, rename field names in kerneldoc comment to match actual
> -field names in structure.  Also, cleanup indendentaion for other VP
> -register accesses in omap_vp_init().
> -
> -No functional changes.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c          |    2 +-
> - arch/arm/mach-omap2/voltage.c     |    2 +-
> - arch/arm/mach-omap2/vp.c          |   29 ++++++++++++++---------------
> - arch/arm/mach-omap2/vp.h          |   34 ++++++++++++++--------------------
> - arch/arm/mach-omap2/vp3xxx_data.c |    4 +---
> - arch/arm/mach-omap2/vp44xx_data.c |    4 +---
> - 6 files changed, 32 insertions(+), 43 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index 7058585..f64c826 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -140,7 +140,7 @@ int omap_vc_pre_scale(struct voltagedomain
> *voltdm,
> - 		vdd->vp_rt_data.vpconfig_errorgain = volt_data->vp_errgain;
> - 		vp_errgain_val &= voltdm->vp->common-
> >vpconfig_errorgain_mask;
> - 		vp_errgain_val |= vdd->vp_rt_data.vpconfig_errorgain <<
> --			voltdm->vp->common->vpconfig_errorgain_shift;
> -+			__ffs(voltdm->vp->common-
> >vpconfig_errorgain_mask);
> - 		voltdm->write(vp_errgain_val, voltdm->vp->vpconfig);
> - 	}
> -
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index eaa5f93..5b16fd1 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -82,7 +82,7 @@ static int __init _config_common_vdd_data(struct
> voltagedomain *voltdm)
> -
> - 	vdd->vp_rt_data.vpconfig_erroroffset =
> - 		(voltdm->pmic->vp_erroroffset <<
> --		 voltdm->vp->common->vpconfig_erroroffset_shift);
> -+		 __ffs(voltdm->vp->common->vpconfig_erroroffset_mask));
> -
> - 	timeout_val = (sys_clk_speed * voltdm->pmic->vp_timeout_us) / 1000;
> - 	vdd->vp_rt_data.vlimitto_timeout = timeout_val;
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index c9a315f..297d094 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -34,8 +34,7 @@ static void vp_latch_vsel(struct voltagedomain *voltdm)
> - 	vpconfig = voltdm->read(vp->vpconfig);
> - 	vpconfig &= ~(vp->common->vpconfig_initvoltage_mask |
> - 			vp->common->vpconfig_initvdd);
> --	vpconfig |= vsel << vp->common->vpconfig_initvoltage_shift;
> --
> -+	vpconfig |= vsel << __ffs(vp->common->vpconfig_initvoltage_mask);
> - 	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	/* Trigger initVDD value copy to voltage processor */
> -@@ -61,28 +60,28 @@ void __init omap_vp_init(struct voltagedomain
> *voltdm)
> -
> - 	vp_val = vdd->vp_rt_data.vpconfig_erroroffset |
> - 		(vdd->vp_rt_data.vpconfig_errorgain <<
> --		vp->common->vpconfig_errorgain_shift) |
> -+		 __ffs(vp->common->vpconfig_errorgain_mask)) |
> - 		vp->common->vpconfig_timeouten;
> - 	voltdm->write(vp_val, vp->vpconfig);
> -
> - 	vp_val = ((vdd->vp_rt_data.vstepmin_smpswaittimemin <<
> --		vp->common->vstepmin_smpswaittimemin_shift) |
> --		(vdd->vp_rt_data.vstepmin_stepmin <<
> --		vp->common->vstepmin_stepmin_shift));
> -+		   vp->common->vstepmin_smpswaittimemin_shift) |
> -+		  (vdd->vp_rt_data.vstepmin_stepmin <<
> -+		   vp->common->vstepmin_stepmin_shift));
> - 	voltdm->write(vp_val, vp->vstepmin);
> -
> - 	vp_val = ((vdd->vp_rt_data.vstepmax_smpswaittimemax <<
> --		vp->common->vstepmax_smpswaittimemax_shift) |
> --		(vdd->vp_rt_data.vstepmax_stepmax <<
> --		vp->common->vstepmax_stepmax_shift));
> -+		   vp->common->vstepmax_smpswaittimemax_shift) |
> -+		  (vdd->vp_rt_data.vstepmax_stepmax <<
> -+		   vp->common->vstepmax_stepmax_shift));
> - 	voltdm->write(vp_val, vp->vstepmax);
> -
> - 	vp_val = ((vdd->vp_rt_data.vlimitto_vddmax <<
> --		vp->common->vlimitto_vddmax_shift) |
> --		(vdd->vp_rt_data.vlimitto_vddmin <<
> --		vp->common->vlimitto_vddmin_shift) |
> --		(vdd->vp_rt_data.vlimitto_timeout <<
> --		vp->common->vlimitto_timeout_shift));
> -+		   vp->common->vlimitto_vddmax_shift) |
> -+		  (vdd->vp_rt_data.vlimitto_vddmin <<
> -+		   vp->common->vlimitto_vddmin_shift) |
> -+		  (vdd->vp_rt_data.vlimitto_timeout <<
> -+		   vp->common->vlimitto_timeout_shift));
> - 	voltdm->write(vp_val, vp->vlimitto);
> - }
> -
> -@@ -121,7 +120,7 @@ int omap_vp_forceupdate_scale(struct voltagedomain
> *voltdm,
> - 			vp->common->vpconfig_forceupdate |
> - 			vp->common->vpconfig_initvoltage_mask);
> - 	vpconfig |= ((target_vsel <<
> --			vp->common->vpconfig_initvoltage_shift));
> -+		      __ffs(vp->common->vpconfig_initvoltage_mask)));
> - 	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	/* Trigger initVDD value copy to voltage processor */
> -diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
> -index 1d63960..2afe11d 100644
> ---- a/arch/arm/mach-omap2/vp.h
> -+++ b/arch/arm/mach-omap2/vp.h
> -@@ -46,37 +46,32 @@ struct omap_vp_ops {
> -
> - /**
> -  * struct omap_vp_common - register data common to all VDDs
> -+ * @vpconfig_erroroffset_mask: ERROROFFSET bitmask in the
> PRM_VP*_CONFIG reg
> -  * @vpconfig_errorgain_mask: ERRORGAIN bitmask in the PRM_VP*_CONFIG
> reg
> -  * @vpconfig_initvoltage_mask: INITVOLTAGE bitmask in the
> PRM_VP*_CONFIG reg
> -- * @vpconfig_timeouten_mask: TIMEOUT bitmask in the PRM_VP*_CONFIG
> reg
> -+ * @vpconfig_timeouten: TIMEOUT bitmask in the PRM_VP*_CONFIG reg
> -  * @vpconfig_initvdd: INITVDD bitmask in the PRM_VP*_CONFIG reg
> -  * @vpconfig_forceupdate: FORCEUPDATE bitmask in the PRM_VP*_CONFIG
> reg
> -  * @vpconfig_vpenable: VPENABLE bitmask in the PRM_VP*_CONFIG reg
> -  * @vpconfig_erroroffset_shift: ERROROFFSET field shift in PRM_VP*_CONFIG
> reg
> -  * @vpconfig_errorgain_shift: ERRORGAIN field shift in PRM_VP*_CONFIG reg
> -  * @vpconfig_initvoltage_shift: INITVOLTAGE field shift in PRM_VP*_CONFIG
> reg
> -- * @vpconfig_stepmin_shift: VSTEPMIN field shift in the PRM_VP*_VSTEPMIN
> reg
> -- * @vpconfig_smpswaittimemin_shift: SMPSWAITTIMEMIN field shift in
> PRM_VP*_VSTEPMIN reg
> -- * @vpconfig_stepmax_shift: VSTEPMAX field shift in the
> PRM_VP*_VSTEPMAX reg
> -- * @vpconfig_smpswaittimemax_shift: SMPSWAITTIMEMAX field shift in
> PRM_VP*_VSTEPMAX reg
> -- * @vpconfig_vlimitto_vddmin_shift: VDDMIN field shift in
> PRM_VP*_VLIMITTO reg
> -- * @vpconfig_vlimitto_vddmax_shift: VDDMAX field shift in
> PRM_VP*_VLIMITTO reg
> -- * @vpconfig_vlimitto_timeout_shift: TIMEOUT field shift in
> PRM_VP*_VLIMITTO reg
> -- *
> -- * XXX It it not necessary to have both a mask and a shift for the same
> -- *     bitfield - remove one
> -- * XXX Many of these fields are wrongly named -- e.g., vpconfig_smps* -- fix!
> -+ * @vstepmin_stepmin_shift: VSTEPMIN field shift in the
> PRM_VP*_VSTEPMIN reg
> -+ * @vstepmin_smpswaittimemin_shift: SMPSWAITTIMEMIN field shift in
> PRM_VP*_VSTEPMIN reg
> -+ * @vstepmax_stepmax_shift: VSTEPMAX field shift in the
> PRM_VP*_VSTEPMAX reg
> -+ * @vstepmax_smpswaittimemax_shift: SMPSWAITTIMEMAX field shift in
> PRM_VP*_VSTEPMAX reg
> -+ * @vlimitto_vddmin_shift: VDDMIN field shift in PRM_VP*_VLIMITTO reg
> -+ * @vlimitto_vddmax_shift: VDDMAX field shift in PRM_VP*_VLIMITTO reg
> -+ * @vlimitto_timeout_shift: TIMEOUT field shift in PRM_VP*_VLIMITTO reg
> -  */
> - struct omap_vp_common {
> -+	u32 vpconfig_erroroffset_mask;
> - 	u32 vpconfig_errorgain_mask;
> - 	u32 vpconfig_initvoltage_mask;
> --	u32 vpconfig_timeouten;
> --	u32 vpconfig_initvdd;
> --	u32 vpconfig_forceupdate;
> --	u32 vpconfig_vpenable;
> --	u8 vpconfig_erroroffset_shift;
> --	u8 vpconfig_errorgain_shift;
> --	u8 vpconfig_initvoltage_shift;
> -+	u8 vpconfig_timeouten;
> -+	u8 vpconfig_initvdd;
> -+	u8 vpconfig_forceupdate;
> -+	u8 vpconfig_vpenable;
> - 	u8 vstepmin_stepmin_shift;
> - 	u8 vstepmin_smpswaittimemin_shift;
> - 	u8 vstepmax_stepmax_shift;
> -@@ -127,7 +122,6 @@ struct omap_vp_instance {
> -  * XXX Is this structure really needed?  Why not just program the
> -  * device directly?  They are in PRM space, therefore in the WKUP
> -  * powerdomain, so register contents should not be lost in off-mode.
> -- * XXX Some of these fields are incorrectly named, e.g., vstep*
> -  */
> - struct omap_vp_runtime_data {
> - 	u32 vpconfig_erroroffset;
> -diff --git a/arch/arm/mach-omap2/vp3xxx_data.c b/arch/arm/mach-
> omap2/vp3xxx_data.c
> -index 79c3df9..d429c44 100644
> ---- a/arch/arm/mach-omap2/vp3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vp3xxx_data.c
> -@@ -37,10 +37,8 @@ static const struct omap_vp_ops omap3_vp_ops = {
> -  * XXX This stuff presumably belongs in the vp3xxx.c or vp.c file.
> -  */
> - static const struct omap_vp_common omap3_vp_common = {
> --	.vpconfig_erroroffset_shift = OMAP3430_ERROROFFSET_SHIFT,
> -+	.vpconfig_erroroffset_mask = OMAP3430_ERROROFFSET_MASK,
> - 	.vpconfig_errorgain_mask = OMAP3430_ERRORGAIN_MASK,
> --	.vpconfig_errorgain_shift = OMAP3430_ERRORGAIN_SHIFT,
> --	.vpconfig_initvoltage_shift = OMAP3430_INITVOLTAGE_SHIFT,
> - 	.vpconfig_initvoltage_mask = OMAP3430_INITVOLTAGE_MASK,
> - 	.vpconfig_timeouten = OMAP3430_TIMEOUTEN_MASK,
> - 	.vpconfig_initvdd = OMAP3430_INITVDD_MASK,
> -diff --git a/arch/arm/mach-omap2/vp44xx_data.c b/arch/arm/mach-
> omap2/vp44xx_data.c
> -index 8f75cd9..0daf2a4 100644
> ---- a/arch/arm/mach-omap2/vp44xx_data.c
> -+++ b/arch/arm/mach-omap2/vp44xx_data.c
> -@@ -37,10 +37,8 @@ static const struct omap_vp_ops omap4_vp_ops = {
> -  * XXX This stuff presumably belongs in the vp44xx.c or vp.c file.
> -  */
> - static const struct omap_vp_common omap4_vp_common = {
> --	.vpconfig_erroroffset_shift = OMAP4430_ERROROFFSET_SHIFT,
> -+	.vpconfig_erroroffset_mask = OMAP4430_ERROROFFSET_MASK,
> - 	.vpconfig_errorgain_mask = OMAP4430_ERRORGAIN_MASK,
> --	.vpconfig_errorgain_shift = OMAP4430_ERRORGAIN_SHIFT,
> --	.vpconfig_initvoltage_shift = OMAP4430_INITVOLTAGE_SHIFT,
> - 	.vpconfig_initvoltage_mask = OMAP4430_INITVOLTAGE_MASK,
> - 	.vpconfig_timeouten = OMAP4430_TIMEOUTEN_MASK,
> - 	.vpconfig_initvdd = OMAP4430_INITVDD_MASK,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0131-OMAP3-VP-
> move-SoC-specific-sys-clock-rate-retreival-.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0131-OMAP3-VP-move-SoC-specific-sys-clock-rate-
> retreival-.patch
> deleted file mode 100644
> index 2643c6b..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0131-OMAP3-VP-move-
> SoC-specific-sys-clock-rate-retreival-.patch
> +++ /dev/null
> @@ -1,184 +0,0 @@
> -From d0c5c4d43250d9e7aad920ce3e7f5e7d5061be47 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 4 Apr 2011 17:22:28 -0700
> -Subject: [PATCH 131/149] OMAP3+: VP: move SoC-specific sys clock rate
> retreival late init
> -
> -Add sys clock name and rate to struct voltage domain.  SoC specific
> -voltagedomain init code initializes sys clock name.  After clock
> -framework is initialized, voltage late init will then use use the
> -sys_clk rate to calculate the various timing that depend on that rate.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/voltage.c                 |   47 +++++++++----------------
> - arch/arm/mach-omap2/voltage.h                 |    5 +++
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |    8 ++++
> - arch/arm/mach-omap2/voltagedomains44xx_data.c |    8 ++++
> - 4 files changed, 38 insertions(+), 30 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 5b16fd1..533ea38 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -21,10 +21,10 @@
> -
> - #include <linux/delay.h>
> - #include <linux/io.h>
> --#include <linux/clk.h>
> - #include <linux/err.h>
> - #include <linux/debugfs.h>
> - #include <linux/slab.h>
> -+#include <linux/clk.h>
> -
> - #include <plat/common.h>
> -
> -@@ -45,36 +45,12 @@ static LIST_HEAD(voltdm_list);
> -
> - static int __init _config_common_vdd_data(struct voltagedomain *voltdm)
> - {
> --	char *sys_ck_name;
> --	struct clk *sys_ck;
> --	u32 sys_clk_speed, timeout_val, waittime;
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> -+	u32 sys_clk_rate, timeout_val, waittime;
> -
> --	/*
> --	 * XXX Clockfw should handle this, or this should be in a
> --	 * struct record
> --	 */
> --	if (cpu_is_omap24xx() || cpu_is_omap34xx())
> --		sys_ck_name = "sys_ck";
> --	else if (cpu_is_omap44xx())
> --		sys_ck_name = "sys_clkin_ck";
> --	else
> --		return -EINVAL;
> --
> --	/*
> --	 * Sys clk rate is require to calculate vp timeout value and
> --	 * smpswaittimemin and smpswaittimemax.
> --	 */
> --	sys_ck = clk_get(NULL, sys_ck_name);
> --	if (IS_ERR(sys_ck)) {
> --		pr_warning("%s: Could not get the sys clk to calculate"
> --			"various vdd_%s params\n", __func__, voltdm-
> >name);
> --		return -EINVAL;
> --	}
> --	sys_clk_speed = clk_get_rate(sys_ck);
> --	clk_put(sys_ck);
> - 	/* Divide to avoid overflow */
> --	sys_clk_speed /= 1000;
> -+	sys_clk_rate = voltdm->sys_clk.rate / 1000;
> -+	WARN_ON(!sys_clk_rate);
> -
> - 	/* Generic voltage parameters */
> - 	vdd->volt_scale = omap_vp_forceupdate_scale;
> -@@ -84,13 +60,13 @@ static int __init _config_common_vdd_data(struct
> voltagedomain *voltdm)
> - 		(voltdm->pmic->vp_erroroffset <<
> - 		 __ffs(voltdm->vp->common->vpconfig_erroroffset_mask));
> -
> --	timeout_val = (sys_clk_speed * voltdm->pmic->vp_timeout_us) / 1000;
> -+	timeout_val = (sys_clk_rate * voltdm->pmic->vp_timeout_us) / 1000;
> - 	vdd->vp_rt_data.vlimitto_timeout = timeout_val;
> - 	vdd->vp_rt_data.vlimitto_vddmin = voltdm->pmic->vp_vddmin;
> - 	vdd->vp_rt_data.vlimitto_vddmax = voltdm->pmic->vp_vddmax;
> -
> - 	waittime = ((voltdm->pmic->step_size / voltdm->pmic->slew_rate) *
> --				sys_clk_speed) / 1000;
> -+		    sys_clk_rate) / 1000;
> - 	vdd->vp_rt_data.vstepmin_smpswaittimemin = waittime;
> - 	vdd->vp_rt_data.vstepmax_smpswaittimemax = waittime;
> - 	vdd->vp_rt_data.vstepmin_stepmin = voltdm->pmic->vp_vstepmin;
> -@@ -346,9 +322,20 @@ int __init omap_voltage_late_init(void)
> - 	}
> -
> - 	list_for_each_entry(voltdm, &voltdm_list, node) {
> -+		struct clk *sys_ck;
> -+
> - 		if (!voltdm->scalable)
> - 			continue;
> -
> -+		sys_ck = clk_get(NULL, voltdm->sys_clk.name);
> -+		if (IS_ERR(sys_ck)) {
> -+			pr_warning("%s: Could not get sys clk.\n", __func__);
> -+			return -EINVAL;
> -+		}
> -+		voltdm->sys_clk.rate = clk_get_rate(sys_ck);
> -+		WARN_ON(!voltdm->sys_clk.rate);
> -+		clk_put(sys_ck);
> -+
> - 		if (voltdm->vc) {
> - 			voltdm->vdd->volt_scale = omap_vc_bypass_scale;
> - 			omap_vc_init_channel(voltdm);
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 5261703..d73c956 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -76,6 +76,11 @@ struct voltagedomain {
> - 	void (*write) (u32 val, u8 offset);
> - 	u32 (*rmw)(u32 mask, u32 bits, u8 offset);
> -
> -+	union {
> -+		const char *name;
> -+		u32 rate;
> -+	} sys_clk;
> -+
> - 	struct omap_vdd_info *vdd;
> - };
> -
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index 4db2c6c..e7a0be1 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -82,8 +82,13 @@ static struct voltagedomain *voltagedomains_omap3[]
> __initdata = {
> - 	NULL,
> - };
> -
> -+static const char *sys_clk_name __initdata = "sys_ck";
> -+
> - void __init omap3xxx_voltagedomains_init(void)
> - {
> -+	struct voltagedomain *voltdm;
> -+	int i;
> -+
> - 	/*
> - 	 * XXX Will depend on the process, validation, and binning
> - 	 * for the currently-running IC
> -@@ -96,5 +101,8 @@ void __init omap3xxx_voltagedomains_init(void)
> - 		omap3_vdd2_info.volt_data = omap34xx_vddcore_volt_data;
> - 	}
> -
> -+	for (i = 0; voltdm = voltagedomains_omap3[i], voltdm; i++)
> -+		voltdm->sys_clk.name = sys_clk_name;
> -+
> - 	voltdm_init(voltagedomains_omap3);
> - };
> -diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -index 3e7cb4e..9c20fbb 100644
> ---- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -@@ -98,8 +98,13 @@ static struct voltagedomain *voltagedomains_omap4[]
> __initdata = {
> - 	NULL,
> - };
> -
> -+static const char *sys_clk_name __initdata = "sys_clkin_ck";
> -+
> - void __init omap44xx_voltagedomains_init(void)
> - {
> -+	struct voltagedomain *voltdm;
> -+	int i;
> -+
> - 	/*
> - 	 * XXX Will depend on the process, validation, and binning
> - 	 * for the currently-running IC
> -@@ -108,5 +113,8 @@ void __init omap44xx_voltagedomains_init(void)
> - 	omap4_vdd_iva_info.volt_data = omap44xx_vdd_iva_volt_data;
> - 	omap4_vdd_core_info.volt_data = omap44xx_vdd_core_volt_data;
> -
> -+	for (i = 0; voltdm = voltagedomains_omap4[i], voltdm; i++)
> -+		voltdm->sys_clk.name = sys_clk_name;
> -+
> - 	voltdm_init(voltagedomains_omap4);
> - };
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0132-OMAP3-VP-
> move-timing-calculation-config-into-VP-init.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0132-OMAP3-VP-move-timing-calculation-config-into-VP-
> init.patch
> deleted file mode 100644
> index 23b4a31..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0132-OMAP3-VP-move-
> timing-calculation-config-into-VP-init.patch
> +++ /dev/null
> @@ -1,94 +0,0 @@
> -From 505468e0ec50f01f1bf37003096d7ae73deb491d Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Thu, 14 Jul 2011 11:10:27 -0700
> -Subject: [PATCH 132/149] OMAP3+: VP: move timing calculation/config into
> VP init
> -
> -Move VP timing calcluation (based on sys clock) and register programming
> -into VP init.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/voltage.c |   22 ----------------------
> - arch/arm/mach-omap2/vp.c      |   23 ++++++++++++++++++++++-
> - 2 files changed, 22 insertions(+), 23 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 533ea38..4a15668 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -46,31 +46,9 @@ static LIST_HEAD(voltdm_list);
> - static int __init _config_common_vdd_data(struct voltagedomain *voltdm)
> - {
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> --	u32 sys_clk_rate, timeout_val, waittime;
> --
> --	/* Divide to avoid overflow */
> --	sys_clk_rate = voltdm->sys_clk.rate / 1000;
> --	WARN_ON(!sys_clk_rate);
> -
> - 	/* Generic voltage parameters */
> - 	vdd->volt_scale = omap_vp_forceupdate_scale;
> --	voltdm->vp->enabled = false;
> --
> --	vdd->vp_rt_data.vpconfig_erroroffset =
> --		(voltdm->pmic->vp_erroroffset <<
> --		 __ffs(voltdm->vp->common->vpconfig_erroroffset_mask));
> --
> --	timeout_val = (sys_clk_rate * voltdm->pmic->vp_timeout_us) / 1000;
> --	vdd->vp_rt_data.vlimitto_timeout = timeout_val;
> --	vdd->vp_rt_data.vlimitto_vddmin = voltdm->pmic->vp_vddmin;
> --	vdd->vp_rt_data.vlimitto_vddmax = voltdm->pmic->vp_vddmax;
> --
> --	waittime = ((voltdm->pmic->step_size / voltdm->pmic->slew_rate) *
> --		    sys_clk_rate) / 1000;
> --	vdd->vp_rt_data.vstepmin_smpswaittimemin = waittime;
> --	vdd->vp_rt_data.vstepmax_smpswaittimemax = waittime;
> --	vdd->vp_rt_data.vstepmin_stepmin = voltdm->pmic->vp_vstepmin;
> --	vdd->vp_rt_data.vstepmax_stepmax = voltdm->pmic->vp_vstepmax;
> -
> - 	return 0;
> - }
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index 297d094..ea61a47 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -50,7 +50,7 @@ void __init omap_vp_init(struct voltagedomain *voltdm)
> - {
> - 	struct omap_vp_instance *vp = voltdm->vp;
> - 	struct omap_vdd_info *vdd = voltdm->vdd;
> --	u32 vp_val;
> -+	u32 vp_val, sys_clk_rate, timeout_val, waittime;
> -
> - 	if (!voltdm->read || !voltdm->write) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> -@@ -58,6 +58,27 @@ void __init omap_vp_init(struct voltagedomain
> *voltdm)
> - 		return;
> - 	}
> -
> -+	vp->enabled = false;
> -+
> -+	/* Divide to avoid overflow */
> -+	sys_clk_rate = voltdm->sys_clk.rate / 1000;
> -+
> -+	vdd->vp_rt_data.vpconfig_erroroffset =
> -+		(voltdm->pmic->vp_erroroffset <<
> -+		 __ffs(voltdm->vp->common->vpconfig_erroroffset_mask));
> -+
> -+	timeout_val = (sys_clk_rate * voltdm->pmic->vp_timeout_us) / 1000;
> -+	vdd->vp_rt_data.vlimitto_timeout = timeout_val;
> -+	vdd->vp_rt_data.vlimitto_vddmin = voltdm->pmic->vp_vddmin;
> -+	vdd->vp_rt_data.vlimitto_vddmax = voltdm->pmic->vp_vddmax;
> -+
> -+	waittime = ((voltdm->pmic->step_size / voltdm->pmic->slew_rate) *
> -+		    sys_clk_rate) / 1000;
> -+	vdd->vp_rt_data.vstepmin_smpswaittimemin = waittime;
> -+	vdd->vp_rt_data.vstepmax_smpswaittimemax = waittime;
> -+	vdd->vp_rt_data.vstepmin_stepmin = voltdm->pmic->vp_vstepmin;
> -+	vdd->vp_rt_data.vstepmax_stepmax = voltdm->pmic->vp_vstepmax;
> -+
> - 	vp_val = vdd->vp_rt_data.vpconfig_erroroffset |
> - 		(vdd->vp_rt_data.vpconfig_errorgain <<
> - 		 __ffs(vp->common->vpconfig_errorgain_mask)) |
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0133-OMAP3-VP-
> create-VP-helper-function-for-updating-erro.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0133-OMAP3-VP-create-VP-helper-function-for-updating-
> erro.patch
> deleted file mode 100644
> index 2c1ce2c..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0133-OMAP3-VP-create-
> VP-helper-function-for-updating-erro.patch
> +++ /dev/null
> @@ -1,107 +0,0 @@
> -From 0a3d1d2ea5a37d1afe583dd0aee310a979d0445f Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Tue, 5 Apr 2011 15:15:31 -0700
> -Subject: [PATCH 133/149] OMAP3+: VP: create VP helper function for
> updating error gain
> -
> -Create new helper function in VP layer for updating VP error gain.
> -Currently used during pre-scale for VP force update and VC bypass.
> -
> -TODO: determine if this can be removed from the pre-scale path and
> -moved to VP enable path.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c |   19 ++-----------------
> - arch/arm/mach-omap2/vp.c |   19 +++++++++++++++++++
> - arch/arm/mach-omap2/vp.h |    2 ++
> - 3 files changed, 23 insertions(+), 17 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index f64c826..e855559 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -96,9 +96,7 @@ int omap_vc_pre_scale(struct voltagedomain *voltdm,
> - 		      u8 *target_vsel, u8 *current_vsel)
> - {
> - 	struct omap_vc_channel *vc = voltdm->vc;
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --	struct omap_volt_data *volt_data;
> --	u32 vc_cmdval, vp_errgain_val;
> -+	u32 vc_cmdval;
> -
> - 	/* Check if sufficient pmic info is available for this vdd */
> - 	if (!voltdm->pmic) {
> -@@ -120,11 +118,6 @@ int omap_vc_pre_scale(struct voltagedomain
> *voltdm,
> - 		return -EINVAL;
> - 	}
> -
> --	/* Get volt_data corresponding to target_volt */
> --	volt_data = omap_voltage_get_voltdata(voltdm, target_volt);
> --	if (IS_ERR(volt_data))
> --		volt_data = NULL;
> --
> - 	*target_vsel = voltdm->pmic->uv_to_vsel(target_volt);
> - 	*current_vsel = voltdm->pmic->uv_to_vsel(vdd->curr_volt);
> -
> -@@ -134,15 +127,7 @@ int omap_vc_pre_scale(struct voltagedomain
> *voltdm,
> - 	vc_cmdval |= (*target_vsel << vc->common->cmd_on_shift);
> - 	voltdm->write(vc_cmdval, vc->cmdval_reg);
> -
> --	/* Setting vp errorgain based on the voltage */
> --	if (volt_data) {
> --		vp_errgain_val = voltdm->read(voltdm->vp->vpconfig);
> --		vdd->vp_rt_data.vpconfig_errorgain = volt_data->vp_errgain;
> --		vp_errgain_val &= voltdm->vp->common-
> >vpconfig_errorgain_mask;
> --		vp_errgain_val |= vdd->vp_rt_data.vpconfig_errorgain <<
> --			__ffs(voltdm->vp->common-
> >vpconfig_errorgain_mask);
> --		voltdm->write(vp_errgain_val, voltdm->vp->vpconfig);
> --	}
> -+	omap_vp_update_errorgain(voltdm, target_volt);
> -
> - 	return 0;
> - }
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index ea61a47..f68a6db 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -106,6 +106,25 @@ void __init omap_vp_init(struct voltagedomain
> *voltdm)
> - 	voltdm->write(vp_val, vp->vlimitto);
> - }
> -
> -+int omap_vp_update_errorgain(struct voltagedomain *voltdm,
> -+			     unsigned long target_volt)
> -+{
> -+	struct omap_volt_data *volt_data;
> -+
> -+	/* Get volt_data corresponding to target_volt */
> -+	volt_data = omap_voltage_get_voltdata(voltdm, target_volt);
> -+	if (IS_ERR(volt_data))
> -+		return -EINVAL;
> -+
> -+	/* Setting vp errorgain based on the voltage */
> -+	voltdm->rmw(voltdm->vp->common->vpconfig_errorgain_mask,
> -+		    volt_data->vp_errgain <<
> -+		    __ffs(voltdm->vp->common->vpconfig_errorgain_mask),
> -+		    voltdm->vp->vpconfig);
> -+
> -+	return 0;
> -+}
> -+
> - /* VP force update method of voltage scaling */
> - int omap_vp_forceupdate_scale(struct voltagedomain *voltdm,
> - 			      unsigned long target_volt)
> -diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
> -index 2afe11d..71ac738 100644
> ---- a/arch/arm/mach-omap2/vp.h
> -+++ b/arch/arm/mach-omap2/vp.h
> -@@ -148,5 +148,7 @@ void omap_vp_disable(struct voltagedomain
> *voltdm);
> - unsigned long omap_vp_get_curr_volt(struct voltagedomain *voltdm);
> - int omap_vp_forceupdate_scale(struct voltagedomain *voltdm,
> - 			      unsigned long target_volt);
> -+int omap_vp_update_errorgain(struct voltagedomain *voltdm,
> -+			     unsigned long target_volt);
> -
> - #endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0134-OMAP3-VP-
> remove-omap_vp_runtime_data.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0134-OMAP3-VP-remove-omap_vp_runtime_data.patch
> deleted file mode 100644
> index 2308995..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0134-OMAP3-VP-remove-
> omap_vp_runtime_data.patch
> +++ /dev/null
> @@ -1,170 +0,0 @@
> -From 7b7d6f216a49287479af9526b888df5e6325458b Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 4 Apr 2011 17:58:21 -0700
> -Subject: [PATCH 134/149] OMAP3+: VP: remove omap_vp_runtime_data
> -
> -Remove the "runtime" VP data in favor of direct programming of VP registers.
> -The VP is in the PRM, which is in the wakeup powerdomain, so there is no
> -need to keep the state dynamically.
> -
> -Fixes to original version from Nishanth Menon <nm at ti.com>
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/voltage.h |    2 -
> - arch/arm/mach-omap2/vp.c      |   70 ++++++++++++++++++----------------------
> -
> - arch/arm/mach-omap2/vp.h      |   28 ----------------
> - 3 files changed, 31 insertions(+), 69 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index d73c956..5235eec 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -140,13 +140,11 @@ struct omap_voltdm_pmic {
> -  *
> -  * @volt_data		: voltage table having the distinct voltages supported
> -  *			  by the domain and other associated per voltage data.
> -- * @vp_rt_data          : VP data derived at runtime, not predefined
> -  * @curr_volt		: current voltage for this vdd.
> -  * @volt_scale		: API to scale the voltage of the vdd.
> -  */
> - struct omap_vdd_info {
> - 	struct omap_volt_data *volt_data;
> --	struct omap_vp_runtime_data vp_rt_data;
> - 	u32 curr_volt;
> -
> - 	int (*volt_scale) (struct voltagedomain *voltdm,
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index f68a6db..e7d38f6 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -49,8 +49,8 @@ static void vp_latch_vsel(struct voltagedomain *voltdm)
> - void __init omap_vp_init(struct voltagedomain *voltdm)
> - {
> - 	struct omap_vp_instance *vp = voltdm->vp;
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --	u32 vp_val, sys_clk_rate, timeout_val, waittime;
> -+	u32 val, sys_clk_rate, timeout, waittime;
> -+	u32 vddmin, vddmax, vstepmin, vstepmax;
> -
> - 	if (!voltdm->read || !voltdm->write) {
> - 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
> -@@ -63,47 +63,39 @@ void __init omap_vp_init(struct voltagedomain
> *voltdm)
> - 	/* Divide to avoid overflow */
> - 	sys_clk_rate = voltdm->sys_clk.rate / 1000;
> -
> --	vdd->vp_rt_data.vpconfig_erroroffset =
> --		(voltdm->pmic->vp_erroroffset <<
> --		 __ffs(voltdm->vp->common->vpconfig_erroroffset_mask));
> --
> --	timeout_val = (sys_clk_rate * voltdm->pmic->vp_timeout_us) / 1000;
> --	vdd->vp_rt_data.vlimitto_timeout = timeout_val;
> --	vdd->vp_rt_data.vlimitto_vddmin = voltdm->pmic->vp_vddmin;
> --	vdd->vp_rt_data.vlimitto_vddmax = voltdm->pmic->vp_vddmax;
> -+	timeout = (sys_clk_rate * voltdm->pmic->vp_timeout_us) / 1000;
> -+	vddmin = voltdm->pmic->vp_vddmin;
> -+	vddmax = voltdm->pmic->vp_vddmax;
> -
> - 	waittime = ((voltdm->pmic->step_size / voltdm->pmic->slew_rate) *
> - 		    sys_clk_rate) / 1000;
> --	vdd->vp_rt_data.vstepmin_smpswaittimemin = waittime;
> --	vdd->vp_rt_data.vstepmax_smpswaittimemax = waittime;
> --	vdd->vp_rt_data.vstepmin_stepmin = voltdm->pmic->vp_vstepmin;
> --	vdd->vp_rt_data.vstepmax_stepmax = voltdm->pmic->vp_vstepmax;
> --
> --	vp_val = vdd->vp_rt_data.vpconfig_erroroffset |
> --		(vdd->vp_rt_data.vpconfig_errorgain <<
> --		 __ffs(vp->common->vpconfig_errorgain_mask)) |
> -+	vstepmin = voltdm->pmic->vp_vstepmin;
> -+	vstepmax = voltdm->pmic->vp_vstepmax;
> -+
> -+	/*
> -+	 * VP_CONFIG: error gain is not set here, it will be updated
> -+	 * on each scale, based on OPP.
> -+	 */
> -+	val = (voltdm->pmic->vp_erroroffset <<
> -+	       __ffs(voltdm->vp->common->vpconfig_erroroffset_mask)) |
> - 		vp->common->vpconfig_timeouten;
> --	voltdm->write(vp_val, vp->vpconfig);
> --
> --	vp_val = ((vdd->vp_rt_data.vstepmin_smpswaittimemin <<
> --		   vp->common->vstepmin_smpswaittimemin_shift) |
> --		  (vdd->vp_rt_data.vstepmin_stepmin <<
> --		   vp->common->vstepmin_stepmin_shift));
> --	voltdm->write(vp_val, vp->vstepmin);
> --
> --	vp_val = ((vdd->vp_rt_data.vstepmax_smpswaittimemax <<
> --		   vp->common->vstepmax_smpswaittimemax_shift) |
> --		  (vdd->vp_rt_data.vstepmax_stepmax <<
> --		   vp->common->vstepmax_stepmax_shift));
> --	voltdm->write(vp_val, vp->vstepmax);
> --
> --	vp_val = ((vdd->vp_rt_data.vlimitto_vddmax <<
> --		   vp->common->vlimitto_vddmax_shift) |
> --		  (vdd->vp_rt_data.vlimitto_vddmin <<
> --		   vp->common->vlimitto_vddmin_shift) |
> --		  (vdd->vp_rt_data.vlimitto_timeout <<
> --		   vp->common->vlimitto_timeout_shift));
> --	voltdm->write(vp_val, vp->vlimitto);
> -+	voltdm->write(val, vp->vpconfig);
> -+
> -+	/* VSTEPMIN */
> -+	val = (waittime << vp->common->vstepmin_smpswaittimemin_shift) |
> -+		(vstepmin <<  vp->common->vstepmin_stepmin_shift);
> -+	voltdm->write(val, vp->vstepmin);
> -+
> -+	/* VSTEPMAX */
> -+	val = (vstepmax << vp->common->vstepmax_stepmax_shift) |
> -+		(waittime << vp->common-
> >vstepmax_smpswaittimemax_shift);
> -+	voltdm->write(val, vp->vstepmax);
> -+
> -+	/* VLIMITTO */
> -+	val = (vddmax << vp->common->vlimitto_vddmax_shift) |
> -+		(vddmin << vp->common->vlimitto_vddmin_shift) |
> -+		(timeout <<  vp->common->vlimitto_timeout_shift);
> -+	voltdm->write(val, vp->vlimitto);
> - }
> -
> - int omap_vp_update_errorgain(struct voltagedomain *voltdm,
> -diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
> -index 71ac738..0d63267 100644
> ---- a/arch/arm/mach-omap2/vp.h
> -+++ b/arch/arm/mach-omap2/vp.h
> -@@ -107,34 +107,6 @@ struct omap_vp_instance {
> - 	bool enabled;
> - };
> -
> --/**
> -- * struct omap_vp_runtime_data - VP data populated at runtime by code
> -- * @vpconfig_erroroffset: value of ERROROFFSET bitfield in
> PRM_VP*_CONFIG
> -- * @vpconfig_errorgain: value of ERRORGAIN bitfield in PRM_VP*_CONFIG
> -- * @vstepmin_smpswaittimemin: value of SMPSWAITTIMEMIN bitfield in
> PRM_VP*_VSTEPMIN
> -- * @vstepmax_smpswaittimemax: value of SMPSWAITTIMEMAX bitfield in
> PRM_VP*_VSTEPMAX
> -- * @vlimitto_timeout: value of TIMEOUT bitfield in PRM_VP*_VLIMITTO
> -- * @vstepmin_stepmin: value of VSTEPMIN bitfield in PRM_VP*_VSTEPMIN
> -- * @vstepmax_stepmax: value of VSTEPMAX bitfield in PRM_VP*_VSTEPMAX
> -- * @vlimitto_vddmin: value of VDDMIN bitfield in PRM_VP*_VLIMITTO
> -- * @vlimitto_vddmax: value of VDDMAX bitfield in PRM_VP*_VLIMITTO
> -- *
> -- * XXX Is this structure really needed?  Why not just program the
> -- * device directly?  They are in PRM space, therefore in the WKUP
> -- * powerdomain, so register contents should not be lost in off-mode.
> -- */
> --struct omap_vp_runtime_data {
> --	u32 vpconfig_erroroffset;
> --	u16 vpconfig_errorgain;
> --	u16 vstepmin_smpswaittimemin;
> --	u16 vstepmax_smpswaittimemax;
> --	u16 vlimitto_timeout;
> --	u8 vstepmin_stepmin;
> --	u8 vstepmax_stepmax;
> --	u8 vlimitto_vddmin;
> --	u8 vlimitto_vddmax;
> --};
> --
> - extern struct omap_vp_instance omap3_vp_mpu;
> - extern struct omap_vp_instance omap3_vp_core;
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0135-OMAP3-VP-
> move-voltage-scale-function-pointer-into-st.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0135-OMAP3-VP-move-voltage-scale-function-pointer-
> into-st.patch
> deleted file mode 100644
> index efcc75a..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0135-OMAP3-VP-move-
> voltage-scale-function-pointer-into-st.patch
> +++ /dev/null
> @@ -1,134 +0,0 @@
> -From 31b07224df028a7913f82c38f13c2bd621613756 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Thu, 14 Jul 2011 11:12:32 -0700
> -Subject: [PATCH 135/149] OMAP3+: VP: move voltage scale function pointer
> into struct voltagedomain
> -
> -Function pointer used for actual voltage scaling (e.g. VP force update
> -or VC bypass) is moved from omap_vdd_info into struct voltagedomain,
> -resulting in renames s/vdd->volt_scale/voltdm->scale/
> -
> -No functional changes.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/voltage.c |   24 +++++++-----------------
> - arch/arm/mach-omap2/voltage.h |    8 ++++----
> - 2 files changed, 11 insertions(+), 21 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 4a15668..32f0873 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -45,10 +45,8 @@ static LIST_HEAD(voltdm_list);
> -
> - static int __init _config_common_vdd_data(struct voltagedomain *voltdm)
> - {
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> --
> - 	/* Generic voltage parameters */
> --	vdd->volt_scale = omap_vp_forceupdate_scale;
> -+	voltdm->scale = omap_vp_forceupdate_scale;
> -
> - 	return 0;
> - }
> -@@ -107,22 +105,18 @@ unsigned long omap_voltage_get_nom_volt(struct
> voltagedomain *voltdm)
> - int omap_voltage_scale_vdd(struct voltagedomain *voltdm,
> - 		unsigned long target_volt)
> - {
> --	struct omap_vdd_info *vdd;
> --
> - 	if (!voltdm || IS_ERR(voltdm)) {
> - 		pr_warning("%s: VDD specified does not exist!\n", __func__);
> - 		return -EINVAL;
> - 	}
> -
> --	vdd = voltdm->vdd;
> --
> --	if (!vdd->volt_scale) {
> -+	if (!voltdm->scale) {
> - 		pr_err("%s: No voltage scale API registered for vdd_%s\n",
> - 			__func__, voltdm->name);
> - 		return -ENODATA;
> - 	}
> -
> --	return vdd->volt_scale(voltdm, target_volt);
> -+	return voltdm->scale(voltdm, target_volt);
> - }
> -
> - /**
> -@@ -258,23 +252,19 @@ int omap_voltage_register_pmic(struct
> voltagedomain *voltdm,
> -  * defined in voltage.h
> -  */
> - void omap_change_voltscale_method(struct voltagedomain *voltdm,
> --		int voltscale_method)
> -+				  int voltscale_method)
> - {
> --	struct omap_vdd_info *vdd;
> --
> - 	if (!voltdm || IS_ERR(voltdm)) {
> - 		pr_warning("%s: VDD specified does not exist!\n", __func__);
> - 		return;
> - 	}
> -
> --	vdd = voltdm->vdd;
> --
> - 	switch (voltscale_method) {
> - 	case VOLTSCALE_VPFORCEUPDATE:
> --		vdd->volt_scale = omap_vp_forceupdate_scale;
> -+		voltdm->scale = omap_vp_forceupdate_scale;
> - 		return;
> - 	case VOLTSCALE_VCBYPASS:
> --		vdd->volt_scale = omap_vc_bypass_scale;
> -+		voltdm->scale = omap_vc_bypass_scale;
> - 		return;
> - 	default:
> - 		pr_warning("%s: Trying to change the method of voltage
> scaling"
> -@@ -315,7 +305,7 @@ int __init omap_voltage_late_init(void)
> - 		clk_put(sys_ck);
> -
> - 		if (voltdm->vc) {
> --			voltdm->vdd->volt_scale = omap_vc_bypass_scale;
> -+			voltdm->scale = omap_vc_bypass_scale;
> - 			omap_vc_init_channel(voltdm);
> - 		}
> -
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 5235eec..d2a0c24 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -60,6 +60,7 @@ struct omap_vfsm_instance {
> -  * @pwrdm_node: list_head linking all powerdomains in this voltagedomain
> -  * @vdd: to be removed
> -  * @pwrdms: powerdomains in this voltagedomain
> -+ * @scale: function used to scale the voltage of the voltagedomain
> -  */
> - struct voltagedomain {
> - 	char *name;
> -@@ -81,6 +82,9 @@ struct voltagedomain {
> - 		u32 rate;
> - 	} sys_clk;
> -
> -+	int (*scale) (struct voltagedomain *voltdm,
> -+		      unsigned long target_volt);
> -+
> - 	struct omap_vdd_info *vdd;
> - };
> -
> -@@ -141,14 +145,10 @@ struct omap_voltdm_pmic {
> -  * @volt_data		: voltage table having the distinct voltages supported
> -  *			  by the domain and other associated per voltage data.
> -  * @curr_volt		: current voltage for this vdd.
> -- * @volt_scale		: API to scale the voltage of the vdd.
> -  */
> - struct omap_vdd_info {
> - 	struct omap_volt_data *volt_data;
> - 	u32 curr_volt;
> --
> --	int (*volt_scale) (struct voltagedomain *voltdm,
> --		unsigned long target_volt);
> - };
> -
> - int omap_voltage_scale_vdd(struct voltagedomain *voltdm,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0136-OMAP-VP-
> Explicitly-mask-VPVOLTAGE-field.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0136-OMAP-VP-Explicitly-mask-VPVOLTAGE-field.patch
> deleted file mode 100644
> index 0bb557d..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0136-OMAP-VP-Explicitly-
> mask-VPVOLTAGE-field.patch
> +++ /dev/null
> @@ -1,81 +0,0 @@
> -From 6bf9eba8b75c6e8c895f7be294794846c51cc3f1 Mon Sep 17 00:00:00
> 2001
> -From: Todd Poynor <toddpoynor at google.com>
> -Date: Fri, 27 May 2011 19:15:59 -0700
> -Subject: [PATCH 136/149] OMAP: VP: Explicitly mask VPVOLTAGE field
> -
> -Reading the VPVOLTAGE field of PRM_VP_*_VOLTAGE registers currently
> -relies on a u32 -> u8 conversion to mask off the FORCEUPDATEWAIT field
> -in the upper bits.  Make this explicit using the mask symbol
> -already defined, added as a new field in struct omap_vp_common.
> -
> -Signed-off-by: Todd Poynor <toddpoynor at google.com>
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vp.c          |    3 ++-
> - arch/arm/mach-omap2/vp.h          |    2 ++
> - arch/arm/mach-omap2/vp3xxx_data.c |    2 ++
> - arch/arm/mach-omap2/vp44xx_data.c |    1 +
> - 4 files changed, 7 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index e7d38f6..3807620 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -227,7 +227,8 @@ unsigned long omap_vp_get_curr_volt(struct
> voltagedomain *voltdm)
> - 		return 0;
> - 	}
> -
> --	curr_vsel = voltdm->read(vp->voltage);
> -+	curr_vsel = (voltdm->read(vp->voltage) & vp->common-
> >vpvoltage_mask)
> -+		>> __ffs(vp->common->vpvoltage_mask);
> -
> - 	if (!voltdm->pmic || !voltdm->pmic->vsel_to_uv) {
> - 		pr_warning("%s: PMIC function to convert vsel to voltage"
> -diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
> -index 0d63267..f78752b 100644
> ---- a/arch/arm/mach-omap2/vp.h
> -+++ b/arch/arm/mach-omap2/vp.h
> -@@ -63,6 +63,7 @@ struct omap_vp_ops {
> -  * @vlimitto_vddmin_shift: VDDMIN field shift in PRM_VP*_VLIMITTO reg
> -  * @vlimitto_vddmax_shift: VDDMAX field shift in PRM_VP*_VLIMITTO reg
> -  * @vlimitto_timeout_shift: TIMEOUT field shift in PRM_VP*_VLIMITTO reg
> -+ * @vpvoltage_mask: VPVOLTAGE field mask in PRM_VP*_VOLTAGE reg
> -  */
> - struct omap_vp_common {
> - 	u32 vpconfig_erroroffset_mask;
> -@@ -79,6 +80,7 @@ struct omap_vp_common {
> - 	u8 vlimitto_vddmin_shift;
> - 	u8 vlimitto_vddmax_shift;
> - 	u8 vlimitto_timeout_shift;
> -+	u8 vpvoltage_mask;
> -
> - 	const struct omap_vp_ops *ops;
> - };
> -diff --git a/arch/arm/mach-omap2/vp3xxx_data.c b/arch/arm/mach-
> omap2/vp3xxx_data.c
> -index d429c44..260c554 100644
> ---- a/arch/arm/mach-omap2/vp3xxx_data.c
> -+++ b/arch/arm/mach-omap2/vp3xxx_data.c
> -@@ -51,6 +51,8 @@ static const struct omap_vp_common
> omap3_vp_common = {
> - 	.vlimitto_vddmin_shift = OMAP3430_VDDMIN_SHIFT,
> - 	.vlimitto_vddmax_shift = OMAP3430_VDDMAX_SHIFT,
> - 	.vlimitto_timeout_shift = OMAP3430_TIMEOUT_SHIFT,
> -+	.vpvoltage_mask = OMAP3430_VPVOLTAGE_MASK,
> -+
> - 	.ops = &omap3_vp_ops,
> - };
> -
> -diff --git a/arch/arm/mach-omap2/vp44xx_data.c b/arch/arm/mach-
> omap2/vp44xx_data.c
> -index 0daf2a4..b4e7704 100644
> ---- a/arch/arm/mach-omap2/vp44xx_data.c
> -+++ b/arch/arm/mach-omap2/vp44xx_data.c
> -@@ -51,6 +51,7 @@ static const struct omap_vp_common
> omap4_vp_common = {
> - 	.vlimitto_vddmin_shift = OMAP4430_VDDMIN_SHIFT,
> - 	.vlimitto_vddmax_shift = OMAP4430_VDDMAX_SHIFT,
> - 	.vlimitto_timeout_shift = OMAP4430_TIMEOUT_SHIFT,
> -+	.vpvoltage_mask = OMAP4430_VPVOLTAGE_MASK,
> - 	.ops = &omap4_vp_ops,
> - };
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0137-OMAP3-VP-
> update_errorgain-return-error-if-VP.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0137-OMAP3-VP-update_errorgain-return-error-if-VP.patch
> deleted file mode 100644
> index b0ca14a..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0137-OMAP3-VP-
> update_errorgain-return-error-if-VP.patch
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -From abe6084b3aea9f55bb9b9127a0a4c58f915e635e Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 18 Jul 2011 15:31:43 -0700
> -Subject: [PATCH 137/149] OMAP3+: VP: update_errorgain(): return error if VP
> -
> -Add check for valid VP in omap_vp_update_errorgain()
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vp.c |    3 +++
> - 1 files changed, 3 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index 3807620..29698ac 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -103,6 +103,9 @@ int omap_vp_update_errorgain(struct voltagedomain
> *voltdm,
> - {
> - 	struct omap_volt_data *volt_data;
> -
> -+	if (!voltdm->vp)
> -+		return -EINVAL;
> -+
> - 	/* Get volt_data corresponding to target_volt */
> - 	volt_data = omap_voltage_get_voltdata(voltdm, target_volt);
> - 	if (IS_ERR(volt_data))
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0138-OMAP3-VP-
> remove-unused-omap_vp_get_curr_volt.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0138-OMAP3-VP-remove-unused-
> omap_vp_get_curr_volt.patch
> deleted file mode 100644
> index 57ba0a2..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0138-OMAP3-VP-remove-
> unused-omap_vp_get_curr_volt.patch
> +++ /dev/null
> @@ -1,70 +0,0 @@
> -From 479369a9e78273521a5998af043bcad58ee832f8 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Fri, 15 Jul 2011 16:38:10 -0700
> -Subject: [PATCH 138/149] OMAP3+: VP: remove unused
> omap_vp_get_curr_volt()
> -
> ----
> - arch/arm/mach-omap2/vp.c |   34 ----------------------------------
> - arch/arm/mach-omap2/vp.h |    1 -
> - 2 files changed, 0 insertions(+), 35 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index 29698ac..24020ea 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -209,40 +209,6 @@ int omap_vp_forceupdate_scale(struct
> voltagedomain *voltdm,
> - }
> -
> - /**
> -- * omap_vp_get_curr_volt() - API to get the current vp voltage.
> -- * @voltdm:	pointer to the VDD.
> -- *
> -- * This API returns the current voltage for the specified voltage processor
> -- */
> --unsigned long omap_vp_get_curr_volt(struct voltagedomain *voltdm)
> --{
> --	struct omap_vp_instance *vp = voltdm->vp;
> --	u8 curr_vsel;
> --
> --	if (!voltdm || IS_ERR(voltdm)) {
> --		pr_warning("%s: VDD specified does not exist!\n", __func__);
> --		return 0;
> --	}
> --
> --	if (!voltdm->read) {
> --		pr_err("%s: No read API for reading vdd_%s regs\n",
> --			__func__, voltdm->name);
> --		return 0;
> --	}
> --
> --	curr_vsel = (voltdm->read(vp->voltage) & vp->common-
> >vpvoltage_mask)
> --		>> __ffs(vp->common->vpvoltage_mask);
> --
> --	if (!voltdm->pmic || !voltdm->pmic->vsel_to_uv) {
> --		pr_warning("%s: PMIC function to convert vsel to voltage"
> --			"in uV not registerd\n", __func__);
> --		return 0;
> --	}
> --
> --	return voltdm->pmic->vsel_to_uv(curr_vsel);
> --}
> --
> --/**
> -  * omap_vp_enable() - API to enable a particular VP
> -  * @voltdm:	pointer to the VDD whose VP is to be enabled.
> -  *
> -diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
> -index f78752b..d9bc4f1 100644
> ---- a/arch/arm/mach-omap2/vp.h
> -+++ b/arch/arm/mach-omap2/vp.h
> -@@ -119,7 +119,6 @@ extern struct omap_vp_instance omap4_vp_core;
> - void omap_vp_init(struct voltagedomain *voltdm);
> - void omap_vp_enable(struct voltagedomain *voltdm);
> - void omap_vp_disable(struct voltagedomain *voltdm);
> --unsigned long omap_vp_get_curr_volt(struct voltagedomain *voltdm);
> - int omap_vp_forceupdate_scale(struct voltagedomain *voltdm,
> - 			      unsigned long target_volt);
> - int omap_vp_update_errorgain(struct voltagedomain *voltdm,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0139-OMAP3-VP-
> combine-setting-init-voltage-into-common-fu.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0139-OMAP3-VP-combine-setting-init-
> voltage-into-common-fu.patch
> deleted file mode 100644
> index 484ae55..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0139-OMAP3-VP-combine-
> setting-init-voltage-into-common-fu.patch
> +++ /dev/null
> @@ -1,141 +0,0 @@
> -From 562b12a6336f94d9e5957c68b7181a9f36931e7a Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Fri, 15 Jul 2011 17:05:48 -0700
> -Subject: [PATCH 139/149] OMAP3+: VP: combine setting init voltage into
> common function
> -
> -combine VPCONFIG init voltage setup into common function and use from
> -both vp_enable and from vp_forceupdate_scale().
> -
> -NOTE: this patch changes the sequence of when the initVDD bit is
> -cleared.  The bit is now cleared immediately after it was written.
> -Since only the rising edge of this bit has any affect according to the
> -TRM, the exact timing of clearing of this bit should not have any
> -effect.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vp.c |   58 +++++++++++++++------------------------------
> -
> - 1 files changed, 19 insertions(+), 39 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
> -index 24020ea..66bd700 100644
> ---- a/arch/arm/mach-omap2/vp.c
> -+++ b/arch/arm/mach-omap2/vp.c
> -@@ -9,31 +9,18 @@
> - #include "prm-regbits-44xx.h"
> - #include "prm44xx.h"
> -
> --static void vp_latch_vsel(struct voltagedomain *voltdm)
> -+static u32 _vp_set_init_voltage(struct voltagedomain *voltdm, u32 volt)
> - {
> - 	struct omap_vp_instance *vp = voltdm->vp;
> - 	u32 vpconfig;
> --	unsigned long uvdc;
> - 	char vsel;
> -
> --	uvdc = omap_voltage_get_nom_volt(voltdm);
> --	if (!uvdc) {
> --		pr_warning("%s: unable to find current voltage for vdd_%s\n",
> --			__func__, voltdm->name);
> --		return;
> --	}
> --
> --	if (!voltdm->pmic || !voltdm->pmic->uv_to_vsel) {
> --		pr_warning("%s: PMIC function to convert voltage in uV to"
> --			" vsel not registered\n", __func__);
> --		return;
> --	}
> --
> --	vsel = voltdm->pmic->uv_to_vsel(uvdc);
> -+	vsel = voltdm->pmic->uv_to_vsel(volt);
> -
> - 	vpconfig = voltdm->read(vp->vpconfig);
> - 	vpconfig &= ~(vp->common->vpconfig_initvoltage_mask |
> --			vp->common->vpconfig_initvdd);
> -+		      vp->common->vpconfig_forceupdate |
> -+		      vp->common->vpconfig_initvdd);
> - 	vpconfig |= vsel << __ffs(vp->common->vpconfig_initvoltage_mask);
> - 	voltdm->write(vpconfig, vp->vpconfig);
> -
> -@@ -43,6 +30,8 @@ static void vp_latch_vsel(struct voltagedomain *voltdm)
> -
> - 	/* Clear initVDD copy trigger bit */
> - 	voltdm->write(vpconfig, vp->vpconfig);
> -+
> -+	return vpconfig;
> - }
> -
> - /* Generic voltage init functions */
> -@@ -149,22 +138,11 @@ int omap_vp_forceupdate_scale(struct
> voltagedomain *voltdm,
> - 		return -ETIMEDOUT;
> - 	}
> -
> --	/* Configure for VP-Force Update */
> --	vpconfig = voltdm->read(vp->vpconfig);
> --	vpconfig &= ~(vp->common->vpconfig_initvdd |
> --			vp->common->vpconfig_forceupdate |
> --			vp->common->vpconfig_initvoltage_mask);
> --	vpconfig |= ((target_vsel <<
> --		      __ffs(vp->common->vpconfig_initvoltage_mask)));
> --	voltdm->write(vpconfig, vp->vpconfig);
> --
> --	/* Trigger initVDD value copy to voltage processor */
> --	vpconfig |= vp->common->vpconfig_initvdd;
> --	voltdm->write(vpconfig, vp->vpconfig);
> -+	vpconfig = _vp_set_init_voltage(voltdm, target_volt);
> -
> - 	/* Force update of voltage */
> --	vpconfig |= vp->common->vpconfig_forceupdate;
> --	voltdm->write(vpconfig, vp->vpconfig);
> -+	voltdm->write(vpconfig | vp->common->vpconfig_forceupdate,
> -+		      voltdm->vp->vpconfig);
> -
> - 	/*
> - 	 * Wait for TransactionDone. Typical latency is <200us.
> -@@ -197,12 +175,7 @@ int omap_vp_forceupdate_scale(struct
> voltagedomain *voltdm,
> - 			"to clear the TRANXDONE status\n",
> - 			__func__, voltdm->name);
> -
> --	vpconfig = voltdm->read(vp->vpconfig);
> --	/* Clear initVDD copy trigger bit */
> --	vpconfig &= ~vp->common->vpconfig_initvdd;
> --	voltdm->write(vpconfig, vp->vpconfig);
> - 	/* Clear force bit */
> --	vpconfig &= ~vp->common->vpconfig_forceupdate;
> - 	voltdm->write(vpconfig, vp->vpconfig);
> -
> - 	return 0;
> -@@ -218,7 +191,7 @@ int omap_vp_forceupdate_scale(struct voltagedomain
> *voltdm,
> - void omap_vp_enable(struct voltagedomain *voltdm)
> - {
> - 	struct omap_vp_instance *vp;
> --	u32 vpconfig;
> -+	u32 vpconfig, volt;
> -
> - 	if (!voltdm || IS_ERR(voltdm)) {
> - 		pr_warning("%s: VDD specified does not exist!\n", __func__);
> -@@ -236,12 +209,19 @@ void omap_vp_enable(struct voltagedomain
> *voltdm)
> - 	if (vp->enabled)
> - 		return;
> -
> --	vp_latch_vsel(voltdm);
> -+	volt = voltdm_get_voltage(voltdm);
> -+	if (!volt) {
> -+		pr_warning("%s: unable to find current voltage for %s\n",
> -+			   __func__, voltdm->name);
> -+		return;
> -+	}
> -+
> -+	vpconfig = _vp_set_init_voltage(voltdm, volt);
> -
> - 	/* Enable VP */
> --	vpconfig = voltdm->read(vp->vpconfig);
> - 	vpconfig |= vp->common->vpconfig_vpenable;
> - 	voltdm->write(vpconfig, vp->vpconfig);
> -+
> - 	vp->enabled = true;
> - }
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0140-OMAP3-
> voltage-rename-scale-and-reset-functions-using.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0140-OMAP3-voltage-rename-scale-
> and-reset-functions-using.patch
> deleted file mode 100644
> index 00a2b86..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0140-OMAP3-voltage-
> rename-scale-and-reset-functions-using.patch
> +++ /dev/null
> @@ -1,141 +0,0 @@
> -From dfebda78f9517dcf20fae5f5cbbdb3c1bebe4e17 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Tue, 5 Apr 2011 16:27:21 -0700
> -Subject: [PATCH 140/149] OMAP3+: voltage: rename scale and reset functions
> using voltdm_ prefix
> -
> -Rename voltage scaling related functions to use voltdm_ prefix intead
> -of omap_voltage_, and cleanup kerneldoc comments in the process.
> -
> -s/omap_voltage_scale_vdd/voltdm_scale/
> -s/omap_voltage_reset/voltdm_reset/
> -
> -Also, in voltdm_reset() s/target_uvdc/target_volt/ to be consistent with
> -naming throughout the file.
> -
> -No functional changes.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/pm.c                 |    2 +-
> - arch/arm/mach-omap2/smartreflex-class3.c |    2 +-
> - arch/arm/mach-omap2/voltage.c            |   29 ++++++++++++++---------------
> - arch/arm/mach-omap2/voltage.h            |    5 ++---
> - 4 files changed, 18 insertions(+), 20 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
> -index f81340e..659e400 100644
> ---- a/arch/arm/mach-omap2/pm.c
> -+++ b/arch/arm/mach-omap2/pm.c
> -@@ -214,7 +214,7 @@ static int __init omap2_set_init_voltage(char
> *vdd_name, char *clk_name,
> - 		goto exit;
> - 	}
> -
> --	omap_voltage_scale_vdd(voltdm, bootup_volt);
> -+	voltdm_scale(voltdm, bootup_volt);
> - 	return 0;
> -
> - exit:
> -diff --git a/arch/arm/mach-omap2/smartreflex-class3.c b/arch/arm/mach-
> omap2/smartreflex-class3.c
> -index f438cf4..4eac1bc 100644
> ---- a/arch/arm/mach-omap2/smartreflex-class3.c
> -+++ b/arch/arm/mach-omap2/smartreflex-class3.c
> -@@ -32,7 +32,7 @@ static int sr_class3_disable(struct voltagedomain
> *voltdm, int is_volt_reset)
> - 	omap_vp_disable(voltdm);
> - 	sr_disable(voltdm);
> - 	if (is_volt_reset)
> --		omap_voltage_reset(voltdm);
> -+		voltdm_reset(voltdm);
> -
> - 	return 0;
> - }
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 32f0873..7588480 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -94,16 +94,15 @@ unsigned long omap_voltage_get_nom_volt(struct
> voltagedomain *voltdm)
> - }
> -
> - /**
> -- * omap_voltage_scale_vdd() - API to scale voltage of a particular
> -- *				voltage domain.
> -- * @voltdm:	pointer to the VDD which is to be scaled.
> -- * @target_volt:	The target voltage of the voltage domain
> -+ * voltdm_scale() - API to scale voltage of a particular voltage domain.
> -+ * @voltdm: pointer to the voltage domain which is to be scaled.
> -+ * @target_volt: The target voltage of the voltage domain
> -  *
> -  * This API should be called by the kernel to do the voltage scaling
> -- * for a particular voltage domain during dvfs or any other situation.
> -+ * for a particular voltage domain during DVFS.
> -  */
> --int omap_voltage_scale_vdd(struct voltagedomain *voltdm,
> --		unsigned long target_volt)
> -+int voltdm_scale(struct voltagedomain *voltdm,
> -+		 unsigned long target_volt)
> - {
> - 	if (!voltdm || IS_ERR(voltdm)) {
> - 		pr_warning("%s: VDD specified does not exist!\n", __func__);
> -@@ -120,31 +119,31 @@ int omap_voltage_scale_vdd(struct voltagedomain
> *voltdm,
> - }
> -
> - /**
> -- * omap_voltage_reset() - Resets the voltage of a particular voltage domain
> -- *			to that of the current OPP.
> -- * @voltdm:	pointer to the VDD whose voltage is to be reset.
> -+ * voltdm_reset() - Resets the voltage of a particular voltage domain
> -+ * 	            to that of the current OPP.
> -+ * @voltdm: pointer to the voltage domain whose voltage is to be reset.
> -  *
> -  * This API finds out the correct voltage the voltage domain is supposed
> -  * to be at and resets the voltage to that level. Should be used especially
> -  * while disabling any voltage compensation modules.
> -  */
> --void omap_voltage_reset(struct voltagedomain *voltdm)
> -+void voltdm_reset(struct voltagedomain *voltdm)
> - {
> --	unsigned long target_uvdc;
> -+	unsigned long target_volt;
> -
> - 	if (!voltdm || IS_ERR(voltdm)) {
> - 		pr_warning("%s: VDD specified does not exist!\n", __func__);
> - 		return;
> - 	}
> -
> --	target_uvdc = omap_voltage_get_nom_volt(voltdm);
> --	if (!target_uvdc) {
> -+	target_volt = omap_voltage_get_nom_volt(voltdm);
> -+	if (!target_volt) {
> - 		pr_err("%s: unable to find current voltage for vdd_%s\n",
> - 			__func__, voltdm->name);
> - 		return;
> - 	}
> -
> --	omap_voltage_scale_vdd(voltdm, target_uvdc);
> -+	voltdm_scale(voltdm, target_volt);
> - }
> -
> - /**
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index d2a0c24..e3efbf9 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -151,9 +151,6 @@ struct omap_vdd_info {
> - 	u32 curr_volt;
> - };
> -
> --int omap_voltage_scale_vdd(struct voltagedomain *voltdm,
> --		unsigned long target_volt);
> --void omap_voltage_reset(struct voltagedomain *voltdm);
> - void omap_voltage_get_volttable(struct voltagedomain *voltdm,
> - 		struct omap_volt_data **volt_data);
> - struct omap_volt_data *omap_voltage_get_voltdata(struct voltagedomain
> *voltdm,
> -@@ -191,4 +188,6 @@ int voltdm_for_each(int (*fn)(struct voltagedomain
> *voltdm, void *user),
> - int voltdm_for_each_pwrdm(struct voltagedomain *voltdm,
> - 			  int (*fn)(struct voltagedomain *voltdm,
> - 				    struct powerdomain *pwrdm));
> -+int voltdm_scale(struct voltagedomain *voltdm, unsigned long target_volt);
> -+void voltdm_reset(struct voltagedomain *voltdm);
> - #endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0141-OMAP3-
> voltage-move-rename-curr_volt-from-vdd_info-in.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0141-OMAP3-voltage-move-rename-
> curr_volt-from-vdd_info-in.patch
> deleted file mode 100644
> index c9c483c..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0141-OMAP3-voltage-
> move-rename-curr_volt-from-vdd_info-in.patch
> +++ /dev/null
> @@ -1,106 +0,0 @@
> -From 20a2c2c2dcf15d7e66d70b5e6724597dd697b4a7 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Tue, 5 Apr 2011 16:55:22 -0700
> -Subject: [PATCH 141/149] OMAP3+: voltage: move/rename curr_volt from
> vdd_info into struct voltagedomain
> -
> -Track current nominal voltage as part of struct voltagedomain instead
> -of omap_vdd_info, which will soon be removed.
> -
> -Also renames field from curr_volt to nominal_volt.
> -
> -No functional changes.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c      |    5 ++---
> - arch/arm/mach-omap2/voltage.c |    6 +-----
> - arch/arm/mach-omap2/voltage.h |    4 ++--
> - 3 files changed, 5 insertions(+), 10 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index e855559..3233c69 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -119,7 +119,7 @@ int omap_vc_pre_scale(struct voltagedomain
> *voltdm,
> - 	}
> -
> - 	*target_vsel = voltdm->pmic->uv_to_vsel(target_volt);
> --	*current_vsel = voltdm->pmic->uv_to_vsel(vdd->curr_volt);
> -+	*current_vsel = voltdm->pmic->uv_to_vsel(voltdm->nominal_volt);
> -
> - 	/* Setting the ON voltage to the new target voltage */
> - 	vc_cmdval = voltdm->read(vc->cmdval_reg);
> -@@ -136,7 +136,6 @@ void omap_vc_post_scale(struct voltagedomain
> *voltdm,
> - 			unsigned long target_volt,
> - 			u8 target_vsel, u8 current_vsel)
> - {
> --	struct omap_vdd_info *vdd = voltdm->vdd;
> - 	u32 smps_steps = 0, smps_delay = 0;
> -
> - 	smps_steps = abs(target_vsel - current_vsel);
> -@@ -145,7 +144,7 @@ void omap_vc_post_scale(struct voltagedomain
> *voltdm,
> - 			voltdm->pmic->slew_rate) + 2;
> - 	udelay(smps_delay);
> -
> --	vdd->curr_volt = target_volt;
> -+	voltdm->nominal_volt = target_volt;
> - }
> -
> - /* vc_bypass_scale - VC bypass method of voltage scaling */
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 7588480..29ab389 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -81,16 +81,12 @@ ovdc_out:
> -  */
> - unsigned long omap_voltage_get_nom_volt(struct voltagedomain *voltdm)
> - {
> --	struct omap_vdd_info *vdd;
> --
> - 	if (!voltdm || IS_ERR(voltdm)) {
> - 		pr_warning("%s: VDD specified does not exist!\n", __func__);
> - 		return 0;
> - 	}
> -
> --	vdd = voltdm->vdd;
> --
> --	return vdd->curr_volt;
> -+	return voltdm->nominal_volt;
> - }
> -
> - /**
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index e3efbf9..3e32eda 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -61,6 +61,7 @@ struct omap_vfsm_instance {
> -  * @vdd: to be removed
> -  * @pwrdms: powerdomains in this voltagedomain
> -  * @scale: function used to scale the voltage of the voltagedomain
> -+ * @nominal_volt: current nominal voltage for this voltage domain
> -  */
> - struct voltagedomain {
> - 	char *name;
> -@@ -84,6 +85,7 @@ struct voltagedomain {
> -
> - 	int (*scale) (struct voltagedomain *voltdm,
> - 		      unsigned long target_volt);
> -+	u32 nominal_volt;
> -
> - 	struct omap_vdd_info *vdd;
> - };
> -@@ -144,11 +146,9 @@ struct omap_voltdm_pmic {
> -  *
> -  * @volt_data		: voltage table having the distinct voltages supported
> -  *			  by the domain and other associated per voltage data.
> -- * @curr_volt		: current voltage for this vdd.
> -  */
> - struct omap_vdd_info {
> - 	struct omap_volt_data *volt_data;
> --	u32 curr_volt;
> - };
> -
> - void omap_voltage_get_volttable(struct voltagedomain *voltdm,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0142-OMAP3-voltdm-
> final-removal-of-omap_vdd_info.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0142-OMAP3-voltdm-final-removal-of-omap_vdd_info.patch
> deleted file mode 100644
> index e191c6f..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0142-OMAP3-voltdm-final-
> removal-of-omap_vdd_info.patch
> +++ /dev/null
> @@ -1,282 +0,0 @@
> -From e4cf1f9419b8613017296ee163acedb79dc2967b Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Thu, 14 Jul 2011 11:29:06 -0700
> -Subject: [PATCH 142/149] OMAP3+: voltdm: final removal of omap_vdd_info
> -
> -Remove last remaining member (volt_data) from omap_vdd_info into
> -struct voltagedomain and removal remaining usage and reference to
> -omap_vdd_info.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/voltage.c                 |   54 ++++--------------------
> - arch/arm/mach-omap2/voltage.h                 |   16 +------
> - arch/arm/mach-omap2/voltagedomains3xxx_data.c |   14 ++-----
> - arch/arm/mach-omap2/voltagedomains44xx_data.c |   15 +-----
> - 4 files changed, 18 insertions(+), 81 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 29ab389..2e5528f 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -43,34 +43,6 @@
> -
> - static LIST_HEAD(voltdm_list);
> -
> --static int __init _config_common_vdd_data(struct voltagedomain *voltdm)
> --{
> --	/* Generic voltage parameters */
> --	voltdm->scale = omap_vp_forceupdate_scale;
> --
> --	return 0;
> --}
> --
> --static int __init omap_vdd_data_configure(struct voltagedomain *voltdm)
> --{
> --	int ret = -EINVAL;
> --
> --	if (!voltdm->pmic) {
> --		pr_err("%s: PMIC info requried to configure vdd_%s not"
> --			"populated.Hence cannot initialize vdd_%s\n",
> --			__func__, voltdm->name, voltdm->name);
> --		goto ovdc_out;
> --	}
> --
> --	if (IS_ERR_VALUE(_config_common_vdd_data(voltdm)))
> --		goto ovdc_out;
> --
> --	ret = 0;
> --
> --ovdc_out:
> --	return ret;
> --}
> --
> - /* Public functions */
> - /**
> -  * omap_voltage_get_nom_volt() - Gets the current non-auto-compensated
> voltage
> -@@ -155,18 +127,14 @@ void voltdm_reset(struct voltagedomain *voltdm)
> -  *
> -  */
> - void omap_voltage_get_volttable(struct voltagedomain *voltdm,
> --		struct omap_volt_data **volt_data)
> -+				struct omap_volt_data **volt_data)
> - {
> --	struct omap_vdd_info *vdd;
> --
> - 	if (!voltdm || IS_ERR(voltdm)) {
> - 		pr_warning("%s: VDD specified does not exist!\n", __func__);
> - 		return;
> - 	}
> -
> --	vdd = voltdm->vdd;
> --
> --	*volt_data = vdd->volt_data;
> -+	*volt_data = voltdm->volt_data;
> - }
> -
> - /**
> -@@ -185,9 +153,8 @@ void omap_voltage_get_volttable(struct
> voltagedomain *voltdm,
> -  * domain or if there is no matching entry.
> -  */
> - struct omap_volt_data *omap_voltage_get_voltdata(struct voltagedomain
> *voltdm,
> --		unsigned long volt)
> -+						 unsigned long volt)
> - {
> --	struct omap_vdd_info *vdd;
> - 	int i;
> -
> - 	if (!voltdm || IS_ERR(voltdm)) {
> -@@ -195,17 +162,15 @@ struct omap_volt_data
> *omap_voltage_get_voltdata(struct voltagedomain *voltdm,
> - 		return ERR_PTR(-EINVAL);
> - 	}
> -
> --	vdd = voltdm->vdd;
> --
> --	if (!vdd->volt_data) {
> -+	if (!voltdm->volt_data) {
> - 		pr_warning("%s: voltage table does not exist for vdd_%s\n",
> - 			__func__, voltdm->name);
> - 		return ERR_PTR(-ENODATA);
> - 	}
> -
> --	for (i = 0; vdd->volt_data[i].volt_nominal != 0; i++) {
> --		if (vdd->volt_data[i].volt_nominal == volt)
> --			return &vdd->volt_data[i];
> -+	for (i = 0; voltdm->volt_data[i].volt_nominal != 0; i++) {
> -+		if (voltdm->volt_data[i].volt_nominal == volt)
> -+			return &voltdm->volt_data[i];
> - 	}
> -
> - 	pr_notice("%s: Unable to match the current voltage with the voltage"
> -@@ -304,9 +269,8 @@ int __init omap_voltage_late_init(void)
> - 			omap_vc_init_channel(voltdm);
> - 		}
> -
> --		if (voltdm->vdd) {
> --			if (omap_vdd_data_configure(voltdm))
> --				continue;
> -+		if (voltdm->vp) {
> -+			voltdm->scale = omap_vp_forceupdate_scale;
> - 			omap_vp_init(voltdm);
> - 		}
> - 	}
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 3e32eda..68b1ed5 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -33,8 +33,6 @@ struct powerdomain;
> - #define OMAP3_VOLTOFFSET	0xff
> - #define OMAP3_VOLTSETUP2	0xff
> -
> --struct omap_vdd_info;
> --
> - /**
> -  * struct omap_vfsm_instance - per-voltage manager FSM register/bitfield
> -  * data
> -@@ -85,9 +83,9 @@ struct voltagedomain {
> -
> - 	int (*scale) (struct voltagedomain *voltdm,
> - 		      unsigned long target_volt);
> --	u32 nominal_volt;
> -
> --	struct omap_vdd_info *vdd;
> -+	u32 nominal_volt;
> -+	struct omap_volt_data *volt_data;
> - };
> -
> - /**
> -@@ -141,16 +139,6 @@ struct omap_voltdm_pmic {
> - 	u8 (*uv_to_vsel) (unsigned long uV);
> - };
> -
> --/**
> -- * omap_vdd_info - Per Voltage Domain info
> -- *
> -- * @volt_data		: voltage table having the distinct voltages supported
> -- *			  by the domain and other associated per voltage data.
> -- */
> --struct omap_vdd_info {
> --	struct omap_volt_data *volt_data;
> --};
> --
> - void omap_voltage_get_volttable(struct voltagedomain *voltdm,
> - 		struct omap_volt_data **volt_data);
> - struct omap_volt_data *omap_voltage_get_voltdata(struct voltagedomain
> *voltdm,
> -diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -index e7a0be1..b0d0ae1 100644
> ---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> -@@ -37,16 +37,12 @@ static const struct omap_vfsm_instance
> omap3_vdd1_vfsm = {
> - 	.voltsetup_mask = OMAP3430_SETUP_TIME1_MASK,
> - };
> -
> --static struct omap_vdd_info omap3_vdd1_info;
> --
> - static const struct omap_vfsm_instance omap3_vdd2_vfsm = {
> - 	.voltsetup_reg = OMAP3_PRM_VOLTSETUP1_OFFSET,
> - 	.voltsetup_shift = OMAP3430_SETUP_TIME2_SHIFT,
> - 	.voltsetup_mask = OMAP3430_SETUP_TIME2_MASK,
> - };
> -
> --static struct omap_vdd_info omap3_vdd2_info;
> --
> - static struct voltagedomain omap3_voltdm_mpu = {
> - 	.name = "mpu_iva",
> - 	.scalable = true,
> -@@ -56,7 +52,6 @@ static struct voltagedomain omap3_voltdm_mpu = {
> - 	.vc = &omap3_vc_mpu,
> - 	.vfsm = &omap3_vdd1_vfsm,
> - 	.vp = &omap3_vp_mpu,
> --	.vdd = &omap3_vdd1_info,
> - };
> -
> - static struct voltagedomain omap3_voltdm_core = {
> -@@ -68,7 +63,6 @@ static struct voltagedomain omap3_voltdm_core = {
> - 	.vc = &omap3_vc_core,
> - 	.vfsm = &omap3_vdd2_vfsm,
> - 	.vp = &omap3_vp_core,
> --	.vdd = &omap3_vdd2_info,
> - };
> -
> - static struct voltagedomain omap3_voltdm_wkup = {
> -@@ -94,11 +88,11 @@ void __init omap3xxx_voltagedomains_init(void)
> - 	 * for the currently-running IC
> - 	 */
> - 	if (cpu_is_omap3630()) {
> --		omap3_vdd1_info.volt_data = omap36xx_vddmpu_volt_data;
> --		omap3_vdd2_info.volt_data = omap36xx_vddcore_volt_data;
> -+		omap3_voltdm_mpu.volt_data =
> omap36xx_vddmpu_volt_data;
> -+		omap3_voltdm_core.volt_data =
> omap36xx_vddcore_volt_data;
> - 	} else {
> --		omap3_vdd1_info.volt_data = omap34xx_vddmpu_volt_data;
> --		omap3_vdd2_info.volt_data = omap34xx_vddcore_volt_data;
> -+		omap3_voltdm_mpu.volt_data =
> omap34xx_vddmpu_volt_data;
> -+		omap3_voltdm_core.volt_data =
> omap34xx_vddcore_volt_data;
> - 	}
> -
> - 	for (i = 0; voltdm = voltagedomains_omap3[i], voltdm; i++)
> -diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -index 9c20fbb..c4584e9 100644
> ---- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> -@@ -36,20 +36,14 @@ static const struct omap_vfsm_instance
> omap4_vdd_mpu_vfsm = {
> - 	.voltsetup_reg = OMAP4_PRM_VOLTSETUP_MPU_RET_SLEEP_OFFSET,
> - };
> -
> --static struct omap_vdd_info omap4_vdd_mpu_info;
> --
> - static const struct omap_vfsm_instance omap4_vdd_iva_vfsm = {
> - 	.voltsetup_reg = OMAP4_PRM_VOLTSETUP_IVA_RET_SLEEP_OFFSET,
> - };
> -
> --static struct omap_vdd_info omap4_vdd_iva_info;
> --
> - static const struct omap_vfsm_instance omap4_vdd_core_vfsm = {
> - 	.voltsetup_reg =
> OMAP4_PRM_VOLTSETUP_CORE_RET_SLEEP_OFFSET,
> - };
> -
> --static struct omap_vdd_info omap4_vdd_core_info;
> --
> - static struct voltagedomain omap4_voltdm_mpu = {
> - 	.name = "mpu",
> - 	.scalable = true,
> -@@ -59,7 +53,6 @@ static struct voltagedomain omap4_voltdm_mpu = {
> - 	.vc = &omap4_vc_mpu,
> - 	.vfsm = &omap4_vdd_mpu_vfsm,
> - 	.vp = &omap4_vp_mpu,
> --	.vdd = &omap4_vdd_mpu_info,
> - };
> -
> - static struct voltagedomain omap4_voltdm_iva = {
> -@@ -71,7 +64,6 @@ static struct voltagedomain omap4_voltdm_iva = {
> - 	.vc = &omap4_vc_iva,
> - 	.vfsm = &omap4_vdd_iva_vfsm,
> - 	.vp = &omap4_vp_iva,
> --	.vdd = &omap4_vdd_iva_info,
> - };
> -
> - static struct voltagedomain omap4_voltdm_core = {
> -@@ -83,7 +75,6 @@ static struct voltagedomain omap4_voltdm_core = {
> - 	.vc = &omap4_vc_core,
> - 	.vfsm = &omap4_vdd_core_vfsm,
> - 	.vp = &omap4_vp_core,
> --	.vdd = &omap4_vdd_core_info,
> - };
> -
> - static struct voltagedomain omap4_voltdm_wkup = {
> -@@ -109,9 +100,9 @@ void __init omap44xx_voltagedomains_init(void)
> - 	 * XXX Will depend on the process, validation, and binning
> - 	 * for the currently-running IC
> - 	 */
> --	omap4_vdd_mpu_info.volt_data = omap44xx_vdd_mpu_volt_data;
> --	omap4_vdd_iva_info.volt_data = omap44xx_vdd_iva_volt_data;
> --	omap4_vdd_core_info.volt_data = omap44xx_vdd_core_volt_data;
> -+	omap4_voltdm_mpu.volt_data = omap44xx_vdd_mpu_volt_data;
> -+	omap4_voltdm_iva.volt_data = omap44xx_vdd_iva_volt_data;
> -+	omap4_voltdm_core.volt_data = omap44xx_vdd_core_volt_data;
> -
> - 	for (i = 0; voltdm = voltagedomains_omap4[i], voltdm; i++)
> - 		voltdm->sys_clk.name = sys_clk_name;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0143-OMAP3-
> voltage-rename-omap_voltage_get_nom_volt-voltd.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0143-OMAP3-voltage-rename-
> omap_voltage_get_nom_volt-voltd.patch
> deleted file mode 100644
> index c65ead9..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0143-OMAP3-voltage-
> rename-omap_voltage_get_nom_volt-voltd.patch
> +++ /dev/null
> @@ -1,91 +0,0 @@
> -From da00ff6be37578f4c1adbe5c7dd28844073f7873 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Fri, 15 Jul 2011 16:05:12 -0700
> -Subject: [PATCH 143/149] OMAP3+: voltage: rename
> omap_voltage_get_nom_volt -> voltdm_get_voltage
> -
> -Use preferred voltdm_ naming for getting current nominal voltage.
> -
> -No functional changes.
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/smartreflex-class3.c |    2 +-
> - arch/arm/mach-omap2/voltage.c            |   14 ++++++++------
> - arch/arm/mach-omap2/voltage.h            |    2 +-
> - 3 files changed, 10 insertions(+), 8 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/smartreflex-class3.c b/arch/arm/mach-
> omap2/smartreflex-class3.c
> -index 4eac1bc..53d9d0a 100644
> ---- a/arch/arm/mach-omap2/smartreflex-class3.c
> -+++ b/arch/arm/mach-omap2/smartreflex-class3.c
> -@@ -15,7 +15,7 @@
> -
> - static int sr_class3_enable(struct voltagedomain *voltdm)
> - {
> --	unsigned long volt = omap_voltage_get_nom_volt(voltdm);
> -+	unsigned long volt = voltdm_get_voltage(voltdm);
> -
> - 	if (!volt) {
> - 		pr_warning("%s: Curr voltage unknown. Cannot enable
> sr_%s\n",
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 2e5528f..031f6bf 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -45,13 +45,13 @@ static LIST_HEAD(voltdm_list);
> -
> - /* Public functions */
> - /**
> -- * omap_voltage_get_nom_volt() - Gets the current non-auto-compensated
> voltage
> -- * @voltdm:	pointer to the VDD for which current voltage info is needed
> -+ * voltdm_get_voltage() - Gets the current non-auto-compensated voltage
> -+ * @voltdm:	pointer to the voltdm for which current voltage info is needed
> -  *
> -- * API to get the current non-auto-compensated voltage for a VDD.
> -- * Returns 0 in case of error else returns the current voltage for the VDD.
> -+ * API to get the current non-auto-compensated voltage for a voltage domain.
> -+ * Returns 0 in case of error else returns the current voltage.
> -  */
> --unsigned long omap_voltage_get_nom_volt(struct voltagedomain *voltdm)
> -+unsigned long voltdm_get_voltage(struct voltagedomain *voltdm)
> - {
> - 	if (!voltdm || IS_ERR(voltdm)) {
> - 		pr_warning("%s: VDD specified does not exist!\n", __func__);
> -@@ -72,6 +72,8 @@ unsigned long omap_voltage_get_nom_volt(struct
> voltagedomain *voltdm)
> - int voltdm_scale(struct voltagedomain *voltdm,
> - 		 unsigned long target_volt)
> - {
> -+	int ret;
> -+
> - 	if (!voltdm || IS_ERR(voltdm)) {
> - 		pr_warning("%s: VDD specified does not exist!\n", __func__);
> - 		return -EINVAL;
> -@@ -104,7 +106,7 @@ void voltdm_reset(struct voltagedomain *voltdm)
> - 		return;
> - 	}
> -
> --	target_volt = omap_voltage_get_nom_volt(voltdm);
> -+	target_volt = voltdm_get_voltage(voltdm);
> - 	if (!target_volt) {
> - 		pr_err("%s: unable to find current voltage for vdd_%s\n",
> - 			__func__, voltdm->name);
> -diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-
> omap2/voltage.h
> -index 68b1ed5..b4c6259 100644
> ---- a/arch/arm/mach-omap2/voltage.h
> -+++ b/arch/arm/mach-omap2/voltage.h
> -@@ -143,7 +143,6 @@ void omap_voltage_get_volttable(struct
> voltagedomain *voltdm,
> - 		struct omap_volt_data **volt_data);
> - struct omap_volt_data *omap_voltage_get_voltdata(struct voltagedomain
> *voltdm,
> - 		unsigned long volt);
> --unsigned long omap_voltage_get_nom_volt(struct voltagedomain *voltdm);
> - #ifdef CONFIG_PM
> - int omap_voltage_register_pmic(struct voltagedomain *voltdm,
> - 			       struct omap_voltdm_pmic *pmic);
> -@@ -178,4 +177,5 @@ int voltdm_for_each_pwrdm(struct voltagedomain
> *voltdm,
> - 				    struct powerdomain *pwrdm));
> - int voltdm_scale(struct voltagedomain *voltdm, unsigned long target_volt);
> - void voltdm_reset(struct voltagedomain *voltdm);
> -+unsigned long voltdm_get_voltage(struct voltagedomain *voltdm);
> - #endif
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0144-OMAP3-
> voltage-update-nominal-voltage-in-voltdm_scale.patch b/recipes-
> kernel/linux/linux-3.0/pm-wip/voltdm/0144-OMAP3-voltage-update-nominal-
> voltage-in-voltdm_scale.patch
> deleted file mode 100644
> index 63ecb27..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0144-OMAP3-voltage-
> update-nominal-voltage-in-voltdm_scale.patch
> +++ /dev/null
> @@ -1,49 +0,0 @@
> -From 5bd4a2cb8354937390805ed248235670cf229935 Mon Sep 17 00:00:00
> 2001
> -From: Kevin Hilman <khilman at ti.com>
> -Date: Mon, 18 Jul 2011 16:24:17 -0700
> -Subject: [PATCH 144/149] OMAP3+: voltage: update nominal voltage in
> voltdm_scale() not VC post-scale
> -
> -Currently, the nominal voltage is updated in the VC post-scale function
> -which is common to both scaling methods.  However, this has readabiliy
> -problems as this update is not where it might be expected.  Instead, move
> -the updated into voltdm_scale() upon a successful return of voltdm->scale()
> -
> -Signed-off-by: Kevin Hilman <khilman at ti.com>
> ----
> - arch/arm/mach-omap2/vc.c      |    2 --
> - arch/arm/mach-omap2/voltage.c |    6 +++++-
> - 2 files changed, 5 insertions(+), 3 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> -index 3233c69..16fa912 100644
> ---- a/arch/arm/mach-omap2/vc.c
> -+++ b/arch/arm/mach-omap2/vc.c
> -@@ -143,8 +143,6 @@ void omap_vc_post_scale(struct voltagedomain
> *voltdm,
> - 	smps_delay = ((smps_steps * voltdm->pmic->step_size) /
> - 			voltdm->pmic->slew_rate) + 2;
> - 	udelay(smps_delay);
> --
> --	voltdm->nominal_volt = target_volt;
> - }
> -
> - /* vc_bypass_scale - VC bypass method of voltage scaling */
> -diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-
> omap2/voltage.c
> -index 031f6bf..cebc8b1 100644
> ---- a/arch/arm/mach-omap2/voltage.c
> -+++ b/arch/arm/mach-omap2/voltage.c
> -@@ -85,7 +85,11 @@ int voltdm_scale(struct voltagedomain *voltdm,
> - 		return -ENODATA;
> - 	}
> -
> --	return voltdm->scale(voltdm, target_volt);
> -+	ret = voltdm->scale(voltdm, target_volt);
> -+	if (!ret)
> -+		voltdm->nominal_volt = target_volt;
> -+
> -+	return ret;
> - }
> -
> - /**
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0145-OMAP4-PM-
> TWL6030-fix-voltage-conversion-formula.patch b/recipes-kernel/linux/linux-
> 3.0/pm-wip/voltdm/0145-OMAP4-PM-TWL6030-fix-voltage-conversion-
> formula.patch
> deleted file mode 100644
> index e114b6c..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0145-OMAP4-PM-
> TWL6030-fix-voltage-conversion-formula.patch
> +++ /dev/null
> @@ -1,85 +0,0 @@
> -From 8ec7a1410e7ad5a4027deabc8025b5c7291c7579 Mon Sep 17 00:00:00
> 2001
> -From: Patrick Titiano <p-titiano at ti.com>
> -Date: Wed, 18 May 2011 00:17:30 -0500
> -Subject: [PATCH 145/149] OMAP4: PM: TWL6030: fix voltage conversion
> formula
> -
> -omap_twl_vsel_to_uv() and omap_twl_uv_to_vsel() functions used to convert
> -voltages to TWL6030 SMPS commands (a.k.a "vsel") implement incorrect
> conversion
> -formula.
> -It uses legacy OMAP3 formula, but OMAP4 Power IC has different offset and
> -voltage step:
> - - Voltage Step is now 12.66mV (instead of 12.5mV)
> - - Offset is either 607.7mV or 709mV depending on TWL6030 chip revision
> -   (instead of 600mV)
> -This leads to setting voltages potentially higher than expected, and so
> -potentially some (limited) power overconsumption.
> -
> -For reference, see formula and tables in section 8.5.2.3
> -"Output Voltage Selection (Standard Mode / Extended Mode with or without
> offset)"
> - in TWL6030 functional specifications document.
> -
> -[nm at ti.com: ported to voltdm_c]
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Patrick Titiano <p-titiano at ti.com>
> ----
> - arch/arm/mach-omap2/omap_twl.c |   14 +++++++-------
> - 1 files changed, 7 insertions(+), 7 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-
> omap2/omap_twl.c
> -index 6b247d1..a66bf6b 100644
> ---- a/arch/arm/mach-omap2/omap_twl.c
> -+++ b/arch/arm/mach-omap2/omap_twl.c
> -@@ -106,9 +106,9 @@ static unsigned long twl6030_vsel_to_uv(const u8
> vsel)
> - 		return 1350000;
> -
> - 	if (smps_offset & 0x8)
> --		return ((((vsel - 1) * 125) + 7000)) * 100;
> -+		return ((((vsel - 1) * 1266) + 70900)) * 10;
> - 	else
> --		return ((((vsel - 1) * 125) + 6000)) * 100;
> -+		return ((((vsel - 1) * 1266) + 60770)) * 10;
> - }
> -
> - static u8 twl6030_uv_to_vsel(unsigned long uv)
> -@@ -138,9 +138,9 @@ static u8 twl6030_uv_to_vsel(unsigned long uv)
> - 		return 0x3A;
> -
> - 	if (smps_offset & 0x8)
> --		return DIV_ROUND_UP(uv - 700000, 12500) + 1;
> -+		return DIV_ROUND_UP(uv - 709000, 12660) + 1;
> - 	else
> --		return DIV_ROUND_UP(uv - 600000, 12500) + 1;
> -+		return DIV_ROUND_UP(uv - 607700, 12660) + 1;
> - }
> -
> - static struct omap_voltdm_pmic omap3_mpu_pmic = {
> -@@ -187,7 +187,7 @@ static struct omap_voltdm_pmic omap3_core_pmic =
> {
> -
> - static struct omap_voltdm_pmic omap4_mpu_pmic = {
> - 	.slew_rate		= 4000,
> --	.step_size		= 12500,
> -+	.step_size		= 12660,
> - 	.on_volt		= 1350000,
> - 	.onlp_volt		= 1350000,
> - 	.ret_volt		= 837500,
> -@@ -208,7 +208,7 @@ static struct omap_voltdm_pmic omap4_mpu_pmic =
> {
> -
> - static struct omap_voltdm_pmic omap4_iva_pmic = {
> - 	.slew_rate		= 4000,
> --	.step_size		= 12500,
> -+	.step_size		= 12660,
> - 	.on_volt		= 1100000,
> - 	.onlp_volt		= 1100000,
> - 	.ret_volt		= 837500,
> -@@ -229,7 +229,7 @@ static struct omap_voltdm_pmic omap4_iva_pmic = {
> -
> - static struct omap_voltdm_pmic omap4_core_pmic = {
> - 	.slew_rate		= 4000,
> --	.step_size		= 12500,
> -+	.step_size		= 12660,
> - 	.on_volt		= 1100000,
> - 	.onlp_volt		= 1100000,
> - 	.ret_volt		= 837500,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0146-OMAP4-PM-
> TWL6030-fix-uv-to-voltage-for-0x39.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0146-OMAP4-PM-TWL6030-fix-uv-to-voltage-for-0x39.patch
> deleted file mode 100644
> index 4f3851e..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0146-OMAP4-PM-
> TWL6030-fix-uv-to-voltage-for-0x39.patch
> +++ /dev/null
> @@ -1,37 +0,0 @@
> -From bfc31f950af6d9e8eb59ffeb80b3ba39ef98a943 Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Wed, 18 May 2011 00:17:31 -0500
> -Subject: [PATCH 146/149] OMAP4: PM: TWL6030: fix uv to voltage for >0x39
> -
> -using 1.35V as a check is not correct, we know that beyond 0x39,
> -voltages are non linear - hence use the conversion iff uV greater
> -than that for 0x39. For example, with  709mV as the smps offset,
> -the max linear is actually 1.41V(0x39vsel)!
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> ----
> - arch/arm/mach-omap2/omap_twl.c |    7 ++++++-
> - 1 files changed, 6 insertions(+), 1 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-
> omap2/omap_twl.c
> -index a66bf6b..5def7c2 100644
> ---- a/arch/arm/mach-omap2/omap_twl.c
> -+++ b/arch/arm/mach-omap2/omap_twl.c
> -@@ -134,8 +134,13 @@ static u8 twl6030_uv_to_vsel(unsigned long uv)
> - 	 * hardcoding only for 1.35 V which is used for 1GH OPP for
> - 	 * OMAP4430.
> - 	 */
> --	if (uv == 1350000)
> -+	if (uv > twl6030_vsel_to_uv(0x39)) {
> -+		if (uv == 1350000)
> -+			return 0x3A;
> -+		pr_err("%s:OUT OF RANGE! non mapped vsel for %ld Vs max
> %ld\n",
> -+			__func__, uv, twl6030_vsel_to_uv(0x39));
> - 		return 0x3A;
> -+	}
> -
> - 	if (smps_offset & 0x8)
> - 		return DIV_ROUND_UP(uv - 709000, 12660) + 1;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0147-OMAP4-PM-
> TWL6030-address-0V-conversions.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0147-OMAP4-PM-TWL6030-address-0V-conversions.patch
> deleted file mode 100644
> index 5456fee..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0147-OMAP4-PM-
> TWL6030-address-0V-conversions.patch
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -From ccac5e6430353118ac7b9c46493e8cdf12114bf1 Mon Sep 17 00:00:00
> 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Wed, 18 May 2011 00:17:32 -0500
> -Subject: [PATCH 147/149] OMAP4: PM: TWL6030: address 0V conversions
> -
> -0V conversions should be mapped to 0 as it is meant to denote
> -off voltages.
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> ----
> - arch/arm/mach-omap2/omap_twl.c |    4 ++++
> - 1 files changed, 4 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-
> omap2/omap_twl.c
> -index 5def7c2..b30adf3 100644
> ---- a/arch/arm/mach-omap2/omap_twl.c
> -+++ b/arch/arm/mach-omap2/omap_twl.c
> -@@ -95,6 +95,8 @@ static unsigned long twl6030_vsel_to_uv(const u8 vsel)
> - 		is_offset_valid = true;
> - 	}
> -
> -+	if (!vsel)
> -+		return 0;
> - 	/*
> - 	 * There is no specific formula for voltage to vsel
> - 	 * conversion above 1.3V. There are special hardcoded
> -@@ -127,6 +129,8 @@ static u8 twl6030_uv_to_vsel(unsigned long uv)
> - 		is_offset_valid = true;
> - 	}
> -
> -+	if (!uv)
> -+		return 0x00;
> - 	/*
> - 	 * There is no specific formula for voltage to vsel
> - 	 * conversion above 1.3V. There are special hardcoded
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0148-OMAP4-PM-
> TWL6030-fix-ON-RET-OFF-voltages.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0148-OMAP4-PM-TWL6030-fix-ON-RET-OFF-voltages.patch
> deleted file mode 100644
> index 64dd7cb..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0148-OMAP4-PM-
> TWL6030-fix-ON-RET-OFF-voltages.patch
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -From 884d61bd127d9e46f6b31c24c5109ba9bc7a3730 Mon Sep 17 00:00:00
> 2001
> -From: Patrick Titiano <p-titiano at ti.com>
> -Date: Wed, 18 May 2011 00:17:33 -0500
> -Subject: [PATCH 148/149] OMAP4: PM: TWL6030: fix ON/RET/OFF voltages
> -
> -According to latest OMAP4430 Data Manual v0.4 dated March 2011:
> - - Retention voltage shall be set to 0.83V. See tables 2.2, 2.4 and 2.6 in DM.
> -   This allows saving a little more power in retention states.
> - - OPP100 IVA nominal voltage is 1.188V. See table 2.4 in DM.
> -   This allows saving a little power when CPU wakes up until Smart-Reflex is
> -   not yet resumed.
> -
> -[nm at ti.com: ported to voltdm_c]
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> -Signed-off-by: Patrick Titiano <p-titiano at ti.com>
> ----
> - arch/arm/mach-omap2/omap_twl.c |   24 ++++++++++++------------
> - 1 files changed, 12 insertions(+), 12 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-
> omap2/omap_twl.c
> -index b30adf3..4bc99fb 100644
> ---- a/arch/arm/mach-omap2/omap_twl.c
> -+++ b/arch/arm/mach-omap2/omap_twl.c
> -@@ -197,10 +197,10 @@ static struct omap_voltdm_pmic omap3_core_pmic
> = {
> - static struct omap_voltdm_pmic omap4_mpu_pmic = {
> - 	.slew_rate		= 4000,
> - 	.step_size		= 12660,
> --	.on_volt		= 1350000,
> --	.onlp_volt		= 1350000,
> --	.ret_volt		= 837500,
> --	.off_volt		= 600000,
> -+	.on_volt		= 1375000,
> -+	.onlp_volt		= 1375000,
> -+	.ret_volt		= 830000,
> -+	.off_volt		= 0,
> - 	.volt_setup_time	= 0,
> - 	.vp_erroroffset		= OMAP4_VP_CONFIG_ERROROFFSET,
> - 	.vp_vstepmin		= OMAP4_VP_VSTEPMIN_VSTEPMIN,
> -@@ -218,10 +218,10 @@ static struct omap_voltdm_pmic
> omap4_mpu_pmic = {
> - static struct omap_voltdm_pmic omap4_iva_pmic = {
> - 	.slew_rate		= 4000,
> - 	.step_size		= 12660,
> --	.on_volt		= 1100000,
> --	.onlp_volt		= 1100000,
> --	.ret_volt		= 837500,
> --	.off_volt		= 600000,
> -+	.on_volt		= 1188000,
> -+	.onlp_volt		= 1188000,
> -+	.ret_volt		= 830000,
> -+	.off_volt		= 0,
> - 	.volt_setup_time	= 0,
> - 	.vp_erroroffset		= OMAP4_VP_CONFIG_ERROROFFSET,
> - 	.vp_vstepmin		= OMAP4_VP_VSTEPMIN_VSTEPMIN,
> -@@ -239,10 +239,10 @@ static struct omap_voltdm_pmic omap4_iva_pmic
> = {
> - static struct omap_voltdm_pmic omap4_core_pmic = {
> - 	.slew_rate		= 4000,
> - 	.step_size		= 12660,
> --	.on_volt		= 1100000,
> --	.onlp_volt		= 1100000,
> --	.ret_volt		= 837500,
> --	.off_volt		= 600000,
> -+	.on_volt		= 1200000,
> -+	.onlp_volt		= 1200000,
> -+	.ret_volt		= 830000,
> -+	.off_volt		= 0,
> - 	.volt_setup_time	= 0,
> - 	.vp_erroroffset		= OMAP4_VP_CONFIG_ERROROFFSET,
> - 	.vp_vstepmin		= OMAP4_VP_VSTEPMIN_VSTEPMIN,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0149-OMAP4-PM-
> TWL6030-add-cmd-register.patch b/recipes-kernel/linux/linux-3.0/pm-
> wip/voltdm/0149-OMAP4-PM-TWL6030-add-cmd-register.patch
> deleted file mode 100644
> index 78829a6..0000000
> --- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0149-OMAP4-PM-
> TWL6030-add-cmd-register.patch
> +++ /dev/null
> @@ -1,56 +0,0 @@
> -From 478e5300d4eb33cdebd393d634304a83833bc4d4 Mon Sep 17
> 00:00:00 2001
> -From: Nishanth Menon <nm at ti.com>
> -Date: Wed, 18 May 2011 00:17:34 -0500
> -Subject: [PATCH 149/149] OMAP4: PM: TWL6030: add cmd register
> -
> -Without the command register, ON/ONLP/RET/OFF voltages are
> -useless. and TWL will be unable to use these
> -
> -Signed-off-by: Nishanth Menon <nm at ti.com>
> ----
> - arch/arm/mach-omap2/omap_twl.c |    6 ++++++
> - 1 files changed, 6 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-
> omap2/omap_twl.c
> -index 4bc99fb..f515a1a 100644
> ---- a/arch/arm/mach-omap2/omap_twl.c
> -+++ b/arch/arm/mach-omap2/omap_twl.c
> -@@ -42,8 +42,11 @@
> -
> - #define OMAP4_SRI2C_SLAVE_ADDR		0x12
> - #define OMAP4_VDD_MPU_SR_VOLT_REG	0x55
> -+#define OMAP4_VDD_MPU_SR_CMD_REG	0x56
> - #define OMAP4_VDD_IVA_SR_VOLT_REG	0x5B
> -+#define OMAP4_VDD_IVA_SR_CMD_REG	0x5C
> - #define OMAP4_VDD_CORE_SR_VOLT_REG	0x61
> -+#define OMAP4_VDD_CORE_SR_CMD_REG	0x62
> -
> - #define OMAP4_VP_CONFIG_ERROROFFSET	0x00
> - #define OMAP4_VP_VSTEPMIN_VSTEPMIN	0x01
> -@@ -210,6 +213,7 @@ static struct omap_voltdm_pmic omap4_mpu_pmic =
> {
> - 	.vp_timeout_us		= OMAP4_VP_VLIMITTO_TIMEOUT_US,
> - 	.i2c_slave_addr		= OMAP4_SRI2C_SLAVE_ADDR,
> - 	.volt_reg_addr		= OMAP4_VDD_MPU_SR_VOLT_REG,
> -+	.cmd_reg_addr		= OMAP4_VDD_MPU_SR_CMD_REG,
> - 	.i2c_high_speed		= true,
> - 	.vsel_to_uv		= twl6030_vsel_to_uv,
> - 	.uv_to_vsel		= twl6030_uv_to_vsel,
> -@@ -231,6 +235,7 @@ static struct omap_voltdm_pmic omap4_iva_pmic = {
> - 	.vp_timeout_us		= OMAP4_VP_VLIMITTO_TIMEOUT_US,
> - 	.i2c_slave_addr		= OMAP4_SRI2C_SLAVE_ADDR,
> - 	.volt_reg_addr		= OMAP4_VDD_IVA_SR_VOLT_REG,
> -+	.cmd_reg_addr		= OMAP4_VDD_IVA_SR_CMD_REG,
> - 	.i2c_high_speed		= true,
> - 	.vsel_to_uv		= twl6030_vsel_to_uv,
> - 	.uv_to_vsel		= twl6030_uv_to_vsel,
> -@@ -252,6 +257,7 @@ static struct omap_voltdm_pmic omap4_core_pmic =
> {
> - 	.vp_timeout_us		= OMAP4_VP_VLIMITTO_TIMEOUT_US,
> - 	.i2c_slave_addr		= OMAP4_SRI2C_SLAVE_ADDR,
> - 	.volt_reg_addr		= OMAP4_VDD_CORE_SR_VOLT_REG,
> -+	.cmd_reg_addr		= OMAP4_VDD_CORE_SR_CMD_REG,
> - 	.vsel_to_uv		= twl6030_vsel_to_uv,
> - 	.uv_to_vsel		= twl6030_uv_to_vsel,
> - };
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0001-mmc-don-t-display-
> single-block-read-console-messages.patch b/recipes-kernel/linux/linux-
> 3.0/sakoman/0001-mmc-don-t-display-single-block-read-console-
> messages.patch
> deleted file mode 100644
> index 8c1faba..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0001-mmc-don-t-display-single-
> block-read-console-messages.patch
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -From cc8c276d530520ce822a1d0e8d748f7b9e54a2d5 Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <steve at sakoman.com>
> -Date: Mon, 4 Jan 2010 19:20:25 -0800
> -Subject: [PATCH 01/14] mmc: don't display single block read console messages
> -
> -mmc: don't display single block read console messages
> ----
> - drivers/mmc/card/block.c |    4 ++--
> - 1 files changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
> -index f85e422..0025735 100644
> ---- a/drivers/mmc/card/block.c
> -+++ b/drivers/mmc/card/block.c
> -@@ -812,8 +812,8 @@ static int mmc_blk_issue_rw_rq(struct mmc_queue
> *mq, struct request *req)
> - 		    brq.data.error || brq.stop.error) {
> - 			if (brq.data.blocks > 1 && rq_data_dir(req) == READ) {
> - 				/* Redo read one sector at a time */
> --				printk(KERN_WARNING "%s: retrying using
> single "
> --				       "block read\n", req->rq_disk->disk_name);
> -+				/* printk(KERN_WARNING "%s: retrying using
> single "
> -+				       "block read\n", req->rq_disk->disk_name);
> */
> - 				disable_multi = 1;
> - 				continue;
> - 			}
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0002-omap-Change-
> omap_device-activate-dectivate-latency-m.patch b/recipes-kernel/linux/linux-
> 3.0/sakoman/0002-omap-Change-omap_device-activate-dectivate-latency-
> m.patch
> deleted file mode 100644
> index 54305bd..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0002-omap-Change-
> omap_device-activate-dectivate-latency-m.patch
> +++ /dev/null
> @@ -1,49 +0,0 @@
> -From a2e59d4041e8c42e21d90c0696ea8437a0cfc866 Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <steve at sakoman.com>
> -Date: Mon, 23 May 2011 12:16:50 -0700
> -Subject: [PATCH 02/14] omap: Change omap_device activate/dectivate latency
> messages from pr_warning to pr_debug
> -
> -Messages can be safely ignored, so reduce console noise
> -
> -Signed-off-by: Steve Sakoman <steve at sakoman.com>
> ----
> - arch/arm/plat-omap/omap_device.c |    8 ++++----
> - 1 files changed, 4 insertions(+), 4 deletions(-)
> -
> -diff --git a/arch/arm/plat-omap/omap_device.c b/arch/arm/plat-
> omap/omap_device.c
> -index be45147..e3d9520 100644
> ---- a/arch/arm/plat-omap/omap_device.c
> -+++ b/arch/arm/plat-omap/omap_device.c
> -@@ -146,12 +146,12 @@ static int _omap_device_activate(struct
> omap_device *od, u8 ignore_lat)
> - 			odpl->activate_lat_worst = act_lat;
> - 			if (odpl->flags &
> OMAP_DEVICE_LATENCY_AUTO_ADJUST) {
> - 				odpl->activate_lat = act_lat;
> --				pr_warning("omap_device: %s.%d: new worst
> case "
> -+				pr_debug("omap_device: %s.%d: new worst
> case "
> - 					   "activate latency %d: %llu\n",
> - 					   od->pdev.name, od->pdev.id,
> - 					   od->pm_lat_level, act_lat);
> - 			} else
> --				pr_warning("omap_device: %s.%d: activate "
> -+				pr_debug("omap_device: %s.%d: activate "
> - 					   "latency %d higher than exptected. "
> - 					   "(%llu > %d)\n",
> - 					   od->pdev.name, od->pdev.id,
> -@@ -214,12 +214,12 @@ static int _omap_device_deactivate(struct
> omap_device *od, u8 ignore_lat)
> - 			odpl->deactivate_lat_worst = deact_lat;
> - 			if (odpl->flags &
> OMAP_DEVICE_LATENCY_AUTO_ADJUST) {
> - 				odpl->deactivate_lat = deact_lat;
> --				pr_warning("omap_device: %s.%d: new worst
> case "
> -+				pr_debug("omap_device: %s.%d: new worst
> case "
> - 					   "deactivate latency %d: %llu\n",
> - 					   od->pdev.name, od->pdev.id,
> - 					   od->pm_lat_level, deact_lat);
> - 			} else
> --				pr_warning("omap_device: %s.%d: deactivate
> "
> -+				pr_debug("omap_device: %s.%d: deactivate "
> - 					   "latency %d higher than exptected. "
> - 					   "(%llu > %d)\n",
> - 					   od->pdev.name, od->pdev.id,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0003-OMAP-DSS2-add-
> bootarg-for-selecting-svideo-or-compos.patch b/recipes-kernel/linux/linux-
> 3.0/sakoman/0003-OMAP-DSS2-add-bootarg-for-selecting-svideo-or-
> compos.patch
> deleted file mode 100644
> index 4356287..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0003-OMAP-DSS2-add-bootarg-
> for-selecting-svideo-or-compos.patch
> +++ /dev/null
> @@ -1,75 +0,0 @@
> -From 630557c2785955cc0abbe4bf29b22f703a404e02 Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <steve at sakoman.com>
> -Date: Tue, 19 Jan 2010 21:19:15 -0800
> -Subject: [PATCH 03/14] OMAP: DSS2: add bootarg for selecting svideo or
> composite for tv output
> -
> -also add pal-16 and ntsc-16 omapfb.mode settings for 16bpp
> ----
> - drivers/video/omap2/dss/venc.c           |   22 ++++++++++++++++++++++
> - drivers/video/omap2/omapfb/omapfb-main.c |   10 +++++++++-
> - 2 files changed, 31 insertions(+), 1 deletions(-)
> -
> -diff --git a/drivers/video/omap2/dss/venc.c b/drivers/video/omap2/dss/venc.c
> -index 980f919..4fb594d 100644
> ---- a/drivers/video/omap2/dss/venc.c
> -+++ b/drivers/video/omap2/dss/venc.c
> -@@ -85,6 +85,11 @@
> - #define VENC_OUTPUT_TEST			0xC8
> - #define VENC_DAC_B__DAC_C			0xC8
> -
> -+static char *tv_connection;
> -+
> -+module_param_named(tvcable, tv_connection, charp, 0);
> -+MODULE_PARM_DESC(tvcable, "TV connection type (svideo, composite)");
> -+
> - struct venc_config {
> - 	u32 f_control;
> - 	u32 vidout_ctrl;
> -@@ -461,6 +466,23 @@ static int venc_panel_probe(struct omap_dss_device
> *dssdev)
> - {
> - 	dssdev->panel.timings = omap_dss_pal_timings;
> -
> -+	/* Allow the TV output to be overriden */
> -+	if (tv_connection) {
> -+		if (strcmp(tv_connection, "svideo") == 0) {
> -+			printk(KERN_INFO
> -+				"omapdss: tv output is svideo.\n");
> -+			dssdev->phy.venc.type =
> OMAP_DSS_VENC_TYPE_SVIDEO;
> -+		} else if (strcmp(tv_connection, "composite") == 0) {
> -+			printk(KERN_INFO
> -+				"omapdss: tv output is composite.\n");
> -+			dssdev->phy.venc.type =
> OMAP_DSS_VENC_TYPE_COMPOSITE;
> -+		} else {
> -+			printk(KERN_INFO
> -+				"omapdss: unsupported output type'%s'.\n",
> -+				tv_connection);
> -+		}
> -+	}
> -+
> - 	return 0;
> - }
> -
> -diff --git a/drivers/video/omap2/omapfb/omapfb-main.c
> b/drivers/video/omap2/omapfb/omapfb-main.c
> -index 505bc12..c35c1f8 100644
> ---- a/drivers/video/omap2/omapfb/omapfb-main.c
> -+++ b/drivers/video/omap2/omapfb/omapfb-main.c
> -@@ -2002,7 +2002,15 @@ static int omapfb_mode_to_timings(const char
> *mode_str,
> - 	int r;
> -
> - #ifdef CONFIG_OMAP2_DSS_VENC
> --	if (strcmp(mode_str, "pal") == 0) {
> -+	if (strcmp(mode_str, "pal-16") == 0) {
> -+		*timings = omap_dss_pal_timings;
> -+		*bpp = 16;
> -+		return 0;
> -+	} else if (strcmp(mode_str, "ntsc-16") == 0) {
> -+		*timings = omap_dss_ntsc_timings;
> -+		*bpp = 16;
> -+		return 0;
> -+	} else if (strcmp(mode_str, "pal") == 0) {
> - 		*timings = omap_dss_pal_timings;
> - 		*bpp = 24;
> - 		return 0;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0004-mtd-nand-Eliminate-
> noisey-uncorrectable-error-messag.patch b/recipes-kernel/linux/linux-
> 3.0/sakoman/0004-mtd-nand-Eliminate-noisey-uncorrectable-error-
> messag.patch
> deleted file mode 100644
> index 94d629b..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0004-mtd-nand-Eliminate-noisey-
> uncorrectable-error-messag.patch
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -From bf974dd3f24e623f04422b8013d047d78d430f0e Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <steve at sakoman.com>
> -Date: Fri, 1 Jul 2011 10:00:03 -0700
> -Subject: [PATCH 04/14] mtd: nand: Eliminate noisey "uncorrectable error"
> messages
> -
> -Other layers of the stack give more informative messages when
> __nand_correct_data() fails
> -
> -Signed-off-by: Steve Sakoman <steve at sakoman.com>
> ----
> - drivers/mtd/nand/nand_ecc.c |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/drivers/mtd/nand/nand_ecc.c b/drivers/mtd/nand/nand_ecc.c
> -index 271b8e7..ad55e55 100644
> ---- a/drivers/mtd/nand/nand_ecc.c
> -+++ b/drivers/mtd/nand/nand_ecc.c
> -@@ -507,7 +507,7 @@ int __nand_correct_data(unsigned char *buf,
> - 	if ((bitsperbyte[b0] + bitsperbyte[b1] + bitsperbyte[b2]) == 1)
> - 		return 1;	/* error in ecc data; no action needed */
> -
> --	printk(KERN_ERR "uncorrectable error : ");
> -+	// printk(KERN_ERR "uncorrectable error : ");
> - 	return -1;
> - }
> - EXPORT_SYMBOL(__nand_correct_data);
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0005-video-add-timings-for-
> hd720.patch b/recipes-kernel/linux/linux-3.0/sakoman/0005-video-add-
> timings-for-hd720.patch
> deleted file mode 100644
> index 2b474d6..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0005-video-add-timings-for-
> hd720.patch
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -From fbc33b30b663ec8c0d4374ba08f0608a7cc4b977 Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <steve at sakoman.com>
> -Date: Sat, 19 Dec 2009 06:52:43 -0800
> -Subject: [PATCH 05/14] video: add timings for hd720
> -
> ----
> - drivers/video/modedb.c |    4 ++++
> - 1 files changed, 4 insertions(+), 0 deletions(-)
> -
> -diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c
> -index cb175fe..9baead4 100644
> ---- a/drivers/video/modedb.c
> -+++ b/drivers/video/modedb.c
> -@@ -103,6 +103,10 @@ static const struct fb_videomode modedb[] = {
> - 	{ NULL, 70, 1024, 768, 13333, 144, 24, 29, 3, 136, 6, 0,
> - 		FB_VMODE_NONINTERLACED },
> -
> -+	/* 1280x720 @ 60 Hz, 45 kHz hsync, CEA 681-E Format 4 */
> -+	{ "hd720", 60, 1280, 720, 13468, 220, 110, 20, 5, 40, 5, 0,
> -+		FB_VMODE_NONINTERLACED },
> -+
> - 	/* 1280x1024 @ 87 Hz interlaced, 51 kHz hsync */
> - 	{ NULL, 87, 1280, 1024, 12500, 56, 16, 128, 1, 216, 12,	0,
> - 		FB_VMODE_INTERLACED },
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0006-drivers-net-smsc911x-
> return-ENODEV-if-device-is-not-.patch b/recipes-kernel/linux/linux-
> 3.0/sakoman/0006-drivers-net-smsc911x-return-ENODEV-if-device-is-not-
> .patch
> deleted file mode 100644
> index b8fdba2..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0006-drivers-net-smsc911x-
> return-ENODEV-if-device-is-not-.patch
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -From 948bbae38457af6a11232375f9d95fc69641e9f4 Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <sakoman at gmail.com>
> -Date: Tue, 15 Dec 2009 15:17:44 -0800
> -Subject: [PATCH 06/14] drivers: net: smsc911x: return ENODEV if device is not
> found
> -
> -Signed-off-by: Steve Sakoman <sakoman at gmail.com>
> ----
> - drivers/net/smsc911x.c |    4 +++-
> - 1 files changed, 3 insertions(+), 1 deletions(-)
> -
> -diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
> -index c6d47d1..0c7c4a2 100644
> ---- a/drivers/net/smsc911x.c
> -+++ b/drivers/net/smsc911x.c
> -@@ -2169,8 +2169,10 @@ static int __devinit smsc911x_drv_probe(struct
> platform_device *pdev)
> - 		pdata->ops = &shifted_smsc911x_ops;
> -
> - 	retval = smsc911x_init(dev);
> --	if (retval < 0)
> -+	if (retval < 0) {
> -+		retval = -ENODEV;
> - 		goto out_unmap_io_3;
> -+	}
> -
> - 	/* configure irq polarity and type before connecting isr */
> - 	if (pdata->config.irq_polarity ==
> SMSC911X_IRQ_POLARITY_ACTIVE_HIGH)
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0007-drivers-input-
> touchscreen-ads7846-return-ENODEV-if-d.patch b/recipes-kernel/linux/linux-
> 3.0/sakoman/0007-drivers-input-touchscreen-ads7846-return-ENODEV-if-
> d.patch
> deleted file mode 100644
> index 158c0ad..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0007-drivers-input-touchscreen-
> ads7846-return-ENODEV-if-d.patch
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -From 34f40fe736113c2066bf86ca163a4aff8b6d061f Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <sakoman at gmail.com>
> -Date: Tue, 15 Dec 2009 15:24:10 -0800
> -Subject: [PATCH 07/14] drivers: input: touchscreen: ads7846: return ENODEV
> if device is not found
> -
> -Signed-off-by: Steve Sakoman <sakoman at gmail.com>
> ----
> - drivers/input/touchscreen/ads7846.c |   13 ++++++++++---
> - 1 files changed, 10 insertions(+), 3 deletions(-)
> -
> -diff --git a/drivers/input/touchscreen/ads7846.c
> b/drivers/input/touchscreen/ads7846.c
> -index 5196861..b0bd1ba 100644
> ---- a/drivers/input/touchscreen/ads7846.c
> -+++ b/drivers/input/touchscreen/ads7846.c
> -@@ -1349,9 +1349,16 @@ static int __devinit ads7846_probe(struct
> spi_device *spi)
> - 	 * the touchscreen, in case it's not connected.
> - 	 */
> - 	if (ts->model == 7845)
> --		ads7845_read12_ser(&spi->dev, PWRDOWN);
> -+		err = ads7845_read12_ser(&spi->dev, PWRDOWN);
> - 	else
> --		(void) ads7846_read12_ser(&spi->dev,
> READ_12BIT_SER(vaux));
> -+		err = ads7846_read12_ser(&spi->dev,
> READ_12BIT_SER(vaux));
> -+
> -+	/* if sample is all 0's or all 1's then there is no device on spi */
> -+	if ( (err == 0x000) || (err == 0xfff)) {
> -+		dev_info(&spi->dev, "no device detected, test read result was
> 0x%08X\n", err);
> -+		err = -ENODEV;
> -+		goto err_free_irq;
> -+	}
> -
> - 	err = sysfs_create_group(&spi->dev.kobj, &ads784x_attr_group);
> - 	if (err)
> -@@ -1376,7 +1383,7 @@ static int __devinit ads7846_probe(struct
> spi_device *spi)
> -  err_put_regulator:
> - 	regulator_put(ts->reg);
> -  err_free_gpio:
> --	if (!ts->get_pendown_state)
> -+	if (!ts->get_pendown_state && ts->gpio_pendown != -1)
> - 		gpio_free(ts->gpio_pendown);
> -  err_cleanup_filter:
> - 	if (ts->filter_cleanup)
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0008-Revert-omap2_mcspi-
> Flush-posted-writes.patch b/recipes-kernel/linux/linux-3.0/sakoman/0008-
> Revert-omap2_mcspi-Flush-posted-writes.patch
> deleted file mode 100644
> index 8058b5c..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0008-Revert-omap2_mcspi-Flush-
> posted-writes.patch
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -From baf40f002836b7c0fe9aeeba92ba483f6e9d2384 Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <steve at sakoman.com>
> -Date: Thu, 3 Mar 2011 13:29:30 -0800
> -Subject: [PATCH 08/14] Revert "omap2_mcspi: Flush posted writes"
> -
> -This reverts commit a330ce2001b290c59fe98c37e981683ef0a75fdf.
> -
> -The above commit breaks the ads7846 driver
> ----
> - drivers/spi/omap2_mcspi.c |    1 -
> - 1 files changed, 0 insertions(+), 1 deletions(-)
> -
> -diff --git a/drivers/spi/omap2_mcspi.c b/drivers/spi/omap2_mcspi.c
> -index 969cdd2..da981ee 100644
> ---- a/drivers/spi/omap2_mcspi.c
> -+++ b/drivers/spi/omap2_mcspi.c
> -@@ -195,7 +195,6 @@ static inline void mcspi_write_chconf0(const struct
> spi_device *spi, u32 val)
> -
> - 	cs->chconf0 = val;
> - 	mcspi_write_cs_reg(spi, OMAP2_MCSPI_CHCONF0, val);
> --	mcspi_read_cs_reg(spi, OMAP2_MCSPI_CHCONF0);
> - }
> -
> - static void omap2_mcspi_set_dma_req(const struct spi_device *spi,
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0009-rtc-twl-Use-threaded-
> IRQ-remove-IRQ-enable-in-interr.patch b/recipes-kernel/linux/linux-
> 3.0/sakoman/0009-rtc-twl-Use-threaded-IRQ-remove-IRQ-enable-in-
> interr.patch
> deleted file mode 100644
> index 220f974..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0009-rtc-twl-Use-threaded-IRQ-
> remove-IRQ-enable-in-interr.patch
> +++ /dev/null
> @@ -1,57 +0,0 @@
> -From 3532a9ceb9eb81147eab751b8c124b59acc87374 Mon Sep 17 00:00:00
> 2001
> -From: Todd Poynor <toddpoynor at google.com>
> -Date: Wed, 27 Jul 2011 07:07:20 +0000
> -Subject: [PATCH 09/14] rtc: twl: Use threaded IRQ, remove IRQ enable in
> interrupt handler
> -
> -IRQs disabled on entry to twl_rtc_interrupt is not a consequence
> -of LOCKDEP; both twl6030 and twl4030 explicitly disable IRQs
> -before calling the module IRQ handlers.
> -
> -The ISR should not be enabling IRQs; use a threaded IRQ handler
> -instead.
> -
> -Also fixes warnings:
> -
> -  WARNING: at kernel/irq/handle.c:130 handle_irq_event_percpu+nnn
> -  irq nnn handler twl_rtc_interrupt+nnn enabled interrupts
> -
> -Signed-off-by: Todd Poynor <toddpoynor at google.com>
> ----
> - drivers/rtc/rtc-twl.c |   14 +++-----------
> - 1 files changed, 3 insertions(+), 11 deletions(-)
> -
> -diff --git a/drivers/rtc/rtc-twl.c b/drivers/rtc/rtc-twl.c
> -index f9a2799..3fee95e 100644
> ---- a/drivers/rtc/rtc-twl.c
> -+++ b/drivers/rtc/rtc-twl.c
> -@@ -362,14 +362,6 @@ static irqreturn_t twl_rtc_interrupt(int irq, void *rtc)
> - 	int res;
> - 	u8 rd_reg;
> -
> --#ifdef CONFIG_LOCKDEP
> --	/* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which
> --	 * we don't want and can't tolerate.  Although it might be
> --	 * friendlier not to borrow this thread context...
> --	 */
> --	local_irq_enable();
> --#endif
> --
> - 	res = twl_rtc_read_u8(&rd_reg, REG_RTC_STATUS_REG);
> - 	if (res)
> - 		goto out;
> -@@ -462,9 +454,9 @@ static int __devinit twl_rtc_probe(struct
> platform_device *pdev)
> - 	if (ret < 0)
> - 		goto out1;
> -
> --	ret = request_irq(irq, twl_rtc_interrupt,
> --				IRQF_TRIGGER_RISING,
> --				dev_name(&rtc->dev), rtc);
> -+	ret = request_threaded_irq(irq, NULL, twl_rtc_interrupt,
> -+				   IRQF_TRIGGER_RISING,
> -+				   dev_name(&rtc->dev), rtc);
> - 	if (ret < 0) {
> - 		dev_err(&pdev->dev, "IRQ is not free.\n");
> - 		goto out1;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0010-rtc-twl-Fix-
> registration-vs.-init-order.patch b/recipes-kernel/linux/linux-
> 3.0/sakoman/0010-rtc-twl-Fix-registration-vs.-init-order.patch
> deleted file mode 100644
> index d710643..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0010-rtc-twl-Fix-registration-vs.-
> init-order.patch
> +++ /dev/null
> @@ -1,122 +0,0 @@
> -From 2cc62887b37d504df009d7241e6cebc3c65c32a5 Mon Sep 17 00:00:00
> 2001
> -From: Todd Poynor <toddpoynor at google.com>
> -Date: Wed, 27 Jul 2011 07:07:21 +0000
> -Subject: [PATCH 10/14] rtc: twl: Fix registration vs. init order
> -
> -Only register as an RTC device after the hardware has been
> -successfully initialized.  The RTC class driver will call
> -back to this driver to read a pending alarm, and other
> -drivers watching for new devices on the RTC class may
> -read the RTC time upon registration.  Such access might
> -occur while the RTC is stopped, prior to clearing
> -pending alarms, etc.
> -
> -The new ordering also avoids leaving the platform
> -device drvdata set to an unregistered struct rtc_device *
> -on probe errors.
> -
> -Signed-off-by: Todd Poynor <toddpoynor at google.com>
> ----
> - drivers/rtc/rtc-twl.c |   52 ++++++++++++++++++++++--------------------------
> - 1 files changed, 24 insertions(+), 28 deletions(-)
> -
> -diff --git a/drivers/rtc/rtc-twl.c b/drivers/rtc/rtc-twl.c
> -index 3fee95e..a64494e 100644
> ---- a/drivers/rtc/rtc-twl.c
> -+++ b/drivers/rtc/rtc-twl.c
> -@@ -420,24 +420,12 @@ static struct rtc_class_ops twl_rtc_ops = {
> - static int __devinit twl_rtc_probe(struct platform_device *pdev)
> - {
> - 	struct rtc_device *rtc;
> --	int ret = 0;
> -+	int ret = -EINVAL;
> - 	int irq = platform_get_irq(pdev, 0);
> - 	u8 rd_reg;
> -
> - 	if (irq <= 0)
> --		return -EINVAL;
> --
> --	rtc = rtc_device_register(pdev->name,
> --				  &pdev->dev, &twl_rtc_ops, THIS_MODULE);
> --	if (IS_ERR(rtc)) {
> --		ret = PTR_ERR(rtc);
> --		dev_err(&pdev->dev, "can't register RTC device, err %ld\n",
> --			PTR_ERR(rtc));
> --		goto out0;
> --
> --	}
> --
> --	platform_set_drvdata(pdev, rtc);
> -+		goto out1;
> -
> - 	ret = twl_rtc_read_u8(&rd_reg, REG_RTC_STATUS_REG);
> - 	if (ret < 0)
> -@@ -454,14 +442,6 @@ static int __devinit twl_rtc_probe(struct
> platform_device *pdev)
> - 	if (ret < 0)
> - 		goto out1;
> -
> --	ret = request_threaded_irq(irq, NULL, twl_rtc_interrupt,
> --				   IRQF_TRIGGER_RISING,
> --				   dev_name(&rtc->dev), rtc);
> --	if (ret < 0) {
> --		dev_err(&pdev->dev, "IRQ is not free.\n");
> --		goto out1;
> --	}
> --
> - 	if (twl_class_is_6030()) {
> - 		twl6030_interrupt_unmask(TWL6030_RTC_INT_MASK,
> - 			REG_INT_MSK_LINE_A);
> -@@ -472,28 +452,44 @@ static int __devinit twl_rtc_probe(struct
> platform_device *pdev)
> - 	/* Check RTC module status, Enable if it is off */
> - 	ret = twl_rtc_read_u8(&rd_reg, REG_RTC_CTRL_REG);
> - 	if (ret < 0)
> --		goto out2;
> -+		goto out1;
> -
> - 	if (!(rd_reg & BIT_RTC_CTRL_REG_STOP_RTC_M)) {
> - 		dev_info(&pdev->dev, "Enabling TWL-RTC.\n");
> - 		rd_reg = BIT_RTC_CTRL_REG_STOP_RTC_M;
> - 		ret = twl_rtc_write_u8(rd_reg, REG_RTC_CTRL_REG);
> - 		if (ret < 0)
> --			goto out2;
> -+			goto out1;
> - 	}
> -
> - 	/* init cached IRQ enable bits */
> - 	ret = twl_rtc_read_u8(&rtc_irq_bits, REG_RTC_INTERRUPTS_REG);
> - 	if (ret < 0)
> -+		goto out1;
> -+
> -+	rtc = rtc_device_register(pdev->name,
> -+				  &pdev->dev, &twl_rtc_ops, THIS_MODULE);
> -+	if (IS_ERR(rtc)) {
> -+		ret = PTR_ERR(rtc);
> -+		dev_err(&pdev->dev, "can't register RTC device, err %ld\n",
> -+			PTR_ERR(rtc));
> -+		goto out1;
> -+	}
> -+
> -+	ret = request_threaded_irq(irq, NULL, twl_rtc_interrupt,
> -+				   IRQF_TRIGGER_RISING,
> -+				   dev_name(&rtc->dev), rtc);
> -+	if (ret < 0) {
> -+		dev_err(&pdev->dev, "IRQ is not free.\n");
> - 		goto out2;
> -+	}
> -
> --	return ret;
> -+	platform_set_drvdata(pdev, rtc);
> -+	return 0;
> -
> - out2:
> --	free_irq(irq, rtc);
> --out1:
> - 	rtc_device_unregister(rtc);
> --out0:
> -+out1:
> - 	return ret;
> - }
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0011-soc-codecs-Enable-
> audio-capture-by-default-for-twl40.patch b/recipes-kernel/linux/linux-
> 3.0/sakoman/0011-soc-codecs-Enable-audio-capture-by-default-for-
> twl40.patch
> deleted file mode 100644
> index 4a903b2..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0011-soc-codecs-Enable-audio-
> capture-by-default-for-twl40.patch
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -From 76ab79b5491dd823477cd181b57795aa6b55f53c Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <steve at sakoman.com>
> -Date: Thu, 17 Dec 2009 12:45:20 -0800
> -Subject: [PATCH 11/14] soc: codecs: Enable audio capture by default for
> twl4030
> -
> ----
> - sound/soc/codecs/twl4030.c |    4 ++--
> - 1 files changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c
> -index bec788b..158ea04 100644
> ---- a/sound/soc/codecs/twl4030.c
> -+++ b/sound/soc/codecs/twl4030.c
> -@@ -55,8 +55,8 @@ static const u8 twl4030_reg[TWL4030_CACHEREGNUM]
> = {
> - 	0x00, /* REG_OPTION		(0x2)	*/
> - 	0x00, /* REG_UNKNOWN		(0x3)	*/
> - 	0x00, /* REG_MICBIAS_CTL	(0x4)	*/
> --	0x00, /* REG_ANAMICL		(0x5)	*/
> --	0x00, /* REG_ANAMICR		(0x6)	*/
> -+	0x34, /* REG_ANAMICL		(0x5)	*/
> -+	0x14, /* REG_ANAMICR		(0x6)	*/
> - 	0x00, /* REG_AVADC_CTL		(0x7)	*/
> - 	0x00, /* REG_ADCMICSEL		(0x8)	*/
> - 	0x00, /* REG_DIGMIXING		(0x9)	*/
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0012-soc-codecs-twl4030-
> Turn-on-mic-bias-by-default.patch b/recipes-kernel/linux/linux-
> 3.0/sakoman/0012-soc-codecs-twl4030-Turn-on-mic-bias-by-default.patch
> deleted file mode 100644
> index 199a0f0..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0012-soc-codecs-twl4030-Turn-
> on-mic-bias-by-default.patch
> +++ /dev/null
> @@ -1,25 +0,0 @@
> -From 31ec83c7092588f41b69e024f0ddd585c1981094 Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <steve at sakoman.com>
> -Date: Wed, 29 Dec 2010 11:39:16 -0800
> -Subject: [PATCH 12/14] soc: codecs: twl4030: Turn on mic bias by default
> -
> ----
> - sound/soc/codecs/twl4030.c |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c
> -index 158ea04..9bbf301 100644
> ---- a/sound/soc/codecs/twl4030.c
> -+++ b/sound/soc/codecs/twl4030.c
> -@@ -54,7 +54,7 @@ static const u8 twl4030_reg[TWL4030_CACHEREGNUM]
> = {
> - 	0x00, /* REG_CODEC_MODE		(0x1)	*/
> - 	0x00, /* REG_OPTION		(0x2)	*/
> - 	0x00, /* REG_UNKNOWN		(0x3)	*/
> --	0x00, /* REG_MICBIAS_CTL	(0x4)	*/
> -+	0x03, /* REG_MICBIAS_CTL	(0x4)	*/
> - 	0x34, /* REG_ANAMICL		(0x5)	*/
> - 	0x14, /* REG_ANAMICR		(0x6)	*/
> - 	0x00, /* REG_AVADC_CTL		(0x7)	*/
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0013-omap-mmc-twl4030-
> move-clock-input-selection-prior-to.patch b/recipes-kernel/linux/linux-
> 3.0/sakoman/0013-omap-mmc-twl4030-move-clock-input-selection-prior-
> to.patch
> deleted file mode 100644
> index 016323d..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0013-omap-mmc-twl4030-move-
> clock-input-selection-prior-to.patch
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -From 23d7e04b5d71feafdd920f4bf4b735cc452fef59 Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <steve at sakoman.com>
> -Date: Sun, 24 Jan 2010 09:33:56 -0800
> -Subject: [PATCH 13/14] omap: mmc-twl4030: move clock input selection prior
> to vcc test
> -
> -otherwise it is not executed on systems that use non-twl regulators
> ----
> - arch/arm/mach-omap2/hsmmc.c |   14 ++++++--------
> - 1 files changed, 6 insertions(+), 8 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-
> omap2/hsmmc.c
> -index 66868c5..48a6cfb 100644
> ---- a/arch/arm/mach-omap2/hsmmc.c
> -+++ b/arch/arm/mach-omap2/hsmmc.c
> -@@ -192,15 +192,13 @@ static void hsmmc23_before_set_reg(struct device
> *dev, int slot,
> - 	if (mmc->slots[0].remux)
> - 		mmc->slots[0].remux(dev, slot, power_on);
> -
> --	if (power_on) {
> --		/* Only MMC2 supports a CLKIN */
> --		if (mmc->slots[0].internal_clock) {
> --			u32 reg;
> -+	/* Only MMC2 supports a CLKIN */
> -+	if (mmc->slots[0].internal_clock) {
> -+		u32 reg;
> -
> --			reg = omap_ctrl_readl(control_devconf1_offset);
> --			reg |= OMAP2_MMCSDIO2ADPCLKISEL;
> --			omap_ctrl_writel(reg, control_devconf1_offset);
> --		}
> -+		reg = omap_ctrl_readl(control_devconf1_offset);
> -+		reg |= OMAP2_MMCSDIO2ADPCLKISEL;
> -+		omap_ctrl_writel(reg, control_devconf1_offset);
> - 	}
> - }
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sakoman/0014-rtc-twl-add-support-
> for-backup-battery-recharge.patch b/recipes-kernel/linux/linux-
> 3.0/sakoman/0014-rtc-twl-add-support-for-backup-battery-recharge.patch
> deleted file mode 100644
> index f44b3d0..0000000
> --- a/recipes-kernel/linux/linux-3.0/sakoman/0014-rtc-twl-add-support-for-
> backup-battery-recharge.patch
> +++ /dev/null
> @@ -1,57 +0,0 @@
> -From 55f8fd15557b03c2b336c8214d44de9753d0ba5f Mon Sep 17 00:00:00
> 2001
> -From: Steve Sakoman <steve at sakoman.com>
> -Date: Thu, 4 Feb 2010 12:26:22 -0800
> -Subject: [PATCH 14/14] rtc-twl: add support for backup battery recharge
> -
> ----
> - drivers/rtc/rtc-twl.c |   27 ++++++++++++++++++++++++++-
> - 1 files changed, 26 insertions(+), 1 deletions(-)
> -
> -diff --git a/drivers/rtc/rtc-twl.c b/drivers/rtc/rtc-twl.c
> -index a64494e..552446b 100644
> ---- a/drivers/rtc/rtc-twl.c
> -+++ b/drivers/rtc/rtc-twl.c
> -@@ -30,7 +30,24 @@
> -
> - #include <linux/i2c/twl.h>
> -
> --
> -+/*
> -+ * PM_RECEIVER block register offsets (use
> TWL4030_MODULE_PM_RECEIVER)
> -+ */
> -+#define REG_BB_CFG	0x12
> -+
> -+/* PM_RECEIVER  BB_CFG bitfields */
> -+#define BIT_PM_RECEIVER_BB_CFG_BBCHEN           0x10
> -+#define BIT_PM_RECEIVER_BB_CFG_BBSEL            0x0C
> -+#define BIT_PM_RECEIVER_BB_CFG_BBSEL_2V5        0x00
> -+#define BIT_PM_RECEIVER_BB_CFG_BBSEL_3V0        0x04
> -+#define BIT_PM_RECEIVER_BB_CFG_BBSEL_3V1        0x08
> -+#define BIT_PM_RECEIVER_BB_CFG_BBSEL_3v2        0x0c
> -+#define BIT_PM_RECEIVER_BB_CFG_BBISEL           0x03
> -+#define BIT_PM_RECEIVER_BB_CFG_BBISEL_25UA      0x00
> -+#define BIT_PM_RECEIVER_BB_CFG_BBISEL_150UA     0x01
> -+#define BIT_PM_RECEIVER_BB_CFG_BBISEL_500UA     0x02
> -+#define BIT_PM_RECEIVER_BB_CFG_BBISEL_1MA       0x03
> -+
> - /*
> -  * RTC block register offsets (use TWL_MODULE_RTC)
> -  */
> -@@ -484,6 +501,14 @@ static int __devinit twl_rtc_probe(struct
> platform_device *pdev)
> - 		goto out2;
> - 	}
> -
> -+	/* enable backup battery charging */
> -+	/* use a conservative 25uA @ 3.1V */
> -+	ret = twl_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> -+		BIT_PM_RECEIVER_BB_CFG_BBCHEN |
> -+		BIT_PM_RECEIVER_BB_CFG_BBSEL_3V1 |
> -+		BIT_PM_RECEIVER_BB_CFG_BBISEL_25UA,
> -+		REG_BB_CFG);
> -+
> - 	platform_set_drvdata(pdev, rtc);
> - 	return 0;
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/sgx/0001-ARM-L2-Add-and-export-
> outer_clean_all.patch b/recipes-kernel/linux/linux-3.0/sgx/0001-ARM-L2-Add-
> and-export-outer_clean_all.patch
> deleted file mode 100644
> index 62217d2..0000000
> --- a/recipes-kernel/linux/linux-3.0/sgx/0001-ARM-L2-Add-and-export-
> outer_clean_all.patch
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -From 867025d0468dedea5303d1088b292ace4d01c047 Mon Sep 17 00:00:00
> 2001
> -From: Vikram Pandita <vikram.pandita at ti.com>
> -Date: Tue, 31 May 2011 09:24:58 +0100
> -Subject: [PATCH] ARM: L2: Add and export outer_clean_all
> -
> -The Errata 588369 and 539766 demands that clean all operation be done
> -as clean each way at a time
> -
> -This patch also raps the implementation under the CONFIG errata
> -macro so that for non-errata version silicon it can be disabled
> -
> -Signed-off-by: Vikram Pandita <vikram.pandita at ti.com>
> -Cc: Santosh Shilimkar <santosh.shilimkar at ti.com>
> -Cc: Woodruff, Richard <r-woodruff2 at ti.com>
> ----
> - arch/arm/include/asm/outercache.h |    8 ++++++++
> - arch/arm/mm/cache-l2x0.c          |    1 +
> - 2 files changed, 9 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/include/asm/outercache.h
> b/arch/arm/include/asm/outercache.h
> -index d838743..fa8cbd8 100644
> ---- a/arch/arm/include/asm/outercache.h
> -+++ b/arch/arm/include/asm/outercache.h
> -@@ -28,6 +28,7 @@ struct outer_cache_fns {
> - 	void (*clean_range)(unsigned long, unsigned long);
> - 	void (*flush_range)(unsigned long, unsigned long);
> - 	void (*flush_all)(void);
> -+	void (*clean_all)(void);
> - 	void (*inv_all)(void);
> - 	void (*disable)(void);
> - #ifdef CONFIG_OUTER_CACHE_SYNC
> -@@ -61,6 +62,11 @@ static inline void outer_flush_all(void)
> - 	if (outer_cache.flush_all)
> - 		outer_cache.flush_all();
> - }
> -+static inline void outer_clean_all(void)
> -+{
> -+	if (outer_cache.clean_all)
> -+		outer_cache.clean_all();
> -+}
> -
> - static inline void outer_inv_all(void)
> - {
> -@@ -97,6 +103,8 @@ static inline void outer_sync(void)
> - #else
> - static inline void outer_sync(void)
> - { }
> -+static inline void outer_clean_all(void)
> -+{ }
> - #endif
> -
> - #endif	/* __ASM_OUTERCACHE_H */
> -diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
> -index 44c0867..10b79d6 100644
> ---- a/arch/arm/mm/cache-l2x0.c
> -+++ b/arch/arm/mm/cache-l2x0.c
> -@@ -346,6 +346,7 @@ void __init l2x0_init(void __iomem *base, __u32
> aux_val, __u32 aux_mask)
> - 	outer_cache.inv_all = l2x0_inv_all;
> - 	outer_cache.disable = l2x0_disable;
> - 	outer_cache.set_debug = l2x0_set_debug;
> -+	outer_cache.clean_all = l2x0_clean_all;
> -
> - 	printk(KERN_INFO "%s cache controller enabled\n", type);
> - 	printk(KERN_INFO "l2x0: %d ways, CACHE_ID 0x%08x, AUX_CTRL
> 0x%08x, Cache size: %d B\n",
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/ulcd/0001-OMAP_VOUT-Fix-build-
> break-caused-by-update_mode-remo.patch b/recipes-kernel/linux/linux-
> 3.0/ulcd/0001-OMAP_VOUT-Fix-build-break-caused-by-update_mode-
> remo.patch
> deleted file mode 100644
> index 44bb6b8..0000000
> --- a/recipes-kernel/linux/linux-3.0/ulcd/0001-OMAP_VOUT-Fix-build-break-
> caused-by-update_mode-remo.patch
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -From 9e3cacdf6fb8c5d704c9fb98f744eddbb25e3cda Mon Sep 17 00:00:00
> 2001
> -From: archit taneja <archit at ti.com>
> -Date: Fri, 5 Aug 2011 07:19:21 +0000
> -Subject: [PATCH 1/4] OMAP_VOUT: Fix build break caused by update_mode
> removal in DSS2
> -
> -The DSS2 driver does not support the configuration of the update_mode of a
> -panel anymore. Remove the setting of update_mode done in
> omap_vout_probe().
> -Ignore configuration of TE since omap_vout driver doesn't support manual
> update
> -displays anyway.
> -
> -Signed-off-by: Archit Taneja <archit at ti.com>
> -Tested-by: Koen Kooi <koen at dominion.thruhere.net>
> -Signed-off-by: Vaibhav Hiremath <hvaibhav at ti.com>
> ----
> - drivers/media/video/omap/omap_vout.c |   13 -------------
> - 1 files changed, 0 insertions(+), 13 deletions(-)
> -
> -diff --git a/drivers/media/video/omap/omap_vout.c
> b/drivers/media/video/omap/omap_vout.c
> -index 4d07c58..d17d6b6 100644
> ---- a/drivers/media/video/omap/omap_vout.c
> -+++ b/drivers/media/video/omap/omap_vout.c
> -@@ -2557,19 +2557,6 @@ static int __init omap_vout_probe(struct
> platform_device *pdev)
> - 					"'%s' Display already enabled\n",
> - 					def_display->name);
> - 			}
> --			/* set the update mode */
> --			if (def_display->caps &
> --
> 	OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
> --				if (dssdrv->enable_te)
> --					dssdrv->enable_te(def_display, 0);
> --				if (dssdrv->set_update_mode)
> --					dssdrv-
> >set_update_mode(def_display,
> --
> 	OMAP_DSS_UPDATE_MANUAL);
> --			} else {
> --				if (dssdrv->set_update_mode)
> --					dssdrv-
> >set_update_mode(def_display,
> --
> 	OMAP_DSS_UPDATE_AUTO);
> --			}
> - 		}
> - 	}
> -
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/ulcd/0002-WIP-omap-beagleboard-
> add-bbtoys-ulcd-lite-support.patch b/recipes-kernel/linux/linux-3.0/ulcd/0002-
> WIP-omap-beagleboard-add-bbtoys-ulcd-lite-support.patch
> deleted file mode 100644
> index 1b3d1ff..0000000
> --- a/recipes-kernel/linux/linux-3.0/ulcd/0002-WIP-omap-beagleboard-add-
> bbtoys-ulcd-lite-support.patch
> +++ /dev/null
> @@ -1,235 +0,0 @@
> -From ba0b157d461f6b8fe61e232e92ea7ee656ad5ecb Mon Sep 17 00:00:00
> 2001
> -From: Jason Kridner <jdk at ti.com>
> -Date: Mon, 12 Sep 2011 10:28:14 -0400
> -Subject: [PATCH 2/4] WIP: omap: beagleboard: add bbtoys ulcd-lite support
> -
> -Added support for the BeagleBoardToys ULCD-Lite.
> -* Added ThreeFiveCorp s9700rtwv35tr-01b panel to
> -  panel-generic-dpi driver.
> -* Added TSC2007 and LCD panel to board file.
> -
> -Relied heavily on the TSC2007 integration work done by
> -John Weber and panel timings from Roger Monk.
> -
> -Signed-off-by: Jason Kridner <jdk at ti.com>
> -Cc: John Weber <rjohnweber at gmail.com>
> -Cc: Roger Monk <r-monk at ti.com>
> -Cc: Joel A Fernandes <agnel.joel at gmail.com>
> -Cc: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c          |  112
> ++++++++++++++++++++++
> - drivers/video/omap2/displays/panel-generic-dpi.c |   25 +++++
> - 2 files changed, 137 insertions(+), 0 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 0124060..8b30b4c 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -35,6 +35,7 @@
> - #include <linux/i2c/twl.h>
> - #include <linux/netdevice.h>
> - #include <linux/if_ether.h>
> -+#include <linux/i2c/tsc2007.h>
> -
> - #include <mach/hardware.h>
> - #include <asm/mach-types.h>
> -@@ -87,11 +88,15 @@ static struct {
> - 	int usb_pwr_level;
> - 	int reset_gpio;
> - 	int usr_button_gpio;
> -+	char *lcd_driver_name;
> -+	int lcd_pwren;
> - } beagle_config = {
> - 	.mmc1_gpio_wp = -EINVAL,
> - 	.usb_pwr_level = GPIOF_OUT_INIT_LOW,
> - 	.reset_gpio = 129,
> - 	.usr_button_gpio = 4,
> -+	.lcd_driver_name = "",
> -+	.lcd_pwren = 156
> - };
> -
> - /*
> -@@ -471,9 +476,53 @@ static struct omap_dss_device beagle_tv_device = {
> - 	.phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO,
> - };
> -
> -+static int beagle_enable_lcd(struct omap_dss_device *dssdev)
> -+{
> -+       if (gpio_is_valid(beagle_config.lcd_pwren)) {
> -+               printk(KERN_INFO "%s: Enabling LCD\n", __FUNCTION__);
> -+               gpio_set_value(beagle_config.lcd_pwren, 0);
> -+       } else {
> -+               printk(KERN_INFO "%s: Invalid LCD enable GPIO: %d\n",
> -+                       __FUNCTION__, beagle_config.lcd_pwren);
> -+       }
> -+
> -+       return 0;
> -+}
> -+
> -+static void beagle_disable_lcd(struct omap_dss_device *dssdev)
> -+{
> -+       if (gpio_is_valid(beagle_config.lcd_pwren)) {
> -+               printk(KERN_INFO "%s: Disabling LCD\n", __FUNCTION__);
> -+               gpio_set_value(beagle_config.lcd_pwren, 1);
> -+       } else {
> -+               printk(KERN_INFO "%s: Invalid LCD enable GPIO: %d\n",
> -+                       __FUNCTION__, beagle_config.lcd_pwren);
> -+       }
> -+
> -+       return;
> -+}
> -+
> -+static struct panel_generic_dpi_data lcd_panel = {
> -+	.name = "tfc_s9700rtwv35tr-01b",
> -+	.platform_enable = beagle_enable_lcd,
> -+	.platform_disable = beagle_disable_lcd,
> -+};
> -+
> -+static struct omap_dss_device beagle_lcd_device = {
> -+	.type                   = OMAP_DISPLAY_TYPE_DPI,
> -+	.name                   = "lcd",
> -+	.driver_name		= "generic_dpi_panel",
> -+	.phy.dpi.data_lines     = 24,
> -+	.platform_enable        = beagle_enable_lcd,
> -+	.platform_disable       = beagle_disable_lcd,
> -+	.reset_gpio 		= -EINVAL,
> -+	.data			= &lcd_panel,
> -+};
> -+
> - static struct omap_dss_device *beagle_dss_devices[] = {
> - 	&beagle_dvi_device,
> - 	&beagle_tv_device,
> -+	&beagle_lcd_device,
> - };
> -
> - static struct omap_dss_board_info beagle_dss_data = {
> -@@ -490,6 +539,11 @@ static void __init beagle_display_init(void)
> - 			     "DVI reset");
> - 	if (r < 0)
> - 		printk(KERN_ERR "Unable to get DVI reset GPIO\n");
> -+
> -+       r = gpio_request_one(beagle_config.lcd_pwren, GPIOF_OUT_INIT_LOW,
> -+                            "LCD power");
> -+       if (r < 0)
> -+               printk(KERN_ERR "Unable to get LCD power enable GPIO\n");
> - }
> -
> - #include "sdram-micron-mt46h32m32lf-6.h"
> -@@ -648,6 +702,53 @@ static struct i2c_board_info __initdata
> beagle_i2c2_zippy[] = {
> - static struct i2c_board_info __initdata beagle_i2c2_zippy[] = {};
> - #endif
> -
> -+#if defined(CONFIG_INPUT_TOUCHSCREEN) && \
> -+	defined(CONFIG_TOUCHSCREEN_TSC2007)
> -+/* Touchscreen */
> -+#define OMAP3BEAGLE_TSC2007_GPIO 157
> -+static int omap3beagle_tsc2007_get_pendown_state(void)
> -+{
> -+	return !gpio_get_value(OMAP3BEAGLE_TSC2007_GPIO);
> -+}
> -+
> -+static int omap3beagle_tsc2007_init(void)
> -+{
> -+	int gpio = OMAP3BEAGLE_TSC2007_GPIO;
> -+	int ret = 0;
> -+	printk(KERN_WARNING "TSC2007_init started");
> -+	ret = gpio_request(gpio, "tsc2007_pen_down");
> -+	if (ret < 0) {
> -+		printk(KERN_ERR "Failed to request GPIO %d for "
> -+		"tsc2007 pen down IRQ\n", gpio);
> -+		return ret;
> -+	}
> -+
> -+	omap_mux_init_gpio(OMAP3BEAGLE_TSC2007_GPIO,
> OMAP_PIN_INPUT_PULLUP);
> -+	gpio_direction_input(gpio);
> -+
> -+	irq_set_irq_type(OMAP_GPIO_IRQ(OMAP3BEAGLE_TSC2007_GPIO),
> IRQ_TYPE_EDGE_FALLING);
> -+
> -+	return ret;
> -+}
> -+
> -+static struct tsc2007_platform_data tsc2007_info = {
> -+	.model = 2007,
> -+	.x_plate_ohms = 180,
> -+	.get_pendown_state = omap3beagle_tsc2007_get_pendown_state,
> -+	.init_platform_hw = omap3beagle_tsc2007_init,
> -+};
> -+
> -+static struct i2c_board_info __initdata beagle_i2c2_bbtoys_ulcd[] = {
> -+	{
> -+		I2C_BOARD_INFO("tsc2007", 0x48),
> -+		.irq = OMAP_GPIO_IRQ(OMAP3BEAGLE_TSC2007_GPIO),
> -+		.platform_data = &tsc2007_info,
> -+	},
> -+};
> -+#else
> -+static struct i2c_board_info __initdata beagle_i2c2_bbtoys_ulcd[] = {};
> -+#endif
> -+
> - static int __init omap3_beagle_i2c_init(void)
> - {
> - 	omap3_pmic_get_config(&beagle_twldata,
> -@@ -817,6 +918,10 @@ static void __init omap3_beagle_init(void)
> -
> - 	gpio_buttons[0].gpio = beagle_config.usr_button_gpio;
> -
> -+	/* TODO: set lcd_driver_name by command line or device tree */
> -+	beagle_config.lcd_driver_name = "tfc_s9700rtwv35tr-01b",
> -+	lcd_panel.name = beagle_config.lcd_driver_name;
> -+
> - 	platform_add_devices(omap3_beagle_devices,
> - 			ARRAY_SIZE(omap3_beagle_devices));
> - 	omap_display_init(&beagle_dss_data);
> -@@ -892,6 +997,13 @@ static void __init omap3_beagle_init(void)
> - 		platform_device_register(&omap_vwlan_device);
> - 	}
> -
> -+	if(!strcmp(expansionboard_name, "bbtoys-ulcd"))
> -+	{
> -+		printk(KERN_INFO "Beagle expansionboard: registering bbtoys-
> ulcd\n");
> -+		omap_register_i2c_bus(2, 400,  beagle_i2c2_bbtoys_ulcd,
> -+
> 	ARRAY_SIZE(beagle_i2c2_bbtoys_ulcd));
> -+	}
> -+
> - 	usb_musb_init(NULL);
> - 	usbhs_init(&usbhs_bdata);
> - 	omap_nand_flash_init(NAND_BUSWIDTH_16,
> omap3beagle_nand_partitions,
> -diff --git a/drivers/video/omap2/displays/panel-generic-dpi.c
> b/drivers/video/omap2/displays/panel-generic-dpi.c
> -index 9c90f75..82c1ac3 100644
> ---- a/drivers/video/omap2/displays/panel-generic-dpi.c
> -+++ b/drivers/video/omap2/displays/panel-generic-dpi.c
> -@@ -232,6 +232,31 @@ static struct panel_config generic_dpi_panels[] = {
> - 		.power_off_delay	= 0,
> - 		.name			= "powertip_ph480272t",
> - 	},
> -+
> -+	/* ThreeFiveCorp S9700RTWV35TR-01B */
> -+	{
> -+		{
> -+			.x_res		= 800,
> -+			.y_res		= 480,
> -+
> -+			.pixel_clock	= 30000,
> -+
> -+			.hsw		= 49,
> -+			.hfp		= 41,
> -+			.hbp		= 40,
> -+
> -+			.vsw		= 4,
> -+			.vfp		= 14,
> -+			.vbp		= 29,
> -+		},
> -+		.acbi			= 0x0,
> -+		.acb			= 0x0,
> -+		.config			= OMAP_DSS_LCD_TFT |
> OMAP_DSS_LCD_IVS |
> -+					  OMAP_DSS_LCD_IHS, // |
> OMAP_DSS_LCD_IEO; - TODO check this - doesn't work with this enabled
> -+		.power_on_delay		= 50,
> -+		.power_off_delay	= 100,
> -+		.name			= "tfc_s9700rtwv35tr-01b",
> -+	},
> - };
> -
> - struct panel_drv_data {
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/ulcd/0003-ARM-OMAP2-beagleboard-
> add-support-for-loopthrough-ex.patch b/recipes-kernel/linux/linux-
> 3.0/ulcd/0003-ARM-OMAP2-beagleboard-add-support-for-loopthrough-
> ex.patch
> deleted file mode 100644
> index 46cb432..0000000
> --- a/recipes-kernel/linux/linux-3.0/ulcd/0003-ARM-OMAP2-beagleboard-add-
> support-for-loopthrough-ex.patch
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -From eea23f28cacdb525471ecf4dc8a2366ccef5a28b Mon Sep 17 00:00:00
> 2001
> -From: Koen Kooi <koen at dominion.thruhere.net>
> -Date: Tue, 11 Oct 2011 13:13:35 +0200
> -Subject: [PATCH 3/4] ARM: OMAP2: beagleboard: add support for loopthrough
> expansionboard, make uLCD use it
> -
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c |   15 +++++++++++++--
> - 1 files changed, 13 insertions(+), 2 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 8b30b4c..47bc79b 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -253,6 +253,7 @@ static void __init omap3_beagle_init_rev(void)
> - }
> -
> - char expansionboard_name[16];
> -+char expansionboard2_name[16];
> -
> - #if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE)
> - #include <linux/regulator/fixed.h>
> -@@ -862,6 +863,15 @@ static int __init expansionboard_setup(char *str)
> - 	return 0;
> - }
> -
> -+static int __init expansionboard2_setup(char *str)
> -+{
> -+	if (!str)
> -+		return -EINVAL;
> -+	strncpy(expansionboard2_name, str, 16);
> -+	printk(KERN_INFO "Beagle second expansionboard: %s\n",
> expansionboard2_name);
> -+	return 0;
> -+}
> -+
> - static void __init beagle_opp_init(void)
> - {
> - 	int r = 0;
> -@@ -997,9 +1007,9 @@ static void __init omap3_beagle_init(void)
> - 		platform_device_register(&omap_vwlan_device);
> - 	}
> -
> --	if(!strcmp(expansionboard_name, "bbtoys-ulcd"))
> -+	if(!strcmp(expansionboard2_name, "bbtoys-ulcd"))
> - 	{
> --		printk(KERN_INFO "Beagle expansionboard: registering bbtoys-
> ulcd\n");
> -+		printk(KERN_INFO "Beagle second expansionboard: registering
> bbtoys-ulcd\n");
> - 		omap_register_i2c_bus(2, 400,  beagle_i2c2_bbtoys_ulcd,
> -
> 	ARRAY_SIZE(beagle_i2c2_bbtoys_ulcd));
> - 	}
> -@@ -1021,6 +1031,7 @@ static void __init omap3_beagle_init(void)
> - }
> -
> - early_param("buddy", expansionboard_setup);
> -+early_param("buddy2", expansionboard2_setup);
> -
> - MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
> - 	/* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/ulcd/0004-LEDS-add-initial-support-
> for-WS2801-controller.patch b/recipes-kernel/linux/linux-3.0/ulcd/0004-LEDS-
> add-initial-support-for-WS2801-controller.patch
> deleted file mode 100644
> index b81d125..0000000
> --- a/recipes-kernel/linux/linux-3.0/ulcd/0004-LEDS-add-initial-support-for-
> WS2801-controller.patch
> +++ /dev/null
> @@ -1,242 +0,0 @@
> -From e707458df28487c2fb0bf620cb3eff22466e2c6c Mon Sep 17 00:00:00
> 2001
> -From: Koen Kooi <koen at dominion.thruhere.net>
> -Date: Thu, 20 Oct 2011 16:13:16 +0200
> -Subject: [PATCH 4/4] LEDS: add initial support for WS2801 controller
> -
> -This adds initial support for the WS2801 RGB LED controller.
> -
> -Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ----
> - arch/arm/mach-omap2/board-omap3beagle.c |   11 ++
> - drivers/leds/Kconfig                    |    6 +
> - drivers/leds/Makefile                   |    1 +
> - drivers/leds/leds-ws2801.c              |  159
> +++++++++++++++++++++++++++++++
> - 4 files changed, 177 insertions(+), 0 deletions(-)
> - create mode 100644 drivers/leds/leds-ws2801.c
> -
> -diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-
> omap2/board-omap3beagle.c
> -index 47bc79b..016d0985 100644
> ---- a/arch/arm/mach-omap2/board-omap3beagle.c
> -+++ b/arch/arm/mach-omap2/board-omap3beagle.c
> -@@ -796,6 +796,11 @@ static struct platform_device leds_gpio = {
> - 	},
> - };
> -
> -+static struct platform_device ws2801_leds = {
> -+	.name	= "ws2801-leds",
> -+	.id	= -1,
> -+};
> -+
> - static struct gpio_keys_button gpio_buttons[] = {
> - 	{
> - 		.code			= BTN_EXTRA,
> -@@ -1014,6 +1019,12 @@ static void __init omap3_beagle_init(void)
> -
> 	ARRAY_SIZE(beagle_i2c2_bbtoys_ulcd));
> - 	}
> -
> -+	if(!strcmp(expansionboard_name, "beacon"))
> -+	{
> -+		printk(KERN_INFO "Beagle expansionboard: registering
> TinCanTools Beacon LED driver\n");
> -+		platform_device_register(&ws2801_leds);
> -+	}
> -+
> - 	usb_musb_init(NULL);
> - 	usbhs_init(&usbhs_bdata);
> - 	omap_nand_flash_init(NAND_BUSWIDTH_16,
> omap3beagle_nand_partitions,
> -diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
> -index 713d43b..fd2c4b3 100644
> ---- a/drivers/leds/Kconfig
> -+++ b/drivers/leds/Kconfig
> -@@ -323,6 +323,12 @@ config LEDS_BD2802
> - 	  This option enables support for BD2802GU RGB LED driver chips
> - 	  accessed via the I2C bus.
> -
> -+config LEDS_WS2801
> -+	tristate "LED driver for WS2801 RGB LED"
> -+	depends on LEDS_CLASS
> -+	help
> -+	  This option enables support for WS2801 RGB LED driver chips.
> -+
> - config LEDS_INTEL_SS4200
> - 	tristate "LED driver for Intel NAS SS4200 series"
> - 	depends on LEDS_CLASS
> -diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
> -index bbfd2e3..14f849e 100644
> ---- a/drivers/leds/Makefile
> -+++ b/drivers/leds/Makefile
> -@@ -43,6 +43,7 @@ obj-$(CONFIG_LEDS_MC13783)		+= leds-
> mc13783.o
> - obj-$(CONFIG_LEDS_NS2)			+= leds-ns2.o
> - obj-$(CONFIG_LEDS_NETXBIG)		+= leds-netxbig.o
> - obj-$(CONFIG_LEDS_ASIC3)		+= leds-asic3.o
> -+obj-$(CONFIG_LEDS_WS2801)		+= leds-ws2801.o
> -
> - # LED SPI Drivers
> - obj-$(CONFIG_LEDS_DAC124S085)		+= leds-dac124s085.o
> -diff --git a/drivers/leds/leds-ws2801.c b/drivers/leds/leds-ws2801.c
> -new file mode 100644
> -index 0000000..9526a84
> ---- /dev/null
> -+++ b/drivers/leds/leds-ws2801.c
> -@@ -0,0 +1,159 @@
> -+/*
> -+ * LEDs driver for WS2801 RGB Controller
> -+ *
> -+ * Copyright (C) 2006 Kristian Kielhofner <kris at krisk.org>
> -+ *
> -+ * Based on leds-net48xx.c
> -+ *
> -+ * This program is free software; you can redistribute it and/or modify
> -+ * it under the terms of the GNU General Public License version 2 as
> -+ * published by the Free Software Foundation.
> -+ */
> -+
> -+#include <linux/kernel.h>
> -+#include <linux/init.h>
> -+#include <linux/platform_device.h>
> -+#include <linux/leds.h>
> -+#include <linux/err.h>
> -+#include <linux/gpio.h>
> -+#include <linux/io.h>
> -+
> -+#define DRVNAME "ws2801-leds"
> -+#define WS2801_LED_CLOCK_GPIO	159
> -+#define WS2801_LED_DATA_GPIO	158
> -+
> -+static unsigned long rgb_color;
> -+
> -+static struct platform_device *pdev;
> -+
> -+static void ws2801_set_rgb(void)
> -+{
> -+	int count;
> -+	int color_bit;
> -+
> -+	for (count = 23; count >= 0 ; count--) {
> -+		color_bit = (rgb_color>>count) & (1<<0);
> -+		gpio_set_value(WS2801_LED_DATA_GPIO, color_bit);
> -+		gpio_set_value(WS2801_LED_CLOCK_GPIO, 1);
> -+		gpio_set_value(WS2801_LED_CLOCK_GPIO, 0);
> -+	}
> -+
> -+}
> -+
> -+static void ws2801_red_led_set(struct led_classdev *led_cdev,
> -+		enum led_brightness value)
> -+{
> -+	rgb_color &= ((0x00<<16)|(0xff<<8)|(0xff<<0));
> -+	rgb_color |= (value<<16);
> -+	ws2801_set_rgb();
> -+}
> -+
> -+static void ws2801_green_led_set(struct led_classdev *led_cdev,
> -+		enum led_brightness value)
> -+{
> -+	rgb_color &= ((0xff<<16)|(0x00<<8)|(0xff<<0));
> -+	rgb_color |= (value<<8);
> -+	ws2801_set_rgb();
> -+}
> -+
> -+static void ws2801_blue_led_set(struct led_classdev *led_cdev,
> -+		enum led_brightness value)
> -+{
> -+	rgb_color &= ((0xff<<16)|(0xff<<8)|(0x00<<0));
> -+	rgb_color |= (value<<0);
> -+	ws2801_set_rgb();
> -+}
> -+
> -+static struct led_classdev ws2801_red_led = {
> -+	.name			= "ws2801-red",
> -+	.brightness_set		= ws2801_red_led_set,
> -+	.flags			= LED_CORE_SUSPENDRESUME,
> -+};
> -+
> -+static struct led_classdev ws2801_green_led = {
> -+	.name		= "ws2801-green",
> -+	.brightness_set	= ws2801_green_led_set,
> -+	.flags			= LED_CORE_SUSPENDRESUME,
> -+};
> -+
> -+static struct led_classdev ws2801_blue_led = {
> -+	.name           = "ws2801-blue",
> -+	.brightness_set = ws2801_blue_led_set,
> -+	.flags			= LED_CORE_SUSPENDRESUME,
> -+};
> -+
> -+static int ws2801_led_probe(struct platform_device *pdev)
> -+{
> -+	int ret;
> -+
> -+	ret = led_classdev_register(&pdev->dev, &ws2801_red_led);
> -+	if (ret < 0)
> -+		return ret;
> -+
> -+	ret = led_classdev_register(&pdev->dev, &ws2801_green_led);
> -+	if (ret < 0)
> -+		goto err1;
> -+
> -+	ret = led_classdev_register(&pdev->dev, &ws2801_blue_led);
> -+	if (ret < 0)
> -+		goto err2;
> -+
> -+	gpio_request_one(WS2801_LED_DATA_GPIO,
> -+		GPIOF_OUT_INIT_LOW, "ws2801_data");
> -+
> -+	gpio_request_one(WS2801_LED_CLOCK_GPIO,
> -+		GPIOF_OUT_INIT_LOW, "ws2801_clock");
> -+
> -+	ws2801_set_rgb();
> -+	return ret;
> -+
> -+err2:
> -+	led_classdev_unregister(&ws2801_green_led);
> -+err1:
> -+	led_classdev_unregister(&ws2801_red_led);
> -+
> -+	return ret;
> -+}
> -+
> -+static int ws2801_led_remove(struct platform_device *pdev)
> -+{
> -+	led_classdev_unregister(&ws2801_red_led);
> -+	led_classdev_unregister(&ws2801_green_led);
> -+	led_classdev_unregister(&ws2801_blue_led);
> -+	return 0;
> -+}
> -+
> -+static struct platform_driver ws2801_led_driver = {
> -+	.probe		= ws2801_led_probe,
> -+	.remove		= ws2801_led_remove,
> -+	.driver		= {
> -+		.name		= DRVNAME,
> -+		.owner		= THIS_MODULE,
> -+	},
> -+};
> -+
> -+static int __init ws2801_led_init(void)
> -+{
> -+	int ret;
> -+
> -+	ret = platform_driver_register(&ws2801_led_driver);
> -+	if (ret < 0)
> -+		goto out;
> -+
> -+out:
> -+	return ret;
> -+}
> -+
> -+static void __exit ws2801_led_exit(void)
> -+{
> -+	platform_device_unregister(pdev);
> -+	platform_driver_unregister(&ws2801_led_driver);
> -+}
> -+
> -+module_init(ws2801_led_init);
> -+module_exit(ws2801_led_exit);
> -+
> -+MODULE_AUTHOR("David Anders <danders at tincantools.com>");
> -+MODULE_DESCRIPTION("WS2801 RGB LED driver");
> -+MODULE_LICENSE("GPL");
> -+
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux-3.0/usb/0001-Fix-sprz319-erratum-
> 2.1.patch b/recipes-kernel/linux/linux-3.0/usb/0001-Fix-sprz319-erratum-
> 2.1.patch
> deleted file mode 100644
> index 8d65b5f..0000000
> --- a/recipes-kernel/linux/linux-3.0/usb/0001-Fix-sprz319-erratum-2.1.patch
> +++ /dev/null
> @@ -1,210 +0,0 @@
> -From cf5db5477d8d43f02f4511f3835ab4bec0dcc27c Mon Sep 17 00:00:00
> 2001
> -From: Richard Watts <rrw at kynesim.co.uk>
> -Date: Mon, 20 Feb 2012 17:58:26 +0000
> -Subject: [PATCH] Fix sprz319 erratum 2.1
> -
> -There is an erratum in DM3730 which results in the
> -EHCI USB PLL (DPLL5) not updating sufficiently frequently; this
> -leads to USB PHY clock drift and once the clock has drifted far
> -enough, the PHY's ULPI interface stops responding and USB
> -drops out. This is manifested on a Beagle xM by having the attached
> -SMSC9514 report 'Cannot enable port 2. Maybe the USB cable is bad?'
> -or similar.
> -
> -The fix is to carefully adjust your DPLL5 settings so as to
> -keep the PHY clock as close as possible to 120MHz over the long
> -term; TI SPRZ319e gives a table of such settings and this patch
> -applies that table to systems with a 13MHz or a 26MHz clock,
> -thus fixing the issue (inasfar as it can be fixed) on Beagle xM
> -and Overo Firestorm.
> -
> -Signed-off-by: Richard Watts <rrw at kynesim.co.uk>
> ----
> - arch/arm/mach-omap2/clkt_clksel.c    |   15 ++++++++
> - arch/arm/mach-omap2/clock.h          |    7 ++++
> - arch/arm/mach-omap2/clock3xxx.c      |   65
> +++++++++++++++++++++++++++++----
> - arch/arm/mach-omap2/clock3xxx.h      |    1 +
> - arch/arm/mach-omap2/clock3xxx_data.c |    2 +-
> - arch/arm/mach-omap2/dpll3xxx.c       |    2 +-
> - 6 files changed, 82 insertions(+), 10 deletions(-)
> -
> -diff --git a/arch/arm/mach-omap2/clkt_clksel.c b/arch/arm/mach-
> omap2/clkt_clksel.c
> -index e25364d..e378fe7 100644
> ---- a/arch/arm/mach-omap2/clkt_clksel.c
> -+++ b/arch/arm/mach-omap2/clkt_clksel.c
> -@@ -460,6 +460,21 @@ int omap2_clksel_set_rate(struct clk *clk, unsigned
> long rate)
> - 	return 0;
> - }
> -
> -+int omap2_clksel_force_divisor(struct clk *clk, int new_div)
> -+{
> -+	u32 field_val;
> -+
> -+	field_val = _divisor_to_clksel(clk, new_div);
> -+	if (field_val == ~0)
> -+		return -EINVAL;
> -+
> -+	_write_clksel_reg(clk, field_val);
> -+
> -+	clk->rate = clk->parent->rate / new_div;
> -+
> -+	return 0;
> -+}
> -+
> - /*
> -  * Clksel parent setting function - not passed in struct clk function
> -  * pointer - instead, the OMAP clock code currently assumes that any
> -diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h
> -index 8bad1c6..ac3d367 100644
> ---- a/arch/arm/mach-omap2/clock.h
> -+++ b/arch/arm/mach-omap2/clock.h
> -@@ -61,6 +61,12 @@ void omap3_dpll_allow_idle(struct clk *clk);
> - void omap3_dpll_deny_idle(struct clk *clk);
> - u32 omap3_dpll_autoidle_read(struct clk *clk);
> - int omap3_noncore_dpll_set_rate(struct clk *clk, unsigned long rate);
> -+#if CONFIG_ARCH_OMAP3
> -+int omap3_noncore_dpll_program(struct clk *clk, u16 m, u8 n, u16 freqsel);
> -+/* If you are using this function and not on OMAP3, you are
> -+ * Doing It Wrong(tm), so there is no stub.
> -+ */
> -+#endif
> - int omap3_noncore_dpll_enable(struct clk *clk);
> - void omap3_noncore_dpll_disable(struct clk *clk);
> - int omap4_dpllmx_gatectrl_read(struct clk *clk);
> -@@ -84,6 +90,7 @@ unsigned long omap2_clksel_recalc(struct clk *clk);
> - long omap2_clksel_round_rate(struct clk *clk, unsigned long target_rate);
> - int omap2_clksel_set_rate(struct clk *clk, unsigned long rate);
> - int omap2_clksel_set_parent(struct clk *clk, struct clk *new_parent);
> -+int omap2_clksel_force_divisor(struct clk *clk, int new_div);
> -
> - /* clkt_iclk.c public functions */
> - extern void omap2_clkt_iclk_allow_idle(struct clk *clk);
> -diff --git a/arch/arm/mach-omap2/clock3xxx.c b/arch/arm/mach-
> omap2/clock3xxx.c
> -index 952c3e0..d5be086 100644
> ---- a/arch/arm/mach-omap2/clock3xxx.c
> -+++ b/arch/arm/mach-omap2/clock3xxx.c
> -@@ -40,6 +40,60 @@
> - /* needed by omap3_core_dpll_m2_set_rate() */
> - struct clk *sdrc_ick_p, *arm_fck_p;
> -
> -+struct dpll_settings {
> -+	int rate, m, n, f;
> -+};
> -+
> -+
> -+static int omap3_dpll5_apply_erratum21(struct clk *clk, struct clk *dpll5_m2)
> -+{
> -+	struct clk *sys_clk;
> -+	int i, rv;
> -+	static const struct dpll_settings precomputed[] = {
> -+		/* From DM3730 errata (sprz319e), table 36
> -+		* +1 is because the values in the table are register values;
> -+		* dpll_program() will subtract one from what we give it,
> -+		* so ...
> -+		*/
> -+		{ 13000000, 443+1, 5+1, 8 },
> -+		{ 26000000, 443+1, 11+1, 8 }
> -+	};
> -+
> -+	sys_clk = clk_get(NULL, "sys_ck");
> -+
> -+	for (i = 0 ; i < (sizeof(precomputed)/sizeof(struct dpll_settings)) ;
> -+		++i) {
> -+		const struct dpll_settings *d = &precomputed[i];
> -+		if (sys_clk->rate == d->rate) {
> -+			rv =  omap3_noncore_dpll_program(clk, d->m , d->n,
> 0);
> -+			if (rv)
> -+				return 1;
> -+			rv =  omap2_clksel_force_divisor(dpll5_m2 , d->f);
> -+			return 1;
> -+		}
> -+	}
> -+	return 0;
> -+}
> -+
> -+int omap3_dpll5_set_rate(struct clk *clk, unsigned long rate)
> -+{
> -+	struct clk *dpll5_m2;
> -+	int rv;
> -+	dpll5_m2 = clk_get(NULL, "dpll5_m2_ck");
> -+
> -+	if (cpu_is_omap3630() && rate == DPLL5_FREQ_FOR_USBHOST &&
> -+		omap3_dpll5_apply_erratum21(clk, dpll5_m2)) {
> -+		return 1;
> -+	}
> -+	rv = omap3_noncore_dpll_set_rate(clk, rate);
> -+	if (rv)
> -+		goto out;
> -+	rv = clk_set_rate(dpll5_m2, rate);
> -+
> -+out:
> -+	return rv;
> -+}
> -+
> - int omap3_dpll4_set_rate(struct clk *clk, unsigned long rate)
> - {
> - 	/*
> -@@ -59,19 +113,14 @@ int omap3_dpll4_set_rate(struct clk *clk, unsigned
> long rate)
> - void __init omap3_clk_lock_dpll5(void)
> - {
> - 	struct clk *dpll5_clk;
> --	struct clk *dpll5_m2_clk;
> -
> - 	dpll5_clk = clk_get(NULL, "dpll5_ck");
> - 	clk_set_rate(dpll5_clk, DPLL5_FREQ_FOR_USBHOST);
> --	clk_enable(dpll5_clk);
> -
> --	/* Program dpll5_m2_clk divider for no division */
> --	dpll5_m2_clk = clk_get(NULL, "dpll5_m2_ck");
> --	clk_enable(dpll5_m2_clk);
> --	clk_set_rate(dpll5_m2_clk, DPLL5_FREQ_FOR_USBHOST);
> -+	/* dpll5_m2_ck is now (grottily!) handled by dpll5_clk's set routine,
> -+	 * to cope with an erratum on DM3730
> -+	 */
> -
> --	clk_disable(dpll5_m2_clk);
> --	clk_disable(dpll5_clk);
> - 	return;
> - }
> -
> -diff --git a/arch/arm/mach-omap2/clock3xxx.h b/arch/arm/mach-
> omap2/clock3xxx.h
> -index 8bbeeaf..0ede513 100644
> ---- a/arch/arm/mach-omap2/clock3xxx.h
> -+++ b/arch/arm/mach-omap2/clock3xxx.h
> -@@ -10,6 +10,7 @@
> -
> - int omap3xxx_clk_init(void);
> - int omap3_dpll4_set_rate(struct clk *clk, unsigned long rate);
> -+int omap3_dpll5_set_rate(struct clk *clk, unsigned long rate);
> - int omap3_core_dpll_m2_set_rate(struct clk *clk, unsigned long rate);
> - void omap3_clk_lock_dpll5(void);
> -
> -diff --git a/arch/arm/mach-omap2/clock3xxx_data.c b/arch/arm/mach-
> omap2/clock3xxx_data.c
> -index ffd55b1..dcd7bdc 100644
> ---- a/arch/arm/mach-omap2/clock3xxx_data.c
> -+++ b/arch/arm/mach-omap2/clock3xxx_data.c
> -@@ -942,7 +942,7 @@ static struct clk dpll5_ck = {
> - 	.parent		= &sys_ck,
> - 	.dpll_data	= &dpll5_dd,
> - 	.round_rate	= &omap2_dpll_round_rate,
> --	.set_rate	= &omap3_noncore_dpll_set_rate,
> -+	.set_rate	= &omap3_dpll5_set_rate,
> - 	.clkdm_name	= "dpll5_clkdm",
> - 	.recalc		= &omap3_dpll_recalc,
> - };
> -diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-
> omap2/dpll3xxx.c
> -index f77022b..1909cd0 100644
> ---- a/arch/arm/mach-omap2/dpll3xxx.c
> -+++ b/arch/arm/mach-omap2/dpll3xxx.c
> -@@ -291,7 +291,7 @@ static void _lookup_sddiv(struct clk *clk, u8 *sd_div,
> u16 m, u8 n)
> -  * Program the DPLL with the supplied M, N values, and wait for the DPLL to
> -  * lock..  Returns -EINVAL upon error, or 0 upon success.
> -  */
> --static int omap3_noncore_dpll_program(struct clk *clk, u16 m, u8 n, u16
> freqsel)
> -+int omap3_noncore_dpll_program(struct clk *clk, u16 m, u8 n, u16 freqsel)
> - {
> - 	struct dpll_data *dd = clk->dpll_data;
> - 	u8 dco, sd_div;
> ---
> -1.7.2.5
> -
> diff --git a/recipes-kernel/linux/linux_3.0.bb b/recipes-kernel/linux/linux_3.0.bb
> deleted file mode 100644
> index 3aae2ca..0000000
> --- a/recipes-kernel/linux/linux_3.0.bb
> +++ /dev/null
> @@ -1,234 +0,0 @@
> -require linux.inc
> -
> -DESCRIPTION = "Linux kernel for TI processors"
> -
> -COMPATIBLE_MACHINE = "(beagleboard)"
> -
> -PV = "3.0.28"
> -# v3.0.28 tag
> -SRCREV_pn-${PN} = "0527fde0639955203ad48a9fd83bd6fc35e82e07"
> -
> -# The main PR is now using MACHINE_KERNEL_PR, for omap3 see
> conf/machine/include/omap3.inc
> -MACHINE_KERNEL_PR_append = "a"
> -
> -FILESPATH =. "${FILE_DIRNAME}/linux-3.0:${FILE_DIRNAME}/linux-
> 3.0/${MACHINE}:"
> -
> -SRC_URI += "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-
> stable.git;branch=linux-3.0.y;protocol=git \
> -            file://pm-wip/voltdm/0001-cleanup-regulator-supply-definitions-in-
> mach-omap2.patch \
> -            file://pm-wip/voltdm/0002-Remove-old-style-supply.dev-assignments-
> common-in-hs.patch \
> -            file://pm-wip/voltdm/0003-omap-Use-separate-init_irq-functions-to-
> avoid-cpu_is.patch \
> -            file://pm-wip/voltdm/0004-omap-Set-separate-timer-init-functions-to-
> avoid-cpu_.patch \
> -            file://pm-wip/voltdm/0005-omap-Move-dmtimer-defines-to-
> dmtimer.h.patch \
> -            file://pm-wip/voltdm/0006-omap-Make-a-subset-of-dmtimer-functions-
> into-inline-.patch \
> -            file://pm-wip/voltdm/0007-omap2-Use-dmtimer-macros-for-
> clockevent.patch \
> -            file://pm-wip/voltdm/0008-omap2-Remove-gptimer_wakeup-for-
> now.patch \
> -            file://pm-wip/voltdm/0009-OMAP3-SR-make-notify-independent-of-
> class.patch \
> -            file://pm-wip/voltdm/0010-OMAP3-SR-disable-interrupt-by-
> default.patch \
> -            file://pm-wip/voltdm/0011-OMAP3-SR-enable-disable-SR-only-on-
> need.patch \
> -            file://pm-wip/voltdm/0012-OMAP3-SR-fix-cosmetic-indentation.patch \
> -            file://pm-wip/voltdm/0013-omap2-Reserve-clocksource-and-
> timesource-and-initial.patch \
> -            file://pm-wip/voltdm/0014-omap2-Use-dmtimer-macros-for-
> clocksource.patch \
> -            file://pm-wip/voltdm/0015-omap2-Remove-
> omap2_gp_clockevent_set_gptimer.patch \
> -            file://pm-wip/voltdm/0016-omap2-Rename-timer-gp.c-into-timer.c-to-
> combine-time.patch \
> -            file://pm-wip/voltdm/0017-omap-cleanup-NAND-platform-data.patch \
> -            file://pm-wip/voltdm/0018-omap-board-omap3evm-Fix-compilation-
> error.patch \
> -            file://pm-wip/voltdm/0019-omap-mcbsp-Drop-SPI-mode-support.patch
> \
> -            file://pm-wip/voltdm/0020-omap-mcbsp-Drop-in-driver-transfer-
> support.patch \
> -            file://pm-wip/voltdm/0021-omap2-fix-build-regression.patch \
> -            file://pm-wip/voltdm/0022-OMAP-New-twl-common-for-common-
> TWL-configuration.patch \
> -            file://pm-wip/voltdm/0023-OMAP4-Move-common-twl6030-
> configuration-to-twl-commo.patch \
> -            file://pm-wip/voltdm/0024-OMAP3-Move-common-twl-configuration-
> to-twl-common.patch \
> -            file://pm-wip/voltdm/0025-OMAP3-Move-common-regulator-
> configuration-to-twl-com.patch \
> -            file://pm-wip/voltdm/0026-omap-mcbsp-Remove-rx_-tx_word_length-
> variables.patch \
> -            file://pm-wip/voltdm/0027-omap-mcbsp-Remove-port-number-
> enums.patch \
> -            file://pm-wip/voltdm/0028-OMAP-dmtimer-add-missing-include.patch \
> -            file://pm-wip/voltdm/0029-OMAP2-hwmod-Fix-smart-standby-wakeup-
> support.patch \
> -            file://pm-wip/voltdm/0030-OMAP4-hwmod-data-Add-
> MSTANDBY_SMART_WKUP-flag.patch \
> -            file://pm-wip/voltdm/0031-OMAP2-hwmod-Enable-module-in-
> shutdown-to-access-sysc.patch \
> -            file://pm-wip/voltdm/0032-OMAP2-hwmod-Do-not-write-the-
> enawakeup-bit-if-SYSC_H.patch \
> -            file://pm-wip/voltdm/0033-OMAP2-hwmod-Remove-
> _populate_mpu_rt_base-warning.patch \
> -            file://pm-wip/voltdm/0034-OMAP2-hwmod-Fix-the-HW-reset-
> management.patch \
> -            file://pm-wip/voltdm/0035-OMAP-hwmod-Add-warnings-if-enable-
> failed.patch \
> -            file://pm-wip/voltdm/0036-OMAP-hwmod-Move-pr_debug-to-
> improve-the-readability.patch \
> -            file://pm-wip/voltdm/0037-omap_hwmod-use-a-null-structure-record-
> to-terminate-.patch \
> -            file://pm-wip/voltdm/0038-omap_hwmod-share-identical-
> omap_hwmod_addr_space-arr.patch \
> -            file://pm-wip/voltdm/0039-omap_hwmod-use-a-terminator-record-
> with-omap_hwmod_m.patch \
> -            file://pm-wip/voltdm/0040-omap_hwmod-share-identical-
> omap_hwmod_mpu_irqs-array.patch \
> -            file://pm-wip/voltdm/0041-omap_hwmod-use-a-terminator-record-
> with-omap_hwmod_d.patch \
> -            file://pm-wip/voltdm/0042-omap_hwmod-share-identical-
> omap_hwmod_dma_info-array.patch \
> -            file://pm-wip/voltdm/0043-omap_hwmod-share-identical-
> omap_hwmod_class-omap_hwm.patch \
> -            file://pm-wip/voltdm/0044-OMAP4-hwmod-data-Fix-L3-interconnect-
> data-order-and-.patch \
> -            file://pm-wip/voltdm/0045-OMAP4-hwmod-data-Remove-un-needed-
> parens.patch \
> -            file://pm-wip/voltdm/0046-OMAP4-hwmod-data-Fix-bad-
> alignement.patch \
> -            file://pm-wip/voltdm/0047-OMAP4-hwmod-data-Align-interconnect-
> format-with-regu.patch \
> -            file://pm-wip/voltdm/0048-OMAP4-clock-data-Add-sddiv-to-USB-
> DPLL.patch \
> -            file://pm-wip/voltdm/0049-OMAP4-clock-data-Remove-usb_host_fs-
> clkdev-with-NULL.patch \
> -            file://pm-wip/voltdm/0050-OMAP4-clock-data-Re-order-some-clock-
> nodes-and-struc.patch \
> -            file://pm-wip/voltdm/0051-OMAP4-clock-data-Fix-max-mult-and-div-
> for-USB-DPLL.patch \
> -            file://pm-wip/voltdm/0052-OMAP4-prcm-Fix-errors-in-few-defines-
> name.patch \
> -            file://pm-wip/voltdm/0053-OMAP4-prm-Remove-wrong-clockdomain-
> offsets.patch \
> -            file://pm-wip/voltdm/0054-OMAP4-powerdomain-data-Fix-
> indentation.patch \
> -            file://pm-wip/voltdm/0055-OMAP4-cm-Remove-RESTORE-macros-to-
> avoid-access-from-.patch \
> -            file://pm-wip/voltdm/0056-OMAP4-prcm_mpu-Fix-indent-in-few-
> macros.patch \
> -            file://pm-wip/voltdm/0057-OMAP4-clockdomain-data-Fix-data-order-
> and-wrong-name.patch \
> -            file://pm-wip/voltdm/0058-OMAP-omap_device-replace-
> _find_by_pdev-with-to_omap_.patch \
> -            file://pm-wip/voltdm/0059-OMAP-PM-remove-OMAP_PM_NONE-
> config-option.patch \
> -            file://pm-wip/voltdm/0060-OMAP4-clock-data-Remove-McASP2-
> McASP3-and-MMC6-clock.patch \
> -            file://pm-wip/voltdm/0061-OMAP4-clock-data-Remove-UNIPRO-clock-
> nodes.patch \
> -            file://pm-wip/voltdm/0062-OMAP4-hwmod-data-Modify-DSS-opt-
> clocks.patch \
> -            file://pm-wip/voltdm/0063-OMAP2-PM-Initialise-sleep_switch-to-a-non-
> valid-valu.patch \
> -            file://pm-wip/voltdm/0064-OMAP4-powerdomain-data-Fix-core-mem-
> states-and-missi.patch \
> -            file://pm-wip/voltdm/0065-OMAP4-clock-data-Keep-GPMC-clocks-
> always-enabled-and.patch \
> -            file://pm-wip/voltdm/0066-OMAP4-powerdomain-data-Remove-
> unsupported-MPU-powerd.patch \
> -            file://pm-wip/voltdm/0067-OMAP4-hwmod-data-Change-DSS-
> main_clk-scheme.patch \
> -            file://pm-wip/voltdm/0068-I2C-OMAP2-Set-hwmod-flags-to-only-allow-
> 16-bit-acces.patch \
> -            file://pm-wip/voltdm/0069-I2C-OMAP2-increase-omap_i2c_dev_attr-
> flags-from-u8-t.patch \
> -            file://pm-wip/voltdm/0070-I2C-OMAP2-Introduce-I2C-IP-versioning-
> constants.patch \
> -            file://pm-wip/voltdm/0071-I2C-OMAP1-OMAP2-create-omap-I2C-
> functionality-flags-.patch \
> -            file://pm-wip/voltdm/0072-I2C-OMAP2-Tag-all-OMAP2-hwmod-
> defintions-with-I2C-IP.patch \
> -            file://pm-wip/voltdm/0073-I2C-OMAP2-add-correct-functionality-flags-
> to-all-oma.patch \
> -            file://pm-wip/voltdm/0074-OMAP-hwmod-fix-the-i2c-reset-timeout-
> during-bootup.patch \
> -            file://pm-wip/voltdm/0075-OMAP-omap_device-Create-clkdev-entry-
> for-hwmod-main_.patch \
> -            file://pm-wip/voltdm/0076-OMAP4-clock-data-Add-missing-divider-
> selection-for-a.patch \
> -            file://pm-wip/voltdm/0077-OMAP4-hwmod-data-Add-clock-domain-
> attribute.patch \
> -            file://pm-wip/voltdm/0078-OMAP2-hwmod-Init-clkdm-field-at-boot-
> time.patch \
> -            file://pm-wip/voltdm/0079-OMAP4-hwmod-Replace-CLKCTRL-absolute-
> address-with-of.patch \
> -            file://pm-wip/voltdm/0080-OMAP-hwmod-Wait-the-idle-status-to-be-
> disabled.patch \
> -            file://pm-wip/voltdm/0081-OMAP4-hwmod-Replace-RSTCTRL-absolute-
> address-with-of.patch \
> -            file://pm-wip/voltdm/0082-OMAP4-prm-Replace-warm-reset-API-with-
> the-offset-bas.patch \
> -            file://pm-wip/voltdm/0083-OMAP4-prm-Remove-deprecated-
> functions.patch \
> -            file://pm-wip/voltdm/0084-OMAP4-hwmod-data-Add-PRM-context-
> register-offset.patch \
> -            file://pm-wip/voltdm/0085-OMAP4-hwmod-data-Add-modulemode-
> entry-in-omap_hwmod-.patch \
> -            file://pm-wip/voltdm/0086-OMAP4-cm-Add-two-new-APIs-for-
> modulemode-control.patch \
> -            file://pm-wip/voltdm/0087-OMAP4-hwmod-Introduce-the-module-
> control-in-hwmod-co.patch \
> -            file://pm-wip/voltdm/0088-OMAP-clockdomain-Remove-redundant-
> call-to-pwrdm_wait.patch \
> -            file://pm-wip/voltdm/0089-OMAP2-clockdomain-Add-2-APIs-to-
> control-clockdomain-.patch \
> -            file://pm-wip/voltdm/0090-OMAP2-clockdomain-add-
> clkdm_in_hwsup.patch \
> -            file://pm-wip/voltdm/0091-OMAP2-PM-idle-clkdms-only-if-already-in-
> idle.patch \
> -            file://pm-wip/voltdm/0092-OMAP2-clockdomain-Add-per-clkdm-lock-
> to-prevent-conc.patch \
> -            file://pm-wip/voltdm/0093-OMAP2-clock-allow-per-SoC-clock-init-code-
> to-prevent.patch \
> -            file://pm-wip/voltdm/0094-OMAP2-hwmod-Follow-the-recommended-
> PRCM-module-enabl.patch \
> -            file://pm-wip/voltdm/0095-OMAP-Add-debugfs-node-to-show-the-
> summary-of-all-clo.patch \
> -            file://pm-wip/voltdm/0096-OMAP2-hwmod-remove-unused-
> voltagedomain-pointer.patch \
> -            file://pm-wip/voltdm/0097-OMAP2-voltage-move-PRCM-mod-offets-
> into-VC-VP-struct.patch \
> -            file://pm-wip/voltdm/0098-OMAP2-voltage-move-prm_irqst_reg-from-
> VP-into-voltag.patch \
> -            file://pm-wip/voltdm/0099-OMAP2-voltage-start-towards-a-new-
> voltagedomain-laye.patch \
> -            file://pm-wip/voltdm/0100-OMAP3-voltage-rename-mpu-
> voltagedomain-to-mpu_iva.patch \
> -            file://pm-wip/voltdm/0101-OMAP3-voltagedomain-data-add-wakeup-
> domain.patch \
> -            file://pm-wip/voltdm/0102-OMAP3-voltage-add-scalable-flag-to-
> voltagedomain.patch \
> -            file://pm-wip/voltdm/0103-OMAP2-powerdomain-add-voltagedomain-
> to-struct-powerd.patch \
> -            file://pm-wip/voltdm/0104-OMAP2-add-voltage-domains-and-connect-
> to-powerdomain.patch \
> -            file://pm-wip/voltdm/0105-OMAP3-powerdomain-data-add-voltage-
> domains.patch \
> -            file://pm-wip/voltdm/0106-OMAP4-powerdomain-data-add-voltage-
> domains.patch \
> -            file://pm-wip/voltdm/0107-OMAP2-powerdomain-add-voltage-domain-
> lookup-during-r.patch \
> -            file://pm-wip/voltdm/0108-OMAP2-voltage-keep-track-of-
> powerdomains-in-each-vol.patch \
> -            file://pm-wip/voltdm/0109-OMAP2-voltage-split-voltage-controller-VC-
> code-into-.patch \
> -            file://pm-wip/voltdm/0110-OMAP2-voltage-move-VC-into-struct-
> voltagedomain-misc.patch \
> -            file://pm-wip/voltdm/0111-OMAP2-voltage-enable-VC-bypass-scale-
> method-when-VC-.patch \
> -            file://pm-wip/voltdm/0112-OMAP2-voltage-split-out-voltage-processor-
> VP-code-in.patch \
> -            file://pm-wip/voltdm/0113-OMAP2-VC-support-PMICs-with-separate-
> voltage-and-com.patch \
> -            file://pm-wip/voltdm/0114-OMAP2-add-PRM-VP-functions-for-
> checking-clearing-VP-.patch \
> -            file://pm-wip/voltdm/0115-OMAP3-VP-replace-transaction-done-check-
> clear-with-V.patch \
> -            file://pm-wip/voltdm/0116-OMAP2-PRM-add-register-access-functions-
> for-VC-VP.patch \
> -            file://pm-wip/voltdm/0117-OMAP3-voltage-convert-to-PRM-register-
> access-functio.patch \
> -            file://pm-wip/voltdm/0118-OMAP3-VC-cleanup-i2c-slave-address-
> configuration.patch \
> -            file://pm-wip/voltdm/0119-OMAP3-VC-cleanup-PMIC-register-address-
> configuration.patch \
> -            file://pm-wip/voltdm/0120-OMAP3-VC-bypass-use-fields-from-VC-
> struct-instead-of.patch \
> -            file://pm-wip/voltdm/0121-OMAP3-VC-cleanup-voltage-setup-time-
> configuration.patch \
> -            file://pm-wip/voltdm/0122-OMAP3-VC-move-on-onlp-ret-off-
> command-configuration-.patch \
> -            file://pm-wip/voltdm/0123-OMAP3-VC-abstract-out-channel-
> configuration.patch \
> -            file://pm-wip/voltdm/0124-OMAP3-voltage-domain-move-PMIC-struct-
> from-vdd_info-.patch \
> -            file://pm-wip/voltdm/0125-OMAP3-VC-make-I2C-config-
> programmable-with-PMIC-spec.patch \
> -            file://pm-wip/voltdm/0126-OMAP3-PM-VC-handle-mutant-channel-
> config-for-OMAP4-M.patch \
> -            file://pm-wip/voltdm/0127-OMAP3-VC-use-last-nominal-voltage-
> setting-to-get-cur.patch \
> -            file://pm-wip/voltdm/0128-OMAP3-VP-cleanup-move-VP-instance-into-
> voltdm-misc.-.patch \
> -            file://pm-wip/voltdm/0129-OMAP3-voltage-remove-unneeded-debugfs-
> interface.patch \
> -            file://pm-wip/voltdm/0130-OMAP3-VP-struct-omap_vp_common-
> replace-shift-with-__.patch \
> -            file://pm-wip/voltdm/0131-OMAP3-VP-move-SoC-specific-sys-clock-
> rate-retreival-.patch \
> -            file://pm-wip/voltdm/0132-OMAP3-VP-move-timing-calculation-config-
> into-VP-init.patch \
> -            file://pm-wip/voltdm/0133-OMAP3-VP-create-VP-helper-function-for-
> updating-erro.patch \
> -            file://pm-wip/voltdm/0134-OMAP3-VP-remove-
> omap_vp_runtime_data.patch \
> -            file://pm-wip/voltdm/0135-OMAP3-VP-move-voltage-scale-function-
> pointer-into-st.patch \
> -            file://pm-wip/voltdm/0136-OMAP-VP-Explicitly-mask-VPVOLTAGE-
> field.patch \
> -            file://pm-wip/voltdm/0137-OMAP3-VP-update_errorgain-return-error-
> if-VP.patch \
> -            file://pm-wip/voltdm/0138-OMAP3-VP-remove-unused-
> omap_vp_get_curr_volt.patch \
> -            file://pm-wip/voltdm/0139-OMAP3-VP-combine-setting-init-voltage-
> into-common-fu.patch \
> -            file://pm-wip/voltdm/0140-OMAP3-voltage-rename-scale-and-reset-
> functions-using.patch \
> -            file://pm-wip/voltdm/0141-OMAP3-voltage-move-rename-curr_volt-
> from-vdd_info-in.patch \
> -            file://pm-wip/voltdm/0142-OMAP3-voltdm-final-removal-of-
> omap_vdd_info.patch \
> -            file://pm-wip/voltdm/0143-OMAP3-voltage-rename-
> omap_voltage_get_nom_volt-voltd.patch \
> -            file://pm-wip/voltdm/0144-OMAP3-voltage-update-nominal-voltage-in-
> voltdm_scale.patch \
> -            file://pm-wip/voltdm/0145-OMAP4-PM-TWL6030-fix-voltage-
> conversion-formula.patch \
> -            file://pm-wip/voltdm/0146-OMAP4-PM-TWL6030-fix-uv-to-voltage-for-
> 0x39.patch \
> -            file://pm-wip/voltdm/0147-OMAP4-PM-TWL6030-address-0V-
> conversions.patch \
> -            file://pm-wip/voltdm/0148-OMAP4-PM-TWL6030-fix-ON-RET-OFF-
> voltages.patch \
> -            file://pm-wip/voltdm/0149-OMAP4-PM-TWL6030-add-cmd-
> register.patch \
> -            file://pm-wip/cpufreq/0001-PM-OPP-introduce-function-to-free-
> cpufreq-table.patch \
> -            file://pm-wip/cpufreq/0002-OMAP-CPUfreq-ensure-driver-initializes-
> after-cpufreq.patch \
> -            file://pm-wip/cpufreq/0003-OMAP-CPUfreq-ensure-policy-is-fully-
> initialized.patch \
> -            file://pm-wip/cpufreq/0004-OMAP3-PM-CPUFreq-driver-for-
> OMAP3.patch \
> -            file://pm-wip/cpufreq/0005-OMAP-PM-CPUFREQ-Fix-conditional-
> compilation.patch \
> -            file://pm-wip/cpufreq/0006-cpufreq-fixup-after-new-OPP-layer-
> merged.patch \
> -            file://pm-wip/cpufreq/0007-OMAP-cpufreq-Split-OMAP1-and-
> OMAP2PLUS-CPUfreq-drive.patch \
> -            file://pm-wip/cpufreq/0008-OMAP2PLUS-cpufreq-Add-SMP-support-to-
> cater-OMAP4430.patch \
> -            file://pm-wip/cpufreq/0009-OMAP2PLUS-cpufreq-Fix-typo-when-
> attempting-to-set-mp.patch \
> -            file://pm-wip/cpufreq/0010-OMAP2-cpufreq-move-clk-name-decision-
> to-init.patch \
> -            file://pm-wip/cpufreq/0011-OMAP2-cpufreq-deny-initialization-if-no-
> mpudev.patch \
> -            file://pm-wip/cpufreq/0012-OMAP2-cpufreq-dont-support-
> freq_table.patch \
> -            file://pm-wip/cpufreq/0013-OMAP2-cpufreq-only-supports-OPP-
> library.patch \
> -            file://pm-wip/cpufreq/0014-OMAP2-cpufreq-put-clk-if-cpu_init-
> failed.patch \
> -            file://pm-wip/cpufreq/0015-OMAP2-cpufreq-fix-freq_table-leak.patch \
> -            file://pm-wip/cpufreq/0016-OMAP2-CPUfreq-Remove-superfluous-
> check-in-target-for.patch \
> -            file://pm-wip/cpufreq/0017-OMAP2-cpufreq-notify-even-with-bad-
> boot-frequency.patch \
> -            file://pm-wip/cpufreq/0018-OMAP2-cpufreq-Enable-all-CPUs-in-shared-
> policy-mask.patch \
> -            file://pm-wip/cpufreq/0019-OMAP2-CPUfreq-update-lpj-with-
> reference-value-to-avo.patch \
> -            \
> -            file://beagle/0001-OMAP3-beagle-add-support-for-beagleboard-xM-
> revision.patch \
> -            file://beagle/0002-UNFINISHED-OMAP3-beagle-add-support-for-
> expansionboa.patch \
> -            file://beagle/0003-HACK-OMAP3-beagle-switch-to-GPTIMER1.patch \
> -            file://beagle/0004-OMAP3-beagle-HACK-add-in-1GHz-OPP.patch \
> -            file://beagle/0005-omap3-Add-basic-support-for-720MHz-part.patch \
> -            file://beagle/0006-ARM-OMAP2-beagleboard-make-wilink-init-look-
> more-lik.patch \
> -            file://beagle/0007-omap_hsmmc-Set-dto-to-max-value-of-14-to-avoid-
> SD-Ca.patch \
> -            file://beagle/0008-OMAP2-add-cpu-id-register-to-MAC-address-
> helper.patch \
> -            file://beagle/0009-HACK-OMAP2-BeagleBoard-Fix-up-random-or-
> missing-MAC-.patch \
> -            file://beagle/0010-ARM-OMAP2-beagleboard-fix-mmc-write-protect-
> pin-when.patch \
> -            file://beagle/0011-beagleboard-reinstate-usage-of-hi-speed-PLL-
> divider.patch \
> -            file://madc/0001-Enabling-Hwmon-driver-for-twl4030-madc.patch \
> -            file://madc/0002-mfd-twl-core-enable-madc-clock.patch \
> -            \
> -            file://sakoman/0001-mmc-don-t-display-single-block-read-console-
> messages.patch \
> -            file://sakoman/0002-omap-Change-omap_device-activate-dectivate-
> latency-m.patch \
> -            file://sakoman/0003-OMAP-DSS2-add-bootarg-for-selecting-svideo-or-
> compos.patch \
> -            file://sakoman/0004-mtd-nand-Eliminate-noisey-uncorrectable-error-
> messag.patch \
> -            file://sakoman/0005-video-add-timings-for-hd720.patch \
> -            file://sakoman/0006-drivers-net-smsc911x-return-ENODEV-if-device-is-
> not-.patch \
> -            file://sakoman/0007-drivers-input-touchscreen-ads7846-return-
> ENODEV-if-d.patch \
> -            file://sakoman/0008-Revert-omap2_mcspi-Flush-posted-writes.patch \
> -            file://sakoman/0009-rtc-twl-Use-threaded-IRQ-remove-IRQ-enable-in-
> interr.patch \
> -            file://sakoman/0010-rtc-twl-Fix-registration-vs.-init-order.patch \
> -            file://sakoman/0011-soc-codecs-Enable-audio-capture-by-default-for-
> twl40.patch \
> -            file://sakoman/0012-soc-codecs-twl4030-Turn-on-mic-bias-by-
> default.patch \
> -            file://sakoman/0013-omap-mmc-twl4030-move-clock-input-selection-
> prior-to.patch \
> -            file://sakoman/0014-rtc-twl-add-support-for-backup-battery-
> recharge.patch \
> -            \
> -            file://sgx/0001-ARM-L2-Add-and-export-outer_clean_all.patch \
> -            \
> -            file://ulcd/0001-OMAP_VOUT-Fix-build-break-caused-by-update_mode-
> remo.patch \
> -            file://ulcd/0002-WIP-omap-beagleboard-add-bbtoys-ulcd-lite-
> support.patch \
> -            file://ulcd/0003-ARM-OMAP2-beagleboard-add-support-for-
> loopthrough-ex.patch \
> -            file://ulcd/0004-LEDS-add-initial-support-for-WS2801-controller.patch \
> -            \
> -            file://omap4/0001-OMAP-Fix-linking-error-in-twl-common.c-for-
> OMAP2-3-4.patch \
> -            \
> -            file://misc/0001-compiler.h-Undef-before-redefining-
> __attribute_const.patch \
> -            \
> -            file://usb/0001-Fix-sprz319-erratum-2.1.patch \
> -            \
> -            file://defconfig"
> -
> -SRC_URI_append_beagleboard = " file://logo_linux_clut224.ppm \
> -"
> -
> -S = "${WORKDIR}/git"
> -
> diff --git a/recipes-kernel/linux/linux_3.1.bb b/recipes-kernel/linux/linux_3.1.bb
> deleted file mode 100644
> index 110d26c..0000000
> --- a/recipes-kernel/linux/linux_3.1.bb
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -require linux.inc
> -
> -COMPATIBLE_MACHINE = "beagleboard"
> -
> -DESCRIPTION = "Linux kernel for TI processors"
> -
> -DEFAULT_PREFERENCE = "-99"
> -
> -PV = "3.0+3.1rc"
> -SRCREV_pn-${PN} = "9e79e3e9dd9672b37ac9412e9a926714306551fe"
> -
> -# The main PR is now using MACHINE_KERNEL_PR, for omap3 see
> conf/machine/include/omap3.inc
> -MACHINE_KERNEL_PR_append = "e"
> -
> -SRC_URI +=
> "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git;protocol=git \
> -            file://beagle/0001-UNFINISHED-OMAP3-beagle-add-support-for-
> expansionboa.patch \
> -            file://beagle/0002-HACK-OMAP3-beagle-switch-to-GPTIMER1.patch \
> -            file://madc/0001-Enabling-Hwmon-driver-for-twl4030-madc.patch \
> -            file://madc/0002-mfd-twl-core-enable-madc-clock.patch \
> -            file://sgx/0001-ARM-L2-Add-and-export-outer_clean_all.patch \
> -            file://fixes/vout.patch \
> -            file://defconfig"
> -
> -# Needs refresh:
> -#            file://beagle/0003-OMAP3-beagle-HACK-add-in-1GHz-OPP.patch \
> -#
> -
> -
> -SRC_URI_append_beagleboard = " file://logo_linux_clut224.ppm \
> -"
> -
> -S = "${WORKDIR}/git"
> -
> --
> 1.8.3.2
> 
> _______________________________________________
> meta-ti mailing list
> meta-ti at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-ti


More information about the meta-ti mailing list