blob: 9b158aebb1934a77ee189549b1cc2ca2b4be8bb1 [file] [log] [blame]
Nico Huber83693c82016-10-08 22:17:55 +02001--
2-- Copyright (C) 2015-2016 secunet Security Networks AG
3--
4-- This program is free software; you can redistribute it and/or modify
5-- it under the terms of the GNU General Public License as published by
6-- the Free Software Foundation; version 2 of the License.
7--
8-- This program is distributed in the hope that it will be useful,
9-- but WITHOUT ANY WARRANTY; without even the implied warranty of
10-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11-- GNU General Public License for more details.
12--
13
14private package HW.GFX.GMA.PLLs
15with
16 Abstract_State => (State with Part_Of => GMA.State)
17is
18
19 -- XXX: Types should be private (but that triggers a bug in SPARK GPL 2016)
20 type T is (Invalid_PLL, LCPLL0, LCPLL1, LCPLL2, WRPLL0, WRPLL1);
21 subtype LCPLLs is T range LCPLL0 .. LCPLL2;
22 subtype WRPLLs is T range WRPLL0 .. WRPLL1;
23 Invalid : constant T := Invalid_PLL;
24
25 procedure Initialize
26 with
27 Global => (Output => State);
28
29 procedure Alloc
30 (Port_Cfg : in Port_Config;
31 PLL : out T;
32 Success : out Boolean);
33
34 procedure Free (PLL : T);
35
36 procedure All_Off;
37
38 function Register_Value (PLL : T) return Word32;
39
40end HW.GFX.GMA.PLLs;