Commit f3c1b442 authored by Tomasz Bursztyka's avatar Tomasz Bursztyka Committed by Jukka Rissanen
Browse files

samples: net: echo apps: Add cc2520 configuration for arduino_101



CC2520 is not embedded on an arduino_101, it is however possible to wire
one, and thus it requires to provide cc2520_configure_gpios() function.
This one, being common to a101 is found in samples/net/common.

Change-Id: I86f2734847edb3f6a968522afccc3099ed854d13
Signed-off-by: default avatarTomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
parent ba90139c
Loading
Loading
Loading
Loading
+67 −0
Original line number Diff line number Diff line
/* cc2520_a101.c - Arduino 101 board setup for cc2520 */

/*
 * Copyright (c) 2016 Intel Corporation
 *
 * 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
 *
 *     http://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.
 */

#include <ieee802154/cc2520.h>
#include <gpio.h>

#define CC2520_GPIO_DEV_NAME CONFIG_GPIO_QMSI_0_NAME

#define CC2520_GPIO_VREG_EN	16  /* PIN 50, IO8 */
#define CC2520_GPIO_RESET	20  /* PIN 54, IO7 */
#define CC2520_GPIO_FIFO	19  /* PIN 53, IO4 */
#define CC2520_GPIO_CCA		18  /* PIN 52, IO2 */
#define CC2520_GPIO_SFD		15  /* PIN 49, IO5 */
#define CC2520_GPIO_FIFOP	17  /* PIN 51, IO3 */

static struct cc2520_gpio_configuration cc2520_gpios[CC2520_GPIO_IDX_MAX] = {
	{ .dev = NULL, .pin = CC2520_GPIO_VREG_EN, },
	{ .dev = NULL, .pin = CC2520_GPIO_RESET, },
	{ .dev = NULL, .pin = CC2520_GPIO_FIFO, },
	{ .dev = NULL, .pin = CC2520_GPIO_CCA, },
	{ .dev = NULL, .pin = CC2520_GPIO_SFD, },
	{ .dev = NULL, .pin = CC2520_GPIO_FIFOP, },
};

struct cc2520_gpio_configuration *cc2520_configure_gpios(void)
{
	struct device *gpio;
	int i;

	gpio = device_get_binding(CC2520_GPIO_DEV_NAME);
	if (!gpio) {
		return NULL;
	}

	for (i = 0; i < CC2520_GPIO_IDX_MAX; i++) {
		int flags;

		if (i >= 0 && i < CC2520_GPIO_IDX_FIFO) {
			flags = GPIO_DIR_OUT;
		} else if (i < CC2520_GPIO_IDX_SFD) {
			flags = GPIO_DIR_IN;
		} else {
			flags = (GPIO_DIR_IN | GPIO_INT | GPIO_INT_EDGE |
				 GPIO_INT_ACTIVE_HIGH | GPIO_INT_DEBOUNCE);
		}

		gpio_pin_configure(gpio, cc2520_gpios[i].pin, flags);
		cc2520_gpios[i].dev = gpio;
	}

	return cc2520_gpios;
}
+51 −0
Original line number Diff line number Diff line
CONFIG_NETWORKING=y
CONFIG_TEST_RANDOM_GENERATOR=y

CONFIG_NET_NBUF_RX_COUNT=10
CONFIG_NET_NBUF_TX_COUNT=10
CONFIG_NET_NBUF_DATA_COUNT=40

CONFIG_NET_IPV4=n
CONFIG_NET_IPV6=y
CONFIG_NET_IPV6_RA_RDNSS=y
CONFIG_NET_IF_UNICAST_IPV6_ADDR_COUNT=2

CONFIG_NET_6LO=y
CONFIG_NET_DEBUG_6LO=n

CONFIG_NET_LOG=y
CONFIG_SYS_LOG_SHOW_COLOR=y
CONFIG_INIT_STACKS=y
CONFIG_PRINTK=y

CONFIG_NET_DEBUG_CORE=y
CONFIG_NET_DEBUG_IPV6_NBR_CACHE=y
CONFIG_NET_DEBUG_IPV6=y
CONFIG_NET_DEBUG_CONTEXT=y
CONFIG_NET_DEBUG_NET_BUF=n
CONFIG_NET_DEBUG_UTILS=n
CONFIG_NET_DEBUG_IF=n
CONFIG_NET_DEBUG_ICMPV6=y
CONFIG_NET_DEBUG_CONN=n
CONFIG_NET_STATISTICS=y

CONFIG_NET_L2_IEEE802154=y
CONFIG_NET_DEBUG_L2_IEEE802154=y
CONFIG_NET_L2_IEEE802154_ORFD=y
CONFIG_NET_L2_IEEE802154_FRAGMENT=y
CONFIG_NET_DEBUG_L2_IEEE802154_FRAGMENT=y

