beeper             31 drivers/input/misc/pwm-beeper.c static int pwm_beeper_on(struct pwm_beeper *beeper, unsigned long period)
beeper             36 drivers/input/misc/pwm-beeper.c 	pwm_get_state(beeper->pwm, &state);
beeper             42 drivers/input/misc/pwm-beeper.c 	error = pwm_apply_state(beeper->pwm, &state);
beeper             46 drivers/input/misc/pwm-beeper.c 	if (!beeper->amplifier_on) {
beeper             47 drivers/input/misc/pwm-beeper.c 		error = regulator_enable(beeper->amplifier);
beeper             49 drivers/input/misc/pwm-beeper.c 			pwm_disable(beeper->pwm);
beeper             53 drivers/input/misc/pwm-beeper.c 		beeper->amplifier_on = true;
beeper             59 drivers/input/misc/pwm-beeper.c static void pwm_beeper_off(struct pwm_beeper *beeper)
beeper             61 drivers/input/misc/pwm-beeper.c 	if (beeper->amplifier_on) {
beeper             62 drivers/input/misc/pwm-beeper.c 		regulator_disable(beeper->amplifier);
beeper             63 drivers/input/misc/pwm-beeper.c 		beeper->amplifier_on = false;
beeper             66 drivers/input/misc/pwm-beeper.c 	pwm_disable(beeper->pwm);
beeper             71 drivers/input/misc/pwm-beeper.c 	struct pwm_beeper *beeper = container_of(work, struct pwm_beeper, work);
beeper             72 drivers/input/misc/pwm-beeper.c 	unsigned long period = READ_ONCE(beeper->period);
beeper             75 drivers/input/misc/pwm-beeper.c 		pwm_beeper_on(beeper, period);
beeper             77 drivers/input/misc/pwm-beeper.c 		pwm_beeper_off(beeper);
beeper             83 drivers/input/misc/pwm-beeper.c 	struct pwm_beeper *beeper = input_get_drvdata(input);
beeper             90 drivers/input/misc/pwm-beeper.c 		value = value ? beeper->bell_frequency : 0;
beeper             99 drivers/input/misc/pwm-beeper.c 		beeper->period = 0;
beeper            101 drivers/input/misc/pwm-beeper.c 		beeper->period = HZ_TO_NANOSECONDS(value);
beeper            103 drivers/input/misc/pwm-beeper.c 	if (!beeper->suspended)
beeper            104 drivers/input/misc/pwm-beeper.c 		schedule_work(&beeper->work);
beeper            109 drivers/input/misc/pwm-beeper.c static void pwm_beeper_stop(struct pwm_beeper *beeper)
beeper            111 drivers/input/misc/pwm-beeper.c 	cancel_work_sync(&beeper->work);
beeper            112 drivers/input/misc/pwm-beeper.c 	pwm_beeper_off(beeper);
beeper            117 drivers/input/misc/pwm-beeper.c 	struct pwm_beeper *beeper = input_get_drvdata(input);
beeper            119 drivers/input/misc/pwm-beeper.c 	pwm_beeper_stop(beeper);
beeper            125 drivers/input/misc/pwm-beeper.c 	struct pwm_beeper *beeper;
beeper            130 drivers/input/misc/pwm-beeper.c 	beeper = devm_kzalloc(dev, sizeof(*beeper), GFP_KERNEL);
beeper            131 drivers/input/misc/pwm-beeper.c 	if (!beeper)
beeper            134 drivers/input/misc/pwm-beeper.c 	beeper->pwm = devm_pwm_get(dev, NULL);
beeper            135 drivers/input/misc/pwm-beeper.c 	if (IS_ERR(beeper->pwm)) {
beeper            136 drivers/input/misc/pwm-beeper.c 		error = PTR_ERR(beeper->pwm);
beeper            144 drivers/input/misc/pwm-beeper.c 	pwm_init_state(beeper->pwm, &state);
beeper            146 drivers/input/misc/pwm-beeper.c 	error = pwm_apply_state(beeper->pwm, &state);
beeper            153 drivers/input/misc/pwm-beeper.c 	beeper->amplifier = devm_regulator_get(dev, "amp");
beeper            154 drivers/input/misc/pwm-beeper.c 	if (IS_ERR(beeper->amplifier)) {
beeper            155 drivers/input/misc/pwm-beeper.c 		error = PTR_ERR(beeper->amplifier);
beeper            162 drivers/input/misc/pwm-beeper.c 	INIT_WORK(&beeper->work, pwm_beeper_work);
beeper            172 drivers/input/misc/pwm-beeper.c 	beeper->bell_frequency = bell_frequency;
beeper            174 drivers/input/misc/pwm-beeper.c 	beeper->input = devm_input_allocate_device(dev);
beeper            175 drivers/input/misc/pwm-beeper.c 	if (!beeper->input) {
beeper            180 drivers/input/misc/pwm-beeper.c 	beeper->input->name = "pwm-beeper";
beeper            181 drivers/input/misc/pwm-beeper.c 	beeper->input->phys = "pwm/input0";
beeper            182 drivers/input/misc/pwm-beeper.c 	beeper->input->id.bustype = BUS_HOST;
beeper            183 drivers/input/misc/pwm-beeper.c 	beeper->input->id.vendor = 0x001f;
beeper            184 drivers/input/misc/pwm-beeper.c 	beeper->input->id.product = 0x0001;
beeper            185 drivers/input/misc/pwm-beeper.c 	beeper->input->id.version = 0x0100;
beeper            187 drivers/input/misc/pwm-beeper.c 	input_set_capability(beeper->input, EV_SND, SND_TONE);
beeper            188 drivers/input/misc/pwm-beeper.c 	input_set_capability(beeper->input, EV_SND, SND_BELL);
beeper            190 drivers/input/misc/pwm-beeper.c 	beeper->input->event = pwm_beeper_event;
beeper            191 drivers/input/misc/pwm-beeper.c 	beeper->input->close = pwm_beeper_close;
beeper            193 drivers/input/misc/pwm-beeper.c 	input_set_drvdata(beeper->input, beeper);
beeper            195 drivers/input/misc/pwm-beeper.c 	error = input_register_device(beeper->input);
beeper            201 drivers/input/misc/pwm-beeper.c 	platform_set_drvdata(pdev, beeper);
beeper            208 drivers/input/misc/pwm-beeper.c 	struct pwm_beeper *beeper = dev_get_drvdata(dev);
beeper            215 drivers/input/misc/pwm-beeper.c 	spin_lock_irq(&beeper->input->event_lock);
beeper            216 drivers/input/misc/pwm-beeper.c 	beeper->suspended = true;
beeper            217 drivers/input/misc/pwm-beeper.c 	spin_unlock_irq(&beeper->input->event_lock);
beeper            219 drivers/input/misc/pwm-beeper.c 	pwm_beeper_stop(beeper);
beeper            226 drivers/input/misc/pwm-beeper.c 	struct pwm_beeper *beeper = dev_get_drvdata(dev);
beeper            228 drivers/input/misc/pwm-beeper.c 	spin_lock_irq(&beeper->input->event_lock);
beeper            229 drivers/input/misc/pwm-beeper.c 	beeper->suspended = false;
beeper            230 drivers/input/misc/pwm-beeper.c 	spin_unlock_irq(&beeper->input->event_lock);
beeper            233 drivers/input/misc/pwm-beeper.c 	schedule_work(&beeper->work);