1/* 2 * Copyright (c) 2023 Dave Rensberger - Beechwoods Software 3 * Copyright (c) 2024 Steve Boylan <stephen.boylan@beechwoods.com> 4 * 5 * SPDX-License-Identifier: Apache-2.0 6 */ 7 8/dts-v1/; 9 10#include "rpi_pico-common.dtsi" 11 12&pinctrl { 13 pio0_spi0_default: pio0_spi0_default { 14 /* gpio 25 is used for chip select, not assigned to the PIO */ 15 group1 { 16 pinmux = <PIO0_P29>; 17 }; 18 }; 19 20 airoc_wifi_default: airoc_wifi_default { 21 /* Control of GPIO24 is done through the WiFi driver */ 22 group1 { 23 pinmux = <PIO0_P24>; 24 input-enable; 25 }; 26 }; 27 28 airoc_wifi_host_wake: airoc_wifi_host_wake { 29 /* Assign GPIO24 to SIO (GPIO) for use as an interrupt source */ 30 group1 { 31 /* Lacking a specific SIO pin definition, use the RP2040_PINMUX macro */ 32 pinmux = <RP2XXX_PINMUX(24, RP2_PINCTRL_GPIO_FUNC_SIO)>; 33 input-enable; 34 }; 35 }; 36}; 37 38&pio0 { 39 status = "okay"; 40 41 pio0_spi0: pio0_spi0 { 42 compatible = "raspberrypi,pico-spi-pio"; 43 clocks = < &clocks RPI_PICO_CLKID_CLK_SYS >; 44 #address-cells = <1>; 45 #size-cells = <0>; 46 cs-gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; 47 clk-gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; 48 sio-gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>; 49 pinctrl-0 = <&pio0_spi0_default>; 50 pinctrl-names = "default"; 51 status = "okay"; 52 airoc-wifi@0 { 53 compatible = "infineon,airoc-wifi"; 54 reg = < 0 >; 55 wifi-reg-on-gpios = < &gpio0 23 GPIO_ACTIVE_HIGH >; 56 bus-select-gpios = < &gpio0 24 GPIO_ACTIVE_HIGH >; 57 wifi-host-wake-gpios = < &gpio0 24 GPIO_ACTIVE_HIGH >; 58 spi-max-frequency = < 10000000 >; 59 spi-half-duplex; 60 spi-data-irq-shared; 61 pinctrl-0 = <&airoc_wifi_default>; 62 pinctrl-1 = <&airoc_wifi_host_wake>; 63 pinctrl-names = "default", "host_wake"; 64 status = "okay"; 65 }; 66 }; 67}; 68