> +     {                                                               \
> +             .val_bits = (width),                                    \
> +             .reg_stride = (width) / 8,                              \
> +             .reg_bits = (regbits) + (regalign),                     \
> +             .pad_bits = (regpad),                                   \
> +             .max_register = 0xF00,                                  \
> +             .cache_type = REGCACHE_NONE,
>       \
> +             .read_flag_mask =                                       \
> +                     KSZ_SPI_OP_FLAG_MASK(KSZ_SPI_OP_RD, regbits,
> regpad), \
> +             .write_flag_mask =                                      \
> +                     KSZ_SPI_OP_FLAG_MASK(KSZ_SPI_OP_WR, regbits,
> regpad), \
> +             .reg_format_endian = REGMAP_ENDIAN_BIG,
>       \
> +             .val_format_endian = REGMAP_ENDIAN_BIG
>       \
> +     }

max_registers for KSZ9477 should be 0x8000.

I found that the SPI access works with these settings:
reg_bits = 32 - 5, val_bits = 8, pad_bits = 5, read_flag_mask = KS_SPIOP_RD << 
5.

I am using this in another driver running in 4.9.  Somehow the 8-bit write 
causes the
hardware to be in a wrong state.  This is a quick change so there may be bugs 
in the
driver.

As expected the access speed is a few microseconds slower than before.

Reply via email to