Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'omap-for-v5.2/ti-sysc' into fixes

+17 -24
+6 -8
arch/arm/boot/dts/am33xx-l4.dtsi
··· 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 - reg = <0xcc000 0x4>; 1763 - reg-names = "rev"; 1764 1762 /* Domains (P, C): per_pwrdm, l4ls_clkdm */ 1765 - clocks = <&l4ls_clkctrl AM3_L4LS_D_CAN0_CLKCTRL 0>; 1766 - clock-names = "fck"; 1763 + clocks = <&l4ls_clkctrl AM3_L4LS_D_CAN0_CLKCTRL 0>, 1764 + <&dcan0_fck>; 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 - reg = <0xd0000 0x4>; 1785 - reg-names = "rev"; 1786 1785 /* Domains (P, C): per_pwrdm, l4ls_clkdm */ 1787 - clocks = <&l4ls_clkctrl AM3_L4LS_D_CAN1_CLKCTRL 0>; 1788 - clock-names = "fck"; 1786 + clocks = <&l4ls_clkctrl AM3_L4LS_D_CAN1_CLKCTRL 0>, 1787 + <&dcan1_fck>; 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
··· 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 - reg = <0xcc000 0x4>; 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 - reg = <0xd0000 0x4>; 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
··· 660 660 nr_regs++; 661 661 } 662 662 663 - if (nr_regs < 1) { 664 - dev_err(ddata->dev, "missing registers\n"); 665 - 666 - return -EINVAL; 667 - } 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 - size = max3(ddata->offsets[SYSC_REVISION], 689 - ddata->offsets[SYSC_SYSCONFIG], 690 - ddata->offsets[SYSC_SYSSTATUS]); 694 + if (ddata->offsets[SYSC_REVISION] < 0 && 695 + ddata->offsets[SYSC_SYSCONFIG] < 0 && 696 + ddata->offsets[SYSC_SYSSTATUS] < 0) { 697 + size = ddata->module_size; 698 + } else { 699 + size = max3(ddata->offsets[SYSC_REVISION], 700 + ddata->offsets[SYSC_SYSCONFIG], 701 + ddata->offsets[SYSC_SYSSTATUS]); 691 702 692 - if (size < 0 || (size + sizeof(u32)) > ddata->module_size) 693 - return -EINVAL; 703 + if ((size + sizeof(u32)) > ddata->module_size) 704 + return -EINVAL; 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 - 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),