* ��ʼ��PWMn * @pwm_info PWMn����ϸ��Ϣ */
| 126 | * @pwm_info PWMn����ϸ��Ϣ |
| 127 | */ |
| 128 | void pwm_init(pwm_info_t *pwm_info) |
| 129 | { |
| 130 | unsigned int gpio; |
| 131 | unsigned long pwm_clk = 0; // pwmģ���ʱ��Ƶ�� |
| 132 | unsigned long tmp = 0; |
| 133 | unsigned int pwm_reg_base = 0; |
| 134 | unsigned long period = 0; |
| 135 | |
| 136 | // ���� |
| 137 | if (NULL == pwm_info) |
| 138 | { |
| 139 | // ��ηǷ�����ֱ�ӷ��� |
| 140 | return ; |
| 141 | } |
| 142 | gpio = pwm_info->gpio; |
| 143 | |
| 144 | // ������Ӧ��������pwm������gpio |
| 145 | pin_set_purpose(gpio, PIN_PURPOSE_OTHER); |
| 146 | |
| 147 | // ���� |
| 148 | switch (gpio) |
| 149 | { |
| 150 | // ����Ҫ���� |
| 151 | case LS1C_PWM0_GPIO06: |
| 152 | case LS1C_PWM1_GPIO92: |
| 153 | break; |
| 154 | |
| 155 | case LS1C_PWM0_GPIO04: // gpio04�ĵ������� |
| 156 | pin_set_remap(LS1C_PWM0_GPIO04, PIN_REMAP_THIRD); |
| 157 | break; |
| 158 | |
| 159 | case LS1C_PWM1_GPIO05: // gpio05�ĵ������� |
| 160 | pin_set_remap(LS1C_PWM1_GPIO05, PIN_REMAP_THIRD); |
| 161 | break; |
| 162 | |
| 163 | case LS1C_PWM2_GPIO52: // gpio52�ĵ��ĸ��� |
| 164 | pin_set_remap(LS1C_PWM2_GPIO52, PIN_REMAP_FOURTH); |
| 165 | break; |
| 166 | |
| 167 | case LS1C_PWM2_GPIO46: // gpio46�ĵ��ĸ��� |
| 168 | pin_set_remap(LS1C_PWM2_GPIO46, PIN_REMAP_FOURTH); |
| 169 | break; |
| 170 | |
| 171 | case LS1C_PWM3_GPIO47: // gpio47�ĵ��ĸ��� |
| 172 | pin_set_remap(LS1C_PWM3_GPIO47, PIN_REMAP_FOURTH); |
| 173 | break; |
| 174 | |
| 175 | case LS1C_PWM3_GPIO53: // gpio53�ĵ��ĸ��� |
| 176 | pin_set_remap(LS1C_PWM3_GPIO53, PIN_REMAP_FOURTH); |
| 177 | break; |
| 178 | |
| 179 | default: |
| 180 | break; |
| 181 | } |
| 182 | |
| 183 | // ����ռ�ձȺ�pwm���ڼ���Ĵ���HRC��LRC��ֵ |
| 184 | // ����64λ����ˣ�ֻ�ܵõ���32λ��linux��ȴ���Եõ�64λ����� |
| 185 | // �ݲ����ԭ���ø���������� |
no test coverage detected