Skip to content

Commit 5acd78c

Browse files
committed
Merge tag 'omap-for-v3.16/fixes-against-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
Merge OMAP fixes from Tony Lindgren: Fixes for omaps for issues discovered during the merge window and enabling of a few features that had to wait for the driver dependencies to clear. The fixes included are: - Fix am43xx hard reset flags - Fix SoC detection for DRA722 - Fix CPU OPP table for omap5 - Fix legacy mux parser bug if requested muxname is a prefix of multiple mux entries - Fix qspi interrupt binding that relies on the irq crossbar that has not yet been enabled - Add missing phy_sel for am43x-epos-evm - Drop unused gic_init_irq() that is no longer needed And the enabling of features that had driver dependencies are: - Change dra7 to use Audio Tracking Logic clock instead of a fixed clock now that the clock driver for it has been merged - Enable off idle configuration for selected omaps as all the kernel dependencies for device tree based booting are finally merged as this is needed to get the automated PM tests working finally with device tree based booting - Add hwmod entry for ocp2scp3 for omap5 to get sata working as all the driver dependencies are now in the kernel and this patch fell through the cracks during the merge window * tag 'omap-for-v3.16/fixes-against-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: dra7-evm: remove interrupt binding ARM: OMAP2+: Fix parser-bug in platform muxing code ARM: DTS: dra7/dra7xx-clocks: ATL related changes ARM: OMAP2+: drop unused function ARM: dts: am43x-epos-evm: Add Missing cpsw-phy-sel for am43x-epos-evm ARM: dts: omap5: Update CPU OPP table as per final production Manual ARM: DRA722: add detection of SoC information ARM: dts: Enable twl4030 off-idle configuration for selected omaps ARM: OMAP5: hwmod: Add ocp2scp3 and sata hwmods ARM: OMAP2+: hwmod: Change hardreset soc_ops for AM43XX
2 parents bfda90c + edc56f8 commit 5acd78c

16 files changed

+139
-39
lines changed

arch/arm/boot/dts/am43x-epos-evm.dts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,10 @@
319319
phy-mode = "rmii";
320320
};
321321

322+
&phy_sel {
323+
rmii-clock-ext;
324+
};
325+
322326
&i2c0 {
323327
status = "okay";
324328
pinctrl-names = "default";

arch/arm/boot/dts/dra7.dtsi

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -773,7 +773,6 @@
773773
clocks = <&qspi_gfclk_div>;
774774
clock-names = "fck";
775775
num-cs = <4>;
776-
interrupts = <0 343 0x4>;
777776
status = "disabled";
778777
};
779778

@@ -984,6 +983,17 @@
984983
#size-cells = <1>;
985984
status = "disabled";
986985
};
986+
987+
atl: atl@4843c000 {
988+
compatible = "ti,dra7-atl";
989+
reg = <0x4843c000 0x3ff>;
990+
ti,hwmods = "atl";
991+
ti,provided-clocks = <&atl_clkin0_ck>, <&atl_clkin1_ck>,
992+
<&atl_clkin2_ck>, <&atl_clkin3_ck>;
993+
clocks = <&atl_gfclk_mux>;
994+
clock-names = "fck";
995+
status = "disabled";
996+
};
987997
};
988998
};
989999

arch/arm/boot/dts/dra7xx-clocks.dtsi

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,26 @@
1010
&cm_core_aon_clocks {
1111
atl_clkin0_ck: atl_clkin0_ck {
1212
#clock-cells = <0>;
13-
compatible = "fixed-clock";
14-
clock-frequency = <0>;
13+
compatible = "ti,dra7-atl-clock";
14+
clocks = <&atl_gfclk_mux>;
1515
};
1616

1717
atl_clkin1_ck: atl_clkin1_ck {
1818
#clock-cells = <0>;
19-
compatible = "fixed-clock";
20-
clock-frequency = <0>;
19+
compatible = "ti,dra7-atl-clock";
20+
clocks = <&atl_gfclk_mux>;
2121
};
2222

2323
atl_clkin2_ck: atl_clkin2_ck {
2424
#clock-cells = <0>;
25-
compatible = "fixed-clock";
26-
clock-frequency = <0>;
25+
compatible = "ti,dra7-atl-clock";
26+
clocks = <&atl_gfclk_mux>;
2727
};
2828

2929
atl_clkin3_ck: atl_clkin3_ck {
3030
#clock-cells = <0>;
31-
compatible = "fixed-clock";
32-
clock-frequency = <0>;
31+
compatible = "ti,dra7-atl-clock";
32+
clocks = <&atl_gfclk_mux>;
3333
};
3434

3535
hdmi_clkin_ck: hdmi_clkin_ck {

arch/arm/boot/dts/omap3-beagle-xm.dts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,11 @@
251251
codec {
252252
};
253253
};
254+
255+
twl_power: power {
256+
compatible = "ti,twl4030-power-beagleboard-xm", "ti,twl4030-power-idle-osc-off";
257+
ti,use_poweroff;
258+
};
254259
};
255260
};
256261

