blob: fedf6602c207b474c18f3611b019476d3475961f [file] [log] [blame]
Nico Huber83693c82016-10-08 22:17:55 +02001--
Nico Huber01b680f2017-06-09 16:24:22 +02002-- Copyright (C) 2015-2017 secunet Security Networks AG
Nico Huber83693c82016-10-08 22:17:55 +02003--
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
Nico Huber125a29e2016-10-18 00:23:54 +02006-- the Free Software Foundation; either version 2 of the License, or
7-- (at your option) any later version.
Nico Huber83693c82016-10-08 22:17:55 +02008--
9-- This program is distributed in the hope that it will be useful,
10-- but WITHOUT ANY WARRANTY; without even the implied warranty of
11-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12-- GNU General Public License for more details.
13--
14
15with HW.GFX.GMA.Config;
16with HW.GFX.GMA.Panel;
17with HW.GFX.GMA.Connectors.DDI;
18
19with HW.Debug;
20with GNAT.Source_Info;
21
22package body HW.GFX.GMA.Connectors is
23
Nico Huber3a0e2a02017-07-19 14:41:46 +020024 procedure Post_Reset_Off
25 is
26 begin
27 DDI.Post_Reset_Off;
28 end Post_Reset_Off;
29
Nico Huber0923b792017-06-09 15:28:41 +020030 procedure Initialize
31 is
32 begin
Nico Huber01b680f2017-06-09 16:24:22 +020033 DDI.Initialize;
Nico Huber0923b792017-06-09 15:28:41 +020034 end Initialize;
35
Nico Hubera8254482024-07-03 12:23:00 +020036 ----------------------------------------------------------------------------
37
38 procedure Prepare
39 (Port : in Active_Port_Type;
40 Port_Cfg : in out Port_Config;
41 Success : out Boolean)
42 is
43 begin
44 Success := True;
45 end Prepare;
46
47 ----------------------------------------------------------------------------
48
Nico Huber83693c82016-10-08 22:17:55 +020049 procedure Pre_On
Nico Huber6e327c92016-12-21 14:45:45 +010050 (Pipe : in Pipe_Index;
51 Port_Cfg : in Port_Config;
52 PLL_Hint : in Word32;
53 Success : out Boolean)
Nico Huber83693c82016-10-08 22:17:55 +020054 is
55 begin
56 pragma Debug (Debug.Put_Line (GNAT.Source_Info.Enclosing_Entity));
Arthur Heymans5d08a932018-03-28 17:00:18 +020057 if Port_Cfg.Port in Digital_Port then
58 DDI.Pre_On (Port_Cfg, PLL_Hint, Success);
59 else
60 Success := False; -- Should not happen
61 end if;
Nico Huber83693c82016-10-08 22:17:55 +020062 end Pre_On;
63
64 procedure Post_On
Arthur Heymans60d0e5f2018-03-28 17:08:27 +020065 (Pipe : in Pipe_Index;
66 Port_Cfg : in Port_Config;
Nico Huber83693c82016-10-08 22:17:55 +020067 PLL_Hint : in Word32;
68 Success : out Boolean)
69 is
70 begin
71 pragma Debug (Debug.Put_Line (GNAT.Source_Info.Enclosing_Entity));
72
Arthur Heymans5d08a932018-03-28 17:00:18 +020073 if Port_Cfg.Port in Digital_Port then
74 DDI.Post_On (Port_Cfg);
Nico Huber83693c82016-10-08 22:17:55 +020075
Nico Huber2bbd6e72020-01-07 18:22:59 +010076 Panel.Backlight_On (Port_Cfg.Panel);
Arthur Heymans5d08a932018-03-28 17:00:18 +020077 Success := True;
78 else
79 Success := False; -- Should not happen
Nico Huber83693c82016-10-08 22:17:55 +020080 end if;
Nico Huber83693c82016-10-08 22:17:55 +020081 end Post_On;
82
83 ----------------------------------------------------------------------------
84
85 procedure Pre_Off (Port_Cfg : Port_Config)
86 is
87 begin
88 pragma Debug (Debug.Put_Line (GNAT.Source_Info.Enclosing_Entity));
89
Nico Huber2bbd6e72020-01-07 18:22:59 +010090 Panel.Backlight_Off (Port_Cfg.Panel);
91 Panel.Off (Port_Cfg.Panel);
Nico Huber83693c82016-10-08 22:17:55 +020092 end Pre_Off;
93
94 procedure Post_Off (Port_Cfg : Port_Config)
95 is
96 begin
97 pragma Debug (Debug.Put_Line (GNAT.Source_Info.Enclosing_Entity));
Arthur Heymans5d08a932018-03-28 17:00:18 +020098 if Port_Cfg.Port in Digital_Port then
99 DDI.Off (Port_Cfg.Port);
100 end if;
Nico Huber83693c82016-10-08 22:17:55 +0200101 end Post_Off;
102
103 ----------------------------------------------------------------------------
104
105 procedure Pre_All_Off
106 is
107 begin
Nico Huber2bbd6e72020-01-07 18:22:59 +0100108 for P in Valid_Panels loop
109 Panel.Backlight_Off (P);
110 Panel.Off (P);
111 end loop;
Nico Huber83693c82016-10-08 22:17:55 +0200112 end Pre_All_Off;
113
114 procedure Post_All_Off
115 is
116 begin
Nico Huberac455ad2017-02-14 14:41:19 +0100117 for Port in Digital_Port range DIGI_A .. Config.Last_Digital_Port loop
Nico Huber83693c82016-10-08 22:17:55 +0200118 DDI.Off (Port);
119 end loop;
Nico Huber83693c82016-10-08 22:17:55 +0200120 end Post_All_Off;
121
122end HW.GFX.GMA.Connectors;