From ea11431b171fe1071b9cc13274685c30eca01faf Mon Sep 17 00:00:00 2001 From: robert-hh Date: Sat, 15 Jul 2023 16:28:03 +0200 Subject: [PATCH 1/3] samd: Swap the fields in pins.csv. Making it compatible to the other ports. Signed-off-by: robert-hh --- .../ADAFRUIT_FEATHER_M0_EXPRESS/pins.csv | 78 +++++----- .../ADAFRUIT_FEATHER_M4_EXPRESS/pins.csv | 80 +++++----- .../ADAFRUIT_ITSYBITSY_M0_EXPRESS/pins.csv | 74 ++++----- .../ADAFRUIT_ITSYBITSY_M4_EXPRESS/pins.csv | 80 +++++----- .../boards/ADAFRUIT_METRO_M4_EXPRESS/pins.csv | 128 ++++++++-------- .../samd/boards/ADAFRUIT_TRINKET_M0/pins.csv | 32 ++-- ports/samd/boards/MINISAM_M4/pins.csv | 76 +++++----- .../samd/boards/SAMD21_XPLAINED_PRO/pins.csv | 103 ++++++------- ports/samd/boards/SEEED_WIO_TERMINAL/pins.csv | 142 +++++++++--------- ports/samd/boards/SEEED_XIAO_SAMD21/pins.csv | 44 +++--- .../SPARKFUN_SAMD51_THING_PLUS/pins.csv | 74 ++++----- ports/samd/boards/make-pin-table.py | 12 +- 12 files changed, 454 insertions(+), 469 deletions(-) diff --git a/ports/samd/boards/ADAFRUIT_FEATHER_M0_EXPRESS/pins.csv b/ports/samd/boards/ADAFRUIT_FEATHER_M0_EXPRESS/pins.csv index 65362770624de..9ee1c256d9032 100644 --- a/ports/samd/boards/ADAFRUIT_FEATHER_M0_EXPRESS/pins.csv +++ b/ports/samd/boards/ADAFRUIT_FEATHER_M0_EXPRESS/pins.csv @@ -1,43 +1,43 @@ -# Pin rows contain Pin number and pin name. -# Pin rows start with PIN_ -# If the pin name is omitted, the pin number is added as name. -# Empty lines and lines starting with # are ignored +# The lines contain pairs of Pin name and Pin number. +# Pin names must be valid Python identifiers. +# Pin numbers have the form PIN_Pxnn, with x being A, B, C or D. +# Lines starting with # or empty lines are ignored. -PIN_PA27,LED_TX -PIN_PB03,LED_RX +LED_TX,PIN_PA27 +LED_RX,PIN_PB03 -PIN_PA11,D0 -PIN_PA10,D1 -PIN_PA08,FLASH_MOSI -PIN_PA14,FLASH_MISO -PIN_PA09,FLASH_SCK -PIN_PA15,D5 -PIN_PA20,D6 -PIN_PA21,D7 -PIN_PA06,D8 -PIN_PA07,D9 -PIN_PA18,D10 -PIN_PA16,D11 -PIN_PA19,D12 -PIN_PA17,D13 -PIN_PA02,A0 -PIN_PB08,A1 -PIN_PB09,A2 -PIN_PA04,A3 -PIN_PA05,A4 -PIN_PB02,A5 -PIN_PB22,TX -PIN_PB23,RX -PIN_PA23,SCL -PIN_PA22,SDA -PIN_PB10,MOSI -PIN_PA12,MISO -PIN_PB11,SCK -PIN_PA06,NEOPIXEL -PIN_PA13,FLASH_CS +D0,PIN_PA11 +D1,PIN_PA10 +FLASH_MOSI,PIN_PA08 +FLASH_MISO,PIN_PA14 +FLASH_SCK,PIN_PA09 +D5,PIN_PA15 +D6,PIN_PA20 +D7,PIN_PA21 +D8,PIN_PA06 +D9,PIN_PA07 +D10,PIN_PA18 +D11,PIN_PA16 +D12,PIN_PA19 +D13,PIN_PA17 +A0,PIN_PA02 +A1,PIN_PB08 +A2,PIN_PB09 +A3,PIN_PA04 +A4,PIN_PA05 +A5,PIN_PB02 +TX,PIN_PB22 +RX,PIN_PB23 +SCL,PIN_PA23 +SDA,PIN_PA22 +MOSI,PIN_PB10 +MISO,PIN_PA12 +SCK,PIN_PB11 +NEOPIXEL,PIN_PA06 +FLASH_CS,PIN_PA13 -PIN_PA24,USB_DM -PIN_PA25,USB_DP +USB_DM,PIN_PA24 +USB_DP,PIN_PA25 -PIN_PA30,SWCLK -PIN_PA31,SWDIO +SWCLK,PIN_PA30 +SWDIO,PIN_PA31 diff --git a/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/pins.csv b/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/pins.csv index df3373f246a84..27e42f072e720 100644 --- a/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/pins.csv +++ b/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/pins.csv @@ -1,44 +1,44 @@ -# Pin rows contain Pin number and pin name. -# Pin rows start with PIN_ -# If the pin name is omitted, the pin number is added as name. -# Empty lines and lines not starting with PIN_ are ignored +# The lines contain pairs of Pin name and Pin number. +# Pin names must be valid Python identifiers. +# Pin numbers have the form PIN_Pxnn, with x being A, B, C or D. +# Lines starting with # or empty lines are ignored. -PIN_PB17,D0 -PIN_PB16,D1 -PIN_PA14,D4 -PIN_PA16,D5 -PIN_PA18,D6 -PIN_PB03,D8 -PIN_PA19,D9 -PIN_PA20,D10 -PIN_PA21,D11 -PIN_PA22,D12 -PIN_PA23,D13 -PIN_PA02,A0 -PIN_PA05,A1 -PIN_PB08,A2 -PIN_PB09,A3 -PIN_PA04,A4 -PIN_PB06,A5 -PIN_PA13,SCL -PIN_PA12,SDA -PIN_PB23,MOSI -PIN_PB22,MISO -PIN_PA17,SCK -PIN_PB01,VDIV -PIN_PA03,AREF -PIN_PB03,NEOPIXEL +D0,PIN_PB17 +D1,PIN_PB16 +D4,PIN_PA14 +D5,PIN_PA16 +D6,PIN_PA18 +D8,PIN_PB03 +D9,PIN_PA19 +D10,PIN_PA20 +D11,PIN_PA21 +D12,PIN_PA22 +D13,PIN_PA23 +A0,PIN_PA02 +A1,PIN_PA05 +A2,PIN_PB08 +A3,PIN_PB09 +A4,PIN_PA04 +A5,PIN_PB06 +SCL,PIN_PA13 +SDA,PIN_PA12 +MOSI,PIN_PB23 +MISO,PIN_PB22 +SCK,PIN_PA17 +VDIV,PIN_PB01 +AREF,PIN_PA03 +NEOPIXEL,PIN_PB03 -PIN_PB11,QSPI_CS -PIN_PB10,QSPI_SCK -PIN_PA08,QSPI_D0 -PIN_PA09,QSPI_D1 -PIN_PA10,QSPI_D2 -PIN_PA11,QSPI_D3 +QSPI_CS,PIN_PB11 +QSPI_SCK,PIN_PB10 +QSPI_D0,PIN_PA08 +QSPI_D1,PIN_PA09 +QSPI_D2,PIN_PA10 +QSPI_D3,PIN_PA11 -PIN_PA24,USB_DM -PIN_PA25,USB_DP -PIN_PA26,USB_SOF +USB_DM,PIN_PA24 +USB_DP,PIN_PA25 +USB_SOF,PIN_PA26 -PIN_PA30,SWCLK -PIN_PA31,SWDIO +SWCLK,PIN_PA30 +SWDIO,PIN_PA31 diff --git a/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/pins.csv b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/pins.csv index 04b1a717bd2cd..d5fc6cf697be4 100644 --- a/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/pins.csv +++ b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/pins.csv @@ -1,40 +1,40 @@ -# Pin rows contain Pin number and pin name. -# Pin rows start with PIN_ -# If the pin name is omitted, the pin number is added as name. -# Empty lines and lines not starting with PIN_ are ignored +# The lines contain pairs of Pin name and Pin number. +# Pin names must be valid Python identifiers. +# Pin numbers have the form PIN_Pxnn, with x being A, B, C or D. +# Lines starting with # or empty lines are ignored. -PIN_PA11,D0 -PIN_PA10,D1 -PIN_PA14,D2 -PIN_PA09,D3 -PIN_PA08,D4 -PIN_PA15,D5 -PIN_PA21,D7 -PIN_PA07,D9 -PIN_PA18,D10 -PIN_PA16,D11 -PIN_PA19,D12 -PIN_PA17,D13 -PIN_PA02,A0 -PIN_PB08,A1 -PIN_PB09,A2 -PIN_PA04,A3 -PIN_PA05,A4 -PIN_PB02,A5 -PIN_PA22,SDA -PIN_PA23,SCL -PIN_PB10,MOSI -PIN_PA12,MISO -PIN_PB11,SCK -PIN_PA00,DOTSTAR_CLK -PIN_PA01,DOTSTAR_DATA -PIN_PB22,FLASH_MOSI -PIN_PB03,FLASH_MISO -PIN_PB23,FLASH_SCK -PIN_PA27,FLASH_CS +D0,PIN_PA11 +D1,PIN_PA10 +D2,PIN_PA14 +D3,PIN_PA09 +D4,PIN_PA08 +D5,PIN_PA15 +D7,PIN_PA21 +D9,PIN_PA07 +D10,PIN_PA18 +D11,PIN_PA16 +D12,PIN_PA19 +D13,PIN_PA17 +A0,PIN_PA02 +A1,PIN_PB08 +A2,PIN_PB09 +A3,PIN_PA04 +A4,PIN_PA05 +A5,PIN_PB02 +SDA,PIN_PA22 +SCL,PIN_PA23 +MOSI,PIN_PB10 +MISO,PIN_PA12 +SCK,PIN_PB11 +DOTSTAR_CLK,PIN_PA00 +DOTSTAR_DATA,PIN_PA01 +FLASH_MOSI,PIN_PB22 +FLASH_MISO,PIN_PB03 +FLASH_SCK,PIN_PB23 +FLASH_CS,PIN_PA27 -PIN_PA24,USB_DM -PIN_PA25,USB_DP +USB_DM,PIN_PA24 +USB_DP,PIN_PA25 -PIN_PA30,SWCLK -PIN_PA31,SWDIO +SWCLK,PIN_PA30 +SWDIO,PIN_PA31 diff --git a/ports/samd/boards/ADAFRUIT_ITSYBITSY_M4_EXPRESS/pins.csv b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M4_EXPRESS/pins.csv index b63a1f4b13554..0f24d578e0889 100644 --- a/ports/samd/boards/ADAFRUIT_ITSYBITSY_M4_EXPRESS/pins.csv +++ b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M4_EXPRESS/pins.csv @@ -1,44 +1,44 @@ -# Pin rows contain Pin number and pin name. -# Pin rows start with PIN_ -# If the pin name is omitted, the pin number is added as name. -# Empty lines and lines not starting with PIN_ are ignored +# The lines contain pairs of Pin name and Pin number. +# Pin names must be valid Python identifiers. +# Pin numbers have the form PIN_Pxnn, with x being A, B, C or D. +# Lines starting with # or empty lines are ignored. -PIN_PA16,D0 -PIN_PA17,D1 -PIN_PA07,D2 -PIN_PB22,D3 -PIN_PA14,D4 -PIN_PA15,D5 -PIN_PA18,D7 -PIN_PA19,D9 -PIN_PA20,D10 -PIN_PA21,D11 -PIN_PA23,D12 -PIN_PA22,D13 -PIN_PA02,A0 -PIN_PA05,A1 -PIN_PB08,A2 -PIN_PB09,A3 -PIN_PA04,A4 -PIN_PA06,A5 -PIN_PA12,SDA -PIN_PA13,SCL -PIN_PA00,MOSI -PIN_PB23,MISO -PIN_PA01,SCK -PIN_PB02,DOTSTAR_CLK -PIN_PB03,DOTSTAR_DATA +D0,PIN_PA16 +D1,PIN_PA17 +D2,PIN_PA07 +D3,PIN_PB22 +D4,PIN_PA14 +D5,PIN_PA15 +D7,PIN_PA18 +D9,PIN_PA19 +D10,PIN_PA20 +D11,PIN_PA21 +D12,PIN_PA23 +D13,PIN_PA22 +A0,PIN_PA02 +A1,PIN_PA05 +A2,PIN_PB08 +A3,PIN_PB09 +A4,PIN_PA04 +A5,PIN_PA06 +SDA,PIN_PA12 +SCL,PIN_PA13 +MOSI,PIN_PA00 +MISO,PIN_PB23 +SCK,PIN_PA01 +DOTSTAR_CLK,PIN_PB02 +DOTSTAR_DATA,PIN_PB03 -PIN_PB11,QSPI_CS -PIN_PB10,QSPI_SCK -PIN_PA08,QSPI_D0 -PIN_PA09,QSPI_D1 -PIN_PA10,QSPI_D2 -PIN_PA11,QSPI_D3 +QSPI_CS,PIN_PB11 +QSPI_SCK,PIN_PB10 +QSPI_D0,PIN_PA08 +QSPI_D1,PIN_PA09 +QSPI_D2,PIN_PA10 +QSPI_D3,PIN_PA11 -PIN_PA24,USB_DM -PIN_PA25,USB_DP -PIN_PA26,USB_SOF +USB_DM,PIN_PA24 +USB_DP,PIN_PA25 +USB_SOF,PIN_PA26 -PIN_PA30,SWCLK -PIN_PA31,SWDIO +SWCLK,PIN_PA30 +SWDIO,PIN_PA31 diff --git a/ports/samd/boards/ADAFRUIT_METRO_M4_EXPRESS/pins.csv b/ports/samd/boards/ADAFRUIT_METRO_M4_EXPRESS/pins.csv index 0bda767600e12..0cdb39e57cee7 100644 --- a/ports/samd/boards/ADAFRUIT_METRO_M4_EXPRESS/pins.csv +++ b/ports/samd/boards/ADAFRUIT_METRO_M4_EXPRESS/pins.csv @@ -1,66 +1,62 @@ -# Pin rows contain Pin number and pin name. -# Pin rows start with PIN_ -# If the pin name is omitted, the pin number is added as name. -# Empty lines and lines not starting with PIN_ are ignored - -PIN_PA02,A0 -PIN_PA05,A1 -PIN_PA06,A2 -PIN_PB00,A3 -PIN_PB08,A4 -PIN_PB09,A5 -PIN_PA03,AREF - -PIN_PA23,D0 -PIN_PA22,D1 -PIN_PB17,D2 -PIN_PB16,D3 -PIN_PB13,D4 -PIN_PB14,D5 -PIN_PB15,D6 -PIN_PB12,D7 -PIN_PA21,D8 -PIN_PA20,D9 -PIN_PA18,D10 -PIN_PA19,D11 -PIN_PA17,D12 -PIN_PA16,D13 - -PIN_PB02,SDA -PIN_PB03,SCL - -PIN_PA13,SCK -PIN_PA12,MOSI -PIN_PA14,MISO - -PIN_PB22,NEOPIXEL -PIN_PB06,RXLED -PIN_PB07,TXLED - -# Airlift -PIN_PB05,ESP_RESET -PIN_PB04,ESP_BUSY -PIN_PA15,ESP_CS -PIN_PB01,ESP_GPIO0 -PIN_PA07,ESP_RX -PIN_PA04,ESP_TX -PIN_PB23,ESP_RTS - -# QSPI flash -PIN_PA08,FLASH_MOSI -PIN_PA09,FLASH_MISO -PIN_PA10,FLASH_WP -PIN_PA11,FLASH_HOLD -PIN_PB10,FLASH_SCK -PIN_PB11,FLASH_CS - -# USB -PIN_PA24,USB_DM -PIN_PA25,USB_DP -PIN_PA26,USB_SOF -PIN_PA17,USB_HOSTEN - -# JLink -PIN_PA30,SWCLK -PIN_PA31,SWDIO -PIN_PB30,SWO +# The lines contain pairs of Pin name and Pin number. +# Pin names must be valid Python identifiers. +# Pin numbers have the form PIN_Pxnn, with x being A, B, C or D. +# Lines starting with # or empty lines are ignored. + +A0,PIN_PA02 +A1,PIN_PA05 +A2,PIN_PA06 +A3,PIN_PB00 +A4,PIN_PB08 +A5,PIN_PB09 +AREF,PIN_PA03 + +D0,PIN_PA23 +D1,PIN_PA22 +D2,PIN_PB17 +D3,PIN_PB16 +D4,PIN_PB13 +D5,PIN_PB14 +D6,PIN_PB15 +D7,PIN_PB12 +D8,PIN_PA21 +D9,PIN_PA20 +D10,PIN_PA18 +D11,PIN_PA19 +D12,PIN_PA17 +D13,PIN_PA16 + +SDA,PIN_PB02 +SCL,PIN_PB03 + +SCK,PIN_PA13 +MOSI,PIN_PA12 +MISO,PIN_PA14 + +NEOPIXEL,PIN_PB22 +RXLED,PIN_PB06 +TXLED,PIN_PB07 + +ESP_RESET,PIN_PB05 +ESP_BUSY,PIN_PB04 +ESP_CS,PIN_PA15 +ESP_GPIO0,PIN_PB01 +ESP_RX,PIN_PA07 +ESP_TX,PIN_PA04 +ESP_RTS,PIN_PB23 + +FLASH_MOSI,PIN_PA08 +FLASH_MISO,PIN_PA09 +FLASH_WP,PIN_PA10 +FLASH_HOLD,PIN_PA11 +FLASH_SCK,PIN_PB10 +FLASH_CS,PIN_PB11 + +USB_DM,PIN_PA24 +USB_DP,PIN_PA25 +USB_SOF,PIN_PA26 +USB_HOSTEN,PIN_PA17 + +SWCLK,PIN_PA30 +SWDIO,PIN_PA31 +SWO,PIN_PB30 diff --git a/ports/samd/boards/ADAFRUIT_TRINKET_M0/pins.csv b/ports/samd/boards/ADAFRUIT_TRINKET_M0/pins.csv index b5f1c9801b154..25d730870608a 100644 --- a/ports/samd/boards/ADAFRUIT_TRINKET_M0/pins.csv +++ b/ports/samd/boards/ADAFRUIT_TRINKET_M0/pins.csv @@ -1,20 +1,20 @@ -# Pin rows contain Pin number and pin name. -# Pin rows start with PIN_ -# If the pin name is omitted, the pin number is added as name. -# Empty lines and lines not starting with PIN_ are ignored +# The lines contain pairs of Pin name and Pin number. +# Pin names must be valid Python identifiers. +# Pin numbers have the form PIN_Pxnn, with x being A, B, C or D. +# Lines starting with # or empty lines are ignored. -PIN_PA08,D0 -PIN_PA02,D1 -PIN_PA09,D2 -PIN_PA07,D3 -PIN_PA06,D4 -PIN_PA00,DOTSTAR_DATA -PIN_PA01,DOTSTAR_CLK +D0,PIN_PA08 +D1,PIN_PA02 +D2,PIN_PA09 +D3,PIN_PA07 +D4,PIN_PA06 +DOTSTAR_DATA,PIN_PA00 +DOTSTAR_CLK,PIN_PA01 -PIN_PA10,LED +LED,PIN_PA10 -PIN_PA24,USB_DM -PIN_PA25,USB_DP +USB_DM,PIN_PA24 +USB_DP,PIN_PA25 -PIN_PA30,SWCLK -PIN_PA31,SWDIO +SWCLK,PIN_PA30 +SWDIO,PIN_PA31 diff --git a/ports/samd/boards/MINISAM_M4/pins.csv b/ports/samd/boards/MINISAM_M4/pins.csv index 3ea5f85cbacb9..dcb856edc6f3c 100644 --- a/ports/samd/boards/MINISAM_M4/pins.csv +++ b/ports/samd/boards/MINISAM_M4/pins.csv @@ -1,43 +1,43 @@ -# Pin rows contain Pin number and pin name. -# Pin rows start with PIN_ -# If the pin name is omitted, the pin number is added as name. -# Empty lines and lines not starting with PIN_ are ignored +# The lines contain pairs of Pin name and Pin number. +# Pin names must be valid Python identifiers. +# Pin numbers have the form PIN_Pxnn, with x being A, B, C or D. +# Lines starting with # or empty lines are ignored. -PIN_PA02,A0 -PIN_PB08,A1 -PIN_PB09,A2 -PIN_PA04,A3 -PIN_PA05,A4 -PIN_PA06,A5 -PIN_PA07,A6 -PIN_PA16,RX -PIN_PA17,TX -PIN_PA19,D3 -PIN_PA20,D4 -PIN_PA21,D5 -PIN_PA15,LED -PIN_PA00,BUTTON -PIN_PA03,AREF -PIN_PA12,SDA -PIN_PA13,SCL -PIN_PB22,MOSI -PIN_PB23,MISO -PIN_PA01,SCK -PIN_PB03,DOTSTAR_DATA -PIN_PB02,DOTSTAR_CLK +A0,PIN_PA02 +A1,PIN_PB08 +A2,PIN_PB09 +A3,PIN_PA04 +A4,PIN_PA05 +A5,PIN_PA06 +A6,PIN_PA07 +RX,PIN_PA16 +TX,PIN_PA17 +D3,PIN_PA19 +D4,PIN_PA20 +D5,PIN_PA21 +LED,PIN_PA15 +BUTTON,PIN_PA00 +AREF,PIN_PA03 +SDA,PIN_PA12 +SCL,PIN_PA13 +MOSI,PIN_PB22 +MISO,PIN_PB23 +SCK,PIN_PA01 +DOTSTAR_DATA,PIN_PB03 +DOTSTAR_CLK,PIN_PB02 -PIN_PB11,QSPI_CS -PIN_PB10,QSPI_SCK -PIN_PA08,QSPI_D0 -PIN_PA09,QSPI_D1 -PIN_PA10,QSPI_D2 -PIN_PA11,QSPI_D3 +QSPI_CS,PIN_PB11 +QSPI_SCK,PIN_PB10 +QSPI_D0,PIN_PA08 +QSPI_D1,PIN_PA09 +QSPI_D2,PIN_PA10 +QSPI_D3,PIN_PA11 -PIN_PA15,LED +LED,PIN_PA15 -PIN_PA24,USB_DM -PIN_PA25,USB_DP -PIN_PA26,USB_SOF +USB_DM,PIN_PA24 +USB_DP,PIN_PA25 +USB_SOF,PIN_PA26 -PIN_PA30,SWCLK -PIN_PA31,SWDIO +SWCLK,PIN_PA30 +SWDIO,PIN_PA31 diff --git a/ports/samd/boards/SAMD21_XPLAINED_PRO/pins.csv b/ports/samd/boards/SAMD21_XPLAINED_PRO/pins.csv index 5990c373bf934..b1cb10ed8f717 100644 --- a/ports/samd/boards/SAMD21_XPLAINED_PRO/pins.csv +++ b/ports/samd/boards/SAMD21_XPLAINED_PRO/pins.csv @@ -1,60 +1,57 @@ -# Pin rows contain Pin number and pin name. -# Pin rows start with PIN_ -# If the pin name is omitted, the pin number is added as name. -# Empty lines and lines not starting with PIN_ are ignored +# The lines contain pairs of Pin name and Pin number. +# Pin names must be valid Python identifiers. +# Pin numbers have the form PIN_Pxnn, with x being A, B, C or D. +# Lines starting with # or empty lines are ignored. -# EXT1 -PIN_PB00,EXT1_PIN3 -PIN_PB01,EXT1_PIN4 -PIN_PB06,EXT1_PIN5 -PIN_PB07,EXT1_PIN6 -PIN_PB02,EXT1_PIN7 -PIN_PB03,EXT1_PIN8 -PIN_PB04,EXT1_PIN9 -PIN_PB05,EXT1_PIN10 -PIN_PA08,EXT1_PIN11 -PIN_PA09,EXT1_PIN12 -PIN_PB09,EXT1_PIN13 -PIN_PB08,EXT1_PIN14 -PIN_PA05,EXT1_PIN15 -PIN_PA06,EXT1_PIN16 -PIN_PA04,EXT1_PIN17 -PIN_PA07,EXT1_PIN18 +EXT1_PIN3,PIN_PB00 +EXT1_PIN4,PIN_PB01 +EXT1_PIN5,PIN_PB06 +EXT1_PIN6,PIN_PB07 +EXT1_PIN7,PIN_PB02 +EXT1_PIN8,PIN_PB03 +EXT1_PIN9,PIN_PB04 +EXT1_PIN10,PIN_PB05 +EXT1_PIN11,PIN_PA08 +EXT1_PIN12,PIN_PA09 +EXT1_PIN13,PIN_PB09 +EXT1_PIN14,PIN_PB08 +EXT1_PIN15,PIN_PA05 +EXT1_PIN16,PIN_PA06 +EXT1_PIN17,PIN_PA04 +EXT1_PIN18,PIN_PA07 -# EXT2 -PIN_PA10,EXT2_PIN3 -PIN_PA11,EXT2_PIN4 -PIN_PA20,EXT2_PIN5 -PIN_PA21,EXT2_PIN6 -PIN_PB12,EXT2_PIN7 -PIN_PB13,EXT2_PIN8 -PIN_PB14,EXT2_PIN9 -PIN_PB15,EXT2_PIN10 -PIN_PB11,EXT2_PIN13 -PIN_PB10,EXT2_PIN14 -PIN_PA17,EXT2_PIN15 -PIN_PA18,EXT2_PIN16 -PIN_PA16,EXT2_PIN17 -PIN_PA19,EXT2_PIN18 +EXT2_PIN3,PIN_PA10 +EXT2_PIN4,PIN_PA11 +EXT2_PIN5,PIN_PA20 +EXT2_PIN6,PIN_PA21 +EXT2_PIN7,PIN_PB12 +EXT2_PIN8,PIN_PB13 +EXT2_PIN9,PIN_PB14 +EXT2_PIN10,PIN_PB15 +EXT2_PIN13,PIN_PB11 +EXT2_PIN14,PIN_PB10 +EXT2_PIN15,PIN_PA17 +EXT2_PIN16,PIN_PA18 +EXT2_PIN17,PIN_PA16 +EXT2_PIN18,PIN_PA19 -# EXT3 -PIN_PA02,EXT3_PIN3 -PIN_PA03,EXT3_PIN4 -PIN_PA15,EXT3_PIN6 -PIN_PA12,EXT3_PIN7 -PIN_PA13,EXT3_PIN8 -PIN_PA28,EXT3_PIN9 -PIN_PA27,EXT3_PIN10 -PIN_PB17,EXT3_PIN15 -PIN_PB22,EXT3_PIN16 -PIN_PB16,EXT3_PIN17 -PIN_PB23,EXT3_PIN18 +EXT3_PIN3,PIN_PA02 +EXT3_PIN4,PIN_PA03 +EXT3_PIN6,PIN_PA15 +EXT3_PIN7,PIN_PA12 +EXT3_PIN8,PIN_PA13 +EXT3_PIN9,PIN_PA28 +EXT3_PIN10,PIN_PA27 +EXT3_PIN15,PIN_PB17 +EXT3_PIN16,PIN_PB22 +EXT3_PIN17,PIN_PB16 +EXT3_PIN18,PIN_PB23 -PIN_PB30,LED +LED,PIN_PB30 -PIN_PA24,USB_DM -PIN_PA25,USB_DP +USB_DM,PIN_PA24 +USB_DP,PIN_PA25 -PIN_PA30,SWCLK -PIN_PA31,SWDIO +SWCLK,PIN_PA30 +SWDIO,PIN_PA31 diff --git a/ports/samd/boards/SEEED_WIO_TERMINAL/pins.csv b/ports/samd/boards/SEEED_WIO_TERMINAL/pins.csv index c32108b9f72a0..ead445c760541 100644 --- a/ports/samd/boards/SEEED_WIO_TERMINAL/pins.csv +++ b/ports/samd/boards/SEEED_WIO_TERMINAL/pins.csv @@ -1,76 +1,76 @@ -# Pin rows contain Pin number and pin name. -# Pin rows start with PIN_ -# If the pin name is omitted, the pin number is added as name. -# Empty lines and lines not starting with PIN_ are ignored +# The lines contain pairs of Pin name and Pin number. +# Pin names must be valid Python identifiers. +# Pin numbers have the form PIN_Pxnn, with x being A, B, C or D. +# Lines starting with # or empty lines are ignored. -PIN_PB08,A0_D0 -PIN_PB09,A1_D1 -PIN_PA07,A2_D2 -PIN_PB04,A3_D3 -PIN_PB05,A4_D4 -PIN_PB06,A5_D5 -PIN_PA04,A6_D6 -PIN_PB07,A7_D7 -PIN_PA06,A8_D8 -PIN_PD08,SWITCH_X -PIN_PD09,SWITCH_Y -PIN_PD10,SWITCH_Z -PIN_PD12,SWITCH_B -PIN_PD20,SWITCH_U -PIN_PC26,BUTTON_1 -PIN_PC27,BUTTON_2 -PIN_PC28,BUTTON_3 -PIN_PC14,ENABLE_5V -PIN_PC15,ENABLE_3V3 -PIN_PB26,TX -PIN_PB27,RX -PIN_PA13,SDA0 -PIN_PA12,SCL0 -PIN_PA17,SDA1 -PIN_PA16,SCL1 -PIN_PB02,MOSI -PIN_PB00,MISO -PIN_PB03,SCK -PIN_PB01,CS -PIN_PB15,GPCLK0 -PIN_PB12,GPCLK1 -PIN_PB13,GPCLK2 -PIN_PC16,SD_MOSI -PIN_PC18,SD_MISO -PIN_PC17,SD_SCK -PIN_PC19,SD_CS -PIN_PD21,SD_DET -PIN_PA20,I2S_LRCLK -PIN_PA21,I2S_SDIN -PIN_PA22,I2S_SDOUT -PIN_PB16,I2C_BCLK -PIN_PB18,LCD_MISO -PIN_PB19,LCD_MOSI -PIN_PB20,LCD_SCK -PIN_PB21,LCD_CS -PIN_PC05,LCD_BACKLIGHT -PIN_PC06,LCD_D_C -PIN_PC07,LCD_RESET -PIN_PC10,LCD_XL -PIN_PC11,LCD_YU -PIN_PC12,LCD_XR -PIN_PC13,LCD_YD -PIN_PC30,MIC -PIN_PD11,BUZZER +A0_D0,PIN_PB08 +A1_D1,PIN_PB09 +A2_D2,PIN_PA07 +A3_D3,PIN_PB04 +A4_D4,PIN_PB05 +A5_D5,PIN_PB06 +A6_D6,PIN_PA04 +A7_D7,PIN_PB07 +A8_D8,PIN_PA06 +SWITCH_X,PIN_PD08 +SWITCH_Y,PIN_PD09 +SWITCH_Z,PIN_PD10 +SWITCH_B,PIN_PD12 +SWITCH_U,PIN_PD20 +BUTTON_1,PIN_PC26 +BUTTON_2,PIN_PC27 +BUTTON_3,PIN_PC28 +ENABLE_5V,PIN_PC14 +ENABLE_3V3,PIN_PC15 +TX,PIN_PB26 +RX,PIN_PB27 +SDA0,PIN_PA13 +SCL0,PIN_PA12 +SDA1,PIN_PA17 +SCL1,PIN_PA16 +MOSI,PIN_PB02 +MISO,PIN_PB00 +SCK,PIN_PB03 +CS,PIN_PB01 +GPCLK0,PIN_PB15 +GPCLK1,PIN_PB12 +GPCLK2,PIN_PB13 +SD_MOSI,PIN_PC16 +SD_MISO,PIN_PC18 +SD_SCK,PIN_PC17 +SD_CS,PIN_PC19 +SD_DET,PIN_PD21 +I2S_LRCLK,PIN_PA20 +I2S_SDIN,PIN_PA21 +I2S_SDOUT,PIN_PA22 +I2C_BCLK,PIN_PB16 +LCD_MISO,PIN_PB18 +LCD_MOSI,PIN_PB19 +LCD_SCK,PIN_PB20 +LCD_CS,PIN_PB21 +LCD_BACKLIGHT,PIN_PC05 +LCD_D_C,PIN_PC06 +LCD_RESET,PIN_PC07 +LCD_XL,PIN_PC10 +LCD_YU,PIN_PC11 +LCD_XR,PIN_PC12 +LCD_YD,PIN_PC13 +MIC,PIN_PC30 +BUZZER,PIN_PD11 -PIN_PB11,QSPI_CS -PIN_PB10,QSPI_SCK -PIN_PA08,QSPI_D0 -PIN_PA09,QSPI_D1 -PIN_PA10,QSPI_D2 -PIN_PA11,QSPI_D3 +QSPI_CS,PIN_PB11 +QSPI_SCK,PIN_PB10 +QSPI_D0,PIN_PA08 +QSPI_D1,PIN_PA09 +QSPI_D2,PIN_PA10 +QSPI_D3,PIN_PA11 -PIN_PA15,LED_BLUE -PIN_PC05,LED_LCD +LED_BLUE,PIN_PA15 +LED_LCD,PIN_PC05 -PIN_PA24,USB_DM -PIN_PA25,USB_DP -PIN_PA26,USB_SOF +USB_DM,PIN_PA24 +USB_DP,PIN_PA25 +USB_SOF,PIN_PA26 -PIN_PA30,SWCLK -PIN_PA31,SWDIO +SWCLK,PIN_PA30 +SWDIO,PIN_PA31 diff --git a/ports/samd/boards/SEEED_XIAO_SAMD21/pins.csv b/ports/samd/boards/SEEED_XIAO_SAMD21/pins.csv index 2f1c180e8ac6a..a067df72972fe 100644 --- a/ports/samd/boards/SEEED_XIAO_SAMD21/pins.csv +++ b/ports/samd/boards/SEEED_XIAO_SAMD21/pins.csv @@ -1,26 +1,26 @@ -# Pin rows contain Pin number and pin name. -# Pin rows start with PIN_ -# If the pin name is omitted, the pin number is added as name. -# Empty lines and lines not starting with PIN_ are ignored +# The lines contain pairs of Pin name and Pin number. +# Pin names must be valid Python identifiers. +# Pin numbers have the form PIN_Pxnn, with x being A, B, C or D. +# Lines starting with # or empty lines are ignored. -PIN_PA02,A0_D0 -PIN_PA04,A1_D1 -PIN_PA10,A2_D2 -PIN_PA11,A3_D3 -PIN_PA08,A4_D4 -PIN_PA09,A5_D5 -PIN_PB08,A6_D6 -PIN_PB09,A7_D7 -PIN_PA07,A8_D8 -PIN_PA05,A9_D9 -PIN_PA06,A10_D10 +A0_D0,PIN_PA02 +A1_D1,PIN_PA04 +A2_D2,PIN_PA10 +A3_D3,PIN_PA11 +A4_D4,PIN_PA08 +A5_D5,PIN_PA09 +A6_D6,PIN_PB08 +A7_D7,PIN_PB09 +A8_D8,PIN_PA07 +A9_D9,PIN_PA05 +A10_D10,PIN_PA06 -PIN_PA17,USER_LED -PIN_PA18,RX_LED -PIN_PA19,TX_LED +USER_LED,PIN_PA17 +RX_LED,PIN_PA18 +TX_LED,PIN_PA19 -PIN_PA24,USB_DM -PIN_PA25,USB_DP +USB_DM,PIN_PA24 +USB_DP,PIN_PA25 -PIN_PA30,SWCLK -PIN_PA31,SWDIO +SWCLK,PIN_PA30 +SWDIO,PIN_PA31 diff --git a/ports/samd/boards/SPARKFUN_SAMD51_THING_PLUS/pins.csv b/ports/samd/boards/SPARKFUN_SAMD51_THING_PLUS/pins.csv index d807b505a7044..d8a4ee0468a33 100644 --- a/ports/samd/boards/SPARKFUN_SAMD51_THING_PLUS/pins.csv +++ b/ports/samd/boards/SPARKFUN_SAMD51_THING_PLUS/pins.csv @@ -1,41 +1,41 @@ -# Pin rows contain Pin number and pin name. -# Pin rows start with PIN_ -# If the pin name is omitted, the pin number is added as name. -# Empty lines and lines not starting with PIN_ are ignored +# The lines contain pairs of Pin name and Pin number. +# Pin names must be valid Python identifiers. +# Pin numbers have the form PIN_Pxnn, with x being A, B, C or D. +# Lines starting with # or empty lines are ignored. -PIN_PA13,D0 -PIN_PA12,D1 -PIN_PA06,D4 -PIN_PA15,D5 -PIN_PA20,D6 -PIN_PA21,D7 -PIN_PA07,D9 -PIN_PA18,D10 -PIN_PA16,D11 -PIN_PA19,D12 -PIN_PA17,D13 -PIN_PA02,A0 -PIN_PB08,A1 -PIN_PB09,A2 -PIN_PA04,A3 -PIN_PA05,A4 -PIN_PB02,A5 -PIN_PA22,SDA -PIN_PA23,SCL -PIN_PB12,MOSI -PIN_PB11,MISO -PIN_PB13,SCK -PIN_PA08,FLASH_MOSI -PIN_PA09,FLASH_SCK -PIN_PA10,FLASH_CS -PIN_PA11,FLASH_MISO +D0,PIN_PA13 +D1,PIN_PA12 +D4,PIN_PA06 +D5,PIN_PA15 +D6,PIN_PA20 +D7,PIN_PA21 +D9,PIN_PA07 +D10,PIN_PA18 +D11,PIN_PA16 +D12,PIN_PA19 +D13,PIN_PA17 +A0,PIN_PA02 +A1,PIN_PB08 +A2,PIN_PB09 +A3,PIN_PA04 +A4,PIN_PA05 +A5,PIN_PB02 +SDA,PIN_PA22 +SCL,PIN_PA23 +MOSI,PIN_PB12 +MISO,PIN_PB11 +SCK,PIN_PB13 +FLASH_MOSI,PIN_PA08 +FLASH_SCK,PIN_PA09 +FLASH_CS,PIN_PA10 +FLASH_MISO,PIN_PA11 -PIN_PB03,RXLED -PIN_PA27,TXLED +RXLED,PIN_PB03 +TXLED,PIN_PA27 -PIN_PA24,USB_DM -PIN_PA25,USB_DP -PIN_PA26,USB_SOF +USB_DM,PIN_PA24 +USB_DP,PIN_PA25 +USB_SOF,PIN_PA26 -PIN_PA30,SWCLK -PIN_PA31,SWDIO +SWCLK,PIN_PA30 +SWDIO,PIN_PA31 diff --git a/ports/samd/boards/make-pin-table.py b/ports/samd/boards/make-pin-table.py index a187f2a711aaa..a9d653db65765 100644 --- a/ports/samd/boards/make-pin-table.py +++ b/ports/samd/boards/make-pin-table.py @@ -33,16 +33,8 @@ def parse_pin_file(self, filename): rows = csv.reader(csvfile, skipinitialspace=True) for row in rows: # Pin numbers must start with "PIN_" - # LED numbers must start with "LED_" - if len(row) > 0: - # for compatibility, map LED_ to PIN_ - if row[0].startswith("LED_"): - row[0] = "PIN_" + row[0][4:] - if row[0].startswith("PIN_"): - if len(row) == 1: - self.pin_names[row[0]] = (row[0][4:], "{&machine_pin_type}") - else: - self.pin_names[row[0]] = (row[1], "{&machine_pin_type}") + if len(row) > 1 and row[1].startswith("PIN_"): + self.pin_names[row[1]] = (row[0], "{&machine_pin_type}") def print_table(self, table_filename, mcu_name): with open(table_filename, "wt") as table_file: From eb98259aed471c8d4935f7fb550e6fa92039b3c9 Mon Sep 17 00:00:00 2001 From: robert-hh Date: Tue, 18 Jul 2023 13:30:55 +0200 Subject: [PATCH 2/3] samd: Configure Pin.cpu and Pin.board separately. Enabling Pin.cpu by default only for SAMD51. Enabling Pin.board by default for both SAMD21 and SAMD51. Saves ~650 bytes for SAMD21. Signed-off-by: robert-hh --- ports/samd/boards/make-pin-table.py | 4 +++- ports/samd/machine_pin.c | 14 +++++++++----- ports/samd/mcu/samd21/mpconfigmcu.h | 7 +++++-- ports/samd/mcu/samd51/mpconfigmcu.h | 7 +++++-- ports/samd/pin_af.c | 28 +++++----------------------- ports/samd/pin_af.h | 4 +++- 6 files changed, 30 insertions(+), 34 deletions(-) diff --git a/ports/samd/boards/make-pin-table.py b/ports/samd/boards/make-pin-table.py index a9d653db65765..34a2cf1cc115b 100644 --- a/ports/samd/boards/make-pin-table.py +++ b/ports/samd/boards/make-pin-table.py @@ -105,7 +105,7 @@ def print_table(self, table_filename, mcu_name): # Create the CPU pins dictionary table - table_file.write("\n#if MICROPY_PY_MACHINE_PIN_BOARD_CPU\n") + table_file.write("\n#if MICROPY_PY_MACHINE_PIN_CPU\n") table_file.write("\n// The cpu pins dictionary\n\n") table_file.write( "STATIC const mp_rom_map_elem_t pin_cpu_pins_locals_dict_table[] = {\n" @@ -122,9 +122,11 @@ def print_table(self, table_filename, mcu_name): table_file.write( "MP_DEFINE_CONST_DICT(machine_pin_cpu_pins_locals_dict, pin_cpu_pins_locals_dict_table);\n" ) + table_file.write("#endif\n") # Create the board pins dictionary table + table_file.write("\n#if MICROPY_PY_MACHINE_PIN_BOARD\n") table_file.write("\n// The board pins dictionary\n\n") table_file.write( "STATIC const mp_rom_map_elem_t pin_board_pins_locals_dict_table[] = {\n" diff --git a/ports/samd/machine_pin.c b/ports/samd/machine_pin.c index f8e1b962804c0..ccf897e06691b 100644 --- a/ports/samd/machine_pin.c +++ b/ports/samd/machine_pin.c @@ -54,7 +54,7 @@ typedef struct _machine_pin_irq_obj_t { uint8_t pin_id; } machine_pin_irq_obj_t; -#if MICROPY_PY_MACHINE_PIN_BOARD_CPU +#if MICROPY_PY_MACHINE_PIN_CPU // Pin mapping dictionaries MP_DEFINE_CONST_OBJ_TYPE( machine_pin_cpu_pins_obj_type, @@ -63,13 +63,15 @@ MP_DEFINE_CONST_OBJ_TYPE( locals_dict, &machine_pin_cpu_pins_locals_dict ); +#endif // MICROPY_PY_MACHINE_PIN_CPU +#if MICROPY_PY_MACHINE_PIN_BOARD MP_DEFINE_CONST_OBJ_TYPE( machine_pin_board_pins_obj_type, MP_QSTR_board, MP_TYPE_FLAG_NONE, locals_dict, &machine_pin_board_pins_locals_dict ); -#endif // MICROPY_PY_MACHINE_PIN_BOARD_CPU +#endif // MICROPY_PY_MACHINE_PIN_BOARD STATIC const mp_irq_methods_t machine_pin_irq_methods; @@ -428,11 +430,13 @@ STATIC const mp_rom_map_elem_t machine_pin_locals_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_drive), MP_ROM_PTR(&machine_pin_drive_obj) }, { MP_ROM_QSTR(MP_QSTR_irq), MP_ROM_PTR(&machine_pin_irq_obj) }, - #if MICROPY_PY_MACHINE_PIN_BOARD_CPU + #if MICROPY_PY_MACHINE_PIN_CPU // class attributes - { MP_ROM_QSTR(MP_QSTR_board), MP_ROM_PTR(&machine_pin_board_pins_obj_type) }, { MP_ROM_QSTR(MP_QSTR_cpu), MP_ROM_PTR(&machine_pin_cpu_pins_obj_type) }, - #endif // MICROPY_PY_MACHINE_PIN_BOARD_CPU + #endif // MICROPY_PY_MACHINE_PIN_CPU + #if MICROPY_PY_MACHINE_PIN_BOARD + { MP_ROM_QSTR(MP_QSTR_board), MP_ROM_PTR(&machine_pin_board_pins_obj_type) }, + #endif // MICROPY_PY_MACHINE_PIN_BOARD // class constants { MP_ROM_QSTR(MP_QSTR_IN), MP_ROM_INT(GPIO_MODE_IN) }, diff --git a/ports/samd/mcu/samd21/mpconfigmcu.h b/ports/samd/mcu/samd21/mpconfigmcu.h index f70981acd53c1..3b2040f3157e9 100644 --- a/ports/samd/mcu/samd21/mpconfigmcu.h +++ b/ports/samd/mcu/samd21/mpconfigmcu.h @@ -37,8 +37,11 @@ unsigned long trng_random_u32(int delay); #define MICROPY_PY_OS_URANDOM (1) -#ifndef MICROPY_PY_MACHINE_PIN_BOARD_CPU -#define MICROPY_PY_MACHINE_PIN_BOARD_CPU (1) +#ifndef MICROPY_PY_MACHINE_PIN_CPU +#define MICROPY_PY_MACHINE_PIN_CPU (0) +#endif +#ifndef MICROPY_PY_MACHINE_PIN_BOARD +#define MICROPY_PY_MACHINE_PIN_BOARD (1) #endif #define CPU_FREQ (48000000) diff --git a/ports/samd/mcu/samd51/mpconfigmcu.h b/ports/samd/mcu/samd51/mpconfigmcu.h index 399b48c040d69..0dd11b15033e4 100644 --- a/ports/samd/mcu/samd51/mpconfigmcu.h +++ b/ports/samd/mcu/samd51/mpconfigmcu.h @@ -30,8 +30,11 @@ #define MICROPY_PY_RANDOM_SEED_INIT_FUNC (trng_random_u32()) unsigned long trng_random_u32(void); -#ifndef MICROPY_PY_MACHINE_PIN_BOARD_CPU -#define MICROPY_PY_MACHINE_PIN_BOARD_CPU (1) +#ifndef MICROPY_PY_MACHINE_PIN_CPU +#define MICROPY_PY_MACHINE_PIN_CPU (1) +#endif +#ifndef MICROPY_PY_MACHINE_PIN_BOARD +#define MICROPY_PY_MACHINE_PIN_BOARD (1) #endif // fatfs configuration used in ffconf.h diff --git a/ports/samd/pin_af.c b/ports/samd/pin_af.c index 419b81477601c..e5098c1c23170 100644 --- a/ports/samd/pin_af.c +++ b/ports/samd/pin_af.c @@ -54,7 +54,7 @@ const machine_pin_obj_t *get_pin_obj_ptr(int pin_id) { mp_raise_ValueError(MP_ERROR_TEXT("not a Pin")); } -#if MICROPY_PY_MACHINE_PIN_BOARD_CPU +#if MICROPY_PY_MACHINE_PIN_BOARD || MICROPY_PY_MACHINE_PIN_CPU STATIC const machine_pin_obj_t *pin_find_named_pin(const mp_obj_dict_t *named_pins, mp_obj_t name) { mp_map_t *named_map = mp_obj_dict_get_map((mp_obj_t)named_pins); mp_map_elem_t *named_elem = mp_map_lookup(named_map, name, MP_MAP_LOOKUP); @@ -75,39 +75,21 @@ const machine_pin_obj_t *pin_find(mp_obj_t pin) { return get_pin_obj_ptr(mp_obj_get_int(pin)); } - #if MICROPY_PY_MACHINE_PIN_BOARD_CPU + #if MICROPY_PY_MACHINE_PIN_BOARD const machine_pin_obj_t *self = NULL; // See if the pin name matches a board pin self = pin_find_named_pin(&machine_pin_board_pins_locals_dict, pin); if (self != NULL) { return self; } + #endif + #if MICROPY_PY_MACHINE_PIN_CPU // See if the pin name matches a cpu pin self = pin_find_named_pin(&machine_pin_cpu_pins_locals_dict, pin); if (self != NULL) { return self; } - #else - if (mp_obj_is_str(pin)) { - // Search by name - size_t slen; - const char *s = mp_obj_str_get_data(pin, &slen); - // Check for a string like PA02 or PD12 - if (slen == 4 && s[0] == 'P' && strchr("ABCD", s[1]) != NULL && - strchr("0123456789", s[2]) != NULL && strchr("0123456789", s[2]) != NULL) { - int num = (s[1] - 'A') * 32 + (s[2] - '0') * 10 + (s[3] - '0'); - return get_pin_obj_ptr(num); - } else { - for (int i = 0; i < MP_ARRAY_SIZE(pin_af_table); i++) { - size_t len; - const char *name = (char *)qstr_data(pin_af_table[i]->name, &len); - if (slen == len && strncmp(s, name, slen) == 0) { - return pin_af_table[i]; - } - } - } - } - #endif // MICROPY_PY_MACHINE_PIN_BOARD_CPU + #endif // MICROPY_PY_MACHINE_PIN_CPU mp_raise_ValueError(MP_ERROR_TEXT("not a Pin")); } diff --git a/ports/samd/pin_af.h b/ports/samd/pin_af.h index 3a15ae7f356a9..54e9f653e5193 100644 --- a/ports/samd/pin_af.h +++ b/ports/samd/pin_af.h @@ -92,8 +92,10 @@ typedef struct _pwm_config_t { #define ALT_FCT_SERCOM1 2 #define ALT_FCT_SERCOM2 3 -#if MICROPY_PY_MACHINE_PIN_BOARD_CPU +#if MICROPY_PY_MACHINE_PIN_CPU extern const mp_obj_dict_t machine_pin_cpu_pins_locals_dict; +#endif +#if MICROPY_PY_MACHINE_PIN_BOARD extern const mp_obj_dict_t machine_pin_board_pins_locals_dict; #endif From d503aaad51c0cb7c4012edc2e4f2864b8754bfce Mon Sep 17 00:00:00 2001 From: robert-hh Date: Sun, 13 Aug 2023 10:14:38 +0200 Subject: [PATCH 3/3] samd: Use the argument and file names suggested in PR #12211. - Rename make-pins-table.py to make-pins.py - Name the input arguments --board-csv, --af-csv and --output-source. - Use matching names for the internal symbols. Signed-off-by: robert-hh --- ports/samd/Makefile | 4 +- .../{make-pin-table.py => make-pins.py} | 116 +++++++++--------- 2 files changed, 60 insertions(+), 60 deletions(-) rename ports/samd/boards/{make-pin-table.py => make-pins.py} (59%) diff --git a/ports/samd/Makefile b/ports/samd/Makefile index 6dd71bd93f4c5..ea0e4cd7bd537 100644 --- a/ports/samd/Makefile +++ b/ports/samd/Makefile @@ -56,7 +56,7 @@ INC += -I$(TOP)/lib/asf4/$(MCU_SERIES_LOWER)/include INC += -I$(TOP)/lib/asf4/$(MCU_SERIES_LOWER)/include/pio INC += -I$(TOP)/lib/tinyusb/src -MAKE_PIN_AF = boards/make-pin-table.py +MAKE_PIN_AF = boards/make-pins.py PIN_AF_TABLE_CSV = mcu/$(MCU_SERIES_LOWER)/pin-af-table.csv BOARD_PINS = $(BOARD_DIR)/pins.csv GEN_PIN_AF = pin_af_table.c @@ -210,6 +210,6 @@ pin_af.c: $(BUILD)/$(GEN_PIN_AF) | $(HEADER_BUILD) $(BUILD)/$(GEN_PIN_AF): $(PIN_AF_TABLE_CSV) $(BOARD_PINS) | $(HEADER_BUILD) $(ECHO) "Create $@" - $(Q)$(PYTHON) $(MAKE_PIN_AF) --csv $(PIN_AF_TABLE_CSV) --board $(BOARD_PINS) --table $(BUILD)/$(GEN_PIN_AF) --mcu $(MCU_SERIES) + $(Q)$(PYTHON) $(MAKE_PIN_AF) --af-csv $(PIN_AF_TABLE_CSV) --board-csv $(BOARD_PINS) --output-source $(BUILD)/$(GEN_PIN_AF) --mcu $(MCU_SERIES) include $(TOP)/py/mkrules.mk diff --git a/ports/samd/boards/make-pin-table.py b/ports/samd/boards/make-pins.py similarity index 59% rename from ports/samd/boards/make-pin-table.py rename to ports/samd/boards/make-pins.py index 34a2cf1cc115b..676e61e09429b 100644 --- a/ports/samd/boards/make-pin-table.py +++ b/ports/samd/boards/make-pins.py @@ -20,7 +20,7 @@ def __init__(self): self.board_pins = [] # list of pin objects self.pin_names = {} - def parse_csv_file(self, filename): + def parse_af_csv_file(self, filename): with open(filename, "r") as csvfile: rows = csv.reader(csvfile) for row in rows: @@ -28,7 +28,7 @@ def parse_csv_file(self, filename): if len(row) > 0 and row[0].strip().upper()[:2] in ("PA", "PB", "PC", "PD"): self.board_pins.append(row) - def parse_pin_file(self, filename): + def parse_board_csv_file(self, filename): with open(filename, "r") as csvfile: rows = csv.reader(csvfile, skipinitialspace=True) for row in rows: @@ -36,17 +36,17 @@ def parse_pin_file(self, filename): if len(row) > 1 and row[1].startswith("PIN_"): self.pin_names[row[1]] = (row[0], "{&machine_pin_type}") - def print_table(self, table_filename, mcu_name): - with open(table_filename, "wt") as table_file: - table_file.write(table_header) + def gen_output_source(self, output_source_filename, mcu_name): + with open(output_source_filename, "wt") as output_source_file: + output_source_file.write(table_header) # Create the Pin objects if mcu_name == "SAMD21": for row in self.board_pins: pin = "PIN_" + row[0].upper() - table_file.write("#ifdef " + pin + "\n") - table_file.write("static const machine_pin_obj_t %s_obj = " % pin) + output_source_file.write("#ifdef " + pin + "\n") + output_source_file.write("static const machine_pin_obj_t %s_obj = " % pin) eic = row[1] if row[1] else "0xff" adc = row[2] if row[2] else "0xff" if pin in self.pin_names: @@ -55,21 +55,21 @@ def print_table(self, table_filename, mcu_name): else: name = "MP_QSTR_" type = "{&machine_pin_type}" - table_file.write("{%s, %s, %s, %s, %s" % (type, pin, name, eic, adc)) + output_source_file.write("{%s, %s, %s, %s, %s" % (type, pin, name, eic, adc)) for cell in row[3:]: if cell: - table_file.write( + output_source_file.write( ", 0x%s" % cell if len(cell) == 2 else ", 0x0%s" % cell ) else: - table_file.write(", 0xff") - table_file.write("};\n") - table_file.write("#endif\n") + output_source_file.write(", 0xff") + output_source_file.write("};\n") + output_source_file.write("#endif\n") else: for row in self.board_pins: pin = "PIN_" + row[0].upper() - table_file.write("#ifdef " + pin + "\n") - table_file.write("const machine_pin_obj_t %s_obj = " % pin) + output_source_file.write("#ifdef " + pin + "\n") + output_source_file.write("const machine_pin_obj_t %s_obj = " % pin) eic = row[1] if row[1] else "0xff" adc0 = row[2] if row[2] else "0xff" adc1 = row[3] if row[3] else "0xff" @@ -79,72 +79,72 @@ def print_table(self, table_filename, mcu_name): else: name = "MP_QSTR_" type = "{&machine_pin_type}" - table_file.write( + output_source_file.write( "{%s, %s, %s, %s, %s, %s" % (type, pin, name, eic, adc0, adc1) ) for cell in row[4:]: if cell: - table_file.write( + output_source_file.write( ", 0x%s" % cell if len(cell) == 2 else ", 0x0%s" % cell ) else: - table_file.write(", 0xff") - table_file.write("};\n") - table_file.write("#endif\n") + output_source_file.write(", 0xff") + output_source_file.write("};\n") + output_source_file.write("#endif\n") # Create the Pin table - table_file.write("\n// The table of references to the pin objects.\n\n") - table_file.write("static const machine_pin_obj_t *pin_af_table[] = {\n") + output_source_file.write("\n// The table of references to the pin objects.\n\n") + output_source_file.write("static const machine_pin_obj_t *pin_af_table[] = {\n") for row in self.board_pins: pin = "PIN_" + row[0].upper() - table_file.write(" #ifdef " + pin + "\n") - table_file.write(" &%s_obj,\n" % pin) - table_file.write(" #endif\n") - table_file.write("};\n") + output_source_file.write(" #ifdef " + pin + "\n") + output_source_file.write(" &%s_obj,\n" % pin) + output_source_file.write(" #endif\n") + output_source_file.write("};\n") # Create the CPU pins dictionary table - table_file.write("\n#if MICROPY_PY_MACHINE_PIN_CPU\n") - table_file.write("\n// The cpu pins dictionary\n\n") - table_file.write( + output_source_file.write("\n#if MICROPY_PY_MACHINE_PIN_CPU\n") + output_source_file.write("\n// The cpu pins dictionary\n\n") + output_source_file.write( "STATIC const mp_rom_map_elem_t pin_cpu_pins_locals_dict_table[] = {\n" ) for row in self.board_pins: pin = "PIN_" + row[0].upper() - table_file.write(" #ifdef " + pin + "\n") - table_file.write( + output_source_file.write(" #ifdef " + pin + "\n") + output_source_file.write( " { MP_ROM_QSTR(MP_QSTR_%s), MP_ROM_PTR(&%s_obj) },\n" % (row[0].upper(), pin) ) - table_file.write(" #endif\n") - table_file.write("};\n") - table_file.write( + output_source_file.write(" #endif\n") + output_source_file.write("};\n") + output_source_file.write( "MP_DEFINE_CONST_DICT(machine_pin_cpu_pins_locals_dict, pin_cpu_pins_locals_dict_table);\n" ) - table_file.write("#endif\n") + output_source_file.write("#endif\n") # Create the board pins dictionary table - table_file.write("\n#if MICROPY_PY_MACHINE_PIN_BOARD\n") - table_file.write("\n// The board pins dictionary\n\n") - table_file.write( + output_source_file.write("\n#if MICROPY_PY_MACHINE_PIN_BOARD\n") + output_source_file.write("\n// The board pins dictionary\n\n") + output_source_file.write( "STATIC const mp_rom_map_elem_t pin_board_pins_locals_dict_table[] = {\n" ) for row in self.board_pins: pin = "PIN_" + row[0].upper() if pin in self.pin_names: - table_file.write(" #ifdef " + pin + "\n") - table_file.write( + output_source_file.write(" #ifdef " + pin + "\n") + output_source_file.write( " { MP_ROM_QSTR(MP_QSTR_%s), MP_ROM_PTR(&%s_obj) },\n" % (self.pin_names[pin][0], pin) ) - table_file.write(" #endif\n") - table_file.write("};\n") - table_file.write( + output_source_file.write(" #endif\n") + output_source_file.write("};\n") + output_source_file.write( "MP_DEFINE_CONST_DICT(machine_pin_board_pins_locals_dict, pin_board_pins_locals_dict_table);\n" ) - table_file.write("#endif\n") + output_source_file.write("#endif\n") def main(): @@ -154,22 +154,22 @@ def main(): description="Generate MCU-specific pin cap table file", ) parser.add_argument( - "-c", - "--csv", - dest="csv_filename", + "-a", + "--af-csv", + dest="af_csv_filename", help="Specifies the pin-af-table.csv filename", ) parser.add_argument( "-b", - "--board", - dest="pin_filename", + "--board-csv", + dest="board_csv_filename", help="Specifies the pins.csv filename", ) parser.add_argument( - "-t", - "--table", - dest="table_filename", - help="Specifies the name of the generated pin cap table file", + "-o", + "--output-source", + dest="output_source_filename", + help="Specifies the name of the generated pin table file", ) parser.add_argument( "-m", @@ -181,14 +181,14 @@ def main(): pins = Pins() - if args.csv_filename: - pins.parse_csv_file(args.csv_filename) + if args.af_csv_filename: + pins.parse_af_csv_file(args.af_csv_filename) - if args.pin_filename: - pins.parse_pin_file(args.pin_filename) + if args.board_csv_filename: + pins.parse_board_csv_file(args.board_csv_filename) - if args.table_filename: - pins.print_table(args.table_filename, args.mcu_name) + if args.output_source_filename: + pins.gen_output_source(args.output_source_filename, args.mcu_name) if __name__ == "__main__": pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy