# Copyright (c) 2019-2020 Gerson Fernando Budke # SPDX-License-Identifier: Apache-2.0 description: ATMEL AT86RF2xx 802.15.4 wireless transceiver compatible: "atmel,rf2xx" include: spi-device.yaml properties: irq-gpios: type: phandle-array required: true reset-gpios: type: phandle-array required: true slptr-gpios: type: phandle-array required: true description: | Multi-functional pin that controls sleep, deep sleep, transmit start and receive states dig2-gpios: type: phandle-array description: RX and TX Frame Time Stamping(TX_ARET) clkm-gpios: type: phandle-array description: Master clock signal output local-mac-address: type: uint8-array description: | Specifies the MAC address that was assigned to the network device channel-page: type: int enum: - 0 - 2 - 5 description: | Selects Channel Page accordingly with IEEE 802.15.4 standard. The Page 0 is used in both Sub-Giga and 2.4GHz. It allows select channels 0-10 in Sub-Giga band (0: BPSK-20, 1-10: BPSK-40) and 11-26 in 2.4GHz band (11-26: O-QPSK-250). Channel 2 is for Sub-Giga and selects (0: OQPSK-SIN-RC-100, 1-10: OQPSK-SIN-250). Channel 5 is for Sub-Giga (JAPAN) and selects (0-3: OQPSK-RC-250) . 0: Page 0 - BPSK-20 [0], BPSK-40 [1-10], O-QPSK-250 [11-26]. 2: Page 2 - OQPSK-SIN-RC-100 [0], OQPSK-SIN-250 [1-10]. 5: Page 5 - OQPSK-RC-250 [0-3]. tx-pwr-table: type: uint8-array default: [0x00] description: | This is the Transmission Power Mapping Table array used to comply with local regulations. By default this value set an output power above 0dBm for all transceivers. This property must be used with tx-pwr-min and tx-pwr-max for normal operations. The number of elements is defined by the size of the tx-pwr-table array property. The max entry value for 2.4GHz is 0x0f and 0xff for Sub-Giga. See PHY_TX_PWR at datasheet for more details. The output power is determined by following formula: linear_step = (tx-pwr-max - tx-pwr-min) / (sizeof(tx-pwr-table) - 1.0); table_index = abs((value_in_dbm - tx-pwr-max) / linear_step); output_power = tx-pwr-table[table_index]; Using AT86RF233 as example without external PA. By the datasheet the tx-pwr-min = -17 dBm and tx-pwr-max = +4 dBm. Using 48 elements in the tx-pwr-table array. The table array is filled from higher to lower power. tx-pwr-min = [01 11]; /* -17.0 dBm */ tx-pwr-max = [00 04]; /* 4.0 dBm */ tx-pwr-table = [00 01 03 04 05 05 06 06 07 07 07 08 08 09 09 0a 0a 0a 0b 0b 0b 0b 0c 0c 0c 0c 0d 0d 0d 0d 0d 0d 0d 0d 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0f 0f]; The values in the table are filled based on table 9-9 [TX Output Power] using the linear step in dBm as: linear_step = (4 - (-17)) / (48 - 1) => ~0.45 dBm Assuming that user wants set 0 dBm as output power: table_index = abs((0 - 4) / 0.45) => 8.95 ( round to 9 ) output_power = tx-pwr-table[9] => 0x07 ( 0 dBm as table 9-9 ) Note when tx-pwr-min is [0x00, 0x00] and tx-pwr-max is [0x00, 0x00] the linear step is zero. This means that table_index will be always the first element of the tx-pwr-table array, which is 0x00 by default. This is defined as general case when user not define any tx-pwr-* entries. It sets the transceiver to use always a value above 0 dBm as output power. tx-pwr-min: type: uint8-array default: [0x00, 0x00] description: | This value represent minimum normalized value in dBm for the transceiver output power. This property must be used when tx-pwr-table is defined. The value is represented by two entries where first element represents the signal indication [0x00-positive, 0x01-negative] and second element is the minimal value in dBm for the transceiver output power. By default, the combination of tx-pwr-min as [0x00, 0x00] and tx-pwr-max as [0x00, 0x00] will create a fixed transmission power. tx-pwr-max: type: uint8-array default: [0x00, 0x00] description: | This value represent maximum normalized value in dBm for the transceiver output power. This property must be used when tx-pwr-table is defined. The value is represented by two entries where first element represents the signal indication [ 0x00-positive] and second element is the maximum value in dBm for the transceiver output power. By default, the combination of tx-pwr-max as [0x00, 0x00] and tx-pwr-min as [0x00, 0x00] will create a fixed transmission power.