1*c66ec88fSEmmanuel Vadot /* SPDX-License-Identifier: GPL-2.0-only */ 2*c66ec88fSEmmanuel Vadot /* 3*c66ec88fSEmmanuel Vadot * Copyright (C) 2014 Google, Inc. 4*c66ec88fSEmmanuel Vadot */ 5*c66ec88fSEmmanuel Vadot 6*c66ec88fSEmmanuel Vadot #ifndef _DT_BINDINGS_CLOCK_PISTACHIO_H 7*c66ec88fSEmmanuel Vadot #define _DT_BINDINGS_CLOCK_PISTACHIO_H 8*c66ec88fSEmmanuel Vadot 9*c66ec88fSEmmanuel Vadot /* PLLs */ 10*c66ec88fSEmmanuel Vadot #define CLK_MIPS_PLL 0 11*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_PLL 1 12*c66ec88fSEmmanuel Vadot #define CLK_RPU_V_PLL 2 13*c66ec88fSEmmanuel Vadot #define CLK_RPU_L_PLL 3 14*c66ec88fSEmmanuel Vadot #define CLK_SYS_PLL 4 15*c66ec88fSEmmanuel Vadot #define CLK_WIFI_PLL 5 16*c66ec88fSEmmanuel Vadot #define CLK_BT_PLL 6 17*c66ec88fSEmmanuel Vadot 18*c66ec88fSEmmanuel Vadot /* Fixed-factor clocks */ 19*c66ec88fSEmmanuel Vadot #define CLK_WIFI_DIV4 16 20*c66ec88fSEmmanuel Vadot #define CLK_WIFI_DIV8 17 21*c66ec88fSEmmanuel Vadot 22*c66ec88fSEmmanuel Vadot /* Gate clocks */ 23*c66ec88fSEmmanuel Vadot #define CLK_MIPS 32 24*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_IN 33 25*c66ec88fSEmmanuel Vadot #define CLK_AUDIO 34 26*c66ec88fSEmmanuel Vadot #define CLK_I2S 35 27*c66ec88fSEmmanuel Vadot #define CLK_SPDIF 36 28*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_DAC 37 29*c66ec88fSEmmanuel Vadot #define CLK_RPU_V 38 30*c66ec88fSEmmanuel Vadot #define CLK_RPU_L 39 31*c66ec88fSEmmanuel Vadot #define CLK_RPU_SLEEP 40 32*c66ec88fSEmmanuel Vadot #define CLK_WIFI_PLL_GATE 41 33*c66ec88fSEmmanuel Vadot #define CLK_RPU_CORE 42 34*c66ec88fSEmmanuel Vadot #define CLK_WIFI_ADC 43 35*c66ec88fSEmmanuel Vadot #define CLK_WIFI_DAC 44 36*c66ec88fSEmmanuel Vadot #define CLK_USB_PHY 45 37*c66ec88fSEmmanuel Vadot #define CLK_ENET_IN 46 38*c66ec88fSEmmanuel Vadot #define CLK_ENET 47 39*c66ec88fSEmmanuel Vadot #define CLK_UART0 48 40*c66ec88fSEmmanuel Vadot #define CLK_UART1 49 41*c66ec88fSEmmanuel Vadot #define CLK_PERIPH_SYS 50 42*c66ec88fSEmmanuel Vadot #define CLK_SPI0 51 43*c66ec88fSEmmanuel Vadot #define CLK_SPI1 52 44*c66ec88fSEmmanuel Vadot #define CLK_EVENT_TIMER 53 45*c66ec88fSEmmanuel Vadot #define CLK_AUX_ADC_INTERNAL 54 46*c66ec88fSEmmanuel Vadot #define CLK_AUX_ADC 55 47*c66ec88fSEmmanuel Vadot #define CLK_SD_HOST 56 48*c66ec88fSEmmanuel Vadot #define CLK_BT 57 49*c66ec88fSEmmanuel Vadot #define CLK_BT_DIV4 58 50*c66ec88fSEmmanuel Vadot #define CLK_BT_DIV8 59 51*c66ec88fSEmmanuel Vadot #define CLK_BT_1MHZ 60 52*c66ec88fSEmmanuel Vadot 53*c66ec88fSEmmanuel Vadot /* Divider clocks */ 54*c66ec88fSEmmanuel Vadot #define CLK_MIPS_INTERNAL_DIV 64 55*c66ec88fSEmmanuel Vadot #define CLK_MIPS_DIV 65 56*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_DIV 66 57*c66ec88fSEmmanuel Vadot #define CLK_I2S_DIV 67 58*c66ec88fSEmmanuel Vadot #define CLK_SPDIF_DIV 68 59*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_DAC_DIV 69 60*c66ec88fSEmmanuel Vadot #define CLK_RPU_V_DIV 70 61*c66ec88fSEmmanuel Vadot #define CLK_RPU_L_DIV 71 62*c66ec88fSEmmanuel Vadot #define CLK_RPU_SLEEP_DIV 72 63*c66ec88fSEmmanuel Vadot #define CLK_RPU_CORE_DIV 73 64*c66ec88fSEmmanuel Vadot #define CLK_USB_PHY_DIV 74 65*c66ec88fSEmmanuel Vadot #define CLK_ENET_DIV 75 66*c66ec88fSEmmanuel Vadot #define CLK_UART0_INTERNAL_DIV 76 67*c66ec88fSEmmanuel Vadot #define CLK_UART0_DIV 77 68*c66ec88fSEmmanuel Vadot #define CLK_UART1_INTERNAL_DIV 78 69*c66ec88fSEmmanuel Vadot #define CLK_UART1_DIV 79 70*c66ec88fSEmmanuel Vadot #define CLK_SYS_INTERNAL_DIV 80 71*c66ec88fSEmmanuel Vadot #define CLK_SPI0_INTERNAL_DIV 81 72*c66ec88fSEmmanuel Vadot #define CLK_SPI0_DIV 82 73*c66ec88fSEmmanuel Vadot #define CLK_SPI1_INTERNAL_DIV 83 74*c66ec88fSEmmanuel Vadot #define CLK_SPI1_DIV 84 75*c66ec88fSEmmanuel Vadot #define CLK_EVENT_TIMER_INTERNAL_DIV 85 76*c66ec88fSEmmanuel Vadot #define CLK_EVENT_TIMER_DIV 86 77*c66ec88fSEmmanuel Vadot #define CLK_AUX_ADC_INTERNAL_DIV 87 78*c66ec88fSEmmanuel Vadot #define CLK_AUX_ADC_DIV 88 79*c66ec88fSEmmanuel Vadot #define CLK_SD_HOST_DIV 89 80*c66ec88fSEmmanuel Vadot #define CLK_BT_DIV 90 81*c66ec88fSEmmanuel Vadot #define CLK_BT_DIV4_DIV 91 82*c66ec88fSEmmanuel Vadot #define CLK_BT_DIV8_DIV 92 83*c66ec88fSEmmanuel Vadot #define CLK_BT_1MHZ_INTERNAL_DIV 93 84*c66ec88fSEmmanuel Vadot #define CLK_BT_1MHZ_DIV 94 85*c66ec88fSEmmanuel Vadot 86*c66ec88fSEmmanuel Vadot /* Mux clocks */ 87*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_REF_MUX 96 88*c66ec88fSEmmanuel Vadot #define CLK_MIPS_PLL_MUX 97 89*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_PLL_MUX 98 90*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_MUX 99 91*c66ec88fSEmmanuel Vadot #define CLK_RPU_V_PLL_MUX 100 92*c66ec88fSEmmanuel Vadot #define CLK_RPU_L_PLL_MUX 101 93*c66ec88fSEmmanuel Vadot #define CLK_RPU_L_MUX 102 94*c66ec88fSEmmanuel Vadot #define CLK_WIFI_PLL_MUX 103 95*c66ec88fSEmmanuel Vadot #define CLK_WIFI_DIV4_MUX 104 96*c66ec88fSEmmanuel Vadot #define CLK_WIFI_DIV8_MUX 105 97*c66ec88fSEmmanuel Vadot #define CLK_RPU_CORE_MUX 106 98*c66ec88fSEmmanuel Vadot #define CLK_SYS_PLL_MUX 107 99*c66ec88fSEmmanuel Vadot #define CLK_ENET_MUX 108 100*c66ec88fSEmmanuel Vadot #define CLK_EVENT_TIMER_MUX 109 101*c66ec88fSEmmanuel Vadot #define CLK_SD_HOST_MUX 110 102*c66ec88fSEmmanuel Vadot #define CLK_BT_PLL_MUX 111 103*c66ec88fSEmmanuel Vadot #define CLK_DEBUG_MUX 112 104*c66ec88fSEmmanuel Vadot 105*c66ec88fSEmmanuel Vadot #define CLK_NR_CLKS 113 106*c66ec88fSEmmanuel Vadot 107*c66ec88fSEmmanuel Vadot /* Peripheral gate clocks */ 108*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_SYS 0 109*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_SYS_BUS 1 110*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_DDR 2 111*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_ROM 3 112*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_COUNTER_FAST 4 113*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_COUNTER_SLOW 5 114*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_IR 6 115*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_WD 7 116*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_PDM 8 117*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_PWM 9 118*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C0 10 119*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C1 11 120*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C2 12 121*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C3 13 122*c66ec88fSEmmanuel Vadot 123*c66ec88fSEmmanuel Vadot /* Peripheral divider clocks */ 124*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_ROM_DIV 32 125*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_COUNTER_FAST_DIV 33 126*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_COUNTER_SLOW_PRE_DIV 34 127*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_COUNTER_SLOW_DIV 35 128*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_IR_PRE_DIV 36 129*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_IR_DIV 37 130*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_WD_PRE_DIV 38 131*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_WD_DIV 39 132*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_PDM_PRE_DIV 40 133*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_PDM_DIV 41 134*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_PWM_PRE_DIV 42 135*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_PWM_DIV 43 136*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C0_PRE_DIV 44 137*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C0_DIV 45 138*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C1_PRE_DIV 46 139*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C1_DIV 47 140*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C2_PRE_DIV 48 141*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C2_DIV 49 142*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C3_PRE_DIV 50 143*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C3_DIV 51 144*c66ec88fSEmmanuel Vadot 145*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_NR_CLKS 52 146*c66ec88fSEmmanuel Vadot 147*c66ec88fSEmmanuel Vadot /* System gate clocks */ 148*c66ec88fSEmmanuel Vadot #define SYS_CLK_I2C0 0 149*c66ec88fSEmmanuel Vadot #define SYS_CLK_I2C1 1 150*c66ec88fSEmmanuel Vadot #define SYS_CLK_I2C2 2 151*c66ec88fSEmmanuel Vadot #define SYS_CLK_I2C3 3 152*c66ec88fSEmmanuel Vadot #define SYS_CLK_I2S_IN 4 153*c66ec88fSEmmanuel Vadot #define SYS_CLK_PAUD_OUT 5 154*c66ec88fSEmmanuel Vadot #define SYS_CLK_SPDIF_OUT 6 155*c66ec88fSEmmanuel Vadot #define SYS_CLK_SPI0_MASTER 7 156*c66ec88fSEmmanuel Vadot #define SYS_CLK_SPI0_SLAVE 8 157*c66ec88fSEmmanuel Vadot #define SYS_CLK_PWM 9 158*c66ec88fSEmmanuel Vadot #define SYS_CLK_UART0 10 159*c66ec88fSEmmanuel Vadot #define SYS_CLK_UART1 11 160*c66ec88fSEmmanuel Vadot #define SYS_CLK_SPI1 12 161*c66ec88fSEmmanuel Vadot #define SYS_CLK_MDC 13 162*c66ec88fSEmmanuel Vadot #define SYS_CLK_SD_HOST 14 163*c66ec88fSEmmanuel Vadot #define SYS_CLK_ENET 15 164*c66ec88fSEmmanuel Vadot #define SYS_CLK_IR 16 165*c66ec88fSEmmanuel Vadot #define SYS_CLK_WD 17 166*c66ec88fSEmmanuel Vadot #define SYS_CLK_TIMER 18 167*c66ec88fSEmmanuel Vadot #define SYS_CLK_I2S_OUT 24 168*c66ec88fSEmmanuel Vadot #define SYS_CLK_SPDIF_IN 25 169*c66ec88fSEmmanuel Vadot #define SYS_CLK_EVENT_TIMER 26 170*c66ec88fSEmmanuel Vadot #define SYS_CLK_HASH 27 171*c66ec88fSEmmanuel Vadot 172*c66ec88fSEmmanuel Vadot #define SYS_CLK_NR_CLKS 28 173*c66ec88fSEmmanuel Vadot 174*c66ec88fSEmmanuel Vadot /* Gates for external input clocks */ 175*c66ec88fSEmmanuel Vadot #define EXT_CLK_AUDIO_IN 0 176*c66ec88fSEmmanuel Vadot #define EXT_CLK_ENET_IN 1 177*c66ec88fSEmmanuel Vadot 178*c66ec88fSEmmanuel Vadot #define EXT_CLK_NR_CLKS 2 179*c66ec88fSEmmanuel Vadot 180*c66ec88fSEmmanuel Vadot #endif /* _DT_BINDINGS_CLOCK_PISTACHIO_H */ 181