Lines Matching refs:sr_info
80 struct omap_sr *sr_info; in _sr_lookup() local
87 list_for_each_entry(sr_info, &sr_list, node) { in _sr_lookup()
88 if (voltdm == sr_info->voltdm) in _sr_lookup()
89 return sr_info; in _sr_lookup()
97 struct omap_sr *sr_info = data; in sr_interrupt() local
100 switch (sr_info->ip_type) { in sr_interrupt()
103 status = sr_read_reg(sr_info, ERRCONFIG_V1); in sr_interrupt()
106 sr_write_reg(sr_info, ERRCONFIG_V1, status); in sr_interrupt()
110 status = sr_read_reg(sr_info, IRQSTATUS); in sr_interrupt()
113 sr_write_reg(sr_info, IRQSTATUS, status); in sr_interrupt()
116 dev_err(&sr_info->pdev->dev, "UNKNOWN IP type %d\n", in sr_interrupt()
117 sr_info->ip_type); in sr_interrupt()
122 sr_class->notify(sr_info, status); in sr_interrupt()
209 static int sr_late_init(struct omap_sr *sr_info) in sr_late_init() argument
211 struct omap_sr_data *pdata = sr_info->pdev->dev.platform_data; in sr_late_init()
214 if (sr_class->notify && sr_class->notify_flags && sr_info->irq) { in sr_late_init()
215 ret = devm_request_irq(&sr_info->pdev->dev, sr_info->irq, in sr_late_init()
216 sr_interrupt, 0, sr_info->name, sr_info); in sr_late_init()
219 disable_irq(sr_info->irq); in sr_late_init()
223 sr_start_vddautocomp(sr_info); in sr_late_init()
228 list_del(&sr_info->node); in sr_late_init()
229 …dev_err(&sr_info->pdev->dev, "%s: ERROR in registering interrupt handler. Smartreflex will not fun… 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()
782 struct omap_sr *sr_info = data; in omap_sr_autocomp_show() local
784 if (!sr_info) { in omap_sr_autocomp_show()
789 *val = sr_info->autocomp_active; in omap_sr_autocomp_show()
796 struct omap_sr *sr_info = data; in omap_sr_autocomp_store() local
798 if (!sr_info) { in omap_sr_autocomp_store()
810 if (sr_info->autocomp_active != val) { in omap_sr_autocomp_store()
812 sr_stop_vddautocomp(sr_info); in omap_sr_autocomp_store()
814 sr_start_vddautocomp(sr_info); in omap_sr_autocomp_store()
825 struct omap_sr *sr_info; in omap_sr_probe() local
831 sr_info = devm_kzalloc(&pdev->dev, sizeof(struct omap_sr), GFP_KERNEL); in omap_sr_probe()
832 if (!sr_info) in omap_sr_probe()
835 sr_info->name = devm_kzalloc(&pdev->dev, in omap_sr_probe()
837 if (!sr_info->name) in omap_sr_probe()
840 platform_set_drvdata(pdev, sr_info); in omap_sr_probe()
848 sr_info->base = devm_ioremap_resource(&pdev->dev, mem); in omap_sr_probe()
849 if (IS_ERR(sr_info->base)) { in omap_sr_probe()
851 return PTR_ERR(sr_info->base); in omap_sr_probe()
859 snprintf(sr_info->name, SMARTREFLEX_NAME_LEN, "%s", pdata->name); in omap_sr_probe()
861 sr_info->pdev = pdev; in omap_sr_probe()
862 sr_info->srid = pdev->id; in omap_sr_probe()
863 sr_info->voltdm = pdata->voltdm; in omap_sr_probe()
864 sr_info->nvalue_table = pdata->nvalue_table; in omap_sr_probe()
865 sr_info->nvalue_count = pdata->nvalue_count; in omap_sr_probe()
866 sr_info->senn_mod = pdata->senn_mod; in omap_sr_probe()
867 sr_info->senp_mod = pdata->senp_mod; in omap_sr_probe()
868 sr_info->err_weight = pdata->err_weight; in omap_sr_probe()
869 sr_info->err_maxlimit = pdata->err_maxlimit; in omap_sr_probe()
870 sr_info->accum_data = pdata->accum_data; in omap_sr_probe()
871 sr_info->senn_avgweight = pdata->senn_avgweight; in omap_sr_probe()
872 sr_info->senp_avgweight = pdata->senp_avgweight; in omap_sr_probe()
873 sr_info->autocomp_active = false; in omap_sr_probe()
874 sr_info->ip_type = pdata->ip_type; in omap_sr_probe()
877 sr_info->irq = irq->start; in omap_sr_probe()
879 sr_set_clk_length(sr_info); in omap_sr_probe()
881 list_add(&sr_info->node, &sr_list); in omap_sr_probe()
894 ret = sr_late_init(sr_info); in omap_sr_probe()
905 sr_info->dbg_dir = debugfs_create_dir(sr_info->name, sr_dbg_dir); in omap_sr_probe()
907 debugfs_create_file("autocomp", S_IRUGO | S_IWUSR, sr_info->dbg_dir, in omap_sr_probe()
908 sr_info, &pm_sr_fops); in omap_sr_probe()
909 debugfs_create_x32("errweight", S_IRUGO, sr_info->dbg_dir, in omap_sr_probe()
910 &sr_info->err_weight); in omap_sr_probe()
911 debugfs_create_x32("errmaxlimit", S_IRUGO, sr_info->dbg_dir, in omap_sr_probe()
912 &sr_info->err_maxlimit); in omap_sr_probe()
914 nvalue_dir = debugfs_create_dir("nvalue", sr_info->dbg_dir); in omap_sr_probe()
916 if (sr_info->nvalue_count == 0 || !sr_info->nvalue_table) { in omap_sr_probe()
918 __func__, sr_info->name); in omap_sr_probe()
924 for (i = 0; i < sr_info->nvalue_count; i++) { in omap_sr_probe()
928 sr_info->nvalue_table[i].volt_nominal); in omap_sr_probe()
930 &(sr_info->nvalue_table[i].nvalue)); in omap_sr_probe()
932 sr_info->nvalue_table[i].volt_nominal); in omap_sr_probe()
934 &(sr_info->nvalue_table[i].errminlimit)); in omap_sr_probe()
943 debugfs_remove_recursive(sr_info->dbg_dir); in omap_sr_probe()
945 list_del(&sr_info->node); in omap_sr_probe()
955 struct omap_sr *sr_info; in omap_sr_remove() local
962 sr_info = _sr_lookup(pdata->voltdm); in omap_sr_remove()
963 if (IS_ERR(sr_info)) { in omap_sr_remove()
966 return PTR_ERR(sr_info); in omap_sr_remove()
969 if (sr_info->autocomp_active) in omap_sr_remove()
970 sr_stop_vddautocomp(sr_info); in omap_sr_remove()
971 debugfs_remove_recursive(sr_info->dbg_dir); in omap_sr_remove()
974 list_del(&sr_info->node); in omap_sr_remove()
981 struct omap_sr *sr_info; in omap_sr_shutdown() local
988 sr_info = _sr_lookup(pdata->voltdm); in omap_sr_shutdown()
989 if (IS_ERR(sr_info)) { in omap_sr_shutdown()
995 if (sr_info->autocomp_active) in omap_sr_shutdown()
996 sr_stop_vddautocomp(sr_info); in omap_sr_shutdown()