>> + SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 0), >> + SUNXI_FUNCTION(0x0, "gpio_in"), >> + SUNXI_FUNCTION(0x1, "gpio_out"), >> + SUNXI_FUNCTION(0x2, "mmc0"), /* D1 */ >> + SUNXI_FUNCTION(0x3, "jtag"), /* MS1 */ >> + SUNXI_FUNCTION(0x4, "jtag"), /* MS_GPU */ > >We should use another name here, since the code will just pick the first one and >ignore the second. What about jtag-gpu? The underscores are used in front, so changing it to jtag_gpu may be more consistent. >> + SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 7), >> + SUNXI_FUNCTION(0x0, "gpio_in"), >> + SUNXI_FUNCTION(0x1, "gpio_out"), >> + SUNXI_FUNCTION(0x2, "spdif"), /* DIN */ >> + SUNXI_FUNCTION(0x3, "i2s0"), /* DOUT0 */ >> + SUNXI_FUNCTION(0x4, "i2s0"), /* DIN1 */ > >I guess the second one would be i2s1? No, each i2s may have many inputs and outputs. SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 19), SUNXI_FUNCTION(0x0, "gpio_in"), SUNXI_FUNCTION(0x1, "gpio_out"), SUNXI_FUNCTION(0x2, "cir0"), /* IN */ SUNXI_FUNCTION(0x3, "i2s3_dout3"), /* DOUT3 */ SUNXI_FUNCTION(0x4, "i2s3_din3"), /* DIN3 */ SUNXI_FUNCTION(0x5, "ledc"), SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 19)), Considering that the same pin has multiple same functions, so add a suffix, like i2s3_dout3 and i2s3_din3? Or specify muxsel in the device tree may be another solution. >> + SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 2), >> + SUNXI_FUNCTION(0x0, "gpio_in"), >> + SUNXI_FUNCTION(0x1, "gpio_out"), >> + SUNXI_FUNCTION(0x2, "i2c1"), /* SCK */ >> + SUNXI_FUNCTION(0x3, "cpu"), /* CUR_W */ > >What is "cpu" supposed to be? As far as I know, this is a function that has never been used. The hardware guy said that it can be used to control the CPU to reduce the current. Thx, Yangtao