CONFIG_TI_CC2520=y
CONFIG_TI_CC2520_AUTO_ACK=y
CONFIG_SYS_LOG_TI_CC2520_LEVEL=1

CONFIG_GPIO=y
CONFIG_SPI=y
CONFIG_SPI_0=n
CONFIG_SPI_1=y
CONFIG_SPI_CS_GPIO=y
CONFIG_SPI_1_CS_GPIO_PORT="GPIO_0"
CONFIG_SPI_1_CS_GPIO_PIN=0
CONFIG_TI_CC2520_SPI_DRV_NAME="SPI_1"
CONFIG_TI_CC2520_SPI_FREQ=4
CONFIG_TI_CC2520_SPI_SLAVE=1
 No newline at end of file
+5 −0
Original line number Diff line number Diff line
@@ -2,6 +2,11 @@ ccflags-$(CONFIG_NETWORKING_WITH_BT) +=-I${ZEPHYR_BASE}/samples/bluetooth/

obj-y = echo-client.o

ifeq ($(CONFIG_BOARD_ARDUINO_101),y)
ccflags-y +=-I${ZEPHYR_BASE}/include/drivers/
obj-y += ../../common/cc2520_a101.o
endif

ifeq ($(CONFIG_NET_TESTING), y)
ccflags-y +=-I${ZEPHYR_BASE}/samples/net/common/
ccflags-y +=-DNET_TESTING_SERVER=0
+51 −0
Original line number Diff line number Diff line
CONFIG_NETWORKING=y
CONFIG_TEST_RANDOM_GENERATOR=y

CONFIG_NET_NBUF_RX_COUNT=10
CONFIG_NET_NBUF_TX_COUNT=10
CONFIG_NET_NBUF_DATA_COUNT=40

CONFIG_NET_IPV4=n
CONFIG_NET_IPV6=y
CONFIG_NET_IPV6_RA_RDNSS=y
CONFIG_NET_IF_UNICAST_IPV6_ADDR_COUNT=2

CONFIG_NET_6LO=y
CONFIG_NET_DEBUG_6LO=n

CONFIG_NET_LOG=y
CONFIG_SYS_LOG_SHOW_COLOR=y
CONFIG_INIT_STACKS=y
CONFIG_PRINTK=y

CONFIG_NET_DEBUG_CORE=y
CONFIG_NET_DEBUG_IPV6_NBR_CACHE=y
CONFIG_NET_DEBUG_IPV6=y
CONFIG_NET_DEBUG_CONTEXT=y
CONFIG_NET_DEBUG_NET_BUF=n
CONFIG_NET_DEBUG_UTILS=n
CONFIG_NET_DEBUG_IF=n
CONFIG_NET_DEBUG_ICMPV6=y
CONFIG_NET_DEBUG_CONN=n
CONFIG_NET_STATISTICS=y

CONFIG_NET_L2_IEEE802154=y
CONFIG_NET_DEBUG_L2_IEEE802154=y
CONFIG_NET_L2_IEEE802154_ORFD=y
CONFIG_NET_L2_IEEE802154_FRAGMENT=y
CONFIG_NET_DEBUG_L2_IEEE802154_FRAGMENT=y

CONFIG_TI_CC2520=y
CONFIG_TI_CC2520_AUTO_ACK=y
CONFIG_SYS_LOG_TI_CC2520_LEVEL=1

CONFIG_GPIO=y
CONFIG_SPI=y
CONFIG_SPI_0=n
CONFIG_SPI_1=y
CONFIG_SPI_CS_GPIO=y
CONFIG_SPI_1_CS_GPIO_PORT="GPIO_0"
CONFIG_SPI_1_CS_GPIO_PIN=0
CONFIG_TI_CC2520_SPI_DRV_NAME="SPI_1"
CONFIG_TI_CC2520_SPI_FREQ=4
CONFIG_TI_CC2520_SPI_SLAVE=1
 No newline at end of file
+5 −0
Original line number Diff line number Diff line
@@ -2,6 +2,11 @@ ccflags-$(CONFIG_NETWORKING_WITH_BT) +=-I${ZEPHYR_BASE}/samples/bluetooth/

obj-y = echo-server.o

ifeq ($(CONFIG_BOARD_ARDUINO_101),y)
ccflags-y +=-I${ZEPHYR_BASE}/include/drivers/
obj-y += ../../common/cc2520_a101.o
endif

ifeq ($(CONFIG_NET_TESTING), y)
ccflags-y +=-I${ZEPHYR_BASE}/samples/net/common/
ccflags-y +=-DNET_TESTING_SERVER=1