Line 10:
Line 10:
The Hollywood chipset includes 24 general purpose I/O lines with interrupt capability. Two sets of registers are provided, and the Broadway only has access to one set. This set accesses a configurable subset of the IO pins, which the Starlet can select.
The Hollywood chipset includes 24 general purpose I/O lines with interrupt capability. Two sets of registers are provided, and the Broadway only has access to one set. This set accesses a configurable subset of the IO pins, which the Starlet can select.
+
+
== Register list ==
+
{{reglist|Hollywood GPIOs}}
+
{{rla|0x0d8000c0|32|HW_GPIOB_OUT|GPIO Outputs (Broadway access)}}
+
{{rla|0x0d8000c4|32|HW_GPIOB_DIR|GPIO Direction (Broadway access)}}
+
{{rla|0x0d8000c8|32|HW_GPIOB_IN|GPIO Inputs (Broadway access)}}
+
{{rla|0x0d8000cc|32|HW_GPIOB_INTLVL|GPIO Interrupt Levels (Broadway access)}}
+
{{rla|0x0d8000d0|32|HW_GPIOB_INTFLAG|GPIO Interrupt Flags (Broadway access)}}
+
{{rla|0x0d8000d4|32|HW_GPIOB_INTMASK|GPIO Interrupt Masks (Broadway access)}}
+
{{rla|0x0d8000d8|32|HW_GPIOB_INMIR|GPIO Input Mirror (Broadway access)}}
+
{{rla|0x0d8000dc|32|HW_GPIO_ENABLE|GPIO Enable (Starlet only)}}
+
{{rla|0x0d8000e0|32|HW_GPIO_OUT|GPIO Outputs (Starlet only)}}
+
{{rla|0x0d8000e4|32|HW_GPIO_DIR|GPIO Direction (Starlet only)}}
+
{{rla|0x0d8000e8|32|HW_GPIO_IN|GPIO Inputs (Starlet only)}}
+
{{rla|0x0d8000ec|32|HW_GPIO_INTLVL|GPIO Interrupt Levels (Starlet only)}}
+
{{rla|0x0d8000f0|32|HW_GPIO_INTFLAG|GPIO Interrupt Flags (Starlet only)}}
+
{{rla|0x0d8000f4|32|HW_GPIO_INTMASK|GPIO Interrupt Masks (Starlet only)}}
+
{{rla|0x0d8000f8|32|HW_GPIO_INMIR|GPIO Input Mirror (Starlet only)}}
+
{{rla|0x0d8000fc|32|HW_GPIO_OWNER|GPIO Owner Select (Starlet only)}}
+
|}
== Pin connections ==
== Pin connections ==
+
+
"Direction" and "PPC access" are based on typical values that IOS<!--58--> assigns to the HW_GPIO_OWNER and HW_GPIO_DIR registers.
+
{| class="wikitable"
{| class="wikitable"
|-
|-
! Bit
! Bit
+
! Mask
! Direction
! Direction
+
! PPC access
! Connection
! Connection
! Description
! Description
|-
|-
ā
| 0 || IN || POWER || Power button input (pulse width limited; will not detect a held-down state).
+
| 0 || 0x000001 || {{yes|IN}} || {{no}} || POWER || Power button input (pulse width limited; will not detect a held-down state).
|-
|-
ā
| 1 || OUT || SHUTDOWN || Output high to turn system off (Power LED = red).
+
| 1 || 0x000002 || {{no|OUT}} || {{no}} || SHUTDOWN || Output high to turn system off (Power LED = red).
|-
|-
ā
| 2 || OUT || FAN || Fan power, active high.
+
| 2 || 0x000004 || {{no|OUT}} || {{no}} || FAN || Fan power, active high.
|-
|-
ā
| 3 || OUT || DC_DC || DC/DC converter power, active high (powers the Broadway?{{check}}). When off, also triggers the Yellow power LED.
+
| 3 || 0x000008 || {{no|OUT}} || {{no}} || DC_DC || DC/DC converter power, active high (powers the Broadway?{{check}}). When off, also triggers the Yellow power LED.
|-
|-
ā
| 4 || OUT || DI_SPIN || DI spinup disable. If clear, the drive attempts to spin up a disc when reset (if there is one in the drive). If set, the drive ignores a present disc when reset.
+
| 4 || 0x000010 || {{no|OUT}} || {{no}} || DI_SPIN || DI spinup disable. If clear, the drive attempts to spin up a disc when reset (if there is one in the drive). If set, the drive ignores a present disc when reset.
|-
|-
ā
| 5 || OUT || SLOT_LED || Blue disc slot LED, active high.
+
| 5 || 0x000020 || {{no|OUT}} || {{yes}} || SLOT_LED || Blue disc slot LED, active high.
|-
|-
ā
| 6 || IN || EJECT_BTN || Eject button (pulse width limited). Button press will also trigger the drive directly.
+
| 6 || 0x000040 || {{yes|IN}} || {{no}} || EJECT_BTN || Eject button (pulse width limited). Button press will also trigger the drive directly.
|-
|-
ā
| 7 || IN || SLOT_IN || Disc slot optical detector. High if disc in drive, disc being inserted, or disc still in slot after eject.
+
| 7 || 0x000080 || {{yes|IN}} || {{yes}} || SLOT_IN || Disc slot optical detector. High if disc in drive, disc being inserted, or disc still in slot after eject. Temporarily low when inserting or exiting when the hole in the middle of the disc passes above the sensor.
|-
|-
ā
| 8 || OUT || SENSOR_BAR || Sensor bar, active high.
+
| 8 || 0x000100 || {{no|OUT}} || {{yes}} || SENSOR_BAR || Sensor bar, active high.
|-
|-
ā
| 9 || OUT || DO_EJECT || Pulse high to trigger a DI eject from software.
+
| 9 || 0x000200 || {{no|OUT}} || {{yes}} || DO_EJECT || Pulse high to trigger a DI eject from software.
|-
|-
ā
| 10 || OUT || EEP_CS || [[Hardware/SEEPROM|SEEPROM]] Chip Select.
+
| 10 || 0x000400 || {{no|OUT}} || {{no}} || EEP_CS || [[Hardware/SEEPROM|SEEPROM]] Chip Select.
|-
|-
ā
| 11 || OUT || EEP_CLK || [[Hardware/SEEPROM|SEEPROM]] Clock.
+
| 11 || 0x000800 || {{no|OUT}} || {{no}} || EEP_CLK || [[Hardware/SEEPROM|SEEPROM]] Clock.
|-
|-
ā
| 12 || OUT || EEP_MOSI || Data to [[Hardware/SEEPROM|SEEPROM]].
+
| 12 || 0x001000 || {{no|OUT}} || {{no}} || EEP_MOSI || Data to [[Hardware/SEEPROM|SEEPROM]].
|-
|-
ā
| 13 || IN || EEP_MISO || Data from [[Hardware/SEEPROM|SEEPROM]].
+
| 13 || 0x002000 || {{yes|IN}} || {{no}} || EEP_MISO || Data from [[Hardware/SEEPROM|SEEPROM]].
|-
|-
ā
| 14 || OUT || AVE_SCL || [[Hardware/AV Encoder|A/V Encoder]] I²C Clock.
+
| 14 || 0x004000 || {{no|OUT}} || {{yes}} || AVE_SCL || [[Hardware/AV Encoder|A/V Encoder]] I²C Clock.
|-
|-
ā
| 15 || I/O || AVE_SDA || [[Hardware/AV Encoder|A/V Encoder]] I²C Data (has an external pull-up, so you should only drive it low).
+
| 15 || 0x008000 || {{no|I/O}} || {{yes}} || AVE_SDA || [[Hardware/AV Encoder|A/V Encoder]] I²C Data (has an external pull-up, so you should only drive it low).
|-
|-
ā
| 16 || OUT || DEBUG0 || [[Debug port|Debug Testpoint]] TP221.
+
| 16 || 0x010000 || {{no|OUT}} || {{no}} || DEBUG0 || [[Debug port|Debug Testpoint]] TP221.
|-
|-
ā
| 17 || OUT || DEBUG1 || [[Debug port|Debug Testpoint]] TP222.
+
| 17 || 0x020000 || {{no|OUT}} || {{no}} || DEBUG1 || [[Debug port|Debug Testpoint]] TP222.
|-
|-
ā
| 18 || OUT || DEBUG2 || [[Debug port|Debug Testpoint]] TP223.
+
| 18 || 0x040000 || {{no|OUT}} || {{no}} || DEBUG2 || [[Debug port|Debug Testpoint]] TP223.
|-
|-
ā
| 19 || OUT || DEBUG3 || [[Debug port|Debug Testpoint]] TP224.
+
| 19 || 0x080000 || {{no|OUT}} || {{no}} || DEBUG3 || [[Debug port|Debug Testpoint]] TP224.
|-
|-
ā
| 20 || OUT || DEBUG4 || [[Debug port|Debug Testpoint]] TP225.
+
| 20 || 0x100000 || {{no|OUT}} || {{no}} || DEBUG4 || [[Debug port|Debug Testpoint]] TP225.
|-
|-
ā
| 21 || OUT || DEBUG5 || [[Debug port|Debug Testpoint]] TP226.
+
| 21 || 0x200000 || {{no|OUT}} || {{no}} || DEBUG5 || [[Debug port|Debug Testpoint]] TP226.
|-
|-
ā
| 22 || OUT || DEBUG6 || [[Debug port|Debug Testpoint]] TP219.
+
| 22 || 0x400000 || {{no|OUT}} || {{no}} || DEBUG6 || [[Debug port|Debug Testpoint]] TP219.
|-
|-
ā
| 23 || OUT || DEBUG7 || [[Debug port|Debug Testpoint]] TP220.
+
| 23 || 0x800000 || {{no|OUT}} || {{no}} || DEBUG7 || [[Debug port|Debug Testpoint]] TP220.
ā
|}
ā
ā
== Register list ==
ā
{{reglist|Hollywood GPIOs}}
ā
{{rla|0x0d8000c0|32|HW_GPIOB_OUT|GPIO Outputs (Broadway access)}}
ā
{{rla|0x0d8000c4|32|HW_GPIOB_DIR|GPIO Direction (Broadway access)}}
ā
{{rla|0x0d8000c8|32|HW_GPIOB_IN|GPIO Inputs (Broadway access)}}
ā
{{rla|0x0d8000cc|32|HW_GPIOB_INTLVL|GPIO Interrupt Levels (Broadway access)}}
ā
{{rla|0x0d8000d0|32|HW_GPIOB_INTFLAG|GPIO Interrupt Flags (Broadway access)}}
ā
{{rla|0x0d8000d4|32|HW_GPIOB_INTMASK|GPIO Interrupt Masks (Broadway access)}}
ā
{{rla|0x0d8000d8|32|HW_GPIOB_INMIR|GPIO Input Mirror (Broadway access)}}
ā
{{rla|0x0d8000dc|32|HW_GPIO_ENABLE|GPIO Enable (Starlet only)}}
ā
{{rla|0x0d8000e0|32|HW_GPIO_OUT|GPIO Outputs (Starlet only)}}
ā
{{rla|0x0d8000e4|32|HW_GPIO_DIR|GPIO Direction (Starlet only)}}
ā
{{rla|0x0d8000e8|32|HW_GPIO_IN|GPIO Inputs (Starlet only)}}
ā
{{rla|0x0d8000ec|32|HW_GPIO_INTLVL|GPIO Interrupt Levels (Starlet only)}}
ā
{{rla|0x0d8000f0|32|HW_GPIO_INTFLAG|GPIO Interrupt Flags (Starlet only)}}
ā
{{rla|0x0d8000f4|32|HW_GPIO_INTMASK|GPIO Interrupt Masks (Starlet only)}}
ā
{{rla|0x0d8000f8|32|HW_GPIO_INMIR|GPIO Input Mirror (Starlet only)}}
ā
{{rla|0x0d8000fc|32|HW_GPIO_OWNER|GPIO Owner Select (Starlet only)}}
|}
|}