Loading arch/arm/mach-omap2/pdata-quirks.c +21 −8 Original line number Diff line number Diff line Loading @@ -569,10 +569,29 @@ static void pdata_quirks_check(struct pdata_init *quirks) } } void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table) static const char * const pdata_quirks_init_nodes[] = { "prcm", "prm", }; static void __init pdata_quirks_init_clocks(const struct of_device_id *omap_dt_match_table) { struct device_node *np; int i; for (i = 0; i < ARRAY_SIZE(pdata_quirks_init_nodes); i++) { np = of_find_node_by_name(NULL, pdata_quirks_init_nodes[i]); if (!np) continue; of_platform_populate(np, omap_dt_match_table, omap_auxdata_lookup, NULL); } } void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table) { /* * We still need this for omap2420 and omap3 PM to work, others are * using drivers/misc/sram.c already. Loading @@ -585,13 +604,7 @@ void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table) omap3_mcbsp_init(); pdata_quirks_check(auxdata_quirks); /* Populate always-on PRCM in l4_wkup to probe l4_wkup */ np = of_find_node_by_name(NULL, "prcm"); if (!np) np = of_find_node_by_name(NULL, "prm"); if (np) of_platform_populate(np, omap_dt_match_table, omap_auxdata_lookup, NULL); pdata_quirks_init_clocks(omap_dt_match_table); of_platform_populate(NULL, omap_dt_match_table, omap_auxdata_lookup, NULL); Loading drivers/bus/ti-sysc.c +79 −6 Original line number Diff line number Diff line Loading @@ -288,7 +288,7 @@ static int sysc_add_named_clock_from_child(struct sysc *ddata, * limit for clk_get(). If cl ever needs to be freed, it should be done * with clkdev_drop(). */ cl = kcalloc(1, sizeof(*cl), GFP_KERNEL); cl = kzalloc(sizeof(*cl), GFP_KERNEL); if (!cl) return -ENOMEM; Loading Loading @@ -635,6 +635,51 @@ static int sysc_parse_and_check_child_range(struct sysc *ddata) return 0; } /* Interconnect instances to probe before l4_per instances */ static struct resource early_bus_ranges[] = { /* am3/4 l4_wkup */ { .start = 0x44c00000, .end = 0x44c00000 + 0x300000, }, /* omap4/5 and dra7 l4_cfg */ { .start = 0x4a000000, .end = 0x4a000000 + 0x300000, }, /* omap4 l4_wkup */ { .start = 0x4a300000, .end = 0x4a300000 + 0x30000, }, /* omap5 and dra7 l4_wkup without dra7 dcan segment */ { .start = 0x4ae00000, .end = 0x4ae00000 + 0x30000, }, }; static atomic_t sysc_defer = ATOMIC_INIT(10); /** * sysc_defer_non_critical - defer non_critical interconnect probing * @ddata: device driver data * * We want to probe l4_cfg and l4_wkup interconnect instances before any * l4_per instances as l4_per instances depend on resources on l4_cfg and * l4_wkup interconnects. */ static int sysc_defer_non_critical(struct sysc *ddata) { struct resource *res; int i; if (!atomic_read(&sysc_defer)) return 0; for (i = 0; i < ARRAY_SIZE(early_bus_ranges); i++) { res = &early_bus_ranges[i]; if (ddata->module_pa >= res->start && ddata->module_pa <= res->end) { atomic_set(&sysc_defer, 0); return 0; } } atomic_dec_if_positive(&sysc_defer); return -EPROBE_DEFER; } static struct device_node *stdout_path; static void sysc_init_stdout_path(struct sysc *ddata) Loading Loading @@ -856,15 +901,19 @@ static int sysc_map_and_check_registers(struct sysc *ddata) struct device_node *np = ddata->dev->of_node; int error; if (!of_get_property(np, "reg", NULL)) return 0; error = sysc_parse_and_check_child_range(ddata); if (error) return error; error = sysc_defer_non_critical(ddata); if (error) return error; sysc_check_children(ddata); if (!of_get_property(np, "reg", NULL)) return 0; error = sysc_parse_registers(ddata); if (error) return error; Loading Loading @@ -1410,6 +1459,8 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = { SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), SYSC_QUIRK("tptc", 0, 0, -ENODEV, -ENODEV, 0x40007c00, 0xffffffff, SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), SYSC_QUIRK("sata", 0, 0xfc, 0x1100, -ENODEV, 0x5e412000, 0xffffffff, SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, 0x14, 0x50700100, 0xffffffff, SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, -ENODEV, 0x50700101, 0xffffffff, Loading Loading @@ -1447,12 +1498,16 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = { SYSC_QUIRK("dwc3", 0, 0, 0x10, -ENODEV, 0x500a0200, 0xffffffff, 0), SYSC_QUIRK("d2d", 0x4a0b6000, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0), SYSC_QUIRK("d2d", 0x4a0cd000, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0), SYSC_QUIRK("elm", 0x48080000, 0, 0x10, 0x14, 0x00000020, 0xffffffff, 0), SYSC_QUIRK("emif", 0, 0, -ENODEV, -ENODEV, 0x40441403, 0xffff0fff, 0), SYSC_QUIRK("emif", 0, 0, -ENODEV, -ENODEV, 0x50440500, 0xffffffff, 0), SYSC_QUIRK("epwmss", 0, 0, 0x4, -ENODEV, 0x47400001, 0xffffffff, 0), SYSC_QUIRK("gpu", 0, 0x1fc00, 0x1fc10, -ENODEV, 0, 0, 0), SYSC_QUIRK("gpu", 0, 0xfe00, 0xfe10, -ENODEV, 0x40000000 , 0xffffffff, 0), SYSC_QUIRK("hdmi", 0, 0, 0x10, -ENODEV, 0x50031d00, 0xffffffff, 0), SYSC_QUIRK("hsi", 0, 0, 0x10, 0x14, 0x50043101, 0xffffffff, 0), SYSC_QUIRK("iss", 0, 0, 0x10, -ENODEV, 0x40000101, 0xffffffff, 0), SYSC_QUIRK("keypad", 0x4a31c000, 0, 0x10, 0x14, 0x00000020, 0xffffffff, 0), SYSC_QUIRK("mcasp", 0, 0, 0x4, -ENODEV, 0x44306302, 0xffffffff, 0), SYSC_QUIRK("mcasp", 0, 0, 0x4, -ENODEV, 0x44307b02, 0xffffffff, 0), SYSC_QUIRK("mcbsp", 0, -ENODEV, 0x8c, -ENODEV, 0, 0, 0), Loading @@ -1464,6 +1519,8 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = { SYSC_QUIRK("ocp2scp", 0, 0, -ENODEV, -ENODEV, 0x50060007, 0xffffffff, 0), SYSC_QUIRK("padconf", 0, 0, 0x10, -ENODEV, 0x4fff0800, 0xffffffff, 0), SYSC_QUIRK("padconf", 0, 0, -ENODEV, -ENODEV, 0x40001100, 0xffffffff, 0), SYSC_QUIRK("pcie", 0x51000000, -ENODEV, -ENODEV, -ENODEV, 0, 0, 0), SYSC_QUIRK("pcie", 0x51800000, -ENODEV, -ENODEV, -ENODEV, 0, 0, 0), SYSC_QUIRK("prcm", 0, 0, -ENODEV, -ENODEV, 0x40000100, 0xffffffff, 0), SYSC_QUIRK("prcm", 0, 0, -ENODEV, -ENODEV, 0x00004102, 0xffffffff, 0), SYSC_QUIRK("prcm", 0, 0, -ENODEV, -ENODEV, 0x40000400, 0xffffffff, 0), Loading Loading @@ -1592,7 +1649,7 @@ static u32 sysc_quirk_dispc(struct sysc *ddata, int dispc_offset, case SOC_UNKNOWN: default: return 0; }; } /* Remap the whole module range to be able to reset dispc outputs */ devm_iounmap(ddata->dev, ddata->module_va); Loading Loading @@ -2802,6 +2859,7 @@ static int sysc_init_soc(struct sysc *ddata) const struct soc_device_attribute *match; struct ti_sysc_platform_data *pdata; unsigned long features = 0; struct device_node *np; if (sysc_soc) return 0; Loading @@ -2822,6 +2880,21 @@ static int sysc_init_soc(struct sysc *ddata) if (match && match->data) sysc_soc->soc = (int)match->data; /* * Check and warn about possible old incomplete dtb. We now want to see * simple-pm-bus instead of simple-bus in the dtb for genpd using SoCs. */ switch (sysc_soc->soc) { case SOC_AM3: case SOC_AM4: np = of_find_node_by_path("/ocp"); WARN_ONCE(np && of_device_is_compatible(np, "simple-bus"), "ti-sysc: Incomplete old dtb, please update\n"); break; default: break; } /* Ignore devices that are not available on HS and EMU SoCs */ if (!sysc_soc->general_purpose) { switch (sysc_soc->soc) { Loading @@ -2830,7 +2903,7 @@ static int sysc_init_soc(struct sysc *ddata) break; default: break; }; } } match = soc_device_match(sysc_soc_feat_match); Loading drivers/clk/ti/clk-54xx.c +2 −0 Original line number Diff line number Diff line Loading @@ -156,6 +156,8 @@ static const struct omap_clkctrl_reg_data omap5_l3main1_clkctrl_regs[] __initcon static const struct omap_clkctrl_reg_data omap5_l3main2_clkctrl_regs[] __initconst = { { OMAP5_L3_MAIN_2_CLKCTRL, NULL, 0, "l3_iclk_div" }, { OMAP5_L3_MAIN_2_GPMC_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, { OMAP5_L3_MAIN_2_OCMC_RAM_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, { 0 }, }; Loading drivers/pci/controller/dwc/pci-dra7xx.c +7 −6 Original line number Diff line number Diff line Loading @@ -443,7 +443,7 @@ static const struct dw_pcie_ep_ops pcie_ep_ops = { .get_features = dra7xx_pcie_get_features, }; static int __init dra7xx_add_pcie_ep(struct dra7xx_pcie *dra7xx, static int dra7xx_add_pcie_ep(struct dra7xx_pcie *dra7xx, struct platform_device *pdev) { int ret; Loading Loading @@ -472,7 +472,7 @@ static int __init dra7xx_add_pcie_ep(struct dra7xx_pcie *dra7xx, return 0; } static int __init dra7xx_add_pcie_port(struct dra7xx_pcie *dra7xx, static int dra7xx_add_pcie_port(struct dra7xx_pcie *dra7xx, struct platform_device *pdev) { int ret; Loading Loading @@ -682,7 +682,7 @@ static int dra7xx_pcie_configure_two_lane(struct device *dev, return 0; } static int __init dra7xx_pcie_probe(struct platform_device *pdev) static int dra7xx_pcie_probe(struct platform_device *pdev) { u32 reg; int ret; Loading Loading @@ -938,6 +938,7 @@ static const struct dev_pm_ops dra7xx_pcie_pm_ops = { }; static struct platform_driver dra7xx_pcie_driver = { .probe = dra7xx_pcie_probe, .driver = { .name = "dra7-pcie", .of_match_table = of_dra7xx_pcie_match, Loading @@ -946,4 +947,4 @@ static struct platform_driver dra7xx_pcie_driver = { }, .shutdown = dra7xx_pcie_shutdown, }; builtin_platform_driver_probe(dra7xx_pcie_driver, dra7xx_pcie_probe); builtin_platform_driver(dra7xx_pcie_driver); drivers/soc/ti/omap_prm.c +12 −4 Original line number Diff line number Diff line Loading @@ -88,6 +88,7 @@ struct omap_reset_data { #define OMAP_PRM_HAS_RSTCTRL BIT(0) #define OMAP_PRM_HAS_RSTST BIT(1) #define OMAP_PRM_HAS_NO_CLKDM BIT(2) #define OMAP_PRM_RET_WHEN_IDLE BIT(3) #define OMAP_PRM_HAS_RESETS (OMAP_PRM_HAS_RSTCTRL | OMAP_PRM_HAS_RSTST) Loading Loading @@ -174,7 +175,8 @@ static const struct omap_prm_data omap4_prm_data[] = { .name = "core", .base = 0x4a306700, .pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_reton, .rstctrl = 0x210, .rstst = 0x214, .clkdm_name = "ducati", .rstmap = rst_map_012 .rstmap = rst_map_012, .flags = OMAP_PRM_RET_WHEN_IDLE, }, { .name = "ivahd", .base = 0x4a306f00, Loading @@ -199,7 +201,8 @@ static const struct omap_prm_data omap4_prm_data[] = { }, { .name = "l4per", .base = 0x4a307400, .pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_reton .pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_reton, .flags = OMAP_PRM_RET_WHEN_IDLE, }, { .name = "cefuse", .base = 0x4a307600, Loading Loading @@ -517,7 +520,7 @@ static int omap_prm_domain_power_on(struct generic_pm_domain *domain) { struct omap_prm_domain *prmd; int ret; u32 v; u32 v, mode; prmd = genpd_to_prm_domain(domain); if (!prmd->cap) Loading @@ -530,7 +533,12 @@ static int omap_prm_domain_power_on(struct generic_pm_domain *domain) else v = readl_relaxed(prmd->prm->base + prmd->pwrstctrl); writel_relaxed(v | OMAP_PRMD_ON_ACTIVE, if (prmd->prm->data->flags & OMAP_PRM_RET_WHEN_IDLE) mode = OMAP_PRMD_RETENTION; else mode = OMAP_PRMD_ON_ACTIVE; writel_relaxed((v & ~PRM_POWERSTATE_MASK) | mode, prmd->prm->base + prmd->pwrstctrl); /* wait for the transition bit to get cleared */ Loading Loading
arch/arm/mach-omap2/pdata-quirks.c +21 −8 Original line number Diff line number Diff line Loading @@ -569,10 +569,29 @@ static void pdata_quirks_check(struct pdata_init *quirks) } } void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table) static const char * const pdata_quirks_init_nodes[] = { "prcm", "prm", }; static void __init pdata_quirks_init_clocks(const struct of_device_id *omap_dt_match_table) { struct device_node *np; int i; for (i = 0; i < ARRAY_SIZE(pdata_quirks_init_nodes); i++) { np = of_find_node_by_name(NULL, pdata_quirks_init_nodes[i]); if (!np) continue; of_platform_populate(np, omap_dt_match_table, omap_auxdata_lookup, NULL); } } void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table) { /* * We still need this for omap2420 and omap3 PM to work, others are * using drivers/misc/sram.c already. Loading @@ -585,13 +604,7 @@ void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table) omap3_mcbsp_init(); pdata_quirks_check(auxdata_quirks); /* Populate always-on PRCM in l4_wkup to probe l4_wkup */ np = of_find_node_by_name(NULL, "prcm"); if (!np) np = of_find_node_by_name(NULL, "prm"); if (np) of_platform_populate(np, omap_dt_match_table, omap_auxdata_lookup, NULL); pdata_quirks_init_clocks(omap_dt_match_table); of_platform_populate(NULL, omap_dt_match_table, omap_auxdata_lookup, NULL); Loading
drivers/bus/ti-sysc.c +79 −6 Original line number Diff line number Diff line Loading @@ -288,7 +288,7 @@ static int sysc_add_named_clock_from_child(struct sysc *ddata, * limit for clk_get(). If cl ever needs to be freed, it should be done * with clkdev_drop(). */ cl = kcalloc(1, sizeof(*cl), GFP_KERNEL); cl = kzalloc(sizeof(*cl), GFP_KERNEL); if (!cl) return -ENOMEM; Loading Loading @@ -635,6 +635,51 @@ static int sysc_parse_and_check_child_range(struct sysc *ddata) return 0; } /* Interconnect instances to probe before l4_per instances */ static struct resource early_bus_ranges[] = { /* am3/4 l4_wkup */ { .start = 0x44c00000, .end = 0x44c00000 + 0x300000, }, /* omap4/5 and dra7 l4_cfg */ { .start = 0x4a000000, .end = 0x4a000000 + 0x300000, }, /* omap4 l4_wkup */ { .start = 0x4a300000, .end = 0x4a300000 + 0x30000, }, /* omap5 and dra7 l4_wkup without dra7 dcan segment */ { .start = 0x4ae00000, .end = 0x4ae00000 + 0x30000, }, }; static atomic_t sysc_defer = ATOMIC_INIT(10); /** * sysc_defer_non_critical - defer non_critical interconnect probing * @ddata: device driver data * * We want to probe l4_cfg and l4_wkup interconnect instances before any * l4_per instances as l4_per instances depend on resources on l4_cfg and * l4_wkup interconnects. */ static int sysc_defer_non_critical(struct sysc *ddata) { struct resource *res; int i; if (!atomic_read(&sysc_defer)) return 0; for (i = 0; i < ARRAY_SIZE(early_bus_ranges); i++) { res = &early_bus_ranges[i]; if (ddata->module_pa >= res->start && ddata->module_pa <= res->end) { atomic_set(&sysc_defer, 0); return 0; } } atomic_dec_if_positive(&sysc_defer); return -EPROBE_DEFER; } static struct device_node *stdout_path; static void sysc_init_stdout_path(struct sysc *ddata) Loading Loading @@ -856,15 +901,19 @@ static int sysc_map_and_check_registers(struct sysc *ddata) struct device_node *np = ddata->dev->of_node; int error; if (!of_get_property(np, "reg", NULL)) return 0; error = sysc_parse_and_check_child_range(ddata); if (error) return error; error = sysc_defer_non_critical(ddata); if (error) return error; sysc_check_children(ddata); if (!of_get_property(np, "reg", NULL)) return 0; error = sysc_parse_registers(ddata); if (error) return error; Loading Loading @@ -1410,6 +1459,8 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = { SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), SYSC_QUIRK("tptc", 0, 0, -ENODEV, -ENODEV, 0x40007c00, 0xffffffff, SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), SYSC_QUIRK("sata", 0, 0xfc, 0x1100, -ENODEV, 0x5e412000, 0xffffffff, SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, 0x14, 0x50700100, 0xffffffff, SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, -ENODEV, 0x50700101, 0xffffffff, Loading Loading @@ -1447,12 +1498,16 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = { SYSC_QUIRK("dwc3", 0, 0, 0x10, -ENODEV, 0x500a0200, 0xffffffff, 0), SYSC_QUIRK("d2d", 0x4a0b6000, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0), SYSC_QUIRK("d2d", 0x4a0cd000, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0), SYSC_QUIRK("elm", 0x48080000, 0, 0x10, 0x14, 0x00000020, 0xffffffff, 0), SYSC_QUIRK("emif", 0, 0, -ENODEV, -ENODEV, 0x40441403, 0xffff0fff, 0), SYSC_QUIRK("emif", 0, 0, -ENODEV, -ENODEV, 0x50440500, 0xffffffff, 0), SYSC_QUIRK("epwmss", 0, 0, 0x4, -ENODEV, 0x47400001, 0xffffffff, 0), SYSC_QUIRK("gpu", 0, 0x1fc00, 0x1fc10, -ENODEV, 0, 0, 0), SYSC_QUIRK("gpu", 0, 0xfe00, 0xfe10, -ENODEV, 0x40000000 , 0xffffffff, 0), SYSC_QUIRK("hdmi", 0, 0, 0x10, -ENODEV, 0x50031d00, 0xffffffff, 0), SYSC_QUIRK("hsi", 0, 0, 0x10, 0x14, 0x50043101, 0xffffffff, 0), SYSC_QUIRK("iss", 0, 0, 0x10, -ENODEV, 0x40000101, 0xffffffff, 0), SYSC_QUIRK("keypad", 0x4a31c000, 0, 0x10, 0x14, 0x00000020, 0xffffffff, 0), SYSC_QUIRK("mcasp", 0, 0, 0x4, -ENODEV, 0x44306302, 0xffffffff, 0), SYSC_QUIRK("mcasp", 0, 0, 0x4, -ENODEV, 0x44307b02, 0xffffffff, 0), SYSC_QUIRK("mcbsp", 0, -ENODEV, 0x8c, -ENODEV, 0, 0, 0), Loading @@ -1464,6 +1519,8 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = { SYSC_QUIRK("ocp2scp", 0, 0, -ENODEV, -ENODEV, 0x50060007, 0xffffffff, 0), SYSC_QUIRK("padconf", 0, 0, 0x10, -ENODEV, 0x4fff0800, 0xffffffff, 0), SYSC_QUIRK("padconf", 0, 0, -ENODEV, -ENODEV, 0x40001100, 0xffffffff, 0), SYSC_QUIRK("pcie", 0x51000000, -ENODEV, -ENODEV, -ENODEV, 0, 0, 0), SYSC_QUIRK("pcie", 0x51800000, -ENODEV, -ENODEV, -ENODEV, 0, 0, 0), SYSC_QUIRK("prcm", 0, 0, -ENODEV, -ENODEV, 0x40000100, 0xffffffff, 0), SYSC_QUIRK("prcm", 0, 0, -ENODEV, -ENODEV, 0x00004102, 0xffffffff, 0), SYSC_QUIRK("prcm", 0, 0, -ENODEV, -ENODEV, 0x40000400, 0xffffffff, 0), Loading Loading @@ -1592,7 +1649,7 @@ static u32 sysc_quirk_dispc(struct sysc *ddata, int dispc_offset, case SOC_UNKNOWN: default: return 0; }; } /* Remap the whole module range to be able to reset dispc outputs */ devm_iounmap(ddata->dev, ddata->module_va); Loading Loading @@ -2802,6 +2859,7 @@ static int sysc_init_soc(struct sysc *ddata) const struct soc_device_attribute *match; struct ti_sysc_platform_data *pdata; unsigned long features = 0; struct device_node *np; if (sysc_soc) return 0; Loading @@ -2822,6 +2880,21 @@ static int sysc_init_soc(struct sysc *ddata) if (match && match->data) sysc_soc->soc = (int)match->data; /* * Check and warn about possible old incomplete dtb. We now want to see * simple-pm-bus instead of simple-bus in the dtb for genpd using SoCs. */ switch (sysc_soc->soc) { case SOC_AM3: case SOC_AM4: np = of_find_node_by_path("/ocp"); WARN_ONCE(np && of_device_is_compatible(np, "simple-bus"), "ti-sysc: Incomplete old dtb, please update\n"); break; default: break; } /* Ignore devices that are not available on HS and EMU SoCs */ if (!sysc_soc->general_purpose) { switch (sysc_soc->soc) { Loading @@ -2830,7 +2903,7 @@ static int sysc_init_soc(struct sysc *ddata) break; default: break; }; } } match = soc_device_match(sysc_soc_feat_match); Loading
drivers/clk/ti/clk-54xx.c +2 −0 Original line number Diff line number Diff line Loading @@ -156,6 +156,8 @@ static const struct omap_clkctrl_reg_data omap5_l3main1_clkctrl_regs[] __initcon static const struct omap_clkctrl_reg_data omap5_l3main2_clkctrl_regs[] __initconst = { { OMAP5_L3_MAIN_2_CLKCTRL, NULL, 0, "l3_iclk_div" }, { OMAP5_L3_MAIN_2_GPMC_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, { OMAP5_L3_MAIN_2_OCMC_RAM_CLKCTRL, NULL, CLKF_HW_SUP, "l3_iclk_div" }, { 0 }, }; Loading
drivers/pci/controller/dwc/pci-dra7xx.c +7 −6 Original line number Diff line number Diff line Loading @@ -443,7 +443,7 @@ static const struct dw_pcie_ep_ops pcie_ep_ops = { .get_features = dra7xx_pcie_get_features, }; static int __init dra7xx_add_pcie_ep(struct dra7xx_pcie *dra7xx, static int dra7xx_add_pcie_ep(struct dra7xx_pcie *dra7xx, struct platform_device *pdev) { int ret; Loading Loading @@ -472,7 +472,7 @@ static int __init dra7xx_add_pcie_ep(struct dra7xx_pcie *dra7xx, return 0; } static int __init dra7xx_add_pcie_port(struct dra7xx_pcie *dra7xx, static int dra7xx_add_pcie_port(struct dra7xx_pcie *dra7xx, struct platform_device *pdev) { int ret; Loading Loading @@ -682,7 +682,7 @@ static int dra7xx_pcie_configure_two_lane(struct device *dev, return 0; } static int __init dra7xx_pcie_probe(struct platform_device *pdev) static int dra7xx_pcie_probe(struct platform_device *pdev) { u32 reg; int ret; Loading Loading @@ -938,6 +938,7 @@ static const struct dev_pm_ops dra7xx_pcie_pm_ops = { }; static struct platform_driver dra7xx_pcie_driver = { .probe = dra7xx_pcie_probe, .driver = { .name = "dra7-pcie", .of_match_table = of_dra7xx_pcie_match, Loading @@ -946,4 +947,4 @@ static struct platform_driver dra7xx_pcie_driver = { }, .shutdown = dra7xx_pcie_shutdown, }; builtin_platform_driver_probe(dra7xx_pcie_driver, dra7xx_pcie_probe); builtin_platform_driver(dra7xx_pcie_driver);
drivers/soc/ti/omap_prm.c +12 −4 Original line number Diff line number Diff line Loading @@ -88,6 +88,7 @@ struct omap_reset_data { #define OMAP_PRM_HAS_RSTCTRL BIT(0) #define OMAP_PRM_HAS_RSTST BIT(1) #define OMAP_PRM_HAS_NO_CLKDM BIT(2) #define OMAP_PRM_RET_WHEN_IDLE BIT(3) #define OMAP_PRM_HAS_RESETS (OMAP_PRM_HAS_RSTCTRL | OMAP_PRM_HAS_RSTST) Loading Loading @@ -174,7 +175,8 @@ static const struct omap_prm_data omap4_prm_data[] = { .name = "core", .base = 0x4a306700, .pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_reton, .rstctrl = 0x210, .rstst = 0x214, .clkdm_name = "ducati", .rstmap = rst_map_012 .rstmap = rst_map_012, .flags = OMAP_PRM_RET_WHEN_IDLE, }, { .name = "ivahd", .base = 0x4a306f00, Loading @@ -199,7 +201,8 @@ static const struct omap_prm_data omap4_prm_data[] = { }, { .name = "l4per", .base = 0x4a307400, .pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_reton .pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_reton, .flags = OMAP_PRM_RET_WHEN_IDLE, }, { .name = "cefuse", .base = 0x4a307600, Loading Loading @@ -517,7 +520,7 @@ static int omap_prm_domain_power_on(struct generic_pm_domain *domain) { struct omap_prm_domain *prmd; int ret; u32 v; u32 v, mode; prmd = genpd_to_prm_domain(domain); if (!prmd->cap) Loading @@ -530,7 +533,12 @@ static int omap_prm_domain_power_on(struct generic_pm_domain *domain) else v = readl_relaxed(prmd->prm->base + prmd->pwrstctrl); writel_relaxed(v | OMAP_PRMD_ON_ACTIVE, if (prmd->prm->data->flags & OMAP_PRM_RET_WHEN_IDLE) mode = OMAP_PRMD_RETENTION; else mode = OMAP_PRMD_ON_ACTIVE; writel_relaxed((v & ~PRM_POWERSTATE_MASK) | mode, prmd->prm->base + prmd->pwrstctrl); /* wait for the transition bit to get cleared */ Loading