@@ -588,134 +588,135 @@ impl Hardware {
588588 }
589589 } ;
590590
591+ let pins = Pins {
592+ // Disable power save mode to force SMPS into low-efficiency, low-noise mode.
593+ npower_save : {
594+ let mut pin = hal_pins. b_power_save . into_push_pull_output ( ) ;
595+ pin. set_high ( ) . unwrap ( ) ;
596+ pin
597+ } ,
598+ // Give H-Sync, V-Sync and 12 RGB colour pins to PIO0 to output video
599+ h_sync : {
600+ let mut pin = hal_pins. gpio0 . into_mode ( ) ;
601+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
602+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
603+ pin
604+ } ,
605+ v_sync : {
606+ let mut pin = hal_pins. gpio1 . into_mode ( ) ;
607+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
608+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
609+ pin
610+ } ,
611+ red0 : {
612+ let mut pin = hal_pins. gpio2 . into_mode ( ) ;
613+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
614+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
615+ pin
616+ } ,
617+ red1 : {
618+ let mut pin = hal_pins. gpio3 . into_mode ( ) ;
619+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
620+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
621+ pin
622+ } ,
623+ red2 : {
624+ let mut pin = hal_pins. gpio4 . into_mode ( ) ;
625+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
626+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
627+ pin
628+ } ,
629+ red3 : {
630+ let mut pin = hal_pins. gpio5 . into_mode ( ) ;
631+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
632+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
633+ pin
634+ } ,
635+ green0 : {
636+ let mut pin = hal_pins. gpio6 . into_mode ( ) ;
637+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
638+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
639+ pin
640+ } ,
641+ green1 : {
642+ let mut pin = hal_pins. gpio7 . into_mode ( ) ;
643+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
644+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
645+ pin
646+ } ,
647+ green2 : {
648+ let mut pin = hal_pins. gpio8 . into_mode ( ) ;
649+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
650+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
651+ pin
652+ } ,
653+ green3 : {
654+ let mut pin = hal_pins. gpio9 . into_mode ( ) ;
655+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
656+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
657+ pin
658+ } ,
659+ blue0 : {
660+ let mut pin = hal_pins. gpio10 . into_mode ( ) ;
661+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
662+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
663+ pin
664+ } ,
665+ blue1 : {
666+ let mut pin = hal_pins. gpio11 . into_mode ( ) ;
667+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
668+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
669+ pin
670+ } ,
671+ blue2 : {
672+ let mut pin = hal_pins. gpio12 . into_mode ( ) ;
673+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
674+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
675+ pin
676+ } ,
677+ blue3 : {
678+ let mut pin = hal_pins. gpio13 . into_mode ( ) ;
679+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
680+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
681+ pin
682+ } ,
683+ spi_cipo : {
684+ let mut pin = hal_pins. gpio16 . into_mode ( ) ;
685+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
686+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
687+ pin
688+ } ,
689+ nspi_cs_io : {
690+ let mut pin = hal_pins. gpio17 . into_push_pull_output ( ) ;
691+ pin. set_high ( ) . unwrap ( ) ;
692+ pin
693+ } ,
694+ spi_clk : {
695+ let mut pin = hal_pins. gpio18 . into_mode ( ) ;
696+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
697+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
698+ pin
699+ } ,
700+ spi_copi : {
701+ let mut pin = hal_pins. gpio19 . into_mode ( ) ;
702+ pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
703+ pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
704+ pin
705+ } ,
706+ noutput_en : {
707+ let mut pin = hal_pins. gpio21 . into_push_pull_output ( ) ;
708+ pin. set_high ( ) . unwrap ( ) ;
709+ pin
710+ } ,
711+ i2s_adc_data : hal_pins. gpio22 . into_mode ( ) ,
712+ i2s_dac_data : hal_pins. gpio26 . into_mode ( ) ,
713+ i2s_bit_clock : hal_pins. gpio27 . into_mode ( ) ,
714+ i2s_lr_clock : hal_pins. gpio28 . into_mode ( ) ,
715+ } ;
716+
591717 (
592718 Hardware {
593- pins : Pins {
594- // Disable power save mode to force SMPS into low-efficiency, low-noise mode.
595- npower_save : {
596- let mut pin = hal_pins. b_power_save . into_push_pull_output ( ) ;
597- pin. set_high ( ) . unwrap ( ) ;
598- pin
599- } ,
600- // Give H-Sync, V-Sync and 12 RGB colour pins to PIO0 to output video
601- h_sync : {
602- let mut pin = hal_pins. gpio0 . into_mode ( ) ;
603- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
604- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
605- pin
606- } ,
607- v_sync : {
608- let mut pin = hal_pins. gpio1 . into_mode ( ) ;
609- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
610- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
611- pin
612- } ,
613- red0 : {
614- let mut pin = hal_pins. gpio2 . into_mode ( ) ;
615- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
616- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
617- pin
618- } ,
619- red1 : {
620- let mut pin = hal_pins. gpio3 . into_mode ( ) ;
621- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
622- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
623- pin
624- } ,
625- red2 : {
626- let mut pin = hal_pins. gpio4 . into_mode ( ) ;
627- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
628- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
629- pin
630- } ,
631- red3 : {
632- let mut pin = hal_pins. gpio5 . into_mode ( ) ;
633- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
634- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
635- pin
636- } ,
637- green0 : {
638- let mut pin = hal_pins. gpio6 . into_mode ( ) ;
639- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
640- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
641- pin
642- } ,
643- green1 : {
644- let mut pin = hal_pins. gpio7 . into_mode ( ) ;
645- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
646- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
647- pin
648- } ,
649- green2 : {
650- let mut pin = hal_pins. gpio8 . into_mode ( ) ;
651- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
652- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
653- pin
654- } ,
655- green3 : {
656- let mut pin = hal_pins. gpio9 . into_mode ( ) ;
657- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
658- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
659- pin
660- } ,
661- blue0 : {
662- let mut pin = hal_pins. gpio10 . into_mode ( ) ;
663- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
664- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
665- pin
666- } ,
667- blue1 : {
668- let mut pin = hal_pins. gpio11 . into_mode ( ) ;
669- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
670- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
671- pin
672- } ,
673- blue2 : {
674- let mut pin = hal_pins. gpio12 . into_mode ( ) ;
675- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
676- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
677- pin
678- } ,
679- blue3 : {
680- let mut pin = hal_pins. gpio13 . into_mode ( ) ;
681- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
682- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
683- pin
684- } ,
685- spi_cipo : {
686- let mut pin = hal_pins. gpio16 . into_mode ( ) ;
687- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
688- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
689- pin
690- } ,
691- nspi_cs_io : {
692- let mut pin = hal_pins. gpio17 . into_push_pull_output ( ) ;
693- pin. set_high ( ) . unwrap ( ) ;
694- pin
695- } ,
696- spi_clk : {
697- let mut pin = hal_pins. gpio18 . into_mode ( ) ;
698- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
699- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
700- pin
701- } ,
702- spi_copi : {
703- let mut pin = hal_pins. gpio19 . into_mode ( ) ;
704- pin. set_drive_strength ( hal:: gpio:: OutputDriveStrength :: EightMilliAmps ) ;
705- pin. set_slew_rate ( hal:: gpio:: OutputSlewRate :: Fast ) ;
706- pin
707- } ,
708- noutput_en : {
709- let mut pin = hal_pins. gpio21 . into_push_pull_output ( ) ;
710- pin. set_high ( ) . unwrap ( ) ;
711- pin
712- } ,
713- i2s_adc_data : hal_pins. gpio22 . into_mode ( ) ,
714- i2s_dac_data : hal_pins. gpio26 . into_mode ( ) ,
715- i2s_bit_clock : hal_pins. gpio27 . into_mode ( ) ,
716- i2s_lr_clock : hal_pins. gpio28 . into_mode ( ) ,
717- } ,
718-
719+ pins,
719720 // We are in SPI MODE 0. This means we change the COPI pin on the
720721 // CLK falling edge, and we sample the CIPO pin on the CLK rising
721722 // edge.
0 commit comments