1.9. pl08x_decode_widthbits

static unsigned int pl08x_decode_widthbits1(unsigned int coded)
{
	if (coded < 3)2
		return 1 << coded;

	dev_err(&pd.dmac->dev, "%s - illegal width bits 0x%08x\n", __func__,
						coded);
	return PL08X_CODING_ERR;
}
        

1

根据设置的值,解码出实际位的宽度

2

根据datasheet中的解释:

图 1.2. Souce Transfer Width

Souce Transfer Width


图 1.3. Souce or Destination Transfer Width

Souce or Destination Transfer Width


所以,目前只支持8.,16,32字节,位域的值分别是0,1, 2

所以此处判断小于3,才是有效的

然后1<<coded,得到的结果分别是1,2,4个字节。