@@ -597,6 +597,30 @@ void RK35_SerialNumber(void)
597597
598598static void RK35_setup ()
599599{
600+ FILE *fp = fopen (" /sys/firmware/devicetree/base/model" , " r" );
601+
602+ if (fp == NULL )
603+ {
604+ perror (" /sys/firmware/devicetree/base/model" );
605+ exit (EXIT_FAILURE );
606+ }
607+
608+ char value[80 ];
609+
610+ if (fgets (value, sizeof (value), fp) != NULL )
611+ {
612+ if (strncmp (value, " Luckfox Lyra Zero W" , sizeof (value)) == 0 ||
613+ strncmp (value, " Luckfox Lyra Zero" , sizeof (value)) == 0 ) {
614+ RK35_board = RK35_LUCKFOX_LYRA_ZW ;
615+ RK35_hat = RK35_WAVESHARE_HAT_LORA_GNSS ;
616+ } else if (strncmp (value, " Luckfox Lyra Plus" , sizeof (value)) == 0 ||
617+ strncmp (value, " Luckfox Lyra" , sizeof (value)) == 0 ) {
618+ RK35_board = RK35_LUCKFOX_LYRA_B ;
619+ }
620+ }
621+
622+ fclose (fp);
623+
600624#if defined(EXCLUDE_EEPROM)
601625 eeprom_block.field .magic = SOFTRF_EEPROM_MAGIC ;
602626 eeprom_block.field .version = SOFTRF_EEPROM_VERSION ;
@@ -632,9 +656,30 @@ static void RK35_setup()
632656
633657 RK35_SerialNumber ();
634658
635- #if defined(USE_RADIOLIB)
636- lmic_pins.dio [0 ] = SOC_GPIO_PIN_DIO0 ;
637- #endif /* USE_RADIOLIB */
659+ switch (RK35_board)
660+ {
661+ case RK35_LUCKFOX_LYRA_ZW :
662+ lmic_pins.nss = SOC_GPIO_PIN_HAT_SS ;
663+ lmic_pins.rst = SOC_GPIO_PIN_HAT_RST ;
664+ lmic_pins.busy = SOC_GPIO_PIN_HAT_BUSY ;
665+ #if defined(USE_RADIOLIB) || defined(USE_RADIOHEAD)
666+ lmic_pins.dio [0 ] = SOC_GPIO_PIN_HAT_DIO ;
667+ #endif /* USE_RADIOLIB || USE_RADIOHEAD */
668+ break ;
669+ case RK35_LUCKFOX_LYRA_B :
670+ default :
671+ lmic_pins.nss = SOC_GPIO_PIN_SS ;
672+ lmic_pins.rst = SOC_GPIO_PIN_RST ;
673+ lmic_pins.busy = SOC_GPIO_PIN_BUSY ;
674+ #if defined(USE_RADIOLIB) || defined(USE_RADIOHEAD)
675+ lmic_pins.dio [0 ] = SOC_GPIO_PIN_DIO0 ;
676+ #endif /* USE_RADIOLIB || USE_RADIOHEAD */
677+ break ;
678+ }
679+
680+ if (RK35_hat == RK35_WAVESHARE_HAT_LORA_GNSS ) {
681+ lmic_pins.tcxo = lmic_pins.rst ; /* SX1262 with XTAL */
682+ }
638683}
639684
640685static void RK35_post_init ()
0 commit comments