1- from typing import List , NamedTuple , Optional
1+ from typing import List , NamedTuple , Optional , Literal
22
3- from .utils import Voltage , PowerPins , LinearAllocPackageDef
3+ from .utils import Voltage , PowerPins , LinearAllocPackageDef , BringupPins
44
55class OFPin (NamedTuple ):
66 pin : int
@@ -9,7 +9,7 @@ class OFPin(NamedTuple):
99 voltage : Optional [Voltage ] = None
1010 name : Optional [str ] = None
1111
12- OF_GPIO_PINS = [
12+ OF_GPIO = [
1313 OFPin (31 , "gpio" , 0 ), # gpio[31]
1414 OFPin (32 , "gpio" , 1 ), # gpio[32]
1515 OFPin (33 , "gpio" , 2 ), # gpio[33]
@@ -48,17 +48,24 @@ class OFPin(NamedTuple):
4848 OFPin (14 , "gpio" , 35 ), # gpio[14]
4949 OFPin (15 , "gpio" , 36 ), # gpio[15]
5050 OFPin (16 , "gpio" , 37 ), # gpio[16]
51- OFPin (22 , "gpio" , 38 ), # gpio[22]
52- OFPin (24 , "gpio" , 39 ), # gpio[24]
51+ # OFPin(22, "gpio", 38) is assigned as clock
52+ # OFPin(24, "gpio", 39) is assigned as heartbeat
5353 OFPin (25 , "gpio" , 40 ), # gpio[25]
5454 OFPin (26 , "gpio" , 41 ), # gpio[26]
5555 OFPin (27 , "gpio" , 42 ), # gpio[27]
5656 OFPin (28 , "gpio" , 43 ), # gpio[28]
5757]
5858
59+ OF_CLOCK_PIN = OFPin (22 , "gpio" , 38 )
60+ OF_HEARTBEAT_PIN = OFPin (24 , "gpio" , 39 )
5961OF_RESET_PIN = OFPin (21 , "resetbi" )
6062
61- OF_POWER_PINS = [
63+ OF_CORE_POWER = [
64+ (OFPin (18 ,"vcc" , voltage = 1.8 , name = "d" ), # Power, Digital power supply
65+ OFPin (23 ,"vss" , name = "d" )), # Digital power ground
66+ ]
67+
68+ OF_OTHER_POWER = [
6269 (OFPin (30 ,"vdd" , voltage = 3.3 , name = "a" ), # Power, Analog power supply
6370 OFPin (20 ,"vss" , name = "a" )), # Analog power ground
6471
@@ -71,9 +78,6 @@ class OFPin(NamedTuple):
7178 (OFPin (64 ,"vdd" , voltage = 3.3 , name = "io" ), # Power, ESD and padframe power supply
7279 OFPin (56 ,"vss" , name = "io" )), # ESD and padframe ground
7380
74- (OFPin (18 ,"vcc" , voltage = 1.8 , name = "d" ), # Power, Digital power supply
75- OFPin (23 ,"vss" , name = "d" )), # Digital power ground
76-
7781 (OFPin (63 ,"vcc" , voltage = 1.8 , name = "d2" ), # Power, Digital power supply
7882 OFPin (10 ,"vss" , name = "d2" )), # Digital power ground
7983
@@ -87,25 +91,35 @@ class OFPin(NamedTuple):
8791 OFPin (1 ,"vss" , name = "a2" )), # Analog power ground
8892]
8993
90- OF_OTHER_PINS = [
94+ OF_OTHER = [
9195 OFPin (19 , "NC" ) # Not connected
9296]
9397
9498class OpenframePackageDef (LinearAllocPackageDef ):
9599
96100 name : str = "Openframe"
97-
101+ package_type : Literal [ "OpenframePackageDef" ] = "OpenframePackageDef"
98102 def model_post_init (self , __context ):
99- self ._ordered_pins = OF_GPIO_PINS
103+ self ._ordered_pins = OF_GPIO
100104
101105 super ().model_post_init (__context )
102106
103107
104108 @property
105- def power (self ) -> List [PowerPins ]:
109+ def core_power (self ) -> List [PowerPins ]:
106110 pps = []
107- for power , ground in OF_POWER_PINS :
111+
112+ for power , ground in OF_CORE_POWER :
108113 pp = PowerPins (power = power , ground = ground , voltage = power .voltage )
109114 pps .append (pp )
110115
111116 return pps
117+
118+ @property
119+ def bringup_pins (self ) -> BringupPins :
120+ return BringupPins (
121+ core_power = self .core_power ,
122+ core_clock = OF_CLOCK_PIN ,
123+ core_reset = OF_RESET_PIN ,
124+ core_heartbeat = OF_HEARTBEAT_PIN ,
125+ )
0 commit comments