Lines Matching defs:sysc

3  * ti-sysc.c - Texas Instruments sysc interconnect target driver
24 #include <linux/platform_data/ti-sysc.h>
26 #include <dt-bindings/bus/ti-sysc.h>
58 struct sysc *ddata;
86 static const char * const reg_names[] = { "rev", "sysc", "syss", };
96 * struct sysc - TI sysc interconnect target module registers and capabilities
102 * @mdata: ti-sysc to hwmod translation data for a module
115 * @enabled: sysc runtime enabled status
128 struct sysc {
151 void (*pre_reset_quirk)(struct sysc *sysc);
152 void (*post_reset_quirk)(struct sysc *sysc);
153 void (*reset_done_quirk)(struct sysc *sysc);
154 void (*module_enable_quirk)(struct sysc *sysc);
155 void (*module_disable_quirk)(struct sysc *sysc);
156 void (*module_unlock_quirk)(struct sysc *sysc);
157 void (*module_lock_quirk)(struct sysc *sysc);
160 static void sysc_parse_dts_quirks(struct sysc *ddata, struct device_node *np,
162 static int sysc_reset(struct sysc *ddata);
164 static void sysc_write(struct sysc *ddata, int offset, u32 value)
183 static u32 sysc_read(struct sysc *ddata, int offset)
204 static bool sysc_opt_clks_needed(struct sysc *ddata)
209 static u32 sysc_read_revision(struct sysc *ddata)
219 static u32 sysc_read_sysconfig(struct sysc *ddata)
229 static u32 sysc_read_sysstatus(struct sysc *ddata)
239 static int sysc_poll_reset_sysstatus(struct sysc *ddata)
267 static int sysc_poll_reset_sysconfig(struct sysc *ddata)
293 static int sysc_wait_softreset(struct sysc *ddata)
310 static int sysc_add_named_clock_from_child(struct sysc *ddata,
360 static int sysc_init_ext_opt_clock(struct sysc *ddata, const char *name)
385 static int sysc_get_one_clock(struct sysc *ddata, const char *name)
427 static int sysc_get_clocks(struct sysc *ddata)
497 static int sysc_enable_main_clocks(struct sysc *ddata)
533 static void sysc_disable_main_clocks(struct sysc *ddata)
550 static int sysc_enable_opt_clocks(struct sysc *ddata)
584 static void sysc_disable_opt_clocks(struct sysc *ddata)
603 static void sysc_clkdm_deny_idle(struct sysc *ddata)
615 static void sysc_clkdm_allow_idle(struct sysc *ddata)
633 static int sysc_init_resets(struct sysc *ddata)
645 * In general we only need rev, syss, and sysc registers and not the whole
650 static int sysc_parse_and_check_child_range(struct sysc *ddata)
692 static int sysc_defer_non_critical(struct sysc *ddata)
717 static void sysc_init_stdout_path(struct sysc *ddata)
748 static void sysc_check_quirk_stdout(struct sysc *ddata,
768 static void sysc_check_one_child(struct sysc *ddata,
774 if (name && !of_device_is_compatible(np, "ti,sysc"))
781 static void sysc_check_children(struct sysc *ddata)
795 static void sysc_check_quirk_16bit(struct sysc *ddata, struct resource *res)
806 static int sysc_parse_one(struct sysc *ddata, enum sysc_registers reg)
836 static int sysc_parse_registers(struct sysc *ddata)
853 static int sysc_check_registers(struct sysc *ddata)
898 static int sysc_ioremap(struct sysc *ddata)
931 static int sysc_map_and_check_registers(struct sysc *ddata)
969 static int sysc_show_rev(char *bufp, struct sysc *ddata)
981 static int sysc_show_reg(struct sysc *ddata,
990 static int sysc_show_name(char *bufp, struct sysc *ddata)
1002 static void sysc_show_registers(struct sysc *ddata)
1024 static void sysc_write_sysconfig(struct sysc *ddata, u32 value)
1041 struct sysc *ddata;
1180 struct sysc *ddata;
1257 struct sysc *ddata)
1280 struct sysc *ddata)
1304 struct sysc *ddata;
1341 struct sysc *ddata;
1399 static int sysc_check_context(struct sysc *ddata)
1413 static int sysc_reinit_module(struct sysc *ddata, bool leave_enabled)
1457 struct sysc *ddata;
1475 struct sysc *ddata;
1709 static void sysc_init_early_quirks(struct sysc *ddata)
1738 static void sysc_init_revision_quirks(struct sysc *ddata)
1772 static u32 sysc_quirk_dispc(struct sysc *ddata, int dispc_offset,
1854 static void sysc_pre_reset_quirk_dss(struct sysc *ddata)
1891 static void sysc_pre_reset_quirk_hdq1w(struct sysc *ddata)
1902 static void sysc_module_enable_quirk_aess(struct sysc *ddata)
1910 static void sysc_clk_quirk_i2c(struct sysc *ddata, bool enable)
1930 static void sysc_pre_reset_quirk_i2c(struct sysc *ddata)
1935 static void sysc_post_reset_quirk_i2c(struct sysc *ddata)
1941 static void sysc_quirk_rtc(struct sysc *ddata, bool lock)
1964 static void sysc_module_unlock_quirk_rtc(struct sysc *ddata)
1969 static void sysc_module_lock_quirk_rtc(struct sysc *ddata)
1975 static void sysc_module_enable_quirk_otg(struct sysc *ddata)
1982 static void sysc_module_disable_quirk_otg(struct sysc *ddata)
1991 static void sysc_module_enable_quirk_sgx(struct sysc *ddata)
2000 static void sysc_reset_done_quirk_wdt(struct sysc *ddata)
2024 static void sysc_module_disable_quirk_pruss(struct sysc *ddata)
2033 static void sysc_init_module_quirks(struct sysc *ddata)
2089 static int sysc_clockdomain_init(struct sysc *ddata)
2121 static int sysc_legacy_init(struct sysc *ddata)
2140 static int sysc_reset(struct sysc *ddata)
2197 static int sysc_init_module(struct sysc *ddata)
2267 static int sysc_init_sysc_mask(struct sysc *ddata)
2273 error = of_property_read_u32(np, "ti,sysc-mask", &val);
2282 static int sysc_init_idlemode(struct sysc *ddata, u8 *idlemodes,
2301 static int sysc_init_idlemodes(struct sysc *ddata)
2306 "ti,sysc-midle");
2311 "ti,sysc-sidle");
2325 static int sysc_init_syss_mask(struct sysc *ddata)
2353 static int sysc_child_add_named_clock(struct sysc *ddata,
2383 static int sysc_child_add_clocks(struct sysc *ddata,
2406 static struct sysc *sysc_child_to_parent(struct device *dev)
2418 struct sysc *ddata;
2435 struct sysc *ddata;
2453 struct sysc *ddata;
2494 struct sysc *ddata;
2537 struct sysc *ddata;
2579 static void sysc_add_restored(struct sysc *ddata)
2616 static void sysc_legacy_idle_quirk(struct sysc *ddata, struct device *child)
2626 struct sysc *ddata;
2666 static void sysc_parse_dts_quirks(struct sysc *ddata, struct device_node *np,
2688 static int sysc_init_dts_quirks(struct sysc *ddata)
2697 error = of_property_read_u32(np, "ti,sysc-delay-us", &val);
2700 dev_warn(ddata->dev, "bad ti,sysc-delay-us: %i\n",
2710 static void sysc_unprepare(struct sysc *ddata)
2724 * Common sysc register bits found on omap2, also known as type1
2756 * SHAM2 (SHA1/MD5) sysc found on omap3, a variant of sysc_regbits_omap2
2798 * Common sysc register bits found on omap4, also known as type2
2826 * Common sysc register bits found on omap4, also known as type3
2845 * SmartReflex sysc found on omap34xx
2867 * SmartReflex sysc found on omap36xx and later
2970 static int sysc_init_pdata(struct sysc *ddata)
2997 static int sysc_init_match(struct sysc *ddata)
3014 struct sysc *ddata;
3016 ddata = container_of(work, struct sysc, idle_work.work);
3106 * Note that we initialize static data shared across all ti-sysc instances
3110 static int sysc_init_static_data(struct sysc *ddata)
3149 "ti-sysc: Incomplete old dtb, please update\n");
3217 static int sysc_check_disabled_devices(struct sysc *ddata)
3240 static int sysc_check_active_timer(struct sysc *ddata)
3275 struct sysc *ddata;
3402 struct sysc *ddata = platform_get_drvdata(pdev);
3430 { .compatible = "ti,sysc-omap2", .data = &sysc_omap2, },
3431 { .compatible = "ti,sysc-omap2-timer", .data = &sysc_omap2_timer, },
3432 { .compatible = "ti,sysc-omap4", .data = &sysc_omap4, },
3433 { .compatible = "ti,sysc-omap4-timer", .data = &sysc_omap4_timer, },
3434 { .compatible = "ti,sysc-omap4-simple", .data = &sysc_omap4_simple, },
3435 { .compatible = "ti,sysc-omap3430-sr", .data = &sysc_34xx_sr, },
3436 { .compatible = "ti,sysc-omap3630-sr", .data = &sysc_36xx_sr, },
3437 { .compatible = "ti,sysc-omap4-sr", .data = &sysc_omap4_sr, },
3438 { .compatible = "ti,sysc-omap3-sham", .data = &sysc_omap3_sham, },
3439 { .compatible = "ti,sysc-omap-aes", .data = &sysc_omap3_aes, },
3440 { .compatible = "ti,sysc-mcasp", .data = &sysc_omap4_mcasp, },
3441 { .compatible = "ti,sysc-dra7-mcasp", .data = &sysc_dra7_mcasp, },
3442 { .compatible = "ti,sysc-usb-host-fs",
3444 { .compatible = "ti,sysc-dra7-mcan", .data = &sysc_dra7_mcan, },
3445 { .compatible = "ti,sysc-pruss", .data = &sysc_pruss, },
3454 .name = "ti-sysc",
3476 MODULE_DESCRIPTION("TI sysc interconnect target driver");