mirror of
https://github.com/torvalds/linux.git
synced 2024-11-05 11:32:04 +00:00
Fixes for omaps, mostly to fix some GPMC, DSS and USB issues for
device tree based booting. And turns out BeagleBoard xM A/B needs it's own minimal dts in addition to the related u-boot changes. Also few minor documentation and typo fixes are merged to get them out of the way. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJTWAV8AAoJEBvUPslcq6Vz1+0P/3zagpaCsmh3rqr5u5jLYkS6 UXqrfjQTScQ9SK4xlwHJzCEI8oA/VvgAhk9RetT3Nd8HX4HFM2T1cCyx0s+01n0L SrERzwVn1VxFaX4/xYSwVyt2GLdiltnCgzS2yQGjESN79aPTaKtJSbyhoah7GJQC RB+UnE1gpBpQIpjIRSrhIWGCPH4HlLyoAgSY/u3QjBmfbm6DqCsjOx7l7tFx04gR xQJ/EueWyQtEsmBjAQIIYJ3vZB14TI/HVAmdwsFMz4/eOcKoCtt+iGigZ0jFIP8w 6XOfJu5s0Nn2hAJ26KxoX+SXN1DJefAYmnLRsBGgCueWkOpC7v0TgeQ2b0Wr7e// eaM5Rnv3xHWvXlv7zzNWOp3n96Mnm4WPNARCuS86Gc2PyvV3+SqK25WDy+HPSGQP e9RkGipHG2YKX5HLcq2l2O7pfftB+ZcDEfADuR/8chasDxqSd4zVxsGOsWzWk/fG 2d9zZifnYeXDo/Tu6PqriXNPIBBD5TDHK5Df28EIvtVig5AqerApay2zBt9zXn/H Ux6Yfw06iVCr8okk8s55CYBhYUqQfg9LEZMJLRkXAplErLvGgt46rh2DD2SU7T61 I4I40tuwRzEhCuIOlG5ztngkCpL+QnKC477sPx9KtQ4i3Rg6yKT8HZc0jSwhr0vB sZMVDWxsRJWBxnbZyaoL =co/l -----END PGP SIGNATURE----- Merge tag 'omap-for-v3.15/fixes-v2-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Fixes for omaps, mostly to fix some GPMC, DSS and USB issues for device tree based booting. And turns out BeagleBoard xM A/B needs it's own minimal dts in addition to the related u-boot changes. Also few minor documentation and typo fixes are merged to get them out of the way. * tag 'omap-for-v3.15/fixes-v2-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: Fix GPMC remap for devices using an offset ARM: OMAP2+: Fix oops for GPMC free ARM: dts: Add support for the BeagleBoard xM A/B ARM: dts: Grammar /that will/it will/ ARM: dts: Grammar /is uses/ is used/ ARM: OMAP2+: Fix config name for USB3 PHY ARM: dts: am335x: update USB DT references ARM: dts: OMAP2+: remove uses of obsolete gpmc,device-nand ARM: AM335X: EVM: fix pinmux documentation in devicetree ARM: OMAP2+: N900: remove omapdss init for DT boot ARM: dts: dra7xx-clocks: Correct mcasp2_ahclkx_mux bit-shift ARM: dts: omap5: Add clocks to USB3 PHY node ARM: OMAP2+: hwmod: fix missing braces in _init() ARM: AM43xx: fix dpll init in bypass mode ARM: OMAP3: hwmod data: Correct clock domains for USB modules ARM: OMAP3: PM: remove access to PRM_VOLTCTRL register Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
f126776a21
@ -245,6 +245,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
|
||||
omap3-sbc-t3730.dtb \
|
||||
omap3-devkit8000.dtb \
|
||||
omap3-beagle-xm.dtb \
|
||||
omap3-beagle-xm-ab.dtb \
|
||||
omap3-evm.dtb \
|
||||
omap3-evm-37xx.dtb \
|
||||
omap3-ldp.dtb \
|
||||
|
@ -183,7 +183,7 @@
|
||||
&usb {
|
||||
status = "okay";
|
||||
|
||||
control@44e10000 {
|
||||
control@44e10620 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -204,7 +204,7 @@
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
dma-controller@07402000 {
|
||||
dma-controller@47402000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
@ -301,8 +301,8 @@
|
||||
|
||||
am335x_evm_audio_pins: am335x_evm_audio_pins {
|
||||
pinctrl-single,pins = <
|
||||
0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rx_dv.mcasp1_aclkx */
|
||||
0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_txd3.mcasp1_fsx */
|
||||
0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */
|
||||
0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */
|
||||
0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */
|
||||
0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */
|
||||
>;
|
||||
@ -331,7 +331,7 @@
|
||||
&usb {
|
||||
status = "okay";
|
||||
|
||||
control@44e10000 {
|
||||
control@44e10620 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -352,7 +352,7 @@
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
dma-controller@07402000 {
|
||||
dma-controller@47402000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
@ -364,7 +364,7 @@
|
||||
&usb {
|
||||
status = "okay";
|
||||
|
||||
control@44e10000 {
|
||||
control@44e10620 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -385,7 +385,7 @@
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
dma-controller@07402000 {
|
||||
dma-controller@47402000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
@ -118,7 +118,6 @@
|
||||
reg = <0 0 0>; /* CS0, offset 0 */
|
||||
nand-bus-width = <8>;
|
||||
ti,nand-ecc-opt = "bch8";
|
||||
gpmc,device-nand = "true";
|
||||
gpmc,device-width = <1>;
|
||||
gpmc,sync-clk-ps = <0>;
|
||||
gpmc,cs-on-ns = <0>;
|
||||
@ -202,7 +201,7 @@
|
||||
&usb {
|
||||
status = "okay";
|
||||
|
||||
control@44e10000 {
|
||||
control@44e10620 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -223,7 +222,7 @@
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
dma-controller@07402000 {
|
||||
dma-controller@47402000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
@ -72,7 +72,7 @@
|
||||
};
|
||||
|
||||
/*
|
||||
* The soc node represents the soc top level view. It is uses for IPs
|
||||
* The soc node represents the soc top level view. It is used for IPs
|
||||
* that are not memory mapped in the MPU view or for the MPU itself.
|
||||
*/
|
||||
soc {
|
||||
@ -94,8 +94,8 @@
|
||||
|
||||
/*
|
||||
* XXX: Use a flat representation of the AM33XX interconnect.
|
||||
* The real AM33XX interconnect network is quite complex.Since
|
||||
* that will not bring real advantage to represent that in DT
|
||||
* The real AM33XX interconnect network is quite complex. Since
|
||||
* it will not bring real advantage to represent that in DT
|
||||
* for the moment, just use a fake OCP bus entry to represent
|
||||
* the whole bus hierarchy.
|
||||
*/
|
||||
|
@ -80,7 +80,7 @@
|
||||
};
|
||||
|
||||
/*
|
||||
* The soc node represents the soc top level view. It is uses for IPs
|
||||
* The soc node represents the soc top level view. It is used for IPs
|
||||
* that are not memory mapped in the MPU view or for the MPU itself.
|
||||
*/
|
||||
soc {
|
||||
@ -94,7 +94,7 @@
|
||||
/*
|
||||
* XXX: Use a flat representation of the SOC interconnect.
|
||||
* The real OMAP interconnect network is quite complex.
|
||||
* Since that will not bring real advantage to represent that in DT for
|
||||
* Since it will not bring real advantage to represent that in DT for
|
||||
* the moment, just use a fake OCP bus entry to represent the whole bus
|
||||
* hierarchy.
|
||||
*/
|
||||
|
@ -1640,7 +1640,7 @@
|
||||
#clock-cells = <0>;
|
||||
compatible = "ti,mux-clock";
|
||||
clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>;
|
||||
ti,bit-shift = <28>;
|
||||
ti,bit-shift = <24>;
|
||||
reg = <0x1860>;
|
||||
};
|
||||
|
||||
|
16
arch/arm/boot/dts/omap3-beagle-xm-ab.dts
Normal file
16
arch/arm/boot/dts/omap3-beagle-xm-ab.dts
Normal file
@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2011 Texas Instruments Incorporated - http://www.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 "omap3-beagle-xm.dts"
|
||||
|
||||
/ {
|
||||
/* HS USB Port 2 Power enable was inverted with the xM C */
|
||||
hsusb2_power: hsusb2_power_reg {
|
||||
enable-active-high;
|
||||
};
|
||||
};
|
@ -112,7 +112,6 @@
|
||||
reg = <0 0 0>; /* CS0, offset 0 */
|
||||
nand-bus-width = <16>;
|
||||
|
||||
gpmc,device-nand;
|
||||
gpmc,sync-clk-ps = <0>;
|
||||
gpmc,cs-on-ns = <0>;
|
||||
gpmc,cs-rd-off-ns = <44>;
|
||||
|
@ -368,7 +368,6 @@
|
||||
/* no elm on omap3 */
|
||||
|
||||
gpmc,mux-add-data = <0>;
|
||||
gpmc,device-nand;
|
||||
gpmc,device-width = <2>;
|
||||
gpmc,wait-pin = <0>;
|
||||
gpmc,wait-monitoring-ns = <0>;
|
||||
|
@ -74,7 +74,7 @@
|
||||
/*
|
||||
* XXX: Use a flat representation of the OMAP3 interconnect.
|
||||
* The real OMAP interconnect network is quite complex.
|
||||
* Since that will not bring real advantage to represent that in DT for
|
||||
* Since it will not bring real advantage to represent that in DT for
|
||||
* the moment, just use a fake OCP bus entry to represent the whole bus
|
||||
* hierarchy.
|
||||
*/
|
||||
|
@ -72,7 +72,7 @@
|
||||
};
|
||||
|
||||
/*
|
||||
* The soc node represents the soc top level view. It is uses for IPs
|
||||
* The soc node represents the soc top level view. It is used for IPs
|
||||
* that are not memory mapped in the MPU view or for the MPU itself.
|
||||
*/
|
||||
soc {
|
||||
@ -96,7 +96,7 @@
|
||||
/*
|
||||
* XXX: Use a flat representation of the OMAP4 interconnect.
|
||||
* The real OMAP interconnect network is quite complex.
|
||||
* Since that will not bring real advantage to represent that in DT for
|
||||
* Since it will not bring real advantage to represent that in DT for
|
||||
* the moment, just use a fake OCP bus entry to represent the whole bus
|
||||
* hierarchy.
|
||||
*/
|
||||
|
@ -93,7 +93,7 @@
|
||||
};
|
||||
|
||||
/*
|
||||
* The soc node represents the soc top level view. It is uses for IPs
|
||||
* The soc node represents the soc top level view. It is used for IPs
|
||||
* that are not memory mapped in the MPU view or for the MPU itself.
|
||||
*/
|
||||
soc {
|
||||
@ -107,7 +107,7 @@
|
||||
/*
|
||||
* XXX: Use a flat representation of the OMAP3 interconnect.
|
||||
* The real OMAP interconnect network is quite complex.
|
||||
* Since that will not bring real advantage to represent that in DT for
|
||||
* Since it will not bring real advantage to represent that in DT for
|
||||
* the moment, just use a fake OCP bus entry to represent the whole bus
|
||||
* hierarchy.
|
||||
*/
|
||||
@ -813,6 +813,12 @@
|
||||
<0x4a084c00 0x40>;
|
||||
reg-names = "phy_rx", "phy_tx", "pll_ctrl";
|
||||
ctrl-module = <&omap_control_usb3phy>;
|
||||
clocks = <&usb_phy_cm_clk32k>,
|
||||
<&sys_clkin>,
|
||||
<&usb_otg_ss_refclk960m>;
|
||||
clock-names = "wkupclk",
|
||||
"sysclk",
|
||||
"refclk";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -226,7 +226,7 @@ CONFIG_USB_DWC3=m
|
||||
CONFIG_USB_TEST=y
|
||||
CONFIG_NOP_USB_XCEIV=y
|
||||
CONFIG_OMAP_USB2=y
|
||||
CONFIG_OMAP_USB3=y
|
||||
CONFIG_TI_PIPE3=y
|
||||
CONFIG_AM335X_PHY_USB=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_GADGET_DEBUG=y
|
||||
|
@ -48,7 +48,7 @@ static struct omap_dss_board_info rx51_dss_board_info = {
|
||||
|
||||
static int __init rx51_video_init(void)
|
||||
{
|
||||
if (!machine_is_nokia_rx51() && !of_machine_is_compatible("nokia,omap3-n900"))
|
||||
if (!machine_is_nokia_rx51())
|
||||
return 0;
|
||||
|
||||
if (omap_mux_init_gpio(RX51_LCD_RESET_GPIO, OMAP_PIN_OUTPUT)) {
|
||||
|
@ -209,7 +209,7 @@ u8 omap2_init_dpll_parent(struct clk_hw *hw)
|
||||
if (v == OMAP3XXX_EN_DPLL_LPBYPASS ||
|
||||
v == OMAP3XXX_EN_DPLL_FRBYPASS)
|
||||
return 1;
|
||||
} else if (soc_is_am33xx() || cpu_is_omap44xx()) {
|
||||
} else if (soc_is_am33xx() || cpu_is_omap44xx() || soc_is_am43xx()) {
|
||||
if (v == OMAP4XXX_EN_DPLL_LPBYPASS ||
|
||||
v == OMAP4XXX_EN_DPLL_FRBYPASS ||
|
||||
v == OMAP4XXX_EN_DPLL_MNBYPASS)
|
||||
@ -255,7 +255,7 @@ unsigned long omap2_get_dpll_rate(struct clk_hw_omap *clk)
|
||||
if (v == OMAP3XXX_EN_DPLL_LPBYPASS ||
|
||||
v == OMAP3XXX_EN_DPLL_FRBYPASS)
|
||||
return __clk_get_rate(dd->clk_bypass);
|
||||
} else if (soc_is_am33xx() || cpu_is_omap44xx()) {
|
||||
} else if (soc_is_am33xx() || cpu_is_omap44xx() || soc_is_am43xx()) {
|
||||
if (v == OMAP4XXX_EN_DPLL_LPBYPASS ||
|
||||
v == OMAP4XXX_EN_DPLL_FRBYPASS ||
|
||||
v == OMAP4XXX_EN_DPLL_MNBYPASS)
|
||||
|
@ -501,7 +501,7 @@ static int gpmc_cs_delete_mem(int cs)
|
||||
int r;
|
||||
|
||||
spin_lock(&gpmc_mem_lock);
|
||||
r = release_resource(&gpmc_cs_mem[cs]);
|
||||
r = release_resource(res);
|
||||
res->start = 0;
|
||||
res->end = 0;
|
||||
spin_unlock(&gpmc_mem_lock);
|
||||
@ -527,6 +527,14 @@ static int gpmc_cs_remap(int cs, u32 base)
|
||||
pr_err("%s: requested chip-select is disabled\n", __func__);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/*
|
||||
* Make sure we ignore any device offsets from the GPMC partition
|
||||
* allocated for the chip select and that the new base confirms
|
||||
* to the GPMC 16MB minimum granularity.
|
||||
*/
|
||||
base &= ~(SZ_16M - 1);
|
||||
|
||||
gpmc_cs_get_memconf(cs, &old_base, &size);
|
||||
if (base == old_base)
|
||||
return 0;
|
||||
@ -586,6 +594,8 @@ EXPORT_SYMBOL(gpmc_cs_request);
|
||||
|
||||
void gpmc_cs_free(int cs)
|
||||
{
|
||||
struct resource *res = &gpmc_cs_mem[cs];
|
||||
|
||||
spin_lock(&gpmc_mem_lock);
|
||||
if (cs >= gpmc_cs_num || cs < 0 || !gpmc_cs_reserved(cs)) {
|
||||
printk(KERN_ERR "Trying to free non-reserved GPMC CS%d\n", cs);
|
||||
@ -594,7 +604,8 @@ void gpmc_cs_free(int cs)
|
||||
return;
|
||||
}
|
||||
gpmc_cs_disable_mem(cs);
|
||||
release_resource(&gpmc_cs_mem[cs]);
|
||||
if (res->flags)
|
||||
release_resource(res);
|
||||
gpmc_cs_set_reserved(cs, 0);
|
||||
spin_unlock(&gpmc_mem_lock);
|
||||
}
|
||||
|
@ -2546,11 +2546,12 @@ static int __init _init(struct omap_hwmod *oh, void *data)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (np)
|
||||
if (np) {
|
||||
if (of_find_property(np, "ti,no-reset-on-init", NULL))
|
||||
oh->flags |= HWMOD_INIT_NO_RESET;
|
||||
if (of_find_property(np, "ti,no-idle-on-init", NULL))
|
||||
oh->flags |= HWMOD_INIT_NO_IDLE;
|
||||
}
|
||||
|
||||
oh->_state = _HWMOD_STATE_INITIALIZED;
|
||||
|
||||
|
@ -1964,7 +1964,7 @@ static struct omap_hwmod_irq_info omap3xxx_usb_host_hs_irqs[] = {
|
||||
static struct omap_hwmod omap3xxx_usb_host_hs_hwmod = {
|
||||
.name = "usb_host_hs",
|
||||
.class = &omap3xxx_usb_host_hs_hwmod_class,
|
||||
.clkdm_name = "l3_init_clkdm",
|
||||
.clkdm_name = "usbhost_clkdm",
|
||||
.mpu_irqs = omap3xxx_usb_host_hs_irqs,
|
||||
.main_clk = "usbhost_48m_fck",
|
||||
.prcm = {
|
||||
@ -2047,7 +2047,7 @@ static struct omap_hwmod_irq_info omap3xxx_usb_tll_hs_irqs[] = {
|
||||
static struct omap_hwmod omap3xxx_usb_tll_hs_hwmod = {
|
||||
.name = "usb_tll_hs",
|
||||
.class = &omap3xxx_usb_tll_hs_hwmod_class,
|
||||
.clkdm_name = "l3_init_clkdm",
|
||||
.clkdm_name = "core_l4_clkdm",
|
||||
.mpu_irqs = omap3xxx_usb_tll_hs_irqs,
|
||||
.main_clk = "usbtll_fck",
|
||||
.prcm = {
|
||||
|
@ -330,10 +330,6 @@ void omap_sram_idle(void)
|
||||
omap3_sram_restore_context();
|
||||
omap2_sms_restore_context();
|
||||
}
|
||||
if (core_next_state == PWRDM_POWER_OFF)
|
||||
omap2_prm_clear_mod_reg_bits(OMAP3430_AUTO_OFF_MASK,
|
||||
OMAP3430_GR_MOD,
|
||||
OMAP3_PRM_VOLTCTRL_OFFSET);
|
||||
}
|
||||
omap3_intc_resume_idle();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user