Lines Matching +full:1 +full:- +full:bit
1 // SPDX-License-Identifier: GPL-2.0
9 #include <linux/reset-controller.h>
12 #include <dt-bindings/reset/thead,th1520-reset.h>
95 #define TH1520_GPU_RST_CFG_MASK GENMASK(1, 0)
104 #define TH1520_GPU_SW_GPU_RST BIT(0)
105 #define TH1520_GPU_SW_CLKGEN_RST BIT(1)
106 #define TH1520_DPU_SW_DPU_HRST BIT(0)
107 #define TH1520_DPU_SW_DPU_ARST BIT(1)
108 #define TH1520_DPU_SW_DPU_CRST BIT(2)
109 #define TH1520_DSI_SW_DSI_PRST BIT(0)
110 #define TH1520_HDMI_SW_MAIN_RST BIT(0)
111 #define TH1520_HDMI_SW_PRST BIT(1)
121 u32 bit; member
138 .bit = TH1520_GPU_SW_GPU_RST,
142 .bit = TH1520_GPU_SW_CLKGEN_RST,
146 .bit = TH1520_DPU_SW_DPU_HRST,
150 .bit = TH1520_DPU_SW_DPU_ARST,
154 .bit = TH1520_DPU_SW_DPU_CRST,
158 .bit = TH1520_DSI_SW_DSI_PRST,
162 .bit = TH1520_DSI_SW_DSI_PRST,
166 .bit = TH1520_HDMI_SW_MAIN_RST,
170 .bit = TH1520_HDMI_SW_PRST,
174 .bit = BIT(0),
178 .bit = BIT(1),
182 .bit = BIT(0),
186 .bit = BIT(1),
190 .bit = BIT(2),
194 .bit = BIT(3),
201 .bit = BIT(0),
205 .bit = BIT(0),
209 .bit = BIT(0),
213 .bit = BIT(0),
217 .bit = BIT(0),
221 .bit = BIT(1),
225 .bit = BIT(2),
229 .bit = BIT(3),
233 .bit = BIT(4),
237 .bit = BIT(0),
241 .bit = BIT(1),
245 .bit = BIT(0),
249 .bit = BIT(1),
253 .bit = BIT(0),
257 .bit = BIT(0),
261 .bit = BIT(0),
265 .bit = BIT(0),
269 .bit = BIT(0),
273 .bit = BIT(0),
277 .bit = BIT(0),
281 .bit = BIT(0),
285 .bit = BIT(1),
289 .bit = BIT(0),
293 .bit = BIT(1),
297 .bit = BIT(0),
301 .bit = BIT(0),
305 .bit = BIT(0),
309 .bit = BIT(0),
313 .bit = BIT(1),
317 .bit = BIT(2),
321 .bit = BIT(3),
325 .bit = BIT(0),
329 .bit = BIT(1),
333 .bit = BIT(0),
337 .bit = BIT(1),
341 .bit = BIT(0),
345 .bit = BIT(1),
349 .bit = BIT(0),
353 .bit = BIT(1),
357 .bit = BIT(0),
361 .bit = BIT(1),
365 .bit = BIT(0),
369 .bit = BIT(1),
373 .bit = BIT(0),
377 .bit = BIT(1),
381 .bit = BIT(0),
385 .bit = BIT(1),
389 .bit = BIT(0),
393 .bit = BIT(1),
397 .bit = BIT(0),
401 .bit = BIT(1),
405 .bit = BIT(0),
409 .bit = BIT(1),
413 .bit = BIT(0),
417 .bit = BIT(1),
421 .bit = BIT(0),
425 .bit = BIT(1),
429 .bit = BIT(0),
433 .bit = BIT(1),
437 .bit = BIT(0),
441 .bit = BIT(1),
445 .bit = BIT(0),
449 .bit = BIT(1),
453 .bit = BIT(0),
457 .bit = BIT(1),
461 .bit = BIT(0),
465 .bit = BIT(1),
469 .bit = BIT(0),
473 .bit = BIT(1),
477 .bit = BIT(0),
481 .bit = BIT(1),
485 .bit = BIT(0),
489 .bit = BIT(0),
493 .bit = BIT(0),
497 .bit = BIT(1),
501 .bit = BIT(0),
505 .bit = BIT(0),
509 .bit = BIT(0),
513 .bit = BIT(1),
517 .bit = BIT(0),
521 .bit = BIT(1),
525 .bit = BIT(0),
529 .bit = BIT(0),
533 .bit = BIT(0),
537 .bit = BIT(0),
541 .bit = BIT(1),
545 .bit = BIT(0),
549 .bit = BIT(0),
553 .bit = BIT(1),
557 .bit = BIT(0),
561 .bit = BIT(0),
565 .bit = BIT(0),
569 .bit = BIT(1),
573 .bit = BIT(2),
577 .bit = BIT(3),
581 .bit = BIT(0),
585 .bit = BIT(1),
589 .bit = BIT(0),
593 .bit = BIT(0),
597 .bit = BIT(1),
601 .bit = BIT(0),
605 .bit = BIT(0),
609 .bit = BIT(0),
613 .bit = BIT(1),
617 .bit = BIT(2),
621 .bit = BIT(3),
628 .bit = BIT(0),
632 .bit = BIT(1),
636 .bit = BIT(2),
640 .bit = BIT(3),
644 .bit = BIT(8),
648 .bit = BIT(9),
652 .bit = BIT(10),
656 .bit = BIT(12),
660 .bit = BIT(13),
664 .bit = BIT(14),
668 .bit = BIT(16),
672 .bit = BIT(20),
676 .bit = BIT(24),
680 .bit = BIT(26),
687 .bit = BIT(0),
691 .bit = BIT(1),
695 .bit = BIT(0),
699 .bit = BIT(1),
703 .bit = BIT(0),
707 .bit = BIT(1),
711 .bit = BIT(0),
715 .bit = BIT(1),
719 .bit = BIT(2),
726 .bit = BIT(0),
730 .bit = BIT(4),
734 .bit = BIT(16),
738 .bit = BIT(17),
742 .bit = BIT(18),
746 .bit = BIT(20),
750 .bit = BIT(24),
754 .bit = BIT(28),
758 .bit = BIT(29),
762 .bit = BIT(31),
766 .bit = BIT(8),
770 .bit = BIT(9),
774 .bit = BIT(10),
778 .bit = BIT(12),
782 .bit = BIT(16),
786 .bit = BIT(20),
793 .bit = BIT(0),
797 .bit = BIT(1),
801 .bit = BIT(0),
805 .bit = BIT(1),
809 .bit = BIT(4),
813 .bit = BIT(5),
817 .bit = BIT(0),
821 .bit = BIT(1),
825 .bit = BIT(2),
829 .bit = BIT(0),
833 .bit = BIT(1),
837 .bit = BIT(2),
841 .bit = BIT(0),
845 .bit = BIT(1),
862 reset = &priv->resets[id]; in th1520_reset_assert()
864 return regmap_update_bits(priv->map, reset->reg, reset->bit, 0); in th1520_reset_assert()
873 reset = &priv->resets[id]; in th1520_reset_deassert()
875 return regmap_update_bits(priv->map, reset->reg, reset->bit, in th1520_reset_deassert()
876 reset->bit); in th1520_reset_deassert()
893 struct device *dev = &pdev->dev; in th1520_reset_probe()
902 return -ENOMEM; in th1520_reset_probe()
908 priv->map = devm_regmap_init_mmio(dev, base, in th1520_reset_probe()
910 if (IS_ERR(priv->map)) in th1520_reset_probe()
911 return PTR_ERR(priv->map); in th1520_reset_probe()
913 if (of_device_is_compatible(dev->of_node, "thead,th1520-reset")) { in th1520_reset_probe()
915 ret = regmap_update_bits(priv->map, TH1520_GPU_RST_CFG, in th1520_reset_probe()
921 priv->rcdev.owner = THIS_MODULE; in th1520_reset_probe()
922 priv->rcdev.nr_resets = data->num; in th1520_reset_probe()
923 priv->rcdev.ops = &th1520_reset_ops; in th1520_reset_probe()
924 priv->rcdev.of_node = dev->of_node; in th1520_reset_probe()
926 priv->resets = data->resets; in th1520_reset_probe()
928 return devm_reset_controller_register(dev, &priv->rcdev); in th1520_reset_probe()
962 { .compatible = "thead,th1520-reset", .data = &th1520_reset_data },
963 { .compatible = "thead,th1520-reset-ap", .data = &th1520_ap_reset_data },
964 { .compatible = "thead,th1520-reset-dsp", .data = &th1520_dsp_reset_data },
965 { .compatible = "thead,th1520-reset-misc", .data = &th1520_misc_reset_data },
966 { .compatible = "thead,th1520-reset-vi", .data = &th1520_vi_reset_data },
967 { .compatible = "thead,th1520-reset-vp", .data = &th1520_vp_reset_data },
974 .name = "th1520-reset",
982 MODULE_DESCRIPTION("T-HEAD TH1520 SoC reset controller");