| # Copyright 2024 The Pigweed Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| # use this file except in compliance with the License. You may obtain a copy of |
| # the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations under |
| # the License. |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| constraint_value( |
| name = "host_backend_constraint_value", |
| constraint_setting = "//applications/app_common:app_common_constraint_setting", |
| ) |
| |
| constraint_value( |
| name = "rp2040_backend_constraint_value", |
| constraint_setting = "//applications/app_common:app_common_constraint_setting", |
| ) |
| |
| display_common_defines = [ |
| "DISPLAY_WIDTH=320", |
| "DISPLAY_HEIGHT=240", |
| "FRAMEBUFFER_WIDTH=-1", |
| "FRAMEBUFFER_START_X=0", |
| "FRAMEBUFFER_START_Y=0", |
| ] |
| |
| rp2040_display_defines = [ |
| "DISPLAY_RESET_GPIO=-1", |
| # Kudzu Pins pin assignments. |
| "DISPLAY_TE_GPIO=16", |
| "BACKLIGHT_GPIO=15", |
| |
| # Pico display pack 2 pin assignments. |
| # "DISPLAY_TE_GPIO=21", |
| # "BACKLIGHT_GPIO=20", |
| ] |
| |
| rp2040_spi_defines = [ |
| "SPI_MISO_GPIO=-1", |
| |
| # Kudzu Pins pin assignments. |
| "DISPLAY_CS_GPIO=17", |
| "DISPLAY_DC_GPIO=20", |
| "SPI_MOSI_GPIO=19", |
| "SPI_CLOCK_GPIO=18", |
| |
| # Pico display pack 2 pin assignments. |
| # "DISPLAY_CS_GPIO=17", |
| # "DISPLAY_DC_GPIO=16", |
| # "SPI_MOSI_GPIO=19", |
| # "SPI_CLOCK_GPIO=18", |
| ] |
| |
| rp2040_i2c_defines = [ |
| "I2C_BUS0_SCL=9", |
| "I2C_BUS0_SDA=8", |
| "I2C_BUS1_SCL=3", |
| "I2C_BUS1_SDA=2", |
| ] |
| |
| rp2040_pio_defines = [ |
| "USE_PIO=1", |
| "DISPLAY_TYPE_ST7789_PIO", |
| # Overclock the rp2040 in common_pico.cc |
| # "OVERCLOCK_250=1", |
| ] |
| |
| cc_library( |
| name = "pico_st7789_pio", |
| srcs = ["common_pico.cc"], |
| defines = display_common_defines + rp2040_display_defines + rp2040_spi_defines + rp2040_i2c_defines + rp2040_pio_defines, |
| target_compatible_with = [ |
| "@pigweed//pw_build/constraints/chipset:rp2040", |
| ], |
| deps = [ |
| "//applications/app_common:app_common.facade", |
| "//lib/ft6236", |
| "//lib/icm42670p", |
| "//lib/kudzu_buttons_pi4ioe5v6416", |
| "//lib/kudzu_imu_icm42670p", |
| "//lib/max17048", |
| "//lib/pi4ioe5v6416", |
| "//lib/pw_touchscreen_ft6236", |
| "@pico-sdk//src/common/pico_base", |
| "@pico-sdk//src/common/pico_stdlib", |
| "@pico-sdk//src/rp2_common/hardware_adc", |
| "@pico-sdk//src/rp2_common/hardware_gpio", |
| "@pico-sdk//src/rp2_common/hardware_pwm", |
| "@pico-sdk//src/rp2_common/hardware_spi", |
| "@pico-sdk//src/rp2_common/hardware_vreg", |
| "@pigweed-experimental//pw_display_driver_st7789", |
| "@pigweed-experimental//pw_graphics/pw_display", |
| "@pigweed-experimental//pw_graphics/pw_framebuffer_pool", |
| "@pigweed-experimental//pw_pixel_pusher_rp2040_pio", |
| "@pigweed//pw_digital_io_rp2040", |
| "@pigweed//pw_i2c_rp2040", |
| "@pigweed//pw_log", |
| "@pigweed//pw_spi:chip_selector_digital_out", |
| "@pigweed//pw_spi_rp2040", |
| "@pigweed//pw_sync:borrow", |
| "@pigweed//pw_sync:mutex", |
| "@pigweed//pw_thread:thread", |
| "@pigweed//pw_thread_freertos:thread", |
| ], |
| ) |
| |
| cc_library( |
| name = "host_null", |
| srcs = ["common_host_null.cc"], |
| defines = display_common_defines, |
| deps = [ |
| "//applications/app_common:app_common.facade", |
| "//lib/kudzu_buttons_null", |
| "//lib/pw_touchscreen_null", |
| "@pigweed-experimental//pw_display_driver_null", |
| "@pigweed-experimental//pw_graphics/pw_display", |
| "@pigweed//pw_thread:thread", |
| "@pigweed//pw_thread_stl:thread", |
| ], |
| ) |