[PATCH v4 3/5] clk: add lpc18xx ccu clk driver

Michael Turquette mturquette at linaro.org
Tue Jun 9 19:13:15 PDT 2015


Quoting Joachim Eastwood (2015-05-28 13:31:45)
> +static struct lpc18xx_clk_branch clk_branches[] = {
> +       {"base_apb3_clk", "apb3_bus",           CLK_APB3_BUS,           CCU_BRANCH_IS_BUS},
> +       {"base_apb3_clk", "apb3_i2c1",          CLK_APB3_I2C1,          0},
> +       {"base_apb3_clk", "apb3_dac",           CLK_APB3_DAC,           0},
> +       {"base_apb3_clk", "apb3_adc0",          CLK_APB3_ADC0,          0},
> +       {"base_apb3_clk", "apb3_adc1",          CLK_APB3_ADC1,          0},
> +       {"base_apb3_clk", "apb3_can0",          CLK_APB3_CAN0,          0},
> +
> +       {"base_apb1_clk", "apb1_bus",           CLK_APB1_BUS,           CCU_BRANCH_IS_BUS},
> +       {"base_apb1_clk", "apb1_mc_pwm",        CLK_APB1_MOTOCON_PWM,   0},
> +       {"base_apb1_clk", "apb1_i2c0",          CLK_APB1_I2C0,          0},
> +       {"base_apb1_clk", "apb1_i2s",           CLK_APB1_I2S,           0},
> +       {"base_apb1_clk", "apb1_can1",          CLK_APB1_CAN1,          0},
> +
> +       {"base_spifi_clk", "spifi",             CLK_SPIFI,              0},
> +
> +       {"base_cpu_clk", "cpu_bus",             CLK_CPU_BUS,            CCU_BRANCH_IS_BUS},
> +       {"base_cpu_clk", "cpu_spifi",           CLK_CPU_SPIFI,          0},
> +       {"base_cpu_clk", "cpu_gpio",            CLK_CPU_GPIO,           0},
> +       {"base_cpu_clk", "cpu_lcd",             CLK_CPU_LCD,            0},
> +       {"base_cpu_clk", "cpu_ethernet",        CLK_CPU_ETHERNET,       0},
> +       {"base_cpu_clk", "cpu_usb0",            CLK_CPU_USB0,           0},
> +       {"base_cpu_clk", "cpu_emc",             CLK_CPU_EMC,            0},
> +       {"base_cpu_clk", "cpu_sdio",            CLK_CPU_SDIO,           0},
> +       {"base_cpu_clk", "cpu_dma",             CLK_CPU_DMA,            0},
> +       {"base_cpu_clk", "cpu_core",            CLK_CPU_CORE,           0},
> +       {"base_cpu_clk", "cpu_sct",             CLK_CPU_SCT,            0},
> +       {"base_cpu_clk", "cpu_usb1",            CLK_CPU_USB1,           0},
> +       {"base_cpu_clk", "cpu_emcdiv",          CLK_CPU_EMCDIV,         CCU_BRANCH_HAVE_DIV2},
> +       {"base_cpu_clk", "cpu_flasha",          CLK_CPU_FLASHA,         CCU_BRANCH_HAVE_DIV2},
> +       {"base_cpu_clk", "cpu_flashb",          CLK_CPU_FLASHB,         CCU_BRANCH_HAVE_DIV2},
> +       {"base_cpu_clk", "cpu_m0app",           CLK_CPU_M0APP,          CCU_BRANCH_HAVE_DIV2},
> +       {"base_cpu_clk", "cpu_adchs",           CLK_CPU_ADCHS,          CCU_BRANCH_HAVE_DIV2},
> +       {"base_cpu_clk", "cpu_eeprom",          CLK_CPU_EEPROM,         CCU_BRANCH_HAVE_DIV2},
> +       {"base_cpu_clk", "cpu_wwdt",            CLK_CPU_WWDT,           0},
> +       {"base_cpu_clk", "cpu_uart0",           CLK_CPU_UART0,          0},
> +       {"base_cpu_clk", "cpu_uart1",           CLK_CPU_UART1,          0},
> +       {"base_cpu_clk", "cpu_ssp0",            CLK_CPU_SSP0,           0},
> +       {"base_cpu_clk", "cpu_timer0",          CLK_CPU_TIMER0,         0},
> +       {"base_cpu_clk", "cpu_timer1",          CLK_CPU_TIMER1,         0},
> +       {"base_cpu_clk", "cpu_scu",             CLK_CPU_SCU,            0},
> +       {"base_cpu_clk", "cpu_creg",            CLK_CPU_CREG,           0},
> +       {"base_cpu_clk", "cpu_ritimer",         CLK_CPU_RITIMER,        0},
> +       {"base_cpu_clk", "cpu_uart2",           CLK_CPU_UART2,          0},
> +       {"base_cpu_clk", "cpu_uart3",           CLK_CPU_UART3,          0},
> +       {"base_cpu_clk", "cpu_timer2",          CLK_CPU_TIMER2,         0},
> +       {"base_cpu_clk", "cpu_timer3",          CLK_CPU_TIMER3,         0},
> +       {"base_cpu_clk", "cpu_ssp1",            CLK_CPU_SSP1,           0},
> +       {"base_cpu_clk", "cpu_qei",             CLK_CPU_QEI,            0},
> +
> +       {"base_periph_clk", "periph_bus",       CLK_PERIPH_BUS,         CCU_BRANCH_IS_BUS},
> +       {"base_periph_clk", "periph_core",      CLK_PERIPH_CORE,        0},
> +       {"base_periph_clk", "periph_sgpio",     CLK_PERIPH_SGPIO,       0},
> +
> +       {"base_usb0_clk",  "usb0",              CLK_USB0,               0},
> +       {"base_usb1_clk",  "usb1",              CLK_USB1,               0},
> +       {"base_spi_clk",   "spi",               CLK_SPI,                0},
> +       {"base_adchs_clk", "adchs",             CLK_ADCHS,              0},
> +
> +       {"base_audio_clk", "audio",             CLK_AUDIO,              0},
> +       {"base_uart3_clk", "apb2_uart3",        CLK_APB2_UART3,         0},
> +       {"base_uart2_clk", "apb2_uart2",        CLK_APB2_UART2,         0},
> +       {"base_uart1_clk", "apb0_uart1",        CLK_APB0_UART1,         0},
> +       {"base_uart0_clk", "apb0_uart0",        CLK_APB0_UART0,         0},
> +       {"base_ssp1_clk",  "apb2_ssp1",         CLK_APB2_SSP1,          0},
> +       {"base_ssp0_clk",  "apb0_ssp0",         CLK_APB0_SSP0,          0},
> +       {"base_sdio_clk",  "sdio",              CLK_SDIO,               0},
> +};

Hi Joachim,

If it were me, I would have broken this up into two tables, one for each
CCU. In general I would structure the code to reflect the fact that two
different IP blocks are being accessed. This isn't a deal breaker but I
thought I would mention it in case you want to make the change.

Otherwise this series looks good to me. Let me know if you plan a V5
submission.

I can take patches #1-4 into the clk tree. Please add my Acked-by to
patch #5. I will create an immutable branch to share with the arm-soc
tree so that they can take #5 and have access to the dt-bindings
headers.

Regards,
Mike



More information about the linux-arm-kernel mailing list