-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add board file for pico2_w This is a copy of pico2 with the definitions from pico_w added. Set PICO_BOARD=pico2_w * Simplify CYW43 PIO config cyw43_spi_init contains code to find a free PIO and state machine. This can all be replaced with pio_claim_free_sm_and_add_program_for_gpio_range * Make CYW43 gpio pins configurable at build time The CYW43 gpio pins are currently hardcoded. Give the defines better names and make them overrideable at build time. Note: CYW43_PIN_WL_REG_ON and CYW43_PIN_WL_HOST_WAKE are already used by the driver via cyw43_hal_* functions * Fix pio initialisation Need to make sure the pio can work with all the gpios * Add missing doxygen for cyw43_set_pio_clock_divisor * Support dynamic configuration of cyw43 gpio pins Add CYW43_PIN_WL_DYNAMIC that means cyw43 gpio pins can be changed at runtime. Then CYW43_PIN_WL_* calls cyw43_get_pin_wl to get the gpio out of the array. cyw43_set_pins_wl can be used to change the cyw43 gpio pins although care is needed when calling this? * Some fixes for cyw32 gpio > 32 * Allow CYW43 to be configured with cmake * Add default config of CYW43_WL_GPIO_COUNT to cyw43_configport.h * Fix some review comments Add some PICO_CMAKE_CONFIG Stop using gpio_*_mask64 functions
- Loading branch information
1 parent
6500c59
commit af2f426
Showing
6 changed files
with
351 additions
and
85 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
/* | ||
* Copyright (c) 2024 Raspberry Pi (Trading) Ltd. | ||
* | ||
* SPDX-License-Identifier: BSD-3-Clause | ||
*/ | ||
|
||
// ----------------------------------------------------- | ||
// NOTE: THIS HEADER IS ALSO INCLUDED BY ASSEMBLER SO | ||
// SHOULD ONLY CONSIST OF PREPROCESSOR DIRECTIVES | ||
// ----------------------------------------------------- | ||
|
||
// This header may be included by other board headers as "boards/pico2_w.h" | ||
|
||
// pico_cmake_set PICO_PLATFORM=rp2350 | ||
// pico_cmake_set PICO_CYW43_SUPPORTED = 1 | ||
|
||
#ifndef _BOARDS_PICO2_W_H | ||
#define _BOARDS_PICO2_W_H | ||
|
||
// For board detection | ||
#define RASPBERRYPI_PICO2_W | ||
|
||
// --- RP2350 VARIANT --- | ||
#define PICO_RP2350A 1 | ||
|
||
// --- UART --- | ||
#ifndef PICO_DEFAULT_UART | ||
#define PICO_DEFAULT_UART 0 | ||
#endif | ||
#ifndef PICO_DEFAULT_UART_TX_PIN | ||
#define PICO_DEFAULT_UART_TX_PIN 0 | ||
#endif | ||
#ifndef PICO_DEFAULT_UART_RX_PIN | ||
#define PICO_DEFAULT_UART_RX_PIN 1 | ||
#endif | ||
|
||
// --- LED --- | ||
// no PICO_DEFAULT_LED_PIN - LED is on Wireless chip | ||
// no PICO_DEFAULT_WS2812_PIN | ||
|
||
// --- I2C --- | ||
#ifndef PICO_DEFAULT_I2C | ||
#define PICO_DEFAULT_I2C 0 | ||
#endif | ||
#ifndef PICO_DEFAULT_I2C_SDA_PIN | ||
#define PICO_DEFAULT_I2C_SDA_PIN 4 | ||
#endif | ||
#ifndef PICO_DEFAULT_I2C_SCL_PIN | ||
#define PICO_DEFAULT_I2C_SCL_PIN 5 | ||
#endif | ||
|
||
// --- SPI --- | ||
#ifndef PICO_DEFAULT_SPI | ||
#define PICO_DEFAULT_SPI 0 | ||
#endif | ||
#ifndef PICO_DEFAULT_SPI_SCK_PIN | ||
#define PICO_DEFAULT_SPI_SCK_PIN 18 | ||
#endif | ||
#ifndef PICO_DEFAULT_SPI_TX_PIN | ||
#define PICO_DEFAULT_SPI_TX_PIN 19 | ||
#endif | ||
#ifndef PICO_DEFAULT_SPI_RX_PIN | ||
#define PICO_DEFAULT_SPI_RX_PIN 16 | ||
#endif | ||
#ifndef PICO_DEFAULT_SPI_CSN_PIN | ||
#define PICO_DEFAULT_SPI_CSN_PIN 17 | ||
#endif | ||
|
||
// --- FLASH --- | ||
|
||
#define PICO_BOOT_STAGE2_CHOOSE_W25Q080 1 | ||
|
||
#ifndef PICO_FLASH_SPI_CLKDIV | ||
#define PICO_FLASH_SPI_CLKDIV 2 | ||
#endif | ||
|
||
// pico_cmake_set_default PICO_FLASH_SIZE_BYTES = (4 * 1024 * 1024) | ||
#ifndef PICO_FLASH_SIZE_BYTES | ||
#define PICO_FLASH_SIZE_BYTES (4 * 1024 * 1024) | ||
#endif | ||
// Drive high to force power supply into PWM mode (lower ripple on 3V3 at light loads) | ||
// note the SMSP mode pin is on WL_GPIO1 | ||
|
||
#ifndef CYW43_WL_GPIO_COUNT | ||
#define CYW43_WL_GPIO_COUNT 3 | ||
#endif | ||
|
||
#ifndef CYW43_WL_GPIO_LED_PIN | ||
#define CYW43_WL_GPIO_LED_PIN 0 | ||
#endif | ||
|
||
// If CYW43_WL_GPIO_VBUS_PIN is defined then a CYW43 GPIO has to be used to read VBUS. | ||
// This can be passed to cyw43_arch_gpio_get to determine if the device is battery powered. | ||
// PICO_VBUS_PIN and CYW43_WL_GPIO_VBUS_PIN should not both be defined. | ||
#ifndef CYW43_WL_GPIO_VBUS_PIN | ||
#define CYW43_WL_GPIO_VBUS_PIN 2 | ||
#endif | ||
|
||
// If CYW43_USES_VSYS_PIN is defined then CYW43 uses the VSYS GPIO (defined by PICO_VSYS_PIN) for other purposes. | ||
// If this is the case, to use the VSYS GPIO it's necessary to ensure CYW43 is not using it. | ||
// This can be achieved by wrapping the use of the VSYS GPIO in cyw43_thread_enter / cyw43_thread_exit. | ||
#ifndef CYW43_USES_VSYS_PIN | ||
#define CYW43_USES_VSYS_PIN 1 | ||
#endif | ||
|
||
// The GPIO Pin used to monitor VSYS. Typically you would use this with ADC. | ||
// There is an example in adc/read_vsys in pico-examples. | ||
#ifndef PICO_VSYS_PIN | ||
#define PICO_VSYS_PIN 29 | ||
#endif | ||
|
||
#ifndef PICO_RP2350_A2_SUPPORTED | ||
#define PICO_RP2350_A2_SUPPORTED 1 | ||
#endif | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.