@@ -301,6 +306,7 @@
301306
};
302307

303308
&uart3 {
309+
interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
304310
pinctrl-names = "default";
305311
pinctrl-0 = <&uart3_pins>;
306312
};

arch/arm/boot/dts/omap3-evm-common.dtsi

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,13 @@
5050
gpios = <&twl_gpio 18 GPIO_ACTIVE_LOW>;
5151
};
5252

53+
&twl {
54+
twl_power: power {
55+
compatible = "ti,twl4030-power-omap3-evm", "ti,twl4030-power-idle";
56+
ti,use_poweroff;
57+
};
58+
};
59+
5360
&i2c2 {
5461
clock-frequency = <400000>;
5562
};

arch/arm/boot/dts/omap3-n900.dts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,11 @@
351351
compatible = "ti,twl4030-audio";
352352
ti,enable-vibra = <1>;
353353
};
354+
355+
twl_power: power {
356+
compatible = "ti,twl4030-power-n900", "ti,twl4030-power-idle-osc-off";
357+
ti,use_poweroff;
358+
};
354359
};
355360

356361
&twl_keypad {

arch/arm/boot/dts/omap5.dtsi

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545

4646
operating-points = <
4747
/* kHz uV */
48-
500000 880000
4948
1000000 1060000
5049
1500000 1250000
5150
>;

arch/arm/mach-omap2/Makefile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,16 @@ obj-y += prm_common.o cm_common.o
110110
obj-$(CONFIG_ARCH_OMAP2) += prm2xxx_3xxx.o prm2xxx.o cm2xxx.o
111111
obj-$(CONFIG_ARCH_OMAP3) += prm2xxx_3xxx.o prm3xxx.o cm3xxx.o
112112
obj-$(CONFIG_ARCH_OMAP3) += vc3xxx_data.o vp3xxx_data.o
113-
obj-$(CONFIG_SOC_AM33XX) += prm33xx.o cm33xx.o
114113
omap-prcm-4-5-common = cminst44xx.o cm44xx.o prm44xx.o \
115114
prcm_mpu44xx.o prminst44xx.o \
116115
vc44xx_data.o vp44xx_data.o
117116
obj-$(CONFIG_ARCH_OMAP4) += $(omap-prcm-4-5-common)
118117
obj-$(CONFIG_SOC_OMAP5) += $(omap-prcm-4-5-common)
119118
obj-$(CONFIG_SOC_DRA7XX) += $(omap-prcm-4-5-common)
120-
obj-$(CONFIG_SOC_AM43XX) += $(omap-prcm-4-5-common)
119+
am33xx-43xx-prcm-common += prm33xx.o cm33xx.o
120+
obj-$(CONFIG_SOC_AM33XX) += $(am33xx-43xx-prcm-common)
121+
obj-$(CONFIG_SOC_AM43XX) += $(omap-prcm-4-5-common) \
122+
$(am33xx-43xx-prcm-common)
121123

122124
# OMAP voltage domains
123125
voltagedomain-common := voltage.o vc.o vp.o

arch/arm/mach-omap2/cm33xx.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ void am33xx_cm_clkdm_disable_hwsup(u16 inst, u16 cdoffs);
380380
void am33xx_cm_clkdm_force_sleep(u16 inst, u16 cdoffs);
381381
void am33xx_cm_clkdm_force_wakeup(u16 inst, u16 cdoffs);
382382

383-
#ifdef CONFIG_SOC_AM33XX
383+
#if defined(CONFIG_SOC_AM33XX) || defined(CONFIG_SOC_AM43XX)
384384
extern int am33xx_cm_wait_module_idle(u16 inst, s16 cdoffs,
385385
u16 clkctrl_offs);
386386
extern void am33xx_cm_module_enable(u8 mode, u16 inst, s16 cdoffs,

arch/arm/mach-omap2/common.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,6 @@ static inline void __iomem *omap4_get_scu_base(void)
248248
}
249249
#endif
250250

251-
extern void __init gic_init_irq(void);
252251
extern void gic_dist_disable(void);
253252
extern void gic_dist_enable(void);
254253
extern bool gic_dist_disabled(void);

arch/arm/mach-omap2/id.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,18 @@ void __init dra7xxx_check_revision(void)
649649
}
650650
break;
651651

652+
case 0xb9bc:
653+
switch (rev) {
654+
case 0:
655+
omap_revision = DRA722_REV_ES1_0;
656+
break;
657+
default:
658+
/* If we have no new revisions */
659+
omap_revision = DRA722_REV_ES1_0;
660+
break;
661+
}
662+
break;
663+
652664
default:
653665
/* Unknown default to latest silicon rev as default*/
654666
pr_warn("%s: unknown idcode=0x%08x (hawkeye=0x%08x,rev=0x%d)\n",

arch/arm/mach-omap2/mux.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,10 @@ static int __init _omap_mux_get_by_name(struct omap_mux_partition *partition,
183183
m0_entry = mux->muxnames[0];
184184

185185
/* First check for full name in mode0.muxmode format */
186-
if (mode0_len && strncmp(muxname, m0_entry, mode0_len))
187-
continue;
186+
if (mode0_len)
187+
if (strncmp(muxname, m0_entry, mode0_len) ||
188+
(strlen(m0_entry) != mode0_len))
189+
continue;
188190

189191
/* Then check for muxmode only */
190192
for (i = 0; i < OMAP_MUX_NR_MODES; i++) {

arch/arm/mach-omap2/omap4-common.c

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -102,26 +102,6 @@ void __init omap_barriers_init(void)
102102
{}
103103
#endif
104104

105-
void __init gic_init_irq(void)
106-
{
107-
void __iomem *omap_irq_base;
108-
109-
/* Static mapping, never released */
110-
gic_dist_base_addr = ioremap(OMAP44XX_GIC_DIST_BASE, SZ_4K);
111-
BUG_ON(!gic_dist_base_addr);
112-
113-
twd_base = ioremap(OMAP44XX_LOCAL_TWD_BASE, SZ_4K);
114-
BUG_ON(!twd_base);
115-
116-
/* Static mapping, never released */
117-
omap_irq_base = ioremap(OMAP44XX_GIC_CPU_BASE, SZ_512);
118-
BUG_ON(!omap_irq_base);
119-
120-
omap_wakeupgen_init();
121-
122-
gic_init(0, 29, gic_dist_base_addr, omap_irq_base);
123-
}
124-
125105
void gic_dist_disable(void)
126106
{
127107
if (gic_dist_base_addr)

arch/arm/mach-omap2/omap_hwmod.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4251,9 +4251,9 @@ void __init omap_hwmod_init(void)
42514251
soc_ops.enable_module = _omap4_enable_module;
42524252
soc_ops.disable_module = _omap4_disable_module;
42534253
soc_ops.wait_target_ready = _omap4_wait_target_ready;
4254-
soc_ops.assert_hardreset = _omap4_assert_hardreset;
4255-
soc_ops.deassert_hardreset = _omap4_deassert_hardreset;
4256-
soc_ops.is_hardreset_asserted = _omap4_is_hardreset_asserted;
4254+
soc_ops.assert_hardreset = _am33xx_assert_hardreset;
4255+
soc_ops.deassert_hardreset = _am33xx_deassert_hardreset;
4256+
soc_ops.is_hardreset_asserted = _am33xx_is_hardreset_asserted;
42574257
soc_ops.init_clkdm = _init_clkdm;
42584258
} else if (soc_is_am33xx()) {
42594259
soc_ops.enable_module = _am33xx_enable_module;

arch/arm/mach-omap2/omap_hwmod_54xx_data.c

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2020,6 +2020,77 @@ static struct omap_hwmod omap54xx_wd_timer2_hwmod = {
20202020
},
20212021
};
20222022

2023+
/*
2024+
* 'ocp2scp' class
2025+
* bridge to transform ocp interface protocol to scp (serial control port)
2026+
* protocol
2027+
*/
2028+
/* ocp2scp3 */
2029+
static struct omap_hwmod omap54xx_ocp2scp3_hwmod;
2030+
/* l4_cfg -> ocp2scp3 */
2031+
static struct omap_hwmod_ocp_if omap54xx_l4_cfg__ocp2scp3 = {
2032+
.master = &omap54xx_l4_cfg_hwmod,
2033+
.slave = &omap54xx_ocp2scp3_hwmod,
2034+
.clk = "l4_root_clk_div",
2035+
.user = OCP_USER_MPU | OCP_USER_SDMA,
2036+
};
2037+
2038+
static struct omap_hwmod omap54xx_ocp2scp3_hwmod = {
2039+
.name = "ocp2scp3",
2040+
.class = &omap54xx_ocp2scp_hwmod_class,
2041+
.clkdm_name = "l3init_clkdm",
2042+
.prcm = {
2043+
.omap4 = {
2044+
.clkctrl_offs = OMAP54XX_CM_L3INIT_OCP2SCP3_CLKCTRL_OFFSET,
2045+
.context_offs = OMAP54XX_RM_L3INIT_OCP2SCP3_CONTEXT_OFFSET,
2046+
.modulemode = MODULEMODE_HWCTRL,
2047+
},
2048+
},
2049+
};
2050+
2051+
/*
2052+
* 'sata' class
2053+
* sata: serial ata interface gen2 compliant ( 1 rx/ 1 tx)
2054+
*/
2055+
2056+
static struct omap_hwmod_class_sysconfig omap54xx_sata_sysc = {
2057+
.sysc_offs = 0x0000,
2058+
.sysc_flags = (SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE),
2059+
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
2060+
SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
2061+
MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
2062+
.sysc_fields = &omap_hwmod_sysc_type2,
2063+
};
2064+
2065+
static struct omap_hwmod_class omap54xx_sata_hwmod_class = {
2066+
.name = "sata",
2067+
.sysc = &omap54xx_sata_sysc,
2068+
};
2069+
2070+
/* sata */
2071+
static struct omap_hwmod omap54xx_sata_hwmod = {
2072+
.name = "sata",
2073+
.class = &omap54xx_sata_hwmod_class,
2074+
.clkdm_name = "l3init_clkdm",
2075+
.flags = HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY,
2076+
.main_clk = "func_48m_fclk",
2077+
.mpu_rt_idx = 1,
2078+
.prcm = {
2079+
.omap4 = {
2080+
.clkctrl_offs = OMAP54XX_CM_L3INIT_SATA_CLKCTRL_OFFSET,
2081+
.context_offs = OMAP54XX_RM_L3INIT_SATA_CONTEXT_OFFSET,
2082+
.modulemode = MODULEMODE_SWCTRL,
2083+
},
2084+
},
2085+
};
2086+
2087+
/* l4_cfg -> sata */
2088+
static struct omap_hwmod_ocp_if omap54xx_l4_cfg__sata = {
2089+
.master = &omap54xx_l4_cfg_hwmod,
2090+
.slave = &omap54xx_sata_hwmod,
2091+
.clk = "l3_iclk_div",
2092+
.user = OCP_USER_MPU | OCP_USER_SDMA,
2093+
};
20232094

20242095
/*
20252096
* Interfaces
@@ -2765,6 +2836,8 @@ static struct omap_hwmod_ocp_if *omap54xx_hwmod_ocp_ifs[] __initdata = {
27652836
&omap54xx_l4_cfg__usb_tll_hs,
27662837
&omap54xx_l4_cfg__usb_otg_ss,
27672838
&omap54xx_l4_wkup__wd_timer2,
2839+
&omap54xx_l4_cfg__ocp2scp3,
2840+
&omap54xx_l4_cfg__sata,
27682841
NULL,
27692842
};
27702843

arch/arm/mach-omap2/soc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,7 @@ IS_OMAP_TYPE(3430, 0x3430)
462462
#define DRA7XX_CLASS 0x07000000
463463
#define DRA752_REV_ES1_0 (DRA7XX_CLASS | (0x52 << 16) | (0x10 << 8))
464464
#define DRA752_REV_ES1_1 (DRA7XX_CLASS | (0x52 << 16) | (0x11 << 8))
465+
#define DRA722_REV_ES1_0 (DRA7XX_CLASS | (0x22 << 16) | (0x10 << 8))
465466

466467
void omap2xxx_check_revision(void);
467468
void omap3xxx_check_revision(void);

0 commit comments

Comments
 (0)