Remap, SPI and parity bit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hello

I'm not sure if this is the correct place to be asking this, if there is a better place please redirect me.

I'm currently working on a kernel driver for the Texas Instruments tps92518-Q1 and tps92518HV-Q1.

This device uses 16-bit SPI Frames (7-bit control, 9-bit data).

is "Command Frame"

|1-bit command bit 5-bit Address 1-bit parity 9-bit data|

requires a parity bit

|PARITY = XNOR(CMD, A4..A0, D8..D0)|

I'm trying to use regmaps where possible and I can define a regmap, e.g.

|static struct regmap_config tps92518_regmap_config = { .reg_bits = 6, .pad_bits = 1, // parity bit .val_bits = 9, .max_register = tps92518_RESET, }; |

however so far i cannot currently see how to automatically calculate it without replacing large chunks of code

e.g replacing chunks of /drivers/base/regmap/regmap-spi.c with a new regmap_bus

some where i need to be able to calculate and insert a parity bit

is there anywhere i can setup a callback that preprocesses the spi frames before sending?


I'm working up the chain an i can see a potential patch to regmaps that would  fix this if nothing better already exists

with regmap_config exists /@read_flag_mask/ and /@write_flag_mask/, along the same line there could be added a "@read_parity_mask" and "@write_parity_mask" and an optional "@reg_parity" callback that calculates the parity from/reg/ and /val/ similar/@reg_read/ and /@reg_write/ but without replacing the entire read/write operations

I may even be able to write this but that is outside the spi-subsystem, and i'm currently not sure what list regmaps fall under



i apologise if this is the wrong list and, thankyou for any responses

kind regards

christopher tyerman









[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux