Lines Matching refs:sr_info

83 	struct omap_sr *sr_info;  in _sr_lookup()  local
90 list_for_each_entry(sr_info, &sr_list, node) { in _sr_lookup()
91 if (voltdm == sr_info->voltdm) in _sr_lookup()
92 return sr_info; in _sr_lookup()
100 struct omap_sr *sr_info = data; in sr_interrupt() local
103 switch (sr_info->ip_type) { in sr_interrupt()
106 status = sr_read_reg(sr_info, ERRCONFIG_V1); in sr_interrupt()
109 sr_write_reg(sr_info, ERRCONFIG_V1, status); in sr_interrupt()
113 status = sr_read_reg(sr_info, IRQSTATUS); in sr_interrupt()
116 sr_write_reg(sr_info, IRQSTATUS, status); in sr_interrupt()
119 dev_err(&sr_info->pdev->dev, "UNKNOWN IP type %d\n", in sr_interrupt()
120 sr_info->ip_type); in sr_interrupt()
125 sr_class->notify(sr_info, status); in sr_interrupt()
208 static int sr_late_init(struct omap_sr *sr_info) in sr_late_init() argument
210 struct omap_sr_data *pdata = sr_info->pdev->dev.platform_data; in sr_late_init()
213 if (sr_class->notify && sr_class->notify_flags && sr_info->irq) { in sr_late_init()
214 ret = devm_request_irq(&sr_info->pdev->dev, sr_info->irq, in sr_late_init()
215 sr_interrupt, 0, sr_info->name, sr_info); in sr_late_init()
218 disable_irq(sr_info->irq); in sr_late_init()
222 sr_start_vddautocomp(sr_info); in sr_late_init()
227 list_del(&sr_info->node); in sr_late_init()
228 dev_err(&sr_info->pdev->dev, "%s: ERROR in registering" in sr_late_init()
658 struct omap_sr *sr_info; in sr_register_class() local
678 list_for_each_entry(sr_info, &sr_list, node) in sr_register_class()
679 sr_late_init(sr_info); in sr_register_class()
801 struct omap_sr *sr_info = data; in omap_sr_autocomp_show() local
803 if (!sr_info) { in omap_sr_autocomp_show()
808 *val = sr_info->autocomp_active; in omap_sr_autocomp_show()
815 struct omap_sr *sr_info = data; in omap_sr_autocomp_store() local
817 if (!sr_info) { in omap_sr_autocomp_store()
829 if (sr_info->autocomp_active != val) { in omap_sr_autocomp_store()
831 sr_stop_vddautocomp(sr_info); in omap_sr_autocomp_store()
833 sr_start_vddautocomp(sr_info); in omap_sr_autocomp_store()
844 struct omap_sr *sr_info; in omap_sr_probe() local
850 sr_info = devm_kzalloc(&pdev->dev, sizeof(struct omap_sr), GFP_KERNEL); in omap_sr_probe()
851 if (!sr_info) { in omap_sr_probe()
857 sr_info->name = devm_kzalloc(&pdev->dev, in omap_sr_probe()
859 if (!sr_info->name) { in omap_sr_probe()
865 platform_set_drvdata(pdev, sr_info); in omap_sr_probe()
873 sr_info->base = devm_ioremap_resource(&pdev->dev, mem); in omap_sr_probe()
874 if (IS_ERR(sr_info->base)) { in omap_sr_probe()
876 return PTR_ERR(sr_info->base); in omap_sr_probe()
884 snprintf(sr_info->name, SMARTREFLEX_NAME_LEN, "%s", pdata->name); in omap_sr_probe()
886 sr_info->pdev = pdev; in omap_sr_probe()
887 sr_info->srid = pdev->id; in omap_sr_probe()
888 sr_info->voltdm = pdata->voltdm; in omap_sr_probe()
889 sr_info->nvalue_table = pdata->nvalue_table; in omap_sr_probe()
890 sr_info->nvalue_count = pdata->nvalue_count; in omap_sr_probe()
891 sr_info->senn_mod = pdata->senn_mod; in omap_sr_probe()
892 sr_info->senp_mod = pdata->senp_mod; in omap_sr_probe()
893 sr_info->err_weight = pdata->err_weight; in omap_sr_probe()
894 sr_info->err_maxlimit = pdata->err_maxlimit; in omap_sr_probe()
895 sr_info->accum_data = pdata->accum_data; in omap_sr_probe()
896 sr_info->senn_avgweight = pdata->senn_avgweight; in omap_sr_probe()
897 sr_info->senp_avgweight = pdata->senp_avgweight; in omap_sr_probe()
898 sr_info->autocomp_active = false; in omap_sr_probe()
899 sr_info->ip_type = pdata->ip_type; in omap_sr_probe()
902 sr_info->irq = irq->start; in omap_sr_probe()
904 sr_set_clk_length(sr_info); in omap_sr_probe()
906 list_add(&sr_info->node, &sr_list); in omap_sr_probe()
913 ret = sr_late_init(sr_info); in omap_sr_probe()
931 sr_info->dbg_dir = debugfs_create_dir(sr_info->name, sr_dbg_dir); in omap_sr_probe()
932 if (IS_ERR_OR_NULL(sr_info->dbg_dir)) { in omap_sr_probe()
935 ret = PTR_ERR(sr_info->dbg_dir); in omap_sr_probe()
940 sr_info->dbg_dir, (void *)sr_info, &pm_sr_fops); in omap_sr_probe()
941 (void) debugfs_create_x32("errweight", S_IRUGO, sr_info->dbg_dir, in omap_sr_probe()
942 &sr_info->err_weight); in omap_sr_probe()
943 (void) debugfs_create_x32("errmaxlimit", S_IRUGO, sr_info->dbg_dir, in omap_sr_probe()
944 &sr_info->err_maxlimit); in omap_sr_probe()
946 nvalue_dir = debugfs_create_dir("nvalue", sr_info->dbg_dir); in omap_sr_probe()
954 if (sr_info->nvalue_count == 0 || !sr_info->nvalue_table) { in omap_sr_probe()
956 __func__, sr_info->name); in omap_sr_probe()
962 for (i = 0; i < sr_info->nvalue_count; i++) { in omap_sr_probe()
966 sr_info->nvalue_table[i].volt_nominal); in omap_sr_probe()
968 &(sr_info->nvalue_table[i].nvalue)); in omap_sr_probe()
970 sr_info->nvalue_table[i].volt_nominal); in omap_sr_probe()
972 &(sr_info->nvalue_table[i].errminlimit)); in omap_sr_probe()
979 debugfs_remove_recursive(sr_info->dbg_dir); in omap_sr_probe()
981 list_del(&sr_info->node); in omap_sr_probe()
988 struct omap_sr *sr_info; in omap_sr_remove() local
995 sr_info = _sr_lookup(pdata->voltdm); in omap_sr_remove()
996 if (IS_ERR(sr_info)) { in omap_sr_remove()
999 return PTR_ERR(sr_info); in omap_sr_remove()
1002 if (sr_info->autocomp_active) in omap_sr_remove()
1003 sr_stop_vddautocomp(sr_info); in omap_sr_remove()
1004 if (sr_info->dbg_dir) in omap_sr_remove()
1005 debugfs_remove_recursive(sr_info->dbg_dir); in omap_sr_remove()
1008 list_del(&sr_info->node); in omap_sr_remove()
1015 struct omap_sr *sr_info; in omap_sr_shutdown() local
1022 sr_info = _sr_lookup(pdata->voltdm); in omap_sr_shutdown()
1023 if (IS_ERR(sr_info)) { in omap_sr_shutdown()
1029 if (sr_info->autocomp_active) in omap_sr_shutdown()
1030 sr_stop_vddautocomp(sr_info); in omap_sr_shutdown()