tangled
alpha
login
or
join now
tjh.dev
/
kernel
1
fork
atom
Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1
fork
atom
overview
issues
pulls
pipelines
Merge branch 'omap-for-v5.2/ti-sysc' into fixes
Tony Lindgren
6 years ago
4ee23cd7
f29f24b5
+17
-24
3 changed files
expand all
collapse all
unified
split
arch
arm
boot
dts
am33xx-l4.dtsi
am437x-l4.dtsi
drivers
bus
ti-sysc.c
+6
-8
arch/arm/boot/dts/am33xx-l4.dtsi
reviewed
···
1759
1759
target-module@cc000 { /* 0x481cc000, ap 60 46.0 */
1760
1760
compatible = "ti,sysc-omap4", "ti,sysc";
1761
1761
ti,hwmods = "d_can0";
1762
1762
-
reg = <0xcc000 0x4>;
1763
1763
-
reg-names = "rev";
1764
1762
/* Domains (P, C): per_pwrdm, l4ls_clkdm */
1765
1765
-
clocks = <&l4ls_clkctrl AM3_L4LS_D_CAN0_CLKCTRL 0>;
1766
1766
-
clock-names = "fck";
1763
1763
+
clocks = <&l4ls_clkctrl AM3_L4LS_D_CAN0_CLKCTRL 0>,
1764
1764
+
<&dcan0_fck>;
1765
1765
+
clock-names = "fck", "osc";
1767
1766
#address-cells = <1>;
1768
1767
#size-cells = <1>;
1769
1768
ranges = <0x0 0xcc000 0x2000>;
···
1781
1782
target-module@d0000 { /* 0x481d0000, ap 62 42.0 */
1782
1783
compatible = "ti,sysc-omap4", "ti,sysc";
1783
1784
ti,hwmods = "d_can1";
1784
1784
-
reg = <0xd0000 0x4>;
1785
1785
-
reg-names = "rev";
1786
1785
/* Domains (P, C): per_pwrdm, l4ls_clkdm */
1787
1787
-
clocks = <&l4ls_clkctrl AM3_L4LS_D_CAN1_CLKCTRL 0>;
1788
1788
-
clock-names = "fck";
1786
1786
+
clocks = <&l4ls_clkctrl AM3_L4LS_D_CAN1_CLKCTRL 0>,
1787
1787
+
<&dcan1_fck>;
1788
1788
+
clock-names = "fck", "osc";
1789
1789
#address-cells = <1>;
1790
1790
#size-cells = <1>;
1791
1791
ranges = <0x0 0xd0000 0x2000>;
-4
arch/arm/boot/dts/am437x-l4.dtsi
reviewed
···
1575
1575
target-module@cc000 { /* 0x481cc000, ap 50 46.0 */
1576
1576
compatible = "ti,sysc-omap4", "ti,sysc";
1577
1577
ti,hwmods = "d_can0";
1578
1578
-
reg = <0xcc000 0x4>;
1579
1579
-
reg-names = "rev";
1580
1578
/* Domains (P, C): per_pwrdm, l4ls_clkdm */
1581
1579
clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN0_CLKCTRL 0>;
1582
1580
clock-names = "fck";
···
1594
1596
target-module@d0000 { /* 0x481d0000, ap 52 3a.0 */
1595
1597
compatible = "ti,sysc-omap4", "ti,sysc";
1596
1598
ti,hwmods = "d_can1";
1597
1597
-
reg = <0xd0000 0x4>;
1598
1598
-
reg-names = "rev";
1599
1599
/* Domains (P, C): per_pwrdm, l4ls_clkdm */
1600
1600
clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN1_CLKCTRL 0>;
1601
1601
clock-names = "fck";
+11
-12
drivers/bus/ti-sysc.c
reviewed
···
660
660
nr_regs++;
661
661
}
662
662
663
663
-
if (nr_regs < 1) {
664
664
-
dev_err(ddata->dev, "missing registers\n");
665
665
-
666
666
-
return -EINVAL;
667
667
-
}
668
668
-
669
663
if (nr_matches > nr_regs) {
670
664
dev_err(ddata->dev, "overlapping registers: (%i/%i)",
671
665
nr_regs, nr_matches);
···
685
691
{
686
692
int size;
687
693
688
688
-
size = max3(ddata->offsets[SYSC_REVISION],
689
689
-
ddata->offsets[SYSC_SYSCONFIG],
690
690
-
ddata->offsets[SYSC_SYSSTATUS]);
694
694
+
if (ddata->offsets[SYSC_REVISION] < 0 &&
695
695
+
ddata->offsets[SYSC_SYSCONFIG] < 0 &&
696
696
+
ddata->offsets[SYSC_SYSSTATUS] < 0) {
697
697
+
size = ddata->module_size;
698
698
+
} else {
699
699
+
size = max3(ddata->offsets[SYSC_REVISION],
700
700
+
ddata->offsets[SYSC_SYSCONFIG],
701
701
+
ddata->offsets[SYSC_SYSSTATUS]);
691
702
692
692
-
if (size < 0 || (size + sizeof(u32)) > ddata->module_size)
693
693
-
return -EINVAL;
703
703
+
if ((size + sizeof(u32)) > ddata->module_size)
704
704
+
return -EINVAL;
705
705
+
}
694
706
695
707
ddata->module_va = devm_ioremap(ddata->dev,
696
708
ddata->module_pa,
···
1128
1128
SYSC_QUIRK("cpgmac", 0, 0x1200, 0x1208, 0x1204, 0x4edb1902,
1129
1129
0xffff00f0, 0),
1130
1130
SYSC_QUIRK("dcan", 0, 0, -1, -1, 0xffffffff, 0xffffffff, 0),
1131
1131
-
SYSC_QUIRK("dcan", 0, 0, -1, -1, 0x00001401, 0xffffffff, 0),
1132
1131
SYSC_QUIRK("dmic", 0, 0, 0x10, -1, 0x50010000, 0xffffffff, 0),
1133
1132
SYSC_QUIRK("dwc3", 0, 0, 0x10, -1, 0x500a0200, 0xffffffff, 0),
1134
1133
SYSC_QUIRK("epwmss", 0, 0, 0x4, -1, 0x47400001, 0xffffffff, 0),